aboutsummaryrefslogtreecommitdiff
path: root/clang/test/Modules/ModuleDebugInfo.cpp
AgeCommit message (Collapse)AuthorFilesLines
2016-10-20Remove 24 instances of 'REQUIRES: shell'Reid Kleckner1-1/+1
Tests fall into one of the following categories: - The requirement was unnecessary - Additional quoting was required for backslashes in paths (see "sed -e 's/\\/\\\\/g'") in the sanitizer tests. - OpenMP used 'REQUIRES: shell' as a proxy for the test failing on Windows. Those tests fail there reliably, so use XFAIL instead. I tried not to remove shell requirements that were added to suppress flaky test failures, but if I screwed up, we can add it back as needed. llvm-svn: 284793
2016-08-17Module debug info: Fix a bug in handling record decls without fields.Adrian Prantl1-0/+10
The previous condition would erroneously mark all CXXRecordDecls that didn't have any fields as being defined in a clang module. This patch fixes the condition to only apply to explicit template instantiations. <rdar://problem/27771823> llvm-svn: 278952
2016-07-21Reroll "Include unreferenced nested types in member list only for CodeView"Adrian McCarthy1-1/+1
Another attempt at r276271, hopefully without breaking ModuleDebugInfo test. llvm-svn: 276317
2016-07-21Revert "Include unreferenced nested types in member list only for CodeView"Adrian McCarthy1-5/+1
Patch broke ModuleDebugInfo test on the build bots (but not locally). Again. svn revision: r276271 This reverts commit 9da8a1b05362bc96f2855fb32b5588b89407685d. llvm-svn: 276279
2016-07-21Include unreferenced nested types in member list only for CodeViewAdrian McCarthy1-1/+5
Unreferenced nested structs and classes were omitted from the debug info. In DWARF, this was intentional, to avoid bloat. But for CodeView, we want this information to be consistent with what Microsoft tools would produce and expect. llvm-svn: 276271
2016-04-26Module debugging: Also correctly handle typedef'd foward-declared members.Adrian Prantl1-0/+4
Thanks again to Richard Smith for pointing this out. llvm-svn: 267630
2016-04-25Module Debugging: Fix the condition for determining whether a templateAdrian Prantl1-7/+43
instantiation is in a module. This patch fixes the condition for determining whether the debug info for a template instantiation will exist in an imported clang module by: - checking whether the ClassTemplateSpecializationDecl is complete and - checking that the instantiation was in a module by looking at the first field. I also added a negative check to make sure that a typedef to a forward-declared template (with the definition outside of the module) is handled correctly. http://reviews.llvm.org/D19443 rdar://problem/25553724 llvm-svn: 267464
2016-04-23DebugInfo: Adapt to loss of DITypeRef in LLVM r267296Duncan P. N. Exon Smith1-19/+18
LLVM stopped using MDString-based type references, and DIBuilder no longer fills 'retainedTypes:' with every DICompositeType that has an 'identifier:' field. There are just minor changes to keep the same behaviour in CFE. Leaving 'retainedTypes:' unfilled has a dramatic impact on the output order of the IR though. There are a huge number of testcase changes, which were unfortunately not really scriptable. llvm-svn: 267297
2016-04-15Update to match LLVM changes for PR27284.Adrian Prantl1-3/+3
(Reverse the ownership between DICompileUnit and DISubprogram.) http://reviews.llvm.org/D19034 <rdar://problem/25256815> llvm-svn: 266445
2016-03-07Module Debugging: Fix a crash when emitting debug info for nested tag typesAdrian Prantl1-0/+7
whose DeclContext is not yet complete by deferring their emission. rdar://problem/24918680 llvm-svn: 262851
2016-02-10Remove some unnecessary CHECK-SAMEs in ModuleDebugInfo.{cpp,m}.Justin Lebar1-1/+0
Suggested by Paul Robinson. llvm-svn: 260346
2016-02-10Get rid of CHECK-SAME-NOT in tests.Justin Lebar1-10/+16
Summary: This isn't a FileCheck directive; it does nothing. Reviewers: jroelofs Subscribers: cfe-commits, majnemer Differential Revision: http://reviews.llvm.org/D17051 llvm-svn: 260334
2016-01-22Module Debugging: Use a nonzero DWO id for precompiled headers.Adrian Prantl1-2/+1
PCH files don't have a module signature and LLVM uses a nonzero DWO id as an indicator for skeleton / module CUs. This change pins the DWO id for PCH files to a known constant value. The correct long-term solution here is to implement a module signature that is an actual dterministic hash (at the moment module signatures are just random nonzero numbers) and then enable this for PCH files as well. <rdar://problem/24290667> llvm-svn: 258507
2016-01-20Module Debugging: Fine-tune the condition that determines whether a typeAdrian Prantl1-0/+4
can be found in a module. There are externally visible anonymous types that can be found: typedef struct { } s; // I can be found via the typedef. There are anonymous internal types that can be found: namespace { struct s {}; } // I can be found by name. rdar://problem/24199640 llvm-svn: 258272
2016-01-19Module Debugging: Make sure that anonymous tag decls that define globalAdrian Prantl1-0/+16
variables are visited. This shouldn't encourage anyone to put global variables into clang modules. rdar://problem/24199640 llvm-svn: 258250
2016-01-19Module Debugging: Defer the emission of anonymous tag declsAdrian Prantl1-0/+12
until we are visiting their declcontext. This fixes a regression introduced in r256962: When building debug info for a typdef'd anonymous tag type, we would be visiting the inner anonymous type first thus creating a "typedef changes linkage of anonymous type, but linkage was already computed" error. rdar://problem/24199640 llvm-svn: 258152
2016-01-09Module debugging: Add a testcase for standalone forward declarations.Adrian Prantl1-0/+4
llvm-svn: 257241
2016-01-06Module debugging: Defer emitting tag types until their definitionAdrian Prantl1-6/+14
was visited and all decls have been merged. We only get a single chance to emit the types for virtual classes because CGDebugInfo::completeRequiredType() categorically doesn't complete them. llvm-svn: 256962
2016-01-05Fix a typo in testcase and increase its coverage!Adrian Prantl1-1/+1
llvm-svn: 256874
2015-10-08Stop messing with the 'g' group of options in CompilerInvocation.Douglas Katzman1-1/+1
With this change, most 'g' options are rejected by CompilerInvocation. They remain only as Driver options. The new way to request debug info from cc1 is with "-debug-info-kind={line-tables-only|limited|standalone}" and "-dwarf-version={2|3|4}". In the absence of a command-line option to specify Dwarf version, the Toolchain decides it, rather than placing Toolchain-specific logic in CompilerInvocation. Also fix a bug in the Windows compatibility argument parsing in which the "rightmost argument wins" principle failed. Differential Revision: http://reviews.llvm.org/D13221 llvm-svn: 249655
2015-09-22Module Debugging: Use the clang module signature as the module's dwo_idAdrian Prantl1-1/+3
when building a module. Clang already records the module signature when building a skeleton CU to reference a clang module. Matching the id in the skeleton with the one in the module allows a DWARF consumer to verify that they found the correct version of the module without them needing to know about the clang module format. llvm-svn: 248345
2015-09-10Debug Info: Remove an unnecessary debug type visitor.Adrian Prantl1-3/+4
Thanks to dblaikie for spotting this. llvm-svn: 247303
2015-09-08clang/test/Modules/ModuleDebugInfo.cpp: Add -triple %itanium to appease ↵NAKAMURA Takumi1-2/+2
ms-targeted builds. I think DebugInfo tests may avoid MS stuff for now. llvm-svn: 247093
2015-09-08Module Debugging: Emit debug type information into clang modules.Adrian Prantl1-0/+41
When -fmodule-format is set to "obj", emit debug info for all types declared in a module or referenced by a declaration into the module's object file container. This patch adds support for C and C++ types. llvm-svn: 247049