The addresses of items stored in memory are by definition not constant. This isn't a bug.
If so why this can work ?
```d struct c { uint a, b;} __gshared const c d = { 3, 4}; __gshared const e = & d; ```the `e` can get address of `d`, then it should be to get address of `d.a`