1ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// RUN: %clang_cc1 -fsyntax-only -Wfloat-equal -verify %s
2ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
3ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoint f1(float x, float y) {
4ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  return x == y; // expected-warning {{comparing floating point with ==}}
5ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}
6ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
7ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoint f2(float x, float y) {
8ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  return x != y; // expected-warning {{comparing floating point with ==}}
9ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}
10ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
11ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoint f3(float x) {
12ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  return x == x; // no-warning
13ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}
14ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
15ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoint f4(float x) {
16ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  return x == 0.0; // no-warning {{comparing}}
17ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}
18ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
19ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoint f5(float x) {
20ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  return x == __builtin_inf(); // no-warning
21ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}
22ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao
23ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoint f7(float x) {
24ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao  return x == 3.14159; // expected-warning {{comparing}}
25ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}
26