summaryrefslogtreecommitdiff
path: root/lib/TableGen
diff options
context:
space:
mode:
authorArtyom Skrobov <Artyom.Skrobov@arm.com>2014-06-10 12:41:14 +0000
committerArtyom Skrobov <Artyom.Skrobov@arm.com>2014-06-10 12:41:14 +0000
commit2093e88d67a92721fe070b93dda01a6946079f2f (patch)
treeda305d9e0b689368f5af856fdb2c31c2c3c87218 /lib/TableGen
parente1db6ac10bcdbfde9f32a9180684de5e5c6ee75b (diff)
downloadllvm-2093e88d67a92721fe070b93dda01a6946079f2f.tar.gz
llvm-2093e88d67a92721fe070b93dda01a6946079f2f.tar.bz2
llvm-2093e88d67a92721fe070b93dda01a6946079f2f.tar.xz
Anonymous definitions in foreach blocks triggered a 'def already exists'
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@210526 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/TableGen')
-rw-r--r--lib/TableGen/TGParser.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/TableGen/TGParser.cpp b/lib/TableGen/TGParser.cpp
index 2c6a46cb0b..f337c75ed5 100644
--- a/lib/TableGen/TGParser.cpp
+++ b/lib/TableGen/TGParser.cpp
@@ -360,8 +360,13 @@ bool TGParser::ProcessForeachDefs(Record *CurRec, SMLoc Loc, IterSet &IterVals){
}
if (Records.getDef(IterRec->getNameInitAsString())) {
- Error(Loc, "def already exists: " + IterRec->getNameInitAsString());
- return true;
+ // If this record is anonymous, it's no problem, just generate a new name
+ if (IterRec->isAnonymous())
+ IterRec->setName(GetNewAnonymousName());
+ else {
+ Error(Loc, "def already exists: " + IterRec->getNameInitAsString());
+ return true;
+ }
}
Records.addDef(IterRec);