| // RUN: llvm-tblgen %s | FileCheck %s | 
 | // XFAIL: vg_leak | 
 |  | 
 | // CHECK: def B0a { | 
 | // CHECK:   string e = "B0"; | 
 | // CHECK: } | 
 |  | 
 | // CHECK: def B0ba { | 
 | // CHECK:   string a = "B0b"; | 
 | // CHECK:   string b = "B0"; | 
 | // CHECK: } | 
 |  | 
 | // CHECK: def B0bys { | 
 | // CHECK:   string f = "B0b"; | 
 | // CHECK:   string g = "B0"; | 
 | // CHECK: } | 
 |  | 
 | // CHECK: def B0cza { | 
 | // CHECK:   string a = "B0cz"; | 
 | // CHECK:   string b = "B0"; | 
 | // CHECK: } | 
 |  | 
 | // CHECK: def B0czyt { | 
 | // CHECK:   string f = "B0cz"; | 
 | // CHECK:   string g = "B0"; | 
 | // CHECK: } | 
 |  | 
 | // CHECK: def C0 { | 
 | // CHECK:   string a = "C0"; | 
 | // CHECK:   string b = "C0"; | 
 | // CHECK:   string c = "a"; | 
 | // CHECK: } | 
 |  | 
 | // CHECK: def D0a { | 
 | // CHECK:   string a = "D0a"; | 
 | // CHECK:   string b = "D0a"; | 
 | // CHECK:   string c = "D0"; | 
 | // CHECK: } | 
 |  | 
 | // CHECK: def D0b { | 
 | // CHECK:   string a = "D0b"; | 
 | // CHECK:   string b = "D0b"; | 
 | // CHECK:   string c = "a"; | 
 | // CHECK: } | 
 |  | 
 | // CHECK: def xB0b { | 
 | // CHECK:   string c = "B0b"; | 
 | // CHECK:   string d = "B0"; | 
 | // CHECK: } | 
 |  | 
 | // CHECK: def xB0cz { | 
 | // CHECK:   string c = "B0cz"; | 
 | // CHECK:   string d = "B0"; | 
 | // CHECK: } | 
 |  | 
 | multiclass A<string p, string q> { | 
 |   def a { | 
 |     string a = NAME; | 
 |     string b = p; | 
 |   } | 
 |  | 
 |   def x # NAME { | 
 |     string c = NAME; | 
 |     string d = p; | 
 |   } | 
 |  | 
 |   def y # q { | 
 |     string f = NAME; | 
 |     string g = p; | 
 |   } | 
 | } | 
 |  | 
 | multiclass B<string name, string t> { | 
 |   def a { | 
 |     string e = NAME; | 
 |   } | 
 |  | 
 |   defm b : A<NAME, "s">; | 
 |  | 
 |   defm NAME # c # name : A<NAME, t>; | 
 | } | 
 |  | 
 | defm B0 : B<"z", "t">; | 
 |  | 
 | class Cbase { | 
 |   string a = NAME; | 
 | } | 
 |  | 
 | class C<string arg> : Cbase { | 
 |   string b = NAME; | 
 |   string c = arg; | 
 | } | 
 |  | 
 | def C0 : C<"a">; | 
 |  | 
 | multiclass D<string arg> { | 
 |   def a : C<NAME>; | 
 |   def b : C<arg>; | 
 | } | 
 |  | 
 | defm D0 : D<"a">; |