Is the following allowed by the standard?

```
#include <iostream>

extern int a;
auto a = 3;

int main(int, char**)
{
    std::cout << a << std::endl;
    return 0;
}

```

[clang](http://melpon.org/wandbox/permlink/FSxXLayFv9fGwU5u) accepts the code.
[g++](http://melpon.org/wandbox/permlink/EveSqAvJokWKOG4G) complains for conflicting declaration.