Web lists-archives.com

Re: Weird mismatch between cdefs and stdatomic




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.

Attachment: signature.asc
Description: OpenPGP digital signature