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.