llvm-project/llvm/test/tools/llvm-reduce/distinct-dimetadata-nullptr.ll
Robert Barinov 0988bf8d75
[LLVM-Reduce] - Null pointer handling during distinct metadata reduction (#117570)
Some distinct metadata nodes, e.g DICompileUnit, have implicit nullptrs
inside them. Iterating over them with dyn_cast leads to a crash, change
the behavior so that the nullptr operands are skipped.

Add the test distinct-metadata-nullptr.ll which will crash if null
pointers are not handled correctly.
2024-11-25 14:20:45 -08:00

18 lines
830 B
LLVM

; Test checking that distinct metadata reduction pass handles null pointers properly.
; This test will lead to a crash if nullptrs inside distinct metadata are not handled correctly, in this case inside DICompileUnit
; RUN: llvm-reduce --delta-passes=distinct-metadata --aggressive-named-md-reduction --test FileCheck --test-arg %s --test-arg --input-file %s -o %t
; CHECK: {{.*}}distinct !DICompileUnit{{.*}}
!llvm.module.flags = !{!0, !1, !6}
!llvm.dbg.cu = !{!4}
!0 = !{i32 7, !"Dwarf Version", i32 4}
!1 = !{i32 2, !"Source Lang Literal", !2}
!2 = !{!3}
!3 = !{!4, i32 33}
!4 = distinct !DICompileUnit(language: DW_LANG_OpenCL, file: !5, producer: "foobar", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug)
!5 = !DIFile(filename: "main.cpp", directory: "foodir")
!6 = !{i32 2, !"Debug Info Version", i32 3}