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)
...
@@ -468,13 +468,13 @@ expand_builtin_init_dwarf_reg_sizes (tree address)
for
(
i
=
0
;
i
<
FIRST_PSEUDO_REGISTER
;
i
++
)
for
(
i
=
0
;
i
<
FIRST_PSEUDO_REGISTER
;
i
++
)
{
{
int
rnum
=
DWARF2_FRAME_REG_OUT
(
DWARF_FRAME_REGNUM
(
i
),
1
);
int
rnum
=
DWARF2_FRAME_REG_OUT
(
DWARF_FRAME_REGNUM
(
i
),
1
);
if
(
rnum
<
DWARF_FRAME_REGISTERS
)
if
(
rnum
<
DWARF_FRAME_REGISTERS
)
{
{
HOST_WIDE_INT
offset
=
rnum
*
GET_MODE_SIZE
(
mode
);
HOST_WIDE_INT
offset
=
rnum
*
GET_MODE_SIZE
(
mode
);
enum
machine_mode
save_mode
=
reg_raw_mode
[
i
];
enum
machine_mode
save_mode
=
reg_raw_mode
[
i
];
HOST_WIDE_INT
size
;
HOST_WIDE_INT
size
;
if
(
HARD_REGNO_CALL_PART_CLOBBERED
(
i
,
save_mode
))
if
(
HARD_REGNO_CALL_PART_CLOBBERED
(
i
,
save_mode
))
save_mode
=
choose_hard_reg_mode
(
i
,
1
,
true
);
save_mode
=
choose_hard_reg_mode
(
i
,
1
,
true
);
if
(
DWARF_FRAME_REGNUM
(
i
)
==
DWARF_FRAME_RETURN_COLUMN
)
if
(
DWARF_FRAME_REGNUM
(
i
)
==
DWARF_FRAME_RETURN_COLUMN
)
...
@@ -486,7 +486,7 @@ expand_builtin_init_dwarf_reg_sizes (tree address)
...
@@ -486,7 +486,7 @@ expand_builtin_init_dwarf_reg_sizes (tree address)
size
=
GET_MODE_SIZE
(
save_mode
);
size
=
GET_MODE_SIZE
(
save_mode
);
if
(
offset
<
0
)
if
(
offset
<
0
)
continue
;
continue
;
emit_move_insn
(
adjust_address
(
mem
,
mode
,
offset
),
emit_move_insn
(
adjust_address
(
mem
,
mode
,
offset
),
gen_int_mode
(
size
,
mode
));
gen_int_mode
(
size
,
mode
));
}
}
...
@@ -2218,7 +2218,7 @@ output_call_frame_info (int for_eh)
...
@@ -2218,7 +2218,7 @@ output_call_frame_info (int for_eh)
&&
for_eh
)
&&
for_eh
)
for
(
i
=
0
;
i
<
fde_table_in_use
;
i
++
)
for
(
i
=
0
;
i
<
fde_table_in_use
;
i
++
)
if
((
fde_table
[
i
].
nothrow
||
fde_table
[
i
].
all_throwers_are_sibcalls
)
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
))
&&
!
DECL_WEAK
(
fde_table
[
i
].
decl
))
targetm
.
asm_out
.
unwind_label
(
asm_out_file
,
fde_table
[
i
].
decl
,
targetm
.
asm_out
.
unwind_label
(
asm_out_file
,
fde_table
[
i
].
decl
,
for_eh
,
/* empty */
1
);
for_eh
,
/* empty */
1
);
...
@@ -2234,7 +2234,7 @@ output_call_frame_info (int for_eh)
...
@@ -2234,7 +2234,7 @@ output_call_frame_info (int for_eh)
for
(
i
=
0
;
i
<
fde_table_in_use
;
i
++
)
for
(
i
=
0
;
i
<
fde_table_in_use
;
i
++
)
if
(
fde_table
[
i
].
uses_eh_lsda
)
if
(
fde_table
[
i
].
uses_eh_lsda
)
any_eh_needed
=
any_lsda_needed
=
true
;
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
;
any_eh_needed
=
true
;
else
if
(
!
fde_table
[
i
].
nothrow
else
if
(
!
fde_table
[
i
].
nothrow
&&
!
fde_table
[
i
].
all_throwers_are_sibcalls
)
&&
!
fde_table
[
i
].
all_throwers_are_sibcalls
)
...
@@ -2422,9 +2422,9 @@ output_call_frame_info (int for_eh)
...
@@ -2422,9 +2422,9 @@ output_call_frame_info (int for_eh)
"FDE initial location"
);
"FDE initial location"
);
if
(
fde
->
dw_fde_switched_sections
)
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
);
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
);
fde
->
dw_fde_hot_section_label
);
SYMBOL_REF_FLAGS
(
sym_ref2
)
|=
SYMBOL_FLAG_LOCAL
;
SYMBOL_REF_FLAGS
(
sym_ref2
)
|=
SYMBOL_FLAG_LOCAL
;
SYMBOL_REF_FLAGS
(
sym_ref3
)
|=
SYMBOL_FLAG_LOCAL
;
SYMBOL_REF_FLAGS
(
sym_ref3
)
|=
SYMBOL_FLAG_LOCAL
;
...
@@ -2462,7 +2462,7 @@ output_call_frame_info (int for_eh)
...
@@ -2462,7 +2462,7 @@ output_call_frame_info (int for_eh)
dw2_asm_output_addr
(
DWARF2_ADDR_SIZE
,
dw2_asm_output_addr
(
DWARF2_ADDR_SIZE
,
fde
->
dw_fde_unlikely_section_label
,
fde
->
dw_fde_unlikely_section_label
,
"FDE initial location"
);
"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_end_label
,
fde
->
dw_fde_unlikely_section_label
,
fde
->
dw_fde_unlikely_section_label
,
"FDE address range"
);
"FDE address range"
);
...
@@ -3838,14 +3838,14 @@ limbo_die_node;
...
@@ -3838,14 +3838,14 @@ limbo_die_node;
/* Fixed size portion of the address range info. */
/* Fixed size portion of the address range info. */
#define DWARF_ARANGES_HEADER_SIZE \
#define DWARF_ARANGES_HEADER_SIZE \
(DWARF_ROUND (DWARF_INITIAL_LENGTH_SIZE + DWARF_OFFSET_SIZE + 4, \
(DWARF_ROUND (DWARF_INITIAL_LENGTH_SIZE + DWARF_OFFSET_SIZE + 4, \
DWARF2_ADDR_SIZE * 2) \
DWARF2_ADDR_SIZE * 2) \
- DWARF_INITIAL_LENGTH_SIZE)
- DWARF_INITIAL_LENGTH_SIZE)
/* Size of padding portion in the address range info. It must be
/* Size of padding portion in the address range info. It must be
aligned to twice the pointer size. */
aligned to twice the pointer size. */
#define DWARF_ARANGES_PAD_SIZE \
#define DWARF_ARANGES_PAD_SIZE \
(DWARF_ROUND (DWARF_INITIAL_LENGTH_SIZE + DWARF_OFFSET_SIZE + 4, \
(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))
- (DWARF_INITIAL_LENGTH_SIZE + DWARF_OFFSET_SIZE + 4))
/* Use assembler line directives if available. */
/* Use assembler line directives if available. */
...
@@ -4347,7 +4347,7 @@ static int maybe_emit_file (struct dwarf_file_data *fd);
...
@@ -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_end_label
[
MAX_ARTIFICIAL_LABEL_BYTES
];
static
char
text_section_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_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
abbrev_section_label
[
MAX_ARTIFICIAL_LABEL_BYTES
];
static
char
debug_info_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
];
static
char
debug_line_section_label
[
MAX_ARTIFICIAL_LABEL_BYTES
];
...
@@ -4863,7 +4863,7 @@ block_ultimate_origin (tree block)
...
@@ -4863,7 +4863,7 @@ block_ultimate_origin (tree block)
?
BLOCK_ABSTRACT_ORIGIN
(
ret_val
)
:
NULL
);
?
BLOCK_ABSTRACT_ORIGIN
(
ret_val
)
:
NULL
);
}
}
while
(
lookahead
!=
NULL
&&
lookahead
!=
ret_val
);
while
(
lookahead
!=
NULL
&&
lookahead
!=
ret_val
);
/* The block's abstract origin chain may not be the *ultimate* origin of
/* 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.
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
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)
...
@@ -4906,7 +4906,7 @@ add_dwarf_attr (dw_die_ref die, dw_attr_ref attr)
/* Maybe this should be an assert? */
/* Maybe this should be an assert? */
if
(
die
==
NULL
)
if
(
die
==
NULL
)
return
;
return
;
if
(
die
->
die_attr
==
NULL
)
if
(
die
->
die_attr
==
NULL
)
die
->
die_attr
=
VEC_alloc
(
dw_attr_node
,
gc
,
1
);
die
->
die_attr
=
VEC_alloc
(
dw_attr_node
,
gc
,
1
);
VEC_safe_push
(
dw_attr_node
,
gc
,
die
->
die_attr
,
attr
);
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)
...
@@ -5345,7 +5345,7 @@ get_AT (dw_die_ref die, enum dwarf_attribute attr_kind)
else
if
(
a
->
dw_attr
==
DW_AT_specification
else
if
(
a
->
dw_attr
==
DW_AT_specification
||
a
->
dw_attr
==
DW_AT_abstract_origin
)
||
a
->
dw_attr
==
DW_AT_abstract_origin
)
spec
=
AT_ref
(
a
);
spec
=
AT_ref
(
a
);
if
(
spec
)
if
(
spec
)
return
get_AT
(
spec
,
attr_kind
);
return
get_AT
(
spec
,
attr_kind
);
...
@@ -5443,7 +5443,7 @@ static inline bool
...
@@ -5443,7 +5443,7 @@ static inline bool
is_cxx
(
void
)
is_cxx
(
void
)
{
{
unsigned
int
lang
=
get_AT_unsigned
(
comp_unit_die
,
DW_AT_language
);
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
;
return
lang
==
DW_LANG_C_plus_plus
||
lang
==
DW_LANG_ObjC_plus_plus
;
}
}
...
@@ -5530,7 +5530,7 @@ static void
...
@@ -5530,7 +5530,7 @@ static void
remove_child_TAG
(
dw_die_ref
die
,
enum
dwarf_tag
tag
)
remove_child_TAG
(
dw_die_ref
die
,
enum
dwarf_tag
tag
)
{
{
dw_die_ref
c
;
dw_die_ref
c
;
c
=
die
->
die_child
;
c
=
die
->
die_child
;
if
(
c
)
do
{
if
(
c
)
do
{
dw_die_ref
prev
=
c
;
dw_die_ref
prev
=
c
;
...
@@ -5568,7 +5568,7 @@ add_child_die (dw_die_ref die, dw_die_ref child_die)
...
@@ -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
/* 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. */
This is done by removing and re-adding it. */
static
void
static
void
...
@@ -5589,7 +5589,7 @@ splice_child_die (dw_die_ref parent, dw_die_ref child)
...
@@ -5589,7 +5589,7 @@ splice_child_die (dw_die_ref parent, dw_die_ref child)
gcc_assert
(
child
->
die_parent
==
parent
gcc_assert
(
child
->
die_parent
==
parent
||
(
child
->
die_parent
||
(
child
->
die_parent
==
get_AT_ref
(
parent
,
DW_AT_specification
)));
==
get_AT_ref
(
parent
,
DW_AT_specification
)));
for
(
p
=
child
->
die_parent
->
die_child
;
;
p
=
p
->
die_sib
)
for
(
p
=
child
->
die_parent
->
die_child
;
;
p
=
p
->
die_sib
)
if
(
p
->
die_sib
==
child
)
if
(
p
->
die_sib
==
child
)
{
{
...
@@ -6145,7 +6145,7 @@ same_die_p (dw_die_ref die1, dw_die_ref die2, int *mark)
...
@@ -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
)
if
(
VEC_length
(
dw_attr_node
,
die1
->
die_attr
)
!=
VEC_length
(
dw_attr_node
,
die2
->
die_attr
))
!=
VEC_length
(
dw_attr_node
,
die2
->
die_attr
))
return
0
;
return
0
;
for
(
ix
=
0
;
VEC_iterate
(
dw_attr_node
,
die1
->
die_attr
,
ix
,
a1
);
ix
++
)
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
))
if
(
!
same_attr_p
(
a1
,
VEC_index
(
dw_attr_node
,
die2
->
die_attr
,
ix
),
mark
))
return
0
;
return
0
;
...
@@ -6450,7 +6450,7 @@ break_out_includes (dw_die_ref die)
...
@@ -6450,7 +6450,7 @@ break_out_includes (dw_die_ref die)
/* This DIE is for a secondary CU; remove it from the main one. */
/* This DIE is for a secondary CU; remove it from the main one. */
remove_child_with_prev
(
c
,
prev
);
remove_child_with_prev
(
c
,
prev
);
if
(
c
->
die_tag
==
DW_TAG_GNU_BINCL
)
if
(
c
->
die_tag
==
DW_TAG_GNU_BINCL
)
unit
=
push_new_compile_unit
(
unit
,
c
);
unit
=
push_new_compile_unit
(
unit
,
c
);
else
if
(
c
->
die_tag
==
DW_TAG_GNU_EINCL
)
else
if
(
c
->
die_tag
==
DW_TAG_GNU_EINCL
)
...
@@ -6558,16 +6558,16 @@ build_abbrev_table (dw_die_ref die)
...
@@ -6558,16 +6558,16 @@ build_abbrev_table (dw_die_ref die)
dw_attr_ref
die_a
,
abbrev_a
;
dw_attr_ref
die_a
,
abbrev_a
;
unsigned
ix
;
unsigned
ix
;
bool
ok
=
true
;
bool
ok
=
true
;
if
(
abbrev
->
die_tag
!=
die
->
die_tag
)
if
(
abbrev
->
die_tag
!=
die
->
die_tag
)
continue
;
continue
;
if
((
abbrev
->
die_child
!=
NULL
)
!=
(
die
->
die_child
!=
NULL
))
if
((
abbrev
->
die_child
!=
NULL
)
!=
(
die
->
die_child
!=
NULL
))
continue
;
continue
;
if
(
VEC_length
(
dw_attr_node
,
abbrev
->
die_attr
)
if
(
VEC_length
(
dw_attr_node
,
abbrev
->
die_attr
)
!=
VEC_length
(
dw_attr_node
,
die
->
die_attr
))
!=
VEC_length
(
dw_attr_node
,
die
->
die_attr
))
continue
;
continue
;
for
(
ix
=
0
;
VEC_iterate
(
dw_attr_node
,
die
->
die_attr
,
ix
,
die_a
);
ix
++
)
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
);
abbrev_a
=
VEC_index
(
dw_attr_node
,
abbrev
->
die_attr
,
ix
);
...
@@ -6775,7 +6775,7 @@ unmark_all_dies (dw_die_ref die)
...
@@ -6775,7 +6775,7 @@ unmark_all_dies (dw_die_ref die)
unmark_all_dies
(
AT_ref
(
a
));
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. */
generated for the compilation unit. */
static
unsigned
long
static
unsigned
long
...
@@ -7255,7 +7255,7 @@ output_die (dw_die_ref die)
...
@@ -7255,7 +7255,7 @@ output_die (dw_die_ref die)
case
dw_val_class_file
:
case
dw_val_class_file
:
{
{
int
f
=
maybe_emit_file
(
a
->
dw_attr_val
.
v
.
val_file
);
int
f
=
maybe_emit_file
(
a
->
dw_attr_val
.
v
.
val_file
);
dw2_asm_output_data
(
constant_size
(
f
),
f
,
"%s (%s)"
,
name
,
dw2_asm_output_data
(
constant_size
(
f
),
f
,
"%s (%s)"
,
name
,
a
->
dw_attr_val
.
v
.
val_file
->
filename
);
a
->
dw_attr_val
.
v
.
val_file
->
filename
);
break
;
break
;
...
@@ -7284,7 +7284,7 @@ output_compilation_unit_header (void)
...
@@ -7284,7 +7284,7 @@ output_compilation_unit_header (void)
dw2_asm_output_data
(
4
,
0xffffffff
,
dw2_asm_output_data
(
4
,
0xffffffff
,
"Initial length escape value indicating 64-bit DWARF extension"
);
"Initial length escape value indicating 64-bit DWARF extension"
);
dw2_asm_output_data
(
DWARF_OFFSET_SIZE
,
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"
);
"Length of Compilation Unit Info"
);
dw2_asm_output_data
(
2
,
DWARF_VERSION
,
"DWARF version number"
);
dw2_asm_output_data
(
2
,
DWARF_VERSION
,
"DWARF version number"
);
dw2_asm_output_offset
(
DWARF_OFFSET_SIZE
,
abbrev_section_label
,
dw2_asm_output_offset
(
DWARF_OFFSET_SIZE
,
abbrev_section_label
,
...
@@ -7389,11 +7389,11 @@ add_pubtype (tree decl, dw_die_ref die)
...
@@ -7389,11 +7389,11 @@ add_pubtype (tree decl, dw_die_ref die)
else
if
(
TREE_CODE
(
TYPE_NAME
(
decl
))
==
TYPE_DECL
else
if
(
TREE_CODE
(
TYPE_NAME
(
decl
))
==
TYPE_DECL
&&
DECL_NAME
(
TYPE_NAME
(
decl
)))
&&
DECL_NAME
(
TYPE_NAME
(
decl
)))
e
.
name
=
IDENTIFIER_POINTER
(
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
));
e
.
name
=
xstrdup
((
const
char
*
)
get_AT_string
(
die
,
DW_AT_name
));
}
}
}
}
else
else
e
.
name
=
xstrdup
(
dwarf2_name
(
decl
,
1
));
e
.
name
=
xstrdup
(
dwarf2_name
(
decl
,
1
));
/* If we don't have a name for the type, there's no point in adding
/* 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)
...
@@ -7431,7 +7431,7 @@ output_pubnames (VEC (pubname_entry, gc) * names)
for
(
i
=
0
;
VEC_iterate
(
pubname_entry
,
names
,
i
,
pub
);
i
++
)
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
)
if
(
names
==
pubname_table
)
gcc_assert
(
pub
->
die
->
die_mark
);
gcc_assert
(
pub
->
die
->
die_mark
);
...
@@ -7508,7 +7508,7 @@ output_aranges (void)
...
@@ -7508,7 +7508,7 @@ output_aranges (void)
text_section_label
,
"Length"
);
text_section_label
,
"Length"
);
if
(
flag_reorder_blocks_and_partition
)
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"
);
"Address"
);
dw2_asm_output_delta
(
DWARF2_ADDR_SIZE
,
cold_end_label
,
dw2_asm_output_delta
(
DWARF2_ADDR_SIZE
,
cold_end_label
,
cold_text_section_label
,
"Length"
);
cold_text_section_label
,
"Length"
);
...
@@ -7690,7 +7690,7 @@ file_info_cmp (const void *p1, const void *p2)
...
@@ -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
;
struct
file_info
*
files
;
int
used_files
;
int
used_files
;
...
@@ -7720,12 +7720,12 @@ file_name_acquire (void ** slot, void *data)
...
@@ -7720,12 +7720,12 @@ file_name_acquire (void ** slot, void *data)
f
=
d
->
filename
;
f
=
d
->
filename
;
while
(
f
[
0
]
==
'.'
&&
IS_DIR_SEPARATOR
(
f
[
1
]))
while
(
f
[
0
]
==
'.'
&&
IS_DIR_SEPARATOR
(
f
[
1
]))
f
+=
2
;
f
+=
2
;
/* Create a new array entry. */
/* Create a new array entry. */
fi
->
path
=
f
;
fi
->
path
=
f
;
fi
->
length
=
strlen
(
f
);
fi
->
length
=
strlen
(
f
);
fi
->
file_idx
=
d
;
fi
->
file_idx
=
d
;
/* Search for the file name part. */
/* Search for the file name part. */
f
=
strrchr
(
f
,
DIR_SEPARATOR
);
f
=
strrchr
(
f
,
DIR_SEPARATOR
);
#if defined (DIR_SEPARATOR_2)
#if defined (DIR_SEPARATOR_2)
...
@@ -8396,26 +8396,26 @@ is_subrange_type (tree type)
...
@@ -8396,26 +8396,26 @@ is_subrange_type (tree type)
&&
tree_int_cst_equal
(
TYPE_MAX_VALUE
(
type
),
TYPE_MAX_VALUE
(
subtype
)))
&&
tree_int_cst_equal
(
TYPE_MAX_VALUE
(
type
),
TYPE_MAX_VALUE
(
subtype
)))
{
{
/* The type and its subtype have the same representation. If in
/* The type and its subtype have the same representation. If in
addition the two types also have the same name, then the given
addition the two types also have the same name, then the given
type is not a subrange type, but rather a plain base type. */
type is not a subrange type, but rather a plain base type. */
/* FIXME: brobecker/2004-03-22:
/* FIXME: brobecker/2004-03-22:
Sizetype INTEGER_CSTs nodes are canonicalized. It should
Sizetype INTEGER_CSTs nodes are canonicalized. It should
therefore be sufficient to check the TYPE_SIZE node pointers
therefore be sufficient to check the TYPE_SIZE node pointers
rather than checking the actual size. Unfortunately, we have
rather than checking the actual size. Unfortunately, we have
found some cases, such as in the Ada "integer" type, where
found some cases, such as in the Ada "integer" type, where
this is not the case. Until this problem is solved, we need to
this is not the case. Until this problem is solved, we need to
keep checking the actual size. */
keep checking the actual size. */
tree
type_name
=
TYPE_NAME
(
type
);
tree
type_name
=
TYPE_NAME
(
type
);
tree
subtype_name
=
TYPE_NAME
(
subtype
);
tree
subtype_name
=
TYPE_NAME
(
subtype
);
if
(
type_name
!=
NULL
&&
TREE_CODE
(
type_name
)
==
TYPE_DECL
)
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
)
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
)
if
(
type_name
==
subtype_name
)
return
false
;
return
false
;
}
}
return
true
;
return
true
;
...
@@ -8438,16 +8438,16 @@ subrange_type_die (tree type, dw_die_ref context_die)
...
@@ -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
)
if
(
int_size_in_bytes
(
TREE_TYPE
(
type
))
!=
size_in_bytes
)
{
{
/* The size of the subrange type and its base type do not match,
/* 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
);
add_AT_unsigned
(
subrange_die
,
DW_AT_byte_size
,
size_in_bytes
);
}
}
if
(
TYPE_MIN_VALUE
(
type
)
!=
NULL
)
if
(
TYPE_MIN_VALUE
(
type
)
!=
NULL
)
add_bound_info
(
subrange_die
,
DW_AT_lower_bound
,
add_bound_info
(
subrange_die
,
DW_AT_lower_bound
,
TYPE_MIN_VALUE
(
type
));
TYPE_MIN_VALUE
(
type
));
if
(
TYPE_MAX_VALUE
(
type
)
!=
NULL
)
if
(
TYPE_MAX_VALUE
(
type
)
!=
NULL
)
add_bound_info
(
subrange_die
,
DW_AT_upper_bound
,
add_bound_info
(
subrange_die
,
DW_AT_upper_bound
,
TYPE_MAX_VALUE
(
type
));
TYPE_MAX_VALUE
(
type
));
return
subrange_die
;
return
subrange_die
;
}
}
...
@@ -8475,7 +8475,7 @@ modified_type_die (tree type, int is_const_type, int is_volatile_type,
...
@@ -8475,7 +8475,7 @@ modified_type_die (tree type, int is_const_type, int is_volatile_type,
=
get_qualified_type
(
type
,
=
get_qualified_type
(
type
,
((
is_const_type
?
TYPE_QUAL_CONST
:
0
)
((
is_const_type
?
TYPE_QUAL_CONST
:
0
)
|
(
is_volatile_type
?
TYPE_QUAL_VOLATILE
:
0
)));
|
(
is_volatile_type
?
TYPE_QUAL_VOLATILE
:
0
)));
/* If we do, then we can just use its DIE, if it exists. */
/* If we do, then we can just use its DIE, if it exists. */
if
(
qualified_type
)
if
(
qualified_type
)
{
{
...
@@ -8483,14 +8483,14 @@ modified_type_die (tree type, int is_const_type, int is_volatile_type,
...
@@ -8483,14 +8483,14 @@ modified_type_die (tree type, int is_const_type, int is_volatile_type,
if
(
mod_type_die
)
if
(
mod_type_die
)
return
mod_type_die
;
return
mod_type_die
;
}
}
name
=
qualified_type
?
TYPE_NAME
(
qualified_type
)
:
NULL
;
name
=
qualified_type
?
TYPE_NAME
(
qualified_type
)
:
NULL
;
/* Handle C typedef types. */
/* Handle C typedef types. */
if
(
name
&&
TREE_CODE
(
name
)
==
TYPE_DECL
&&
DECL_ORIGINAL_TYPE
(
name
))
if
(
name
&&
TREE_CODE
(
name
)
==
TYPE_DECL
&&
DECL_ORIGINAL_TYPE
(
name
))
{
{
tree
dtype
=
TREE_TYPE
(
name
);
tree
dtype
=
TREE_TYPE
(
name
);
if
(
qualified_type
==
dtype
)
if
(
qualified_type
==
dtype
)
{
{
/* For a named type, use the typedef. */
/* For a named type, use the typedef. */
...
@@ -8509,7 +8509,7 @@ modified_type_die (tree type, int is_const_type, int is_volatile_type,
...
@@ -8509,7 +8509,7 @@ modified_type_die (tree type, int is_const_type, int is_volatile_type,
context_die
);
context_die
);
/* Else cv-qualified version of named type; fall through. */
/* Else cv-qualified version of named type; fall through. */
}
}
if
(
is_const_type
)
if
(
is_const_type
)
{
{
mod_type_die
=
new_die
(
DW_TAG_const_type
,
comp_unit_die
,
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,
...
@@ -8544,7 +8544,7 @@ modified_type_die (tree type, int is_const_type, int is_volatile_type,
else
else
{
{
gen_type_die
(
type
,
context_die
);
gen_type_die
(
type
,
context_die
);
/* We have to get the type_main_variant here (and pass that to the
/* We have to get the type_main_variant here (and pass that to the
`lookup_type_die' routine) because the ..._TYPE node we have
`lookup_type_die' routine) because the ..._TYPE node we have
might simply be a *copy* of some original type node (where the
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,
...
@@ -8558,7 +8558,7 @@ modified_type_die (tree type, int is_const_type, int is_volatile_type,
not the main variant. */
not the main variant. */
return
lookup_type_die
(
type
);
return
lookup_type_die
(
type
);
}
}
/* Builtin types don't have a DECL_ORIGINAL_TYPE. For those,
/* 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
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. */
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,
...
@@ -8572,7 +8572,7 @@ modified_type_die (tree type, int is_const_type, int is_volatile_type,
name
=
DECL_NAME
(
name
);
name
=
DECL_NAME
(
name
);
add_name_attribute
(
mod_type_die
,
IDENTIFIER_POINTER
(
name
));
add_name_attribute
(
mod_type_die
,
IDENTIFIER_POINTER
(
name
));
}
}
if
(
qualified_type
)
if
(
qualified_type
)
equate_type_number_to_die
(
qualified_type
,
mod_type_die
);
equate_type_number_to_die
(
qualified_type
,
mod_type_die
);
...
@@ -8795,9 +8795,9 @@ based_loc_descr (rtx reg, HOST_WIDE_INT offset)
...
@@ -8795,9 +8795,9 @@ based_loc_descr (rtx reg, HOST_WIDE_INT offset)
}
}
gcc_assert
(
elim
==
(
frame_pointer_needed
?
hard_frame_pointer_rtx
gcc_assert
(
elim
==
(
frame_pointer_needed
?
hard_frame_pointer_rtx
:
stack_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)
...
@@ -9277,7 +9277,7 @@ loc_descriptor_from_tree_1 (tree loc, int want_address)
if
(
rtl
==
NULL_RTX
)
if
(
rtl
==
NULL_RTX
)
return
0
;
return
0
;
else
if
(
GET_CODE
(
rtl
)
==
CONST_INT
)
else
if
(
GET_CODE
(
rtl
)
==
CONST_INT
)
{
{
HOST_WIDE_INT
val
=
INTVAL
(
rtl
);
HOST_WIDE_INT
val
=
INTVAL
(
rtl
);
if
(
TYPE_UNSIGNED
(
TREE_TYPE
(
loc
)))
if
(
TYPE_UNSIGNED
(
TREE_TYPE
(
loc
)))
...
@@ -9528,13 +9528,13 @@ loc_descriptor_from_tree_1 (tree loc, int want_address)
...
@@ -9528,13 +9528,13 @@ loc_descriptor_from_tree_1 (tree loc, int want_address)
case
MIN_EXPR
:
case
MIN_EXPR
:
case
MAX_EXPR
:
case
MAX_EXPR
:
{
{
const
enum
tree_code
code
=
const
enum
tree_code
code
=
TREE_CODE
(
loc
)
==
MIN_EXPR
?
GT_EXPR
:
LT_EXPR
;
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
,
build2
(
code
,
integer_type_node
,
TREE_OPERAND
(
loc
,
0
),
TREE_OPERAND
(
loc
,
1
)),
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 ... */
/* ... fall through ... */
...
@@ -9577,7 +9577,7 @@ loc_descriptor_from_tree_1 (tree loc, int want_address)
...
@@ -9577,7 +9577,7 @@ loc_descriptor_from_tree_1 (tree loc, int want_address)
/* Leave front-end specific codes as simply unknown. This comes
/* Leave front-end specific codes as simply unknown. This comes
up, for instance, with the C STMT_EXPR. */
up, for instance, with the C STMT_EXPR. */
if
((
unsigned
int
)
TREE_CODE
(
loc
)
if
((
unsigned
int
)
TREE_CODE
(
loc
)
>=
(
unsigned
int
)
LAST_AND_UNUSED_TREE_CODE
)
>=
(
unsigned
int
)
LAST_AND_UNUSED_TREE_CODE
)
return
0
;
return
0
;
#ifdef ENABLE_CHECKING
#ifdef ENABLE_CHECKING
...
@@ -10117,7 +10117,7 @@ reference_to_unused (tree * tp, int * walk_subtrees,
...
@@ -10117,7 +10117,7 @@ reference_to_unused (tree * tp, int * walk_subtrees,
{
{
if
(
!
EXPR_P
(
*
tp
)
&&
!
GIMPLE_STMT_P
(
*
tp
)
&&
!
CONSTANT_CLASS_P
(
*
tp
))
if
(
!
EXPR_P
(
*
tp
)
&&
!
GIMPLE_STMT_P
(
*
tp
)
&&
!
CONSTANT_CLASS_P
(
*
tp
))
*
walk_subtrees
=
0
;
*
walk_subtrees
=
0
;
if
(
DECL_P
(
*
tp
)
&&
!
TREE_PUBLIC
(
*
tp
)
&&
!
TREE_USED
(
*
tp
)
if
(
DECL_P
(
*
tp
)
&&
!
TREE_PUBLIC
(
*
tp
)
&&
!
TREE_USED
(
*
tp
)
&&
!
TREE_ASM_WRITTEN
(
*
tp
))
&&
!
TREE_ASM_WRITTEN
(
*
tp
))
return
*
tp
;
return
*
tp
;
...
@@ -10137,7 +10137,7 @@ reference_to_unused (tree * tp, int * walk_subtrees,
...
@@ -10137,7 +10137,7 @@ reference_to_unused (tree * tp, int * walk_subtrees,
{
{
struct
cgraph_node
*
node
=
cgraph_node
(
*
tp
);
struct
cgraph_node
*
node
=
cgraph_node
(
*
tp
);
if
(
!
node
->
output
)
if
(
!
node
->
output
)
return
*
tp
;
return
*
tp
;
}
}
return
NULL_TREE
;
return
NULL_TREE
;
...
@@ -10173,7 +10173,7 @@ rtl_for_decl_init (tree init, tree type)
...
@@ -10173,7 +10173,7 @@ rtl_for_decl_init (tree init, tree type)
CONCAT: FIXME! */
CONCAT: FIXME! */
else
if
(
AGGREGATE_TYPE_P
(
type
)
||
TREE_CODE
(
type
)
==
COMPLEX_TYPE
)
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. */
FIXME: generic vectors ought to work too. */
else
if
(
TREE_CODE
(
type
)
==
VECTOR_TYPE
&&
TYPE_MODE
(
type
)
==
BLKmode
)
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,
...
@@ -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
gcc_assert
(
TREE_CODE
(
decl
)
==
VAR_DECL
||
TREE_CODE
(
decl
)
==
PARM_DECL
||
TREE_CODE
(
decl
)
==
RESULT_DECL
);
||
TREE_CODE
(
decl
)
==
RESULT_DECL
);
/* See if we possibly have multiple locations for this variable. */
/* See if we possibly have multiple locations for this variable. */
loc_list
=
lookup_decl_loc
(
decl
);
loc_list
=
lookup_decl_loc
(
decl
);
...
@@ -10461,7 +10461,7 @@ add_location_or_const_value_attribute (dw_die_ref die, tree decl,
...
@@ -10461,7 +10461,7 @@ add_location_or_const_value_attribute (dw_die_ref die, tree decl,
rtx
varloc
;
rtx
varloc
;
/* Now that we know what section we are using for a base,
/* 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
The first location information is what is passed to the
function that creates the location list, and the remaining
function that creates the location list, and the remaining
locations just get added on to that list.
locations just get added on to that list.
...
@@ -10515,14 +10515,14 @@ add_location_or_const_value_attribute (dw_die_ref die, tree decl,
...
@@ -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
/* Try to get some constant RTL for this decl, and use that as the value of
the location. */
the location. */
rtl
=
rtl_for_decl_location
(
decl
);
rtl
=
rtl_for_decl_location
(
decl
);
if
(
rtl
&&
(
CONSTANT_P
(
rtl
)
||
GET_CODE
(
rtl
)
==
CONST_STRING
))
if
(
rtl
&&
(
CONSTANT_P
(
rtl
)
||
GET_CODE
(
rtl
)
==
CONST_STRING
))
{
{
add_const_value_attribute
(
die
,
rtl
);
add_const_value_attribute
(
die
,
rtl
);
return
;
return
;
}
}
/* If we have tried to generate the location otherwise, and it
/* 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
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. */
location list, try generating a location from that. */
...
@@ -11004,7 +11004,7 @@ add_abstract_origin_attribute (dw_die_ref die, tree origin)
...
@@ -11004,7 +11004,7 @@ add_abstract_origin_attribute (dw_die_ref die, tree origin)
if
(
TYPE_P
(
fn
))
if
(
TYPE_P
(
fn
))
fn
=
TYPE_STUB_DECL
(
fn
);
fn
=
TYPE_STUB_DECL
(
fn
);
fn
=
decl_function_context
(
fn
);
fn
=
decl_function_context
(
fn
);
if
(
fn
)
if
(
fn
)
dwarf2out_abstract_function
(
fn
);
dwarf2out_abstract_function
(
fn
);
...
@@ -11907,7 +11907,7 @@ gen_subprogram_die (tree decl, dw_die_ref context_die)
...
@@ -11907,7 +11907,7 @@ gen_subprogram_die (tree decl, dw_die_ref context_die)
{
{
if
(
DECL_DECLARED_INLINE_P
(
decl
))
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
);
add_AT_unsigned
(
subr_die
,
DW_AT_inline
,
DW_INL_declared_inlined
);
else
else
add_AT_unsigned
(
subr_die
,
DW_AT_inline
,
DW_INL_declared_not_inlined
);
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)
...
@@ -11915,9 +11915,9 @@ gen_subprogram_die (tree decl, dw_die_ref context_die)
else
else
{
{
if
(
cgraph_function_possibly_inlined_p
(
decl
))
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
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
);
equate_decl_number_to_die
(
decl
,
subr_die
);
...
@@ -11937,7 +11937,7 @@ gen_subprogram_die (tree decl, dw_die_ref context_die)
...
@@ -11937,7 +11937,7 @@ gen_subprogram_die (tree decl, dw_die_ref context_die)
ASM_GENERATE_INTERNAL_LABEL
(
label_id
,
FUNC_END_LABEL
,
ASM_GENERATE_INTERNAL_LABEL
(
label_id
,
FUNC_END_LABEL
,
current_function_funcdef_no
);
current_function_funcdef_no
);
add_AT_lbl_id
(
subr_die
,
DW_AT_high_pc
,
label_id
);
add_AT_lbl_id
(
subr_die
,
DW_AT_high_pc
,
label_id
);
add_pubname
(
decl
,
subr_die
);
add_pubname
(
decl
,
subr_die
);
add_arange
(
decl
,
subr_die
);
add_arange
(
decl
,
subr_die
);
}
}
...
@@ -11986,7 +11986,7 @@ gen_subprogram_die (tree decl, dw_die_ref context_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
/* Compute a displacement from the "steady-state frame pointer" to
the CFA. The former is what all stack slots and argument slots
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
debugger about. We'll need to adjust all frame_base references
by this displacement. */
by this displacement. */
compute_frame_pointer_to_fb_displacement
(
cfa_fb_offset
);
compute_frame_pointer_to_fb_displacement
(
cfa_fb_offset
);
...
@@ -12109,17 +12109,17 @@ gen_variable_die (tree decl, dw_die_ref context_die)
...
@@ -12109,17 +12109,17 @@ gen_variable_die (tree decl, dw_die_ref context_die)
the program. For example, consider the C++
the program. For example, consider the C++
test case:
test case:
template <class T>
template <class T>
struct S { static const int i = 7; };
struct S { static const int i = 7; };
template <class T>
template <class T>
const int S<T>::i;
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
Here, S<int>::i is not DECL_EXTERNAL, but no
definition is required, so the compiler will
definition is required, so the compiler will
not emit a definition. */
not emit a definition. */
||
(
TREE_CODE
(
decl
)
==
VAR_DECL
||
(
TREE_CODE
(
decl
)
==
VAR_DECL
&&
DECL_COMDAT
(
decl
)
&&
!
TREE_ASM_WRITTEN
(
decl
))
&&
DECL_COMDAT
(
decl
)
&&
!
TREE_ASM_WRITTEN
(
decl
))
||
class_or_namespace_scope_p
(
context_die
));
||
class_or_namespace_scope_p
(
context_die
));
...
@@ -12997,8 +12997,8 @@ gen_block_die (tree stmt, dw_die_ref context_die, int depth)
...
@@ -12997,8 +12997,8 @@ gen_block_die (tree stmt, dw_die_ref context_die, int depth)
if
(
debug_info_level
>
DINFO_LEVEL_TERSE
)
if
(
debug_info_level
>
DINFO_LEVEL_TERSE
)
/* We are not in terse mode so *any* local declaration counts
/* We are not in terse mode so *any* local declaration counts
as being a "significant" one. */
as being a "significant" one. */
must_output_die
=
(
BLOCK_VARS
(
stmt
)
!=
NULL
must_output_die
=
(
BLOCK_VARS
(
stmt
)
!=
NULL
&&
(
TREE_USED
(
stmt
)
&&
(
TREE_USED
(
stmt
)
||
TREE_ASM_WRITTEN
(
stmt
)
||
TREE_ASM_WRITTEN
(
stmt
)
||
BLOCK_ABSTRACT
(
stmt
)));
||
BLOCK_ABSTRACT
(
stmt
)));
else
else
...
@@ -13055,14 +13055,14 @@ decls_for_scope (tree stmt, dw_die_ref context_die, int depth)
...
@@ -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
))
for
(
decl
=
BLOCK_VARS
(
stmt
);
decl
!=
NULL
;
decl
=
TREE_CHAIN
(
decl
))
{
{
dw_die_ref
die
;
dw_die_ref
die
;
if
(
TREE_CODE
(
decl
)
==
FUNCTION_DECL
)
if
(
TREE_CODE
(
decl
)
==
FUNCTION_DECL
)
die
=
lookup_decl_die
(
decl
);
die
=
lookup_decl_die
(
decl
);
else
if
(
TREE_CODE
(
decl
)
==
TYPE_DECL
&&
TYPE_DECL_IS_STUB
(
decl
))
else
if
(
TREE_CODE
(
decl
)
==
TYPE_DECL
&&
TYPE_DECL_IS_STUB
(
decl
))
die
=
lookup_type_die
(
TREE_TYPE
(
decl
));
die
=
lookup_type_die
(
TREE_TYPE
(
decl
));
else
else
die
=
NULL
;
die
=
NULL
;
if
(
die
!=
NULL
&&
die
->
die_parent
==
NULL
)
if
(
die
!=
NULL
&&
die
->
die_parent
==
NULL
)
add_child_die
(
context_die
,
die
);
add_child_die
(
context_die
,
die
);
/* Do not produce debug information for static variables since
/* Do not produce debug information for static variables since
...
@@ -13622,7 +13622,7 @@ dwarf2out_decl (tree decl)
...
@@ -13622,7 +13622,7 @@ dwarf2out_decl (tree decl)
if
(
debug_info_level
<=
DINFO_LEVEL_TERSE
)
if
(
debug_info_level
<=
DINFO_LEVEL_TERSE
)
return
;
return
;
if
(
lookup_decl_die
(
decl
)
!=
NULL
)
if
(
lookup_decl_die
(
decl
)
!=
NULL
)
return
;
return
;
break
;
break
;
case
TYPE_DECL
:
case
TYPE_DECL
:
...
@@ -13773,7 +13773,7 @@ maybe_emit_file (struct dwarf_file_data * fd)
...
@@ -13773,7 +13773,7 @@ maybe_emit_file (struct dwarf_file_data * fd)
else
else
fd
->
emitted_number
=
1
;
fd
->
emitted_number
=
1
;
last_emitted_file
=
fd
;
last_emitted_file
=
fd
;
if
(
DWARF2_ASM_LINE_DEBUG_INFO
)
if
(
DWARF2_ASM_LINE_DEBUG_INFO
)
{
{
fprintf
(
asm_out_file
,
"
\t
.file %u "
,
fd
->
emitted_number
);
fprintf
(
asm_out_file
,
"
\t
.file %u "
,
fd
->
emitted_number
);
...
@@ -13781,7 +13781,7 @@ maybe_emit_file (struct dwarf_file_data * fd)
...
@@ -13781,7 +13781,7 @@ maybe_emit_file (struct dwarf_file_data * fd)
fputc
(
'\n'
,
asm_out_file
);
fputc
(
'\n'
,
asm_out_file
);
}
}
}
}
return
fd
->
emitted_number
;
return
fd
->
emitted_number
;
}
}
...
@@ -13844,7 +13844,7 @@ static void
...
@@ -13844,7 +13844,7 @@ static void
dwarf2out_begin_function
(
tree
fun
)
dwarf2out_begin_function
(
tree
fun
)
{
{
htab_empty
(
decl_loc_table
);
htab_empty
(
decl_loc_table
);
if
(
function_section
(
fun
)
!=
text_section
)
if
(
function_section
(
fun
)
!=
text_section
)
have_multiple_function_sections
=
true
;
have_multiple_function_sections
=
true
;
}
}
...
@@ -13860,7 +13860,7 @@ dwarf2out_source_line (unsigned int line, const char *filename)
...
@@ -13860,7 +13860,7 @@ dwarf2out_source_line (unsigned int line, const char *filename)
&&
line
!=
0
)
&&
line
!=
0
)
{
{
int
file_num
=
maybe_emit_file
(
lookup_filename
(
filename
));
int
file_num
=
maybe_emit_file
(
lookup_filename
(
filename
));
switch_to_section
(
current_function_section
());
switch_to_section
(
current_function_section
());
/* If requested, emit something human-readable. */
/* If requested, emit something human-readable. */
...
@@ -13879,7 +13879,7 @@ dwarf2out_source_line (unsigned int line, const char *filename)
...
@@ -13879,7 +13879,7 @@ dwarf2out_source_line (unsigned int line, const char *filename)
else
if
(
function_section
(
current_function_decl
)
!=
text_section
)
else
if
(
function_section
(
current_function_decl
)
!=
text_section
)
{
{
dw_separate_line_info_ref
line_info
;
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_CODE_LABEL
,
separate_line_info_table_in_use
);
separate_line_info_table_in_use
);
...
@@ -14090,7 +14090,7 @@ dwarf2out_init (const char *filename ATTRIBUTE_UNUSED)
...
@@ -14090,7 +14090,7 @@ dwarf2out_init (const char *filename ATTRIBUTE_UNUSED)
ASM_GENERATE_INTERNAL_LABEL
(
abbrev_section_label
,
ASM_GENERATE_INTERNAL_LABEL
(
abbrev_section_label
,
DEBUG_ABBREV_SECTION_LABEL
,
0
);
DEBUG_ABBREV_SECTION_LABEL
,
0
);
ASM_GENERATE_INTERNAL_LABEL
(
text_section_label
,
TEXT_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
);
COLD_TEXT_SECTION_LABEL
,
0
);
ASM_GENERATE_INTERNAL_LABEL
(
cold_end_label
,
COLD_END_LABEL
,
0
);
ASM_GENERATE_INTERNAL_LABEL
(
cold_end_label
,
COLD_END_LABEL
,
0
);
...
@@ -14149,7 +14149,7 @@ static void
...
@@ -14149,7 +14149,7 @@ static void
verify_marks_clear
(
dw_die_ref
die
)
verify_marks_clear
(
dw_die_ref
die
)
{
{
dw_die_ref
c
;
dw_die_ref
c
;
gcc_assert
(
!
die
->
die_mark
);
gcc_assert
(
!
die
->
die_mark
);
FOR_EACH_CHILD
(
die
,
c
,
verify_marks_clear
(
c
));
FOR_EACH_CHILD
(
die
,
c
,
verify_marks_clear
(
c
));
}
}
...
@@ -14162,7 +14162,7 @@ static void
...
@@ -14162,7 +14162,7 @@ static void
prune_unmark_dies
(
dw_die_ref
die
)
prune_unmark_dies
(
dw_die_ref
die
)
{
{
dw_die_ref
c
;
dw_die_ref
c
;
if
(
die
->
die_mark
)
if
(
die
->
die_mark
)
die
->
die_mark
=
0
;
die
->
die_mark
=
0
;
FOR_EACH_CHILD
(
die
,
c
,
prune_unmark_dies
(
c
));
FOR_EACH_CHILD
(
die
,
c
,
prune_unmark_dies
(
c
));
...
@@ -14215,9 +14215,9 @@ prune_unused_types_mark (dw_die_ref die, int dokids)
...
@@ -14215,9 +14215,9 @@ prune_unused_types_mark (dw_die_ref die, int dokids)
prune_unused_types_walk_attribs
(
die
);
prune_unused_types_walk_attribs
(
die
);
/* If this node is a specification,
/* 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
)
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
)
if
(
dokids
&&
die
->
die_mark
!=
2
)
...
@@ -14329,7 +14329,7 @@ prune_unused_types_prune (dw_die_ref die)
...
@@ -14329,7 +14329,7 @@ prune_unused_types_prune (dw_die_ref die)
if
(
!
die
->
die_child
)
if
(
!
die
->
die_child
)
return
;
return
;
c
=
die
->
die_child
;
c
=
die
->
die_child
;
do
{
do
{
dw_die_ref
prev
=
c
;
dw_die_ref
prev
=
c
;
...
@@ -14574,7 +14574,7 @@ dwarf2out_finish (const char *filename)
...
@@ -14574,7 +14574,7 @@ dwarf2out_finish (const char *filename)
output_pubnames
(
pubtype_table
);
output_pubnames
(
pubtype_table
);
}
}
#endif
#endif
/* Output the address range information. We only put functions in the arange
/* 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. */
table, so don't write it out if we don't have any. */
if
(
fde_table_in_use
)
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