• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// RUN: llvm-tblgen %s | FileCheck %s
2
3// CHECK: class Y<string Y:S = ?> {
4// CHECK:   string T = !strconcat(Y:S, "foo");
5// CHECK:   string T2 = !strconcat(Y:S, !strconcat("foo", !strconcat(Y:S, "bar")));
6// CHECK:   string S = "foobar";
7// CHECK: }
8
9// CHECK: def Z {
10// CHECK:   string T = "fufoo";
11// CHECK:   string T2 = "fufoofubar";
12// CHECK:   string S = "foobar";
13// CHECK: }
14
15class Y<string S> {
16  string T = !strconcat(S, "foo");
17  // More than two arguments is equivalent to nested calls
18  string T2 = !strconcat(S, "foo", S, "bar");
19
20  // String values concatenate lexically, as in C.
21  string S = "foo" "bar";
22}
23
24def Z : Y<"fu">;
25