Serious extern(C) bug
growler
growlercab at gmail.com
Tue Sep 24 21:35:34 PDT 2013
On Wednesday, 25 September 2013 at 04:13:02 UTC, Luís Marques
wrote:
> Have you seen this one before? Do you know a workaround? (DMD
> v2.063.2, on OX X 10.9)
>
> file.d:
>
> extern(C)
> {
> int x = 0;
> void setx();
> void printx();
> }
>
> void main()
> {
> setx(); // sets x = 42
> writeln(x); // prints x = 0
> printx(); // prints x = 42
> x = 7;
> printx(); // prints x = 42
> }
>
>
>
> file.c:
>
> #include <stdio.h>
>
> extern int x;
>
> void setx()
> {
> x = 42;
> }
>
> void printx()
> {
> printf("%d\n", x);
> }
>
> Output:
>
> 0
> 42
> 42
don't you need extern __gshared on the var?
extern __gshared int x;
More information about the Digitalmars-d
mailing list