1; RUN: opt -abort-on-max-devirt-iterations-reached -passes='cgscc(devirt<1>(inline,instcombine))' -S < %s | FileCheck %s 2; RUN: opt -abort-on-max-devirt-iterations-reached -passes='default<O2>' -S < %s | FileCheck %s 3 4define i32 @i() alwaysinline { 5 ret i32 45 6} 7 8; CHECK-LABEL: define {{(noundef )?}}i32 @main 9; CHECK-NEXT: ret i32 45 10 11define i32 @main() { 12 %a = alloca ptr 13 store ptr @i, ptr %a 14 %r = call i32 @call(ptr %a) 15 ret i32 %r 16} 17 18define i32 @call(ptr %a) alwaysinline { 19 %c = load ptr, ptr %a 20 %r = call i32 %c() 21 ret i32 %r 22} 23