/* Test for shadowing and linkage of file-scope "static" and block-scope "extern" declarations */ static int g(int x); /* Generated functions with internal linkage are not always kept in cc65 */ int main(void) { char f = 'f'; /* Shadows global "int f(void)" (if any) */ char c = 'c'; /* Shadows global "int c" (if any) */ { void* f = 0; /* Shadows local "char f" */ void* c = 0; /* Shadows local "char c" */ { int f(void); /* Shadows local "char f" and "void* f" */ extern int g(int); /* Shadows global "int g(int x)" */ extern int c; /* Shadows local "char c" and "void* c" */ return f() ^ g(c); /* Link to global "int g(int x)" */ } } } int c = 42; int f(void) { return 42; } int g(int x) { return x; }