Bill Allombert on Sun, 15 Jun 2003 18:30:02 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

getting rid of cpp warning


Hello pari-dev,

The following patch is supposed to get rid of the cpp warning
with gcc-3.x.

In accordance to the cpp-3.2 manual

Miscellaneous obsolete features
-------------------------------

   Here are a few more obsolete features.

   * Attempting to paste two tokens which together do not form a valid
     preprocessing token.

     The preprocessor currently warns about this, and the resulting
     preprocessed output is undefined.  The tokens remain distinct if
     the preprocessor is being used directly by the compiler front end.

     Most of the time, when you get this warning, you will find that
     `##' is being used superstitiously, to guard against whitespace
     appearing between two tokens.  It is almost always safe to delete
     the `##'.
and

Concatenation
=============

   However, two tokens that don't together form a valid token cannot be
pasted together.  For example, you cannot concatenate `x' with `+' in
either order.  If you try, the preprocessor issues a warning and emits
the two tokens.  Whether it puts white space between the tokens is
undefined.  It is common to find unnecessary uses of `##' in complex
macros.  If you get this warning, it is likely that you can simply
remove the `##'.

Cheers,
Bill.

Index: src/kernel/ix86/l0asm.h
===================================================================
RCS file: /home/megrez/cvsroot/pari/src/kernel/ix86/l0asm.h,v
retrieving revision 1.2
diff -u -r1.2 l0asm.h
--- src/kernel/ix86/l0asm.h     2000/11/03 21:00:25     1.2
+++ src/kernel/ix86/l0asm.h     2003/06/15 16:13:17
@@ -121,7 +121,7 @@
 #else
 #  define TEXT() .text
 #  define GLOBL(name) .globl name
-#  define FUNBEGIN(name) C(name##:)
+#  define FUNBEGIN(name) C(name:)
 #  define FUNEND()
 #endif