------- Additional Comments From ebotcazou at gcc dot gnu dot org  2005-01-25 
17:24 -------
> This looks like wrong code as nothing in the ada front-end/testsuite changed.

Confirmed.

> Here are the only changes that might have an effect (on targets since it seems
> like it was all targets where this happens):

It's actually

2005-01-21  Ian Lance Taylor  <ian@airs.com>

        PR tree-optimization/13000
        * tree-inline.c: Include "tree-flow.h".
        (expand_call_inline): If warn_return_type, warn if non-void inline
        function falls through.
        * tree-cfg.c (execute_warn_function_return): Don't warn about
        control reaching end if TREE_NO_WARNING is set.  Set
        TREE_NO_WARNING.
        * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
        has been lowered.
        * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
        branch if we don't need one.
        * c-typeck.c: Include "tree-flow.h"
        (c_finish_bc_stmt): Don't add a goto if the current statement
        list doesn't fall through to the current point.

and most notably

        * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
        branch if we don't need one.


For these lines in make.adb:Scan_Make_Arg:

      elsif Argv = "-bargs"
              or else
            Argv = "-cargs"
              or else
            Argv = "-largs"
              or else
            Argv = "-margs"
      then
         case Argv (2) is
            when 'c' => Program_Args := Compiler;
            when 'b' => Program_Args := Binder;
            when 'l' => Program_Args := Linker;
            when 'm' => Program_Args := None;

            when others =>
               raise Program_Error;
         end case;

      --  A special test is needed for the -o switch within a -largs
      --  since that is another way to specify the name of the final
      --  executable.

      elsif Program_Args = Linker
        and then Argv = "-o"
      then
         Make_Failed ("switch -o not allowed within a -largs. " &
                      "Use -o directly.");

      --  Check to see if we are reading switches after a -cargs,
      --  -bargs or -largs switch. If yes save it.

      elsif Program_Args /= None then

         --  Check to see if we are reading -I switches in order
         --  to take into account in the src & lib search directories.

the flow-of-control fallthrus through the latter 2 'elsif's.


-- 


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

Reply via email to