llvm-project/llvm/test/DebugInfo/COFF
Amy Huang 2b8c6acc39 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
2020-04-16 12:08:52 -07:00
..
AArch64 [AArch64][WinCFI] Do not pair callee-save instructions in LoadStoreOptimizer 2019-08-07 12:41:38 +00:00
anonymous-struct.ll Changing CodeView debug info type record representation in assembly files to make it more human-readable & editable & fixing bug introduced in r364987 2019-07-09 01:11:02 +00:00
array-odr-violation.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
asan-module-ctor.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
asan-module-without-functions.ll [IR] Disallow llvm.global_ctors and llvm.global_dtors of the 2-field form in textual format 2019-05-15 02:35:32 +00:00
asm.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
big-type.ll Changing CodeView debug info type record representation in assembly files to make it more human-readable & editable & fixing bug introduced in r364987 2019-07-09 01:11:02 +00:00
bitfields.ll [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
build-info.ll
class-options-common.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
comdat.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
const-unnamed-member.ll Changing CodeView debug info type record representation in assembly files to make it more human-readable & editable & fixing bug introduced in r364987 2019-07-09 01:11:02 +00:00
cpp-mangling.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
defer-complete-type.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
dlang.ll [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
enum-co.ll [llvm] Fix broken cases of 'CHECK[^:]*$' in tests 2020-01-28 09:52:59 -07:00
enum.ll Changing CodeView debug info type record representation in assembly files to make it more human-readable & editable & fixing bug introduced in r364987 2019-07-09 01:11:02 +00:00
fp-stack.ll Changing representation of .cv_def_range directives in Codeview debug info assembly format for better readability 2019-08-05 14:16:58 +00:00
fpo-argsize.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
fpo-csrs.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
fpo-funclet.ll Migrate function attribute "no-frame-pointer-elim-non-leaf" to "frame-pointer"="non-leaf" as cleanups after D56351 2019-12-24 16:05:15 -08:00
fpo-realign-alloca.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
fpo-realign-vframe.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
fpo-shrink-wrap.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
fpo-stack-protect.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
frameproc-flags.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
function-options.ll [DebugInfo] Fix for adding "returns cxx udt" option to functions in CodeView. 2020-03-03 14:00:08 -08:00
global-constants.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
global-dllimport.ll
global-type-hashes.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
global_visibility.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
globals-discarded.ll
globals.ll Changing CodeView debug info type record representation in assembly files to make it more human-readable & editable & fixing bug introduced in r364987 2019-07-09 01:11:02 +00:00
inheritance.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
inlining-files.ll llc: Change behavior of -mcpu with existing attribute 2020-01-07 10:10:25 -05:00
inlining-header.ll llc: Change behavior of -mcpu with existing attribute 2020-01-07 10:10:25 -05:00
inlining-levels.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
inlining-padding.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
inlining-same-name.ll Changing CodeView debug info type record representation in assembly files to make it more human-readable & editable & fixing bug introduced in r364987 2019-07-09 01:11:02 +00:00
inlining.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
int8-char-type.ll [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
lambda.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
lexicalblock.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
line-zero.ll [codeview] Try to avoid emitting .cv_loc with line zero 2019-10-10 01:06:01 +00:00
lines-bb-start.ll
lines-difile.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
lit.local.cfg
local-constant.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
local-variable-gap.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
local-variables.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
long-name.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
long-type-name.ll Changing CodeView debug info type record representation in assembly files to make it more human-readable & editable & fixing bug introduced in r364987 2019-07-09 01:11:02 +00:00
multifile.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
multifunction.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
nested-types.ll Changing CodeView debug info type record representation in assembly files to make it more human-readable & editable & fixing bug introduced in r364987 2019-07-09 01:11:02 +00:00
no-cus.ll [test] llvm/test/: change llvm-objdump single-dash long options to double-dash options 2020-03-15 17:46:23 -07:00
nrvo.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
parameter-order.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
parent-type-scopes.ll Reland "[codeview] Reference types in type parent scopes" 2020-04-16 12:08:52 -07:00
pieces.ll Revert "[DebugInfo] Remove some users of DBG_VALUEs IsIndirect field" 2020-02-06 14:41:40 +00:00
pr28747.ll
pr37492.ll Removing block comments from CodeView records in assembly files & related code cleanup 2019-08-25 01:09:11 +00:00
purge-typedef-udts.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
register-variables.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
retained-types.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
scopes.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
simple.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
static-methods.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
swift.ll [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
synthetic.ll Removing block comments from CodeView records in assembly files & related code cleanup 2019-08-25 01:09:11 +00:00
tail-call-without-lexical-scopes.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
thunk.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
type-quals.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
typedef.ll [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
types-array-advanced.ll Revert "[SafeStack][DebugInfo] Insert DW_OP_deref in correct location" 2020-02-06 14:41:39 +00:00
types-array-unsized.ll Changing CodeView debug info type record representation in assembly files to make it more human-readable & editable & fixing bug introduced in r364987 2019-07-09 01:11:02 +00:00
types-array.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
types-basic.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
types-calling-conv.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
types-cvarargs.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
types-data-members.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
types-empty-member-fn.ll Changing CodeView debug info type record representation in assembly files to make it more human-readable & editable & fixing bug introduced in r364987 2019-07-09 01:11:02 +00:00
types-method-ref-qualifiers.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
types-nested-class.ll Changing CodeView debug info type record representation in assembly files to make it more human-readable & editable & fixing bug introduced in r364987 2019-07-09 01:11:02 +00:00
types-non-virtual-methods.ll Changing CodeView debug info type record representation in assembly files to make it more human-readable & editable & fixing bug introduced in r364987 2019-07-09 01:11:02 +00:00
types-ptr-to-member.ll Changing CodeView debug info type record representation in assembly files to make it more human-readable & editable & fixing bug introduced in r364987 2019-07-09 01:11:02 +00:00
types-recursive-struct.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
types-recursive-unnamed.ll Revert "Revert "Reland "[Support] make report_fatal_error `abort` instead of `exit`""" 2020-02-13 10:16:06 -08:00
types-std-nullptr-t.ll [llvm-readobj] Change -long-option to --long-option in tests. NFC 2019-05-01 05:27:20 +00:00
types-this-not-ptr.ll [DebugInfo] Combine Trivial and NonTrivial flags 2019-04-11 20:25:10 +00:00
udts-complete.ll [DebugInfo] Combine Trivial and NonTrivial flags 2019-04-11 20:25:10 +00:00
udts.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
unnamed-nested.ll Reland "[codeview] Reference types in type parent scopes" 2020-04-16 12:08:52 -07:00
unnamed.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
vframe-csr.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
vframe-fpo.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
vftables.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
virtual-method-kinds.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
virtual-methods.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00
vtable-optzn-array.ll Migrate function attribute "no-frame-pointer-elim"="false" to "frame-pointer"="none" as cleanups after D56351 2019-12-24 16:27:51 -08:00