Revision: 124439 Author: clattner Date: 2007-03-01 22:49:42 -0800 (Thu, 01 Mar 2007)
Log Message: ----------- Fix PR1235, an ICE on invalid code. Modified Paths: -------------- apple-local/branches/llvm/gcc/llvm-backend.cpp apple-local/branches/llvm/gcc/llvm-convert.cpp Modified: apple-local/branches/llvm/gcc/llvm-backend.cpp =================================================================== --- apple-local/branches/llvm/gcc/llvm-backend.cpp 2007-03-01 23:11:13 UTC (rev 124438) +++ apple-local/branches/llvm/gcc/llvm-backend.cpp 2007-03-02 06:49:42 UTC (rev 124439) @@ -713,6 +713,10 @@ // same DECL node. Don't discard the LLVM already made. if (DECL_LLVM_SET_P(decl)) return; + if (errorcount || sorrycount) + return; // Do not process broken code. + + // Global register variable with asm name, e.g.: // register unsigned long esp __asm__("ebp"); if (TREE_CODE(decl) != FUNCTION_DECL && DECL_REGISTER(decl)) { @@ -862,6 +866,7 @@ /// llvm_get_decl_name - Used by varasm.c, returns the specified declaration's /// name. const char *llvm_get_decl_name(void *LLVM) { + if (LLVM == 0) return ""; return ((Value*)LLVM)->getValueName()->getKeyData(); } Modified: apple-local/branches/llvm/gcc/llvm-convert.cpp =================================================================== --- apple-local/branches/llvm/gcc/llvm-convert.cpp 2007-03-01 23:11:13 UTC (rev 124438) +++ apple-local/branches/llvm/gcc/llvm-convert.cpp 2007-03-02 06:49:42 UTC (rev 124439) @@ -124,6 +124,9 @@ if (Index == 0) { make_decl_llvm(Tr); Index = GET_DECL_LLVM_INDEX(Tr); + + // If there was an error, we may have disabled creating LLVM values. + if (Index == 0) return 0; } assert ((Index - 1) < LLVMValues.size() && "Invalid LLVM Value index"); _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits