llvm/test/TableGen/strconcat.td
Daniel Sanders 1913eeb385 [tablegen] !strconcat accepts more than two arguments but this wasn't documented or tested.
Summary:
* Updated the documentation
* Added a test for >2 arguments
* Added a check for the lexical concatenation
* Made the existing test a bit stricter.

Reviewers: t.p.northover

Reviewed By: t.p.northover

Subscribers: t.p.northover, llvm-commits

Differential Revision: http://reviews.llvm.org/D3485

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@207865 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-02 19:25:52 +00:00

25 lines
644 B
TableGen

// RUN: llvm-tblgen %s | FileCheck %s
// CHECK: class Y<string Y:S = ?> {
// CHECK: string T = !strconcat(Y:S, "foo");
// CHECK: string T2 = !strconcat(Y:S, !strconcat("foo", !strconcat(Y:S, "bar")));
// CHECK: string S = "foobar";
// CHECK: }
// CHECK: def Z {
// CHECK: string T = "fufoo";
// CHECK: string T2 = "fufoofubar";
// CHECK: string S = "foobar";
// CHECK: }
class Y<string S> {
string T = !strconcat(S, "foo");
// More than two arguments is equivalent to nested calls
string T2 = !strconcat(S, "foo", S, "bar");
// String values concatenate lexically, as in C.
string S = "foo" "bar";
}
def Z : Y<"fu">;