Issue 126502
Summary TableGen error `Cannot access field 'Val' of value 'Def'` when using `#` operator
Labels bug, tablegen
Assignees
Reporter s-barannikov
    This simple test fails to compile:

` $ cat test.td`
```
class Rec { string Val = "abc"; }
def Def : Rec;

class Use<string V> { string Val = V; }

def MyDef : Use<"" # Def.Val>;
```

`$ llvm-tblgen test.td`
```
test.td:6:26: error: Cannot access field 'Val' of value '"Def"'
def MyDef : Use<"" # Def.Val>;
 ^
```

However, if I add a level of indirection, it does compile:
` $ cat test.td`
```
class Rec { string Val = "abc"; }
def Def : Rec;

class Use<string V> { string Val = V; }

class Helper<Rec R> : Use<"" # R.Val>;
def MyDef : Helper<Def>;
```

`$ llvm-tblgen test.td`
```
...
def MyDef {	// Use Helper
  string Val = "abc";
}
```

I'm not sure if this is a bug, but it's definitely unexpected behavior.

_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to