Article View: gnu.gcc.bug
Article #1894BUGS (3) in GCC 1.30 - sdbout.c needs fixes (included)
From: Ron Guilmette
Date: Wed, 26 Oct 1988 23:01
Date: Wed, 26 Oct 1988 23:01
95 lines
3428 bytes
3428 bytes
BUGS (3) in GCC 1.30 -- suggested patches included below
In the file sdbout.c in GCC 1.30 there are three bugs.
A) The function sdbout_syms() is declared (implicitly) extern and later
is redeclared as static.
B) The macro PUT_SDB_FUNCTION_START outputs a COFF symbolic declaration
for the ".bf" (begin-function) symbol for each function, but it fails
to actually declare the name of the function itself.
C) In the function sdbout_end_function() the line number used in the
call to the macro PUT_SDB_FUNCTION_END() is an absolute (file)
line number. What is really required by the COFF standard is a
function-relative line number (i.e. the number of lines AFTER THE
START OF THE CURRENT FUNCTION at which the end-of-function was
encountered.
The following patches to sdbout.c fix all three of these bugs.
diff -rc2 1.30/sdbout.c 1.30-gnx/sdbout.c
*** 1.30/sdbout.c Mon Sep 26 14:43:59 1988
--- 1.30-gnx/sdbout.c Wed Oct 26 12:18:50 1988
***************
*** 44,48
void sdbout_init ();
! void sdbout_syms ();
void sdbout_symbol ();
void sdbout_tags();
--- 44,48 -----
void sdbout_init ();
! static void sdbout_syms ();
void sdbout_symbol ();
void sdbout_tags();
***************
*** 121,125
#ifndef PUT_SDB_FUNCTION_START
! #define PUT_SDB_FUNCTION_START(LINE) \
fprintf (asm_out_file, \
"\t.def\t.bf;\t.val\t.;\t.scl\t101;\t.line\t%d;\t.endef\n", \
--- 121,125 -----
#ifndef PUT_SDB_FUNCTION_START
! #define PUT_SDB_FUNCTION_START(LINE,NAME) \
fprintf (asm_out_file, \
"\t.def\t_%s;\t.val\t_%s;\t.scl\t2;\t.type\t044;\t.endef\n", \
***************
*** 123,126
#define PUT_SDB_FUNCTION_START(LINE) \
fprintf (asm_out_file, \
"\t.def\t.bf;\t.val\t.;\t.scl\t101;\t.line\t%d;\t.endef\n", \
(LINE))
--- 123,129 -----
#define PUT_SDB_FUNCTION_START(LINE,NAME) \
fprintf (asm_out_file, \
+ "\t.def\t_%s;\t.val\t_%s;\t.scl\t2;\t.type\t044;\t.endef\n", \
+ (NAME), (NAME)); \
+ fprintf (asm_out_file, \
"\t.def\t.bf;\t.val\t.;\t.scl\t101;\t.line\t%d;\t.endef\n", \
(LINE))
***************
*** 869,873
{
sdb_begin_function_line = line - 1;
! PUT_SDB_FUNCTION_START (line);
sdbout_parms (DECL_ARGUMENTS (current_function_decl));
sdbout_reg_parms (DECL_ARGUMENTS (current_function_decl));
--- 872,876 -----
{
sdb_begin_function_line = line - 1;
! PUT_SDB_FUNCTION_START (line, IDENTIFIER_POINTER (DECL_NAME (current_function_decl)));
sdbout_parms (DECL_ARGUMENTS (current_function_decl));
sdbout_reg_parms (DECL_ARGUMENTS (current_function_decl));
***************
*** 881,885
int line;
{
! PUT_SDB_FUNCTION_END (line);
/* Indicate we are between functions, for line-number output. */
--- 884,888 -----
int line;
{
! PUT_SDB_FUNCTION_END (line - sdb_begin_function_line); /* relative line # */
/* Indicate we are between functions, for line-number output. */
Technical Details
Message-ID:
<8810262301.AA08372@nsc.NSC.COM>Path:
arc1-ca.pugleaf.net!utzoo!telly!ddsw1!lll-winken!uunet!tut.cis.ohio-state.edu!nsc.nsc.com!rfgShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!telly!ddsw1!lll-winken!uunet!tut.cis.ohio-state.edu!nsc.nsc.com!rfg From: rfg@nsc.nsc.com (Ron Guilmette) Newsgroups: gnu.gcc.bug Subject: BUGS (3) in GCC 1.30 - sdbout.c needs fixes (included) Message-ID: <8810262301.AA08372@nsc.NSC.COM> Date: 26 Oct 88 23:01:27 GMT Sender: daemon@tut.cis.ohio-state.edu Distribution: gnu Organization: GNUs Not Usenet Lines: 94