[Issue 24435] [ImportC] Compilation fails when casting to struct defined in separate file

d-bugmail at puremagic.com d-bugmail at puremagic.com
Tue Mar 26 14:48:25 UTC 2024


https://issues.dlang.org/show_bug.cgi?id=24435

--- Comment #1 from Lance Bachmeier <lance at lancebachmeier.com> ---
This is a preprocessor problem with the typedef. The following works:

structdef.c

typedef struct foo_ {
        int a;
        double b;
} foo;

structtest.c

#include <stdio.h>
#include <stdlib.h>

__import structdef;

int main() {
        int * x = (int *) malloc(2*sizeof(int));
        x[0] = 1;
        x[1] = 2;
        printf("%d\n", x[0]);
        printf("%d\n", x[1]);

        // Works
        foo * y = (struct foo_ *) malloc(sizeof(foo));
        // Fails to compile because it's imported and typedef'd
        foo * y = (foo *) malloc(sizeof(foo));
}

--


More information about the Digitalmars-d-bugs mailing list