History log of /external/clang/test/CodeGenCXX/debug-info-template-member.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
651f13cea278ec967336033dd032faef0e9fc2ec 24-Apr-2014 Stephen Hines <srhines@google.com> Updated to Clang 3.5a.

Change-Id: I8127eb568f674c2e72635b639a3295381fe8af82
/external/clang/test/CodeGenCXX/debug-info-template-member.cpp
c6d680003196028ed0a05e8da29ab269d6f79651 09-Oct-2013 Manman Ren <manman.ren@gmail.com> Debug Info: update testing cases when the context and type fields of
template_type and template_value are updated to use DIRef.

Paired commit with r192320.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192321 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/debug-info-template-member.cpp
1fe3263a0df6ba164ea3922590a9e585e6737b82 09-Oct-2013 Manman Ren <manman.ren@gmail.com> Debug Info: update testing cases when the derived-from field of
DIDerivedType is updated to use DITypeRef.

Paired commit with r192246.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192247 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/debug-info-template-member.cpp
8e0f65fc23bb668b9e3322bd699f305d8c90b367 05-Oct-2013 Manman Ren <manman.ren@gmail.com> Debug Info: update testing cases when the derived-from field of a
DW_TAG_pointer_type is updated to use DITypeRef.

Paired commit with r192018.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192019 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/debug-info-template-member.cpp
dadbd4797ce12c914580dec51d8973cfed5d37b3 04-Oct-2013 Eric Christopher <echristo@gmail.com> Temporarily revert r191801 due to conflicts with the revert of r191792.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191968 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/debug-info-template-member.cpp
865750e2be4833eb904d8f54d23a8078ac9309dd 02-Oct-2013 Manman Ren <manman.ren@gmail.com> Debug Info: update testing cases when the derived-from field of a
DW_TAG_pointer_type is updated to use DITypeRef.

Paired commit with r191800.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191801 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/debug-info-template-member.cpp
db2c42ca845e15a4aa5486031bbfe2738ef58a86 06-Sep-2013 Manman Ren <manman.ren@gmail.com> Debug Info: Update testing case.

DIBuilder now uses an identifier to reference DIType in containing type field of
a DICompositeType (in r190190).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190191 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/debug-info-template-member.cpp
74341d8fd49db382e83008ecea5c0d8ff9d8b6cb 06-Sep-2013 David Blaikie <dblaikie@gmail.com> PR17046, PR17092: Debug Info assert-on-valid due to member loss when context creation recreates the item the context is created for

By removing the possibility of strange partial definitions with no
members that older GCC's produced for the otherwise unreferenced outer
types of referenced inner types, we can simplify debug info generation
and correct this bug. Newer (4.8.1 and ToT) GCC's don't produce this
quirky debug info, and instead produce the full definition for the outer
type (except in the case where that type is dynamic and its vtable is
not emitted in this TU).

During the creation of the context for a type, we may revisit that type
(due to the need to visit template parameters, among other things) and
used to end up visiting it first there. Then when we would reach the
original code attempting to define that type, we would lose debug info
by overwriting its members.

By avoiding the possibility of latent "defined with no members" types,
we can be sure than whenever we already have a type in a cache (either a
definition or declaration), we can just return that. In the case of a
full definition, our work is done. In the case of a partial definition,
we must already be in the process of completing it. And in the case of a
declaration, the completed/vtable/etc callbacks can handle converting it
to a definition.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190122 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/debug-info-template-member.cpp
83369bf8f6244f20ae8bfa2fcb3a556f94da27de 30-Aug-2013 Manman Ren <manman.ren@gmail.com> Debug Info: generate a unique identifier for C++ struct, class, union, and enum.

We use CXX mangler to generate unique identifier for external C++ struct,
union, class and enum. Types with unique identifier are added to retained
types by DIBuilder.

Testing cases are updated to reflect the unique identifier generated for types.
The order of MDNodes is changed because of retained types and testing cases
are updated accordingly.

Testing case debug-info-uuid.cpp now emits error with Itanium mangler, since
uuid is not yet handled in Itanium mangler. And it will check for the error
message.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189622 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/debug-info-template-member.cpp
18760453868e9b831b8575ae64119b07ab4dcdf5 29-Aug-2013 Manman Ren <manman.ren@gmail.com> Debug Info: this reverts commit r189600.

We had further discussions on how to retain types, whether to do it in front end
or in DIBuilder. And we agree to do it in DIBuilder so front ends
generating unique identifier do not need to worry about retaining them.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189609 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/debug-info-template-member.cpp
f1acc31e4586dfec00a20e82094f7ad782d50cc3 29-Aug-2013 Manman Ren <manman.ren@gmail.com> Debug Info: generate a unique identifier for C++ struct, class, union, and enum.

We use CXX mangler to generate unique identifier for external C++ struct,
union, class and enum. Types with unique identifier are added to RetainedTypes
to make sure they are treated as used even when all uses are replaced with
the identifiers.

A single type can be added to RetainedTypes multiple times. For example, both
createForwardDecl and createLimitedType can add the same type to RetainedTypes.
A set is used to avoid duplication when updating AllRetainTypes in DIBuilder.

Testing cases are updated to reflect the unique identifier generated for types.
The order of MDNodes is changed because of retained types and testing cases
are updated accordingly.

Testing case debug-info-uuid.cpp now emits error with Itanium mangler, since
uuid is not yet handled in Itanium mangler.

We choose to update RetainedTypes in clang, then at finalize(), we update
AllRetainTypes in DIBuilder. The other choice is to update AllRetainTypes
in DIBuilder when creating a DICompositeType with unique identifier. This
option requires using ValueHandle for AllRetainTypes in DIBuilder since
the created DICompositeType can be modified later on by setContainingType etc.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189600 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/debug-info-template-member.cpp
11fa7518cb2cf92db977ccc15f0db97307eac58c 29-Aug-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: Further fix/improvements to r189494 (and LLVM r189495).

Selfhosting was crashing with the same type of problem but involving
template specializations.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189530 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/debug-info-template-member.cpp
d7feb049c8a7674b274c83c3e3979e8886a54788 27-Aug-2013 Manman Ren <manman.ren@gmail.com> Debug Info: follow-up patch to r189283.

Thanks David for his suggestion. This commit updates testing cases
to have more specific CHECKs.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189286 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/debug-info-template-member.cpp
0858246d180a9e654ca6d755f5c12202cef4fc0b 27-Aug-2013 Manman Ren <manman.ren@gmail.com> Debug Info: add an identifier field to DICompositeType.

Paired with llvm r189282.
Update testing cases to handle an extra field for DICompositeType.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189283 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/debug-info-template-member.cpp
c138ff58683565a0b7f29fd28ac8577710aa5751 18-Aug-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: Avoid duplicating types that may be created during the process of creating their context

A partner to r188639, this is a somewhat heavy-handed fix to the general
issue, since even after that prior change the issue does still
unavoidably arise with template parameters (see test case).

There are other ways we could consider addressing this (see FIXME).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/debug-info-template-member.cpp
d6d5d69f61fba69fdbc5aae72b88a5b367a210ec 09-Aug-2013 David Blaikie <dblaikie@gmail.com> Only emit debug info for implicit members that actually get codegen, not just ODR use.

This includes special members (copy/default ctor, copy assign, default
ctor) and template specializations for member function templates.

Good for a 5% decrease (1.80 to 1.71 GB) in size on Clang+LLVM's .dwo
files (when using fission).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188085 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/debug-info-template-member.cpp
8a40cc6f9cba0aaa1aac477e2b4c4605629dc587 20-Mar-2013 David Blaikie <dblaikie@gmail.com> Simplify/generalize some debug info test cases

Mostly, try to depend on the annotation comments more so these tests are more
legible, brief, and agnostic to schema changes in the future (sure, they're not
agnostic to changes to the comment annotations but since they're easier to read
they should be easier to update if that happens).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177457 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/debug-info-template-member.cpp
9556b391091d8a4fa82a9d171f44ef0b3c1ab3f7 17-Oct-2012 Eric Christopher <echristo@gmail.com> Revert r158009 since there are some uses of artificial functions in
debug info.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166109 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/debug-info-template-member.cpp
3de00ce9075c197b1fcaca69f3b5870a32176349 05-Jun-2012 Eric Christopher <echristo@apple.com> Reapply "Only emit debug information for methods that are user defined, there's"

As the failing testcase has been fixed.

This reverts commit 0637f407e6ee7fdccde17fbf9a5fcc4853187b3e.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158009 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/debug-info-template-member.cpp
0637f407e6ee7fdccde17fbf9a5fcc4853187b3e 05-Jun-2012 John McCall <rjmccall@apple.com> Revert "Only emit debug information for methods that are user defined, there's"

This reverts r157970, which was not passing on
clang-x86_64-darwin10-nobootstrap-RA

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157983 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/debug-info-template-member.cpp
9b26efe7b62cf6dcb27ce60824e03856cedbea2f 05-Jun-2012 Eric Christopher <echristo@apple.com> Only emit debug information for methods that are user defined, there's
not much reason to emit for constructors and destructors that aren't
user defined.

rdar://11593099

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157970 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/debug-info-template-member.cpp
167174518cc9bdd84b27bfad581028f4092cd68c 14-Mar-2012 Eric Christopher <echristo@apple.com> Add support to mangle templated member function names with template
args.

Fixes rdar://11042577

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152691 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/debug-info-template-member.cpp
3b10cfe6b804cef041ddf85854d2d536f7a82cb6 14-Mar-2012 Eric Christopher <echristo@apple.com> When adding member functions to a class add any specializations of
function templates as well.

A future commit will mangle the added name with the template args
like classes are mangled.

Fixes rdar://10986010

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152683 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/test/CodeGenCXX/debug-info-template-member.cpp