diff options
Diffstat (limited to 'gcc/except.c')
-rw-r--r-- | gcc/except.c | 12 |
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) |