}// should not emit warn "control may reach end of non-void function" here since expr is constantly true, so the "if(__bui..)" should be constantly true condition and be ignored
template<intb>voidtempf(){
static_assert(b==1,"should be evaluated as 1");// should not have error here
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]}}
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]}}
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'}}
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]'}}
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]}}
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]}}
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]}}
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]}}