Hi Tobias, Thanks for your review. Here is a revised patch resulting from your comments. The only issue that I could not easily fix is the following code triggering an ICE: ``` !$OMP begin metadirective & !$OMP when ( user = { condition ( UseDevice ) } & !$OMP : nothing ) & !$OMP default ( parallel ) block call foo() end block call bar() <--- ICE !$omp end metadirective ``` I filed a PR on Bugzilla: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107067 Is it OK for you? -- PA