25 lines
644 B
TableGen
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">;
|