This is the mail archive of the gcc-patches@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]

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 ();
  	}
  


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