; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -passes="ipsccp<func-spec>" -force-function-specialization -func-specialization-on-address -S < %s | FileCheck %s

; Check that we don't crash and specialise on a scalar global variable with byval attribute.

; CHECK-NOT: wombat.{{[0-9]+}}

%struct.pluto = type { %struct.spam }
%struct.quux = type { i16 }
%struct.spam = type { i16 }

@global.5 = external dso_local global i128
@global.12 = external global %struct.quux

define internal i16 @wobble(ptr %arg, i16 %arg1, ptr byval(i128) %arg2, ptr %arg3) {
; CHECK-LABEL: @wobble(
; CHECK-NEXT:  bb:
; CHECK-NEXT:    unreachable
;
bb:
  unreachable
}

define internal i16 @snork() {
; CHECK-LABEL: @snork(
; CHECK-NEXT:  bb4:
; CHECK-NEXT:    [[TMP35:%.*]] = call i16 @wobble(ptr undef, i16 2, ptr byval(i128) @global.5, ptr @global.12)
; CHECK-NEXT:    unreachable
;
bb4:
  %tmp35 = call i16 @wobble(ptr undef, i16 2, ptr byval(i128) @global.5, ptr @global.12)
  unreachable
}

define i16 @main() {
; CHECK-LABEL: @main(
; CHECK-NEXT:  bb:
; CHECK-NEXT:    [[TMP:%.*]] = call i16 @snork()
; CHECK-NEXT:    unreachable
;
bb:
  %tmp = call i16 @snork()
  unreachable
}
