[DWARF] Fix debug info generation for function static variables, typedefs, and records

Function static variables, typedefs and records (class, struct or union) declared inside
a lexical scope were associated with the function as their parent scope, rather than the
lexical scope they are defined or declared in.

This fixes PR19238

Patch by: amjad.aboud@intel.com
Differential Revision: http://reviews.llvm.org/D9758

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241153 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Michael Kuperstein
2015-07-01 12:33:11 +00:00
parent 5020a9198d
commit 37cb5f1c2d
8 changed files with 194 additions and 35 deletions

View File

@@ -298,7 +298,9 @@ public:
bool Minimal = false);
/// \brief Find existing DIE or create new DIE for the given type.
DIE *getOrCreateTypeDIE(const MDNode *N);
/// \param N Type Node
/// \param ContextDIE DIE scope for N Node, if available.
DIE *getOrCreateTypeDIE(const MDNode *N, DIE *ContextDIE = nullptr);
/// \brief Get context owner's DIE.
DIE *createTypeDIE(const DICompositeType *Ty);