blob: 367b0f70d07ac1d81bf18c5b473286af82a4d071 [file] [edit]
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6
; RUN: opt -passes=attributor -S < %s 2>&1 | FileCheck %s
; When a function referenced in !inline_history metadata is deleted by a pass
; that uses CallGraphUpdater (e.g. Attributor), the function must not simply
; get RAUW'd with poison before being erased. Reason: this causes the
; !inline_history metadata to contain "ptr poison" instead of null, which would
; be the correct choice.
; This test verifies that the metadata contains null instead of poison.
define internal void @dead_fn() {
unreachable
}
define void @live_fn() {
; CHECK-LABEL: define void @live_fn() {
; CHECK-NEXT: call void @ext(), !inline_history [[META0:![0-9]+]]
; CHECK-NEXT: ret void
;
call void @ext(), !inline_history !0
ret void
}
declare void @ext()
!0 = !{ptr @dead_fn}
;.
; CHECK: [[META0]] = distinct !{null}
;.