Actually store the pointer into the global variable, spotted by Eli.

llvm-svn: 91036
diff --git a/clang/lib/CodeGen/CGDeclCXX.cpp b/clang/lib/CodeGen/CGDeclCXX.cpp
index d240a3b..0b6ea5a 100644
--- a/clang/lib/CodeGen/CGDeclCXX.cpp
+++ b/clang/lib/CodeGen/CGDeclCXX.cpp
@@ -193,10 +193,13 @@
   EmitBlock(InitBlock);
 
   if (D.getType()->isReferenceType()) {
+    QualType T = D.getType();
     // We don't want to pass true for IsInitializer here, because a static
     // reference to a temporary does not extend its lifetime.
-    EmitReferenceBindingToExpr(D.getInit(), D.getType(),
-                               /*IsInitializer=*/false);
+    RValue RV = EmitReferenceBindingToExpr(D.getInit(), T,
+                                           /*IsInitializer=*/false);
+    EmitStoreOfScalar(RV.getScalarVal(), GV, /*Volatile=*/false, T);
+
   } else
     EmitDeclInit(*this, D, GV);