diff options
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/Sema/conversion.c | 10 | ||||
-rw-r--r-- | clang/test/Sema/ext_vector_casts.c | 8 | ||||
-rw-r--r-- | clang/test/Sema/implicit-int-float-conversion.c | 30 |
3 files changed, 9 insertions, 39 deletions
diff --git a/clang/test/Sema/conversion.c b/clang/test/Sema/conversion.c index 7fdfc4bb4ac..07b22a8a648 100644 --- a/clang/test/Sema/conversion.c +++ b/clang/test/Sema/conversion.c @@ -233,7 +233,7 @@ void test8(int v) { takes_int(v); takes_long(v); takes_longlong(v); - takes_float(v); // expected-warning {{implicit conversion from 'int' to 'float' may lose precision}} + takes_float(v); takes_double(v); takes_longdouble(v); } @@ -244,8 +244,8 @@ void test9(long v) { takes_int(v); // expected-warning {{implicit conversion loses integer precision}} takes_long(v); takes_longlong(v); - takes_float(v); // expected-warning {{implicit conversion from 'long' to 'float' may lose precision}} - takes_double(v); // expected-warning {{implicit conversion from 'long' to 'double' may lose precision}} + takes_float(v); + takes_double(v); takes_longdouble(v); } @@ -255,8 +255,8 @@ void test10(long long v) { takes_int(v); // expected-warning {{implicit conversion loses integer precision}} takes_long(v); takes_longlong(v); - takes_float(v); // expected-warning {{implicit conversion from 'long long' to 'float' may lose precision}} - takes_double(v); // expected-warning {{implicit conversion from 'long long' to 'double' may lose precision}} + takes_float(v); + takes_double(v); takes_longdouble(v); } diff --git a/clang/test/Sema/ext_vector_casts.c b/clang/test/Sema/ext_vector_casts.c index 339e741a57c..6aaedbe7fd1 100644 --- a/clang/test/Sema/ext_vector_casts.c +++ b/clang/test/Sema/ext_vector_casts.c @@ -115,12 +115,12 @@ static void splats(int i, long l, __uint128_t t, float f, double d) { vl = vl + t; // expected-warning {{implicit conversion loses integer precision}} vf = 1 + vf; - vf = l + vf; // expected-warning {{implicit conversion from 'long' to 'float2' (vector of 2 'float' values) may lose precision}} + vf = l + vf; vf = 2.0 + vf; vf = d + vf; // expected-warning {{implicit conversion loses floating-point precision}} - vf = vf + 0xffffffff; // expected-warning {{implicit conversion from 'unsigned int' to 'float2' (vector of 2 'float' values) changes value from 4294967295 to 4294967296}} + vf = vf + 0xffffffff; vf = vf + 2.1; // expected-warning {{implicit conversion loses floating-point precision}} - vd = l + vd; // expected-warning {{implicit conversion from 'long' to 'double2' (vector of 2 'double' values) may lose precision}} - vd = vd + t; // expected-warning {{implicit conversion from '__uint128_t' (aka 'unsigned __int128') to 'double2' (vector of 2 'double' values) may lose precision}} + vd = l + vd; + vd = vd + t; } diff --git a/clang/test/Sema/implicit-int-float-conversion.c b/clang/test/Sema/implicit-int-float-conversion.c deleted file mode 100644 index 443e66fd051..00000000000 --- a/clang/test/Sema/implicit-int-float-conversion.c +++ /dev/null @@ -1,30 +0,0 @@ -// RUN: %clang_cc1 %s -verify -Wno-conversion -Wimplicit-int-float-conversion - -long testReturn(long a, float b) { - return a + b; // expected-warning {{implicit conversion from 'long' to 'float' may lose precision}} -} - -void testAssignment() { - float f = 222222; - double b = 222222222222L; - - float ff = 222222222222L; // expected-warning {{implicit conversion from 'long' to 'float' changes value from 222222222222 to 222222221312}} - float ffff = 222222222222UL; // expected-warning {{implicit conversion from 'unsigned long' to 'float' changes value from 222222222222 to 222222221312}} - - long l = 222222222222L; - float fff = l; // expected-warning {{implicit conversion from 'long' to 'float' may lose precision}} -} - -void testExpression() { - float a = 0.0f; - float b = 222222222222L + a; // expected-warning {{implicit conversion from 'long' to 'float' changes value from 222222222222 to 222222221312}} - - float g = 22222222 + 22222222; - float c = 22222222 + 22222223; // expected-warning {{implicit conversion from 'int' to 'float' changes value from 44444445 to 44444444}} - - int i = 0; - float d = i + a; // expected-warning {{implicit conversion from 'int' to 'float' may lose precision}} - - double e = 0.0; - double f = i + e; -} |