[all-commits] [llvm/llvm-project] 2b8c6a: Reland "[codeview] Reference types in type parent ...

Amy Huang via All-commits all-commits at lists.llvm.org
Thu Apr 16 12:09:35 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 2b8c6acc3990872800d908b0ddf69229b21db1de
      https://github.com/llvm/llvm-project/commit/2b8c6acc3990872800d908b0ddf69229b21db1de
  Author: Amy Huang <akhuang at google.com>
  Date:   2020-04-16 (Thu, 16 Apr 2020)

  Changed paths:
    M llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
    M llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h
    A llvm/test/DebugInfo/COFF/parent-type-scopes.ll
    A llvm/test/DebugInfo/COFF/unnamed-nested.ll

  Log Message:
  -----------
  Reland "[codeview] Reference types in type parent scopes"

Summary:
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, add the types to
DeferredCompleteTypes, since they might already be in the process of
being emitted.

Fixes PR43905

Reviewers: rnk, amccarth

Subscribers: hiraditya, llvm-commits

Tags: #llvm

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




More information about the All-commits mailing list