------- Comment #4 from jakub at gcc dot gnu dot org 2008-01-28 12:34 ------- Not folding CALL_EXPRs would introduce a regression on g++.dg/opt/devirt1.C, after all fold_marked_statements has been added exactly to fix that regression: http://gcc.gnu.org/ml/gcc-patches/2007-01/msg00165.html
Regarding the helper function, do you mean a wrapper around fold_stmt which will do the cgraph edge updates? As fold_stmt can change the whole stmt, the helper function needs to know the old as well as new statement to do the updates. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34969