diff options
author | Greg Clayton <gclayton@apple.com> | 2012-04-24 21:22:41 +0000 |
---|---|---|
committer | Greg Clayton <gclayton@apple.com> | 2012-04-24 21:22:41 +0000 |
commit | a8022fa70de20171d95d54d6921d7a32d7108a77 (patch) | |
tree | afd27119820040a5e5912a60e2b3f22abd5aa76f /clang/test/Headers/ms-null-ms-header-vs-stddef.cpp | |
parent | 7af41ccdc478f8bf27694f3d17fa60df4d534fc9 (diff) | |
download | bcm5719-llvm-a8022fa70de20171d95d54d6921d7a32d7108a77.tar.gz bcm5719-llvm-a8022fa70de20171d95d54d6921d7a32d7108a77.zip |
<rdar://problem/11291668>
Fixed an issue that would happen when using debug map with DWARF in the .o files where we wouldn't ever track down the actual definition for a type when things were in namespaces. We now serialize the decl context information into an intermediate format which allows us to track down the correct definition for a type regardless of which DWARF symbol file it comes from. We do this by creating a "DWARFDeclContext" object that contains the DW_TAG + name for each item in a decl context which we can then use to veto potential accelerator table matches. For example, the accelerator tables store the basename of the type, so if you have "std::vector<int>", we would end up with an accelerator table entry for the type that contained "vector<int>", which we would then search for using a DWARFDeclContext object that contained:
[0] DW_TAG_class_type "vector<int>"
[1] DW_TAG_namespace "std"
This is currently used to track down forward declarations for things like "class a::b::Foo;".
llvm-svn: 155488
Diffstat (limited to 'clang/test/Headers/ms-null-ms-header-vs-stddef.cpp')
0 files changed, 0 insertions, 0 deletions