Revert r189649 because it was breaking sanitizer bots.

llvm-svn: 189660
diff --git a/clang/lib/CodeGen/CodeGenFunction.cpp b/clang/lib/CodeGen/CodeGenFunction.cpp
index c035723..20352f9 100644
--- a/clang/lib/CodeGen/CodeGenFunction.cpp
+++ b/clang/lib/CodeGen/CodeGenFunction.cpp
@@ -1376,27 +1376,12 @@
   return EmitLValue(E).getAddress();
 }
 
-void CodeGenFunction::EmitValueDeclDbgValue(const ValueDecl *Val,
-                                            llvm::Constant *Init) {
+void CodeGenFunction::EmitDeclRefExprDbgValue(const DeclRefExpr *E,
+                                              llvm::Constant *Init) {
   assert (Init && "Invalid DeclRefExpr initializer!");
-  CGDebugInfo *Dbg = getDebugInfo();
-  if (!Dbg ||
-      CGM.getCodeGenOpts().getDebugInfo() < CodeGenOptions::LimitedDebugInfo)
-    return;
-
-  // Make sure we emit a debug reference to the global variable.
-  if (const VarDecl *VD = dyn_cast<VarDecl>(Val)) {
-    // Do not duplicate DIE entry for local variables; they are not deferred
-    // like global variables are.
-    if (VD->isFileVarDecl() && !getLangOpts().EmitAllDecls &&
-        !getContext().DeclMustBeEmitted(Val))
-      Dbg->EmitGlobalVariable(Init, VD);
-
-  // Make sure we emit a debug reference to an enumerator constant.
-  } else {
-    assert(isa<EnumConstantDecl>(Val));
-    Dbg->EmitEnumConstant(dyn_cast<EnumConstantDecl>(Val));
-  }
+  if (CGDebugInfo *Dbg = getDebugInfo())
+    if (CGM.getCodeGenOpts().getDebugInfo() >= CodeGenOptions::LimitedDebugInfo)
+      Dbg->EmitGlobalVariable(E->getDecl(), Init);
 }
 
 CodeGenFunction::PeepholeProtection