/* Test for multiple declarations of an identifier at same block scope: only valid case is all extern. */ /* Origin: Joseph Myers */ /* { dg-do compile } */ /* { dg-options "" } */ void fa0 (void) { int a0; /* { dg-message "note: previous declaration" } */ int a0; /* { dg-error "redeclaration" } */ } void fa1 (void) { int a1; /* { dg-message "note: previous declaration" } */ static int a1; /* { dg-error "redeclaration" } */ } void fa2 (void) { int a2; /* { dg-message "note: previous declaration" } */ extern int a2; /* { dg-error "follows declaration with no linkage" } */ } void fa3 (void) { static int a3; /* { dg-message "note: previous declaration" } */ int a3; /* { dg-error "redeclaration" } */ } void fa4 (void) { static int a4; /* { dg-message "note: previous declaration" } */ static int a4; /* { dg-error "redeclaration" } */ } void fa5 (void) { static int a5; /* { dg-message "note: previous declaration" } */ extern int a5; /* { dg-error "follows declaration with no linkage" } */ } void fa6 (void) { extern int a6; /* { dg-message "note: previous declaration" } */ int a6; /* { dg-error "follows extern declaration" } */ } void fa7 (void) { extern int a7; /* { dg-message "note: previous declaration" } */ static int a7; /* { dg-error "follows extern declaration" } */ } void fa8 (void) { extern int a8; extern int a8; }