]> granicus.if.org Git - clang/commitdiff
tolerate unimplemented codegen better
authorChris Lattner <sabre@nondot.org>
Sun, 26 Aug 2007 05:06:40 +0000 (05:06 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 26 Aug 2007 05:06:40 +0000 (05:06 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@41424 91177308-0d34-0410-b5e6-96231b3b80d8

CodeGen/CGExpr.cpp

index dbb7029272d32fdd8f32ca3147ebf4f84ab6cdbd..9256a5d77348bdedc1efc74d7d79f5a82bdf4f4e 100644 (file)
@@ -211,11 +211,12 @@ llvm::Value *CodeGenFunction::ConvertScalarValueToBool(RValue Val, QualType Ty){
 ///
 LValue CodeGenFunction::EmitLValue(const Expr *E) {
   switch (E->getStmtClass()) {
-  default:
+  default: {
     fprintf(stderr, "Unimplemented lvalue expr!\n");
     E->dump();
-    return LValue::MakeAddr(llvm::UndefValue::get(
-                              llvm::PointerType::get(llvm::Type::Int32Ty)));
+    llvm::Type *Ty = llvm::PointerType::get(ConvertType(E->getType()));
+    return LValue::MakeAddr(llvm::UndefValue::get(Ty));
+  }
 
   case Expr::DeclRefExprClass: return EmitDeclRefLValue(cast<DeclRefExpr>(E));
   case Expr::ParenExprClass:return EmitLValue(cast<ParenExpr>(E)->getSubExpr());