https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71536
Alexander Monakov <amonakov at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |amonakov at gcc dot gnu.org --- Comment #1 from Alexander Monakov <amonakov at gcc dot gnu.org> --- The ICE triggers when the static variable is optimized out. This passes: #pragma omp declare target void foo () { static int __attribute__((used)) v; } #pragma omp end declare target int main() { #pragma omp target foo(); } With s/used/unused/ it ICEs.