// RUN: %clang_cc1 -std=c++2a -fsyntax-only -verify %s
namespacestd{constexprboolis_constant_evaluated()noexcept{return__builtin_is_constant_evaluated();}}// namespace std
constexprintfn1(){ifconstexpr(std::is_constant_evaluated())// expected-warning {{'std::is_constant_evaluated' will always evaluate to 'true' in a manifestly constant-evaluated expression}}
return0;elsereturn1;}constexprintfn2(){ifconstexpr(!std::is_constant_evaluated())// expected-warning {{'std::is_constant_evaluated' will always evaluate to 'true' in a manifestly constant-evaluated expression}}
return0;elsereturn1;}constexprintfn3(){ifconstexpr(std::is_constant_evaluated()==false)// expected-warning {{'std::is_constant_evaluated' will always evaluate to 'true' in a manifestly constant-evaluated expression}}
return0;elsereturn1;}constexprintfn4(){ifconstexpr(__builtin_is_constant_evaluated()==true)// expected-warning {{'__builtin_is_constant_evaluated' will always evaluate to 'true' in a manifestly constant-evaluated expression}}
return0;elsereturn1;}constexprintfn5(){ifconstexpr(__builtin_is_constant_evaluated())// expected-warning {{'__builtin_is_constant_evaluated' will always evaluate to 'true' in a manifestly constant-evaluated expression}}
return0;elsereturn1;}constexprintnowarn1(){if(std::is_constant_evaluated())return0;elsereturn1;}constexprintnowarn2(){if(!__builtin_is_constant_evaluated())return0;elsereturn1;}