mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 04:40:38 +00:00
Verifier: Don't crash on null entries in debug info retained types list
There was already a good error path for this. Added a test for it & made a minor code change to ensure the error path was actually reached, rather than crashing before we got that far. llvm-svn: 245795
This commit is contained in:
parent
ee5050500d
commit
db75149683
@ -3782,7 +3782,7 @@ void Verifier::verifyTypeRefs() {
|
||||
for (auto *CU : CUs->operands())
|
||||
if (auto Ts = cast<DICompileUnit>(CU)->getRetainedTypes())
|
||||
for (DIType *Op : Ts)
|
||||
if (auto *T = dyn_cast<DICompositeType>(Op))
|
||||
if (auto *T = dyn_cast_or_null<DICompositeType>(Op))
|
||||
if (auto *S = T->getRawIdentifier()) {
|
||||
UnresolvedTypeRefs.erase(S);
|
||||
TypeRefs.insert(std::make_pair(S, T));
|
||||
|
10
test/Verifier/dbg-null-retained-type.ll
Normal file
10
test/Verifier/dbg-null-retained-type.ll
Normal file
@ -0,0 +1,10 @@
|
||||
; RUN: not llvm-as -disable-output <%s 2>&1 | FileCheck %s
|
||||
; CHECK: assembly parsed, but does not verify
|
||||
; CHECK-NEXT: invalid retained type
|
||||
|
||||
!llvm.module.flags = !{!0}
|
||||
!0 = !{i32 2, !"Debug Info Version", i32 3}
|
||||
!llvm.dbg.cu = !{!1}
|
||||
!1 = distinct !DICompileUnit(file: !2, language: DW_LANG_C99, retainedTypes: !3)
|
||||
!2 = !DIFile(filename: "file.c", directory: "/path/to/dir")
|
||||
!3 = !{null}
|
Loading…
Reference in New Issue
Block a user