blob: b6fd0c5ec629b1610c96885ad4d268e5c65ac245 [file] [log] [blame]
George Burgess IV148e0d32015-10-29 00:28:52 +00001// RUN: %clang_cc1 -verify -fsyntax-only %s -Wdouble-promotion
2
3float ReturnFloatFromDouble(double d) {
4 return d;
5}
6
7float ReturnFloatFromLongDouble(long double ld) {
8 return ld;
9}
10
11double ReturnDoubleFromLongDouble(long double ld) {
12 return ld;
13}
14
15double ReturnDoubleFromFloat(float f) {
16 return f; //expected-warning{{implicit conversion increases floating-point precision: 'float' to 'double'}}
17}
18
19long double ReturnLongDoubleFromFloat(float f) {
20 return f; //expected-warning{{implicit conversion increases floating-point precision: 'float' to 'long double'}}
21}
22
23long double ReturnLongDoubleFromDouble(double d) {
24 return d; //expected-warning{{implicit conversion increases floating-point precision: 'double' to 'long double'}}
25}
26
27void Convert(float f, double d, long double ld) {
28 d = f; //expected-warning{{implicit conversion increases floating-point precision: 'float' to 'double'}}
29 ld = f; //expected-warning{{implicit conversion increases floating-point precision: 'float' to 'long double'}}
30 ld = d; //expected-warning{{implicit conversion increases floating-point precision: 'double' to 'long double'}}
31 f = d;
32 f = ld;
33 d = ld;
34}