Fix coredump for when an ID is used illegally outside a record
authorChris Lattner <sabre@nondot.org>
Wed, 30 Jul 2003 05:17:35 +0000 (05:17 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 30 Jul 2003 05:17:35 +0000 (05:17 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7411 91177308-0d34-0410-b5e6-96231b3b80d8

support/tools/TableGen/FileParser.y
utils/TableGen/FileParser.y

index f8fa16de2a55b40a9c2deca465af1157296bfae2..55938f47ea7e4be7a322132b50fc475ae43326e1 100644 (file)
@@ -245,6 +245,10 @@ Value : INTVAL {
     $$ = Init;
     delete $2;
   } | ID {
+    if (CurRec == 0) {
+      err() << "Def/Class name '" << *$1 << "' not allowed here!\n";
+      abort();
+    }
     if (const RecordVal *RV = CurRec->getValue(*$1)) {
       $$ = new VarInit(*$1, RV->getType());
     } else if (Record *D = Records.getDef(*$1)) {
index f8fa16de2a55b40a9c2deca465af1157296bfae2..55938f47ea7e4be7a322132b50fc475ae43326e1 100644 (file)
@@ -245,6 +245,10 @@ Value : INTVAL {
     $$ = Init;
     delete $2;
   } | ID {
+    if (CurRec == 0) {
+      err() << "Def/Class name '" << *$1 << "' not allowed here!\n";
+      abort();
+    }
     if (const RecordVal *RV = CurRec->getValue(*$1)) {
       $$ = new VarInit(*$1, RV->getType());
     } else if (Record *D = Records.getDef(*$1)) {