parent
c7b89fc411
commit
2878ea7352
|
@ -2218,7 +2218,7 @@ output_call_frame_info (int for_eh)
|
|||
&& for_eh)
|
||||
for (i = 0; i < fde_table_in_use; i++)
|
||||
if ((fde_table[i].nothrow || fde_table[i].all_throwers_are_sibcalls)
|
||||
&& !fde_table[i].uses_eh_lsda
|
||||
&& !fde_table[i].uses_eh_lsda
|
||||
&& ! DECL_WEAK (fde_table[i].decl))
|
||||
targetm.asm_out.unwind_label (asm_out_file, fde_table[i].decl,
|
||||
for_eh, /* empty */ 1);
|
||||
|
@ -2234,7 +2234,7 @@ output_call_frame_info (int for_eh)
|
|||
for (i = 0; i < fde_table_in_use; i++)
|
||||
if (fde_table[i].uses_eh_lsda)
|
||||
any_eh_needed = any_lsda_needed = true;
|
||||
else if (TARGET_USES_WEAK_UNWIND_INFO && DECL_WEAK (fde_table[i].decl))
|
||||
else if (TARGET_USES_WEAK_UNWIND_INFO && DECL_WEAK (fde_table[i].decl))
|
||||
any_eh_needed = true;
|
||||
else if (! fde_table[i].nothrow
|
||||
&& ! fde_table[i].all_throwers_are_sibcalls)
|
||||
|
@ -3838,14 +3838,14 @@ limbo_die_node;
|
|||
/* Fixed size portion of the address range info. */
|
||||
#define DWARF_ARANGES_HEADER_SIZE \
|
||||
(DWARF_ROUND (DWARF_INITIAL_LENGTH_SIZE + DWARF_OFFSET_SIZE + 4, \
|
||||
DWARF2_ADDR_SIZE * 2) \
|
||||
DWARF2_ADDR_SIZE * 2) \
|
||||
- DWARF_INITIAL_LENGTH_SIZE)
|
||||
|
||||
/* Size of padding portion in the address range info. It must be
|
||||
aligned to twice the pointer size. */
|
||||
#define DWARF_ARANGES_PAD_SIZE \
|
||||
(DWARF_ROUND (DWARF_INITIAL_LENGTH_SIZE + DWARF_OFFSET_SIZE + 4, \
|
||||
DWARF2_ADDR_SIZE * 2) \
|
||||
DWARF2_ADDR_SIZE * 2) \
|
||||
- (DWARF_INITIAL_LENGTH_SIZE + DWARF_OFFSET_SIZE + 4))
|
||||
|
||||
/* Use assembler line directives if available. */
|
||||
|
@ -7284,7 +7284,7 @@ output_compilation_unit_header (void)
|
|||
dw2_asm_output_data (4, 0xffffffff,
|
||||
"Initial length escape value indicating 64-bit DWARF extension");
|
||||
dw2_asm_output_data (DWARF_OFFSET_SIZE,
|
||||
next_die_offset - DWARF_INITIAL_LENGTH_SIZE,
|
||||
next_die_offset - DWARF_INITIAL_LENGTH_SIZE,
|
||||
"Length of Compilation Unit Info");
|
||||
dw2_asm_output_data (2, DWARF_VERSION, "DWARF version number");
|
||||
dw2_asm_output_offset (DWARF_OFFSET_SIZE, abbrev_section_label,
|
||||
|
@ -7389,7 +7389,7 @@ add_pubtype (tree decl, dw_die_ref die)
|
|||
else if (TREE_CODE (TYPE_NAME (decl)) == TYPE_DECL
|
||||
&& DECL_NAME (TYPE_NAME (decl)))
|
||||
e.name = IDENTIFIER_POINTER (DECL_NAME (TYPE_NAME (decl)));
|
||||
else
|
||||
else
|
||||
e.name = xstrdup ((const char *) get_AT_string (die, DW_AT_name));
|
||||
}
|
||||
}
|
||||
|
@ -8396,26 +8396,26 @@ is_subrange_type (tree type)
|
|||
&& tree_int_cst_equal (TYPE_MAX_VALUE (type), TYPE_MAX_VALUE (subtype)))
|
||||
{
|
||||
/* The type and its subtype have the same representation. If in
|
||||
addition the two types also have the same name, then the given
|
||||
type is not a subrange type, but rather a plain base type. */
|
||||
addition the two types also have the same name, then the given
|
||||
type is not a subrange type, but rather a plain base type. */
|
||||
/* FIXME: brobecker/2004-03-22:
|
||||
Sizetype INTEGER_CSTs nodes are canonicalized. It should
|
||||
therefore be sufficient to check the TYPE_SIZE node pointers
|
||||
rather than checking the actual size. Unfortunately, we have
|
||||
found some cases, such as in the Ada "integer" type, where
|
||||
this is not the case. Until this problem is solved, we need to
|
||||
keep checking the actual size. */
|
||||
Sizetype INTEGER_CSTs nodes are canonicalized. It should
|
||||
therefore be sufficient to check the TYPE_SIZE node pointers
|
||||
rather than checking the actual size. Unfortunately, we have
|
||||
found some cases, such as in the Ada "integer" type, where
|
||||
this is not the case. Until this problem is solved, we need to
|
||||
keep checking the actual size. */
|
||||
tree type_name = TYPE_NAME (type);
|
||||
tree subtype_name = TYPE_NAME (subtype);
|
||||
|
||||
if (type_name != NULL && TREE_CODE (type_name) == TYPE_DECL)
|
||||
type_name = DECL_NAME (type_name);
|
||||
type_name = DECL_NAME (type_name);
|
||||
|
||||
if (subtype_name != NULL && TREE_CODE (subtype_name) == TYPE_DECL)
|
||||
subtype_name = DECL_NAME (subtype_name);
|
||||
subtype_name = DECL_NAME (subtype_name);
|
||||
|
||||
if (type_name == subtype_name)
|
||||
return false;
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
@ -8438,16 +8438,16 @@ subrange_type_die (tree type, dw_die_ref context_die)
|
|||
if (int_size_in_bytes (TREE_TYPE (type)) != size_in_bytes)
|
||||
{
|
||||
/* The size of the subrange type and its base type do not match,
|
||||
so we need to generate a size attribute for the subrange type. */
|
||||
so we need to generate a size attribute for the subrange type. */
|
||||
add_AT_unsigned (subrange_die, DW_AT_byte_size, size_in_bytes);
|
||||
}
|
||||
|
||||
if (TYPE_MIN_VALUE (type) != NULL)
|
||||
add_bound_info (subrange_die, DW_AT_lower_bound,
|
||||
TYPE_MIN_VALUE (type));
|
||||
TYPE_MIN_VALUE (type));
|
||||
if (TYPE_MAX_VALUE (type) != NULL)
|
||||
add_bound_info (subrange_die, DW_AT_upper_bound,
|
||||
TYPE_MAX_VALUE (type));
|
||||
TYPE_MAX_VALUE (type));
|
||||
|
||||
return subrange_die;
|
||||
}
|
||||
|
@ -8795,9 +8795,9 @@ based_loc_descr (rtx reg, HOST_WIDE_INT offset)
|
|||
}
|
||||
gcc_assert (elim == (frame_pointer_needed ? hard_frame_pointer_rtx
|
||||
: stack_pointer_rtx));
|
||||
offset += frame_pointer_fb_offset;
|
||||
offset += frame_pointer_fb_offset;
|
||||
|
||||
return new_loc_descr (DW_OP_fbreg, offset, 0);
|
||||
return new_loc_descr (DW_OP_fbreg, offset, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -9277,7 +9277,7 @@ loc_descriptor_from_tree_1 (tree loc, int want_address)
|
|||
|
||||
if (rtl == NULL_RTX)
|
||||
return 0;
|
||||
else if (GET_CODE (rtl) == CONST_INT)
|
||||
else if (GET_CODE (rtl) == CONST_INT)
|
||||
{
|
||||
HOST_WIDE_INT val = INTVAL (rtl);
|
||||
if (TYPE_UNSIGNED (TREE_TYPE (loc)))
|
||||
|
@ -9528,13 +9528,13 @@ loc_descriptor_from_tree_1 (tree loc, int want_address)
|
|||
case MIN_EXPR:
|
||||
case MAX_EXPR:
|
||||
{
|
||||
const enum tree_code code =
|
||||
TREE_CODE (loc) == MIN_EXPR ? GT_EXPR : LT_EXPR;
|
||||
const enum tree_code code =
|
||||
TREE_CODE (loc) == MIN_EXPR ? GT_EXPR : LT_EXPR;
|
||||
|
||||
loc = build3 (COND_EXPR, TREE_TYPE (loc),
|
||||
loc = build3 (COND_EXPR, TREE_TYPE (loc),
|
||||
build2 (code, integer_type_node,
|
||||
TREE_OPERAND (loc, 0), TREE_OPERAND (loc, 1)),
|
||||
TREE_OPERAND (loc, 1), TREE_OPERAND (loc, 0));
|
||||
TREE_OPERAND (loc, 1), TREE_OPERAND (loc, 0));
|
||||
}
|
||||
|
||||
/* ... fall through ... */
|
||||
|
@ -9577,7 +9577,7 @@ loc_descriptor_from_tree_1 (tree loc, int want_address)
|
|||
/* Leave front-end specific codes as simply unknown. This comes
|
||||
up, for instance, with the C STMT_EXPR. */
|
||||
if ((unsigned int) TREE_CODE (loc)
|
||||
>= (unsigned int) LAST_AND_UNUSED_TREE_CODE)
|
||||
>= (unsigned int) LAST_AND_UNUSED_TREE_CODE)
|
||||
return 0;
|
||||
|
||||
#ifdef ENABLE_CHECKING
|
||||
|
@ -10137,7 +10137,7 @@ reference_to_unused (tree * tp, int * walk_subtrees,
|
|||
{
|
||||
struct cgraph_node *node = cgraph_node (*tp);
|
||||
if (!node->output)
|
||||
return *tp;
|
||||
return *tp;
|
||||
}
|
||||
|
||||
return NULL_TREE;
|
||||
|
@ -10461,7 +10461,7 @@ add_location_or_const_value_attribute (dw_die_ref die, tree decl,
|
|||
rtx varloc;
|
||||
|
||||
/* Now that we know what section we are using for a base,
|
||||
actually construct the list of locations.
|
||||
actually construct the list of locations.
|
||||
The first location information is what is passed to the
|
||||
function that creates the location list, and the remaining
|
||||
locations just get added on to that list.
|
||||
|
@ -11907,7 +11907,7 @@ gen_subprogram_die (tree decl, dw_die_ref context_die)
|
|||
{
|
||||
if (DECL_DECLARED_INLINE_P (decl))
|
||||
{
|
||||
if (cgraph_function_possibly_inlined_p (decl))
|
||||
if (cgraph_function_possibly_inlined_p (decl))
|
||||
add_AT_unsigned (subr_die, DW_AT_inline, DW_INL_declared_inlined);
|
||||
else
|
||||
add_AT_unsigned (subr_die, DW_AT_inline, DW_INL_declared_not_inlined);
|
||||
|
@ -11915,9 +11915,9 @@ gen_subprogram_die (tree decl, dw_die_ref context_die)
|
|||
else
|
||||
{
|
||||
if (cgraph_function_possibly_inlined_p (decl))
|
||||
add_AT_unsigned (subr_die, DW_AT_inline, DW_INL_inlined);
|
||||
add_AT_unsigned (subr_die, DW_AT_inline, DW_INL_inlined);
|
||||
else
|
||||
add_AT_unsigned (subr_die, DW_AT_inline, DW_INL_not_inlined);
|
||||
add_AT_unsigned (subr_die, DW_AT_inline, DW_INL_not_inlined);
|
||||
}
|
||||
|
||||
equate_decl_number_to_die (decl, subr_die);
|
||||
|
@ -12109,13 +12109,13 @@ gen_variable_die (tree decl, dw_die_ref context_die)
|
|||
the program. For example, consider the C++
|
||||
test case:
|
||||
|
||||
template <class T>
|
||||
struct S { static const int i = 7; };
|
||||
template <class T>
|
||||
struct S { static const int i = 7; };
|
||||
|
||||
template <class T>
|
||||
const int S<T>::i;
|
||||
template <class T>
|
||||
const int S<T>::i;
|
||||
|
||||
int f() { return S<int>::i; }
|
||||
int f() { return S<int>::i; }
|
||||
|
||||
Here, S<int>::i is not DECL_EXTERNAL, but no
|
||||
definition is required, so the compiler will
|
||||
|
@ -13622,7 +13622,7 @@ dwarf2out_decl (tree decl)
|
|||
if (debug_info_level <= DINFO_LEVEL_TERSE)
|
||||
return;
|
||||
if (lookup_decl_die (decl) != NULL)
|
||||
return;
|
||||
return;
|
||||
break;
|
||||
|
||||
case TYPE_DECL:
|
||||
|
@ -14215,9 +14215,9 @@ prune_unused_types_mark (dw_die_ref die, int dokids)
|
|||
prune_unused_types_walk_attribs (die);
|
||||
|
||||
/* If this node is a specification,
|
||||
also mark the definition, if it exists. */
|
||||
also mark the definition, if it exists. */
|
||||
if (get_AT_flag (die, DW_AT_declaration) && die->die_definition)
|
||||
prune_unused_types_mark (die->die_definition, 1);
|
||||
prune_unused_types_mark (die->die_definition, 1);
|
||||
}
|
||||
|
||||
if (dokids && die->die_mark != 2)
|
||||
|
|
Loading…
Reference in New Issue