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">;
 |