On Thursday 12 January 2006 14:38, Richard Henderson wrote: > Why would we be trying to fold OMP_SINGLE? > The Fortran FE is doing that when building the IL:
#4 0x080a3b9d in gfc_add_expr_to_block (block=0xbfffe898, expr=0xb7ee4bac) at /home/dnovillo/gomp/src/gcc/fortran/trans.c:365 360 361 if (expr == NULL_TREE || IS_EMPTY_STMT (expr)) 362 return; 363 364 if (TREE_CODE (expr) != STATEMENT_LIST) 365 expr = fold (expr); 366 One obvious workaround is to check for OMP directives here, but in general nothing stops a function from calling fold() on any arbitrary expression. Admittedly, the fortran FE is the only doing this in such a seemingly non-sensical way.