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.

Reply via email to