This is valid:
```
static int x;
extern int x;
```
This is not:
```
extern int x;
static int x;
```
This makes perfect sense so far.
I am currently trying to figure out where exactly in the standard this is disallowed:
```
void f() { extern int x; }
void g() { extern long x; }
```
