Openwall GNU/*/Linux - a small security-enhanced Linux distro for servers
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Fri, 28 Jul 2017 22:21:10 +1200
From: Michael Clark <michaeljclark@....com>
To: musl@...ts.openwall.com
Subject: stdbool.h does not define _Bool when included by C++ code

Hi,

I noticed an issue with the musl headers when installing compiler-explorer for RISC-V. Try compiling this code with g++ and musl's stdbool.h

	- https://cx.rv8.io/g/Bc3AwY <https://cx.rv8.io/>

Compiler explorer uses the C++ front-end to the compiler by default

It seems the musl stdbool.h defines bool in terms of _Bool for C, but does not define _Bool in terms of bool for C++.

The gcc stdbool.h header handles both conditions and when included by C++ code it has #define _Bool bool but notes that it is a GNU extension.

My workaround was to delete the musl stdbool.h so that the GCC version is included, but it seems the header could work for C code passed through the C++ front-end with a small patch (attached). The other musl headers seem to support C++, so I think it might be nice to fix stdbool.h for C code compiled through the C++ front-end. Of course C++ code needs casts on malloc and there are several other differences such as new reserved words, however for the most part, a lot of C code can compile using the C++ front-end.

Michael


Content of type "text/html" skipped

Download attachment "musl-stdbool-cplusplus.patch" of type "application/octet-stream" (267 bytes)

Content of type "text/html" skipped

Powered by blists - more mailing lists

Your e-mail address:

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.