Hi, 

On October 26, 2019 6:06:07 AM PDT, Peter Eisentraut 
<peter.eisentr...@2ndquadrant.com> wrote:
>On 2019-10-10 00:52, Smith, Peter wrote:
>> I liked your idea of using an extern function declaration for
>implementing the file-scope compile-time asserts. AFAIK it is valid
>standard C.
>> 
>> Thank you for the useful link to that compiler explorer. I tried many
>scenarios of the new StaticAssertDecl and all seemed to work ok.
>> https://godbolt.org/z/fDrmXi
>> 
>> The patch has been updated accordingly. All assertions identified in
>the original post are now adjacent the global variables they are
>asserting. 
>> 
>
>The problem with this implementation is that you get a crappy error
>message when the assertion fails, namely something like:
>
>../../../../src/include/c.h:862:84: error: size of array
>'static_assert_failure' is negative

My proposal for this really was just to use this as a fallback for when static 
assert isn't available. Which in turn I was just suggesting because Tom wanted 
a fallback.


>Ideally, the implementation should end up calling _Static_assert()
>somehow, so that we get the compiler's native error message.
>
>We could do a configure check for whether _Static_assert() works at
>file
>scope.  I don't know what the support for that is, but it seems to work
>in gcc and clang.

I think it should work everywhere that has static assert. So we should need a 
separate configure check.


Andres
-- 
Sent from my Android device with K-9 Mail. Please excuse my brevity.


Reply via email to