[Bug c/111269] location for non-constant expressions inside static assert could be better
alx at kernel dot org
gcc-bugzilla@gcc.gnu.org
Sat Sep 2 00:29:31 GMT 2023
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111269
--- Comment #2 from Alejandro Colomar <alx at kernel dot org> ---
Hi Andrew,
On 2023-09-01 18:55, pinskia at gcc dot gnu.org wrote:
> It is pointing to the whole expression and just the outermost operator, || .
That's what I suspected.
>
> Now the C++ front-end gives a better location and information on why it is not
> a constant expression:
> <source>: In function 'int main()':
> <source>:11:26: error: non-constant condition for static assertion
> 11 | _Static_assert(0 || 7 > x, "");
> | ~~^~~~~~~~
> <source>:11:33: error: the value of 'x' is not usable in a constant expression
> 11 | _Static_assert(0 || 7 > x, "");
> | ^
> <source>:9:13: note: 'int x' is not const
> 9 | int x = 42;
> | ^
>
>
> The C front-end could do better ...
Yep, g++ seems good here. If it's something easy that I could do, I'd
love some pointer to the code I should look at to do the same that the
C++ front end does.
Cheers,
Alex
More information about the Gcc-bugs
mailing list