Diag(Old->getLocation(), diag::err_previous_definition);
return New;
}
- // File scoped variables are analyzed in FinalizeDeclaratorGroup.
- if (!New->isFileVarDecl()) {
+ // Variables with external linkage are analyzed in FinalizeDeclaratorGroup.
+ if (New->getStorageClass() != VarDecl::Extern && !New->isFileVarDecl()) {
Diag(New->getLocation(), diag::err_redefinition, New->getName());
Diag(Old->getLocation(), diag::err_previous_definition);
}
extern int i1; // expected-error{{previous definition is here}}
static int i1; // expected-error{{static declaration of 'i1' follows non-static declaration}}
}
+
+void func2(void)
+{
+ extern double *p;
+ extern double *p;
+}