Re: undefined behaviour findings in bitset

2019-03-18 Thread Akim Demaille
Hi Bruno, > Le 18 mars 2019 à 22:03, Bruno Haible a écrit : > > Hi Akim, > >> Also, the relationship with noreturn.h is not completely clear for >> me either. > > There are a couple of comment in noreturn.h lines 33..41. But I agree, > some text in the documentation would be better. > >> Clan

Re: make signal handlers more reliable

2019-03-18 Thread Bruno Haible
Hi Paul, > Thanks, I like the idea of marking signal handlers, presumably for use > by static checkers later. And it's nice that you found the bug in c-stack. Thanks. > Did you use static checking to find the bug? No. The signal handlers are so small in size that I could afford to review their

Re: make signal handlers more reliable

2019-03-18 Thread Paul Eggert
Thanks, I like the idea of marking signal handlers, presumably for use by static checkers later. And it's nice that you found the bug in c-stack. Did you use static checking to find the bug? Is there some reasonable way to cajole GCC into doing this checking?

make signal handlers more reliable

2019-03-18 Thread Bruno Haible
Here is a proposed patch to make signal handlers defined in and outside of gnulib more reliable. Signal handlers are forbidden to call specific POSIX functions (such as malloc(), strdup(), and sprintf()), and there are also recommendations regarding 'volatile'. To make things more reliable, this p

Re: undefined behaviour findings in bitset

2019-03-18 Thread Bruno Haible
Hi Akim, > Also, the relationship with noreturn.h is not completely clear for > me either. There are a couple of comment in noreturn.h lines 33..41. But I agree, some text in the documentation would be better. > Clang 7 pretends to be GCC 4.2 (__GNUC__ __GNUC_MINOR__). > For instance I see it a

Re: undefined behaviour findings in bitset

2019-03-18 Thread Akim Demaille
Le 17 mars 2019 à 20:27, Bruno Haible a écrit :Hi Akim,But GCC 4.7 does not support [[noreturn]] yet, even in gnu++11 mode.I need something like the following changes.-# if 201103 <= (defined __cplusplus ? __cplusplus : 0)+# if (201103 <= (defined __cplusplus ? __cplusplus : 0) \+  && 4 < __GN