https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83000
--- Comment #7 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Martin Liška from comment #6) > $ g++ --version > g++ (GCC) 12.0.0 20211208 (experimental) > > $ g++ pr83000.C -c -fconcepts > pr83000.C: In function ‘int main()’: > pr83000.C:6:18: error: template constraint failure for ‘template<class T> > requires sizeof (T) > 1 union Test’ > 6 | Test<char> x; > | ^ > pr83000.C:6:18: note: constraints not satisfied > pr83000.C: In substitution of ‘template<class T> requires sizeof (T) > 1 > union Test [with T = char]’: > pr83000.C:6:18: required from here > pr83000.C:3:11: required by the constraints of ‘template<class T> > requires sizeof (T) > 1 union Test’ > pr83000.C:2:25: note: the expression ‘sizeof (T) > 1 [with T = char]’ > evaluated to ‘false’ > 2 | requires (sizeof(T) > 1) > | ~~~~~~~~~~~^~~~ Right, it is supposed to be rejected like that as sizeof(char) < 1 is false. GCC 9 accepted the code.