summaryrefslogtreecommitdiff
path: root/gcc/except.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/except.c')
-rw-r--r--gcc/except.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/gcc/except.c b/gcc/except.c
index 6745dd1bd5e..220835e1475 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -3707,12 +3707,14 @@ output_function_exception_table (void)
/* Let cgraph know that the rtti decl is used. Not all of the
paths below go through assemble_integer, which would take
care of this for us. */
- if (TREE_CODE (type) != ADDR_EXPR)
+ if (TREE_CODE (type) == ADDR_EXPR)
+ {
+ node = cgraph_varpool_node (type);
+ if (node)
+ cgraph_varpool_mark_needed_node (node);
+ }
+ else if (TREE_CODE (type) != INTEGER_CST)
abort ();
- type = TREE_OPERAND (type, 0);
- node = cgraph_varpool_node (type);
- if (node)
- cgraph_varpool_mark_needed_node (node);
}
if (tt_format == DW_EH_PE_absptr || tt_format == DW_EH_PE_aligned)