Fix thinko.
authorDaniel Dunbar <daniel@zuster.org>
Sun, 19 Jul 2009 07:03:11 +0000 (07:03 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Sun, 19 Jul 2009 07:03:11 +0000 (07:03 +0000)
llvm-svn: 76362

clang/lib/CodeGen/CGDecl.cpp
clang/lib/CodeGen/CGStmt.cpp

index 6da8649b0a88904319962b53246b75b62ef9a6a6..47727f2d36b9bc86db06080c7aca2ee9dfcfa044 100644 (file)
@@ -325,10 +325,7 @@ void CodeGenFunction::EmitLocalBlockVarDecl(const VarDecl &D) {
 
   // Emit debug info for local var declaration.
   if (CGDebugInfo *DI = getDebugInfo()) {
-    // FIXME: Remove this once debug info isn't modeled as instructions.
-    EnsureInsertPoint();
-
-    EmitStopPoint(S);
+    assert(HaveInsertPoint() && "Unexpected unreachable point!");
     
     DI->setLocation(D.getLocation());
     if (Target.useGlobalsForAutomaticVariables()) {
index 0999947881fe6a30dd77e35f3d60cef4b31f8bb3..4e6ec82eb5288ace85b461d7dfcbed9d5e2fdcf4 100644 (file)
@@ -525,6 +525,13 @@ void CodeGenFunction::EmitReturnStmt(const ReturnStmt &S) {
 }
 
 void CodeGenFunction::EmitDeclStmt(const DeclStmt &S) {
+  // As long as debug info is modeled with instructions, we have to ensure we
+  // have a place to insert here and write the stop point here.
+  if (getDebugInfo()) {
+    EnsureInsertPoint();
+    EmitStopPoint(&S);
+  }
+
   for (DeclStmt::const_decl_iterator I = S.decl_begin(), E = S.decl_end();
        I != E; ++I)
     EmitDecl(**I);