[PATCH] D78249: Reland "[codeview] Reference types in type parent scopes"

Amy Huang via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 15 15:28:36 PDT 2020


akhuang created this revision.
akhuang added reviewers: rnk, amccarth.
Herald added subscribers: llvm-commits, hiraditya.
Herald added a project: LLVM.

Original description (https://reviews.llvm/org/D69924)
Without this change, when a nested tag type of any kind (enum, class,
struct, union) is used as a variable type, it is emitted without
emitting the parent type. In CodeView, parent types point to their inner
types, and inner types do not point back to their parents. We already
walk over all of the parent scopes to build the fully qualified name.
This change simply requests their type indices as we go along to enusre
they are all emitted.

Now, while walking over the parent scopes, check whether the type is already
in the process of being emitted before requesting its type index, to avoid
trying to record the same type index twice.

Fixes PR43905


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D78249

Files:
  llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
  llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h
  llvm/test/DebugInfo/COFF/global-constants.ll
  llvm/test/DebugInfo/COFF/parent-type-scopes.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D78249.257871.patch
Type: text/x-patch
Size: 13850 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200415/00d2a9d5/attachment.bin>


More information about the llvm-commits mailing list