1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 2; RUN: opt -passes="ipsccp<func-spec>" -force-specialization -S < %s | FileCheck %s 3 4; Check that we don't crash and specialise on a poison value. 5 6%struct.quux = type { i16 } 7%struct.spam = type { i16 } 8 9@global.12 = external global %struct.quux, align 1 10 11define internal i16 @wobble(ptr byval(%struct.spam) %arg2) { 12; CHECK-LABEL: @wobble( 13; CHECK-NEXT: bb: 14; CHECK-NEXT: unreachable 15; 16bb: 17 unreachable 18} 19 20define internal i16 @snork() { 21; CHECK-LABEL: @snork( 22; CHECK-NEXT: bb4: 23; CHECK-NEXT: [[B:%.*]] = call i16 @wobble(ptr poison) 24; CHECK-NEXT: unreachable 25; 26bb4: 27 %B = call i16 @wobble(ptr poison) 28 unreachable 29} 30 31define i16 @main() { 32; CHECK-LABEL: @main( 33; CHECK-NEXT: bb: 34; CHECK-NEXT: [[A:%.*]] = call i16 @snork() 35; CHECK-NEXT: unreachable 36; 37bb: 38 %A = call i16 @snork() 39 unreachable 40} 41