http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60469
Igor Zamyatin <izamyatin at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |izamyatin at gmail dot com --- Comment #2 from Igor Zamyatin <izamyatin at gmail dot com> --- ICE could be seen even for void foo() { asm("" ::: "memory"); } #define ALEN 1024 int main(int argc, char* argv[]) { int b[ALEN]; b[:] = 100; _Cilk_spawn foo(); return 0; } The "bad" VAR_DECL here is the initial variable for the loop that is created during array annotation expression expanding. The problem seems to be in the way how this var_decl is created. For C++ case create_temp_var is used where DECL_CONTEXT is set up. For C case build_decl is used where no DECL_CONTEXT is filled