global variable that binds reference to a non-lvalue reproted
as NYI now.

llvm-svn: 94453
diff --git a/clang/lib/CodeGen/CGDeclCXX.cpp b/clang/lib/CodeGen/CGDeclCXX.cpp
index 2d473de..3f1a722 100644
--- a/clang/lib/CodeGen/CGDeclCXX.cpp
+++ b/clang/lib/CodeGen/CGDeclCXX.cpp
@@ -80,8 +80,13 @@
     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