summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenFunction.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.cpp')
-rw-r--r--clang/lib/CodeGen/CodeGenFunction.cpp25
1 files changed, 5 insertions, 20 deletions
diff --git a/clang/lib/CodeGen/CodeGenFunction.cpp b/clang/lib/CodeGen/CodeGenFunction.cpp
index c0357238d21..20352f9f685 100644
--- a/clang/lib/CodeGen/CodeGenFunction.cpp
+++ b/clang/lib/CodeGen/CodeGenFunction.cpp
@@ -1376,27 +1376,12 @@ llvm::Value* CodeGenFunction::EmitVAListRef(const Expr* E) {
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
OpenPOWER on IntegriCloud