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
88dad228
Commit
88dad228
authored
Nov 20, 1996
by
Jason Merrill
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
x
From-SVN: r13209
parent
d2872d37
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
63 additions
and
25 deletions
+63
-25
gcc/c-decl.c
+4
-0
gcc/dwarf2out.c
+51
-16
gcc/toplev.c
+6
-7
gcc/varasm.c
+2
-2
No files found.
gcc/c-decl.c
View file @
88dad228
...
...
@@ -1324,6 +1324,10 @@ pushtag (name, type)
tagged type. */
TYPE_STUB_DECL
(
type
)
=
pushdecl
(
build_decl
(
TYPE_DECL
,
NULL_TREE
,
type
));
/* An approximation for now, so we can tell this is a function-scope tag.
This will be updated in poplevel. */
TYPE_CONTEXT
(
type
)
=
DECL_CONTEXT
(
TYPE_STUB_DECL
(
type
));
}
/* Handle when a new declaration NEWDECL
...
...
gcc/dwarf2out.c
View file @
88dad228
...
...
@@ -5793,18 +5793,16 @@ add_bit_size_attribute (die, decl)
(
unsigned
)
TREE_INT_CST_LOW
(
DECL_SIZE
(
decl
)));
}
/* If the compiled language is
GNU
C, then add a 'prototyped'
/* If the compiled language is
ANSI
C, then add a 'prototyped'
attribute, if arg types are given for the parameters of a function. */
inline
void
add_prototyped_attribute
(
die
,
func_type
)
register
dw_die_ref
die
;
register
tree
func_type
;
{
if
((
strcmp
(
language_string
,
"GNU C"
)
==
0
)
&&
(
TYPE_ARG_TYPES
(
func_type
)
!=
NULL
))
{
add_AT_flag
(
die
,
DW_AT_prototyped
,
0
);
}
if
(
get_AT_unsigned
(
comp_unit_die
,
DW_AT_language
)
==
DW_LANG_C89
&&
TYPE_ARG_TYPES
(
func_type
)
!=
NULL
)
add_AT_flag
(
die
,
DW_AT_prototyped
,
1
);
}
...
...
@@ -5893,6 +5891,11 @@ scope_die_for (t, context_die)
register
tree
containing_scope
;
register
unsigned
long
i
;
/* Function-local tags and functions get stuck in limbo until they are
fixed up by decls_for_scope. */
if
(
context_die
==
NULL
)
return
NULL
;
/* Walk back up the declaration tree looking for a place to define
this type. */
if
(
TREE_CODE_CLASS
(
TREE_CODE
(
t
))
==
't'
)
...
...
@@ -6037,7 +6040,7 @@ decl_start_label (decl)
/* These routines generate the internnal representation of the DIE's for
the compilation unit. Debugging information is collected by walking
the declaration trees passed in from dwarf2out_
file_scope_
decl(). */
the declaration trees passed in from dwarf2out_decl(). */
static
void
gen_array_type_die
(
type
,
context_die
)
...
...
@@ -6489,6 +6492,10 @@ gen_subprogram_die (decl, context_die)
fp_loc
=
new_loc_descr
(
DW_OP_reg0
+
fp_reg
);
add_AT_loc
(
subr_die
,
DW_AT_frame_base
,
fp_loc
);
if
(
current_function_needs_context
)
add_AT_loc
(
subr_die
,
DW_AT_static_link
,
loc_descriptor
(
lookup_static_chain
(
decl
)));
#ifdef DWARF_GNU_EXTENSIONS
ASM_GENERATE_INTERNAL_LABEL
(
label_id
,
BODY_BEGIN_LABEL
,
current_funcdef_number
);
...
...
@@ -7325,13 +7332,28 @@ decls_for_scope (stmt, context_die, depth)
next_block_number
++
;
}
/* Output the DIEs to represent all of the data objects, functions,
typedefs, and tagged types declared directly within this block but not
within any nested sub-blocks. */
/* Output the DIEs to represent all of the data objects and typedefs
declared directly within this block but not within any nested
sub-blocks. Also, nested function and tag DIEs have been
generated with a parent of NULL; fix that up now. */
for
(
decl
=
BLOCK_VARS
(
stmt
);
decl
!=
NULL
;
decl
=
TREE_CHAIN
(
decl
))
{
gen_decl_die
(
decl
,
context_die
);
if
(
TREE_CODE
(
decl
)
==
FUNCTION_DECL
)
{
register
dw_die_ref
die
=
lookup_decl_die
(
decl
);
add_child_die
(
context_die
,
die
);
}
else
if
(
TREE_CODE
(
decl
)
==
TYPE_DECL
&&
TYPE_DECL_IS_STUB
(
decl
))
{
register
dw_die_ref
die
=
lookup_type_die
(
TREE_TYPE
(
decl
));
if
(
die
)
add_child_die
(
context_die
,
die
);
else
gen_decl_die
(
decl
,
context_die
);
}
else
gen_decl_die
(
decl
,
context_die
);
}
/* Output the DIEs to represent all sub-blocks (and the items declared
...
...
@@ -7478,10 +7500,11 @@ gen_decl_die (decl, context_die)
/***************** Debug Information Generation Hooks ***********************/
void
dwarf2out_
file_scope_decl
(
decl
,
set_finalizing
)
dwarf2out_
decl
(
decl
)
register
tree
decl
;
register
int
set_finalizing
;
{
register
dw_die_ref
context_die
=
comp_unit_die
;
if
(
TREE_CODE
(
decl
)
==
ERROR_MARK
)
{
return
;
...
...
@@ -7544,6 +7567,13 @@ dwarf2out_file_scope_decl (decl, set_finalizing)
{
return
;
}
/* If we're a nested function, initially use a parent of NULL; if we're
a plain function, this will be fixed up in decls_for_scope. If
we're a method, it will be ignored, since we already have a DIE. */
if
(
decl_function_context
(
decl
))
context_die
=
NULL
;
break
;
case
VAR_DECL
:
...
...
@@ -7574,17 +7604,22 @@ dwarf2out_file_scope_decl (decl, set_finalizing)
if
(
DECL_SOURCE_LINE
(
decl
)
==
0
)
return
;
/* If we are in terse mode, don't generate any DIEs to represent any
actual typedefs. */
/* If we are in terse mode, don't generate any DIEs for types. */
if
(
debug_info_level
<=
DINFO_LEVEL_TERSE
)
return
;
/* If we're a function-scope tag, initially use a parent of NULL;
this will be fixed up in decls_for_scope. */
if
(
decl_function_context
(
decl
))
context_die
=
NULL
;
break
;
default
:
return
;
}
gen_decl_die
(
decl
,
co
mp_uni
t_die
);
gen_decl_die
(
decl
,
co
ntex
t_die
);
if
(
TREE_CODE
(
decl
)
==
FUNCTION_DECL
&&
DECL_INITIAL
(
decl
)
!=
NULL
)
...
...
gcc/toplev.c
View file @
88dad228
...
...
@@ -2538,7 +2538,7 @@ compile_file (name)
if
(
write_symbols
==
DWARF2_DEBUG
&&
(
TREE_CODE
(
decl
)
!=
FUNCTION_DECL
||
!
DECL_INITIAL
(
decl
)))
TIMEVAR
(
symout_time
,
dwarf2out_
file_scope_decl
(
decl
,
1
));
TIMEVAR
(
symout_time
,
dwarf2out_
decl
(
decl
));
#endif
}
}
...
...
@@ -2782,9 +2782,8 @@ rest_of_type_compilation (type, toplev)
TIMEVAR
(
symout_time
,
dwarfout_file_scope_decl
(
TYPE_STUB_DECL
(
type
),
0
));
#endif
#ifdef DWARF2_DEBUGGING_INFO
/* Don't write out function-scope types here. */
if
(
write_symbols
==
DWARF2_DEBUG
&&
toplev
)
TIMEVAR
(
symout_time
,
dwarf2out_file_scope_decl
(
TYPE_STUB_DECL
(
type
),
0
));
if
(
write_symbols
==
DWARF2_DEBUG
)
TIMEVAR
(
symout_time
,
dwarf2out_decl
(
TYPE_STUB_DECL
(
type
)));
#endif
}
...
...
@@ -2900,7 +2899,7 @@ rest_of_compilation (decl)
if
(
write_symbols
==
DWARF2_DEBUG
)
{
set_decl_abstract_flags
(
decl
,
1
);
TIMEVAR
(
symout_time
,
dwarf2out_
file_scope_decl
(
decl
,
0
));
TIMEVAR
(
symout_time
,
dwarf2out_
decl
(
decl
));
set_decl_abstract_flags
(
decl
,
0
);
}
#endif
...
...
@@ -2934,7 +2933,7 @@ rest_of_compilation (decl)
if
(
write_symbols
==
DWARF2_DEBUG
)
{
set_decl_abstract_flags
(
decl
,
1
);
TIMEVAR
(
symout_time
,
dwarf2out_
file_scope_decl
(
decl
,
0
));
TIMEVAR
(
symout_time
,
dwarf2out_
decl
(
decl
));
set_decl_abstract_flags
(
decl
,
0
);
}
#endif
...
...
@@ -3431,7 +3430,7 @@ rest_of_compilation (decl)
#ifdef DWARF2_DEBUGGING_INFO
if
(
write_symbols
==
DWARF2_DEBUG
)
TIMEVAR
(
symout_time
,
dwarf2out_
file_scope_decl
(
decl
,
0
));
TIMEVAR
(
symout_time
,
dwarf2out_
decl
(
decl
));
#endif
exit_rest_of_compilation
:
...
...
gcc/varasm.c
View file @
88dad228
...
...
@@ -1183,7 +1183,7 @@ assemble_variable (decl, top_level, at_end, dont_output_data)
#ifdef DWARF2_DEBUGGING_INFO
if
(
write_symbols
==
DWARF2_DEBUG
&&
top_level
&&
DECL_CONTEXT
(
decl
))
dwarf2out_
file_scope_decl
(
decl
,
0
);
dwarf2out_
decl
(
decl
);
#endif
}
...
...
@@ -1316,7 +1316,7 @@ assemble_variable (decl, top_level, at_end, dont_output_data)
#ifdef DWARF2_DEBUGGING_INFO
if
(
write_symbols
==
DWARF2_DEBUG
&&
top_level
&&
DECL_CONTEXT
(
decl
))
dwarf2out_
file_scope_decl
(
decl
,
0
);
dwarf2out_
decl
(
decl
);
#endif
/* Only output DWARF debugging information for record-scope variables
...
...
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