https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99137
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- ice-on-invalid-code is when an error should be reported and instead of that the compiler crashes. ice-on-valid-code is when the code should compile without errors (perhaps with warnings, and not considering warnings promoted to errors) but the compiler crashes on it instead. I have no idea what OpenACC says about this if anything, in OpenMP we've clarified that in clauses all the expressions in the grammar except a few explicitly mentioned cases are assignment expressions and so commas should appear there only nested, like schedule(static, (1, 2)) is valid, while schedule(static, 1, 2) is invalid. "Each of the expressions used in the OpenMP syntax inside of the clauses must be a valid assignment-expression of the base language unless otherwise specified."