------- Comment #7 from jakub at gcc dot gnu dot org  2008-08-11 18:38 -------
I think the options are:
1) handle TRUTH_{AND,OR}IF_EXPR in expand_expr again (revert part of Paolo's
   2004-08-09 expr.c "dead" code removals) - while these aren't present
   in GIMPLE nor can be created by TER, they can be created by folding during
   expansion.  Maybe even COMPOUND_EXPR could be handled there and all the
   ugly hacks builtins.c does to work around this could be removed.
2) have a special flag for fold-const.c, set during expansion, that would
   preclude certain kinds of folding (e.g. creation of the trees that aren't
   handled by the expander)
3) have expand's special versions of the various fold* routines, look for the
   unhandled trees in what it creates and either fail to fold them, or
transform
   to something else.

IMHO 1) would be probably easiest to implement, 3) too ugly to live, 2)
possible.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37014

Reply via email to