https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85063
--- Comment #5 from Tom de Vries <vries at gcc dot gnu.org> --- > Switch conversion triggers for this example, which introduces > a function static var, Hmm, that was my impression from PR84592 comment 5, and the comments in tree-switch-conversion.c. When I compile this example, the only relevant difference I can observe is DECL_CONTEXT: ... static int a; void foo (void) { static int b; } ... For variable a, DECL_CONTEXT starts out NULL, and then becomes the translation unit decl during parsing. For variable, DECL_CONTEXT is foo. When I debug an example that triggers switch conversion the DECL_CONTEXT for CSWTCH.x is NULL, and remains like that. So, in the end, I'm not quite sure whether I can say that CSWTCH.x is a file or function scope static.