brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.7 KiB · 5f4beec Raw
29 lines · cpp
1// RUN: %clangxx -fsanitize=signed-integer-overflow -w %s -O3 -o %t2// RUN: %run %t 2>&1 | FileCheck %s --check-prefix=RECOVER3 4// RUN: %clangxx -fsanitize=signed-integer-overflow -fno-sanitize-recover=signed-integer-overflow -w %s -O3 -o %t.abort5// RUN: not %run %t.abort 2>&1 | FileCheck %s --check-prefix=ABORT6 7#include <limits.h>8#include <stdlib.h>9 10int main() {11  // ABORT: abs.cpp:[[#@LINE+3]]:17: runtime error: negation of -[[#]] cannot be represented in type 'int'; cast to an unsigned type to negate this value to itself12  // RECOVER: abs.cpp:[[#@LINE+2]]:17: runtime error: negation of -[[#]] cannot be represented in type 'int'; cast to an unsigned type to negate this value to itself13  // RECOVER: abs.cpp:[[#@LINE+2]]:7: runtime error: negation of -[[#]] cannot be represented in type 'int'; cast to an unsigned type to negate this value to itself14  __builtin_abs(INT_MIN);15  abs(INT_MIN);16 17  // RECOVER: abs.cpp:[[#@LINE+2]]:18: runtime error: negation of -[[#]] cannot be represented in type 'long'; cast to an unsigned type to negate this value to itself18  // RECOVER: abs.cpp:[[#@LINE+2]]:8: runtime error: negation of -[[#]] cannot be represented in type 'long'; cast to an unsigned type to negate this value to itself19  __builtin_labs(LONG_MIN);20  labs(LONG_MIN);21 22  // RECOVER: abs.cpp:[[#@LINE+2]]:19: runtime error: negation of -[[#]] cannot be represented in type 'long long'; cast to an unsigned type to negate this value to itself23  // RECOVER: abs.cpp:[[#@LINE+2]]:9: runtime error: negation of -[[#]] cannot be represented in type 'long long'; cast to an unsigned type to negate this value to itself24  __builtin_llabs(LLONG_MIN);25  llabs(LLONG_MIN);26 27  return 0;28}29