}
}
+ /* If a static declaration follows a non-static declaration, then
+ ** warn about the conflict. (It will compile a public declaration.)
+ */
+ if ((Flags & SC_EXTERN) == 0 && (Entry->Flags & SC_EXTERN) != 0) {
+ Warning ("static declaration follows non-static declaration of `%s'.", Name);
+ }
+
+ /* An extern declaration must not change the current linkage. */
+ if (IsFunc || (Flags & (SC_EXTERN | SC_STORAGE)) == SC_EXTERN) {
+ Flags &= ~SC_EXTERN;
+ }
+
+ /* If a public declaration follows a static declaration, then
+ ** warn about the conflict. (It will compile a public declaration.)
+ */
+ if ((Flags & SC_EXTERN) != 0 && (Entry->Flags & SC_EXTERN) == 0) {
+ Warning ("public declaration follows static declaration of `%s'.", Name);
+ }
+
/* Add the new flags */
Entry->Flags |= Flags;