diff options
author | David Greene <greened@obbligato.org> | 2011-10-19 13:03:30 +0000 |
---|---|---|
committer | David Greene <greened@obbligato.org> | 2011-10-19 13:03:30 +0000 |
commit | 9effff28c8b6533f286639df412649e2cb1fe5cb (patch) | |
tree | f0514a6f981e2286ae04c1eef2267af47402d07b /llvm/lib/TableGen | |
parent | f651a2a5c026db7f467648f51a3d68a62976d6b1 (diff) | |
download | bcm5719-llvm-9effff28c8b6533f286639df412649e2cb1fe5cb.tar.gz bcm5719-llvm-9effff28c8b6533f286639df412649e2cb1fe5cb.zip |
Resolve Record Names
When resolving Record values, be sure to update the Record name as it
may contain references to the value.
llvm-svn: 142511
Diffstat (limited to 'llvm/lib/TableGen')
-rw-r--r-- | llvm/lib/TableGen/Record.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/TableGen/Record.cpp b/llvm/lib/TableGen/Record.cpp index 69d31fe3b43..a22c80c5e2e 100644 --- a/llvm/lib/TableGen/Record.cpp +++ b/llvm/lib/TableGen/Record.cpp @@ -1764,6 +1764,12 @@ void Record::resolveReferencesTo(const RecordVal *RV) { if (Init *V = Values[i].getValue()) Values[i].setValue(V->resolveReferences(*this, RV)); } + Init *OldName = getNameInit(); + Init *NewName = Name->resolveReferences(*this, RV); + if (NewName != OldName) { + // Re-register with RecordKeeper. + setName(NewName); + } } void Record::dump() const { errs() << *this; } |