]> granicus.if.org Git - clang/commit
DebugInfo: Avoid creating DILexicalScopeFiles when the filename in the current scope...
authorDavid Blaikie <dblaikie@gmail.com>
Wed, 14 May 2014 00:29:00 +0000 (00:29 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Wed, 14 May 2014 00:29:00 +0000 (00:29 +0000)
commitdfb7a74bfe4a5ead8fbecd73c054a8c4a32b7a4b
tree36a44a24c6e7b5b3821d6730f300538e6bde0778
parent014e81d707162ef5329388d6c7110ba3d24c8450
DebugInfo: Avoid creating DILexicalScopeFiles when the filename in the current scope has not changed.

This looks like the right way for this check to work, but there is
another semi-obvious bug, I would think: why is CurLoc not zero'd out
between functions? The possibility for it to bleed between them seems
problematic. (& indeed I caused tests to fail when I fixed this a
different way, by setting CurLoc to SourceLocation() and the end of
EmitFunctionEnd... )

The changes to debug-info-blocks.m are due to a mismatch between the
source manager's file naming and CGDebugInfo's default handling when no
-main-file-name is specified. This actually reveals somewhat of a bug in
the debug info when using source files from standard in, too. See the
comment in CGDebugInfo::CreateCompileUnit for more details.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@208742 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/CGDebugInfo.cpp
test/CodeGen/debug-info-scope-file.c [new file with mode: 0644]
test/CodeGenObjC/debug-info-blocks.m