gcc gives `error: initializer element is not computable at load time` for (bad type):

```
int x;
int y=&x; /* bad type */

```

but gcc compiles this fine (only `*` type declaration added):

```
int x;
int *y=&x;

```

What part of `&x` is not computable at load time? (Any cast in 1st src for gcc to compile?)

---

Edit: turns out gcc (v7 linux amd64) compiles this src, why? (change `int` to `long`):

```
int x;
long y=&x; /* bad type */

```

Edit2: gcc 32-bit compiles first src with `int`. I guess type coercion not done at compile-time?

Edit3: it is **a given** that unnecessary type "coercion" is bad src