mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-27 21:50:40 +00:00
[IR/Verifier] Don't visit DISubprograms more than needed.
Before this patch we happened to visit twice, one when scanning MDNodes and the other one while visiting the function. Remove the explicit call to visitDISubprogram there, so we don't emit the same error twice in case the verifier fail and we save some time when running it. Thanks to Justin Bogner for the report and Adrian for the quick review! PR: 31995 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@295537 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
72748efa68
commit
8faf95ff17
@ -2119,8 +2119,6 @@ void Verifier::visitFunction(const Function &F) {
|
||||
if (!N)
|
||||
return;
|
||||
|
||||
visitDISubprogram(*N);
|
||||
|
||||
// Check that all !dbg attachments lead to back to N (or, at least, another
|
||||
// subprogram that describes the same function).
|
||||
//
|
||||
|
17
test/DebugInfo/Generic/invalid.ll
Normal file
17
test/DebugInfo/Generic/invalid.ll
Normal file
@ -0,0 +1,17 @@
|
||||
; RUN: not opt -verify %s 2>&1 | FileCheck %s
|
||||
|
||||
; Make sure we emit this diagnostic only once (which means we don't visit the
|
||||
; same DISubprogram twice.
|
||||
; CHECK: subprogram definitions must have a compile unit
|
||||
; CHECK-NEXT: !3 = distinct !DISubprogram(name: "patatino", scope: null, isLocal: false, isDefinition: true, isOptimized: false)
|
||||
; CHECK-NOT: subprogram definitions must have a compile unit
|
||||
; CHECK-NOT: !3 = distinct !DISubprogram(name: "patatino", scope: null, isLocal: false, isDefinition: true, isOptimized: false)
|
||||
|
||||
define void @tinkywinky() !dbg !3 { ret void }
|
||||
|
||||
!llvm.module.flags = !{!4}
|
||||
!llvm.dbg.cu = !{!0}
|
||||
!0 = distinct !DICompileUnit(language: 12, file: !1)
|
||||
!1 = !DIFile(filename: "/home/davide", directory: "/home/davide")
|
||||
!3 = distinct !DISubprogram(name: "patatino", isDefinition: true)
|
||||
!4 = !{i32 2, !"Debug Info Version", i32 3}
|
Loading…
Reference in New Issue
Block a user