diff options
author | Fariborz Jahanian <fjahanian@apple.com> | 2010-01-25 21:40:39 +0000 |
---|---|---|
committer | Fariborz Jahanian <fjahanian@apple.com> | 2010-01-25 21:40:39 +0000 |
commit | 5cda92820fbba45821548e6f1b9cc58d58574aa5 (patch) | |
tree | f1ad11ebc8460681da40d2d3218d1ff472f9a8b3 | |
parent | 3cde760023ea65b9f1359dd8a238085b8b5ebeaa (diff) | |
download | bcm5719-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.cpp | 9 |
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 |