This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Fix error in except.c:output_function_exception_table
- From: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- To: gcc-patches at gcc dot gnu dot org
- Date: Thu, 18 Sep 03 16:54:00 EDT
- Subject: Fix error in except.c:output_function_exception_table
Ada uses INTEGER_CST in addition to ADDR_EXPR, so we can't abort in
that case. This only affects code that used to abort and so is safe.
2003-09-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* except.c (output_function_exception_table): Adjust last change
to handle TYPE of INTEGER_CST.
*** except.c 18 Sep 2003 20:43:04 -0000 1.251
--- except.c 18 Sep 2003 20:52:07 -0000
*************** output_function_exception_table (void)
*** 3708,3717 ****
paths below go through assemble_integer, which would take
care of this for us. */
! if (TREE_CODE (type) != ADDR_EXPR)
abort ();
- type = TREE_OPERAND (type, 0);
- node = cgraph_varpool_node (type);
- if (node)
- cgraph_varpool_mark_needed_node (node);
}
--- 3708,3720 ----
paths below go through assemble_integer, which would take
care of this for us. */
! if (TREE_CODE (type) == ADDR_EXPR)
! {
! type = TREE_OPERAND (type, 0);
! node = cgraph_varpool_node (type);
! if (node)
! cgraph_varpool_mark_needed_node (node);
! }
! else if (TREE_CODE (type) != INTEGER_CST)
abort ();
}