// RUN: llvm-tblgen %s | FileCheck %s // XFAIL: vg_leak // CHECK: WorldHelloCC // CHECK-NOT: WorldHelloCC class C { string name = n; } multiclass Names { def CC : C; def World#NAME#CC : C; } defm Hello : Names<"hello", "world">; // Ensure that the same anonymous name is used as the prefix for all defs in an // anonymous multiclass. class Outer { C Inner = i; } multiclass MC { def hi : C; def there : Outer(!strconcat(NAME, "hi"))>; } defm : MC<"foo">; multiclass MC2 { def there : Outer >; } // Ensure that we've correctly captured the reference to name from the implicit // anonymous C def in the template parameter list of Outer. // CHECK-NOT: MC2::name defm : MC2<"bar">;