This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Problems with __eh_pc in egcs-971206
- To: g++ at cygnus dot com, egcs at cygnus dot com
- Subject: Problems with __eh_pc in egcs-971206
- From: Lee Iverson <leei at ai dot sri dot com>
- Date: Thu, 11 Dec 1997 08:20:10 -0800
- cc: Jason Merrill <jason at cygnus dot com>
- Reply-To: egcs at cygnus dot com
On SGI mips-sgi-irix6.3 the g++ front-end is generating references to
__eh_pc even though libgcc.a no longer contains this as a global
symbol. This seems to trace back to:
Wed Dec 3 12:01:56 1997 Jason Merrill <jason@yorick.cygnus.com>
* libgcc2.c (__throw): Use __builtin_return_addr instead of __eh_pc.
* except.c: Lose outer_context_label_stack.
(expand_eh_region_end): Rethrow from outer_context here.
(expand_fixup_region_end): Let expand_eh_region_end do the rethrow.
(expand_internal_throw): Take no args.
(expand_internal_throw_indirect): Lose.
(expand_leftover_cleanups, expand_start_all_catch): Use expand_rethrow.
(expand_start_all_catch): Start a rethrow region.
(expand_end_all_catch): End it.
(expand_rethrow): New fn.
* except.h: Reflect above changes.
* flow.c: Revert change of Nov 27.
and the lack of an exactly corresponding change in except.c:261
#ifndef DWARF2_UNWIND_INFO
d = build_decl (VAR_DECL, get_identifier ("__eh_pc"), ptr_type_node);
TREE_PUBLIC (d) = 1;
DECL_EXTERNAL (d) = 1;
DECL_ARTIFICIAL (d) = 1;
cp_finish_decl (d, NULL_TREE, NULL_TREE, 0, 0);
saved_pc = d;
#endif
-------------------------------------------------------------------------------
Lee Iverson SRI International
leei@ai.sri.com 333 Ravenswood Ave., Menlo Park CA 94025
http://www.ai.sri.com/~leei/ (650) 859-3307