Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [PATCH/RFC] coffread.c: delete param
@ 2003-10-14 21:41 Elena Zannoni
  2003-10-15  8:56 ` Richard Earnshaw
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Elena Zannoni @ 2003-10-14 21:41 UTC (permalink / raw)
  To: gdb-patches; +Cc: nickc, rearnsha


Based on the discussion in this thread:
http://sources.redhat.com/ml/gdb-patches/2003-10/msg00405.html

I don't have a set up to test this, though. It does build, that's all
I can say.

[Richard, Nick, this does affect arm-coff]

elena

2003-10-14  Elena Zannoni  <ezannoni@redhat.com>

	* coffread.c (coff_symtab_read): Remove passing of info parameter
	to prim_record_minimal_symbol_and_info.

Index: coffread.c
===================================================================
RCS file: /cvs/uberbaum/gdb/coffread.c,v
retrieving revision 1.45
diff -u -p -r1.45 coffread.c
--- coffread.c	21 Sep 2003 01:26:44 -0000	1.45
+++ coffread.c	14 Oct 2003 21:37:31 -0000
@@ -926,15 +926,8 @@ coff_symtab_read (long symtab_offset, un
 	    if (cs->c_name[0] != '@' /* Skip tdesc symbols */ )
 	      {
 		struct minimal_symbol *msym;
-
- 		/* FIXME: cagney/2001-02-01: The nasty (int) -> (long)
-                   -> (void*) cast is to ensure that that the value of
-                   cs->c_sclass can be correctly stored in a void
-                   pointer in MSYMBOL_INFO.  Better solutions
-                   welcome. */
-		gdb_assert (sizeof (void *) >= sizeof (cs->c_sclass));
 		msym = prim_record_minimal_symbol_and_info
-		  (cs->c_name, tmpaddr, ms_type, (void *) (long) cs->c_sclass,
+		  (cs->c_name, tmpaddr, ms_type, NULL,
 		   sec, NULL, objfile);
 		if (msym)
 		  COFF_MAKE_MSYMBOL_SPECIAL (cs->c_sclass, msym);


^ permalink raw reply	[flat|nested] 10+ messages in thread
* Re: [PATCH/RFC] coffread.c: delete param
@ 2003-10-15 16:26 Michael Elizabeth Chastain
  2003-10-15 16:37 ` Elena Zannoni
  0 siblings, 1 reply; 10+ messages in thread
From: Michael Elizabeth Chastain @ 2003-10-15 16:26 UTC (permalink / raw)
  To: ezannoni, nickc; +Cc: gdb-patches, rearnsha

Nickc writes:
> Given Andrew's comment in the code, I would be rather wary of this
> patch.  Presumably there is some good reason for passing the
> cs->c_sclass field in the (void *) pointer argument slot, or otherwise
> Andrew would not have gone to all that trouble of casting it.

I figured out some of the history:

Back in gdb 4.17, arm_pc_is_thumb in arm-tdep.c used this c_sclass
information to determine whether a symbol is a Thumb or Arm function.
gdb 4.18 rewrote arm_pc_is_thumb with a new mechanism based on
COFF_MAKE_MSYMBOL_SPECIAL, which sets a flag bit instead of storing the
sclass and reading it later.  That enables other readers besides the
coff reader to mark functions as special (ELF_MAKE_MSYMBOL_SPECIAL
in particular).

The change from 4.17 to 4.18 added the new COFF_MAKE_MSYMBOL_SPECIAL,
and changed arm-tdep.c to use the new COFF_MAKE_MSYMBOL_SPECIAL,
but did not delete the old dangling c_sclass code.

Someone with access to the old Cygnus CVS repository might be able
to say more about the exact change some time between 4.17 and 4.18.

Andrew C came along a few years later and added a cast just to make
the compiler happy -- just an innocent janitor.

It's very unlikely that Elena's change will change the behavior of gdb.
This c_sclass info has been dead since 4.18, replaced by
COFF_MAKE_MSYMBOL_SPECIAL.

It would be nice if someone could build and test arm-coff to verify
this line of reasoning.  But, it's also nice to know the history,
which explains why c_sclass is stored, but never read.

> Does it improve things ?  :-)  If so, what ?

It's part of a cleanup for the msymbol.info field.

There are three different places in gdb which use msymbol.info.
This is one of them.  The improvement is that getting rid
of dead code makes it simpler to talk about the other two places.

Michael C


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2003-11-05 15:30 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-10-14 21:41 [PATCH/RFC] coffread.c: delete param Elena Zannoni
2003-10-15  8:56 ` Richard Earnshaw
2003-10-15 15:10   ` Andrew Cagney
2003-10-15 15:25 ` Nick Clifton
2003-10-15 15:39   ` Andrew Cagney
2003-10-15 15:59   ` Elena Zannoni
2003-11-05 15:30 ` Elena Zannoni
2003-10-15 16:26 Michael Elizabeth Chastain
2003-10-15 16:37 ` Elena Zannoni
2003-10-15 16:47   ` Andrew Cagney

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox