
Previously, the compiler used LLVM's shift instructions directly, which have UB whenever the shifts are large or negative. This commit adds runtime checks for negative shifts, and handles oversized shifts.
64 строки
423 Б
Text
64 строки
423 Б
Text
string equality
|
|
true
|
|
false
|
|
false
|
|
true
|
|
string inequality
|
|
false
|
|
true
|
|
false
|
|
true
|
|
false
|
|
true
|
|
false
|
|
true
|
|
false
|
|
true
|
|
false
|
|
true
|
|
true
|
|
false
|
|
false
|
|
true
|
|
array equality
|
|
true
|
|
false
|
|
false
|
|
false
|
|
false
|
|
true
|
|
struct equality
|
|
true
|
|
false
|
|
false
|
|
false
|
|
false
|
|
true
|
|
true
|
|
true
|
|
blank fields in structs
|
|
true
|
|
false
|
|
true
|
|
false
|
|
complex numbers
|
|
true
|
|
false
|
|
false
|
|
false
|
|
true
|
|
true
|
|
false
|
|
false
|
|
false
|
|
true
|
|
true
|
|
true
|
|
shifts
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|
|
true
|