Offset of globals in linking time.

Ali Çehreli acehreli at yahoo.com
Mon Feb 4 13:15:41 PST 2013


On 02/04/2013 12:16 PM, JDavidls wrote:
> Hi
>
> I need to initialize a global variable with a pointer to another global
> variable but dmd compler raises an error:
>
> uint a = 5;
> uint* p = &a; // error: non-constant expression & a
> const uint* cp = &a; // error: non-constant expression & a
>
> All C compilers support this assignation ¿whi dlang cannot?
>
> I think this is a great limitation for writing huge dependent of
> initial-state defined program as a virtual machine (in this case).
>
> ---
>
> Just try it with ldc, appears to work. I'm also compiling gdc for test
> with it.
>
>
> Thanks,

Another option is to initialize in a 'static this()' block:

uint a = 5;
uint* p;
const uint* cp;

static this()
{
     p = &a;
     cp = &a;
}

Ali


More information about the Digitalmars-d mailing list