[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