Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
2878ea73
Commit
2878ea73
authored
Apr 06, 2007
by
Mike Stump
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Cleanup whitespacing
From-SVN: r123536
parent
c7b89fc4
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
100 additions
and
100 deletions
+100
-100
gcc/dwarf2out.c
+100
-100
No files found.
gcc/dwarf2out.c
View file @
2878ea73
...
...
@@ -468,13 +468,13 @@ expand_builtin_init_dwarf_reg_sizes (tree address)
for
(
i
=
0
;
i
<
FIRST_PSEUDO_REGISTER
;
i
++
)
{
int
rnum
=
DWARF2_FRAME_REG_OUT
(
DWARF_FRAME_REGNUM
(
i
),
1
);
if
(
rnum
<
DWARF_FRAME_REGISTERS
)
{
HOST_WIDE_INT
offset
=
rnum
*
GET_MODE_SIZE
(
mode
);
enum
machine_mode
save_mode
=
reg_raw_mode
[
i
];
HOST_WIDE_INT
size
;
if
(
HARD_REGNO_CALL_PART_CLOBBERED
(
i
,
save_mode
))
save_mode
=
choose_hard_reg_mode
(
i
,
1
,
true
);
if
(
DWARF_FRAME_REGNUM
(
i
)
==
DWARF_FRAME_RETURN_COLUMN
)
...
...
@@ -486,7 +486,7 @@ expand_builtin_init_dwarf_reg_sizes (tree address)
size
=
GET_MODE_SIZE
(
save_mode
);
if
(
offset
<
0
)
continue
;
emit_move_insn
(
adjust_address
(
mem
,
mode
,
offset
),
gen_int_mode
(
size
,
mode
));
}
...
...
@@ -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
)
...
...
@@ -2422,9 +2422,9 @@ output_call_frame_info (int for_eh)
"FDE initial location"
);
if
(
fde
->
dw_fde_switched_sections
)
{
rtx
sym_ref2
=
gen_rtx_SYMBOL_REF
(
Pmode
,
rtx
sym_ref2
=
gen_rtx_SYMBOL_REF
(
Pmode
,
fde
->
dw_fde_unlikely_section_label
);
rtx
sym_ref3
=
gen_rtx_SYMBOL_REF
(
Pmode
,
rtx
sym_ref3
=
gen_rtx_SYMBOL_REF
(
Pmode
,
fde
->
dw_fde_hot_section_label
);
SYMBOL_REF_FLAGS
(
sym_ref2
)
|=
SYMBOL_FLAG_LOCAL
;
SYMBOL_REF_FLAGS
(
sym_ref3
)
|=
SYMBOL_FLAG_LOCAL
;
...
...
@@ -2462,7 +2462,7 @@ output_call_frame_info (int for_eh)
dw2_asm_output_addr
(
DWARF2_ADDR_SIZE
,
fde
->
dw_fde_unlikely_section_label
,
"FDE initial location"
);
dw2_asm_output_delta
(
DWARF2_ADDR_SIZE
,
dw2_asm_output_delta
(
DWARF2_ADDR_SIZE
,
fde
->
dw_fde_unlikely_section_end_label
,
fde
->
dw_fde_unlikely_section_label
,
"FDE address range"
);
...
...
@@ -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. */
...
...
@@ -4347,7 +4347,7 @@ static int maybe_emit_file (struct dwarf_file_data *fd);
static
char
text_end_label
[
MAX_ARTIFICIAL_LABEL_BYTES
];
static
char
text_section_label
[
MAX_ARTIFICIAL_LABEL_BYTES
];
static
char
cold_text_section_label
[
MAX_ARTIFICIAL_LABEL_BYTES
];
static
char
cold_end_label
[
MAX_ARTIFICIAL_LABEL_BYTES
];
static
char
cold_end_label
[
MAX_ARTIFICIAL_LABEL_BYTES
];
static
char
abbrev_section_label
[
MAX_ARTIFICIAL_LABEL_BYTES
];
static
char
debug_info_section_label
[
MAX_ARTIFICIAL_LABEL_BYTES
];
static
char
debug_line_section_label
[
MAX_ARTIFICIAL_LABEL_BYTES
];
...
...
@@ -4863,7 +4863,7 @@ block_ultimate_origin (tree block)
?
BLOCK_ABSTRACT_ORIGIN
(
ret_val
)
:
NULL
);
}
while
(
lookahead
!=
NULL
&&
lookahead
!=
ret_val
);
/* The block's abstract origin chain may not be the *ultimate* origin of
the block. It could lead to a DECL that has an abstract origin set.
If so, we want that DECL's abstract origin (which is what DECL_ORIGIN
...
...
@@ -4906,7 +4906,7 @@ add_dwarf_attr (dw_die_ref die, dw_attr_ref attr)
/* Maybe this should be an assert? */
if
(
die
==
NULL
)
return
;
if
(
die
->
die_attr
==
NULL
)
die
->
die_attr
=
VEC_alloc
(
dw_attr_node
,
gc
,
1
);
VEC_safe_push
(
dw_attr_node
,
gc
,
die
->
die_attr
,
attr
);
...
...
@@ -5345,7 +5345,7 @@ get_AT (dw_die_ref die, enum dwarf_attribute attr_kind)
else
if
(
a
->
dw_attr
==
DW_AT_specification
||
a
->
dw_attr
==
DW_AT_abstract_origin
)
spec
=
AT_ref
(
a
);
if
(
spec
)
return
get_AT
(
spec
,
attr_kind
);
...
...
@@ -5443,7 +5443,7 @@ static inline bool
is_cxx
(
void
)
{
unsigned
int
lang
=
get_AT_unsigned
(
comp_unit_die
,
DW_AT_language
);
return
lang
==
DW_LANG_C_plus_plus
||
lang
==
DW_LANG_ObjC_plus_plus
;
}
...
...
@@ -5530,7 +5530,7 @@ static void
remove_child_TAG
(
dw_die_ref
die
,
enum
dwarf_tag
tag
)
{
dw_die_ref
c
;
c
=
die
->
die_child
;
if
(
c
)
do
{
dw_die_ref
prev
=
c
;
...
...
@@ -5568,7 +5568,7 @@ add_child_die (dw_die_ref die, dw_die_ref child_die)
}
/* Move CHILD, which must be a child of PARENT or the DIE for which PARENT
is the specification, to the end of PARENT's list of children.
is the specification, to the end of PARENT's list of children.
This is done by removing and re-adding it. */
static
void
...
...
@@ -5589,7 +5589,7 @@ splice_child_die (dw_die_ref parent, dw_die_ref child)
gcc_assert
(
child
->
die_parent
==
parent
||
(
child
->
die_parent
==
get_AT_ref
(
parent
,
DW_AT_specification
)));
for
(
p
=
child
->
die_parent
->
die_child
;
;
p
=
p
->
die_sib
)
if
(
p
->
die_sib
==
child
)
{
...
...
@@ -6145,7 +6145,7 @@ same_die_p (dw_die_ref die1, dw_die_ref die2, int *mark)
if
(
VEC_length
(
dw_attr_node
,
die1
->
die_attr
)
!=
VEC_length
(
dw_attr_node
,
die2
->
die_attr
))
return
0
;
for
(
ix
=
0
;
VEC_iterate
(
dw_attr_node
,
die1
->
die_attr
,
ix
,
a1
);
ix
++
)
if
(
!
same_attr_p
(
a1
,
VEC_index
(
dw_attr_node
,
die2
->
die_attr
,
ix
),
mark
))
return
0
;
...
...
@@ -6450,7 +6450,7 @@ break_out_includes (dw_die_ref die)
/* This DIE is for a secondary CU; remove it from the main one. */
remove_child_with_prev
(
c
,
prev
);
if
(
c
->
die_tag
==
DW_TAG_GNU_BINCL
)
unit
=
push_new_compile_unit
(
unit
,
c
);
else
if
(
c
->
die_tag
==
DW_TAG_GNU_EINCL
)
...
...
@@ -6558,16 +6558,16 @@ build_abbrev_table (dw_die_ref die)
dw_attr_ref
die_a
,
abbrev_a
;
unsigned
ix
;
bool
ok
=
true
;
if
(
abbrev
->
die_tag
!=
die
->
die_tag
)
continue
;
if
((
abbrev
->
die_child
!=
NULL
)
!=
(
die
->
die_child
!=
NULL
))
continue
;
if
(
VEC_length
(
dw_attr_node
,
abbrev
->
die_attr
)
!=
VEC_length
(
dw_attr_node
,
die
->
die_attr
))
continue
;
for
(
ix
=
0
;
VEC_iterate
(
dw_attr_node
,
die
->
die_attr
,
ix
,
die_a
);
ix
++
)
{
abbrev_a
=
VEC_index
(
dw_attr_node
,
abbrev
->
die_attr
,
ix
);
...
...
@@ -6775,7 +6775,7 @@ unmark_all_dies (dw_die_ref die)
unmark_all_dies
(
AT_ref
(
a
));
}
/* Return the size of the .debug_pubnames or .debug_pubtypes table
/* Return the size of the .debug_pubnames or .debug_pubtypes table
generated for the compilation unit. */
static
unsigned
long
...
...
@@ -7255,7 +7255,7 @@ output_die (dw_die_ref die)
case
dw_val_class_file
:
{
int
f
=
maybe_emit_file
(
a
->
dw_attr_val
.
v
.
val_file
);
dw2_asm_output_data
(
constant_size
(
f
),
f
,
"%s (%s)"
,
name
,
a
->
dw_attr_val
.
v
.
val_file
->
filename
);
break
;
...
...
@@ -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,11 +7389,11 @@ 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
));
}
}
else
else
e
.
name
=
xstrdup
(
dwarf2_name
(
decl
,
1
));
/* If we don't have a name for the type, there's no point in adding
...
...
@@ -7431,7 +7431,7 @@ output_pubnames (VEC (pubname_entry, gc) * names)
for
(
i
=
0
;
VEC_iterate
(
pubname_entry
,
names
,
i
,
pub
);
i
++
)
{
/* We shouldn't see pubnames for DIEs outside of the main CU. */
/* We shouldn't see pubnames for DIEs outside of the main CU. */
if
(
names
==
pubname_table
)
gcc_assert
(
pub
->
die
->
die_mark
);
...
...
@@ -7508,7 +7508,7 @@ output_aranges (void)
text_section_label
,
"Length"
);
if
(
flag_reorder_blocks_and_partition
)
{
dw2_asm_output_addr
(
DWARF2_ADDR_SIZE
,
cold_text_section_label
,
dw2_asm_output_addr
(
DWARF2_ADDR_SIZE
,
cold_text_section_label
,
"Address"
);
dw2_asm_output_delta
(
DWARF2_ADDR_SIZE
,
cold_end_label
,
cold_text_section_label
,
"Length"
);
...
...
@@ -7690,7 +7690,7 @@ file_info_cmp (const void *p1, const void *p2)
}
}
struct
file_name_acquire_data
struct
file_name_acquire_data
{
struct
file_info
*
files
;
int
used_files
;
...
...
@@ -7720,12 +7720,12 @@ file_name_acquire (void ** slot, void *data)
f
=
d
->
filename
;
while
(
f
[
0
]
==
'.'
&&
IS_DIR_SEPARATOR
(
f
[
1
]))
f
+=
2
;
/* Create a new array entry. */
fi
->
path
=
f
;
fi
->
length
=
strlen
(
f
);
fi
->
file_idx
=
d
;
/* Search for the file name part. */
f
=
strrchr
(
f
,
DIR_SEPARATOR
);
#if defined (DIR_SEPARATOR_2)
...
...
@@ -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
;
}
...
...
@@ -8475,7 +8475,7 @@ modified_type_die (tree type, int is_const_type, int is_volatile_type,
=
get_qualified_type
(
type
,
((
is_const_type
?
TYPE_QUAL_CONST
:
0
)
|
(
is_volatile_type
?
TYPE_QUAL_VOLATILE
:
0
)));
/* If we do, then we can just use its DIE, if it exists. */
if
(
qualified_type
)
{
...
...
@@ -8483,14 +8483,14 @@ modified_type_die (tree type, int is_const_type, int is_volatile_type,
if
(
mod_type_die
)
return
mod_type_die
;
}
name
=
qualified_type
?
TYPE_NAME
(
qualified_type
)
:
NULL
;
/* Handle C typedef types. */
if
(
name
&&
TREE_CODE
(
name
)
==
TYPE_DECL
&&
DECL_ORIGINAL_TYPE
(
name
))
{
tree
dtype
=
TREE_TYPE
(
name
);
if
(
qualified_type
==
dtype
)
{
/* For a named type, use the typedef. */
...
...
@@ -8509,7 +8509,7 @@ modified_type_die (tree type, int is_const_type, int is_volatile_type,
context_die
);
/* Else cv-qualified version of named type; fall through. */
}
if
(
is_const_type
)
{
mod_type_die
=
new_die
(
DW_TAG_const_type
,
comp_unit_die
,
type
);
...
...
@@ -8544,7 +8544,7 @@ modified_type_die (tree type, int is_const_type, int is_volatile_type,
else
{
gen_type_die
(
type
,
context_die
);
/* We have to get the type_main_variant here (and pass that to the
`lookup_type_die' routine) because the ..._TYPE node we have
might simply be a *copy* of some original type node (where the
...
...
@@ -8558,7 +8558,7 @@ modified_type_die (tree type, int is_const_type, int is_volatile_type,
not the main variant. */
return
lookup_type_die
(
type
);
}
/* Builtin types don't have a DECL_ORIGINAL_TYPE. For those,
don't output a DW_TAG_typedef, since there isn't one in the
user's program; just attach a DW_AT_name to the type. */
...
...
@@ -8572,7 +8572,7 @@ modified_type_die (tree type, int is_const_type, int is_volatile_type,
name
=
DECL_NAME
(
name
);
add_name_attribute
(
mod_type_die
,
IDENTIFIER_POINTER
(
name
));
}
if
(
qualified_type
)
equate_type_number_to_die
(
qualified_type
,
mod_type_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
...
...
@@ -10117,7 +10117,7 @@ reference_to_unused (tree * tp, int * walk_subtrees,
{
if
(
!
EXPR_P
(
*
tp
)
&&
!
GIMPLE_STMT_P
(
*
tp
)
&&
!
CONSTANT_CLASS_P
(
*
tp
))
*
walk_subtrees
=
0
;
if
(
DECL_P
(
*
tp
)
&&
!
TREE_PUBLIC
(
*
tp
)
&&
!
TREE_USED
(
*
tp
)
&&
!
TREE_ASM_WRITTEN
(
*
tp
))
return
*
tp
;
...
...
@@ -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
;
...
...
@@ -10173,7 +10173,7 @@ rtl_for_decl_init (tree init, tree type)
CONCAT: FIXME! */
else
if
(
AGGREGATE_TYPE_P
(
type
)
||
TREE_CODE
(
type
)
==
COMPLEX_TYPE
)
;
/* Vectors only work if their mode is supported by the target.
/* Vectors only work if their mode is supported by the target.
FIXME: generic vectors ought to work too. */
else
if
(
TREE_CODE
(
type
)
==
VECTOR_TYPE
&&
TYPE_MODE
(
type
)
==
BLKmode
)
;
...
...
@@ -10448,7 +10448,7 @@ add_location_or_const_value_attribute (dw_die_ref die, tree decl,
gcc_assert
(
TREE_CODE
(
decl
)
==
VAR_DECL
||
TREE_CODE
(
decl
)
==
PARM_DECL
||
TREE_CODE
(
decl
)
==
RESULT_DECL
);
/* See if we possibly have multiple locations for this variable. */
loc_list
=
lookup_decl_loc
(
decl
);
...
...
@@ -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.
...
...
@@ -10515,14 +10515,14 @@ add_location_or_const_value_attribute (dw_die_ref die, tree decl,
/* Try to get some constant RTL for this decl, and use that as the value of
the location. */
rtl
=
rtl_for_decl_location
(
decl
);
if
(
rtl
&&
(
CONSTANT_P
(
rtl
)
||
GET_CODE
(
rtl
)
==
CONST_STRING
))
{
add_const_value_attribute
(
die
,
rtl
);
return
;
}
/* If we have tried to generate the location otherwise, and it
didn't work out (we wouldn't be here if we did), and we have a one entry
location list, try generating a location from that. */
...
...
@@ -11004,7 +11004,7 @@ add_abstract_origin_attribute (dw_die_ref die, tree origin)
if
(
TYPE_P
(
fn
))
fn
=
TYPE_STUB_DECL
(
fn
);
fn
=
decl_function_context
(
fn
);
if
(
fn
)
dwarf2out_abstract_function
(
fn
);
...
...
@@ -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
);
...
...
@@ -11937,7 +11937,7 @@ gen_subprogram_die (tree decl, dw_die_ref context_die)
ASM_GENERATE_INTERNAL_LABEL
(
label_id
,
FUNC_END_LABEL
,
current_function_funcdef_no
);
add_AT_lbl_id
(
subr_die
,
DW_AT_high_pc
,
label_id
);
add_pubname
(
decl
,
subr_die
);
add_arange
(
decl
,
subr_die
);
}
...
...
@@ -11986,7 +11986,7 @@ gen_subprogram_die (tree decl, dw_die_ref context_die)
/* Compute a displacement from the "steady-state frame pointer" to
the CFA. The former is what all stack slots and argument slots
will reference in the rtl; the later is what we've told the
will reference in the rtl; the later is what we've told the
debugger about. We'll need to adjust all frame_base references
by this displacement. */
compute_frame_pointer_to_fb_displacement
(
cfa_fb_offset
);
...
...
@@ -12109,17 +12109,17 @@ 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
not emit a definition. */
not emit a definition. */
||
(
TREE_CODE
(
decl
)
==
VAR_DECL
&&
DECL_COMDAT
(
decl
)
&&
!
TREE_ASM_WRITTEN
(
decl
))
||
class_or_namespace_scope_p
(
context_die
));
...
...
@@ -12997,8 +12997,8 @@ gen_block_die (tree stmt, dw_die_ref context_die, int depth)
if
(
debug_info_level
>
DINFO_LEVEL_TERSE
)
/* We are not in terse mode so *any* local declaration counts
as being a "significant" one. */
must_output_die
=
(
BLOCK_VARS
(
stmt
)
!=
NULL
&&
(
TREE_USED
(
stmt
)
must_output_die
=
(
BLOCK_VARS
(
stmt
)
!=
NULL
&&
(
TREE_USED
(
stmt
)
||
TREE_ASM_WRITTEN
(
stmt
)
||
BLOCK_ABSTRACT
(
stmt
)));
else
...
...
@@ -13055,14 +13055,14 @@ decls_for_scope (tree stmt, dw_die_ref context_die, int depth)
for
(
decl
=
BLOCK_VARS
(
stmt
);
decl
!=
NULL
;
decl
=
TREE_CHAIN
(
decl
))
{
dw_die_ref
die
;
if
(
TREE_CODE
(
decl
)
==
FUNCTION_DECL
)
die
=
lookup_decl_die
(
decl
);
else
if
(
TREE_CODE
(
decl
)
==
TYPE_DECL
&&
TYPE_DECL_IS_STUB
(
decl
))
die
=
lookup_type_die
(
TREE_TYPE
(
decl
));
else
die
=
NULL
;
if
(
die
!=
NULL
&&
die
->
die_parent
==
NULL
)
add_child_die
(
context_die
,
die
);
/* Do not produce debug information for static variables since
...
...
@@ -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
:
...
...
@@ -13773,7 +13773,7 @@ maybe_emit_file (struct dwarf_file_data * fd)
else
fd
->
emitted_number
=
1
;
last_emitted_file
=
fd
;
if
(
DWARF2_ASM_LINE_DEBUG_INFO
)
{
fprintf
(
asm_out_file
,
"
\t
.file %u "
,
fd
->
emitted_number
);
...
...
@@ -13781,7 +13781,7 @@ maybe_emit_file (struct dwarf_file_data * fd)
fputc
(
'\n'
,
asm_out_file
);
}
}
return
fd
->
emitted_number
;
}
...
...
@@ -13844,7 +13844,7 @@ static void
dwarf2out_begin_function
(
tree
fun
)
{
htab_empty
(
decl_loc_table
);
if
(
function_section
(
fun
)
!=
text_section
)
have_multiple_function_sections
=
true
;
}
...
...
@@ -13860,7 +13860,7 @@ dwarf2out_source_line (unsigned int line, const char *filename)
&&
line
!=
0
)
{
int
file_num
=
maybe_emit_file
(
lookup_filename
(
filename
));
switch_to_section
(
current_function_section
());
/* If requested, emit something human-readable. */
...
...
@@ -13879,7 +13879,7 @@ dwarf2out_source_line (unsigned int line, const char *filename)
else
if
(
function_section
(
current_function_decl
)
!=
text_section
)
{
dw_separate_line_info_ref
line_info
;
targetm
.
asm_out
.
internal_label
(
asm_out_file
,
targetm
.
asm_out
.
internal_label
(
asm_out_file
,
SEPARATE_LINE_CODE_LABEL
,
separate_line_info_table_in_use
);
...
...
@@ -14090,7 +14090,7 @@ dwarf2out_init (const char *filename ATTRIBUTE_UNUSED)
ASM_GENERATE_INTERNAL_LABEL
(
abbrev_section_label
,
DEBUG_ABBREV_SECTION_LABEL
,
0
);
ASM_GENERATE_INTERNAL_LABEL
(
text_section_label
,
TEXT_SECTION_LABEL
,
0
);
ASM_GENERATE_INTERNAL_LABEL
(
cold_text_section_label
,
ASM_GENERATE_INTERNAL_LABEL
(
cold_text_section_label
,
COLD_TEXT_SECTION_LABEL
,
0
);
ASM_GENERATE_INTERNAL_LABEL
(
cold_end_label
,
COLD_END_LABEL
,
0
);
...
...
@@ -14149,7 +14149,7 @@ static void
verify_marks_clear
(
dw_die_ref
die
)
{
dw_die_ref
c
;
gcc_assert
(
!
die
->
die_mark
);
FOR_EACH_CHILD
(
die
,
c
,
verify_marks_clear
(
c
));
}
...
...
@@ -14162,7 +14162,7 @@ static void
prune_unmark_dies
(
dw_die_ref
die
)
{
dw_die_ref
c
;
if
(
die
->
die_mark
)
die
->
die_mark
=
0
;
FOR_EACH_CHILD
(
die
,
c
,
prune_unmark_dies
(
c
));
...
...
@@ -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
)
...
...
@@ -14329,7 +14329,7 @@ prune_unused_types_prune (dw_die_ref die)
if
(
!
die
->
die_child
)
return
;
c
=
die
->
die_child
;
do
{
dw_die_ref
prev
=
c
;
...
...
@@ -14574,7 +14574,7 @@ dwarf2out_finish (const char *filename)
output_pubnames
(
pubtype_table
);
}
#endif
/* Output the address range information. We only put functions in the arange
table, so don't write it out if we don't have any. */
if
(
fde_table_in_use
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment