; 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} ;.