summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGDebugInfo.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Standardize accesses to the TargetInfo in IR-gen.John McCall2013-04-161-4/+4
| | | | | | Patch by Stephen Lin! llvm-svn: 179638
* Revert "Revert r178079, it caused PR15637."Eric Christopher2013-04-021-34/+16
| | | | | | | | This reverts commit r178497 since the backend has been fixed. Also add a test to ensure that we're emitting template information for unions. llvm-svn: 178587
* Revert r178079, it caused PR15637.Nico Weber2013-04-011-15/+33
| | | | | | Also add a test for PR15637. llvm-svn: 178497
* Bugfix/Followup for r177086.Adrian Prantl2013-03-291-2/+4
| | | | | | | | | * 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 llvm-svn: 178361
* Improvement on r177086.Adrian Prantl2013-03-291-3/+17
| | | | | | | | * Let DIType for block-captured self to point to the completed cached interface type. rdar://problem/12767564 llvm-svn: 178360
* Remove magic number usage from CGDebugInfo with new ↵David Blaikie2013-03-261-8/+7
| | | | | | DICompositeType::setContainingType llvm-svn: 178092
* Debug Info: remove use of magic numbers to tweak specific debug info ↵David Blaikie2013-03-261-33/+15
| | | | | | metadata fields llvm-svn: 178079
* Make clang emit linkage names in debug info for subprograms when coverage infoNick Lewycky2013-03-201-2/+7
| | | | | | | is enabled. Also add a new -test-coverage cc1 flag which makes testing coverage possible and add our first clang-side coverage test. llvm-svn: 177470
* Always declare the .block_descriptor parameter, not just the local copy.Adrian Prantl2013-03-141-9/+10
| | | | | | Un-breaks gdb's invoke-block behavior. llvm-svn: 177118
* Allocate stack storage for .block_descriptor and captured self at -O0.Adrian Prantl2013-03-141-10/+16
| | | | | | | | | This way the register allocator will not optimize away the debug info for captured variables. Fixes rdar://problem/12767564 llvm-svn: 177086
* Force column info to be generated for call expressions so we canAdrian Prantl2013-03-121-11/+13
| | | | | | | | | differentiate multiple inlined call sites on the same line in the debug info. Fixes rdar://problem/13036237 llvm-svn: 176895
* Improve the caching of debuginfo Objective C interface types.Adrian Prantl2013-03-111-27/+59
| | | | | | | | Generate forward declarations that are RAUW'd by finalize(). We thus avoid outputting the same type several times in multiple stages of completion. llvm-svn: 176820
* Ensure that DIType is regenerated after we visit an implementationAdrian Prantl2013-03-061-6/+57
| | | | | | | | | | that adds ivars to an interface. Fixes rdar://13175234 This is an update to r176116 that performs a smart caching of interfaces. llvm-svn: 176584
* Temporarily revert r176116 for compile-time performance regression.Adrian Prantl2013-02-271-28/+2
| | | | | | This reverts commit ea95e4587fd13606fbf63b10a07a7d02026aa39c. llvm-svn: 176151
* Ensure that DIType is regenerated after we visited an implementation that ↵Adrian Prantl2013-02-261-2/+28
| | | | | | adds ivars to an interface. Fixes rdar://13175234 llvm-svn: 176116
* Update Clang for a minor DIBuilder breaking change.David Blaikie2013-02-251-10/+9
| | | | llvm-svn: 176003
* Propagate the split dwarf file information through into the backendEric Christopher2013-02-221-1/+8
| | | | | | | | | 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. llvm-svn: 175935
* Streamify getNameForDiagnostic and remove the string versions of ↵Benjamin Kramer2013-02-221-9/+15
| | | | | | PrintTemplateArgumentList. llvm-svn: 175894
* Fix formatting and tabs in file.Eric Christopher2013-02-211-26/+25
| | | | llvm-svn: 175815
* Patch for debug info of qualified-id types is 'id'Fariborz Jahanian2013-02-211-2/+8
| | | | | | By Adrian Pranti. llvm-svn: 175793
* Add OpenCL samplers as Clang builtin types and check sampler related ↵Guy Benyei2013-02-071-0/+5
| | | | | | restrictions. llvm-svn: 174601
* Revert r174246, accidentally committed.David Blaikie2013-02-021-9/+0
| | | | | | This reverts commit 1513eb9284c23acfd19cf742b95996fbb11ca741. llvm-svn: 174249
* BasicsDavid Blaikie2013-02-021-0/+9
| | | | llvm-svn: 174246
* Fix exception handling line table problems introduced by r173593David Blaikie2013-02-011-1/+3
| | | | | | | | | | | | | 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. llvm-svn: 174206
* PR14566: Debug Info: avoid top level lexical blocks in functionsDavid Blaikie2013-01-261-1/+1
| | | | | | | | | | | | | | | 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. llvm-svn: 173593
* CGDebugInfo.cpp: Fix a warning. [-Wunused-variable]NAKAMURA Takumi2013-01-211-0/+1
| | | | llvm-svn: 173022
* PR14472: Preserve qualifiers while unwrapping types for debug infoDavid Blaikie2013-01-211-14/+9
| | | | | | | | | | 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. llvm-svn: 173002
* Implement OpenCL event_t as Clang builtin type, including event_t related ↵Guy Benyei2013-01-201-0/+3
| | | | | | OpenCL restrictions (OpenCL 1.2 spec 6.9) llvm-svn: 172973
* The last of PR14471: Debug info support for inline in-class initializer for ↵David Blaikie2013-01-201-4/+8
| | | | | | float static members llvm-svn: 172942
* Emit the function type of member function pointer types the same as member ↵David Blaikie2013-01-191-2/+9
| | | | | | | | | | | | 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. llvm-svn: 172911
* Collect both normal and static data members of a class in sourceEric Christopher2013-01-161-105/+155
| | | | | | | | | | order. Describe static data members to metadata using new interfaces. Part of PR14471. Patch by Paul Robinson! llvm-svn: 172591
* Extract the instance-method case for debug info out into a separate function.David Blaikie2013-01-071-10/+10
| | | | | | | | | | 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) llvm-svn: 171809
* Simplify computing debug info type for static member functions.David Blaikie2013-01-071-26/+27
| | | | | | No (intended) functional change. llvm-svn: 171800
* PR14759: Improve/correct support for debug info for C++ member pointers.David Blaikie2013-01-071-32/+2
| | | | | | | | | | 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. llvm-svn: 171699
* PR14573: Unnamed parameters in debug info, Part 2David Blaikie2013-01-051-2/+2
| | | | | | | | 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. llvm-svn: 171633
* Emit debug info for unnamed parameters.David Blaikie2013-01-051-17/+15
| | | | | | LLVM ignores this data for now - patch for that to follow. llvm-svn: 171605
* Fix fieldNo usage for lambdas. No behavior change since theEric Christopher2013-01-041-2/+2
| | | | | | field number was 0 anyhow. llvm-svn: 171472
* Rewrite #includes for llvm/Foo.h to llvm/IR/Foo.h as appropriate toChandler Carruth2013-01-021-6/+6
| | | | | | | | reflect the migration in r171366. Re-sort the #include lines to reflect the new paths. llvm-svn: 171369
* Re-commit r170428 changes with Linux style file endings.Guy Benyei2012-12-181-0/+32
| | | | | | Add OpenCL images as clang builtin types. llvm-svn: 170432
* Revert changes from r170428, as I accidentally changed the line endings of ↵Guy Benyei2012-12-181-2834/+2802
| | | | | | these files to Windows style. llvm-svn: 170431
* Add OpenCL images as clang builtin types.Guy Benyei2012-12-181-2802/+2834
| | | | llvm-svn: 170428
* Debug Info: Emit vtables pointer members as artificial.David Blaikie2012-12-131-1/+1
| | | | | | | | | | | | 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. llvm-svn: 170154
* Use the 'count' attribute to calculate the upper bound of an array.Bill Wendling2012-12-041-26/+9
| | | | | | | | | The count attribute is more accurate with regards to the size of an array. It also obviates the upper bound attribute in the subrange. We can also better handle an unbound array by setting the count to -1 instead of the lower bound to 1 and upper bound to 0. llvm-svn: 169311
* Sort all of Clang's files under 'lib', and fix up the broken headersChandler Carruth2012-12-041-6/+6
| | | | | | | | | | | | | uncovered. This required manually correcting all of the incorrect main-module headers I could find, and running the new llvm/utils/sort_includes.py script over the files. I also manually added quite a few missing headers that were uncovered by shuffling the order or moving headers up to be main-module-headers. llvm-svn: 169237
* Add a 'count' field to the DWARF subrange.Bill Wendling2012-12-041-5/+18
| | | | | | | | | The count field is necessary because there isn't a difference between the 'lo' and 'hi' attributes for a one-element array and a zero-element array. When the count is '0', we know that this is a zero-element array. When it's >=1, then it's a normal constant sized array. When it's -1, then the array is unbounded. llvm-svn: 169219
* objective-C blocks: Make sure that identical logic is usedFariborz Jahanian2012-11-281-2/+2
| | | | | | | | | | in deciding a copy/dispose field is needed in a byref structure and when generating the copy/dispose helpers. In certain cases, these fields were being added but no copy/dispose was being generated. This was uncovered in ARC, but not in MRR. // rdar://12759433 llvm-svn: 168825
* A step towards sorting out handling of triviality of special members in C++11.Richard Smith2012-11-161-1/+1
| | | | | | | | | | | | | | Separate out the notions of 'has a trivial special member' and 'has a non-trivial special member', and use them appropriately. These are not opposites of one another (there might be no special member, or in C++11 there might be a trivial one and a non-trivial one). The CXXRecordDecl predicates continue to produce incorrect results, but do so in fewer cases now, and they document the cases where they might be wrong. No functionality changes are intended here (they will come when the predicates start producing the right answers...). llvm-svn: 168119
* Use empty parens for empty function parameter list instead of '(void)'.Dmitri Gribenko2012-11-151-1/+1
| | | | llvm-svn: 168041
* Fix 80-column violation.Fariborz Jahanian2012-11-141-3/+5
| | | | llvm-svn: 167932
* objective-C blocks: Provide layout map for byrefFariborz Jahanian2012-11-141-0/+6
| | | | | | variables captured in a block. // rdar://12184410 llvm-svn: 167931
OpenPOWER on IntegriCloud