aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CGDebugInfo.cpp
AgeCommit message (Collapse)Author
2013-05-06DebugInfo: Support imported modules (using directives) within lexical blocks.David Blaikie
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181272 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-30Revert 180817 because 180816 was reverted.Adrian Prantl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180823 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-30Do not generate VLAs as complex variables any more, as they are nowAdrian Prantl
correctly represented as breg+0 locations in the backend. (Paired commit with LLVM: r180815) rdar://problem/13658587 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180817 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-22Revert "Revert "PR14606: Debug info for using ↵David Blaikie
directives/DW_TAG_imported_module"" This reverts commit 179839 now that the corresponding LLVM patch has been fixed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179997 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-19Emit the underlying type in the debug info for all kinds of fixed enumsAdrian Prantl
instead of only C++11-scoped-with-class-tag enums. rdar://problem/13463793 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179879 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-19Revert "PR14606: Debug info for using directives/DW_TAG_imported_module"Eric Christopher
This reverts commit r179837 as it seems to be causing test failures. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179839 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-19PR14606: Debug info for using directives/DW_TAG_imported_moduleDavid Blaikie
More changes later for using declarations/DW_TAG_imported_declaration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179837 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-19Give CGDebugInfo::getContextDescriptor a more specific return typeDavid Blaikie
Not that the DI* hierarchy is terribly type safe, but this makes the contract a little clearer I think. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179835 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-16Standardize accesses to the TargetInfo in IR-gen.John McCall
Patch by Stephen Lin! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179638 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-02Revert "Revert r178079, it caused PR15637."Eric Christopher
This reverts commit r178497 since the backend has been fixed. Also add a test to ensure that we're emitting template information for unions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178587 91177308-0d34-0410-b5e6-96231b3b80d8
2013-04-01Revert r178079, it caused PR15637.Nico Weber
Also add a test for PR15637. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178497 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-29Bugfix/Followup for r177086.Adrian Prantl
* Store the .block_descriptor (instead of self) in the alloca so we can guarantee that all captured variables are available at -O0. * Add the missing OpDeref for the alloca. rdar://problem/12767564 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178361 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-29Improvement on r177086.Adrian Prantl
* Let DIType for block-captured self to point to the completed cached interface type. rdar://problem/12767564 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178360 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-26Remove magic number usage from CGDebugInfo with new ↵David Blaikie
DICompositeType::setContainingType git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178092 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-26Debug Info: remove use of magic numbers to tweak specific debug info ↵David Blaikie
metadata fields git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178079 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-20Make clang emit linkage names in debug info for subprograms when coverage infoNick Lewycky
is enabled. Also add a new -test-coverage cc1 flag which makes testing coverage possible and add our first clang-side coverage test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177470 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-14Always declare the .block_descriptor parameter, not just the local copy.Adrian Prantl
Un-breaks gdb's invoke-block behavior. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177118 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-14Allocate stack storage for .block_descriptor and captured self at -O0.Adrian Prantl
This way the register allocator will not optimize away the debug info for captured variables. Fixes rdar://problem/12767564 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177086 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-12Force column info to be generated for call expressions so we canAdrian Prantl
differentiate multiple inlined call sites on the same line in the debug info. Fixes rdar://problem/13036237 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176895 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-11Improve the caching of debuginfo Objective C interface types.Adrian Prantl
Generate forward declarations that are RAUW'd by finalize(). We thus avoid outputting the same type several times in multiple stages of completion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176820 91177308-0d34-0410-b5e6-96231b3b80d8
2013-03-06Ensure that DIType is regenerated after we visit an implementationAdrian Prantl
that adds ivars to an interface. Fixes rdar://13175234 This is an update to r176116 that performs a smart caching of interfaces. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176584 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-27Temporarily revert r176116 for compile-time performance regression.Adrian Prantl
This reverts commit ea95e4587fd13606fbf63b10a07a7d02026aa39c. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176151 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-26Ensure that DIType is regenerated after we visited an implementation that ↵Adrian Prantl
adds ivars to an interface. Fixes rdar://13175234 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176116 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-25Update Clang for a minor DIBuilder breaking change.David Blaikie
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176003 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-22Propagate the split dwarf file information through into the backendEric Christopher
and through to the debug info in the module. In order to make the testcase a bit more efficient allow the filename to go through compilation for compile and not assemble jobs and turn off the extract for cases where we don't create an object. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175935 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-22Streamify getNameForDiagnostic and remove the string versions of ↵Benjamin Kramer
PrintTemplateArgumentList. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175894 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-21Fix formatting and tabs in file.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175815 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-21Patch for debug info of qualified-id types is 'id'Fariborz Jahanian
By Adrian Pranti. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175793 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-07Add OpenCL samplers as Clang builtin types and check sampler related ↵Guy Benyei
restrictions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174601 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-02Revert r174246, accidentally committed.David Blaikie
This reverts commit 1513eb9284c23acfd19cf742b95996fbb11ca741. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174249 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-02BasicsDavid Blaikie
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174246 91177308-0d34-0410-b5e6-96231b3b80d8
2013-02-01Fix exception handling line table problems introduced by r173593David Blaikie
r173593 made us a little too eager to associate all code at the end of a function with the user-written 'return' line. This caused problems with breakpoints as they'd be set in exception handling code preceeding the actual non-exception return handling code, leading to the breakpoint never being hit in non-exceptional execution. This change restores the pre-r173593 exception handling line information where the cleanup code is associated with the '}' not the return line. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174206 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-26PR14566: Debug Info: avoid top level lexical blocks in functionsDavid Blaikie
One of the gotchas (see changes to CodeGenFunction) was due to the fix in r139416 (for PR10829). This only worked previously because the top level lexical block would set the location to the end of the function, the debug location would be updated (as per r139416), the location would be set to the end of the function again (but that would no-op, since it was the same as the previous location), then the return instruction would be emitted using the debug location. Once the top level lexical block was no longer emitted, the end-of-function location change was causing the debug loc to be updated, regressing that bug. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173593 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-21CGDebugInfo.cpp: Fix a warning. [-Wunused-variable]NAKAMURA Takumi
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173022 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-21PR14472: Preserve qualifiers while unwrapping types for debug infoDavid Blaikie
Looks like r161368 fixed this for one case but not all. This change generalizes the solution over all the unwrapping cases. Now that preserving the qualifiers is done independent of the particular type being unwrapped I won't bother adding test cases for each one but at least demonstrate that this change was necessary & sufficient to fix the bug. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173002 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-20Implement OpenCL event_t as Clang builtin type, including event_t related ↵Guy Benyei
OpenCL restrictions (OpenCL 1.2 spec 6.9) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172973 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-20The last of PR14471: Debug info support for inline in-class initializer for ↵David Blaikie
float static members git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172942 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-19Emit the function type of member function pointer types the same as member ↵David Blaikie
functions. Adding the pseudo first parameter to a member function pointer's function type and mark it as artificial. Combined with a fix to GDB ( http://sourceware.org/bugzilla/show_bug.cgi?id=14998 ) this fixes gdb.cp/member-ptr.exp with Clang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172911 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-16Collect both normal and static data members of a class in sourceEric Christopher
order. Describe static data members to metadata using new interfaces. Part of PR14471. Patch by Paul Robinson! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172591 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-07Extract the instance-method case for debug info out into a separate function.David Blaikie
This is in preparation for using this to construct the function type for pointers to member functions to include the implicit/artificial 'this' parameter in that case as well. (feedback from GDB indicates that this might be all that's necessary to get it to behave well with Clang's pointer-to-member function debug output) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171809 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-07Simplify computing debug info type for static member functions.David Blaikie
No (intended) functional change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171800 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-07PR14759: Improve/correct support for debug info for C++ member pointers.David Blaikie
Using added LLVM functionality in r171698. This works in GDB for member variable pointers but not member function pointers. See the LLVM commit and GDB bug 14998 for details. Un-xfailing cases in the GDB 7.5 test suite will follow. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171699 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-05PR14573: Unnamed parameters in debug info, Part 2David Blaikie
Catch some cases I'd missed in r171605 related to unnamed parameters of record type. This resolves all remaining cases of PR14573 suppression in the GDB 7.5 test suite. Fix to the test suite to follow. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171633 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-05Emit debug info for unnamed parameters.David Blaikie
LLVM ignores this data for now - patch for that to follow. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171605 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-04Fix fieldNo usage for lambdas. No behavior change since theEric Christopher
field number was 0 anyhow. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171472 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-02Rewrite #includes for llvm/Foo.h to llvm/IR/Foo.h as appropriate toChandler Carruth
reflect the migration in r171366. Re-sort the #include lines to reflect the new paths. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171369 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-18Re-commit r170428 changes with Linux style file endings.Guy Benyei
Add OpenCL images as clang builtin types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170432 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-18Revert changes from r170428, as I accidentally changed the line endings of ↵Guy Benyei
these files to Windows style. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170431 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-18Add OpenCL images as clang builtin types.Guy Benyei
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170428 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-13Debug Info: Emit vtables pointer members as artificial.David Blaikie
I wasn't sure where to put the test case for this, but this seemed like as good a place as any. I had to reorder the tests here to make them legible while still matching the order of metadata output in the IR file (for some reason making it virtual changed the ordering). Relevant commit to fix up LLVM to actually respect 'artificial' member variables is coming once I write up a test case for it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170154 91177308-0d34-0410-b5e6-96231b3b80d8