Stimmt eine Deklaration mit "auto" mit einer externen Deklaration überein, die einen konkreten Typbezeichner verwendet?

Betrachten Sie das folgende Programm:

extern int x;
auto x = 42;
int main() { }

Clang 3.5 akzeptiert es Live-Demo), GCC 4.9 und VS2013 nicht Live-Demo für die ehemalige). Wer hat Recht und wo ist das richtige Verhalten im C ++ Standard festgelegt?