This is the mail archive of the binutils@sourceware.cygnus.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: gas .macro quirks, and an ARM bug


On Wed, 7 Jun 2000, Andrew E. Mileski wrote:

> I don't know if these are bugs, features, or coding errors on my part.
> The first two apply to x86 and ARM, the third applies to ARM alone and
> looks like a genuine bug.  The version of "as" doesn't seem to matter.
> 
> 1) String arguments passed to macros have their quoting removed.

I'm not sure, but I think this is controlled by the macro_alternate variable
that is true if TC_A29K is defined.

> 2) Cannot pass a string argument with escaped characters to macros.

I agree that this is weird.  The macros don't support expansion of escaped
characters in arguments to macros.  Escaped characters are just passed on,
with one exception for the quote character itself.  I think the correct
behaviour would be to pass '\"' and '\'' on as an escaped character and not
treat them as argument delimiters.

Ulf

2000-06-07  Ulf Carlsson  <ulfc@engr.sgi.com>

	* macro.c (getstring): Make it possible to escape the quote character.

Index: macro.c
===================================================================
RCS file: /cvs/src/src/gas/macro.c,v
retrieving revision 1.7
diff -u -p -r1.7 macro.c
--- macro.c	2000/05/01 14:01:06	1.7
+++ macro.c	2000/06/07 21:49:26
@@ -312,6 +312,12 @@ getstring (idx, in, acc)
 		  idx++  ;
 		  sb_add_char (acc, in->ptr[idx++]);
 		}
+	      else if (in->ptr[idx] == '\\' && in->ptr[idx+1] == tchar)
+		{
+		  sb_add_char (acc, '\\');
+		  sb_add_char (acc, tchar);
+		  idx += 2;
+		}
 	      else
 		{
 		  if (in->ptr[idx] == tchar)


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]