summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2010-01-25 21:40:39 +0000
committerFariborz Jahanian <fjahanian@apple.com>2010-01-25 21:40:39 +0000
commit5cda92820fbba45821548e6f1b9cc58d58574aa5 (patch)
treef1ad11ebc8460681da40d2d3218d1ff472f9a8b3
parent3cde760023ea65b9f1359dd8a238085b8b5ebeaa (diff)
downloadbcm5719-llvm-5cda92820fbba45821548e6f1b9cc58d58574aa5.tar.gz
bcm5719-llvm-5cda92820fbba45821548e6f1b9cc58d58574aa5.zip
global variable that binds reference to a non-lvalue reproted
as NYI now. llvm-svn: 94453
-rw-r--r--clang/lib/CodeGen/CGDeclCXX.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/clang/lib/CodeGen/CGDeclCXX.cpp b/clang/lib/CodeGen/CGDeclCXX.cpp
index 2d473de47ca..3f1a7225fbc 100644
--- a/clang/lib/CodeGen/CGDeclCXX.cpp
+++ b/clang/lib/CodeGen/CGDeclCXX.cpp
@@ -80,8 +80,13 @@ void CodeGenFunction::EmitCXXGlobalVarDeclInit(const VarDecl &D,
EmitDeclInit(*this, D, DeclPtr);
return;
}
- RValue RV = EmitReferenceBindingToExpr(Init, T, /*IsInitializer=*/true);
- EmitStoreOfScalar(RV.getScalarVal(), DeclPtr, false, T);
+ if (Init->isLvalue(getContext()) == Expr::LV_Valid) {
+ RValue RV = EmitReferenceBindingToExpr(Init, T, /*IsInitializer=*/true);
+ EmitStoreOfScalar(RV.getScalarVal(), DeclPtr, false, T);
+ return;
+ }
+ ErrorUnsupported(Init,
+ "global variable that binds reference to a non-lvalue");
}
void
OpenPOWER on IntegriCloud