42 lines · cpp
1// RUN: %clangxx_min_runtime -fsanitize=signed-integer-overflow -fsanitize-recover=all %s -o %t && %run %t 2>&1 | FileCheck %s2 3#include <stdint.h>4 5#define OVERFLOW \6 x = 0x7FFFFFFE; \7 x += __LINE__8 9int main() {10 int32_t x;11 OVERFLOW; // CHECK: add-overflow12 OVERFLOW; // CHECK: add-overflow13 OVERFLOW; // CHECK: add-overflow14 OVERFLOW; // CHECK: add-overflow15 OVERFLOW; // CHECK: add-overflow16 17 OVERFLOW; // CHECK: add-overflow18 OVERFLOW; // CHECK: add-overflow19 OVERFLOW; // CHECK: add-overflow20 OVERFLOW; // CHECK: add-overflow21 OVERFLOW; // CHECK: add-overflow22 23 OVERFLOW; // CHECK: add-overflow24 OVERFLOW; // CHECK: add-overflow25 OVERFLOW; // CHECK: add-overflow26 OVERFLOW; // CHECK: add-overflow27 OVERFLOW; // CHECK: add-overflow28 29 OVERFLOW; // CHECK: add-overflow30 OVERFLOW; // CHECK: add-overflow31 OVERFLOW; // CHECK: add-overflow32 OVERFLOW; // CHECK: add-overflow33 OVERFLOW; // CHECK: add-overflow34 35 // CHECK-NOT: add-overflow36 OVERFLOW; // CHECK: too many errors37 // CHECK-NOT: add-overflow38 OVERFLOW;39 OVERFLOW;40 OVERFLOW;41}42