https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96837
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- The standard describes in detail what parallel if (false) creates, and what the various APIs should return for that. It does create a parallel region, albeit an inactive one. So, e.g. for the question whether threadprivate needs to be preserved between parallel regions with the same number of threads etc. if they are nested in an explicit inactive parallel, the answer is no.