https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102593
Jason Merrill <jason at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords|ice-on-valid-code |ice-on-invalid-code CC| |jakub at gcc dot gnu.org, | |jason at gcc dot gnu.org --- Comment #2 from Jason Merrill <jason at gcc dot gnu.org> --- I'm not entirely clear on the restrictions on the var-list argument, but "t.a" can't be valid: "t" is a type, not an expression. cp_parser_omp_var_list_no_open mysteriously goes out of its way to accept it anyway: if (identifier_p (name)) decl = cp_parser_lookup_name_simple (parser, name, token->location); this lookup will return any kind of decl. I don't know what this code is trying to allow, but the effect is to build a nonsense COMPONENT_REF which understandably confuses later code.