From 7ea4cfcf8343de0a1b3e70ca028628bf459fe0ec Mon Sep 17 00:00:00 2001 From: Daniel Sanders Date: Wed, 22 Apr 2015 16:14:01 +0000 Subject: [PATCH] [ubsan] Stop cast-overflow.cpp test leaking undefined behaviour into the exit code. Summary: ubsan was correctly catching the undefined behaviour but lit's shell was failing the test anyway because the exit code was non-zero as a result of the undefined behaviour. This fixes the test on a mips-linux-gnu target. Reviewers: samsonov Reviewed By: samsonov Subscribers: samsonov, llvm-commits, rsmith, sagar Differential Revision: http://reviews.llvm.org/D9155 llvm-svn: 235518 --- .../test/ubsan/TestCases/Float/cast-overflow.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/compiler-rt/test/ubsan/TestCases/Float/cast-overflow.cpp b/compiler-rt/test/ubsan/TestCases/Float/cast-overflow.cpp index 82c6e0d86db8..1193e7badfc7 100644 --- a/compiler-rt/test/ubsan/TestCases/Float/cast-overflow.cpp +++ b/compiler-rt/test/ubsan/TestCases/Float/cast-overflow.cpp @@ -87,9 +87,11 @@ int main(int argc, char **argv) { static int test_int = MaxFloatRepresentableAsInt + 0x80; return 0; } - case '1': + case '1': { // CHECK-1: runtime error: value -2.14748{{.*}} is outside the range of representable values of type 'int' - return MinFloatRepresentableAsInt - 0x100; + static int test_int = MinFloatRepresentableAsInt - 0x100; + return 0; + } case '2': { // CHECK-2: runtime error: value -1 is outside the range of representable values of type 'unsigned int' volatile float f = -1.0; @@ -107,9 +109,11 @@ int main(int argc, char **argv) { static int test_int = Inf; return 0; } - case '5': + case '5': { // CHECK-5: runtime error: value {{.*}} is outside the range of representable values of type 'int' - return NaN; + static int test_int = NaN; + return 0; + } // Integer -> floating point overflow. case '6': {