int x; void f() { static int s; int x; const int N = 5; extern int q(); struct local { int g() { return x; } // error: odr-use of automatic variable x int h() { return s; } // OK int k() { return ::x; } // OK int l() { return q(); } // OK int m() { return N; } // OK: not an odr-use int* n() { return &N; } // error: odr-use of automatic variable N }; } local* p = 0; // error: local not in scope