History log of /external/clang/lib/CodeGen/CGDebugInfo.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
ef8225444452a1486bd721f3285301fe84643b00 21-Jul-2014 Stephen Hines <srhines@google.com> Update Clang for rebase to r212749.

This also fixes a small issue with arm_neon.h not being generated always.

Includes a cherry-pick of:
r213450 - fixes mac-specific header issue
r213126 - removes a default -Bsymbolic on Android

Change-Id: I2a790a0f5d3b2aab11de596fc3a74e7cbc99081d
/external/clang/lib/CodeGen/CGDebugInfo.cpp
6bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89 29-May-2014 Stephen Hines <srhines@google.com> Update Clang for 3.5 rebase (r209713).

Change-Id: I8c9133b0f8f776dc915f270b60f94962e771bc83
/external/clang/lib/CodeGen/CGDebugInfo.cpp
651f13cea278ec967336033dd032faef0e9fc2ec 24-Apr-2014 Stephen Hines <srhines@google.com> Updated to Clang 3.5a.

Change-Id: I8127eb568f674c2e72635b639a3295381fe8af82
/external/clang/lib/CodeGen/CGDebugInfo.cpp
96b7bd42f8ffc47a28491d366d60d6d7ca7dccc8 19-Nov-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: Update caller based on DIType's MDNode* ctor becoming explicit in r195055.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195056 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
5f0db587078b5af32fc9ac41fe4276b80918fd8d 05-Nov-2013 Timur Iskhodzhanov <timurrrr@google.com> Fix vbtable indices when a class shares the vbptr with a non-virtual base

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194082 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
921ac4d6dfab47090b167dc092133d747a18c71a 21-Oct-2013 Yaron Keren <yaron.keren@gmail.com> Fix string assignment, David Blaikie suggestion.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193116 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
2e3fd942b6ba3539f53512a005270f97e09f1824 17-Oct-2013 Eric Christopher <echristo@gmail.com> Add the context that a function was created in as the context for the
function, not the context of the context.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192862 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
89fecb519558eed4cf9e8375af62c10367ed18ba 15-Oct-2013 Eric Christopher <echristo@gmail.com> Reflow slightly.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192736 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d6b52974a74b1819f62a034a6a4939e8d00a04bd 11-Oct-2013 Eric Christopher <echristo@gmail.com> Remove extra braces.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192473 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
a53d7a0259ff88f78ba8ecac7d0cb3ea96302b1d 27-Sep-2013 Timur Iskhodzhanov <timurrrr@google.com> Abstract out the emission of vtables, add basic support for vtable emission when using -cxx-abi microsoft

Reviewed at http://llvm-reviews.chandlerc.com/D1532

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191523 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
35969ea5c5a117c1131edee1866e47e2a33f07bb 26-Sep-2013 Adrian Prantl <aprantl@apple.com> Debug info: Fix a crash when trying to construct a type with redundant
ownership qualifiers.
Fixes rdar://problem/14990656.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
39232cd098f94e9e5e850eb2adb3a97372c6cf38 19-Sep-2013 Adrian Prantl <aprantl@apple.com> get rid of extra parentheses.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190962 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
95d3d1a9b2e5177d793f04cebfd1df01a435df44 19-Sep-2013 Adrian Prantl <aprantl@apple.com> Debug info: Explicitly set the DIVariable::isIndirect() flag for VLAs.
This allows us to get rid of an ugly hack in the backend.
Paired commit with LLVM.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190960 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
8b6aaa975fabb619e72c9b7be1de52f8e1d22e5c 13-Sep-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: omit debug info for friends

GCC ToT doesn't do this & it's worth about 3.2% on Clang's DWO file size
with Clang. Some or all of this may be due to things like r190715 which
could have source fixes/improvements, but it's not clear that's the case
and that doesn't help other source bases.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190716 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
8495379bd6127dac2c39a6dd7840d95bb3a9aaa3 09-Sep-2013 Benjamin Kramer <benny.kra@googlemail.com> CGDebugInfo: Hoist string allocation in a helper function. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190314 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
e575359c34a9248c55ec0c03a8fc945f1ee4cb01 09-Sep-2013 Benjamin Kramer <benny.kra@googlemail.com> Fix constructor-related typos.

Noticed by Roman Divacky.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190311 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c23b1db6268c8e7ce64026d57d1510c1aac200a0 08-Sep-2013 Manman Ren <manman.ren@gmail.com> Debug Info: pass in DIScope instead of DIDescriptor in createFieldType.

Improve readability. No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190268 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.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/lib/CodeGen/CGDebugInfo.cpp
29b8b68c93008317acca212970f2e2c37fa8e874 05-Sep-2013 David Blaikie <dblaikie@gmail.com> Reapply r189013 (reverted in r189906) now that the underlying issue is fixed and tested (in r189996)

Debug info emission was tripping over an IRGen bug (fixed in r189996)
that was resulting in duplicate emission of static data members of class
templates in namespaces.

We could add more test coverage to debug info for this issue
specifically, but I think the underlying IRGen test is more targeted and
sufficient for the issue.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190001 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
2a7002ed1e56c2b5411d8fb4ed3b63b2f9a7cdf9 04-Sep-2013 David Blaikie <dblaikie@gmail.com> Revert "DebugInfo: Remove explicit declaration-emissiong handling now that we have a more principled approach (the 'requires complete type' callback)"

This reverts commit r189013.

This is causing a segfault crash in a test case I have. Reverting while
I investigate the issue.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189906 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
3b8e0b7f96164e8c49d2a833da26edd960f5da1f 30-Aug-2013 Yunzhong Gao <Yunzhong_Gao@playstation.sony.com> Revert r189649 because it was breaking sanitizer bots.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189660 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
51a31e1da76cc0906e4708ae15e2f7ecf1ba5f13 30-Aug-2013 Yunzhong Gao <Yunzhong_Gao@playstation.sony.com> Fixing a bug where debug info for a local variable gets emitted at file scope.

The patch was discussed in Phabricator. See:
http://llvm-reviews.chandlerc.com/D1281



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189649 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.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/lib/CodeGen/CGDebugInfo.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/lib/CodeGen/CGDebugInfo.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/lib/CodeGen/CGDebugInfo.cpp
ac7c25f0cab42a34d6e6acba7afff729caf0258e 29-Aug-2013 Eric Christopher <echristo@gmail.com> 80-col.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189531 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.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/lib/CodeGen/CGDebugInfo.cpp
0a0be741f21e75556f649e7e4fcd30e905fc6e2e 28-Aug-2013 Manman Ren <manman.ren@gmail.com> Format. Thanks David for pointing it out.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189521 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f332733e141905ccefe43e7fe65f9a8a4263a2f6 28-Aug-2013 Manman Ren <manman.ren@gmail.com> Debug Info: update interface for CreateEnumType and getOrCreateRecordFwdDecl.

Both functions will take a Type pointer instead of a Decl pointer. This helps
with follow-up type uniquing patches, which need the Type pointer to call
CXX mangler to generate unique identifiers.

No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189519 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
dd65802b1cf30d892b82c8370b96e6c94d239510 28-Aug-2013 David Blaikie <dblaikie@gmail.com> More comments for r189494.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189516 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
4a68491fa179572e6b2c1364e7ff24c05110324b 28-Aug-2013 David Blaikie <dblaikie@gmail.com> Comments for r189494

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189504 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c5761271730ab929f19facef51903c9bdf5c5d0b 28-Aug-2013 David Blaikie <dblaikie@gmail.com> PR16995: Failing to associate static members with their enclosing class

In the transition from declaration (with some members) to definition, we
were overwriting the list of members with the empty list when attaching
template parameters.

The fix is in llvm::DICompositeType::addMember (along with asserts that
cause this bug to be covered by existing Clang test cases), including
adding some asserts to catch this sort of issue which found issues fixed
in this commit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189494 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c7971a9efdf9880448a69aabb5182c3c27eecf6d 28-Aug-2013 David Blaikie <dblaikie@gmail.com> Revert "PR14569: Omit debug info for thunks"

This reverts commit r189320.

Alexey Samsonov and Dmitry Vyukov presented some arguments for keeping
these around - though it still seems like those tasks could be solved by
a tool just using the symbol table. In a very small number of cases,
thunks may be inlined & debug info might be able to save profilers &
similar tools from misclassifying those cases as part of the caller.

The extra changes here plumb through the VarDecl for various cases to
CodeGenFunction - this provides better fidelity through a few APIs but
generally just causes the CGF::StartFunction to fallback to using the
name of the IR function as the name in the debug info.

The changes to debug-info-global-ctor-dtor.cpp seem like goodness. The
two names that go missing (in favor of only emitting those names as
linkage names) are names that can be demangled - emitting them only as
the linkage name should encourage tools to do just that.

Again, thanks to Dinesh Dwivedi for investigation/work on this issue.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189421 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
5db8b3138f36e11bca835881e81cc56bbd7b4fa4 26-Aug-2013 David Majnemer <david.majnemer@gmail.com> DebugInfo: Emit info for casted decls in template args

Summary:
Previously the backend wouldn't get to see the underlying GlobalValue
that corresponds to the template argument because it would be hidden by
a cast at the IR level. Instead strip the pointer casts off of the
value until we see the underlying GlobalValue.

Reviewers: dblaikie, echristo, majnemer

Reviewed By: majnemer

CC: cfe-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D1508

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189200 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
87b1f6d1901036602bcbccaeea341d175e7f900d 24-Aug-2013 David Majnemer <david.majnemer@gmail.com> DebugInfo: Emit info for constant expressions in template arguments

Summary:
This allows us to handle the general case where a non-type template
argument evaluates to a constant expression which isn't integral or a
declaration.

This fixes PR16939.

Reviewers: dblaikie, rsmith

Reviewed By: dblaikie

CC: cfe-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D1453

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189165 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
472519660a3b88f5bbde8e5ba13772c903a5034e 22-Aug-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: Remove explicit declaration-emissiong handling now that we have a more principled approach (the 'requires complete type' callback)

No functionality change intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189013 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
55a2b3dbffefceb82bc34b5c88699e9c0a0d0b8c 22-Aug-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: Require only the declaration of types only used as parameter and return types

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188962 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
5e6937bf3513d3081d149f3c84c862ca9f49762c 20-Aug-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: comment/inlining based on feedback from Eric & Adrian

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188834 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
eaacc885deefea195c5cc29b5b4d01996b9a335d 20-Aug-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: Simplify/clarify propagation of typemembers between declaration and definition

Based on code review feedback from Eric Christopher (on r188739) and
Adrian Prantl (r188642).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188829 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
5434fc29cb3ddbd0466b10a40ac0485f4cd7bc74 20-Aug-2013 David Blaikie <dblaikie@gmail.com> Revert "Revert "Revert "Revert "DebugInfo: Omit debug info for dynamic classes in TUs that do not have the vtable for that class""""

This reverts commit r188687 (reverts r188642 (reverts 188600 (reverts
188576))).

With added test coverage & fix for -gline-tables-only.

Thanks Michael Gottesman for reverting this patch when it demonstrated
problems & providing a reproduction/details to help me track this down.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188739 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
90e5523e4cd2230b86c6921b34affdcd35e0c4c0 19-Aug-2013 Michael Gottesman <mgottesman@apple.com> Revert "Revert "Revert "DebugInfo: Omit debug info for dynamic classes in TUs that do not have the vtable for that class"""

This reverts commit r188642.

This change is causing LTO builds to cause our 16 GB machines to swap and OOM
all weekend. I am going to work with Dave Blaikie to resolve the issue.

Sorry Dave =(.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
fc946271e008544b518321fdecc77ca076663c12 19-Aug-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: Do not include line/file info for artificial parameters & parameters of artificial functions

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188651 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
fcbeab6828268b7b044461e6406baab8d5a91577 18-Aug-2013 David Blaikie <dblaikie@gmail.com> Revert "Revert "DebugInfo: Omit debug info for dynamic classes in TUs that do not have the vtable for that class""

This reverts commit r188600.

r188640/r188639 fixed the root cause of the crash-on-valid that r188600
originally introduced. This now appears to bootstrap debug clang
successfully to the best of my testing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188642 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.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/lib/CodeGen/CGDebugInfo.cpp
498298d9d7b20fd67e270711b1a815dc6962d883 18-Aug-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: Don't emit vbase 'containing types' for context chain limited types

Possible minor reduction in debug info & avoid some cases where creating
a context chain could lead to the type the context chain is being
created for, being created. (this is still possible with template
parameters - tests/fixes/improvements to follow)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188639 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
3de73f007b0ca4cf611d3929d8da73ea7d0c2b8a 18-Aug-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: don't require full definitions for friend classes

Fixes a crash-on-valid introduced by r188486 (which should've occurred
earlier but for a blatant bug where calling createFwdDecl from the
requireCompleteType callback was useless under -flimit-debug-info and we
were just getting lucky with other later callbacks requiring the type
anyway).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188622 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ced39ec4ab3935d70203a3f07a464f425b1137c7 17-Aug-2013 David Blaikie <dblaikie@gmail.com> PR16927: Don't assert (or, previously, skip) static data members of enumeration type

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188612 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
05a0569aa1fa4191ba2b3fe1c5cb3f080740209c 17-Aug-2013 David Blaikie <dblaikie@gmail.com> Revert "DebugInfo: Omit debug info for dynamic classes in TUs that do not have the vtable for that class"

This reverts commit r188576.

Reverting while I investigate a selfhosting buildbot failure on Darwin.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188600 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
8863e6baaa760c2a0f4541fc6c0ca7993979a4b3 17-Aug-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: Canonicalize namespaces to avoid emitting multiple namespaces with the same name but different lines

Updated test case to not rely on line numbers in more cases (it's hard
to use the @ check syntax for debug info test cases (due to the
interesting ordering of metadata) and this case in particular (given the
hash-line directive)) - left a few in there to cover the line number
information for these.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188585 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
152701b54acf1e09ec4e7c6d6cb16fe6d82e23c6 16-Aug-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: Omit debug info for dynamic classes in TUs that do not have the vtable for that class

This reduces Clang's .dwo (fission debug info) size by 23% over
Clang+LLVM.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188576 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
841fd110a3b8f35d57050fb7db962232ee8bf764 16-Aug-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: Contrain the record type parameter for CollectRecordFields

This is the correct type (as is demonstrated by the fact that the caller
didn't need to change) & will be useful in a future patch.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188575 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
045a9f6762a567ccf6ba5aa8a534fed3d0fe518b 16-Aug-2013 Evgeniy Stepanov <eugeni.stepanov@gmail.com> Revert r188498.

This change broke release+asserts build with compiler-rt.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188539 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
cbcb030ab33d23c5f7e2e76e2e36843cb5295d50 16-Aug-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: CollectRecordStaticField -> CreateRecordStaticField to return its result.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188501 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
fab829d611ed0ef6c93bd2ab1a28c10501beafcb 16-Aug-2013 David Blaikie <dblaikie@gmail.com> Remove unnecessary explicit cast.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188500 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f1f5cc32f00ffb6c4d17757db3aa1c4b5d8d645c 16-Aug-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: Split out the implementation of getStaticDataMemberDeclaration for future use

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188498 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
327a36aea71e109d1ebd9c6fc142b1c237dd3c96 16-Aug-2013 David Blaikie <dblaikie@gmail.com> Fix assert added in r188494

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188496 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
409ab5670cf10fa2b9af2814d6c9b0c2f96a3615 15-Aug-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: Remove unused conditional

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188494 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
27ab0362bc030de340e25c72002c15f6b22fe683 15-Aug-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: Make CGDebugInfo::getStaticDataMemberDeclaration's argument type match the semantics

Rather than having a cast immediately inside the function, push that
type requirement out to the callers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188492 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
492b1020a7f9e34591843768cdf89af0ad4a7024 15-Aug-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: Add a FIXME, remove a FIXME.

(the removed FIXME no longer applies since we made this debug info
optimization not apply to C)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188491 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
278048971c8b2e153d305ee8917618c9bf38b1c3 15-Aug-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: Unify & optimize the lazy addition of record types

Rather than going through the whole getOrCreateType machinery to
manifest a type, cut straight to the implementation because we know we
have to do work.

While the previous implementation was sufficient for the two cases
(completeness and required completeness) we have already (the general
machinery could inspect the type for those attributes & go down the full
definition path), a pending change (to emit info for types when we emit
their vtables) won't have that luxury & we'll need to force the creation
rather than relying on the general purpose routine.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188486 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c5cd1a712eb98852ae73f027414d06be85dafff6 15-Aug-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: Revert change to the return type of createRecordFwdDecl

It still does only return DICompositeType, but I've no need to make that
change right now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188482 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
b94887e70fc83bacd106bfe3a5438e5310c672d5 15-Aug-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: remove unnecessary type registration

This happens in the caller a few frames up anyway.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188475 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
951094baa05a72f2623b7e25df609796ad97d908 15-Aug-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: Don't create duplicate forward declaration metadata unnecessarily.

No functionality change, at best a slight (questionable) optimization,
but necessary for correctness of future work.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188474 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
00383088ac262a998b83892056090622275d1992 13-Aug-2013 David Blaikie <dblaikie@gmail.com> Drive by cleanup

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188251 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
b3c2377422e820ab9d95145ab67a2fb9f9f4bf3f 13-Aug-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: Simplify declaration building code - relying on the limit debug info checking already in CreateType(RecordType)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188222 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
4a0771680ee2fa8e76e1c0d54eaf69f459daf424 13-Aug-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: simplify some limited/declaration creation APIs

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188214 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.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/lib/CodeGen/CGDebugInfo.cpp
ac00b79047318f917c5c49c487d5b8b3196e4d93 01-Aug-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: Don't prefer declarations over definitions in -flimit-debug-info in C

Without an ODR, the -flimit-debug-info debug info size optimization of
emitting declarations for fully defined types when only a declaration is
needed by the TU, is incorrect. Emit the full definition whenever it's
available in non-C++.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187611 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
8058833e12dd9cd38107f6dde3d5a17021ad3a5d 01-Aug-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: Emit template arguments for limited types used for context.

We emit definitions with no members when a nested type is
referenced/required (GCC does the same, to be fair) but failed to attach
the template arguments in such a case.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187608 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
841b37c346380d051f827a874a4f1d97cbbe52cf 01-Aug-2013 David Blaikie <dblaikie@gmail.com> Reduce a variable's scope (no functionality change)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187594 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
b6cdc96e7679f0344a36395a87c249930fac8a9f 24-Jul-2013 Adrian Prantl <aprantl@apple.com> Debug Info: Fix an oversight of r186553. Ensure that the function prologue
of an artificial function gets an artificial location as well.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187074 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
1f4379184ee07217183d11acf142ea6fe0d487a0 23-Jul-2013 Adrian Prantl <aprantl@apple.com> Implement a better fix for r186894 by setting the appropriate type for __byref_variable_layout.

rdar://problem/14386148

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186898 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
334ded9f4933b4e4891b3fae11c31ca3d259e98d 23-Jul-2013 Adrian Prantl <aprantl@apple.com> Debug Info: Acknowledge the alignment when locating byref block variables.
Fixes rdar://problem/14386148

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186894 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
8fed3f487962b284aecbed65662fec6bbe31b016 19-Jul-2013 Eric Christopher <echristo@gmail.com> Update createCompileUnit call for llvm changes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186638 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
b061ce2c7af5bb19294e16dbaf19a6b37ed2f716 18-Jul-2013 Adrian Prantl <aprantl@apple.com> s/BuiltinLocation/ArtificialLocation/

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186557 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
b2d139257d8e6d546622627b6d0b48ef7953230f 18-Jul-2013 Eric Christopher <echristo@gmail.com> Instead of checking against some version of "isType()" go ahead and
use the conversion to bool to check if we've managed to get a type
that isn't default constructed - as we meant to in the first place.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186556 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
0a10323b338b432c806bcc03f247fbb501421d62 18-Jul-2013 Adrian Prantl <aprantl@apple.com> Fix a compile error caught by bb-chapuni.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186555 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
6e73edfdea30afa2da8055c3d05180b01630092a 18-Jul-2013 Adrian Prantl <aprantl@apple.com> Fix a compile error caught by bb-chapuni.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186554 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ed6bbe4ab8d06cd09fdfd294e2b2f8ab3808f84a 18-Jul-2013 Adrian Prantl <aprantl@apple.com> Replace llvm::DIBuilder::DisableDebugLocations() with two RAII interfaces
inspired by CodegenFunction::LexicalScope.
- NoLocation temporarily turns off debug locations altogether.
This is useful for emitting instructions that should be
counted towards the function prologue.
- BuiltinLocation temporarily switches to an artificial debug location
that has a valid scope, but no line information. This is useful when
emitting compiler-generated helper functions that have no source
location associated with them.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186552 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
18a0cd5ef787db1b6849b962f67a5a8ed3c49be3 18-Jul-2013 Adrian Prantl <aprantl@apple.com> Clarified documentation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186551 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
5f4554f8c8f07c90048705f165fe1ed44413eaa2 18-Jul-2013 Adrian Prantl <aprantl@apple.com> Simplify logic by using the appropriate function.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186550 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
7dab97b5af44556453c13cf877e02b8ea4c6c1cf 18-Jul-2013 Eric Christopher <echristo@gmail.com> 80-column fixes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186542 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
688cf5b05713055d27bf53460f7c20a776440767 14-Jul-2013 Eric Christopher <echristo@gmail.com> Move BlockLiteralGeneric earlier in CGDebugInfo and remove
BlockLiteralGenericSet and replace with a call to isType() on the
BlockLiteralGeneric.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186293 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d3003dc68535e94fe2501265d68a10aec429d7d0 14-Jul-2013 Eric Christopher <echristo@gmail.com> Update a few comments and reformat a decl for clarity.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186292 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
658cd2c287b1a0b419f51cd18e5a48d4560d1c56 13-Jul-2013 David Blaikie <dblaikie@gmail.com> PR16214, PR14467: DebugInfo: use "RequireCompleteType" to decide when to emit the full definition of a type in -flimit-debug-info

This simplifies the core benefit of -flimit-debug-info by taking a more
systematic approach to avoid emitting debug info definitions for types
that only require declarations. The previous ad-hoc approach (3 cases
removed in this patch) had many holes.

The general approach (adding a bit to TagDecl and callback through
ASTConsumer) has been discussed with Richard Smith - though always open
to revision.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186262 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
226399ce18cdcbb1e83af7c5e644bdabb9d4f2f8 13-Jul-2013 David Blaikie <dblaikie@gmail.com> Correctly classify pack expansions as NON_CANONICAL_UNLESS_DEPENDENT

Test coverage for non-dependent pack expansions doesn't demonstrate a
failure prior to this patch (a follow-up commit improving debug info
will cover this commit specifically) but covers a related hole in our
test coverage.

Reviewed by Richard Smith & Eli Friedman.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@186261 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
4b87382ab9610a06145b5b162edb7165159c58e6 09-Jul-2013 Adrian Prantl <aprantl@apple.com> Reapply an improved version of r180816/180817.

Do not generate VLAs as complex variables any more, as they are now
correctly represented as breg+0 locations in the backend.

(Paired commit with LLVM: r185966)

rdar://problem/13658587

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185967 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
b6b0a711e4996a43e1932c20d0fd235bb711ad36 02-Jul-2013 Manman Ren <mren@apple.com> Debug Info: clean up usage of Verify.

No functionality change. It should suffice to check the type of a debug info
metadata, instead of calling Verify.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
24118f5d62f68b18a75db4eb570a0aaf7f4dda97 28-Jun-2013 Peter Collingbourne <peter@pcc.me.uk> Use the zero-argument DIBuilder::createNullPtrType in Clang.

Differential Revision: http://llvm-reviews.chandlerc.com/D1051

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185115 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
cd06f26835033e879a9278941f4f6e6a4086976d 26-Jun-2013 Eli Friedman <eli.friedman@gmail.com> Rewrite record layout for ms_struct structs.

The old implementation of ms_struct in RecordLayoutBuilder was a
complete mess: it depended on complicated conditionals which didn't
really reflect the underlying logic, and placed a burden on users of
the resulting RecordLayout. This commit rips out almost all of the
old code, and replaces it with simple checks in
RecordLayoutBuilder::LayoutBitField.

This commit also fixes <rdar://problem/14252115>, a bug where class
inheritance would cause us to lay out bitfields incorrectly.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185018 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
12df246d6dea2ee1f92c186f922f1afcf499647a 24-Jun-2013 Reid Kleckner <reid@kleckner.net> [AST] Introduce a new DecayedType sugar node

The goal of this sugar node is to be able to look at an arbitrary
FunctionType and tell if any of the parameters were decayed from an
array or function type. Ultimately this is necessary to implement
Microsoft's C++ name mangling scheme, which mangles decayed arrays
differently from normal pointers.

Reviewers: rsmith

Differential Revision: http://llvm-reviews.chandlerc.com/D1014

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184763 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ac8f43c9cb71880ed3fa7f56a2a2429eafbd4625 24-Jun-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: ensure negative enumerators are emitted as such

There's still a problem here - since we're not appropriately using the
signedness/range of the enum to chooset the encoding and emission of
enumerators, but GCC has some bugs around this too so I assume that's
not /such/ a high priority though I may get to it soon out of
completeness.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184695 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
35178dc09d97bb2e0612813def09833866e3ad82 22-Jun-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: Support (using GNU extensions) for template template parameters and parameter packs

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184644 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
23e66db769a708f4f5eed34779548d99d5665abd 22-Jun-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: Random tidying up/simplification

No functionality change intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184614 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f0c31d98d3db8ed76077999d10ac45ed23f7e75e 21-Jun-2013 David Blaikie <dblaikie@gmail.com> PR16214: Debug info for types first used via pointers or qualified types & later require definitions

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184594 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
076f51fd1f306cafc3b1f1d323d25ac81bf7d4f7 21-Jun-2013 David Blaikie <dblaikie@gmail.com> Fix all the silly things I committed in r184509

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184512 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
eab6a36cf1eed9a7fec0babd2206048e28dedd02 21-Jun-2013 David Blaikie <dblaikie@gmail.com> Alternative fix for r184473.

This just seems a bit tidier/more principled. Based on a patch provided
by Adrian - with the only minor tweak that it needed to use
"getTypeOrNull" rather than "getCompletedTypeOrNull" since we don't
store declarations in the CompletedTypes cache.

No intended functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184509 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
6bb110292c4e33a6ee2856cf91e0774107aa7d9c 20-Jun-2013 Adrian Prantl <aprantl@apple.com> Debug Info: Attempt to resolve forward declarations if we are not emitting
limited debug info.

This is another small addendum to r184252.

rdar://problem/14101097

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184473 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
41c9baed95a1e7974e6cccf7b4120fd1866ff125 19-Jun-2013 David Blaikie <dblaikie@gmail.com> Debug Info: PR14763/r183329 - specify that non-trivial pass-by-value parameters are stored indirectly

This is to fix the location information for such parameters to refer to
the object accessible through the pointer rather than to the pointer
parameter itself.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
776bfa16c96d501c7fd51beb14f929fa4736caac 19-Jun-2013 Adrian Prantl <aprantl@apple.com> Add some comments to r184252.

rdar://problem/14101097

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184259 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
14c1a13e64808ccd2c39155793194ce499d82ca3 19-Jun-2013 Adrian Prantl <aprantl@apple.com> Emit forward decls for structs with declarations only when we are
limiting debug info.

FIXME: There is still work left to do here, the testcase should work even with -flimit-debug-info.

rdar://problem/14101097

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
56b108ad2b44659b3b4c3815145d226e8540c8e2 08-Jun-2013 Eric Christopher <echristo@gmail.com> 80-column fixup after recent change to getOrCreateType.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183586 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
80e8ea92d6dcaa05165dcb4730485db82dcd4629 08-Jun-2013 Adrian Prantl <aprantl@apple.com> address some comments on r183474:
- factor the name construction part out from constructSetterName
- rename constructSetterName to the more appropriate constructSetterSelector

no functionality change intended.
rdar://problem/14035789

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183582 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
4f97f853357e2769db3d7999424e346ac5adb297 07-Jun-2013 Adrian Prantl <aprantl@apple.com> documentation: remove confusing reference to properties.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183475 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
5ae17a17709acaf005e0c22839ef83c5e21f7db5 07-Jun-2013 Adrian Prantl <aprantl@apple.com> ObjC Debug Info: Emit the names of accessors whenever they diverge from
the default names, not just when the isImplicit flag is set.

rdar://problem/14035789

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183474 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
b5a50075d810002c718711675aae067f92b80670 07-Jun-2013 Adrian Prantl <aprantl@apple.com> Improve documentation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183473 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
993b39f4cd0fcc6007d6f65b6d82db3e0242c1a2 05-Jun-2013 David Blaikie <dblaikie@gmail.com> PR14763: Debug info for non-trivial record parameters

There seems to have been some erroneous code attempting to describe the
ABI of parameters (non-trivial record parameters are passed by
reference). This would break the type of the function (especially when
it caused a mismatch between the type of a declaration & a definition)
causing PR14763 and PR14645.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183329 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
5f6e2f4010e1ebbc07231eff7c92e474e8912350 05-Jun-2013 David Blaikie <dblaikie@gmail.com> PR16214: Debug Info: -flimit-debug-info doesn't omit definitions for types used via typedefs

In an effort to make -flimit-debug-info more consistent I over-shot the
mark & made types used via typedefs never produce definitions in the
debug info (even if the type was used in a way that would require a
definition).

The fix for this is to do exactly what I was hoping to do at some point
- plumb the declaration/definition choice through the various layers of
"CreateType" in CGDebugInfo. In this way we can produce declarations
whenever they are sufficient & definitions otherwise - including when
qualifiers are used, for example (discovered in PR14467). This may not
be complete (there may be other types/situations where we need to
propagate the "declaration/definition" choice) but it lays the basic
foundation which we can enhance in future iterations.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183296 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
b0f77b065761670921fdf9c56029856cb5d9c306 24-May-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: Rename CreatePointerType to getOrCreateTypeDeclaration

To make this more consistent with 'getOrCreateType' & clarify the
distinction between the two. The only thing I couldn't quite communicate
in the name is that getOrCreateTypeDeclaration may actually produce a
full definition (in -fno-limit-debug-info) but the point is to call it
whenever only a declaration is needed & the implementation can choose
whether to provide a declaration or definition.

(also, unfortunately, getOrCreateType can produce declarations too - we
should sure this up by making it not do that - any caller that can
tolerate a declaration should be calling getOrCreateTypeDeclaration
instead)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182674 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
912964863c344dd84976ee281bd213d0485645ba 24-May-2013 David Blaikie <dblaikie@gmail.com> PR16091: Error when attempting to emit debug info for undeduced auto return types

Perhaps we should just suppress this, rather than erroring, but since we
have the infrastructure for it I figured I'd use it - if this is
determined to be not the right thing we should probably remove that
infrastructure entirely. I guess it's lying around from the early days
of implementing debug info support.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182673 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
9a84529ed075d8047bb93f278a9da5e417fd71f3 23-May-2013 David Blaikie <dblaikie@gmail.com> Debug Info: Handle function/method types using the most specific type

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182533 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
0cb0002332dff5b7bc957c6746a20b78ab3ab0c2 22-May-2013 Adrian Prantl <aprantl@apple.com> Comment and cleanup.

rdar://problem/13359718

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182524 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c32a21747251f49a793900dc816bd6d16706612b 22-May-2013 Adrian Prantl <aprantl@apple.com> Bugfix for r181629:
- The return type should be a pointer to the class type.
- Make the condition more specific.

rdar://problem/13359718

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182504 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
e2eb89a8fb8644bf9d89575f9cf2227699ed2fa7 21-May-2013 David Blaikie <dblaikie@gmail.com> Debug Info: Simplify the code changed in r182403 to reduce indent & avoid a duplicate lookup in the insertion case

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182404 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
297dee826f8979a2b910e46b96d59c5308f638f6 21-May-2013 David Blaikie <dblaikie@gmail.com> Debug Info: don't bother reinserting elements into maps we just retrieved them from

(no intended behavior change)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182403 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
1e97c1e978cd71cb1fda14d7954045dd3da4924d 21-May-2013 David Blaikie <dblaikie@gmail.com> Fix whitespace

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182400 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
fc46ebc2b1345723a894ae352cfb206c1d930295 21-May-2013 David Blaikie <dblaikie@gmail.com> PR14606: Debug Info for namespace aliases/DW_TAG_imported_module

This resolves the last of the PR14606 failures in the GDB 7.5 test
suite. (but there are still unresolved issues in the imported_decl case
- we need to implement optional/lazy decls for functions & variables
like we already do for types)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182329 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
9faebd23fd69ac1591520e811dfa5b25f73012f3 20-May-2013 David Blaikie <dblaikie@gmail.com> Revert "Revert "Debug Info: Using declarations/DW_TAG_imported_declaration of variables, types, and functions.""

This reverts commit r181947 (git d2990ce56a16050cac0d7937ec9919ff54c6df62 )

This addresses one of the two issues identified in r181947, ensuring
that types imported via using declarations only result in a declaration
being emitted for the type, not a definition. The second issue (emitting
using declarations that are unused) is hopefully an acceptable increase
as the real fix for this would be a bit difficult (probably at best we
could record which using directives were involved in lookups - but may
not have been the result of the lookup).

This also ensures that DW_TAG_imported_declarations (& directives) are
not emitted in line-tables-only mode as well as ensuring that typedefs
only require/emit declarations (rather than definitions) for referenced
types.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182231 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
b509224b28bf7ddb2e4ff1d52855df5b56b44bf4 18-May-2013 Adrian Prantl <aprantl@apple.com> Drop the const from the isa test.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182178 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
687ecae11966c3cf098dda03d229770b14de53ed 18-May-2013 Adrian Prantl <aprantl@apple.com> ObjC Debug Info: Emit the correct method names for accessors for
properties declared in a protocol.

rdar://problem/13798000

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182176 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f0890c420bd9c4a614160882d4d163cddf77ed26 16-May-2013 Eric Christopher <echristo@gmail.com> 80-columns.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181965 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
13c976710415041fca5aba25cc02d3813c74b990 16-May-2013 Eric Christopher <echristo@gmail.com> Replace a pile of calls with an instance variable that's set
once. Should be no functional change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181964 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
6537f083555f9606c495d05c562878aa49bae987 16-May-2013 Eric Christopher <echristo@gmail.com> Whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181960 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
214c3d6c64674427e3eaa8e8fefac8c684302010 16-May-2013 David Blaikie <dblaikie@gmail.com> Revert "Debug Info: Using declarations/DW_TAG_imported_declaration of variables, types, and functions."

This reverts commit r181393 (git 3923d6a87fe7b2c91cc4a7dbd90c4ec7e2316bcd).

This seems to be emitting too much extra debug info for two (known)
reasons:
* full class definitions are emitted when only declarations are expected
* unused using declarations still produce DW_TAG_imported_declarations

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181947 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
7be62a87abf60d4c13ab60ee8fb896aebac188a8 14-May-2013 David Blaikie <dblaikie@gmail.com> PR15956: Debug Info: Include the appropriate file location in types created due to using declarations

We might benefit from API refactoring here (why pass in a value that's
derived from another parameter?) but this is the immediate issue.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181747 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f8aa155e40bc98844f46ecbfdbe430696c36ce24 13-May-2013 David Blaikie <dblaikie@gmail.com> Debug Info: PR14992: Support values for non-type template parameters of function type

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181685 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
87360f2acd4e2fa706707135b95c64e5e2b63435 12-May-2013 David Blaikie <dblaikie@gmail.com> Debug Info: Comment changes in r181393 by request of echristo

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181672 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
e8065128777e13322aa2b4de86a362326e0c7686 11-May-2013 David Blaikie <dblaikie@gmail.com> Debug Info: correct comment

Eric's code review feedback to r181644

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181650 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
776a36453a48f3d1f305b83fbdf1632dde808ab5 11-May-2013 David Blaikie <dblaikie@gmail.com> Debug Info: Silently accept template argument packs

We could support the GCC extension DW_TAG_GNU_template_parameter_pack if
we're feeling adventurous, at some point - but I don't think GDB's doing
anything useful with it yet anyway.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181644 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
9dfd24324c079b564dda936c6ae46898b82121e2 10-May-2013 David Blaikie <dblaikie@gmail.com> PR14992: Debug Info: Support more non-type template parameters

* Provide DW_TAG_template_value_parameter for pointers, function
pointers, member pointers, and member function pointers (still missing
support for template template parameters which GCC encodes as a
DW_TAG_GNU_template_template_param)
* Provide values for all but the (member & non-member) function pointer case.
Simple constant integer values for member pointers (offset within the
object) and address for the value pointer case. GCC doesn't provide a
value for the member function pointer case so I'm not sure how, if at
all, GDB supports encoding that. & non-member function pointers should
follow shortly in a subsequent patch.
* Null pointer value encodings of all of these types, including
correctly encoding null data member pointers as -1.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181634 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
566a9c3680d9960bb0eb6acf33507251cc13a8d8 10-May-2013 Adrian Prantl <aprantl@apple.com> ObjC debug info: Substitute the class type for methods that return
a related type (e.g., if they use the instancetype keyword).

rdar://problem/13359718

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181629 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
089db2e3af0b6166a8e2253c453eccf551ddfbd8 09-May-2013 David Blaikie <dblaikie@gmail.com> Debug Info: Remove unnecessary check for dependent array types

This was added, untested (though the relevant crash was tested), in
r128725/PR9600. Removing it doesn't cause failures & nothing I can
imagine could cause this check to ever return 'true' (we should never be
dealing with dependent types here). The subsequent change to check
"isIncompleteType" (r128855/PR9608) makes a lot more sense.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181542 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f06989b9f360e2b43cb1d94c317cc6e1826f7611 09-May-2013 Adrian Prantl <aprantl@apple.com> typo

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181485 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
3923d6a87fe7b2c91cc4a7dbd90c4ec7e2316bcd 08-May-2013 David Blaikie <dblaikie@gmail.com> Debug Info: Using declarations/DW_TAG_imported_declaration of variables, types, and functions.

Basic support is implemented here - it still doesn't account for
declared-but-not-defined variables or functions. It cannot handle out of
order (declared, 'using', then defined) cases for variables, but can
handle that for functions (& can handle declared, 'using'd, and not
defined at all cases for types).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181393 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c2fc4ab28c13ebc1da5828e12e638514d4d777dc 07-May-2013 David Blaikie <dblaikie@gmail.com> DebugInfo: Support imported modules (using directives) within lexical blocks.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181272 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
230ea4179a4684ec0d89954b7a93731b176546e9 01-May-2013 Adrian Prantl <aprantl@apple.com> Revert 180817 because 180816 was reverted.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180823 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
826374a4de73088a8abfaa5f031ba54f1d9fbee0 01-May-2013 Adrian Prantl <aprantl@apple.com> Do not generate VLAs as complex variables any more, as they are now
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
/external/clang/lib/CodeGen/CGDebugInfo.cpp
957dac5b6d826bc0c10011c8b5c3f1b8007fda41 22-Apr-2013 David Blaikie <dblaikie@gmail.com> Revert "Revert "PR14606: Debug info for using 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
/external/clang/lib/CodeGen/CGDebugInfo.cpp
59d6a71d681adfdc7d976492eeb3deae84e8f2e2 19-Apr-2013 Adrian Prantl <aprantl@apple.com> Emit the underlying type in the debug info for all kinds of fixed enums
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
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c3e81e78e8b1d5ba3df2d5801841b4fbc53c1bd8 19-Apr-2013 Eric Christopher <echristo@gmail.com> Revert "PR14606: Debug info for using directives/DW_TAG_imported_module"

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
/external/clang/lib/CodeGen/CGDebugInfo.cpp
cec39845823bb051de7ae86bb9528c57547ec4cf 19-Apr-2013 David Blaikie <dblaikie@gmail.com> PR14606: Debug info for using directives/DW_TAG_imported_module

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
/external/clang/lib/CodeGen/CGDebugInfo.cpp
bb00079d2ca77815efa0ab50cb10f302d1ae69e4 19-Apr-2013 David Blaikie <dblaikie@gmail.com> Give CGDebugInfo::getContextDescriptor a more specific return type

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
/external/clang/lib/CodeGen/CGDebugInfo.cpp
64aa4b3ec7e62288e2e66c1935487ece995ca94b 17-Apr-2013 John McCall <rjmccall@apple.com> Standardize accesses to the TargetInfo in IR-gen.

Patch by Stephen Lin!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179638 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f068c92f22cc5c42433f5bd37b000a714a56670f 03-Apr-2013 Eric Christopher <echristo@gmail.com> Revert "Revert r178079, it caused PR15637."

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
/external/clang/lib/CodeGen/CGDebugInfo.cpp
bd0152fb251e84c6f335c66322b83a9af09fed0c 01-Apr-2013 Nico Weber <nicolasweber@gmx.de> Revert r178079, it caused PR15637.

Also add a test for PR15637.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178497 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
9b97adfb770c3b55c1a45049d53b624bbc6f62e1 29-Mar-2013 Adrian Prantl <aprantl@apple.com> Bugfix/Followup for r177086.
* 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
/external/clang/lib/CodeGen/CGDebugInfo.cpp
e86fcc46f560b8e0e13e13a7a1854658b231b2ea 29-Mar-2013 Adrian Prantl <aprantl@apple.com> Improvement on r177086.
* 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
/external/clang/lib/CodeGen/CGDebugInfo.cpp
2fcadbeecbbc0b48dc92b9ce778e5c7a53292505 27-Mar-2013 David Blaikie <dblaikie@gmail.com> Remove magic number usage from CGDebugInfo with new DICompositeType::setContainingType

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178092 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d74505e985976c3ef0170360174d863821c6165c 26-Mar-2013 David Blaikie <dblaikie@gmail.com> Debug Info: remove use of magic numbers to tweak specific debug info metadata fields

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178079 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f2b5e0707229e1149828ebc8d01d9308a997d6df 20-Mar-2013 Nick Lewycky <nicholas@mxc.ca> Make clang emit linkage names in debug info for subprograms when coverage info
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
/external/clang/lib/CodeGen/CGDebugInfo.cpp
bea407c92780ded6ef9aabc9d8ebbe60d233f381 14-Mar-2013 Adrian Prantl <aprantl@apple.com> Always declare the .block_descriptor parameter, not just the local copy.
Un-breaks gdb's invoke-block behavior.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177118 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
836e7c9357b312fd1ee5c90898ce2c81bb384997 14-Mar-2013 Adrian Prantl <aprantl@apple.com> Allocate stack storage for .block_descriptor and captured self at -O0.
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
/external/clang/lib/CodeGen/CGDebugInfo.cpp
00df5eaa9f4f7cc0809fd47c95311b532fbe63c6 12-Mar-2013 Adrian Prantl <aprantl@apple.com> Force column info to be generated for call expressions so we can
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
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ebbd7e07aa0f22722da6ed8dd3a55beed9699171 11-Mar-2013 Adrian Prantl <aprantl@apple.com> Improve the caching of debuginfo Objective C interface types.
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
/external/clang/lib/CodeGen/CGDebugInfo.cpp
4919de6a53a007487c6d6b173921b5e7152a2004 06-Mar-2013 Adrian Prantl <aprantl@apple.com> Ensure that DIType is regenerated after we visit an implementation
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
/external/clang/lib/CodeGen/CGDebugInfo.cpp
10b4df7ff21076c21ca764f8ca38ccaff7888f25 27-Feb-2013 Adrian Prantl <aprantl@apple.com> Temporarily revert r176116 for compile-time performance regression.

This reverts commit ea95e4587fd13606fbf63b10a07a7d02026aa39c.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176151 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
58c79037256c77ffdbaa0da12205777e239fe096 26-Feb-2013 Adrian Prantl <aprantl@apple.com> Ensure that DIType is regenerated after we visited an implementation that 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
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c1d0af1f550fdd59e6ce36f25bae6c735de90071 25-Feb-2013 David Blaikie <dblaikie@gmail.com> Update Clang for a minor DIBuilder breaking change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176003 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ff971d7973aaa00c286b788d30f6919c7b1f4de2 23-Feb-2013 Eric Christopher <echristo@gmail.com> Propagate the split dwarf file information through into the backend
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
/external/clang/lib/CodeGen/CGDebugInfo.cpp
5eada844fa70b6e2bc941dd7306f7a4fb1e8529d 22-Feb-2013 Benjamin Kramer <benny.kra@googlemail.com> Streamify getNameForDiagnostic and remove the string versions of PrintTemplateArgumentList.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175894 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
be5f1be4cf8bab6b571d54a2e18cb9e83d7be2fc 21-Feb-2013 Eric Christopher <echristo@gmail.com> Fix formatting and tabs in file.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175815 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
05f8ff134d5f270bd7bfe4aaef491bd3febddea1 21-Feb-2013 Fariborz Jahanian <fjahanian@apple.com> Patch for debug info of qualified-id types is 'id'
By Adrian Pranti.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175793 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
21f18c4fda167dc5f72feddbd6a7ac1b63200a0d 07-Feb-2013 Guy Benyei <guy.benyei@intel.com> Add OpenCL samplers as Clang builtin types and check sampler related restrictions.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174601 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c8c24277a8cce39db95b0e05b79cbdf7e7558355 02-Feb-2013 David Blaikie <dblaikie@gmail.com> Revert r174246, accidentally committed.

This reverts commit 1513eb9284c23acfd19cf742b95996fbb11ca741.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174249 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
1513eb9284c23acfd19cf742b95996fbb11ca741 02-Feb-2013 David Blaikie <dblaikie@gmail.com> Basics

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174246 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
0a0f93c90fd397a1aa9f97283c55f8ba0062bf55 01-Feb-2013 David Blaikie <dblaikie@gmail.com> Fix exception handling line table problems introduced by r173593

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
/external/clang/lib/CodeGen/CGDebugInfo.cpp
a6504853d297c30cfa271f4710af5a3d5db59449 26-Jan-2013 David Blaikie <dblaikie@gmail.com> PR14566: Debug Info: avoid top level lexical blocks in functions

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
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d24c9ab90b42370bb417f44e001a0347ee1ca87e 21-Jan-2013 NAKAMURA Takumi <geek4civic@gmail.com> CGDebugInfo.cpp: Fix a warning. [-Wunused-variable]

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173022 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
4b12be6a354fcad670ed440ce6c1c0583ee28186 21-Jan-2013 David Blaikie <dblaikie@gmail.com> PR14472: Preserve qualifiers while unwrapping types for debug info

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
/external/clang/lib/CodeGen/CGDebugInfo.cpp
e6b9d802fb7b16d93474c4f1c179ab36202e8a8b 20-Jan-2013 Guy Benyei <guy.benyei@intel.com> Implement OpenCL event_t as Clang builtin type, including event_t related 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
/external/clang/lib/CodeGen/CGDebugInfo.cpp
a89701bb49601235b8dabafccf10ca4b2efed0e2 20-Jan-2013 David Blaikie <dblaikie@gmail.com> The last of PR14471: Debug info support for inline in-class initializer for float static members

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172942 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
e8d7514d6adc149126d5cd47df95600389f0cb70 19-Jan-2013 David Blaikie <dblaikie@gmail.com> Emit the function type of member function pointer types the same as member 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
/external/clang/lib/CodeGen/CGDebugInfo.cpp
0395de36004a718e265cc256b1bbee3bd3a791dc 16-Jan-2013 Eric Christopher <echristo@gmail.com> Collect both normal and static data members of a class in source
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
/external/clang/lib/CodeGen/CGDebugInfo.cpp
9c78f9bddc42dbdeb05a7183b4770d33b0bda7d3 08-Jan-2013 David Blaikie <dblaikie@gmail.com> Extract the instance-method case for debug info out into a separate function.

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
/external/clang/lib/CodeGen/CGDebugInfo.cpp
67f8b5ef212eee155f69b6f90968fe18c8052122 07-Jan-2013 David Blaikie <dblaikie@gmail.com> Simplify computing debug info type for static member functions.

No (intended) functional change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171800 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
0028ee3dd32c5e3b089c0ef176b97ebcdd2c4cf6 07-Jan-2013 David Blaikie <dblaikie@gmail.com> PR14759: Improve/correct support for debug info for C++ member pointers.

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
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d8180cf9877cd793949ae94edbf2ee84341041c5 05-Jan-2013 David Blaikie <dblaikie@gmail.com> PR14573: Unnamed parameters in debug info, Part 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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171633 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
436653be0ca4eb696b31315a83a44390cc8bc0b3 05-Jan-2013 David Blaikie <dblaikie@gmail.com> Emit debug info for unnamed parameters.

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
/external/clang/lib/CodeGen/CGDebugInfo.cpp
fd5ac0d75abd6ead8dd39bf526b34eeaff81cef6 04-Jan-2013 Eric Christopher <echristo@gmail.com> Fix fieldNo usage for lambdas. No behavior change since the
field number was 0 anyhow.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171472 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
3b844ba7d5be205a9b4f5f0b0d1b7978977f4b8c 02-Jan-2013 Chandler Carruth <chandlerc@gmail.com> Rewrite #includes for llvm/Foo.h to llvm/IR/Foo.h as appropriate to
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
/external/clang/lib/CodeGen/CGDebugInfo.cpp
b13621d08e20ac7aa550e05896de8a57ee99c1e8 18-Dec-2012 Guy Benyei <guy.benyei@intel.com> Re-commit r170428 changes with Linux style file endings.

Add OpenCL images as clang builtin types.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170432 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
7f92f2d8d9b7a07900c030183bc13a9ff60057cc 18-Dec-2012 Guy Benyei <guy.benyei@intel.com> Revert changes from r170428, as I accidentally changed the line endings of these files to Windows style.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170431 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
736104a7619c53ef92553780273d7357a3cdde81 18-Dec-2012 Guy Benyei <guy.benyei@intel.com> Add OpenCL images as clang builtin types.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170428 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c9a9177e699897a71670ae211fa053240f41460e 13-Dec-2012 David Blaikie <dblaikie@gmail.com> Debug Info: Emit vtables pointer members as artificial.

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
/external/clang/lib/CodeGen/CGDebugInfo.cpp
9d05986cc590a0df3fcd38565068be554910ab31 04-Dec-2012 Bill Wendling <isanbard@gmail.com> Use the 'count' attribute to calculate the upper bound of an array.

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.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169311 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
55fc873017f10f6f566b182b70f6fc22aefa3464 04-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Sort all of Clang's files under 'lib', and fix up the broken headers
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.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169237 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
003ec237adbabe93d5f87d8c23b4d148b4767617 04-Dec-2012 Bill Wendling <isanbard@gmail.com> Add a 'count' field to the DWARF subrange.

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.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169219 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
b15c8984ea300624fbbde385d3907667ce1043fa 29-Nov-2012 Fariborz Jahanian <fjahanian@apple.com> objective-C blocks: Make sure that identical logic is used
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


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168825 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
426391cd51af86f9d59eceb0fb1c42153eccbb9a 16-Nov-2012 Richard Smith <richard-llvm@metafoo.co.uk> A step towards sorting out handling of triviality of special members in C++11.

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...).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168119 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c4a77906c259cba58c147d8468c406a430ecdcbb 15-Nov-2012 Dmitri Gribenko <gribozavr@gmail.com> Use empty parens for empty function parameter list instead of '(void)'.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168041 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ccf57eab4ed02fca61e6996c8aebb5e04f46c0e7 14-Nov-2012 Fariborz Jahanian <fjahanian@apple.com> Fix 80-column violation.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167932 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
3ca23d7dc6cb61e6f363a58d9256d548199d120c 14-Nov-2012 Fariborz Jahanian <fjahanian@apple.com> objective-C blocks: Provide layout map for byref
variables captured in a block. // rdar://12184410



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167931 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
0c949efad533330eee234d613712510db7376e44 14-Nov-2012 Eric Christopher <echristo@gmail.com> Revert "Use the 'count' attribute instead of the 'upper_bound' attribute."
temporarily since it breaks the gdb bots.

This reverts commit r167807/30305bec25cac981c6d4a3b8be004401310a82a7.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167887 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
30305bec25cac981c6d4a3b8be004401310a82a7 13-Nov-2012 Bill Wendling <isanbard@gmail.com> Use the 'count' attribute instead of the 'upper_bound' attribute.

If we have a type 'int a[1]' and a type 'int b[0]', the generated DWARF is the
same for both of them because we use the 'upper_bound' attribute. Instead use
the 'count' attrbute, which gives the correct number of elements in the array.
<rdar://problem/12566646>


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
7745786044f159cf9ddf4a8a0f7be8fe2bebfa80 07-Nov-2012 Eli Friedman <eli.friedman@gmail.com> Put something sane in the DWARF offset field for bitfield ObjC ivars.
This is useful because unnamed bitfields can have effects on the
offsets which are not otherwise reflected in the DWARF information.

<rdar://problem/12629719>



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167503 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
70ae1226d9a479e56ac716396bdf97dc970ac840 03-Nov-2012 David Blaikie <dblaikie@gmail.com> Emit debug info for C++ struct definitions as DW_TAG_structure_type (instead of class_type).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167336 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
9417b05ef982bd3dbcae2fa24083b5be00d6c4f1 02-Nov-2012 David Blaikie <dblaikie@gmail.com> Fix debug tag type of forward declarations of struct/class in C++.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167308 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
7edf9e38b91917b661277601c0e448eef0eb2b56 01-Nov-2012 Richard Smith <richard-llvm@metafoo.co.uk> Simplify: replace getContext().getLangOpts() with just getLangOpts().


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167261 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
34b41f80aad3679c545a4ba9bca9c1a318d41844 25-Oct-2012 Alexey Samsonov <samsonov@google.com> Initialize debug info for special cases of functions that lack declarations and are generated by Clang (global initializers/destructors, thunks) . Fixes PR13942.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166676 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
4cdad3151bfb2075c6bdbfe89fbb08f31a90a45b 23-Oct-2012 Douglas Gregor <dgregor@apple.com> Switch CodeGenOptions over to a .def file, like we do with LangOptions.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166497 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
25dfaacde51df0834f10e3ab1646e6de9e229788 19-Oct-2012 Eric Christopher <echristo@gmail.com> Fix up comment and invert order. Most simple check first.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166240 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
da3301eec823fe770bfa49a1cb19649506caa698 18-Oct-2012 Eric Christopher <echristo@gmail.com> Add a new option for and disable column number information as there
are no known current users of column info. Robustify and fix up
a few tests in the process. Reduces the size of debug information
by a small amount.

Part of PR14106

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166236 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.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/lib/CodeGen/CGDebugInfo.cpp
5f608aedb6c5d32d2f7c51f9354a75b21f1eeaee 13-Oct-2012 Eli Friedman <eli.friedman@gmail.com> Make -mms-bitfields behave consistently.

Patch by Jeremiah Zanin.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165849 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
cadaf4b16a8425849c5de418b63af97728f93d5d 11-Oct-2012 Micah Villmow <villmow@gmail.com> Add in the first iteration of support for llvm/clang/lldb to allow variable per address space pointer sizes to be optimized correctly.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165726 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
25a6a84cf5067b32c271e3ba078676dee838798d 08-Oct-2012 Micah Villmow <villmow@gmail.com> Move TargetData to DataLayout.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165395 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
e6b39bcee047bb31af1cbca80aa13e3a287edfc6 05-Oct-2012 Eli Friedman <eli.friedman@gmail.com> Make sure to generate the right kind of MDNode for enum forward declarations.
PR14029, clang part.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165289 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
245d5a31e54f4ec69cc45885dfb4d42576fb3e5f 22-Sep-2012 Eric Christopher <echristo@apple.com> Mark the passed in "self" for a block as an object pointer so
that the backend can mark it as the representative pointer for
the block.

rdar://12001329

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
847665dc988266931b6aeab7aeb2d311caf05efc 20-Sep-2012 Eric Christopher <echristo@apple.com> Grammar.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164260 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
20ec2c4d14b148e293fb4117a1874846779b1d23 20-Sep-2012 Eric Christopher <echristo@apple.com> Update and expand comment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164254 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
28e3c9982500b6abd9f419f7baa505bebc9065ba 19-Sep-2012 Eric Christopher <echristo@apple.com> Handle a captured this for the debug information as well.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164253 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
195ff58b91ea106931c04f9bbdcf312925e3440c 19-Sep-2012 Eric Christopher <echristo@apple.com> Fix awkward comment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164252 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d5a73dca6297a8bc5ab3fc41e2cc0e8474072616 13-Sep-2012 Eric Christopher <echristo@apple.com> Reapply:

Make clang emit a flag for DW_AT_object_pointer for the artificial
args where it should (implicit first arguments). FileCheck-ize a
test as well and update tests to take into account the object
pointer flag.

rdar://9797999

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163755 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
22b617fbfdd17e8cadd9c541857751ae1cb6cabb 12-Sep-2012 Eric Christopher <echristo@apple.com> Revert "Make clang emit a flag for DW_AT_object_pointer for the artificial"
this should be done on the subprogram, not the variable.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163733 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
2b6eb9db86252ddde0e79a1d97054de6cbe1b284 12-Sep-2012 Eric Christopher <echristo@apple.com> Make clang emit a flag for DW_AT_object_pointer for the artificial
args where it should (implicit first arguments). FileCheck-ize a
test as well and update tests to take into account the object
pointer flag.

rdar://9797999

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163668 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
85f90bd579ee83d3061715ad0dcb7575832e4fe9 11-Sep-2012 Eric Christopher <echristo@apple.com> Update comment and space.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163586 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
3ed6b913781b2a754087764f5b3abdfc5e3cc495 11-Sep-2012 Eric Christopher <echristo@apple.com> The type of the self and cmd variables should be artificial. (Note
that the types aren't artificial the args are, but this is currently
represented by an artificial type.)

Found by inspection.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163585 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
31ba6135375433b617a8587ea6cc836a014ebd86 06-Sep-2012 Roman Divacky <rdivacky@freebsd.org> Dont cast away const needlessly. Found by gcc48 -Wcast-qual.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163325 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
17d35c36fbae764fcd68fa8b31624078a033aabc 01-Sep-2012 Joao Matos <ripzonetriton@gmail.com> Normalize line endings of r163013 (part 2).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163032 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
6666ed4ed2e2bc13da5ac5d0a4947019137d45be 31-Aug-2012 Joao Matos <ripzonetriton@gmail.com> Improved MSVC __interface support by adding first class support for it, instead of aliasing to "struct" which had some incorrect behaviour. Patch by David Robins.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163013 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
bf3a96650c449a5f8dd1a818b3ce1afa8dddfc39 21-Aug-2012 Eric Christopher <echristo@apple.com> Reapply:

Author: Eric Christopher <echristo@apple.com>
Date: Thu Aug 16 23:50:46 2012 +0000

Add some caching here for the builtin types.

rdar://12117935

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162066 91177308-0d34-0410-b5e6-96231b3b80d8

after fixing a thinko.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162243 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
003e7569fd6f5d38aa0f411483ee5ffabddec50f 18-Aug-2012 Eric Christopher <echristo@apple.com> Reapply:

Make isa part of objc_object at metadata generation time.

Noticed on inspection.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162145 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
1dc7ab0bbe6ef1b179f450eaa536323b0c3ba034 17-Aug-2012 Eric Christopher <echristo@apple.com> Temporarily revert r162066 and r162062 to see if it brings the gdb
bots back.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162080 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
e7259aad3fc6db0c9add85d486cafa6eeb53585d 17-Aug-2012 Richard Smith <richard-llvm@metafoo.co.uk> Fix undefined behavior in debug info emission: operator* on WeakVH returns a
reference, so &* on an empty WeakVH binds a reference to a dereferenced null
pointer. So don't do that; we have a perfectly good implicit conversion to
Value*.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162079 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
8bf4ab319e232f185e9965c5bb417dee62706c8f 17-Aug-2012 Eric Christopher <echristo@apple.com> Add some caching here for the builtin types.

rdar://12117935

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162066 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c076ef6dd87d4507ac4f276ec4d7881fb6f2a7fd 17-Aug-2012 Eric Christopher <echristo@apple.com> Make isa part of objc_object at metadata generation time.

Noticed on inspection.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162062 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
860de6b4223c789a149b7d042c44a66c3e021c52 13-Aug-2012 Eric Christopher <echristo@apple.com> This is always going to be true so the cast isn't necessary.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161744 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c7fb74806190220ba46bc175568f5c0edd49b810 07-Aug-2012 Eric Christopher <echristo@apple.com> If we don't have a complete type for the array type yet either then
just let the alignment be zero.

PR13531

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161379 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d0a97c49c28608a6f4471855de2941c40f11ae4e 07-Aug-2012 Eric Christopher <echristo@apple.com> Remove some unintended changes from my last patch.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161369 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
363e5acfd93aa62d94e02b674e753257389643b1 07-Aug-2012 Eric Christopher <echristo@apple.com> Make sure when we get the replacement type for a template argument
that we attach the lost qualifiers.

Fixes rdar://11882155

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161368 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
65263b4ec184212155c92740ab0bd363bb85c49e 04-Aug-2012 Benjamin Kramer <benny.kra@googlemail.com> Simplify code, no functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161303 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
aa6eccce0cd6e15229cdee52177477371890d3c4 04-Aug-2012 Eric Christopher <echristo@apple.com> Fix the name of this variable.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161287 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
3e07881cdb0acfad9fc7ce6c2b37ca1ca98e7c7d 04-Aug-2012 Eric Christopher <echristo@apple.com> Update comment to accurately reflect what should happen.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161286 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c852e9ff06f7089405265c53af33cf06fdc36e52 11-Jul-2012 Eric Christopher <echristo@apple.com> Temporarily revert this to see if it brings the gdb bot back.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160049 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
3d40f96394fb30b70ba83bdfd10f3ed69530b0e5 11-Jul-2012 Eric Christopher <echristo@apple.com> The end of a block doesn't necessarily need a line table entry unless
there's something going on there. Remove the unconditional line entry
and only add one if we're emitting cleanups (any other statements
would be handled normally).

Fixes rdar://9199234

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160033 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d4f5198ae07d9a4958d8191bac694ded12173ad9 04-Jul-2012 Benjamin Kramer <benny.kra@googlemail.com> Remove get(V)BaseClassOffsetInBits, the CharUnit functions should be used instead.

No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159719 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
da970d2fe086ed44198e1edd5d7d59ff19e747fe 28-Jun-2012 Eric Christopher <echristo@apple.com> Fix grammar.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159321 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
527e616722f45986883cbc20e4bbb5d1651e75f4 20-Jun-2012 Benjamin Kramer <benny.kra@googlemail.com> Don't circumvent the debug info type cache when emitting info for EnumConstantDecl.

CreateEnumType doesn't participate in caching so the descriptor for the enum
gets recomputed for every reference of an element of an enum, only to get
discarded when it gets turned into an MDNode.

No functionality change except performance.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158832 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
260611a32535c851237926bfcf78869b13c07d5b 20-Jun-2012 John McCall <rjmccall@apple.com> Restructure how the driver communicates information about the
target Objective-C runtime down to the frontend: break this
down into a single target runtime kind and version, and compute
all the relevant information from that. This makes it
relatively painless to add support for new runtimes to the
compiler. Make the new -cc1 flag, -fobjc-runtime=blah-x.y.z,
available at the driver level as a better and more general
alternative to -fgnu-runtime and -fnext-runtime. This new
concept of an Objective-C runtime also encompasses what we
were previously separating out as the "Objective-C ABI", so
fragile vs. non-fragile runtimes are now really modelled as
different kinds of runtime, paving the way for better overall
differentiation.

As a sort of special case, continue to accept the -cc1 flag
-fobjc-runtime-has-weak, as a sop to PLCompatibilityWeak.

I won't go so far as to say "no functionality change", even
ignoring the new driver flag, but subtle changes in driver
semantics are almost certainly not intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158793 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
645161f7f58068ef336c651f4dfaa6a38ce48e40 12-Jun-2012 Bill Wendling <isanbard@gmail.com> Remove unused variable.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158353 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
50e3faaebfdbbc3b0a3f4f401c6e75d4a83ad346 09-Jun-2012 Michael J. Spencer <bigcheesegs@gmail.com> [C++11 Compat] Fix breaking change in C++11 pair copyctor.

While this code is valid C++98, it is not valid C++11. The problem can be
reduced to:

class MDNode;

class DIType {
operator MDNode*() const {return 0;}
};

class WeakVH {
WeakVH(MDNode*) {}
};

int main() {
DIType di;
std::pair<void*, WeakVH> p(std::make_pair((void*)0, di)));
}

This was not detected by any of the bots we have because they either compile
C++98 with libstdc++ (which allows it), or C++11 with libc++ (which incorrectly
allows it). I ran into the problem when compiling with VS 2012 RC.

Thanks to Richard for explaining the issue.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158245 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
855243789cb44799c03f4c7216d3d6308805f549 07-Jun-2012 Benjamin Kramer <benny.kra@googlemail.com> Plug a long standing memory leak in TemplateArgument.

The integral APSInt value is now stored in a decomposed form and the backing
store for large values is allocated via the ASTContext. This way its not
leaked as TemplateArguments are never destructed when they are allocated in
the ASTContext. Since the integral data is immutable it is now shared between
instances, making copying TemplateArguments a trivial operation.

Currently getting the integral data out of a TemplateArgument requires creating
a new APSInt object. This is cheap when the value is small but can be expensive
if it's not. If this turns out to be an issue a more efficient accessor could
be added.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158150 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
581deb3da481053c4993c7600f97acf7768caac5 06-Jun-2012 David Blaikie <dblaikie@gmail.com> Revert Decl's iterators back to pointer value_type rather than reference value_type

In addition, I've made the pointer and reference typedef 'void' rather than T*
just so they can't get misused. I would've omitted them entirely but
std::distance likes them to be there even if it doesn't use them.

This rolls back r155808 and r155869.

Review by Doug Gregor incorporating feedback from Chandler Carruth.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158104 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.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/lib/CodeGen/CGDebugInfo.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/lib/CodeGen/CGDebugInfo.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/lib/CodeGen/CGDebugInfo.cpp
5a2eff85d185ad94b6272a6f6c869496d8c23ced 01-Jun-2012 Eric Christopher <echristo@apple.com> Support C++11 enum forward declarations.

Part of rdar://11570854

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157787 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
9ee5f4641ee0d018cb6a2ce16611bfa170a5ecea 23-May-2012 Eric Christopher <echristo@apple.com> Emit C++11 enum class information if it exists.

Part of rdar://11496790

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157304 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
e6d11975d7182ee63ceb6a4f3ece4ee27efbba68 22-May-2012 Eric Christopher <echristo@apple.com> Revert r115805. An array type is required to have a range type,
however, the range can be unknown for the upper bound.

Testcase to follow.

Part of rdar://11457152

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157212 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
37e4cea0f548fc8a4b3c46aa92c925d6ea49d071 19-May-2012 Eric Christopher <echristo@apple.com> Update API usage for llvm DIBuilder changes for rvalue reference
types and ensure we are actually creating the type.

rdar://11479676

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157095 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d9f07d45f16769cd7f8521b549c889a517492fd5 17-May-2012 Eric Christopher <echristo@apple.com> Remove unnecessary temporary.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156953 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
a135f2ca67172940dd1dd9414f17b9397e4517ef 08-May-2012 Eric Christopher <echristo@apple.com> The address of a vla is actually complex and requires a dereference.

Part of rdar://11352000

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156407 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
3a89bfbeedcc4ae0226d591cfdfd26615556e148 08-May-2012 Eric Christopher <echristo@apple.com> Whitespace.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156406 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
27a00970bf4ababdc115e54383e6252cc3276dfa 05-May-2012 Argyrios Kyrtzidis <akyrtzi@gmail.com> Make BuiltinType::getName return a StringRef and introduce BuiltinType::getNameAsCString
to get a const char* if necessary.

This avoids unnecessary conversions when we want to use the result of getName as
a StringRef.

Part of rdar://10796159

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156227 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
fd00eecad6fa5400cf37269d84361a0551d0e6d3 04-May-2012 Alexey Samsonov <samsonov@google.com> This patch adds a new Clang compiler flag "-gline-tables-only".
It reduces the amount of emitted debug information:
1) DIEs in .debug_info have types DW_TAG_compile_unit, DW_TAG_subprogram,
DW_TAG_inlined_subroutine (for opt builds) and DW_TAG_lexical_block only.
2) .debug_str contains only function names.
3) No debug data for types/namespaces/variables is emitted.
4) The data in .debug_line is enough to produce valid stack traces with
function names and line numbers.

Reviewed by Eric Christopher.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156160 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
262bc18e32500558af7cb0afa205b34bd37bafed 30-Apr-2012 David Blaikie <dblaikie@gmail.com> Remove the ref/value inconsistency in filter_decl_iterator.

filter_decl_iterator had a weird mismatch where both op* and op-> returned T*
making it difficult to generalize this filtering behavior into a reusable
library of any kind.

This change errs on the side of value, making op-> return T* and op* return
T&.

(reviewed by Richard Smith)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155808 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
3a70cd6e1cc414856e41ce5509aa61c89bf472dc 27-Apr-2012 Alexey Samsonov <samsonov@google.com> Use enum to set debug info size generated by Clang

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155697 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
87380aaf4273b2259fa75790f2f544c4514cc763 23-Apr-2012 Eric Christopher <echristo@apple.com> Forward declarations should take a context. This helps the debugger
find forward declarations in the context that the actual definition
will occur.

rdar://11291658

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155381 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c6b468e46d467eb8d0bcfdbbcc776ef9650133a0 13-Apr-2012 Benjamin Kramer <benny.kra@googlemail.com> Avoid string thrashing when we can concatenate them in the final buffer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154678 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
43443de48bd7f69bba033566abd9ca33abea6d67 12-Apr-2012 Eric Christopher <echristo@apple.com> static functions have a need for mangled name debug information too.
The mangler doesn't like non-prototyped functions so only use a mangled
name for prototyped functions.

rdar://11079003

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154570 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
be6c6869a993536d4cd007f04e84ef74a1c3b229 11-Apr-2012 Eric Christopher <echristo@apple.com> Enable debug info for objective c implementations that may not have
an explicit instance variable.

rdar://10590352

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154481 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
78af8fd568f05aa872194756c96d8ba73d8c4956 06-Apr-2012 Eric Christopher <echristo@apple.com> Only emit the getter and setter names if they're not the default
synthesized ones. Reasonable debug info size reduction for objc.

rdar://11179756

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154129 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ea32047660159811a4c14d008a4b7e3807a705d6 03-Apr-2012 Eric Christopher <echristo@apple.com> Change location information for synthesized properties to be at the
property file/line rather than the @synthesize file/line. Avoids
some nasty confusing-ness with conflating the file from the scope
and the line from the original declaration. Use the current scope
location as a separate parameter so that we can match it up
better in the line table with the beginning of the scope.

Update a couple of testcases accordingly since I had to change
that we actually use the passed in location in EmitFunctionStart
and for the new metadata parameter and add a new testcase to
make sure we've got the right line numbers for synthesized
properties.

Part of rdar://11026482

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153917 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
96579c43e777b9dea81dc56c8074b3755df00e27 30-Mar-2012 Eric Christopher <echristo@apple.com> Revert previous commit changing location information to see if this
is causing the gdb test failures on the bots.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153727 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
7435054a965eefb7ab29c0a8caa6698ec435b9f7 30-Mar-2012 Eric Christopher <echristo@apple.com> Change location information for synthesized properties to be at the
property file/line rather than the @synthesize file/line. Avoids
some nasty confusing-ness with conflating the file from the scope
and the line from the original declaration.

Update a couple of testcases accordingly since I had to change
that we actually use the passed in location in EmitFunctionStart.

Fixes rdar://11026482

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153714 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ecae5965cf0c95a357e47227eeb2ec391672840d 29-Mar-2012 Eric Christopher <echristo@apple.com> Go back to using just the selector name for the getter and setter
in the property debug info. Any more isn't necessary after all.

rdar://11144023

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153659 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
51c0371816edadfe6275945b4e2155efb9451b3a 29-Mar-2012 Eric Christopher <echristo@apple.com> Add support for objc property decls according to the page at:

http://llvm.org/docs/SourceLevelDebugging.html#objcproperty

including type and DECL. Expand the getter and setter names
into the fully qualified names.

rdar://11144023

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
7e42392eb2ea29ddeb6d125417fb4c17d847b5e0 24-Mar-2012 Benjamin Kramer <benny.kra@googlemail.com> Simplify some users of DenseMap::erase.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153389 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
451b4414543d23f6281f888f8f79b6e5b3684833 21-Mar-2012 Eric Christopher <echristo@apple.com> Update comment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153149 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
6181e56a44ecc31dfca8baea2ae8738957003496 20-Mar-2012 Benjamin Kramer <benny.kra@googlemail.com> Debug info: Tighten up uses of plain MDNode pointers which don't survive replaceOperandWith.

TrackingVH notices when it gets RAUW'd. Fixes PR12305 and PR12315.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153115 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.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/lib/CodeGen/CGDebugInfo.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/lib/CodeGen/CGDebugInfo.cpp
4e4d08403ca5cfd4d558fa2936215d3a4e5a528d 11-Mar-2012 David Blaikie <dblaikie@gmail.com> Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST).

The member variable is always "LangOpts" and the member function is always "getLangOpts".

Reviewed by Chris Lattner

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152536 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ad8de5142a592db1d947e4883b64f63936d5d682 01-Mar-2012 Eric Christopher <echristo@apple.com> Reapply r151702 with a small fix for a failure to cut and paste
correctly.

Still rdar://10900684

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151838 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
956ecbd2c8d3558230300754d5abf72e9eb9afc1 29-Feb-2012 Daniel Dunbar <daniel@zuster.org> Revert r151702, "Add support for handling captured variables in lambda debug
info.", which broke some -O0 -g tests.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151730 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
0a0714ddd3a5bd1a8147735ae7fe20b8c4b656fa 29-Feb-2012 Eric Christopher <echristo@apple.com> Add support for handling captured variables in lambda debug info.
This currently doesn't handle capturing the 'this' pointer for any
enclosing class.

Steal the lambda-expressions.cpp testcase and debugify it and try
to use more variables to proof it against random changes.

Part of rdar://10900684

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151702 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
af3db7d9e4a702d8f072ae97f793be42177e898b 27-Feb-2012 Eric Christopher <echristo@apple.com> ObjcInterfaceTypes are also complete types for the type cache.

Fixes rdar://10934887

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151519 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
b45cfead07d9f0143970d24f5c8a0c4f232b8163 23-Feb-2012 Eric Christopher <echristo@apple.com> Add a quick TODO.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151217 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
e86b9eaccdbdba1ec798064840913f3e6d8703b8 21-Feb-2012 Eric Christopher <echristo@apple.com> Formatting.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150996 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
86211df4d28f6fb3c48ab09f02a011e8570d8b1c 20-Feb-2012 Eric Christopher <echristo@apple.com> Remove the type retaining from the clang frontend. This is now
handled by the caching and rauw. Also fix one cache that wasn't
being added to highlighted by this patch. Update all testcases
accordingly.

This should fix the deall failure.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150977 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
917bc8d55e9c172b5985a7cc57ccf02d8439464f 20-Feb-2012 Eric Christopher <echristo@apple.com> Make forward declarations for objective-c types use the new
temporary forward declaration nodes. Fixes a problem building
Chrome.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150976 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
7ff0c5d30d365ba5d4f08e1d2fcea0370b21699b 18-Feb-2012 Eric Christopher <echristo@apple.com> Add in a caching mechanism so that forward declarations are replaced
with full types if they exist.

rdar://10809898 and rdar://10209967 and rdar://10400981

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150858 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
1486d2c5d73302bdfdb1cece09d95958052c9cdb 18-Feb-2012 Eric Christopher <echristo@apple.com> Formatting.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150857 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
51b2f6bae6847ccf4c48960c925316dccfb10190 18-Feb-2012 Eric Christopher <echristo@apple.com> Remove UpdateCompletedType from the debug info emission. We now
emit less than complete types on purpose on occasion and so
our caches aren't useful for this kind of lazy emitting.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150856 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
1e009d594325390eda1e3c89e4930b30d8b828dc 17-Feb-2012 Eric Christopher <echristo@apple.com> Index "12" holds the vtable, not "9".

Fixes lots of gdb testsuite failures.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150797 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
9965deaad40b08203e4cfacf9253fbe494dce81f 16-Feb-2012 Eric Christopher <echristo@apple.com> Reapply r150631:

"Add a completed/incomplete type difference. This allows us to have
partial types for contexts and forward decls while allowing us to
complete types later on for debug purposes.

This piggy-backs on the metadata replacement and rauw changes
for temporary nodes and takes advantage of the incremental
support I added in earlier. This allows us to, if we decide,
to limit adding methods and variables to structures in order
to limit the amount of debug information output into a .o file.

The caching is a bit complicated though so any thoughts on
untangling that are welcome."

with a fix:

- Remove all RAUW during type construction by adding stub versions
of types that we later complete.

and some TODOs:

- Add an RAUW cache for forward declared types so that we can replace
them at the end of compilation.
- Remove the code that updates on completed types because we no
longer need to have that happen. We emit incomplete types on
purpose and only want to know when we want to complete them.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150752 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
64a043045874c9a054f9dfb8d37daf6e5e8d054c 16-Feb-2012 Eric Christopher <echristo@apple.com> Revert "Add a completed/incomplete type difference. This allows us to have"

This reverts commit 9a68d4584afcd0853b930bd80235b58736e785b4.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150637 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
9a68d4584afcd0853b930bd80235b58736e785b4 16-Feb-2012 Eric Christopher <echristo@apple.com> Add a completed/incomplete type difference. This allows us to have
partial types for contexts and forward decls while allowing us to
complete types later on for debug purposes.

This piggy-backs on the metadata replacement and rauw changes
for temporary nodes and takes advantage of the incremental
support I added in earlier. This allows us to, if we decide,
to limit adding methods and variables to structures in order
to limit the amount of debug information output into a .o file.

The caching is a bit complicated though so any thoughts on
untangling that are welcome.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150631 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
e88a71f00e9dce979dfb409459d54c92e5075a42 13-Feb-2012 Eric Christopher <echristo@apple.com> Add back in the code to create forward decls using temporary mdnodes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150390 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
42e75daaefc11922c585053bfa5e5db6ff312c3e 13-Feb-2012 Eric Christopher <echristo@apple.com> Temporarily walk back a few of my recent debug info limiting changes
while reworking how we handle wanting to emit only parts of structures.

Fixes PR11970.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150388 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
3b8e197bbfd2c9a1a5fc3ab6509f89cc274e77f8 09-Feb-2012 Eric Christopher <echristo@apple.com> Don't cache the artificial type for the this pointer, there's no
difference in the qual type. This is a workaround for the fact that
the type isn't artificial but the this decl is, however, we don't
have any way of representing it in the current metadata. For now,
however, just don't cache the full type.

Fixes rdar://10831526 and probably a couple of others.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150159 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
9caf440928c16a8862de932fd19744dc8a6f4157 08-Feb-2012 Eric Christopher <echristo@apple.com> Constify the getClassName routine and variables that come out of it,
and then use it for forward decl names.

Part of rdar://10209967 and rdar://10400981

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150040 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
2f764a91225ae8e34110243071177c545072fa0e 08-Feb-2012 Eric Christopher <echristo@apple.com> Use the new forward declaration scheme for records. Also add more
caching of results after we create them.

Fixes rdar://10809898

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150025 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
53bc51871a7937f49b80ea8a1b22dc7d15ad86dc 08-Feb-2012 Devang Patel <dpatel@apple.com> Remove tabs.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150021 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d7a3e2c5f61cd4893f95b69a424fe4def3aa0f69 07-Feb-2012 Benjamin Kramer <benny.kra@googlemail.com> Revert my patches which removed Diagnostic.h includes by moving some operator overloads out of line.

This seems to negatively affect compile time onsome ObjC tests
(which use a lot of partial diagnostics I assume). I have to come
up with a way to keep them inline without including Diagnostic.h
everywhere. Now adding a new diagnostic requires a full rebuild
of e.g. the static analyzer which doesn't even use those diagnostics.

This reverts commit 6496bd10dc3a6d5e3266348f08b6e35f8184bc99.
This reverts commit 7af19b817ba964ac560b50c1ed6183235f699789.
This reverts commit fdd15602a42bbe26185978ef1e17019f6d969aa7.
This reverts commit 00bd44d5677783527d7517c1ffe45e4d75a0f56f.
This reverts commit ef9b60ffed980864a8db26ad30344be429e58ff5.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150006 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
7fb8630e76fe2c4e7e048c7c8a448baf282390cd 07-Feb-2012 Devang Patel <dpatel@apple.com> Remove tabs.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149996 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
693fcaa99933b47056447099ab6e0d1ea3a12d0d 07-Feb-2012 Devang Patel <dpatel@apple.com> Emit debug info for properites that are not backed by an ivar.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149995 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
8b418685e9e4f02f4eb2a76e1ec063e07552b68d 07-Feb-2012 Chris Lattner <sabre@nondot.org> simplify a bunch of code to use the well-known LLVM IR types computed by CodeGenModule.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149943 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
362ed2a95b70aaea4869bfa9ecaf581a6c180b40 07-Feb-2012 Devang Patel <dpatel@apple.com> Relax valid location check. This fixes a clang crash while emitting debug info for properties that are synthesized by the compiler by default.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149929 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
5f3c7faa398e64a94d0757e19c69441e04819166 06-Feb-2012 Devang Patel <dpatel@apple.com> Let an ivar directly refer property TAG.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149881 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f7ccbad5d9949e7ddd1cbef43d482553b811e026 05-Feb-2012 Dylan Noblesmith <nobled@dreamwidth.org> Basic: import SmallString<> into clang namespace

(I was going to fix the TODO about DenseMap too, but
that would break self-host right now. See PR11922.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149799 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
00bd44d5677783527d7517c1ffe45e4d75a0f56f 04-Feb-2012 Benjamin Kramer <benny.kra@googlemail.com> Move various diagnostic operator<< overloads out of line and remove includes of Diagnostic.h.

Fix all the files that depended on transitive includes of Diagnostic.h.
With this patch in place changing a diagnostic no longer requires a full rebuild of the StaticAnalyzer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149781 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
693a70dfb1515cb62178861fb6c318c0ff484130 04-Feb-2012 Devang Patel <dpatel@apple.com> Create new tag for the property. This is a work in progress.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149734 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
245da28bd2629c7bcd0d30f389ac6b1fb7e33fd7 02-Feb-2012 Andrew Trick <atrick@apple.com> unnecessary include of TargetMachine.h?

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149638 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
271ce5454ba525931b8b773bb3d03b1893093f9d 02-Feb-2012 Eric Christopher <echristo@apple.com> r149474 went a bit too far when combined with type caching. If we want
a full type go ahead and emit it if we currently only have a forward
declaration.

Fixes gdb bots for gdb1090.exp and call-ar-st.exp.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149560 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ef81e0f8f18cc6fb05d37b8d3d399bc95f936c5b 01-Feb-2012 Eric Christopher <echristo@apple.com> Remove duplicated comment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149544 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
0086a5b44af6384b369f8660da69cf2775d09733 01-Feb-2012 Eric Christopher <echristo@apple.com> For pass-by-value record arguments to functions emit a forward decl
instead of the entire class definition.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149474 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
5b78a244ef213835337a5a860fe7c3f2fa90a943 26-Jan-2012 Eric Christopher <echristo@apple.com> Use createRecordFwdDecl here since that's what we're doing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149051 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
1c081d97b6f1785013e2294bcc5209d468c0765e 26-Jan-2012 Eric Christopher <echristo@apple.com> Revert previous patch unifying all of the C++ record prep in one area,
the gdb testsuite complains too much about the ordering of items printed,
even if the offsets in the debug info are correct.

This reverts commit 027cb30af828f07750f9185782822297a5c57231.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149049 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
3ee8c913ebe776a0b8b973c74be2ea9cc8ad6305 26-Jan-2012 Eric Christopher <echristo@apple.com> Remove another duplicated variable.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149047 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
de983d868f35d20c46152f9aabbc41f0d3dca8e7 26-Jan-2012 Eric Christopher <echristo@apple.com> Tidy and remove some unused variables.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149015 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
027cb30af828f07750f9185782822297a5c57231 26-Jan-2012 Eric Christopher <echristo@apple.com> Collect this information together. No reason to have it split.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149013 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
6faa5540dfd17388c62bef8e69f91b0e6bd86e9c 26-Jan-2012 Eric Christopher <echristo@apple.com> Refactor into its own function.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149012 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
51cb75a62511905ffa6dc9712493c50a8f3ebcd2 25-Jan-2012 Eric Christopher <echristo@apple.com> Clean up comment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148982 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
5d613b57972a761973861f7c38b3e6442243a6ab 25-Jan-2012 Eric Christopher <echristo@apple.com> Refactor the record decl forward declaration code a bit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148904 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
4ddca8ab795be2bb239a80b48a57d09f54dc07ba 20-Jan-2012 Eric Christopher <echristo@apple.com> When adding types to the context chain for record types, just emit
a forward declaration unless we already have a type. We can fill it in
later if it's actually used.

Fixes PR11345

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148584 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
3026348bd4c13a0f83b59839f64065e0fcbea253 20-Jan-2012 David Blaikie <dblaikie@gmail.com> More dead code removal (using -Wunreachable-code)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148577 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
2d6a5670465cb3f1d811695a9f23e372508240d2 14-Jan-2012 Richard Smith <richard-llvm@metafoo.co.uk> constexpr irgen: Add irgen support for APValue::Struct, APValue::Union,
APValue::Array and APValue::MemberPointer. All APValue values can now be emitted
as constants.

Add new CGCXXABI entry point for emitting an APValue MemberPointer. The other
entrypoints dealing with constant member pointers are no longer necessary and
will be removed in a later change.

Switch codegen from using EvaluateAsRValue/EvaluateAsLValue to
VarDecl::evaluateValue. This performs caching and deals with the nasty cases in
C++11 where a non-const object's initializer can refer indirectly to
previously-initialized fields within the same object.

Building the intermediate APValue object incurs a measurable performance hit on
pathological testcases with huge initializer lists, so we continue to build IR
directly from the Expr nodes for array and record types outside of C++11.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148178 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
121c67d7ecab148f1ce24ab2b7e56460d1c47e7a 12-Jan-2012 Eric Christopher <echristo@apple.com> Formatting.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147989 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
7c9b2fdf1920b2e7b9f8f353dd70041cfc44473f 12-Jan-2012 Eric Christopher <echristo@apple.com> Formatting.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147988 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
80d4b55db94db2172a04617d1a80feca6bbcea5c 28-Dec-2011 Richard Smith <richard-llvm@metafoo.co.uk> Small refactoring and simplification of constant evaluation and some of its
clients. No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147318 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
973bbb6a8abdc8af99c9a0b78cdbf6e7adb684eb 17-Dec-2011 Eric Christopher <echristo@apple.com> When in a limited debug information situation if we can find the original
declaration for the type then go ahead and use that, it's still smaller
than creating an all new derived type.

Part of rdar://10335756 and others.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146779 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
435e106f94a4e17bbbf6b1ad82185b305943ad3f 17-Dec-2011 Eric Christopher <echristo@apple.com> Start down the path of getting clang to internally agree on structs versus
classes.

Part of rdar://10520586 and a couple others.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146778 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
7c1f1f158205efd07ab169772079ab527aed34dc 16-Dec-2011 Douglas Gregor <dgregor@apple.com> When generating debug info for an ObjCInterfaceDecl, try to dig out the definition.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146705 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
7723fec9b45b7258c0eddf4cbfd0d335348f5edc 15-Dec-2011 Douglas Gregor <dgregor@apple.com> Keep track of all declarations of an Objective-C class (both forward
declarations and definitions) as ObjCInterfaceDecls within the same
redeclaration chain. This new representation matches what we do for
C/C++ variables/functions/classes/templates/etc., and makes it
possible to answer the query "where are all of the declarations of
this class?"



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146679 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d5a3b7804f1594c9f21c7f2cee0920a66feeb93a 30-Nov-2011 Eric Christopher <echristo@apple.com> Make sure that forward declarations are marked as such in the debug info
for the structure type.

rdar://10499337

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145461 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
deae6a8bbcfd6bd2f919a8e8aabeb28cd10d101b 18-Nov-2011 Eric Christopher <echristo@apple.com> Use the canonical decl to index so that we can really find it later.

Fixes rdar://10433202

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144938 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
bf97947c4c467e72b97f8623f84c9bccb03e9448 14-Nov-2011 Eric Christopher <echristo@apple.com> Fixup comment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144548 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
7480d96830ab80547da28f585e522958b001de52 10-Nov-2011 Nick Lewycky <nicholas@mxc.ca> Reflow lines, remove else-if after returns, rename variable "TydefContext" to
"TypedefContext". No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144248 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
7b3819dfb88df33fdaba4d879044b2cdfeb0e0d2 09-Nov-2011 Nick Lewycky <nicholas@mxc.ca> Reflow one line I missed in previous cleanup commit. No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144168 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d4c100e98d34e13fc6bd4f3a005533419f03a808 09-Nov-2011 Nick Lewycky <nicholas@mxc.ca> Minor cleanup, mostly reindenting. Remove one helper function that just called
the other helper functions, since we already differentiated the cases it was
testing between. No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144167 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
51f4708c00110940ca3f337961915f2ca1668375 29-Oct-2011 Richard Smith <richard-llvm@metafoo.co.uk> Rename Expr::Evaluate to Expr::EvaluateAsRValue to make it clear that it will
implicitly perform an lvalue-to-rvalue conversion if used on an lvalue
expression. Also improve the documentation of Expr::Evaluate* to indicate which
of them will accept expressions with side-effects.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143263 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ef8857dfdd4d6b4d139278c52d32e3f2e055c5d7 28-Oct-2011 Devang Patel <dpatel@apple.com> In case of template specialization, do not try to delay emitting debug info for concrete type in -flimit-debug-info mode. This fixes some of the failures from bs15503.exp tests in gdb testsuite.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143227 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
41422511e80e05d42bbf2d8460ca1b8b59db68ae 25-Oct-2011 Devang Patel <dpatel@apple.com> Do not drop type qualifiers in -flimit-debug-info mode.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142873 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
7c4fd9121f5885096fd3258d20a984e3f08f8603 21-Oct-2011 Nick Lewycky <nicholas@mxc.ca> Take DW_AT_comp_dir from $PWD when it's present and starts with a '/'. This is
closer to what GCC does, except that GCC also checks that the inodes for $PWD
and '.' match.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142633 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
e0a22d06888c13989b3f72db319f1d498bf69153 18-Oct-2011 John McCall <rjmccall@apple.com> Macro metaprogramming for builtin types.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142420 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
0ddaeb9b031070ec64afe92d9892875ac44df427 17-Oct-2011 John McCall <rjmccall@apple.com> Add a new placeholder type to represent "unbridged"
casts in ARC.

No semantic analysis yet.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142208 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
aa4a99b4a62615db243f7a5c433169f2fc704420 15-Oct-2011 Anton Korobeynikov <asl@math.spbu.ru> Provide half floating point support as a storage only type.
Lack of half FP was a regression compared to llvm-gcc.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142016 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
2b5cfbc0b074ef77ccac407533d27778ace4028c 14-Oct-2011 Benjamin Kramer <benny.kra@googlemail.com> Simplify code to avoid a useless string copy.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141970 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
bcbca75e94c8eb7073482fa0c5c8940f39f66849 14-Oct-2011 Benjamin Kramer <benny.kra@googlemail.com> Upgrade to PathV2.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141969 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c95ff94a2d67093a696a0c70dbb272bcf8b97146 14-Oct-2011 Benjamin Kramer <benny.kra@googlemail.com> Add parens to pacify GCC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141968 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
73fb35003aad027492e661a3749e921b5d1ecaf9 13-Oct-2011 Eric Christopher <echristo@apple.com> Recommit:

Start handling debug line and scope information better:

Migrate most of the location setting within the larger API in CGDebugInfo and
update a lot of callers.
Remove the existing file/scope change machinery in UpdateLineDirectiveRegion
and replace it with DILexicalBlockFile usage.

Finishes off the rest of rdar://10246360

after fixing a few bugs that were exposed in gdb testsuite testing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141893 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
28e06354b5d4dd539be6781e388ff27c0dffd807 12-Oct-2011 Eric Christopher <echristo@apple.com> Revert file/scope handling patches. gdb testing revealed a couple of bugs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141796 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c6bfbca5733f1fc090b2149c4fff0548f1f15526 12-Oct-2011 Eric Christopher <echristo@apple.com> Remember to set the location in EmitGlobalVariable to the current decl
if we're going to delete the setLocation as we did in 141732.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141762 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
4b2d5498729a74a8e952bdf762e6f2d8c6b52690 12-Oct-2011 Eric Christopher <echristo@apple.com> Start handling debug line and scope information better:

Migrate most of the location setting within the larger API in CGDebugInfo and
update a lot of callers.
Remove the existing file/scope change machinery in UpdateLineDirectiveRegion
and replace it with DILexicalBlockFile usage.

Finishes off the rest of rdar://10246360

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141732 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ab5278e0ead5697ff27ef69d960c3e138b299ce6 12-Oct-2011 Eric Christopher <echristo@apple.com> 80-column and tab cleanup.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141731 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
944542e29c2d796049be1db12160e232fb28aebf 12-Oct-2011 Eric Christopher <echristo@apple.com> Reorder this to make it easier to add more changes for a location set.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141730 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
a6b8b2c09610b8bc4330e948ece8b940c2386406 10-Oct-2011 Richard Smith <richard-llvm@metafoo.co.uk> Constant expression evaluation refactoring:
- Remodel Expr::EvaluateAsInt to behave like the other EvaluateAs* functions,
and add Expr::EvaluateKnownConstInt to capture the current fold-or-assert
behaviour.
- Factor out evaluation of bitfield bit widths.
- Fix a few places which would evaluate an expression twice: once to determine
whether it is a constant expression, then again to get the value.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
b001de7458d17c17e6d8b8034c7cfcefd3b70c00 07-Oct-2011 Eli Friedman <eli.friedman@gmail.com> Support for C1x _Atomic specifier (see testcase). This is primarily being committed at the moment to help support C++0x <atomic>, but it should be a solid base for implementing the full specification of C1x _Atomic.

Thanks to Jeffrey Yasskin for the thorough review!



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141330 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d1ab1a2dffa66a88e5215216893adcfc658d3e7e 06-Oct-2011 Eric Christopher <echristo@apple.com> When constructing debug information for synthesized variables for the
non-fragile ABI we may not be able to lay out the type and the debugger
would ignore us even if we did put in the offset. Go ahead and just
put any value there and don't look up the offset since it may not exist.

rdar://10210157

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141261 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
1cd1d74b5c376ad1e9ab5f6b87fbcc54cc816e08 06-Oct-2011 Eric Christopher <echristo@apple.com> Reformat comment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141260 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
491306a83c4f0f49f95a3bcbca8580cb98a91c7a 03-Oct-2011 Argyrios Kyrtzidis <akyrtzi@gmail.com> Allow getting all source locations of selector identifiers in a ObjCMethodDecl.

Instead of always storing all source locations for the selector identifiers
we check whether all the identifiers are in a "standard" position; "standard" position is

-Immediately before the arguments: -(id)first:(int)x second:(int)y;
-With a space between the arguments: -(id)first: (int)x second: (int)y;
-For nullary selectors, immediately before ';': -(void)release;

In such cases we infer the locations instead of storing them.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140989 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
aa2164cc2aecafb9efbddd72e6f25cea4995b330 29-Sep-2011 Eric Christopher <echristo@apple.com> Change "Regions" to be "LexicalBlocks" since that's what they
correspond to.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140740 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
5321bc492b2f29deecb6cb0bc68b7887164ee8a6 29-Sep-2011 Eric Christopher <echristo@apple.com> Rename EmitStopPoint in CGDebugInfo to EmitLocation. "stop points" don't
exist anymore.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140739 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
69a1b749ed44d59a86a9b10f21259b3a222ba068 29-Sep-2011 Eric Christopher <echristo@apple.com> Reorder functions in the file.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140738 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
414ee4bb74957b4c5fe05e11848028e4701b51f7 29-Sep-2011 Eric Christopher <echristo@apple.com> Call UpdateLineDirectiveRegion every time we want to emit a stop
point in the code. Ensures that we don't miss any places and the
check is reasonably cheap.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140737 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
441937c9be818279f68003071ea2cefc5da7d25d 29-Sep-2011 Eric Christopher <echristo@apple.com> Update comment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140736 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
43202aee91646c9b5cd6d5cbea690b479075b67b 26-Sep-2011 Eric Christopher <echristo@apple.com> Update comments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140531 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
1d2b31710539d705a3850c9fc3aa1804c2a5efee 26-Sep-2011 Peter Collingbourne <peter@pcc.me.uk> Create a VTableContext class and start moving CodeGenVTables methods to it

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140502 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d6471f7c1921c7802804ce3ff6fe9768310f72b9 26-Sep-2011 David Blaikie <dblaikie@gmail.com> Rename Diagnostic to DiagnosticsEngine as per issue 5397


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140478 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
eb2d1f1c88836bd5382e5d7aa8f6b85148a88b27 23-Sep-2011 David Blaikie <dblaikie@gmail.com> Removing a bunch of dead returns/breaks after llvm_unreachables.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140407 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
b219cfc4d75f0a03630b7c4509ef791b7e97b2c8 23-Sep-2011 David Blaikie <dblaikie@gmail.com> Switch assert(0/false) llvm_unreachable.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140367 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
8c6f9c49e6b1af5917f5879aed5496d0886b4e90 19-Sep-2011 Devang Patel <dpatel@apple.com> Tighten check to match an ivar with corresponding property by using ObjCImplementationDecl.
Radar 10139522 - Part 1.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140038 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f60dca355d3e754b7a51726c7455d1e7583a65ba 15-Sep-2011 Devang Patel <dpatel@apple.com> Emit debug info for c++0x nullptr.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139752 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
2121cdaa41dbf4f64a1f2979af242b54987d661e 14-Sep-2011 Eric Christopher <echristo@apple.com> Formatting.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139681 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
edc9592b2d100f841ae0ba69f07a5eaaccb08900 14-Sep-2011 Eric Christopher <echristo@apple.com> Fix typo.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139668 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
e7566cf6e194946c2b6540444e99452e3e678349 12-Sep-2011 Devang Patel <dpatel@apple.com> By popular demand, enumerate all builtin types!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139521 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
3d3aa19232cef951193e087b8d11ae9fe02be69d 12-Sep-2011 Devang Patel <dpatel@apple.com> Add an assert so that new builtins do not sneak without proper debug info.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139514 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
e8ee3f2cda32818f30004226f7d8d27bada9b509 12-Sep-2011 Devang Patel <dpatel@apple.com> Fix debug info encodings for char16_t and char32_t.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139502 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
68f76b112cb50b6dd6cf6935680bc8f242f43441 10-Sep-2011 Devang Patel <dpatel@apple.com> Emit debug info for wchar_t.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139443 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
bcfd1f55bfbb3e5944cd5e03d07b343e280838c4 02-Sep-2011 Douglas Gregor <dgregor@apple.com> Extend the ASTContext constructor to delay the initialization of
builtin types (When requested). This is another step toward making
ASTUnit build the ASTContext as needed when loading an AST file,
rather than doing so after the fact. No actual functionality change (yet).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138985 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
7803ec829d1cc657e21bb0d1afb8596a81bfd542 01-Sep-2011 Nick Lewycky <nicholas@mxc.ca> Don't try to emit unsupported templated friend declarations. They're unsupported
and may very well be dependent-types, triggering an assertion in debug info
codegen.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138970 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
402785357ab053dd53f4fdd858b9630a5e0f8bad 25-Jul-2011 Chandler Carruth <chandlerc@gmail.com> Mechanically rename SourceManager::getInstantiationLoc and
FullSourceLoc::getInstantiationLoc to ...::getExpansionLoc. This is part
of the API and documentation update from 'instantiation' as the term for
macros to 'expansion'.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135914 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
5f9e272e632e951b1efe824cd16acb4d96077930 23-Jul-2011 Chris Lattner <sabre@nondot.org> remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports
them into the clang namespace.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135852 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
cb2a07e33789df99d28c3b9cd0770b4e3a8f31b5 19-Jul-2011 Devang Patel <dpatel@apple.com> Simplify.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135456 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
478b94b9454361446a981851a00f2f92062d4b66 19-Jul-2011 Devang Patel <dpatel@apple.com> Check column number also.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135437 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
2acc6e3feda5e4f7d9009bdcf8b1cd777fecfe2d 18-Jul-2011 Chris Lattner <sabre@nondot.org> de-constify llvm::Type, patch by David Blaikie!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135370 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d15608e9861ae4c2667780e5f5b59d6b10472aec 13-Jul-2011 Devang Patel <dpatel@apple.com> Emit debug info for extended vectors.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135083 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
1d323e0482889ad5f9637d62899f35f41a05df46 25-Jun-2011 Devang Patel <dpatel@apple.com> Fix struct member's scope. Patch by Xi Wang.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133829 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f85e193739c953358c865005855253af4f68a497 16-Jun-2011 John McCall <rjmccall@apple.com> Automatic Reference Counting.

Language-design credit goes to a lot of people, but I particularly want
to single out Blaine Garst and Patrick Beard for their contributions.

Compiler implementation credit goes to Argyrios, Doug, Fariborz, and myself,
in no particular order.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133103 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c490312704c87841c2f9646478ff4d93c3bc90f1 03-Jun-2011 Devang Patel <dpatel@apple.com> Simplify.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132560 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
2fd5a0f3eafe65c73b737a1cd995dfda7302ed81 03-Jun-2011 Devang Patel <dpatel@apple.com> Fix typedef's context.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132557 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d127bcbaab6411a6d1a79c1e01abd0320f366cc5 01-Jun-2011 Devang Patel <dpatel@apple.com> Robustify objc method type description (subroutine type) by walking parameters directly.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132368 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c478f21820a187458c60c7d023a32c81eba24e42 31-May-2011 Devang Patel <dpatel@apple.com> List objective-c ineterfaces as public types in dwarf debug info output.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132361 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
1c29652fbcd097aa6c21511c9f4f886bb3f3a8af 31-May-2011 Devang Patel <dpatel@apple.com> List c++ class type as public type in dwarf debug info output.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132357 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ca63c200346c0ca9e00194ec6e34a5a7b0ed9321 25-May-2011 Sean Hunt <scshunt@csclub.uwaterloo.ca> Implement a new type node, UnaryTransformType, designed to represent a
type that turns one type into another. This is used as the basis to
implement __underlying_type properly - with TypeSourceInfo and proper
behavior in the face of templates.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132017 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
bc6a191a1575fa3b7785fe5cbe01463d220553a7 17-May-2011 Devang Patel <dpatel@apple.com> Set up appropriate context for member function.
Radar 9440721



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131441 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
aad16096f49e670aecc92beaa49b33d1c9aba4f2 12-May-2011 Devang Patel <dpatel@apple.com> Doug convinced me that DW_AT_APPLE_objc_complete_type is more appropriate name.
s/DW_AT_APPLE_objc_class_extension/DW_AT_APPLE_objc_complete_type/g



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131245 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f568b6459dd6df59b809a798cb198b4438c13abe 12-May-2011 Devang Patel <dpatel@apple.com> Do not add AT_APPLE_objc_class_extension attribute if @implementation is not seen.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131242 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
707b1e9566776ca26b099685bd7ba5b440bb2acd 12-May-2011 Devang Patel <dpatel@apple.com> Use DW_AT_APPLE_objc_class_extension attribute to identify interfaces that represent class extension.
Radar 9423077.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131239 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
31c79b470bf609028b585266a3127e7fb5f0a534 05-May-2011 Devang Patel <dpatel@apple.com> Do not drop uint128 on the floor.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130929 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
855a8e79f42e670b405b31efd3963f4d89732aff 03-May-2011 Fariborz Jahanian <fjahanian@apple.com> Finish off rules for z-length bitfields in ms_struct
structs. // rdar://8823265


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130783 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
a87a2b2d18b7482f91994e2bba769cddea8bd0ee 03-May-2011 Devang Patel <dpatel@apple.com> Function with internal linkage name do not have mangled name.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130736 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
2df74c000cb031e9e92a9402a8a39301218fca95 03-May-2011 Devang Patel <dpatel@apple.com> Do not try to get mangled name of block helpers. Apply a stopgap measure to fix SingleSource/UnitTests/block-copied-in-cxxobj compile time crash.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130734 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
340fa242130c2d8d74c83edca0952e771aebe0e6 02-May-2011 Fariborz Jahanian <fjahanian@apple.com> More rule enforcement of zero bitfields for ms_struct.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130696 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
7d4b159c0e47f4e78e25cb298430be4fdf415bb7 02-May-2011 Nick Lewycky <nicholas@mxc.ca> Remove unused variable spotted by GCC.

Devang, can we remove this call entirely? If I try that, "make check" passes
but the call has a side-effect of ensuring that the block's context exists in
the debug info. getContextDescriptor() is used in a void context for that side-
effect elsewhere in this file. Please take a look!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130679 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
22a5cdf326a55739078c0930fe42116a93d6c930 30-Apr-2011 Devang Patel <dpatel@apple.com> Tie constructor defintion with its declaration using AT_specification.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
fbc3cc69d2028eccb85bb456d762457b38a65e3b 29-Apr-2011 Fariborz Jahanian <fjahanian@apple.com> Fixes debug info generation problem for ms_struct structs.
// rdar://8823265


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130458 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
37833b00d282cacb7dd1b9889e2a113eed9190ff 26-Apr-2011 Devang Patel <dpatel@apple.com> We need pointer size in bits here.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130244 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
50811d2e8939d3dc79f1ce30985c7cfcb17eda19 26-Apr-2011 Devang Patel <dpatel@apple.com> Emit intrinsic at current insert point, not at the end of current block.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130177 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
e2d0191afbe95f46abd21c3511a02a5a76106da4 26-Apr-2011 Devang Patel <dpatel@apple.com> Simplify. There is no need to have a method to just call another method.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130175 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c556ef293692cf4cb40e11e816656ac23e5567db 24-Apr-2011 Jay Foad <jay.foad@gmail.com> PR9214: Convert the DIBuilder API to use ArrayRef.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130086 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
120bf32525829be4622fc85b67e38b2ff0276744 23-Apr-2011 Devang Patel <dpatel@apple.com> Tie debug information for method declaration with debug information for method definition.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130037 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
0ebce0e15ad5cb0f3e346b35643c7f054a23c6b0 22-Apr-2011 Ken Dyck <kd@kendyck.com> Eliminate some literal 8s from EmitDeclare by converting to CharUnits. No
change in functionality intended.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129999 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
573be633903ecae1f75aeb762f68963379d5ae43 22-Apr-2011 Ken Dyck <kd@kendyck.com> Use CharUnits to eliminate some literal 8s in
EmitTypeForVarWithBlocksAttr(). No change in functionality intended.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129998 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
1f15c19005861b77cc52c14a3b294c6908b603bd 18-Apr-2011 Devang Patel <dpatel@apple.com> Fix typo in comment.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129703 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
10292cc239df9f78ff76ef1e4476fadead971709 17-Apr-2011 Eli Friedman <eli.friedman@gmail.com> Hack to turn the valgrind buildbot green, until Devang can address it
properly.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129657 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
90c1eedd060b33946a0c3ed7d25b6ae435c4aac9 16-Apr-2011 Devang Patel <dpatel@apple.com> Emit proper selector name in debug info.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129626 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
fa936d8304a014f0d0a8382183fb3370ced3bc0a 16-Apr-2011 Devang Patel <dpatel@apple.com> Emit debug info for Objective-C properties.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129625 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
3894c073fea642d54237d83e94be8797d0b54151 09-Apr-2011 Nick Lewycky <nicholas@mxc.ca> Apply explicit braces to avoid ambiguous 'else' [-Wparentheses]


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129176 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
6cf37dd1fd7280dbe4208bab7169ccafc816c768 08-Apr-2011 Devang Patel <dpatel@apple.com> Do not use zero as an upper bound for unbounded array because upper bound zero also indicates one element array.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129157 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
14c65ca4cd914f3090d7eedb9bff4deb0ffc7927 07-Apr-2011 Ken Dyck <kd@kendyck.com> [Reapply r128776, modified so that it does not break debug info.]

Change the return type of CodeGenVTables::getVirtualBaseOffsetOffset() to
CharUnits. No change in functionality intended.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129072 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ddd72ac675d0d7ecc1172fa5c98ab846f983103c 06-Apr-2011 Devang Patel <dpatel@apple.com> Simplify.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128957 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
5ecb1dfb303c58138fdabeea00e73bee075b21ee 06-Apr-2011 Devang Patel <dpatel@apple.com> Emit debug info for function template parameters.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128948 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
89054fb972f5f93a6d29a6701f8ad4a5d38030d4 05-Apr-2011 Devang Patel <dpatel@apple.com> Remove unintentional check-in.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128928 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
12e6d838e22be421b8870b0b3d4069569ee669a5 05-Apr-2011 Devang Patel <dpatel@apple.com> Fix typo.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128921 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c5ce297007527038884673d6eb9d174ae036f586 05-Apr-2011 Devang Patel <dpatel@apple.com> Use TemplateParameterList to extract template parameter name.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128915 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
9c1714ba3d668b6519f8211927976d777d716b95 05-Apr-2011 Devang Patel <dpatel@apple.com> Refactor.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128893 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ab868e2b409e73516dd83c44e1a32c122c460757 05-Apr-2011 Devang Patel <dpatel@apple.com> Eliminate conservative check that is covered by isIncompleteType() check.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128857 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ba690a4112be4f0abde48ce51d41e92c79f96f3e 05-Apr-2011 Devang Patel <dpatel@apple.com> Incomplete type does not have any size.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128855 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
62c117db25cf7142e149fce82d2b3caa1237674c 04-Apr-2011 Devang Patel <dpatel@apple.com> Revert r128770, r128771, r128773 and r128776 for now. It breaks debug info.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128842 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
4fbabd37fd107e0e477b45146499d38a77bf9335 02-Apr-2011 Ken Dyck <kd@kendyck.com> Change the return type of CodeGenVTables::getVirtualBaseOffsetOffset() to
CharUnits. No change in functionality intended.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128776 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ae503df62bde42440a9c4495d26d6142c4af7bcb 01-Apr-2011 Devang Patel <dpatel@apple.com> Do not try calculate the size of forward-declared template type array.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128725 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
e80d56771736c85fd8365c394a6731923b17e91d 23-Mar-2011 Devang Patel <dpatel@apple.com> Update type cache when a type is completed.
Radar 9168773


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128150 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
207f4d8543529221932af82836016a2ef066c917 18-Mar-2011 Peter Collingbourne <peter@pcc.me.uk> Add support for language-specific address spaces. On top of that,
add support for the OpenCL __private, __local, __constant and
__global address spaces, as well as the __read_only, _read_write and
__write_only image access specifiers. Patch originally by ARM;
language-specific address space support by myself.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127915 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ebc327977645f03e12aaeba82f7f53299e47ad3a 06-Mar-2011 Anders Carlsson <andersca@mac.com> Correctly unwrap 'auto' types. Fixes PR9414.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127121 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
14aa2175416f79ef17811282afbf425f87d54ebf 04-Mar-2011 John McCall <rjmccall@apple.com> Make AttributedTypes for GC-qualified types and fix some miscellaneous
bugs with such types. Not sure this is quite how I want the desugaring
and a.k.a. logic to go, but it suffices.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126986 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
093ac461b37a573dcf226fa55faed96f318169b9 03-Mar-2011 Devang Patel <dpatel@apple.com> Encode argument numbering in debug info so that code generator can emit them in order.
This fixes few blocks.exp regressions.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126960 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
41ba26701de859128ebe48a957c286e5dc01475f 02-Mar-2011 Devang Patel <dpatel@apple.com> revert r126858.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126874 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
810b07ccf7b19f532402d24064df543bb0518acd 02-Mar-2011 Devang Patel <dpatel@apple.com> Encode argument numbering in debug info so that code generator can emit them in order.
This fixes few blocks.exp regressions.

Reapply r126795 with a fix (one character change) for gdb testsuite regressions.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126858 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
3da5cb2d6e582ab3acb5dd0d2fd8ab31922750be 02-Mar-2011 Devang Patel <dpatel@apple.com> Revert r126794.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126848 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d113a6fb6d09778bfc2e6edfd7c8b978a366f013 02-Mar-2011 John McCall <rjmccall@apple.com> Hack in something so that we emit better debug information about
captured __block variables in the block-literal type.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126834 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
8a04585eba8a87a660c9030c9cdef34c8c9f85c6 01-Mar-2011 Devang Patel <dpatel@apple.com> Encode argument numbering in debug info so that code generator can emit them in order.
This fixes few blocks.exp regressions.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126795 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
5c5b5878d88767500e06a114c53434e637bbba6b 28-Feb-2011 Devang Patel <dpatel@apple.com> Use single code path to handle c++ structs and classes while generating debug info.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126691 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
8178df3b39ab923ff5d24538812628abee33df79 22-Feb-2011 John McCall <rjmccall@apple.com> Emit the structure layout of the block literal parameter to a block
invocation function into the debug info. Rather than faking up a class,
which is tricky because of the custom layout we do, we just emit a struct
directly from the layout information we've already got.

Also, don't emit an unnecessarily parameter alloca for this "variable".



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126255 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
16674e887bf0c40e29975f6258a3a2fa096ea45d 22-Feb-2011 Devang Patel <dpatel@apple.com> Use LLVM coding standard.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126232 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
34b41d939a1328f484511c6002ba2456db879a29 20-Feb-2011 Richard Smith <richard-llvm@metafoo.co.uk> Implement the C++0x deduced 'auto' feature.

This fixes PR 8738, 9060 and 9132.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126069 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
4a4e2efb908b17e79d95b5b4fccf58b4cd1dddb1 19-Feb-2011 Devang Patel <dpatel@apple.com> Start using enums from DIBuilder.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125990 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
bb6f54833cda9197511678d078f7d95d8da6f27e 16-Feb-2011 Devang Patel <dpatel@apple.com> If preprocessed token introduced empty filename then use main translation unit's filename for debug info entries.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125672 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
34753802931fddcf57bd62c5b83bdca1a23017d7 16-Feb-2011 Devang Patel <dpatel@apple.com> Simplify test to check an aggregate argument that has non trivial constructor or destructor.
This patch rewrites r125142.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
6354d68cbbbda2ede44f68bb2cfe0f31795e8844 16-Feb-2011 Devang Patel <dpatel@apple.com> Only c++ class arguments with non trivial constructor or destructor needs a reference.
C struct arguments do not need this adjustment.
This fixes 7 failures in callfuncs.exp from gdb testsuite.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125615 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
0691f93ac23978e2b28b031e5c4a0b3c6dc94798 10-Feb-2011 Devang Patel <dpatel@apple.com> If an aggregate is returned as 'sret' argument then let debugger know about this.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125249 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
eb4c45b383b4a8f69d23e4b9cfb6dd3e6f8ff641 09-Feb-2011 Devang Patel <dpatel@apple.com> Do not emit AT_MIPS_linkage_name for Objective-C method static variable i.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125210 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
6e108ced4a5f199d0f5da09344df2c03caa4b667 09-Feb-2011 Devang Patel <dpatel@apple.com> Emit debug info for objc_selector.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125163 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
570729e71654f0564bf2ce6504f8629a96850914 09-Feb-2011 Devang Patel <dpatel@apple.com> If an aggregate argument is passed indirectly because it has non trivial
destructor or copy constructor than let debug info know about it.

Radar 8945514.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125142 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d16c2cf1cafa413709aa487cbbd5dc392f1ba1ff 08-Feb-2011 John McCall <rjmccall@apple.com> Reorganize CodeGen{Function,Module} to eliminate the unfortunate
Block{Function,Module} base class. Minor other refactorings.

Fixed a few address-space bugs while I was there.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125085 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
6b5a61b6dc400027fd793dcadceeb9da944a37ea 07-Feb-2011 John McCall <rjmccall@apple.com> A few more tweaks to the blocks AST representation:
- BlockDeclRefExprs always store VarDecls
- BDREs no longer store copy expressions
- BlockDecls now store a list of captured variables, information about
how they're captured, and a copy expression if necessary

With that in hand, change IR generation to use the captures data in
blocks instead of walking the block independently.

Additionally, optimize block layout by emitting fields in descending
alignment order, with a heuristic for filling in words when alignment
of the end of the block header is insufficient for the most aligned
field.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125005 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
0ce34c6ba0aa79708a62179c0fdf96891b62b5dc 02-Feb-2011 Devang Patel <dpatel@apple.com> Emit debug info for template value parameters.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124756 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
fa275dfad7c4eb053ffef423a863afbe15534476 02-Feb-2011 Devang Patel <dpatel@apple.com> Emit debug info for template type parameters.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124753 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
36b8ee6325b709dd301681fb281b6cf102a5e51a 22-Jan-2011 Douglas Gregor <dgregor@apple.com> Debug info generation for rvalue references

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124020 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f4c7371fb1d3cebcfb40abad4537bb82515704ea 19-Jan-2011 John McCall <rjmccall@apple.com> Change QualType::getTypePtr() to return a const pointer, then change a
thousand other things which were (generally inadvertantly) relying on that.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123814 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
31f7d02f0d46207b077f9687fbfbf273dda4d5f5 17-Jan-2011 Devang Patel <dpatel@apple.com> Simplify.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123682 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
b1fd0eb8abe0b972ab793edab1d6f5e976217178 11-Jan-2011 Devang Patel <dpatel@apple.com> Fix debug info for __block variable referenced outside of block.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123199 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
9d156a7b1b2771e191f2f5a45a7b7a694129463b 06-Jan-2011 John McCall <rjmccall@apple.com> Introduce an AttributedType, but don't actually use it anywhere yet.
The initial TreeTransform is a cop-out, but it's more-or-less equivalent
to what we were doing before, or rather what we're doing now and might
eventually stop doing in favor of using this type.
I am simultaneously intrigued by the possibilities of rebuilding a
dependent Attri



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122942 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
075f8f1b6bed4d1b224c74f87508534cc6392ce6 10-Dec-2010 Abramo Bagnara <abramo.bagnara@gmail.com> Added ParenType type node.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121488 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
49f4e1cbd839da27ff4814b4ea6d85a79f786cbd 10-Dec-2010 John McCall <rjmccall@apple.com> It's kindof silly that ExtQuals has an ASTContext&, and we can use that
space better. Remove this reference. To make that work, change some APIs
(most importantly, getDesugaredType()) to take an ASTContext& if they
need to return a QualType. Simultaneously, diminish the need to return a
QualType by introducing some useful APIs on SplitQualType, which is
just a std::pair<const Type *, Qualifiers>.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121478 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
170cef3bff5b5659fac13e13bd824e1d61a64f5d 09-Dec-2010 Devang Patel <dpatel@apple.com> Remove unused parameter. getContextDescriptor() and getOrCreateNameSpace().


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121333 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
344ff5d3dee44490abd7f4e767dd7b99c2050780 09-Dec-2010 Devang Patel <dpatel@apple.com> Remove unused parameter.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121326 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
823d8e96cf3ff11775b8beb7f4d817a578972dc4 08-Dec-2010 Devang Patel <dpatel@apple.com> Start using DIBuilder. It provides cleaner interface.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121302 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
a6a28972472d002ea9edd095f966c1eaaa9cb69b 30-Nov-2010 Douglas Gregor <dgregor@apple.com> Harden CGDebugInfo::CreateType() a bit for cases where we couldn't generate type info for its component types

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120401 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
03013fa9a0bf1ef4b907f5fec006c8f4000fdd21 29-Nov-2010 Michael J. Spencer <bigcheesegs@gmail.com> Merge System into Support.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120297 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c9e814ba193f38a7b08268612248f63beb279bb3 25-Nov-2010 Anders Carlsson <andersca@mac.com> Rename RecordLayout::getPrimaryBaseWasVirtual to isPrimaryBaseVirtual.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120133 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
33e4e70c8c0a17e0ccb7465d96556b077a68ecb1 18-Nov-2010 Argyrios Kyrtzidis <akyrtzi@gmail.com> Refactoring of Diagnostic class.

-Move the stuff of Diagnostic related to creating/querying diagnostic IDs into a new DiagnosticIDs class.
-DiagnosticIDs can be shared among multiple Diagnostics for multiple translation units.
-The rest of the state in Diagnostic object is considered related and tied to one translation unit.
-Have Diagnostic point to the SourceManager that is related with. Diagnostic can now accept just a
SourceLocation instead of a FullSourceLoc.
-Reflect the changes to various interfaces.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119730 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
8c457a8395676692225cd4c90bfb54d430199fdf 11-Nov-2010 Douglas Gregor <dgregor@apple.com> Teach debug-info generation that SourceManager::getPresumedLoc() can
produce an invalid location even when given a valid location, if the
file system has changed underneath us. Recovery more gracefully.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118834 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
910f8008fea79120489a53593fe971b0b8a4a740 08-Nov-2010 Douglas Gregor <dgregor@apple.com> Remove broken support for variadic templates, along with the various
abstractions (e.g., TemplateArgumentListBuilder) that were designed to
support variadic templates. Only a few remnants of variadic templates
remain, in the parser (parsing template type parameter packs), AST
(template type parameter pack bits and TemplateArgument::Pack), and
Sema; these are expected to be used in a future implementation of
variadic templates.

But don't get too excited about that happening now.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118385 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f1d1d9ad72507a8ef1e97d2dccad8445f035e762 01-Nov-2010 Devang Patel <dpatel@apple.com> Simplify. Builtin types' context is always implied.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117928 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
a14f5979572aa25c03d24750ee4724d2031d4ede 01-Nov-2010 Anders Carlsson <andersca@mac.com> Rename getBaseClassOffset to getBaseClassOffsetInBits and introduce a getBaseClassOffset which returns the offset in CharUnits. Do the same thing for getVBaseClassOffset.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117881 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f4dd962e6828f790cefc09a5b15bdbd282ebc1ee 29-Oct-2010 Devang Patel <dpatel@apple.com> After processing named unions do not fall through to handle anonymous unions.
This is tested by funcargs.exp in gdb testsuite.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117659 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
532105f0257ec73e9bf75a3036bac1b37b5a5643 29-Oct-2010 Devang Patel <dpatel@apple.com> Basic types are language defined builtins. They are always defined at top most level.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117613 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
8c37668762d85ef83e59580bf188ded99179ecc4 28-Oct-2010 Devang Patel <dpatel@apple.com> Directly use NamespaceDecl->getLocation() to find the source file.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117576 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
a2e57698e2af5fd5ff37fde0ea7bcab4761534f3 28-Oct-2010 Devang Patel <dpatel@apple.com> Stay within 80 columns.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117561 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
4bc48877db95b2afd6207fdb54ce271169c994f9 28-Oct-2010 Devang Patel <dpatel@apple.com> Fix context info for enums.
Radar 8595129


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117507 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
33133579550f97f33f05dad257b18b7961ff1ef1 22-Oct-2010 Devang Patel <dpatel@apple.com> Revert unintentional check-in.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117120 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
58faf20b459f33c33f752d6d9ee910e59e0ea1bb 22-Oct-2010 Devang Patel <dpatel@apple.com> Tidy up MIPS_linkage name. Provide it only if it does not match regular name, otherwise it confuses debugger.
This is tested by local.C in llvmgcc testsuite.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117107 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
1a4c93777982210306223e9f92bc30c27625208e 18-Oct-2010 Fariborz Jahanian <fjahanian@apple.com> patch fixes class names missing from method names in debug information for
synthesized property. // rdar: //8498026


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116717 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
5bc794ff3034bad2b231b0841ea6d0a711c4af59 15-Oct-2010 Devang Patel <dpatel@apple.com> Use root non-virtual primary base class, not just immediate primary base class, for AT_containing_type.
This is tested by virtfunc.exp in gdb testsuite.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116535 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
cebbedd237d4560099de3b5b7f7c03a1689b700e 13-Oct-2010 Devang Patel <dpatel@apple.com> Fix debug info for anon union.
This is tested by anon-union.exp.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116372 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
fe8fdba52d89ea72aba6efbb6346394277224db4 12-Oct-2010 Fariborz Jahanian <fjahanian@apple.com> Fixes a typo which caused byte offset in debug info
for ivars to be 0. Fixes pr8353.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116273 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
0692f838794fc8d2d5692dd31209af891c40ebf1 11-Oct-2010 Devang Patel <dpatel@apple.com> Fix debug info for functions whose context is a namespace.
This is tested by namespace.exp in gdb testsuite.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116248 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
189d6ef40eff11b83b2cda941d5ed89a5cef09b2 09-Oct-2010 John McCall <rjmccall@apple.com> Permit constant evaluation of const floating-point variables with
constant initializers.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116138 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
3951e7106c849db72301a1ef05f99511e4818ef0 08-Oct-2010 Devang Patel <dpatel@apple.com> Identify functions with prototype appropriately in debug info.
This is tested by callfuncs.exp in gdb testsuite.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115989 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
af164bbd5acc20c6f20ff4cf11b654c342d31eaa 06-Oct-2010 Devang Patel <dpatel@apple.com> Mark FunctionNoProtoType's argument as unspecified parameters.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115834 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
cdf523ca1fc81c18fccb4757714f7cd27288a580 06-Oct-2010 Devang Patel <dpatel@apple.com> Do not emit subrange for incomplete array type.
This is tested by ptype.exp in gdb testsuite.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115805 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d2829b76a87a70791184b3cac89900d2cda46ce4 06-Oct-2010 Devang Patel <dpatel@apple.com> Remove unused argument.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115789 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d78a01906d2a1edb572a99c11f0901beddbcd8c0 02-Oct-2010 Devang Patel <dpatel@apple.com> Mark explict methods as explict in debug info.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115379 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
9747739d0dd3077763100c28a134cc1f332df3d4 01-Oct-2010 Fariborz Jahanian <fjahanian@apple.com> Output debug info. for ivars declared in class
extension and implementation.
Fixes rdar://8493239.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115248 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c69e1cf04323f2e786d40e8a5ba84e77ee1c6827 30-Sep-2010 Devang Patel <dpatel@apple.com> Introduce -flimit-debug-info.
In this experimental mode try avoiding debug info emission for classes as much as possible. The goal is to reduce size of produced debuginfo without reducing quality of debug info in general. This is a work in progress.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115188 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
aca745b8b2eb58dc149ea7e65dfe133df2b0ab93 30-Sep-2010 Devang Patel <dpatel@apple.com> Attach aritifical attribute with implicit parameters.
Radar 8493141.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115104 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
10a7a6a7ec20179b51544f093aee816a1a41793e 29-Sep-2010 Devang Patel <dpatel@apple.com> Emit method access specifier.
Radar 8490416.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115090 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
e24724893a2f9cb1d660b2e1d5b7b8b899aedb3d 29-Sep-2010 Devang Patel <dpatel@apple.com> Update to reflect DIFactory::CreateSubprogram() interface change from r115084.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115085 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
43228a4f6723856c22c610d70a8d46006ce65902 29-Sep-2010 Devang Patel <dpatel@apple.com> Remove dead code.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115079 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
3475cfeebe00908af47396d5a055237a0ad7cb8d 21-Sep-2010 Benjamin Kramer <benny.kra@googlemail.com> Adjust for debug info API change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114438 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
38c9b1765c56406e97510889b465b7885ccb59f3 18-Sep-2010 Gabor Greif <ggreif@gmail.com> do not rely on the implicit-dereference semantics of dyn_cast_or_null

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114281 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
424a5c63bb337926f3a1bfa20cc9f7c944aacbb0 15-Sep-2010 Devang Patel <dpatel@apple.com> While handling change of file, check if _current_ file is already seen or not. If current file is seen then it indicates that end of previous file's lexical scope.
This fixes radar 8396182.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114018 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
52044a2cb6d33705cb69577e5f202e794123ce81 02-Sep-2010 David Chisnall <csdavec@swan.ac.uk> Tidy up last commit, as per Devang's comments.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112840 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
70b9b448efbebddddb3faa3a68b31ee1682bcd5c 02-Sep-2010 David Chisnall <csdavec@swan.ac.uk> Use the unmangled name for the display name in Objective-C debug info. This should have no effect with the Mac runtime where clang (unlike GCC) uses the display name symbol name.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112833 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
2ed8f000869103b1adc05d6bc4c635604b6e66a7 27-Aug-2010 Devang Patel <dpatel@apple.com> Debug info for friends!
Patch originally by Alexander Herz.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112275 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ffc52e78a27564d0512d42ed5c98a5588cf906b5 24-Aug-2010 Devang Patel <dpatel@apple.com> Fix enum size and align. Tested by setvar.exp in gdb testsuite.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111936 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
19f1983c425ccf2b66b5e301daaef6086108d917 24-Aug-2010 Daniel Dunbar <daniel@zuster.org> Debug Info: Put full Clang version into the debug info, to make it easier to
identify what version of the compiler was used to build something.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111927 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
6237cea785144d4cdbe2a5e722788e0b4b9b30f9 24-Aug-2010 Devang Patel <dpatel@apple.com> Emit debug info for enum constants.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111852 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
45f7c78ea33e0b1b1575ca6e6f7a094be5f77e32 23-Aug-2010 Dan Gohman <gohman@apple.com> Reinstate the code for emitting an initial debug type for a struct,
to handle the case where the struct is only forward-declared. In
this case, a temporary MDNode is not needed and not desired.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111842 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
a7e6845660f91ec611427e1db842780e1ec12bdb 22-Aug-2010 Eli Friedman <eli.friedman@gmail.com> Detabify.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111768 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
e60586297dbe976653d42f15ef2089a13c64d951 21-Aug-2010 Dan Gohman <gohman@apple.com> Delete an obsolete comment.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111711 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
869683782e0da7a5fb7aca04b681a31d1b7ae355 21-Aug-2010 Dan Gohman <gohman@apple.com> CreateTemporaryType doesn't needs its Context argument.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111688 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
4cac5b48e379a209d87aa9df191e6bb418e44a0f 21-Aug-2010 Dan Gohman <gohman@apple.com> Introduce a new temporary MDNode concept. Temporary MDNodes are
not part of the IR, are not uniqued, and may be safely RAUW'd.
This replaces a variety of alternate mechanisms for achieving
the same effect.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111682 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
dabc3e90cc385214a53064d8c44edbece9891ddf 12-Aug-2010 Devang Patel <dpatel@apple.com> Emit debug info for static const class member.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110885 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
4c4acc0352037528c710d798c0d2bc771a6782ac 10-Aug-2010 Devang Patel <dpatel@apple.com> Simplify


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110716 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
0317ab0f54e7884b072ed359447e078d067fc9e9 10-Aug-2010 Devang Patel <dpatel@apple.com> Do not use DIGlobalVariable to emit debugging information for enums.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110697 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
25c2c8fb9309050612009a6571e2660e75531348 10-Aug-2010 Devang Patel <dpatel@apple.com> Simplify code and add comments, in code that generate debug info for constant integer globals, based on Chris's feedback.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110694 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
8d308384a220c7dc81755c47cdcbdd87dac25d5b 10-Aug-2010 Devang Patel <dpatel@apple.com> Even if a constant's evaluated value is used, emit debug info for the constant variable.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110660 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
05127ca8559d28e1a56742fed3ebecbf711c8a31 29-Jul-2010 Devang Patel <dpatel@apple.com> Override selected builtin names (e.g. "long int" instead of "long") to match names used by gcc in debug info. This makes gdb testsuite happy.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109694 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c8972c61d13c67e69eb7d992560aac7613eacd37 28-Jul-2010 Devang Patel <dpatel@apple.com> construct debug info for "id" by hand.
Tested by mi1-var-obj.exp in gdb testsuite.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109571 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
58115009ba6406c2a0bcc5a5033592bd5f2fad30 27-Jul-2010 Devang Patel <dpatel@apple.com> Always use current working directory for DW_AT_comp_dir.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109535 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ac4d13c0cc78a3b28a8af8001e4da6b18fa9029d 27-Jul-2010 Devang Patel <dpatel@apple.com> Reapply 109303.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109507 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
e9b711c39827d7dcba0fc4cb787a4a7395285634 26-Jul-2010 Devang Patel <dpatel@apple.com> Revert 109303.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109426 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
05b0f4195edf62af76795c92703a1d0c0fa936d9 24-Jul-2010 Devang Patel <dpatel@apple.com> Untangle filename/dirname confusion. Store constructed strings on the side. Avoid use of Path.makeAbsolute().

DW_TAG_compile_unit uses two attributes DW_AT_name and DW_AT_comp_dir. Their expected values are:

$ clang foo.c -g
DW_AT_name - foo.c
DW_AT_comp_dir - `pwd`

$ clang one/two/foo.c -g
DW_AT_name - one/two/foo.c
DW_AT_comp_dir - `pwd`

$ clang /tmp/one/foo.c -g
DW_AT_name - /tmp/one/foo.c
DW_AT_comp_dir - empty



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109303 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
6e6bc39acd7a1f05fe8ce562cae643aaa40c31b7 24-Jul-2010 Devang Patel <dpatel@apple.com> Revert r109263.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109284 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ab2e020d80afb6d8c88515f6a7e9d371dcc6f2e4 23-Jul-2010 Devang Patel <dpatel@apple.com> There is no need to use separate dir name for AT_comp_dir attribute. Using absolute path for filename allows clients to query complete file location info from gdb breakpoints. Save constructed full file name.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109263 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
5a6fbcfd8c15a2296f94a0473a68ec09d429827f 23-Jul-2010 Devang Patel <dpatel@apple.com> Keep track of artificial scopes introduced by line directives. For example,

#line 41 "bar.c"
dummy (1, i);
#line 24 "bar.h"
i = f2 (i);
#line 44 "bar.c"

This is tested by step-line.exp in gdb testsuite.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109189 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
eaf5ee9ba8d46aba90b4e824c04e8ed8affb1bd4 22-Jul-2010 Devang Patel <dpatel@apple.com> ObjCId is special "struct objc_object". Make this explicit in debug info.
This is tested by objc-rbreak.exp in gdb testsuite.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109050 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ec5ea2bc6d81c2e896ffff64821c7993ee74060e 21-Jul-2010 Devang Patel <dpatel@apple.com> Remove unintended code that was checked in as part of r108916.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108951 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
4d939e64142126b872e39c11dc995aa993f137fe 21-Jul-2010 Devang Patel <dpatel@apple.com> Remove unused argument.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108946 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
700a1cb1d207e660fcd9c234cccfc78553f06802 20-Jul-2010 Devang Patel <dpatel@apple.com> Print template argument names for template class.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108916 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
257d1d360282ad075f762991707f07525e898758 20-Jul-2010 Stuart Hastings <stuart@apple.com> Correct line info for declarations/definitions. Radar 8063111.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108785 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
15a3d7df1ad667c6c09e34def34d546124c9efac 16-Jul-2010 Devang Patel <dpatel@apple.com> Set "optimization is ON" and supply other optional parameters. This helps codegenerator preserve info in case the symbol is deleted.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108471 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
4089491e354a8718f3953b0ef72da0ad6ca98d89 16-Jul-2010 Devang Patel <dpatel@apple.com> Mark implementation generated methods as artificial.
Tested by namespace.exp and virtfunc.exp from gdb testsuite.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108468 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
db30c0f5cfcda4483bf4d2a02d6a94289984a4a9 15-Jul-2010 Devang Patel <dpatel@apple.com> Revert 108220 and subsequent patch.
This is not required (I am not 100% sure why) but method.exp from gdb testsuite flagged regression due to this patch.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108434 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
2ecebc2232d73efa80dd65bb176053f98899d069 13-Jul-2010 Devang Patel <dpatel@apple.com> Add volatile qualifiers for "this".


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108245 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
769640e30d1e8ec2a6667daff1c2d0a28811138b 13-Jul-2010 Devang Patel <dpatel@apple.com> const qualify debug info for "this" for const methods.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108220 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
a5c5babb9974aaf07568e90086af52b91edc2c16 13-Jul-2010 Devang Patel <dpatel@apple.com> While collecting members for a class, always create delcaration entry for methods. Debug info for method definition will be generated while generating code for method body.
Tested by classes.exp in gdb testsuite.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108205 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
0b89799b6fdc6bf88f4800bd0801fe6ed5dffc59 08-Jul-2010 Devang Patel <dpatel@apple.com> Handle forward declarations properly in debug info.
Patch by Alexander Kabaev.
PR 7595.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107900 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
9a20d55807cc2f6534a9c51a46cc8143ed16786d 22-Jun-2010 Anders Carlsson <andersca@mac.com> Switch over to the new caching version of getMangledName.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106549 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
06057cef0bcd7804e80f3ce2bbe352178396c715 16-Jun-2010 Chandler Carruth <chandlerc@gmail.com> Move CodeGenOptions.h *back* into Frontend. This should have been done when the
dependency edge was reversed such that CodeGen depends on Frontend.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106065 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
44eeebaa53c0137447f9bac5f55755e480d59597 05-Jun-2010 Devang Patel <dpatel@apple.com> Preserve type info for local variables in optimized builds.
llvm-gcc enabled this couple of weeks ago.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105516 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c12c5bba6ceb6acd4e51e7a0fc03257da9cfd44e 15-May-2010 John McCall <rjmccall@apple.com> Substantially alter the design of the Objective C type AST by introducing
ObjCObjectType, which is basically just a pair of
one of {primitive-id, primitive-Class, user-defined @class}
with
a list of protocols.
An ObjCObjectPointerType is therefore just a pointer which always points to
one of these types (possibly sugared). ObjCInterfaceType is now just a kind
of ObjCObjectType which happens to not carry any protocols.

Alter a rather large number of use sites to use ObjCObjectType instead of
ObjCInterfaceType. Store an ObjCInterfaceType as a pointer on the decl rather
than hashing them in a FoldingSet. Remove some number of methods that are no
longer used, at least after this patch.

By simplifying ObjCObjectPointerType, we are now able to easily remove and apply
pointers to Objective-C types, which is crucial for a certain kind of ObjC++
metaprogramming common in WebKit.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103870 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
0fd3d1f5664149f0a6b62fc847eeabf4d8659360 14-May-2010 Devang Patel <dpatel@apple.com> Fix thinko in yesterday's fix.
Providing linkage name for function static variable confuses gdb, so don't do that.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103779 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
8b90a7804b15b0d203650df123fb236b86da8cc0 14-May-2010 Devang Patel <dpatel@apple.com> Fix context in class static variable's debugging information entry.
This fixes bunch of failures in gdb testsuite.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103745 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
8ab870d34f02921e117e61de9ef7e78548635655 13-May-2010 Devang Patel <dpatel@apple.com> If given location is invalid then use current location.
This fixes recent regressions reported by gdb testsuite.
Tighter verification of debug info generated by FE found these regressions.

Refactor code to extract line number and column number from SourceLocation.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103678 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
465d41b92b2c862f3062c412a0538db65c6a2661 11-May-2010 Abramo Bagnara <abramo.bagnara@gmail.com> Merged Elaborated and QualifiedName types.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103517 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f8e10a5d408b59946ce66edbaba251f0c6f16d60 11-May-2010 Devang Patel <dpatel@apple.com> Initialize Column.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103448 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
258cf2766859f706bcd231a48593fbb6a1a1d0fe 10-May-2010 Devang Patel <dpatel@apple.com> If variable location is invalid then use current location.
This fixes radar 7959934.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103408 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f4e54a2ddf50d81cb761be12ec1381a9f77a9ea9 08-May-2010 Devang Patel <dpatel@apple.com> If there is not any debug info for type then do not emit debug info for this variable.
A recent change to tightly verify debug info prepared by FE caught this.
This fixes unittest build.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103320 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ab699798f72225f1735b60b35a7db7c8022c50c6 07-May-2010 Devang Patel <dpatel@apple.com> Avoid use of DIDescriptor::getNode(). Use overloaded operators instead.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103273 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
5f970eee81372dfc6a1457c3d6d052af04e32a38 04-May-2010 Douglas Gregor <dgregor@apple.com> When instantiating a function that was declared via a typedef, e.g.,

typedef int functype(int, int);
functype func;

also instantiate the synthesized function parameters for the resulting
function declaration.

With this change, Boost.Wave builds and passes all of its regression
tests.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103025 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
5d822f06e84196c8bf80641d793d35e8cc7adb0e 29-Apr-2010 Devang Patel <dpatel@apple.com> Use clang::VarDecl name instead of llvm::GlobalVariable name.
llvm::GLobalVariable name may not match user visibile name for function static variables.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102644 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
31f17ecbef57b5679c017c375db330546b7b5145 27-Apr-2010 John McCall <rjmccall@apple.com> Make the InjectedClassNameType the canonical type of the current instantiation
of a class template or class template partial specialization. That is to
say, in
template <class T> class A { ... };
or
template <class T> class B<const T*> { ... };
make 'A<T>' and 'B<const T*>' sugar for the corresponding InjectedClassNameType
when written inside the appropriate context. This allows us to track the
current instantiation appropriately even inside AST routines. It also allows
us to compute a DeclContext for a type much more efficiently, at some extra
cost every time we write a template specialization (which can be optimized,
but I've left it simple in this patch).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102407 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
2b594b9b62e914770d736cc51a18598202d90945 27-Apr-2010 Devang Patel <dpatel@apple.com> Enable debug info for local variables at -O1+.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102398 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d3651cc24fbcffd8f187c82e6a91e6e3de7fe26e 24-Apr-2010 Benjamin Kramer <benny.kra@googlemail.com> Fix pasto, add a comment.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102263 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
48c70f62dd7233a0ce5242dfb933b0d4638b3923 24-Apr-2010 Benjamin Kramer <benny.kra@googlemail.com> Factor code. No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102262 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
970c618c3f9ce7e010a30587118afc03434cfd99 24-Apr-2010 Devang Patel <dpatel@apple.com> Revert accidental check-in.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102226 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f0bf4d554f2513cbb4bec952c81ced59279ad91e 24-Apr-2010 Devang Patel <dpatel@apple.com> Revert r102215. This causes clang crash while compiling a test case from gdb testsuite.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102224 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
71f4ff62bcff31c67808adb08691103b469ce9be 22-Apr-2010 Devang Patel <dpatel@apple.com> Encode field accessibility.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102033 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
046c294a43024874ff35656c6e785b64e72f1f36 17-Apr-2010 Anders Carlsson <andersca@mac.com> Vtable -> VTable renames across the board.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101666 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
4800ea6ff8017cf803c32a5fd63b94c0614014e3 05-Apr-2010 Devang Patel <dpatel@apple.com> Emit debug info for objc getters and setters.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100462 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
e541d01cc886e4a3c16c98ee7d9921757727adf1 02-Apr-2010 Chris Lattner <sabre@nondot.org> NewDebugLoc got renamed to DebugLoc.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100219 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c60346388d60b1756f3675dabb60dc58da0728ec 01-Apr-2010 Chris Lattner <sabre@nondot.org> adjust to IRBuilder change and use faster DebugLoc apis.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100093 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
aaa210cf82141968b59eff28ae448d0e383c46a3 31-Mar-2010 Chris Lattner <sabre@nondot.org> use the new optimized debug info metadata accessors. In
addition to the inherent win, this eliminates the pointless
cost of going through the name -> mdkind stringmap that we
were paying.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99983 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ad4688669579d5d7b025137a095be66936d7ea31 30-Mar-2010 Benjamin Kramer <benny.kra@googlemail.com> Replace some constant-sized SmallVectors.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99884 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
9c25039c4b93faf9cd09b62d41552cc3c5986d12 30-Mar-2010 Ted Kremenek <kremenek@apple.com> Cache results computed by CGDebugInfo::getOrCreateFile() in a DenseMap.
This reduces '-c -g' time on one file in 403.gcc by 12%.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99857 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
590838badd46e0559a6b709857fb87530e546276 29-Mar-2010 Ted Kremenek <kremenek@apple.com> Change 'TypeCache' from being an std::map to a llvm::DenseMap. This reduces codegen time
on one .i file from 403.gcc by 0.5%.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99823 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
af4403545a50a60d208e6fcae057308d576a92e0 23-Mar-2010 Anders Carlsson <andersca@mac.com> Rename CGVtableInfo to CodeGenVTables in preparation of adding another VTableInfo class.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99250 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f6728fcbec62be94469a6e80c7e7e32e3f2c3329 22-Mar-2010 Douglas Gregor <dgregor@apple.com> Comment the reasons for the strange little dance we do with the main file name for debug information

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99215 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f746aa6a8f538be914173a4aef2d9a2fd9f99d17 20-Mar-2010 John McCall <rjmccall@apple.com> Change CodeGenModule to rely on the Module's symbol table instead of
shadowing it in the GlobalDeclMap. Eliminates the string-uniquing
requirement for mangled names, which should help C++ codegen times a little.
Forces us to do string lookups instead of pointer lookups, which might hurt
codegen times a little across the board. We'll see how it plays out.

Removing the string-uniquing requirement implicitly fixes any bugs like
PR6635 which arose from the fact that we had multiple uniquing tables for
different kinds of identifiers.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99012 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f7ad50026074776bde13fdf790bcf2f647904f1b 19-Mar-2010 Douglas Gregor <dgregor@apple.com> Try to improve computation of the main file name for debug
information, to address recent gdb failures.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98959 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ac91b4c7063615da6797031f5ac46a906e6b8166 19-Mar-2010 Douglas Gregor <dgregor@apple.com> For debug information, get the main file name from the source manager
rather than from the -main-file-name flag, since the source manager
has proper path information. Fixes <rdar://problem/7769538>.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98898 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
fea3d4dd1a0cebafba7d85cfcb1724b644e2b8e2 13-Mar-2010 Benjamin Kramer <benny.kra@googlemail.com> Use raw_ostream instead of sprintf.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98438 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
22fe585bd689c2ff64af193e207901aba14cadd5 12-Mar-2010 Devang Patel <dpatel@apple.com> If main file name is empty then use "<unknown>".


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98385 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
e4c1ea0c23ce994e5d8084c6a9d41b18c803fcf3 11-Mar-2010 Devang Patel <dpatel@apple.com> Keep track of Record context to ensure that record elements are properly nested in debug info.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98283 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
bba16079eed1f3c8cd141685ecfaec9e78e07e35 11-Mar-2010 Anders Carlsson <andersca@mac.com> Rename getVirtualBaseOffsetIndex to getVirtualBaseOffsetOffset to reflect what it actually does.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98248 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
3cb0ebd5f76abcb776f7cb4062bd79e3268c0dc4 10-Mar-2010 John McCall <rjmccall@apple.com> Create a new InjectedClassNameType to represent bare-word references to the
injected class name of a class template or class template partial specialization.
This is a non-canonical type; the canonical type is still a template
specialization type. This becomes the TypeForDecl of the pattern declaration,
which cleans up some amount of code (and complicates some other parts, but
whatever).

Fixes PR6326 and probably a few others, primarily by re-establishing a few
invariants about TypeLoc sizes.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98134 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f33837022e000c383527fa560d4b5381b6563fcd 10-Mar-2010 Devang Patel <dpatel@apple.com> Use SmallString instead of alloca.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98112 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d58562e84f54f0d2c9f2cd0f8b589201f3add2ec 09-Mar-2010 Devang Patel <dpatel@apple.com> Fix file reference for derived and composite types. Now, dwarf writer uses strict verifier that ignores debug info for such types if their file info is unknown.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98096 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
7573f8b2f90ef65a253f7355fc466c93f0bc9832 09-Mar-2010 Devang Patel <dpatel@apple.com> More then one anonymous aggregates on one line creates chaos when MDNode uniquness is combined with RAUW operation. Right solution is to avoid using RAUW.

This fixes PR 6554.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98083 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
683f6db0b7f0475123f66887f333c40fb2d791a2 09-Mar-2010 Devang Patel <dpatel@apple.com> Use getLast() instead of getBasename().



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98072 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
1780055f6dacd44ae9bd896c47a6424470b3ea2b 09-Mar-2010 Devang Patel <dpatel@apple.com> Start using DIFile. Corresponding llvm patch is r98020.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98021 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
0804e6e0ad2862826497677a4c26c6a9d7c3d66c 08-Mar-2010 Devang Patel <dpatel@apple.com> Avoid using DIDescriptor.isNull().



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97976 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
dd7b0d5d2763be1061cc99ca3e55a99cdee70816 08-Mar-2010 Devang Patel <dpatel@apple.com> Revert r97949.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97964 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ff03ab10bde75a142a944cbaa5cbf8757fe3e71c 08-Mar-2010 Devang Patel <dpatel@apple.com> Avoid DIDescriptor.isNull() checks.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97949 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
67b14f0077d6cc508b933100d601ae8e6524b72f 25-Feb-2010 Sanjiv Gupta <sanjiv.gupta@microchip.com> Targets (like pic16) may have mangled the name of global variables,
so get the name from Var rather than the original decl.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97114 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
70c23cdf12822edbbd04901f80133b2db9728226 23-Feb-2010 Devang Patel <dpatel@apple.com> Emit debug info for VectorType.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96999 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d19429f01a4169b573cafa466dd7a09a51e5fd92 16-Feb-2010 Devang Patel <dpatel@apple.com> Distinguish two lexical blocks at the same level.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96397 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
4835fdd4b14376fcaed71c96df1086151a4c055d 12-Feb-2010 Devang Patel <dpatel@apple.com> Do not ignore anonymous records.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95953 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
4cb159ccc67a2b9814c412a47ca751995f8d3b64 12-Feb-2010 Devang Patel <dpatel@apple.com> Cache new compile unit.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
952b017601f9c82b51119c3a1600f1312a833db9 11-Feb-2010 Douglas Gregor <dgregor@apple.com> Eliminate the ASTContext parameter from RecordDecl::getDefinition()
and CXXRecordDecl::getDefinition(); it's totally unnecessary. No
functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95836 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
809b9bb733d6b65883a89eae0cf20c1635cff141 10-Feb-2010 Devang Patel <dpatel@apple.com> Refactor code that generates debug info for variables that has BlocksAttr.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95786 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d263e7bb725c7d7600948c4ea8f38715998e598e 10-Feb-2010 Devang Patel <dpatel@apple.com> Use current location as the location of compiler generated arguments, e.g. self, _cmd etc.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95743 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d5322da6ba08728fe4ee9b14f468961eddc915dc 09-Feb-2010 Devang Patel <dpatel@apple.com> Fix virtual bases' debug info.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95678 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
337472dcb74e302717f16bc5a4ef3763228c49e4 09-Feb-2010 Devang Patel <dpatel@apple.com> Mark implicit "this" argument as an artificial argument.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95673 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ce78c9743aa8272b880a2874393fceff766c3fa3 01-Feb-2010 Devang Patel <dpatel@apple.com> Fix FIXME and surrounding comment.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95023 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
411894b96fdf5a1ae67742b1fdce552802a6a5bb 01-Feb-2010 Devang Patel <dpatel@apple.com> Use appropriate context descriptor in RecordDecl's debug info.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95016 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d6c5a26b331367f4d85de9dfc9f99748057b1ba1 01-Feb-2010 Devang Patel <dpatel@apple.com> Do not use clang type name to name a local variable, e.g. Decl.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95010 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
239cec6179ec419e9e4f83f4a9fe78b6d3276902 01-Feb-2010 Devang Patel <dpatel@apple.com> Do not use clang type name to name a local variable, e.g. Decl.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95009 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
eb6d79b5900f0fa9bcea98de662f2668ebc32623 01-Feb-2010 Devang Patel <dpatel@apple.com> Use DeclContext as getContextDescriptor() argument.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95008 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
abb485f0b58dd3d2da20f9b34f99695899a68cf2 01-Feb-2010 Devang Patel <dpatel@apple.com> Emit debug info for namespaces.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94991 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d528905966546edaabbf90d88c8d754faf961d8a 29-Jan-2010 Devang Patel <dpatel@apple.com> Use appropriate context for typedefs.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94849 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
3dd96a1489498deb03208f7011f48b9f3d7901db 29-Jan-2010 Devang Patel <dpatel@apple.com> Maintain a map of regions (lexical scopes) and use it to find context for a global variable.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94817 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
335830555806629d53c00a80ec3ecb61ead86f03 29-Jan-2010 Devang Patel <dpatel@apple.com> s/CGDebugInfo::getContext/CGDebugInfo::getContextDescriptor/g to avoid confusion.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94760 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ca7daeddfad1be5a517ff93649af7de8d4c6b50b 28-Jan-2010 Devang Patel <dpatel@apple.com> Fix indentation.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94758 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d774d1e697694f39bdfbea499cd852564cf81107 28-Jan-2010 Devang Patel <dpatel@apple.com> Static methods do not need "this" pointer argument.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94756 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
3064afebf823e3909d19b9cea5c1ddadb1d12b0e 28-Jan-2010 Devang Patel <dpatel@apple.com> Emit base classes info first, as expected by the debugger.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94755 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
89f05f80233082b55aa7a8706c04be7e63ef78b3 28-Jan-2010 Devang Patel <dpatel@apple.com> s/FunctionNames/DebugInfoNames/g


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94753 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
4ce3f2026a8f1422e549089a58aa0a4d1cc76f99 28-Jan-2010 Devang Patel <dpatel@apple.com> Emit vtable info.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94751 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
0ac8f31af4a8f669700ab8fcad4ae1afc3517373 28-Jan-2010 Devang Patel <dpatel@apple.com> While emitting debugging infor for a C++ class, identify the holder of class's vtable, if any.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94712 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
a6da192bbb3cb2b99200f60726b78e2d3d1f1598 28-Jan-2010 Devang Patel <dpatel@apple.com> Include "this" pointer argument while emitting debug info for a C++ method.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94710 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
8b752f10c394b140f9ef89e049cbad1a7676fc25 27-Jan-2010 Ken Dyck <ken.dyck@onsemi.com> Change the return type of ASTContext::getDeclAlignInBytes() to CharUnits and,
now that the "InBytes" part of the name is implied by the return type, rename
it to getDeclAlign().



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94681 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
e70d391ed56839841e4ace189d22ae3ee789b044 26-Jan-2010 Anders Carlsson <andersca@mac.com> Fix another debug info crash with virtual bases.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94520 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
4433f1cf8a2704395e509d020d8f79da4e273458 26-Jan-2010 Anders Carlsson <andersca@mac.com> Fix the test I broke, and also fix a crash when declaring a virtual destructor. Add debug info support for pure virtual member functions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94519 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d6f9a0d14b47e7ea9739623544d967682f41b86d 26-Jan-2010 Anders Carlsson <andersca@mac.com> Factor creating the DISubprogram for a member function out into a separate function.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94513 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
bea9b2375a6c5c121dcd83d4f2d544803bacd962 26-Jan-2010 Anders Carlsson <andersca@mac.com> Simplify CGDebugInfo::CollectCXXMemberFunctions a little. More to come.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94511 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
a245c5b36a12e7a879abc038964d0b9821c7e901 26-Jan-2010 Devang Patel <dpatel@apple.com> First cut at emitting inheritance info.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94473 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c002464ae56bbd069cb0c204ce2b766c7ae5063a 26-Jan-2010 Devang Patel <dpatel@apple.com> Emit debug info for virtual functions.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94467 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
165714e026f96e6014d190f166feecc0b1fb80f8 25-Jan-2010 Chris Lattner <sabre@nondot.org> fix rdar://7556129 a crash in blocks debug info codegen.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94402 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
14b1a363fbc42f3bac7e6a08a5a7bc425d3537bf 25-Jan-2010 Chris Lattner <sabre@nondot.org> simplify code.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94401 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
1b627dc566f9f6fd7b8acfbb47fef4bedab688cf 23-Jan-2010 Benjamin Kramer <benny.kra@googlemail.com> No need to terminate this buffer.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94313 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d0f251b4cd60c9746bbd5ebbed5058cd7769d8c3 21-Jan-2010 Devang Patel <dpatel@apple.com> A Decl->getName() is not unique. However, the debug info descriptors
are uniqued. The debug info descriptor describing record's context is
necessary to keep two Decl's descriptor unique if their name match.

There is more work to do to create descriptors for DeclContext.
As a temp. step use type's name in FwdDecl.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94050 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
6d012768a291a62d901d34f115eca36cbc1a3652 19-Jan-2010 Devang Patel <dpatel@apple.com> Emit human readable names for operators.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93837 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
4125fd20ef7e5ad6436c7b02bbbbe2e82c342c36 19-Jan-2010 Devang Patel <dpatel@apple.com> First cut at emitting debugging information for C++ member functions.
There is lot more work to do in this area.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93836 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
17584204c2f527d4ed06ddb74afdd7622e70545d 19-Jan-2010 Devang Patel <dpatel@apple.com> Use llvm::Function name as the linkage name, but strip off leading '01' from display name.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93822 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
428deb524a262709095d5e5a088e924b9fd47202 19-Jan-2010 Devang Patel <dpatel@apple.com> Refactor.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93814 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
0d0d327aeb2c823ce0363a9b584662f9b03c52a6 19-Jan-2010 Devang Patel <dpatel@apple.com> llvm::Function name is the linkage name. If it has a '01' as a prefix then probably there is a reason.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93808 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
3364e626147dd6fc5e33d12cda0eaaa50baf2206 16-Jan-2010 Eli Friedman <eli.friedman@gmail.com> Fix crash generating debug info for constructor for anonymous struct.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93601 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
aa97d7051ed3517c7b64787bcb65ae04e1a52594 14-Jan-2010 Devang Patel <dpatel@apple.com> Emit linkage name even if it matches regular name. The code generator uses linkage name to find subprogram entry for the current function.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93461 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
98a200bfe19f4cf255bd3ca0220e2f68e616ee2c 14-Jan-2010 Devang Patel <dpatel@apple.com> Add comment.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93434 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
bca10069a9d5243da33cfc9a471ea239bb49e1b8 14-Jan-2010 Devang Patel <dpatel@apple.com> Because CurLoc is the current source location as far as CGDebugInfo is concerned. It is expected that this is set (usually left bracket location of function body compound statement) before EmitfunctionStart() is used.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93389 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
9c6c3a0e3ae09626d2d4b04e4ffa42c3d7cab32b 14-Jan-2010 Devang Patel <dpatel@apple.com> Emit human readable names for c/c++ functions. Avoid emitting linkage name if it matches regular name.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93383 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
199c3d6cd16aebbb9c7f0d42af9d922c9628bf70 11-Jan-2010 Ken Dyck <ken.dyck@onsemi.com> Roll out ASTContext::getTypeSizeInChars(), replacing instances of
"ASTContext::getTypeSize() / 8". Replace [u]int64_t variables with CharUnits
ones as appropriate.

Also rename RawType, fromRaw(), and getRaw() in CharUnits to QuantityType,
fromQuantity(), and getQuantity() for clarity.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93153 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f5f7d864f5067d1ea4bff7fcf41b53a43b7b48ba 29-Dec-2009 Anders Carlsson <andersca@mac.com> Get rid of FixedWidthIntType, as suggested by Chris and Eli.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92246 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
23e92c059ccb9ed7bb3129b5ff3c5ecae1b3c256 29-Dec-2009 Chris Lattner <sabre@nondot.org> adjust for llvm api changes.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92236 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d5b8902c0329d80a216803b58dc3b689349a0c11 28-Dec-2009 Chris Lattner <sabre@nondot.org> this form of SetDebugLocation is about to go away, add some #includes that
are about to not come in implicitly.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92228 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
840943d633fa6e1ea25419022f936cc20abb2148 21-Dec-2009 Douglas Gregor <dgregor@apple.com> Improve on my previous fix for debug information. Rather than
recursing in CGDebugInfo::CreateTypeNode, teach
CanonicalizeTypeForDebugInfo---now called UnwrapTypeForDebugInfo---to
keep unwrapping the type until we hit something that can be
represented by debug information. Thanks to Anders for pointing this out!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91840 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
2101a821df49884df6d78d8770400a48ed3c8ef6 21-Dec-2009 Douglas Gregor <dgregor@apple.com> Teach debug info generation to handle TemplateSpecializationType,
ElaboratedType, QualifiedNameType, and SubstTemplateTypeParmType type
nodes. Also, produce an "unsupported" diagnostic for C++0x type nodes
and "typeof" nodes, rather than asserting nondescriptly.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91837 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f2d8b9f967a1ab53ee9fdbcc3ac0a4ee0a83a26e 18-Dec-2009 Daniel Dunbar <daniel@zuster.org> Add -dwarf-debug-flags, which provides a way to embed the cc1 level options used
to compile a translation unit into the debug info for that file.
- Used by parts of Darwin build process to check compiler flags, etc.
- <rdar://problem/7256886> clang does not emit AT_APPLE_flags

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91661 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
155fd79b3a6dd25fbac1716fa3f8148de1e53c49 08-Dec-2009 Benjamin Kramer <benny.kra@googlemail.com> Use StringRef in CGDebugInfo::EmitFunctionStart.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90856 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
47daf68c15bb80c8feb1d49962a33daa0d228a07 08-Dec-2009 Benjamin Kramer <benny.kra@googlemail.com> Use Path.makeAbsolute() and make a constant std::string a const char*.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90851 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
e3fdca2ee0346a41d9cc5ee417a75e66274216f5 08-Dec-2009 Jeffrey Yasskin <jyasskin@google.com> Remove several .c_str() to be forward-compatible with StringRef.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90822 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
20f12a20ba9cfa6f8d53c8304e24f50903c45184 06-Dec-2009 Anders Carlsson <andersca@mac.com> Add rudimentary support for member pointers to CGDebugInfo.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90711 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
7d065d0f21b35f445cee13730398bc2bec6edff2 29-Nov-2009 Daniel Dunbar <daniel@zuster.org> Move MainFileName option variable into CodeGenOptions instead of LangOptions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90051 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
7362162e635942fc6efa1a5bd63fe734479e0eb6 25-Nov-2009 Devang Patel <dpatel@apple.com> Use StringRef (again) in DebugInfo interface.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89867 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
a4923eb7c4b04d360cb2747641a5e92818edf804 16-Nov-2009 Douglas Gregor <dgregor@apple.com> First part of changes to eliminate problems with cv-qualifiers and
sugared types. The basic problem is that our qualifier accessors
(getQualifiers, getCVRQualifiers, isConstQualified, etc.) only look at
the current QualType and not at any qualifiers that come from sugared
types, meaning that we won't see these qualifiers through, e.g.,
typedefs:

typedef const int CInt;
typedef CInt Self;

Self.isConstQualified() currently returns false!

Various bugs (e.g., PR5383) have cropped up all over the front end due
to such problems. I'm addressing this problem by splitting each
qualifier accessor into two versions:

- the "local" version only returns qualifiers on this particular
QualType instance
- the "normal" version that will eventually combine qualifiers from this
QualType instance with the qualifiers on the canonical type to
produce the full set of qualifiers.

This commit adds the local versions and switches a few callers from
the "normal" version (e.g., isConstQualified) over to the "local"
version (e.g., isLocalConstQualified) when that is the right thing to
do, e.g., because we're printing or serializing the qualifiers. Also,
switch a bunch of

Context.getCanonicalType(T1).getUnqualifiedType() == Context.getCanonicalType(T2).getQualifiedType()

expressions over to

Context.hasSameUnqualifiedType(T1, T2)




git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88969 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
e705641ba59a7eb6b211057865ea894b99c9e602 16-Nov-2009 Devang Patel <dpatel@apple.com> revert r88963.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88965 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
9464ec45f97c2b7dccbac4f5fd5b30d30e2cfc60 16-Nov-2009 Devang Patel <dpatel@apple.com> Use TrackingVH to hold forward decl. This one is for RecordType.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88963 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
14d6365b6d927ec6f42293b05a713e3f2a262677 16-Nov-2009 Eli Friedman <eli.friedman@gmail.com> Parallel fix to r88951: use TrackingVH to hold forward decl.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88962 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
1468ac71124bc689d95e07a048505a21e8980269 16-Nov-2009 Eli Friedman <eli.friedman@gmail.com> Fix valgrind uninitialized error.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ffffb03de0f6d7e162f461c03d954df50277a476 16-Nov-2009 Devang Patel <dpatel@apple.com> Use TrackingVH to hold forward decl.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88951 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
5b6117a7727565be9fcaf709706c7d720bf191ad 14-Nov-2009 Anders Carlsson <andersca@mac.com> Canonicalize the type before trying to create a debug type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88808 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
0dd57c6cf8c6f6e4ee1a8e42daccf8ad1bb6fa4a 14-Nov-2009 Anders Carlsson <andersca@mac.com> Have CGDebugInfo::getOrCreateType cache the QualType instead of having every ConvertType overload do it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
8fae060d6ef78d4cdd19ebff7dea9c3a566f8b23 13-Nov-2009 Devang Patel <dpatel@apple.com> Do not store DIDescriptor directly into a container. Store MDNode directly, through TrackingVH.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88677 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
23908b8a43adefd42b3635364cfab44de1064942 12-Nov-2009 Devang Patel <dpatel@apple.com> "Attach debug info with llvm instructions" mode was enabled a month ago. Now make it permanent and remove old way of inserting intrinsics to encode debug info for locations and types.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87007 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
11169adf2114e9e1f40fb9c12b7d99cc91323bdb 12-Nov-2009 Devang Patel <dpatel@apple.com> Use getNameAsCString() instead of getName().data()


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87001 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
2811ccf48d6d898c42cc4cfad37abedb36236d20 12-Nov-2009 Chandler Carruth <chandlerc@gmail.com> Move CompileOptions -> CodeGenOptions, and sink it into the CodeGen library.
This resolves the layering violation where CodeGen depended on Frontend.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86998 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ab71ff5cbaf6a4ab1df32221afbb0186c6fbbf0e 12-Nov-2009 Devang Patel <dpatel@apple.com> Do not use StringRef while using DebugInfo interface.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86915 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ebf16e864de3a535a14f13ed263e37c156496dbb 11-Nov-2009 Devang Patel <dpatel@apple.com> Do not eagerly set stop point for arguments. This misleads the debugger in identifying beginning of function body. Instead, create new location to attach with llvm.dbg.declare. This location is only used to find the context of the variable by the code generator, and it is not used to emit line number info.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86862 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
a0203800ea2f93b2ce00fae24d6deac57617268d 11-Nov-2009 Devang Patel <dpatel@apple.com> Attach location info with llvm.dbg.declare.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86750 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ba578cb7b25357c479b2b5530546a9f153a525c0 07-Nov-2009 Anders Carlsson <andersca@mac.com> Revert r86315 and add Type::FixedWidthInt to the FIXME cases.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86320 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
e468611c125854a2eff59f699700cdd916737819 07-Nov-2009 Devang Patel <dpatel@apple.com> Do not assert if debug info for certain type is not generated.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86315 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
0284fdc5855c21545c58f0fe8edd5a680e0b29ea 07-Nov-2009 Devang Patel <dpatel@apple.com> Do not emit linkage name for global variables. It confuses gdb, because it picks up AT_MIPS_linkage_name and ignores AT_name.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86308 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
a031b35ba4da13e105a349493f5351014cfb3354 06-Nov-2009 Anders Carlsson <andersca@mac.com> Simplify the debug info code, handle lvalue references and template specializations.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86277 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ba397fe24468fae6cb46f259a3f946770163bfe2 06-Nov-2009 Anders Carlsson <andersca@mac.com> Handle QualifiedNameType and SubstTemplateTypeParmType types in CGDebugInfo::CreateTypeNode.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86274 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
bfe69955a2efb969839b6d87d7e118044ea3cbb4 06-Nov-2009 Anders Carlsson <andersca@mac.com> Don't assert when trying to generate debug info for vector types. This needs to be fixed eventually...

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86268 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
b93811847d3db2759de44a4746ca257810eeb3ff 06-Nov-2009 Anders Carlsson <andersca@mac.com> Instead of returning a null DIType for unhandled types, assert.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86254 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
2e09db7aa9485a28455efe9759cf1408c1385e18 05-Nov-2009 Devang Patel <dpatel@apple.com> Enable debug info for global variables at -O1+


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86156 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
91cc815ffd13d4a78ae1b5bd617e19dd555de4f4 23-Oct-2009 Mike Stump <mrs@apple.com> Fixup the return type of functions.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84922 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ca80a5fc5bbc377c2c70901839a3fb37d5716879 20-Oct-2009 Devang Patel <dpatel@apple.com> Do not eagerly cache DITypes because it allows real struct type to be shadowed by forward declared struct type.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84659 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f6a39b71a4d57ef339073277ca0cfe9376268274 20-Oct-2009 Devang Patel <dpatel@apple.com> Encode global variable name in debug info.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84653 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
46a617a792bfab0d9b1e057371ea3b9540802226 16-Oct-2009 John McCall <rjmccall@apple.com> Remove the ConstantArrayType subtypes. This information is preserved in the
TypeLoc records for declarations; it should not be necessary to represent it
directly in the type system.

Please complain if you were using these classes and feel you can't replicate
previous functionality using the TypeLoc API.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84222 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
2d7bc3e59517bf42ae855669c55844d868f4b21a 14-Oct-2009 Sanjiv Gupta <sanjiv.gupta@microchip.com> Few targets like PIC16 mangle the names of global variables, so retrieve the name
from Var itself rather than the decl for DebugInfo metadata.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84102 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
7c173cbcd7830546b4d5ba58559716c096875b0e 13-Oct-2009 Devang Patel <dpatel@apple.com> Encode long double.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83912 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d8945d6ae0b4a40fd73b45dcc729215c5cfe1f5e 09-Oct-2009 Mike Stump <mrs@apple.com> Allow customization for the producer information in the debug output.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83659 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
6e461bf75359b4eb2ae59058741c3c8ba898d60f 06-Oct-2009 Devang Patel <dpatel@apple.com> InsertSubprogramStart if ATTACH_DEBUG_INFO_TO_AN_INSN is not defined.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83419 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
bbd9fa4b4a0fea47f94ac3eb4eaf5cc8079defe1 06-Oct-2009 Devang Patel <dpatel@apple.com> Add support to attach debug info to an instruction.
This is not yet enabled.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83399 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
979ec2e5ee9e1a648e13c35510bb1cd437f90d24 06-Oct-2009 Devang Patel <dpatel@apple.com> Set appropriate context for a global variable while emitting debug info.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83352 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
3d363c596d295b38cae765eae510fbc2e7c80e1a 02-Oct-2009 Mike Stump <mrs@apple.com> More magic pixie dust.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83232 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
944e705766490162a5c56b2d4452a8b23f5e632e 02-Oct-2009 Mike Stump <mrs@apple.com> Fix up debug information for block pointers a bit more.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83231 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
b289b3f324eb10d416b87080e39b315f6c17a695 02-Oct-2009 Mike Stump <mrs@apple.com> Implement a FIXME. This improves codegen just a tad.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83221 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
b1a6e687967105bf1e18dfba196d0248e6700a4e 30-Sep-2009 Mike Stump <mrs@apple.com> Improve debugging information for BlockDeclRefExpr. WIP. Given this
scheme, we can switch the previous scheme over to using this code
path. There's a bit of simplifications yet to do as well.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83138 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
a180529e3d5d08dff2e2154d6a33a6c09f6af959 25-Sep-2009 John McCall <rjmccall@apple.com> Fix an infinite loop arising when trying to generate debug information
for a ObjC class with an ivar of weak self type.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82745 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
0953e767ff7817f97b3ab20896b229891eeff45b 24-Sep-2009 John McCall <rjmccall@apple.com> Refactor the representation of qualifiers to bring ExtQualType out of the
Type hierarchy. Demote 'volatile' to extended-qualifier status. Audit our
use of qualifiers and fix a few places that weren't dealing with qualifiers
quite right; many more remain.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82705 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
fd47b31be0f835ea15dc1f9407940980bb50ddcf 22-Sep-2009 Mike Stump <mrs@apple.com> Fix some typos. WIP. Large alignments don't work yet.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82512 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
39605b4eab472a37cec287f9d4663805e60346f3 22-Sep-2009 Mike Stump <mrs@apple.com> Improve debug info generation for __block variables.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82508 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
65f13c3381a31eae8a7219477c37c247ac9838fc 19-Sep-2009 Daniel Dunbar <daniel@zuster.org> Ok, an AssertingVH definitely doesn't work for now because we free our cache after the optimizer may have hacked on the module. Use a WeakVH instead.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82324 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
23e81bae8c91ccd408e31ca472dca25faed85028 19-Sep-2009 Daniel Dunbar <daniel@zuster.org> Switch CGDebugInfo type cache to using an AssertingVH.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82321 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
03faac3b8c85263804ffe501a01eb3da7c5198e9 19-Sep-2009 Daniel Dunbar <daniel@zuster.org> Factor out CGDebugInfo::CreateTypeNode method.
- No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82320 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
5a8621732d9464ad18b39391b1efbcbdb226f7ef 15-Sep-2009 Mike Stump <mrs@apple.com> Be sure to use the correct version instead of inventing the wrong one.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81924 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
1eb4433ac451dc16f4133a88af2d002ac26c58ef 09-Sep-2009 Mike Stump <mrs@apple.com> Remove tabs, and whitespace cleanups.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81346 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
7da2431c23ef1ee8acb114e39692246e1801afc2 05-Sep-2009 John McCall <rjmccall@apple.com> Basic support for representing elaborated type specifiers
directly in the AST. The current thinking is to create these
only in C++ mode for efficiency. But for now, they're not being
created at all; patch to follow.

This will let us do things like verify that tags match during
template instantation, as well as signal that an elaborated type
specifier was used for clients that actually care.

Optimally, the TypeLoc hierarchy should be adjusted to carry tag
location information as well.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81057 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
49a8b984474f7f36c53cbd11bb7db6043e9ef1de 01-Sep-2009 Devang Patel <dpatel@apple.com> Rename DIBlock as DILexicalBlock.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80634 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
1bb8a45f7386a23871598d05141a07af03067925 19-Aug-2009 Argyrios Kyrtzidis <akyrtzi@gmail.com> Introduce LocInfoType which is a Sema-specific implementation detail.

This is a Type subclass that can hold a DeclaratorInfo* when we have type source info coming
out of a declarator that we want to preserve. This is used only at the "border" of Parser/Sema for
passing/getting QualTypes, it does not participate in the type system semantics in any way.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79394 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
5a6bfe35051c1c14b63e1fa103c2cc512dab66b8 14-Aug-2009 Devang Patel <dpatel@apple.com> Do now overflow while calulating upper bound for zero sized array.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79043 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
6c1fddf9f2186166daf524682681c6510b069774 27-Jul-2009 Devang Patel <dpatel@apple.com> Use DICompositeType->replaceAllUsesWith()


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77228 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
0ce73f64ca98469856327480f0f3925d59ac409f 22-Jul-2009 Devang Patel <dpatel@apple.com> Use DICompositeType->replaceAllUsesWith().

This requires llvm rev. 76769 or higher.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76770 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
19cc4abea06a9b49e0e16a50d335c064cd723572 18-Jul-2009 Anders Carlsson <andersca@mac.com> Revert r75641.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76327 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c15cb2af27514ecc879daba9aa01389c5203685d 18-Jul-2009 Steve Naroff <snaroff@apple.com> Remove ObjCQualifiedInterfaceType:-)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76321 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
6dba432c7b862c2219e5d6e52b0cd188fbf84b01 14-Jul-2009 Devang Patel <dpatel@apple.com> Revert 75648 for now. It is causing test failures.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75684 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
991b515cf1b2dc38eeca67192e3829f955f000c0 14-Jul-2009 Chris Lattner <sabre@nondot.org> [llvm up] adjust to match mainline.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75647 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
3d598a5ab3c8aabce0a03a2f5dea65eee643e5ac 14-Jul-2009 Anders Carlsson <andersca@mac.com> Rename RecordLayout.h to ASTRecordLayout.h

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75641 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
a1a5e8a1604c89d0c9f7ae9d06b8a9ae81e6bb10 14-Jul-2009 Daniel Dunbar <daniel@zuster.org> Revert r75614 which depend on r75610 (for LLVM), which was reverted.

--- Reverse-merging r75614 into '.':
U lib/CodeGen/CGDebugInfo.cpp


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75639 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
127bf318068659471bce3b08c462d2eab6a5e6a5 14-Jul-2009 Chris Lattner <sabre@nondot.org> use new name for method.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75614 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
61b5f3e12c0ab5dd2e8b98bb827855420bb9869b 14-Jul-2009 Devang Patel <dpatel@apple.com> Use LLVM mangler to get mangled name for debug info entry.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75589 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
9df4bb32dfafd963396155df8472904dde6a6827 14-Jul-2009 Daniel Dunbar <daniel@zuster.org> Update debug info generation for ObjCObjectPointer changes.
- Previously this would crash on recursive types, and it was also incorrectly
stripping off a level of indirection.
- I'm not 100% convinced this is all correct, but it should be a monotonic
improvment.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75582 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
fe09eab8095da4d3a3c68441e1566671dc9568d3 13-Jul-2009 Devang Patel <dpatel@apple.com> Update debug info type cache after fwd decl is replaced by real decl.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75473 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
0ae3d60731abb4c75eb9e993f8492527f4e51c70 13-Jul-2009 Devang Patel <dpatel@apple.com> Fix comment.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75471 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
14108da7f7fc059772711e4ffee1322a27b152a7 11-Jul-2009 Steve Naroff <snaroff@apple.com> This patch includes a conceptually simple, but very intrusive/pervasive change.

The idea is to segregate Objective-C "object" pointers from general C pointers (utilizing the recently added ObjCObjectPointerType). The fun starts in Sema::GetTypeForDeclarator(), where "SomeInterface *" is now represented by a single AST node (rather than a PointerType whose Pointee is an ObjCInterfaceType). Since a significant amount of code assumed ObjC object pointers where based on C pointers/structs, this patch is very tedious. It should also explain why it is hard to accomplish this in smaller, self-contained patches.

This patch does most of the "heavy lifting" related to moving from PointerType->ObjCObjectPointerType. It doesn't include all potential "cleanups". The good news is additional cleanups can be done later (some are noted in the code). This patch is so large that I didn't want to include any changes that are purely aesthetic.

By making the ObjC types truly built-in, they are much easier to work with (and require fewer "hacks"). For example, there is no need for ASTContext::isObjCIdStructType() or ASTContext::isObjCClassStructType()! We believe this change (and the follow-up cleanups) will pay dividends over time.

Given the amount of code change, I do expect some fallout from this change (though it does pass all of the clang tests). If you notice any problems, please let us know asap! Thanks.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75314 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
563a03b1338d31c2462def43253a722bc885d384 10-Jul-2009 Anders Carlsson <andersca@mac.com> Fix a problem that Eli noticed, and that Doug helped me fix.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
7e7eb3da052a6d80ddf2377cab0384c798f73f75 06-Jul-2009 Douglas Gregor <dgregor@apple.com> Keep track of the Expr used to describe the size of an array type,
from Enea Zaffanella!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74831 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
17945a0f64fe03ff6ec0c2146005a87636e3ac12 30-Jun-2009 Argyrios Kyrtzidis <akyrtzi@gmail.com> De-ASTContext-ify DeclContext.

Remove ASTContext parameter from DeclContext's methods. This change cascaded down to other Decl's methods and changes to call sites started "escalating".
Timings using pre-tokenized "cocoa.h" showed only a ~1% increase in time run between and after this commit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74506 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
e4f2142d00fa5fdb580c4e2413da91882d955381 30-Jun-2009 Chris Lattner <sabre@nondot.org> Key decisions about 'bool' vs '_Bool' to be based on a new flag in langoptions.

This is simple enough, but then I thought it would be nice to make PrintingPolicy
get a LangOptions so that various things can key off "bool" and "C++" independently.
This spiraled out of control. There are many fixme's, but I think things are slightly
better than they were before.

One thing that can be improved: CFG should probably have an ASTContext pointer in it,
which would simplify its clients.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74493 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
72240d78e2510d981e7d986b9a1e50b1e09e10f0 26-Jun-2009 Devang Patel <dpatel@apple.com> Revrt PR4228 fix for now.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74304 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
395b475a4474f1c7574d927ad142ca0c7997cbca 24-Jun-2009 Anders Carlsson <andersca@mac.com> Add a DecltypeType type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74099 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d1b3c2dd5bc1f3103bee6137957aa7c5f8f2f0bc 18-Jun-2009 Steve Naroff <snaroff@apple.com> First step toward fixing <rdar://problem/6613046> refactor clang objc type representation.

Add a type (ObjCObjectPointerType) and remove a type (ObjCQualifiedIdType).

This large/tedious patch is just a first step. Next step is to remove ObjCQualifiedInterfaceType. After that, I will remove the magic TypedefType for 'id' (installed by Sema). This work will enable various simplifications throughout clang (when dealing with ObjC types).

No functionality change.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73649 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
998316908cf1f0d50257dcaf60dc8154a1e294c9 16-Jun-2009 Devang Patel <dpatel@apple.com> It is possible that main input file does not have any symbol with debug info. To handle this edge case, always create main compile unit first.
This fixes PR 4228.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73520 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d249e1d1f1498b81314459ceda19d6ff25c278ad 29-May-2009 Douglas Gregor <dgregor@apple.com> Create a new PrintingPolicy class, which we pass down through the AST
printing logic to help customize the output. For now, we use this
rather than a special flag to suppress the "struct" when printing
"struct X" and to print the Boolean type as "bool" in C++ but "_Bool"
in C.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72590 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ca308dfd9b2ded10458b95a980b0674896867ebb 26-May-2009 Daniel Dunbar <daniel@zuster.org> Use .data() instead of &...[0].
- Just SmallVectors this time.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72432 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
beaaccd8e2a8748f77b66e2b330fb9136937e14c 21-May-2009 Jay Foad <jay.foad@gmail.com> Use v.data() instead of &v[0] when SmallVector v might be empty.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72210 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d86d3361924a89d6c67ddbb3a2307af4008889ab 18-May-2009 Daniel Dunbar <daniel@zuster.org> Debug info: Initialize runtime language field correctly for Objective-C
interface types.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72036 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
9bc093c9309e04ebfff4123790405241513da1b4 14-May-2009 Mike Stump <mrs@apple.com> Enhance debug information for block literals. Radar 6867696


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71763 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
bbd53af03e4c0d055a312521d97126cd86583c30 14-May-2009 Daniel Dunbar <daniel@zuster.org> We need to specify the "linkage name" to the subprogram now that we
emit the correct "display name". I suspect we need more work here, see
FIXME for example.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71761 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
a289393513d32f463a165a4b2990b11f5c6ab959 14-May-2009 Daniel Dunbar <daniel@zuster.org> Make sure not to include the LLVM asm prefix in function names for
debug info.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71736 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d37d9b5bf9dd5addf6d8d3b20c4d828218c99d23 05-May-2009 Chris Lattner <sabre@nondot.org> fix some more cases where we'd emit a file with a line of 0 for implicit
types. In this case, it was objc_selector and objc_class. This fixes
rdar://6852754 - clang sometimes generates incorrect/unknown file/line info for DW_TAG__structure_type dies


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70969 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
9e55b8a8b34ca1f401425cd14a32ba55d4f7aa73 05-May-2009 Chris Lattner <sabre@nondot.org> Do not generate bogus location info for DW_TAG_inheritance
DIEs. We were generating a loc with line of 0 and a file.
These tags do not need locations at all, just remove it.
this fixes rdar://6852792 - Clang generates incorrect (and unnecessary) file and line info for DW_TAG_inheritance dies


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70966 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
650cea9cc5ceb9fbcf8897db0e252e5bdb5c5179 05-May-2009 Chris Lattner <sabre@nondot.org> Fix generated debug info for decls with no location (which include self/_cmd
in ObjC) to not emit file/line location information. Previously
we would output a file with bogus line information. This fixes:
rdar://6852814 - Clang generates incorrect file & line info for automatic/understood formal parameters for objc-programs


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70965 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
3189e4be4f79f22e0e076e21615b9526de529b43 04-May-2009 Eli Friedman <eli.friedman@gmail.com> PR4143: don't crash generating debug info for incomplete enum types.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70825 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ac7c814d817bbfafd924586b9025f2dffc655708 02-May-2009 Chris Lattner <sabre@nondot.org> When creating a dwarf record type for an objc interface, make sure to propagate
the runtime version number onto it, so that the debugger knows it's an objc
interface, not a C struct. rdar://6848435


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70618 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
b95ee58f6c9838695b1704e879e263aec49bfa88 02-May-2009 Chris Lattner <sabre@nondot.org> capture whether optimizations are enabled or not in debug info


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70617 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
4c2577a31f460afc1f0110b937a250b8e2a1b789 02-May-2009 Chris Lattner <sabre@nondot.org> encode the version of the objc runtime into the dwarf compile unit. rdar://6848435,
several other fixes coming.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70616 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
de13502158c6577aaff251abff30999417dabfe1 28-Apr-2009 Devang Patel <dpatel@apple.com> While generating debug info ignore unnamed fields.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70266 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
9a901bb63990574ff0bcc12ff851d7a71cff8ddb 26-Apr-2009 Eli Friedman <eli.friedman@gmail.com> Remove getIntegerConstantExprValue in favor of using EvaluateAsInt.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70145 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
87de6497f45243fbcef6dac5be6a641ca9331f61 23-Apr-2009 Devang Patel <dpatel@apple.com> Handle corner case where clang-cc is invoked directly to compile preprocessed source file without -main-file-name. In this case, CDDebugInfo is not able identify correct main source file becase SM.isFromMainFile() returns true for locations from header files as well as locations from main source file.
This patch takes conservative approach by not emitting more then one compile unit with isMain bit set.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69902 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
b700377f850a29a4fc8cb3e1b07809ef1afdcce5 23-Apr-2009 Chris Lattner <sabre@nondot.org> implement debug info for _Complex.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69873 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
aa2b5799d2dc2c02f71a19cf846f8fd22ccbf5ef 22-Apr-2009 Chris Lattner <sabre@nondot.org> implement debug info support for id<proto> and interface<proto>


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69784 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
068360e16fa4504a6fb80affebae5c5713629a96 22-Apr-2009 Chris Lattner <sabre@nondot.org> ObjCQualifiedClass is dead, remove it.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69783 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
adb1a6fae75a70bc4572ea1188612e2f9f78bd5e 19-Apr-2009 Chris Lattner <sabre@nondot.org> silence a warning, I need to talk to Devang about this code.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69517 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
4f6fa233be8e7d1d10445c704c8cfb1869ce8c4c 17-Apr-2009 Devang Patel <dpatel@apple.com> Use PresumedLoc to record line number in debug info entries.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69389 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
446c619f37349815a3ccfb703b1ac08684279ae1 17-Apr-2009 Devang Patel <dpatel@apple.com> Appropriately set file name and directory name in debug info compile units.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69387 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
6ab3524f72a6e64aa04973fa9433b5559abb3525 09-Apr-2009 Douglas Gregor <dgregor@apple.com> Propagate the ASTContext to various AST traversal and lookup functions.
No functionality change (really).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68726 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
0f78feaecf91143b498e22cbbf860fd0e40d9671 08-Apr-2009 Devang Patel <dpatel@apple.com> Use presumed location to get line number info.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68630 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c9abc043af88f90d177a5bd147f627b78ca49fde 08-Apr-2009 Daniel Dunbar <daniel@zuster.org> Make debug info work when using -save-temps.
- This is pretty ugly, but the most obvious solution. Chime in if you
have a nicer one.

- The problem is that with -save-temps, clang-cc has no idea what the
name of the original input file is. However, the user expects to be
able to set breakpoints based on the input file name.

- We support this by providing a new option -main-file-name (similar
to -dumpbase used by gcc) which allows the driver to pass in the
original file name.

- <rdar://problem/6753383> building with clang using --save-temps
gets the compile unit name from the .i file...


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68595 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
03d9f34a96ea28eaa698cc779462a1ce1dc79105 01-Apr-2009 Chris Lattner <sabre@nondot.org> remove ASTContext::buildObjCInterfaceType, which breaks canonical
types. It is no longer needed now that the code generator
re-lays-out interfaces if they are defines after being laid out
from a forward decl.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68194 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
7532dc66648cfe7432c9fe66dec5225f0ab301c6 31-Mar-2009 Douglas Gregor <dgregor@apple.com> Improve the representation of template names in the AST. This
representation handles the various ways in which one can name a
template, including unqualified references ("vector"), qualified
references ("std::vector"), and dependent template names
("MetaFun::template apply").

One immediate effect of this change is that the representation of
nested-name-specifiers in type names for class template
specializations (e.g., std::vector<int>) is more accurate. Rather than
representing std::vector<int> as

std::(vector<int>)

we represent it as

(std::vector)<int>

which more closely follows the C++ grammar.

Additionally, templates are no longer represented as declarations
(DeclPtrTy) in Parse-Sema interactions. Instead, I've introduced a new
OpaquePtr type (TemplateTy) that holds the representation of a
TemplateName. This will simplify the handling of dependent
template-names, once we get there.






git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68074 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
0773903975631a4baa41e495e8654e2f88a6f3dd 28-Mar-2009 Devang Patel <dpatel@apple.com> Do not emit debug information for variables while generating optimized code. The llvm optimizer and code generator are not yet ready to support optimized code debugging.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67876 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
515455ac32e2accac51c33ceaa7e2dd7c36ef3f2 25-Mar-2009 Chris Lattner <sabre@nondot.org> simplify some conditionals, don't copy LangOptions.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67674 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
8d9aefcb479cf2d1a5e397114ed3e22429ab9ac0 24-Mar-2009 Devang Patel <dpatel@apple.com> Encode language.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67650 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
99c20ebfbd7261bc4b92d617ada412b4ffe4f717 20-Mar-2009 Devang Patel <dpatel@apple.com> Fix ivar's size encoding.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67389 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c20482b10ee4ffcea31f67392743ccdf6df1f7f4 19-Mar-2009 Devang Patel <dpatel@apple.com> Encode ivar access control info.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67267 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
e4e5b054b4917f0ee493bb2fda5b1ec749bfb9a1 19-Mar-2009 Douglas Gregor <dgregor@apple.com> Introduce a representation for types that we referred to via a
qualified name, e.g.,

foo::x

so that we retain the nested-name-specifier as written in the source
code and can reproduce that qualified name when printing the types
back (e.g., in diagnostics). This is PR3493, which won't be complete
until finished the other tasks mentioned near the end of this commit.

The parser's representation of nested-name-specifiers, CXXScopeSpec,
is now a bit fatter, because it needs to contain the scopes that
precede each '::' and keep track of whether the global scoping
operator '::' was at the beginning. For example, we need to keep track
of the leading '::', 'foo', and 'bar' in

::foo::bar::x

The Action's CXXScopeTy * is no longer a DeclContext *. It's now the
opaque version of the new NestedNameSpecifier, which contains a single
component of a nested-name-specifier (either a DeclContext * or a Type
*, bitmangled).

The new sugar type QualifiedNameType composes a sequence of
NestedNameSpecifiers with a representation of the type we're actually
referring to. At present, we only build QualifiedNameType nodes within
Sema::getTypeName. This will be extended to other type-constructing
actions (e.g., ActOnClassTemplateId).

Also on the way: QualifiedDeclRefExprs will also store a sequence of
NestedNameSpecifiers, so that we can print out the property
nested-name-specifier. I expect to also use this for handling
dependent names like Fibonacci<I - 1>::value.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67265 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
ec9b5d510b4068bf6cf87cc8729ee7d5018c2b32 17-Mar-2009 Devang Patel <dpatel@apple.com> Fix struct field's debug info.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67062 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
7c80bd64032e610c0dbd74fc0ef6ea334447f2fd 17-Mar-2009 Sebastian Redl <sebastian.redl@getdesigned.at> Almost complete implementation of rvalue references. One bug, and a few unclear areas. Maybe Doug can shed some light on some of the fixmes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67059 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
fbe899f7143d85f11d16423568fee5ebd99beab1 10-Mar-2009 Devang Patel <dpatel@apple.com> Emit super class debug info.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66580 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
4db4c9cc3e668ab713a5d1a9bad342c939ec61c6 05-Mar-2009 Devang Patel <dpatel@apple.com> Set isMain bit for MainFile.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66120 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
e798706bd20e514fcfeba5a7bd7200392d0e6231 02-Mar-2009 Devang Patel <dpatel@apple.com> Enable Objective-C interface debug info.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65850 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c1efaecf0373f1a55c5ef4c234357cf726fc0600 28-Feb-2009 Douglas Gregor <dgregor@apple.com> Eliminate CXXRecordType

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65671 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
00524e3c12bf1319121db8fba076b29e13b32dcf 28-Feb-2009 Eli Friedman <eli.friedman@gmail.com> Fix enumeration in switch warnings. No behavior change.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65659 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
72564e73277e29f6db3305d1f27ba408abb7ed88 27-Feb-2009 Douglas Gregor <dgregor@apple.com> Create a new TypeNodes.def file that enumerates all of the types,
giving them rough classifications (normal types, never-canonical
types, always-dependent types, abstract type representations) and
making it far easier to make sure that we've hit all of the cases when
decoding types.

Switched some switch() statements on the type class over to using this
mechanism, and filtering out those things we don't care about. For
example, CodeGen should never see always-dependent or non-canonical
types, while debug info generation should never see always-dependent
types. More switch() statements on the type class need to be moved
over to using this approach, so that we'll get warnings when we add a
new type then fail to account for it somewhere in the compiler.

As part of this, some types have been renamed:

TypeOfExpr -> TypeOfExprType
FunctionTypeProto -> FunctionProtoType
FunctionTypeNoProto -> FunctionNoProtoType

There shouldn't be any functionality change...


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65591 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
9ca36b66410f2f9155df9d573f6da3114ac685a2 26-Feb-2009 Devang Patel <dpatel@apple.com> Add support to emit debug info for objective-c interfaces.
(This is not yet used.)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65573 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
65e99f219a627a31eede53eebfd952d18cf0596a 25-Feb-2009 Devang Patel <dpatel@apple.com> Fix comments.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65423 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
7782022c0c9c4721b097953f49378aa34358cea1 25-Feb-2009 Devang Patel <dpatel@apple.com> If Loc is invalid (e.g. "self" in Objective-C) then use MainFileID's compile unit.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65403 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f11284ac87daa613bc7b30db9f54bd716d123222 17-Feb-2009 Fariborz Jahanian <fjahanian@apple.com> Renamed ASQualType to ExtQualType to reflect its more
general use; as for, objc2's gc type attributes. No
change in functionality.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64778 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f8e58d0b94b03d6662d9a9529cee108c64bcd0b2 07-Feb-2009 Daniel Dunbar <daniel@zuster.org> When making dummy file entries, the directory name should also be
non-empty.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63986 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
30fc933e5fbbb5f0ea60c47976d435254e378536 04-Feb-2009 Chris Lattner <sabre@nondot.org> lower the interface to getLineNumber like we did for
getColumnNumber. This fixes a FIXME in
SourceManager::getPresumedLoc because we now just decompose
the sloc once.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63701 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
010d5143800f6dc986f90169a694ccfec3d52038 28-Jan-2009 Nuno Lopes <nunoplopes@sapo.pt> fix PR3427: fix debuginfo for incomplete array types

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63158 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
831570cc6f01ce04bb8e1d3a03944e5d864e5cdd 22-Jan-2009 Daniel Dunbar <daniel@zuster.org> Allow creation of "dummy" compile units for debug information.
- Although gross, this is needed currently to ensure that we produce
well formed debug information (to match pace with the assertions
being added to DebugInfo in LLVM).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62734 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f4f6f219423a67a969de7b3e0c28bcefdb3c0a10 20-Jan-2009 Daniel Dunbar <daniel@zuster.org> Update for new SourceLocation API.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62556 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
a11d61793341fea195c29a0dab3fbd74f2b39a8c 19-Jan-2009 Chris Lattner <sabre@nondot.org> Rename SourceManager::getCanonicalFileID -> getFileID. There is
no longer such thing as a non-canonical FileID.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62499 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
b21e5a0fdd9bd6e6c6885428798070f0a9f71295 19-Jan-2009 Chris Lattner <sabre@nondot.org> remove the SourceManager:: and FullSourceLoc::getFileEntryForLoc methods.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62496 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f7cf85b330bedd2877e1371fb0a83e99751ae162 16-Jan-2009 Chris Lattner <sabre@nondot.org> more SourceLocation lexicon change: instead of referring to the
"logical" location, refer to the "instantiation" location.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62316 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
835c909696ecd1e1f128297089d1def8d1a6f7cd 05-Jan-2009 Anders Carlsson <andersca@mac.com> Generate debug info for VLA types

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61661 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
a4c46df1cd63e06af2a094b68b902a3eb232f056 11-Dec-2008 Douglas Gregor <dgregor@apple.com> Actually distinguish between RecordDecl::field_iterator and RecordDecl::field_const_iterator, propagating the constness down to the FieldDecls.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60883 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
44b4321feab46299d3f5cfd404680884752a0fcf 11-Dec-2008 Douglas Gregor <dgregor@apple.com> Unifies the name-lookup mechanisms used in various parts of the AST
and separates lexical name lookup from qualified name lookup. In
particular:
* Make DeclContext the central data structure for storing and
looking up declarations within existing declarations, e.g., members
of structs/unions/classes, enumerators in C++0x enums, members of
C++ namespaces, and (later) members of Objective-C
interfaces/implementations. DeclContext uses a lazily-constructed
data structure optimized for fast lookup (array for small contexts,
hash table for larger contexts).

* Implement C++ qualified name lookup in terms of lookup into
DeclContext.

* Implement C++ unqualified name lookup in terms of
qualified+unqualified name lookup (since unqualified lookup is not
purely lexical in C++!)

* Limit the use of the chains of declarations stored in
IdentifierInfo to those names declared lexically.

* Eliminate CXXFieldDecl, collapsing its behavior into
FieldDecl. (FieldDecl is now a ScopedDecl).

* Make RecordDecl into a DeclContext and eliminates its
Members/NumMembers fields (since one can just iterate through the
DeclContext to get the fields).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60878 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
4d6e8dd587f6ae0080b0d3acc9ac6a6a02b1ac3b 26-Nov-2008 Anders Carlsson <andersca@mac.com> Convert incomplete array types before emitting debug info for them, fixes PR3134.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60109 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d9d22dd9c94618490dbffb0e2caf222530ca39d3 24-Nov-2008 Chris Lattner <sabre@nondot.org> Rename NamedDecl::getName() to getNameAsString(). Replace a bunch of
uses of getName() with uses of getDeclName(). This upgrades a bunch of
diags to take DeclNames instead of std::strings.

This also tweaks a couple of diagnostics to be cleaner and changes
CheckInitializerTypes/PerformInitializationByConstructor to pass
around DeclarationNames instead of std::strings.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59947 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
8ec03f58c33c33a917f54bb7f2cd61b6d7ffe0ca 24-Nov-2008 Chris Lattner <sabre@nondot.org> Rename NamedDecl::getIdentifierName() to ::getNameAsCString() and make it
assert if the name is not an identifier. Update callers to do the right
thing and avoid this method in unsafe cases. This also fixes an objc
warning that was missing a space, and migrates a couple more to taking
IdentifierInfo and QualTypes instead of std::strings.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59936 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
2e1cd4264d363ca869bf37ef160902f211d21b8c 17-Nov-2008 Douglas Gregor <dgregor@apple.com> Introduction the DeclarationName class, as a single, general method of
representing the names of declarations in the C family of
languages. DeclarationName is used in NamedDecl to store the name of
the declaration (naturally), and ObjCMethodDecl is now a NamedDecl.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59441 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
3cc5c406c436a90c8dd61f545552b844391ebf5b 11-Nov-2008 Chris Lattner <sabre@nondot.org> implement debug info for typeof()



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@59032 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f2528e045c12dd743a83b5141eba36d6aa947cbb 10-Nov-2008 Chris Lattner <sabre@nondot.org> Fix even more bugs in debug info support:
1. emit proper debug info for forward decls of structs.
2. emit DW_TAG_member nodes around members of a field like llvm-gcc does.

This slows down debug info generation, but is required for correctness.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58973 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
9c85ba33ac85bbf5915f300a4b228bad7c693ee7 10-Nov-2008 Chris Lattner <sabre@nondot.org> reimplement debug info generation in terms of DebugInfo.h instead of
using MachineModuleInfo. This runs at about the same speed as the old
code, but fixes a bunch of bugs and is simpler and shorter.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58971 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
960627da5a98e788045b81cb32a7db7290c76c35 08-Nov-2008 Daniel Dunbar <daniel@zuster.org> Avoid redundant cast<>s / simplify type dispatch.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58892 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
d7f6050113598797078f2718bc9f76c3ae35f0df 08-Nov-2008 Daniel Dunbar <daniel@zuster.org> "Fix" PR3021, don't crash on generating record types when we can't
generate the type of a member.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58889 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
45d196b8387dcefc4df26cda114fa34c6528e928 01-Nov-2008 Daniel Dunbar <daniel@zuster.org> Move IRBuilder type definition to common file.
- No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58546 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
9881cf0f09aeada2894b203c854bd12b1babfd5d 31-Oct-2008 Daniel Dunbar <daniel@zuster.org> Debug info: Bug fix, function types should always include the return
type.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58497 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
bea06e4adb9fb7c2372058ee078c18db451b5a07 31-Oct-2008 Daniel Dunbar <daniel@zuster.org> Quick fix for PR2950, infinite loop generating debug info for
recursive types.
- Style will be clean up in further patches.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58490 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
3845f86d05e151ebb89a4d4e110c5cd12ececde9 31-Oct-2008 Daniel Dunbar <daniel@zuster.org> Formatting tweaks.
- No functionality change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58488 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
25f51dda883d8b08d99e30fcec3b274599264712 24-Oct-2008 Daniel Dunbar <daniel@zuster.org> Don't crash on invalid source locations in
CGDebugInfo::getOrCreateCompileUnit.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58081 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
2104bf96271cb1b57e2af817acbdf4db63b4b171 24-Oct-2008 Daniel Dunbar <daniel@zuster.org> Map compilation units using FileEntry pointers instead of
FileIDs. This seems better conceptually and lets the SourceManager
handle details of mapping the location to a file ID.
- In practice, fixes an assert because this code wasn't using
getPhysicalLoc.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58055 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
2284ac9ec80299fcdefae9a2787cf85105a0f203 18-Oct-2008 Daniel Dunbar <daniel@zuster.org> Debug info bug fix, function start wasn't getting generated correctly
for Obj-C methods.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57769 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
66031a5594bc9a7dc0dc5137c3e7955f835e4639 17-Oct-2008 Daniel Dunbar <daniel@zuster.org> Change CGDebugInfo::setLocation to just ignore invalid locations. This
simplifies clients.

Also, add assert that RegionStack is empty when the CGDebugInfo is
destroyed.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57684 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
5273f514a1e8dd5f5ebd0f94d2c59f7e0e88a674 17-Oct-2008 Daniel Dunbar <daniel@zuster.org> Quick patch for PR2784, assert genereting debug info for opaque
structure.
- I'm not sure yet about the behavior, but this at least prevents the
crash.

Add some asserts on RegionStack usage.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57661 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
e91593ef084479340582b2ba177b44be50a717b7 11-Aug-2008 Daniel Dunbar <daniel@zuster.org> More #include cleaning
- Drop Expr.h,RecordLayout.h from ASTContext.h (for DeclBase.h and
SourceLocation.h)
- Move ASTContext constructor into implementation


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54627 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
85e356825b291f86c6e926638914222b834b71a3 08-Aug-2008 Chris Lattner <sabre@nondot.org> update to make IRBuilder API change.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54548 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
c63a1f276f7b324fd9a4be82098b1c8f7bf30733 04-Aug-2008 Chris Lattner <sabre@nondot.org> Finally fix PR2189. This makes a fairly invasive but important change to
move getAsArrayType into ASTContext instead of being a method on type.
This is required because getAsArrayType(const AT), where AT is a typedef
for "int[10]" needs to return ArrayType(const int, 10).

Fixing this greatly simplifies getArrayDecayedType, which is a good sign.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54317 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
21cb712be47ec21ffa314d7c9856160fa4de440a 04-Jul-2008 Bill Wendling <isanbard@gmail.com> Remove removed header.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@53121 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
58cbd06887c94d98fe4138d15c64db19d36a4af9 27-Jun-2008 Cedric Venet <cedric.venet@laposte.net> Add missing include file (due to a file splitting in llvm).
Add new file to Sema Project for VS.
this unbreak the build for VS2005 (with the associated patch on llvm).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52830 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
9ea5884420683d51446c964a6166704a62e40e56 19-Jun-2008 Mike Stump <mrs@apple.com> Remove tabs.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52507 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
507de85bc1cee904123ef99c58159c97df40a3ae 09-Jun-2008 Sanjiv Gupta <sanjiv.gupta@microchip.com> Generate debug descriptors for array types while generating the debug info.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52140 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
3cd1a2dc07014aa6b675030823690cf06619a745 08-Jun-2008 Nuno Lopes <nunoplopes@sapo.pt> fix compiler warnings

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52089 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
f58c27a64de75b152b54b88a7aee07867aaeda17 07-Jun-2008 Sanjiv Gupta <sanjiv.gupta@microchip.com> Create debug type descriptors for aggregate/enum types.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52070 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
686226b538e72c5059ab7c9a8f87eb883193b645 05-Jun-2008 Sanjiv Gupta <sanjiv.gupta@microchip.com> Emit debug information for global and static variables when -g is specified.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51993 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
cc9b16394fe6c9245dc4f8661a63d0c3937b62f0 30-May-2008 Sanjiv Gupta <sanjiv.gupta@microchip.com> Emit parameter and local variable debug information with -g.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51765 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
32ea35fee916ed73fe343bad2de9a609eb2cca38 29-May-2008 Eli Friedman <eli.friedman@gmail.com> A couple minor fixes to make debug info usable for arbitrary code: don't
emit incomplete types, because they crash llc, and always use the
logical location as the current location so we don't crash doing invalid
queries on CurLoc.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51675 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
1c6a38bcea17801e9a4738753aee845381af2b6c 25-May-2008 Sanjiv Gupta <sanjiv.gupta@microchip.com> Generate subprogram debug info with -g.
Also take care of freeing memory at the right places.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51553 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
3f2af1002249c8acc9ce17f1fc50324864feb8e1 22-May-2008 Eli Friedman <eli.friedman@gmail.com> Make debugging information usable. This is barebones, but it makes -g
actually work (instead of crashing llc), and there's enough info emitted
to get line number information in gdb. This should hopefully be helpful
for debugging non-working programs.

I got rid of the begin/endregion calls because the implementation wasn't
working; someone who knows the debugging info a bit better might try to
add it. I really have no clue how a compiler is supposed to emit them.

This commit shouldn't have any effect without -g.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51404 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
86eb3116f9eb1ded8a834207aafde3413f7ed884 13-May-2008 Eli Friedman <eli.friedman@gmail.com> Detabify.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@51042 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp
e8b9f5b8ea60983c4a74cb8b63879616b914b65a 08-May-2008 Sanjiv Gupta <sanjiv.gupta@microchip.com> Added -g command line options to clang for generating source level debug information. This patch currently enables generation of line number debug information (stoppoints) and region begin/end debug information. The new files CGDebugInfo.h and CGDebugInfo.cpp implements the debug info manager class CGDebugInfo.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50848 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/CodeGen/CGDebugInfo.cpp