Commit Graph

13 Commits

Author SHA1 Message Date
Adrian McCarthy 4470536d89 Mark static member functions as static in CodeViewDebug
Summary:
To improve CodeView quality for static member functions, we need to make the
static explicit.  In addition to a small change in LLVM's CodeViewDebug to
return the appropriate MethodKind, this requires a small change in Clang to
note the staticness in the debug info metadata.

Subscribers: aprantl, hiraditya

Differential Revision: https://reviews.llvm.org/D37715

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@313192 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-13 20:53:55 +00:00
Peter Collingbourne 48ccf5de8d Update Clang for D20147 ("DebugInfo: New metadata representation for global variables.")
Differential Revision: http://reviews.llvm.org/D20415

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@281285 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-13 01:13:19 +00:00
Reid Kleckner b74f276c3f [codeview] Pass through vftable shape information
The shape is really just the number of methods in the vftable, since we
don't support 16 bit far calls. All calls are near. Encode this number
in the size of the artificial __vtbl_ptr_type DIDerivedType that we
generate. For DWARF, this will be a normal pointer, but for codeview
this will be a wide pointer that gets pattern matched into a
VFTableShape record. Insert this type into the element list of all
dynamic classes when emitting CodeView, so that the backend can emit the
shape even if the vptr lives in a primary base class.

Fixes PR28150

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@280255 91177308-0d34-0410-b5e6-96231b3b80d8
2016-08-31 16:11:43 +00:00
Adrian McCarthy 3707e21d19 Reroll "Include unreferenced nested types in member list only for CodeView"
Another attempt at r276271, hopefully without breaking ModuleDebugInfo test.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@276317 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-21 18:43:20 +00:00
Adrian McCarthy 9025b9aa4e Revert "Include unreferenced nested types in member list only for CodeView"
Patch broke ModuleDebugInfo test on the build bots (but not locally).  Again.

svn revision:  r276271

This reverts commit 9da8a1b05362bc96f2855fb32b5588b89407685d.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@276279 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-21 13:41:25 +00:00
Adrian McCarthy 86087031da Include unreferenced nested types in member list only for CodeView
Unreferenced nested structs and classes were omitted from the debug info.  In DWARF, this was intentional, to avoid bloat.  But for CodeView, we want this information to be consistent with what Microsoft tools would produce and expect.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@276271 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-21 13:16:14 +00:00
Adrian McCarthy a9119fb208 Revert "Retry "Include debug info for nested structs and classes""
Reverting because it causes a test failure on build bots (Modules/ModuleDebugInfo.cpp).  Failure does not reproduce locally.

svn revision: rL274698

This reverts commit 3c5ed6599b086720aab5b8bd6941149d066806a6.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274706 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-06 23:28:34 +00:00
Adrian McCarthy cf47a1af9d Retry "Include debug info for nested structs and classes"
This should work now that the LLVM-side of the change has landed successfully.

Original Differential Revision: http://reviews.llvm.org/D21705

This reverts commit a30322e861.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274698 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-06 22:39:15 +00:00
Adrian McCarthy a30322e861 Revert "Include debug info for nested structs and classes"
This reverts commit 0af5ee9631c7c167dc40498b415876553e314c95.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274633 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-06 15:15:38 +00:00
Adrian McCarthy b8adec3cc6 Include debug info for nested structs and classes
This includes nested types in the member list, even if there are no members of that type. Note that structs and classes have themselves as an "implicit struct" as the first member, so we skip implicit ones.

Differential Revision: http://reviews.llvm.org/D21705

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@274628 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-06 14:46:42 +00:00
Reid Kleckner f6e13ce923 [codeview] Set the new IntroducedVirtual debug info flag
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273454 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-22 18:34:45 +00:00
Reid Kleckner a75f8f56bc [DebugInfo] Put the vftable index in the debug info
This won't always be enough info to call a virtual method from the
debugger, but it's a start.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@272944 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-16 20:08:51 +00:00
Reid Kleckner 7b5a49b699 [DebugInfo] Enable generation of unique identifiers for externally visible MS ABI types
We implemented the mangling for this a long time ago.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@272862 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-16 01:21:28 +00:00