Identifiers for objects and functions declared within a block
and with the storage class extern
have the same linkage as any visible declaration with file scope.
If there is no visible declaration with file scope, the identifier
has external linkage, and the definition remains visible until the
end of the translation unit.
However, because this is an extension to ANSI C, a warning
will be issued on subsequent uses of the identifier if the absence
of this extended visibility could cause a change in behavior on
a port to another conforming implementation.