]>
git.proxmox.com Git - rustc.git/blob - src/libcompiler_builtins/compiler-rt/test/ubsan/TestCases/Integer/no-recover.cpp
1 // RUN: %clangxx -fsanitize=unsigned-integer-overflow %s -o %t && %run %t 2>&1 | FileCheck %s --check-prefix=RECOVER
2 // RUN: %clangxx -fsanitize=unsigned-integer-overflow -fno-sanitize-recover=all -fsanitize-recover=unsigned-integer-overflow %s -o %t && %run %t 2>&1 | FileCheck %s --check-prefix=RECOVER
3 // RUN: %clangxx -fsanitize=unsigned-integer-overflow -fno-sanitize-recover=unsigned-integer-overflow %s -o %t && not %run %t 2>&1 | FileCheck %s --check-prefix=ABORT
8 // These promote to 'int'.
9 ( void )( uint8_t ( 0xff ) + uint8_t ( 0xff ));
10 ( void )( uint16_t ( 0xf0fff ) + uint16_t ( 0x0fff ));
11 // RECOVER-NOT: runtime error
12 // ABORT-NOT: runtime error
14 uint32_t k
= 0x87654321 ;
16 // RECOVER: no-recover.cpp:[[@LINE-1]]:5: runtime error: unsigned integer overflow: 2271560481 + 3989547399 cannot be represented in type 'unsigned int'
17 // ABORT: no-recover.cpp:[[@LINE-2]]:5: runtime error: unsigned integer overflow: 2271560481 + 3989547399 cannot be represented in type 'unsigned int'
19 ( void )( uint64_t ( 10000000000000000000ull ) + uint64_t ( 9000000000000000000ull ));
20 // RECOVER: 10000000000000000000 + 9000000000000000000 cannot be represented in type 'unsigned {{long( long)?}}'
21 // ABORT-NOT: runtime error