[TableGen] Resolve References at top level (#104578)
Add a dummy resolver to resolve references outside records. This invokes Fold() with isFinal to force resolution. Fixes #102447 Co-authored-by: Akshat Oke <Akshat.Oke@amd.com>
This commit is contained in:
parent
0abb779161
commit
576aa3a509
@ -4460,8 +4460,13 @@ bool TGParser::ParseDump(MultiClass *CurMultiClass, Record *CurRec) {
|
||||
|
||||
if (CurRec)
|
||||
CurRec->addDump(Loc, Message);
|
||||
else
|
||||
addEntry(std::make_unique<Record::DumpInfo>(Loc, Message));
|
||||
else {
|
||||
HasReferenceResolver resolver{nullptr};
|
||||
resolver.setFinal(true);
|
||||
// force a resolution with a dummy resolver
|
||||
Init *ResolvedMessage = Message->resolveReferences(resolver);
|
||||
addEntry(std::make_unique<Record::DumpInfo>(Loc, ResolvedMessage));
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -101,3 +101,6 @@ def Three : BaseClassForSet;
|
||||
}
|
||||
// CHECK: [[FILE]]:[[@LINE+1]]:1: note: TheSet = [Subset_One, Subset_Two, Three]
|
||||
dump "TheSet = " # !repr(TheSet);
|
||||
|
||||
// CHECK: [[FILE]]:[[@LINE+1]]:1: note: 0
|
||||
dump !repr(!exists<BaseClassForSet>("non-existent-record"));
|
||||
Loading…
x
Reference in New Issue
Block a user