Zhi Zhuang | 37fb860 | 2020-06-22 10:20:42 -0700 | [diff] [blame] | 1 | // RUN: %clang_cc1 -triple avr -fsyntax-only -verify %s |
| 2 | |
| 3 | void test(int x, double p) { // expected-note {{declared here}} |
| 4 | bool dummy = false; |
| 5 | dummy = __builtin_expect_with_probability(x > 0, 1, 0.9); |
| 6 | dummy = __builtin_expect_with_probability(x > 0, 1, 1.1); // expected-error {{probability argument to __builtin_expect_with_probability is outside the range [0.0, 1.0]}} |
| 7 | dummy = __builtin_expect_with_probability(x > 0, 1, -1); // expected-error {{probability argument to __builtin_expect_with_probability is outside the range [0.0, 1.0]}} |
Richard Smith | f7f2e42 | 2020-10-13 10:03:02 -0700 | [diff] [blame] | 8 | dummy = __builtin_expect_with_probability(x > 0, 1, p); // expected-error {{probability argument to __builtin_expect_with_probability must be constant floating-point expression}} expected-note {{function parameter 'p' with unknown value}} |
David Blaikie | aee4925 | 2021-10-14 14:52:47 -0700 | [diff] [blame] | 9 | dummy = __builtin_expect_with_probability(x > 0, 1, "aa"); // expected-error {{cannot initialize a parameter of type 'double' with an lvalue of type 'const char[3]'}} |
Zhi Zhuang | 37fb860 | 2020-06-22 10:20:42 -0700 | [diff] [blame] | 10 | dummy = __builtin_expect_with_probability(x > 0, 1, __builtin_nan("")); // expected-error {{probability argument to __builtin_expect_with_probability is outside the range [0.0, 1.0]}} |
| 11 | dummy = __builtin_expect_with_probability(x > 0, 1, __builtin_inf()); // expected-error {{probability argument to __builtin_expect_with_probability is outside the range [0.0, 1.0]}} |
| 12 | dummy = __builtin_expect_with_probability(x > 0, 1, -0.0); |
| 13 | dummy = __builtin_expect_with_probability(x > 0, 1, 1.0 + __DBL_EPSILON__); // expected-error {{probability argument to __builtin_expect_with_probability is outside the range [0.0, 1.0]}} |
| 14 | dummy = __builtin_expect_with_probability(x > 0, 1, -__DBL_DENORM_MIN__); // expected-error {{probability argument to __builtin_expect_with_probability is outside the range [0.0, 1.0]}} |
| 15 | } |