Do not repeat debug info for file variable constants.
This is tested by file-statics.exp in gdb testsuite.
llvm-svn: 116060
diff --git a/clang/lib/CodeGen/CGExprScalar.cpp b/clang/lib/CodeGen/CGExprScalar.cpp
index 62433a1..8e01b7c 100644
--- a/clang/lib/CodeGen/CGExprScalar.cpp
+++ b/clang/lib/CodeGen/CGExprScalar.cpp
@@ -165,7 +165,11 @@
assert(!Result.HasSideEffects && "Constant declref with side-effect?!");
llvm::ConstantInt *CI
= llvm::ConstantInt::get(VMContext, Result.Val.getInt());
- CGF.EmitDeclRefExprDbgValue(E, CI);
+ if (VarDecl *VD = dyn_cast<VarDecl>((E->getDecl()))) {
+ if (!VD->isFileVarDecl()) {
+ CGF.EmitDeclRefExprDbgValue(E, CI);
+ }
+ }
return CI;
}
return EmitLoadOfLValue(E);