[Bug ada/19600] [4.0 Regression] All acats tests fail

ebotcazou at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Tue Jan 25 17:24:00 GMT 2005


------- 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



More information about the Gcc-bugs mailing list