diff options
author | Jordan Rose <jordan_rose@apple.com> | 2013-01-10 18:50:11 +0000 |
---|---|---|
committer | Jordan Rose <jordan_rose@apple.com> | 2013-01-10 18:50:11 +0000 |
commit | f12e8a93ee7afbdac23c424a805b51682cc86746 (patch) | |
tree | e35d2133a792e09634aecf2d25ebb1a6037450ea /llvm/utils | |
parent | abdd99b5aad2520276aad43e243c89bf45d76d45 (diff) | |
download | bcm5719-llvm-f12e8a93ee7afbdac23c424a805b51682cc86746.tar.gz bcm5719-llvm-f12e8a93ee7afbdac23c424a805b51682cc86746.zip |
TableGen: Keep track of superclass reference ranges.
def foo : bar;
~~~
This allows us to produce more precise diagnostics about a certain
superclass, and even provide fixits.
llvm-svn: 172085
Diffstat (limited to 'llvm/utils')
-rw-r--r-- | llvm/utils/TableGen/CodeGenRegisters.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/llvm/utils/TableGen/CodeGenRegisters.cpp b/llvm/utils/TableGen/CodeGenRegisters.cpp index 20d439f8f71..e902ce031fd 100644 --- a/llvm/utils/TableGen/CodeGenRegisters.cpp +++ b/llvm/utils/TableGen/CodeGenRegisters.cpp @@ -636,8 +636,10 @@ struct TupleExpander : SetTheory::Expander { Elts.insert(NewReg); // Copy Proto super-classes. - for (unsigned i = 0, e = Proto->getSuperClasses().size(); i != e; ++i) - NewReg->addSuperClass(Proto->getSuperClasses()[i]); + ArrayRef<Record *> Supers = Proto->getSuperClasses(); + ArrayRef<SMRange> Ranges = Proto->getSuperClassRanges(); + for (unsigned i = 0, e = Supers.size(); i != e; ++i) + NewReg->addSuperClass(Supers[i], Ranges[i]); // Copy Proto fields. for (unsigned i = 0, e = Proto->getValues().size(); i != e; ++i) { |