[SCM] UNNAMED PROJECT branch, master, updated. debian/4.4-13-30-gc8f6f09
Bastien ROUCARIÈS
roucaries.bastien at gmail.com
Sun Jun 26 16:15:16 UTC 2011
The following commit has been merged in the master branch:
commit 30f61d2dc87fa3a319b17ad2ed679dcd93a2444c
Author: Bastien ROUCARIÈS <roucaries.bastien at gmail.com>
Date: Mon Jun 20 18:28:18 2011 +0200
Remove last potential symbols collision of _() macro
_() macro are not well named. Rename it to avoid collision.
diff --git a/cfortran.h b/cfortran.h
index b5ca338..044ff44 100644
--- a/cfortran.h
+++ b/cfortran.h
@@ -123,6 +123,15 @@ FOR ANY SUPPORT OR SERVICE OF THE CFORTRAN.H PACKAGE.
*/
+/*! Concatenate two string */
+#define CFORTRAN_CAT_(A,B) A##B
+/*! Well known xcat : concatenate after expansion */
+#define CFORTRAN_XCAT_(A,B) CFORTRAN_CAT_(A,B)
+/*! Concatenate two string */
+#define CFORTRAN_CAT_2(A,B) A##B
+/*! xcat but for three strings */
+#define CFORTRAN_XCAT_3(A,B,C) CFORTRAN_XCAT_(A, CFORTRAN_XCAT_(B,C))
+
/*
Determine what 8-byte integer data type is available.
'long long' is now supported by most compilers, but older
@@ -147,10 +156,6 @@ FOR ANY SUPPORT OR SERVICE OF THE CFORTRAN.H PACKAGE.
/* First prepare for the C compiler. */
-#define _0(A,B) A##B
-#define CFORTRAN_XCAT_(A,B) _0(A,B) /* see cat,xcat of K&R ANSI C p. 231 */
-#define _2(A,B) A##B /* K&R ANSI C p.230: .. identifier is not replaced */
-#define _3(A,B,C) CFORTRAN_XCAT_(A, CFORTRAN_XCAT_(B,C))
#if (defined(vax)&&defined(unix)) || (defined(__vax__)&&defined(__unix__))
#define VAXUltrix
@@ -350,7 +355,7 @@ only C calling FORTRAN subroutines will work using K&R style.*/
#define COMMON_BLOCK(UN,LN) CFORTRAN_XCAT_(LN,__)
#endif /* CLIPPERFortran */
#else
-#define COMMON_BLOCK(UN,LN) _3(_,LN,_)
+#define COMMON_BLOCK(UN,LN) CFORTRAN_XCAT_3(_,LN,_)
#endif /* CONVEXFortran */
#endif /* COMMON_BLOCK */
@@ -658,7 +663,7 @@ typedef DSC$DESCRIPTOR_A(1) fstringvector;
#define _NUM_ELEMS -1
#define _NUM_ELEM_ARG -2
#define NUM_ELEMS(A) A,_NUM_ELEMS
-#define NUM_ELEM_ARG(B) *_2(A,B),_NUM_ELEM_ARG
+#define NUM_ELEM_ARG(B) *CFORTRAN_CAT_2(A,B),_NUM_ELEM_ARG
#define TERM_CHARS(A,B) A,B
#ifndef __CF__KnR
static int num_elem(char *strv, unsigned elem_len, int term_char, int num_term)
@@ -726,12 +731,12 @@ return (int)num;
#endif
#define ZTRINGV_NUM(I) I
-#define ZTRINGV_ARGFP(I) (*(_2(A,I))) /* Undocumented. For PINT, etc. */
-#define ZTRINGV_ARGF(I) _2(A,I)
+#define ZTRINGV_ARGFP(I) (*(CFORTRAN_CAT_2(A,I))) /* Undocumented. For PINT, etc. */
+#define ZTRINGV_ARGF(I) CFORTRAN_CAT_2(A,I)
#ifdef CFSUBASFUN
#define ZTRINGV_ARGS(I) ZTRINGV_ARGF(I)
#else
-#define ZTRINGV_ARGS(I) _2(B,I)
+#define ZTRINGV_ARGS(I) CFORTRAN_CAT_2(B,I)
#endif
#define PBYTE_cfVP(A,B) PINT_cfVP(A,B)
@@ -832,11 +837,11 @@ typedef void (*cfCAST_FUNCTION)(CF_NULL_PROTO);
#define PSTRINGV_cfA(M,I,A,B) \
APATRINGV_cfA((char *)A,B,sizeof(A),firstindexlength(A),secondindexlength(A))
#define ZTRINGV_cfA(M,I,A,B) AATRINGV_cfA( (char *)A,B, \
- (_3(M,_ELEMS_,I))*(( _3(M,_ELEMLEN_,I))+1), \
- (_3(M,_ELEMS_,I)),(_3(M,_ELEMLEN_,I))+1)
+ (CFORTRAN_XCAT_3(M,_ELEMS_,I))*(( CFORTRAN_XCAT_3(M,_ELEMLEN_,I))+1), \
+ (CFORTRAN_XCAT_3(M,_ELEMS_,I)),(CFORTRAN_XCAT_3(M,_ELEMLEN_,I))+1)
#define PZTRINGV_cfA(M,I,A,B) APATRINGV_cfA( (char *)A,B, \
- (_3(M,_ELEMS_,I))*(( _3(M,_ELEMLEN_,I))+1), \
- (_3(M,_ELEMS_,I)),(_3(M,_ELEMLEN_,I))+1)
+ (CFORTRAN_XCAT_3(M,_ELEMS_,I))*(( CFORTRAN_XCAT_3(M,_ELEMLEN_,I))+1), \
+ (CFORTRAN_XCAT_3(M,_ELEMS_,I)),(CFORTRAN_XCAT_3(M,_ELEMLEN_,I))+1)
#define PBYTE_cfAAP(A,B) &A
#define PDOUBLE_cfAAP(A,B) &A
@@ -1476,12 +1481,12 @@ do{VVCF(T1,A1,B1) VVCF(T2,A2,B2) VVCF(T3,A3,B3) VVCF(T4,A4,B4) VVCF(T5,A5,B5
#define PLONGLONG_cfTYPE CFORTRAN_LONGLONG /* added by MR December 2005 */
#define PSHORT_cfTYPE short
-#define CFARGS0(A,T,V,W,X,Y,Z) _3(T,_cf,A)
-#define CFARGS1(A,T,V,W,X,Y,Z) _3(T,_cf,A)(V)
-#define CFARGS2(A,T,V,W,X,Y,Z) _3(T,_cf,A)(V,W)
-#define CFARGS3(A,T,V,W,X,Y,Z) _3(T,_cf,A)(V,W,X)
-#define CFARGS4(A,T,V,W,X,Y,Z) _3(T,_cf,A)(V,W,X,Y)
-#define CFARGS5(A,T,V,W,X,Y,Z) _3(T,_cf,A)(V,W,X,Y,Z)
+#define CFARGS0(A,T,V,W,X,Y,Z) CFORTRAN_XCAT_3(T,_cf,A)
+#define CFARGS1(A,T,V,W,X,Y,Z) CFORTRAN_XCAT_3(T,_cf,A)(V)
+#define CFARGS2(A,T,V,W,X,Y,Z) CFORTRAN_XCAT_3(T,_cf,A)(V,W)
+#define CFARGS3(A,T,V,W,X,Y,Z) CFORTRAN_XCAT_3(T,_cf,A)(V,W,X)
+#define CFARGS4(A,T,V,W,X,Y,Z) CFORTRAN_XCAT_3(T,_cf,A)(V,W,X,Y)
+#define CFARGS5(A,T,V,W,X,Y,Z) CFORTRAN_XCAT_3(T,_cf,A)(V,W,X,Y,Z)
#define _Icf(N,T,I,X,Y) CFORTRAN_XCAT_(I,_cfINT)(N,T,I,X,Y,0)
#define _Icf4(N,T,I,X,Y,Z) CFORTRAN_XCAT_(I,_cfINT)(N,T,I,X,Y,Z)
@@ -1857,11 +1862,11 @@ do{VVCF(T1,A1,B1) VVCF(T2,A2,B2) VVCF(T3,A3,B3) VVCF(T4,A4,B4) VVCF(T5,A5,B5
#define PSTRINGV_cfC(M,I,A,B,C) \
APATRINGV_cfA( A,B,(C/0xFFFF)*(C%0xFFFF),C/0xFFFF,C%0xFFFF)
#define ZTRINGV_cfC(M,I,A,B,C) \
- AATRINGV_cfA( A,B, (_3(M,_ELEMS_,I))*((_3(M,_ELEMLEN_,I))+1), \
- (_3(M,_ELEMS_,I)), (_3(M,_ELEMLEN_,I))+1 )
+ AATRINGV_cfA( A,B, (CFORTRAN_XCAT_3(M,_ELEMS_,I))*((CFORTRAN_XCAT_3(M,_ELEMLEN_,I))+1), \
+ (CFORTRAN_XCAT_3(M,_ELEMS_,I)), (CFORTRAN_XCAT_3(M,_ELEMLEN_,I))+1 )
#define PZTRINGV_cfC(M,I,A,B,C) \
- APATRINGV_cfA( A,B, (_3(M,_ELEMS_,I))*((_3(M,_ELEMLEN_,I))+1), \
- (_3(M,_ELEMS_,I)), (_3(M,_ELEMLEN_,I))+1 )
+ APATRINGV_cfA( A,B, (CFORTRAN_XCAT_3(M,_ELEMS_,I))*((CFORTRAN_XCAT_3(M,_ELEMLEN_,I))+1), \
+ (CFORTRAN_XCAT_3(M,_ELEMS_,I)), (CFORTRAN_XCAT_3(M,_ELEMLEN_,I))+1 )
#define BYTE_cfCCC(A,B) &A
#define DOUBLE_cfCCC(A,B) &A
@@ -2220,12 +2225,12 @@ static _Icf(2,U,F,CFFUN(UN),0)() { CFORTRAN_XCAT_(F,_cfE) _Icf(3,GZ,F,UN,LN) ABS
#ifdef CRAYFortran
#define STRING_cfT(M,I,A,B,D) TTTTSTR( _fcdtocp(A),B,_fcdlen(A))
#define STRINGV_cfT(M,I,A,B,D) TTTTSTRV(_fcdtocp(A),B,_fcdlen(A), \
- num_elem(_fcdtocp(A),_fcdlen(A),_3(M,_STRV_A,I)))
+ num_elem(_fcdtocp(A),_fcdlen(A),CFORTRAN_XCAT_3(M,_STRV_A,I)))
#define PSTRING_cfT(M,I,A,B,D) TTSTR( _fcdtocp(A),B,_fcdlen(A))
#define PPSTRING_cfT(M,I,A,B,D) _fcdtocp(A)
#else
#define STRING_cfT(M,I,A,B,D) TTTTSTR( A,B,D)
-#define STRINGV_cfT(M,I,A,B,D) TTTTSTRV(A,B,D, num_elem(A,D,_3(M,_STRV_A,I)))
+#define STRINGV_cfT(M,I,A,B,D) TTTTSTRV(A,B,D, num_elem(A,D,CFORTRAN_XCAT_3(M,_STRV_A,I)))
#define PSTRING_cfT(M,I,A,B,D) TTSTR( A,B,D)
#define PPSTRING_cfT(M,I,A,B,D) A
#endif
--
UNNAMED PROJECT
More information about the debian-science-commits
mailing list