Hi!

I've been confused for some time with a compilation error that
pointed to a slightly-off location.  I wasn't seeing that I used
a temporary variable in a constant expression.  The code could be
reduced to:

$ cat const.c 
int
main(void)
{
        int x = 42;

        _Static_assert(0 || 7 > x, "");
}
$ cc -Wall -Wextra const.c 
const.c: In function ‘main’:
const.c:6:26: error: expression in static assertion is not constant
    6 |         _Static_assert(0 || 7 > x, "");
      |                        ~~^~~~~~~~


I think the appropriate error report should point to this other point:


    6 |         _Static_assert(0 || 7 > x, "");
      |                        ~~~~~~~~~^

Cheers,
Alex

-- 
<http://www.alejandro-colomar.es/>
GPG key fingerprint: A9348594CE31283A826FBDD8D57633D441E25BB5

Attachment: OpenPGP_signature
Description: OpenPGP digital signature

Reply via email to