problem with stabs on ARM

Nick Clifton nickc@cygnus.com
Fri Apr 7 11:36:00 GMT 2000


Hi Phillip,

: Here's a patch for the bug mentioned in
: < http://gcc.gnu.org/ml/gcc-bugs/2000-04/msg00044.html >.  It seems to fix 
: the problem for me.
: 
: p.
: 
: 2000-04-06  Philip Blundell  <philb@gnu.org>
: 
: 	* config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' and `@'
: 	too.
: 
: Index: arm.h
: ===================================================================
: RCS file: /cvs/gcc/egcs/gcc/config/arm/arm.h,v
: retrieving revision 1.49.2.17
: diff -u -p -u -r1.49.2.17 arm.h
: --- arm.h	2000/03/31 16:30:17	1.49.2.17
: +++ arm.h	2000/04/07 18:01:24
: @@ -1834,6 +1834,8 @@ typedef struct
:  #define ARM_NAME_ENCODING_LENGTHS		\
:    case SHORT_CALL_FLAG_CHAR: return 1;		\
:    case LONG_CALL_FLAG_CHAR:  return 1;		\
: +  case '*':		     return 1;		\
: +  case '@':		     return 1;		\
:    SUBTARGET_NAME_ENCODING_LENGTHS		

Well the case for '*' is fine, but I am worried about the case for
'@'.  Did you find a situation where it was needed ?  The reason I ask
is beause the arm-pe port uses the '@' to prefix to encode imported
and exported DLL symbols, and your code will clash with this.

>From gcc/config/arm/pe.h:

  #define ARM_PE_FLAG_CHAR '@'

  /* Ensure that @x. will be stripped from the function name.  */
  #define SUBTARGET_NAME_ENCODING_LENGTHS  \
    case ARM_PE_FLAG_CHAR: return 3;


Cheers
	Nick


More information about the Gcc-patches mailing list