This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

patch that caused regression PR c/8602


PR c/8602 is for a regression that showed up starting in GCC 3.1
and exists in the mainline and the 3.2 and 3.3 branches.  It was
introduced with this patch:

--- gcc/ChangeLog ---

2000-10-05  Richard Henderson  <rth@cygnus.com>

      * c-decl.c (warn_missing_noreturn): Remove.
      (c_expand_body): Don't set or check can_reach_end.
      * c-tree.h (warn_missing_noreturn): Move ...
      * flags.h: ... here.
      (can_reach_end): Remove.
      * flow.c (check_function_return_warnings): New.
      (make_edges): No edge to exit for noreturn sibcalls.
      * function.c (expand_function_end): Save the return value
      clobber instruction.
      (mark_function_status): Mark it.
      * function.h (struct function): Add x_clobber_return_insn.
      * jump.c (can_reach_end): Remove.
      (calculate_can_reach_end): Remove.
      (jump_optimize_1): Don't call it.
      * output.h (check_function_return_warnings): Declare.
      * toplev.c (warn_missing_noreturn): Move from c-decl.c
      (rest_of_compilation): Call check_function_return_warnings.

The bug is that a warning uses the incorrect line number for an
inline function.  The PR has a small test case.

This information has been added to GNATS.

Janis


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]