Fix bug in previous patch :(
authorChris Lattner <sabre@nondot.org>
Mon, 26 Jul 2004 01:40:20 +0000 (01:40 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 26 Jul 2004 01:40:20 +0000 (01:40 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15226 91177308-0d34-0410-b5e6-96231b3b80d8

lib/AsmParser/llvmAsmParser.y

index 440056de2dfd02a86544e4fbc2dd0acffb778932..8387fea6e51188c96c2eb3365d68056757db0643 100644 (file)
@@ -383,12 +383,6 @@ static BasicBlock *getBBVal(const ValID &ID, bool isDefinition = false) {
       ThrowException("Redefinition of label " + ID.getName());
 
     ID.destroy();                       // Free strdup'd memory.
-
-    // Make sure to move the basic block to the correct location in the
-    // function, instead of leaving it inserted wherever it was first
-    // referenced.
-    CurFun.CurrentFunction->getBasicBlockList().remove(BB);
-    CurFun.CurrentFunction->getBasicBlockList().push_back(BB);
     return BB;
   }
 
@@ -1685,9 +1679,21 @@ InstructionList : InstructionList Inst {
   }
   | /* empty */ {
     $$ = CurBB = getBBVal(ValID::create((int)CurFun.NextBBNum++), true);
+
+    // Make sure to move the basic block to the correct location in the
+    // function, instead of leaving it inserted wherever it was first
+    // referenced.
+    CurFun.CurrentFunction->getBasicBlockList().remove(CurBB);
+    CurFun.CurrentFunction->getBasicBlockList().push_back(CurBB);
   }
   | LABELSTR {
     $$ = CurBB = getBBVal(ValID::create($1), true);
+
+    // Make sure to move the basic block to the correct location in the
+    // function, instead of leaving it inserted wherever it was first
+    // referenced.
+    CurFun.CurrentFunction->getBasicBlockList().remove(CurBB);
+    CurFun.CurrentFunction->getBasicBlockList().push_back(CurBB);
   };
 
 BBTerminatorInst : RET ResolvedVal {              // Return with a result...