blob: e44ff096b2e675f91c021092bd5bb1705b955847 [file] [log] [blame]
Ted Kremenekdb87bca2007-11-13 18:37:02 +00001// RUN: clang -fsyntax-only -Wfloat-equal -verify %s
Ted Kremenek9b3d3a92007-08-29 18:06:12 +00002
Ted Kremenek9e7f0ec2007-11-29 01:00:11 +00003int f1(float x, float y) {
Ted Kremenek9b3d3a92007-08-29 18:06:12 +00004 return x == y; // expected-warning {{comparing floating point with ==}}
5}
6
Ted Kremenek9e7f0ec2007-11-29 01:00:11 +00007int f2(float x, float y) {
Ted Kremenek9b3d3a92007-08-29 18:06:12 +00008 return x != y; // expected-warning {{comparing floating point with ==}}
Ted Kremenek9f3d9422007-09-26 20:14:22 +00009}
Ted Kremenek6a261552007-10-29 16:40:01 +000010
Ted Kremenek9e7f0ec2007-11-29 01:00:11 +000011int f3(float x) {
Ted Kremenek6a261552007-10-29 16:40:01 +000012 return x == x; // no-warning
13}
Ted Kremenekc8f488d2007-11-13 19:17:00 +000014
Ted Kremenek9e7f0ec2007-11-29 01:00:11 +000015int f4(float x) {
Ted Kremenek1b2c54b2007-11-13 19:18:22 +000016 return x == 0.0; // expected-warning {{comparing}}
Ted Kremenekc8f488d2007-11-13 19:17:00 +000017}
18
Ted Kremenek9e7f0ec2007-11-29 01:00:11 +000019int f5(float x) {
Ted Kremenekc8f488d2007-11-13 19:17:00 +000020 return x == __builtin_inf(); // no-warning
Ted Kremenek9e7f0ec2007-11-29 01:00:11 +000021}
22
23int f6(float x) {
24 return x == 0.0; // no-warning
25}
26
27int f7(float x) {
28 return x == 3.14159; // expected-warning {{comparing}}
29}