Revision: 127324
Author:   clattner
Date:     2007-05-16 15:40:23 -0700 (Wed, 16 May 2007)

Log Message:
-----------
fix a crash on invalid code.

Modified Paths:
--------------
    apple-local/branches/llvm/gcc/llvm-backend.cpp

Modified: apple-local/branches/llvm/gcc/llvm-backend.cpp
===================================================================
--- apple-local/branches/llvm/gcc/llvm-backend.cpp      2007-05-16 21:39:35 UTC 
(rev 127323)
+++ apple-local/branches/llvm/gcc/llvm-backend.cpp      2007-05-16 22:40:23 UTC 
(rev 127324)
@@ -1028,7 +1028,10 @@
 //
 void llvm_emit_ctor_dtor(tree FnDecl, int InitPrio, int isCtor) {
   mark_decl_referenced(FnDecl);  // Inform cgraph that we used the global.
-  Function *F = cast<Function>(DECL_LLVM(FnDecl));
+  
+  if (errorcount || sorrycount) return;
+  
+  Function *F = cast_or_null<Function>(DECL_LLVM(FnDecl));
   (isCtor ? &StaticCtors:&StaticDtors)->push_back(std::make_pair(F, InitPrio));
 }
 


_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to