summaryrefslogtreecommitdiffstats
path: root/llvm/utils
diff options
context:
space:
mode:
authorJordan Rose <jordan_rose@apple.com>2013-01-10 18:50:11 +0000
committerJordan Rose <jordan_rose@apple.com>2013-01-10 18:50:11 +0000
commitf12e8a93ee7afbdac23c424a805b51682cc86746 (patch)
treee35d2133a792e09634aecf2d25ebb1a6037450ea /llvm/utils
parentabdd99b5aad2520276aad43e243c89bf45d76d45 (diff)
downloadbcm5719-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.cpp6
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) {
OpenPOWER on IntegriCloud