mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Even though FRem was added as a builtin, this switch was not updated accordingly. Update the switch and add a test case. We really should transition all of the switches in this code to be covered switches so that when builtins are added, it is obvious to know where things need to be updated... rdar://26250330
23 lines
1.0 KiB
Plaintext
23 lines
1.0 KiB
Plaintext
// RUN: %target-swift-frontend %s -emit-sil -verify
|
|
|
|
import Builtin
|
|
|
|
// fold_sadd_with_overflow_Overflow
|
|
sil @fold_sadd_with_overflow_Overflow : $@convention(thin) (Builtin.RawPointer) -> Builtin.Int64 {
|
|
bb0(%0 : $Builtin.RawPointer):
|
|
%2 = integer_literal $Builtin.Int64, 9223372036854775807
|
|
%3 = integer_literal $Builtin.Int64, 9223372036854775807
|
|
%21 = integer_literal $Builtin.Int1, 1
|
|
%4 = builtin "sadd_with_overflow_Int64"(%2 : $Builtin.Int64, %3 : $Builtin.Int64, %21 : $Builtin.Int1) : $(Builtin.Int64, Builtin.Int1) // expected-error {{results in an overflow}}
|
|
%8 = tuple_extract %4 : $(Builtin.Int64, Builtin.Int1), 0
|
|
return %8 : $Builtin.Int64
|
|
}
|
|
|
|
sil @dont_crash_on_frem : $@convention(thin) () -> Builtin.FPIEEE64 {
|
|
bb0:
|
|
%1 = float_literal $Builtin.FPIEEE64, 0x402E4CCCCCCCCCCD // 15.15
|
|
%2 = float_literal $Builtin.FPIEEE64, 0x400A666666666666 // 3.2999999999999998 // user: %12
|
|
%3 = builtin "frem_FPIEEE64"(%1 : $Builtin.FPIEEE64, %2 : $Builtin.FPIEEE64) : $Builtin.FPIEEE64
|
|
return %3 : $Builtin.FPIEEE64
|
|
}
|