This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
patch that caused regression PR c/8602
- From: Janis Johnson <janis187 at us dot ibm dot com>
- To: gcc at gcc dot gnu dot org, rth at redhat dot com
- Date: Wed, 15 Jan 2003 09:10:03 -0800
- Subject: 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