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