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
65ecca65
Commit
65ecca65
authored
Jul 22, 2001
by
Neil Booth
Committed by
Neil Booth
Jul 22, 2001
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* dbxout.c, sdbout.c, varasm.c: Revert most recent patch.
From-SVN: r44237
parent
665e3293
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
109 additions
and
72 deletions
+109
-72
gcc/ChangeLog
+4
-0
gcc/dbxout.c
+2
-12
gcc/sdbout.c
+21
-53
gcc/varasm.c
+82
-7
No files found.
gcc/ChangeLog
View file @
65ecca65
2001-07-22 Neil Booth <neil@cat.daikokuya.demon.co.uk>
* dbxout.c, sdbout.c, varasm.c: Revert most recent debug patch.
2001-07-22 Richard Henderson <rth@redhat.com>
* regrename.c (regrename_optimize): Compute nregs for each
...
...
gcc/dbxout.c
View file @
65ecca65
...
...
@@ -313,7 +313,6 @@ static void dbxout_prepare_symbol PARAMS ((tree));
static
void
dbxout_finish_symbol
PARAMS
((
tree
));
static
void
dbxout_block
PARAMS
((
tree
,
int
,
tree
));
static
void
dbxout_begin_function
PARAMS
((
tree
));
static
void
dbxout_global_decl
PARAMS
((
tree
));
/* The debug hooks structure. */
#if defined (DBX_DEBUGGING_INFO)
...
...
@@ -344,7 +343,7 @@ struct gcc_debug_hooks dbx_debug_hooks =
#endif
debug_nothing_int
,
/* end_function */
dbxout_function_decl
,
d
bxout_global_decl
,
/* global_decl */
d
ebug_nothing_tree
,
/* global_decl */
debug_nothing_tree
,
/* deferred_inline_function */
debug_nothing_tree
,
/* outlining_inline_function */
debug_nothing_rtx
/* label */
...
...
@@ -370,7 +369,7 @@ struct gcc_debug_hooks xcoff_debug_hooks =
debug_nothing_tree
,
/* begin_function */
xcoffout_end_function
,
debug_nothing_tree
,
/* function_decl */
d
bxout_global_decl
,
/* global_decl */
d
ebug_nothing_tree
,
/* global_decl */
debug_nothing_tree
,
/* deferred_inline_function */
debug_nothing_tree
,
/* outlining_inline_function */
debug_nothing_rtx
/* label */
...
...
@@ -624,15 +623,6 @@ dbxout_end_block (line, n)
ASM_OUTPUT_INTERNAL_LABEL
(
asmfile
,
"LBE"
,
n
);
}
/* Debug information for a global DECL. Called from toplev.c after
compilation proper has finished. */
static
void
dbxout_global_decl
(
decl
)
tree
decl
;
{
dbxout_symbol
(
decl
,
0
);
}
/* Output dbx data for a function definition.
This includes a definition of the function name itself (a symbol),
definitions of the parameters (locating them in the parameter list)
...
...
gcc/sdbout.c
View file @
65ecca65
...
...
@@ -93,7 +93,6 @@ extern tree current_function_decl;
#include "sdbout.h"
static
void
sdbout_init
PARAMS
((
const
char
*
));
static
void
sdbout_finish
PARAMS
((
const
char
*
));
static
void
sdbout_start_source_file
PARAMS
((
unsigned
,
const
char
*
));
static
void
sdbout_end_source_file
PARAMS
((
unsigned
));
static
void
sdbout_begin_block
PARAMS
((
unsigned
,
unsigned
));
...
...
@@ -125,7 +124,6 @@ static void sdbout_field_types PARAMS ((tree));
static
void
sdbout_one_type
PARAMS
((
tree
));
static
void
sdbout_parms
PARAMS
((
tree
));
static
void
sdbout_reg_parms
PARAMS
((
tree
));
static
void
sdbout_global_decl
PARAMS
((
tree
));
/* Random macros describing parts of SDB data. */
...
...
@@ -300,16 +298,16 @@ static struct sdb_file *current_file;
/* The debug hooks structure. */
struct
gcc_debug_hooks
sdb_debug_hooks
=
{
sdbout_init
,
/* init */
sdbout_finish
,
/* finish */
debug_nothing_int_charstar
,
/* define */
debug_nothing_int_charstar
,
/* undef */
sdbout_start_source_file
,
/* start_source_file */
sdbout_end_source_file
,
/* end_source_file */
sdbout_begin_block
,
/* begin_block */
sdbout_end_block
,
/* end_block */
sdbout_init
,
debug_nothing_charstar
,
debug_nothing_int_charstar
,
debug_nothing_int_charstar
,
sdbout_start_source_file
,
sdbout_end_source_file
,
sdbout_begin_block
,
sdbout_end_block
,
debug_true_tree
,
/* ignore_block */
sdbout_source_line
,
/* source_line */
sdbout_source_line
,
#ifdef MIPS_DEBUGGING_INFO
/* Defer on MIPS systems so that parameter descriptions follow
function entry. */
...
...
@@ -319,11 +317,11 @@ struct gcc_debug_hooks sdb_debug_hooks =
sdbout_begin_prologue
,
/* begin_prologue */
debug_nothing_int
,
/* end_prologue */
#endif
sdbout_end_epilogue
,
/* end_epilogue */
sdbout_begin_function
,
/* begin_function */
sdbout_end_function
,
/* end_function */
sdbout_end_epilogue
,
sdbout_begin_function
,
sdbout_end_function
,
debug_nothing_tree
,
/* function_decl */
sdbout_global_decl
,
/* global_decl */
sdbout_global_decl
,
debug_nothing_tree
,
/* deferred_inline_function */
debug_nothing_tree
,
/* outlining_inline_function */
sdbout_label
...
...
@@ -1491,54 +1489,24 @@ sdbout_global_decl (decl)
tree
decl
;
{
if
(
TREE_CODE
(
decl
)
==
VAR_DECL
&&
!
DECL_EXTERNAL
(
decl
)
&&
DECL_RTL_SET_P
(
decl
))
&&
DECL_INITIAL
(
decl
)
&&
!
DECL_EXTERNAL
(
decl
)
&&
DECL_RTL
(
decl
)
!=
0
)
{
/* The COFF linker can move initialized global vars to the end.
And that can screw up the symbol ordering. Defer those for
sdbout_finish (). */
if
(
!
DECL_INITIAL
(
decl
)
||
!
TREE_PUBLIC
(
decl
))
And that can screw up the symbol ordering. By putting the
symbols in that order to begin with, we avoid a problem.
mcsun!unido!fauern!tumuc!pes@uunet.uu.net. */
if
(
TREE_PUBLIC
(
decl
))
sdbout_symbol
(
decl
,
0
);
/* Output COFF information for non-global file-scope initialized
variables. */
if
(
DECL_INITIAL
(
decl
)
&&
GET_CODE
(
DECL_RTL
(
decl
))
==
MEM
)
if
(
GET_CODE
(
DECL_RTL
(
decl
))
==
MEM
)
sdbout_toplevel_data
(
decl
);
}
}
/* Output initialized global vars at the end, in the order of
definition. See comment in sdbout_global_decl. */
static
void
sdbout_finish
(
main_filename
)
const
char
*
main_filename
ATTRIBUTE_UNUSED
;
{
tree
decl
=
getdecls
();
unsigned
int
len
=
list_length
(
decl
);
tree
*
vec
=
(
tree
*
)
xmalloc
(
sizeof
(
tree
)
*
len
);
unsigned
int
i
;
/* Process the decls in reverse order--earliest first. Put them
into VEC from back to front, then take out from front. */
for
(
i
=
0
;
i
<
len
;
i
++
,
decl
=
TREE_CHAIN
(
decl
))
vec
[
len
-
i
-
1
]
=
decl
;
for
(
i
=
0
;
i
<
len
;
i
++
)
{
decl
=
vec
[
i
];
if
(
TREE_CODE
(
decl
)
==
VAR_DECL
&&
!
DECL_EXTERNAL
(
decl
)
&&
DECL_INITIAL
(
decl
)
&&
TREE_PUBLIC
(
decl
)
&&
DECL_RTL_SET_P
(
decl
))
sdbout_symbol
(
decl
,
0
);
}
free
(
vec
);
}
/* Describe the beginning of an internal block within a function.
Also output descriptions of variables defined in this block.
...
...
gcc/varasm.c
View file @
65ecca65
...
...
@@ -1232,6 +1232,44 @@ assemble_variable (decl, top_level, at_end, dont_output_data)
last_assemble_variable_decl
=
0
;
if
(
DECL_RTL_SET_P
(
decl
)
&&
GET_CODE
(
DECL_RTL
(
decl
))
==
REG
)
{
/* Do output symbol info for global register variables, but do nothing
else for them. */
if
(
TREE_ASM_WRITTEN
(
decl
))
return
;
TREE_ASM_WRITTEN
(
decl
)
=
1
;
/* Do no output if -fsyntax-only. */
if
(
flag_syntax_only
)
return
;
#if defined (DBX_DEBUGGING_INFO) || defined (XCOFF_DEBUGGING_INFO)
/* File-scope global variables are output here. */
if
((
write_symbols
==
DBX_DEBUG
||
write_symbols
==
XCOFF_DEBUG
)
&&
top_level
)
dbxout_symbol
(
decl
,
0
);
#endif
#ifdef SDB_DEBUGGING_INFO
if
(
write_symbols
==
SDB_DEBUG
&&
top_level
/* Leave initialized global vars for end of compilation;
see comment in compile_file. */
&&
(
TREE_PUBLIC
(
decl
)
==
0
||
DECL_INITIAL
(
decl
)
==
0
))
sdbout_symbol
(
decl
,
0
);
#endif
/* Don't output any DWARF debugging information for variables here.
In the case of local variables, the information for them is output
when we do our recursive traversal of the tree representation for
the entire containing function. In the case of file-scope variables,
we output information for all of them at the very end of compilation
while we are doing our final traversal of the chain of file-scope
declarations. */
return
;
}
/* Normally no need to say anything here for external references,
since assemble_external is called by the language-specific code
when a declaration is first seen. */
...
...
@@ -1245,13 +1283,6 @@ assemble_variable (decl, top_level, at_end, dont_output_data)
if
(
TREE_CODE
(
decl
)
==
FUNCTION_DECL
)
return
;
/* Do nothing for global register variables. */
if
(
DECL_RTL_SET_P
(
decl
)
&&
GET_CODE
(
DECL_RTL
(
decl
))
==
REG
)
{
TREE_ASM_WRITTEN
(
decl
)
=
1
;
return
;
}
/* If type was incomplete when the variable was declared,
see if it is complete now. */
...
...
@@ -1380,6 +1411,27 @@ assemble_variable (decl, top_level, at_end, dont_output_data)
(
decl
,
"requested alignment for %s is greater than implemented alignment of %d."
,
rounded
);
#endif
#ifdef DBX_DEBUGGING_INFO
/* File-scope global variables are output here. */
if
(
write_symbols
==
DBX_DEBUG
&&
top_level
)
dbxout_symbol
(
decl
,
0
);
#endif
#ifdef SDB_DEBUGGING_INFO
if
(
write_symbols
==
SDB_DEBUG
&&
top_level
/* Leave initialized global vars for end of compilation;
see comment in compile_file. */
&&
(
TREE_PUBLIC
(
decl
)
==
0
||
DECL_INITIAL
(
decl
)
==
0
))
sdbout_symbol
(
decl
,
0
);
#endif
/* Don't output any DWARF debugging information for variables here.
In the case of local variables, the information for them is output
when we do our recursive traversal of the tree representation for
the entire containing function. In the case of file-scope variables,
we output information for all of them at the very end of compilation
while we are doing our final traversal of the chain of file-scope
declarations. */
#if 0 /* ??? We should either delete this or add a comment describing what
it was intended to do and why we shouldn't delete it. */
if (flag_shared_data)
...
...
@@ -1442,6 +1494,29 @@ assemble_variable (decl, top_level, at_end, dont_output_data)
/* Record current section so we can restore it if dbxout.c clobbers it. */
saved_in_section
=
in_section
;
/* Output the dbx info now that we have chosen the section. */
#ifdef DBX_DEBUGGING_INFO
/* File-scope global variables are output here. */
if
(
write_symbols
==
DBX_DEBUG
&&
top_level
)
dbxout_symbol
(
decl
,
0
);
#endif
#ifdef SDB_DEBUGGING_INFO
if
(
write_symbols
==
SDB_DEBUG
&&
top_level
/* Leave initialized global vars for end of compilation;
see comment in compile_file. */
&&
(
TREE_PUBLIC
(
decl
)
==
0
||
DECL_INITIAL
(
decl
)
==
0
))
sdbout_symbol
(
decl
,
0
);
#endif
/* Don't output any DWARF debugging information for variables here.
In the case of local variables, the information for them is output
when we do our recursive traversal of the tree representation for
the entire containing function. In the case of file-scope variables,
we output information for all of them at the very end of compilation
while we are doing our final traversal of the chain of file-scope
declarations. */
/* If the debugging output changed sections, reselect the section
that's supposed to be selected. */
if
(
in_section
!=
saved_in_section
)
...
...
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