On 28.01.2019 17:02, LRN wrote: > This[0] and this[1]. One header checks for atomic C/CXX extensions *and* for > the presence of a C++ compiler, while the other only checks for extensions. > > The result is that the _Atomic() macro is *not* defined in cdefs.h when > compiled with C++, but the stdatomic.h atomic macros assume that it is, and > try > to access the "__val" struct member, with predictable and sad results. > > I just stumbled upon this while compiling OpenSSL, and wanted to see if anyone > else encountered this problem. >
There is also a "!defined(__STDC_VERSION__) || __STDC_VERSION__ < 201112L" condition in cdefs.h that is not reproduced in stdatomic.h. So my initial guess seems to have been incorrect - it's not about C vs C++ compiler, it's about C11 vs C99 compiler modes.
signature.asc
Description: OpenPGP digital signature