// 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 { 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 { def a { string e = NAME; } defm b : A; defm NAME # c # name : A; } defm B0 : B<"z", "t">; class Cbase { string a = NAME; } class C : Cbase { string b = NAME; string c = arg; } def C0 : C<"a">; multiclass D { def a : C; def b : C; } defm D0 : D<"a">;