cgo: add C._Bool type

This fixes https://github.com/tinygo-org/tinygo/issues/3926.

While working on this I've found another bug: if C.bool is referenced
from within Go, it isn't available anymore on the C side. This is an
existing bug that also applies to float and double, but may be less
likely to be triggered there.
This bug is something to be fixed at a later time (it has something to
do with preprocessor defines).
This commit is contained in:
Ayke van Laethem
2023-09-22 18:21:12 +02:00
committed by Ron Evans
parent a896f7f218
commit 6ef8fcd537
2 changed files with 8 additions and 2 deletions
+4
View File
@@ -9,6 +9,7 @@ int mul(int, int);
#include <string.h>
#cgo CFLAGS: -DSOME_CONSTANT=17
#define someDefine -5 + 2 * 7
bool someBool;
*/
import "C"
@@ -56,6 +57,9 @@ func main() {
var goInt8 int8 = 5
var _ C.int8_t = goInt8
var _ bool = C.someBool
var _ C._Bool = C.someBool
// more globals
println("bool:", C.globalBool, C.globalBool2 == true)
println("float:", C.globalFloat)