------- Comment #1 from jakub at gcc dot gnu dot org  2008-04-22 19:53 -------
4.2 would recreate the call:

      /* Wrap the computation of the argument in a SAVE_EXPR, as we may
         need to expand the argument again.  This way, we will not perform
         side-effects more the once.  */
      narg = builtin_save_expr (arg);
      if (narg != arg)
        {
          arg = narg;
          arglist = build_tree_list (NULL_TREE, arg);
          exp = build_function_call_expr (fndecl, arglist);
        }

and thus the CALL_EXPR_TAILCALL bit would be lost.  Now if target = expand_unop
(mode, builtin_optab, op0, target, 0); fails, then it is certainly better to
preserve the CALL_EXPR_TAILCALL bit.  But for the errno check we need to either
clear it, or branch to (return).


-- 


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

Reply via email to