well
obviously, you have to include others headers, which define 
DEF_FORMAT_ATTRIBUTE,DEF_ATTR_TREE_LIST, etc.

this seems to be a problem
~d

On Thursday 29 May 2003 08:22, Bernard Mentink wrote:
> Hi Dmitry,
>
> I have tried a small test program to test the CONCAT macro's. It seems
> the macro does
> not work if there is an underscore in the string i.e "1_2".
>
> The error message for when you compile the program below is:
>
> ------------------------- error messages --------------------------
> gcc test.c -o test.o
> test.c:14: undefined type, found `1234567891'
> test.c:14: illegal external declaration, missing `;' after `_2'
> test.c:15: undefined type, found `ATTR_PRINTF_1'
> test.c:15: illegal external declaration, missing `;' after `ATTR_LIST_1'
> test.c:15: undefined type, found `ATTR_FORMAT_PRINTF_1'
> test.c:15: illegal external declaration, missing `;' after
> `ATTR_PRINTF_1'
> cpp-precomp: warning: errors during smart preprocessing, retrying in
> basic mode
> test.c:14: parse error before numeric constant
>
> As you can see, it borkes when it hits the underscore.
>
> Apart from writing the strings in-line, is there another method to
> fix/fudge this
> to get it to compile?
>
> Cheers,
> Bernie
>
> ----------------------- test program -------------------------------
>
> #include "string.h"
>
> #define CONCAT2(a,b)   a##b
> #define CONCAT3(a,b,c)         a##b##c
> #define CONCAT4(a,b,c,d) a##b##c##d
> #define STRINGX(s) #s
>
> #define DEF_FORMAT_ATTRIBUTE(TYPE, VALUES)                             \
>    DEF_ATTR_TREE_LIST (CONCAT4 (ATTR_,TYPE,_,VALUES), ATTR_NULL,              
>  \
>                     CONCAT2 (ATTR_,TYPE), CONCAT2 (ATTR_LIST_,VALUES)) \
>    DEF_ATTR_TREE_LIST (CONCAT4 (ATTR_FORMAT_,TYPE,_,VALUES),
> ATTR_FORMAT, \
>                     CONCAT4 (ATTR_,TYPE,_,VALUES), ATTR_NULL)
>
> CONCAT4(123,456,789,1_2)
> DEF_FORMAT_ATTRIBUTE(PRINTF,1_2);
>
> main()
> {
> }
>
> ------------------------ end of test program
> --------------------------------
>
> On Wednesday, May 28, 2003, at 10:20  PM, Dmitry wrote:
> > a##b concantinates strings into one:
> >     CONCAT2(a,_b)
> > will result
> >     a_b
> >
> > STRINGX(s) #s
> > stringifies 's':
> >     STRINGX(abcd)
> > will result
> >     "abcd"
> >
> > So, the problem is that these macros do not work.
> > So, check if __STDC__ is defined in system includes or in params
> > passed to the
> > compiler.
> >
> > ~d
> >
> > On Wednesday 28 May 2003 09:04, Bernard Mentink wrote:
> >> Hi again Dmitry,
> >>
> >> An update. I fetched the gcc-core-2.2.3 tarball again, and this time I
> >> do have the symcat.h header file you talk of.
> >> However I still get the same compile error.
> >>
> >> I tried a full gcc-3.2.3 tarball, still the same error .........@^%$
> >>
> >> I wonder if it is my host compiler?, gcc -v shows:
> >> ------------------
> >> gcc -v
> >> Reading specs from /usr/libexec/gcc/darwin/ppc/3.1/specs
> >> Thread model: posix
> >> Apple Computer, Inc. GCC version 1175, based on gcc version 3.1
> >> 20020420 (prerelease)
> >> ----------------------
> >>
> >> I wonder if Apple have done some funnies with this version of gcc??
> >>
> >> I have been having a look at the symcat.h file. It does some
> >> "__STDC__"
> >> specific defines i.e:
> >>
> >> #ifndef SYM_CAT_H
> >> #define SYM_CAT_H
> >>
> >> #if defined (__STDC__) || defined (ALMOST_STDC) || defined
> >> (HAVE_STRINGIZE)
> >> #define CONCAT2(a,b)        a##b
> >> #define CONCAT3(a,b,c)      a##b##c
> >> #define CONCAT4(a,b,c,d) a##b##c##d
> >> #define STRINGX(s) #s
> >> #else
> >> /* Note one should never pass extra whitespace to the CONCATn macros,
> >>     e.g. CONCAT2(foo, bar) because traditonal C will keep the space
> >> between
> >>     the two labels instead of concatenating them.  Instead, make sure
> >> to
> >>     write CONCAT2(foo,bar).  */
> >> #define CONCAT2(a,b)        a/**/b
> >> #define CONCAT3(a,b,c)      a/**/b/**/c
> >> #define CONCAT4(a,b,c,d) a/**/b/**/c/**/d
> >> #define STRINGX(s) "s"
> >> #endif
> >> ----------------
> >>
> >> I don't understand what a##b does or for that matter a/**/b, I tried
> >> both by forcing one or the other, but still
> >> the same error.
> >>
> >> Any other suggestions.
> >>
> >> Cheers,
> >> Bernie
> >>
> >> On Tuesday, May 27, 2003, at 12:10  AM, Dmitry wrote:
> >>> That's right.
> >>>
> >>> On Saturday 24 May 2003 08:40, Bernard Mentink wrote:
> >>>> Can you also confirm that I am copying correctly the msp430 specific
> >>>> code into the tree?
> >>>> I am using:  cp -r gcc/gcc-3.3/gcc/* gcc-3.2.3/gcc/
> >>>
> >>> I have no actually idea what's wrong. Probably some OS issues
> >>> (really,
> >>> I never
> >>> faced with such a problem)
> >>> Try to get _full_ gcc sources, then recompile.
> >>>
> >>> Cheers,
> >>> ~d
> >>>
> >>>
> >>> --
> >>> /********************************************************************
> >>>      ("`-''-/").___..--''"`-._     (\   Dimmy the Wild      UA1ACZ
> >>>       `6_ 6  )   `-.  (     ).`-.__.`)  Enterprise Information Sys
> >>>       (_Y_.)'  ._   )  `._ `. ``-..-'   Nevsky prospekt,   20 / 44
> >>>     _..`--'_..-_/  /--'_.' ,'           Saint Petersburg,   Russia
> >>>    (il),-''  (li),'  ((!.-'             +7 (812)  3468202, 5585314
> >>>
> >>> ********************************************************************/
> >>>
> >>>
> >>>
> >>> -------------------------------------------------------
> >>> This SF.net email is sponsored by: ObjectStore.
> >>> If flattening out C++ or Java code to make your application fit in a
> >>> relational database is painful, don't do it! Check out ObjectStore.
> >>> Now part of Progress Software. http://www.objectstore.net/sourceforge
> >>> _______________________________________________
> >>> Mspgcc-users mailing list
> >>> [email protected]
> >>> https://lists.sourceforge.net/lists/listinfo/mspgcc-users
> >
> > --
> > /********************************************************************
> >      ("`-''-/").___..--''"`-._     (\   Dimmy the Wild      UA1ACZ
> >       `6_ 6  )   `-.  (     ).`-.__.`)  Enterprise Information Sys
> >       (_Y_.)'  ._   )  `._ `. ``-..-'   Nevsky prospekt,   20 / 44
> >     _..`--'_..-_/  /--'_.' ,'           Saint Petersburg,   Russia
> >    (il),-''  (li),'  ((!.-'             +7 (812)  3468202, 5585314
> >  ********************************************************************/
> >
> >
> >
> > -------------------------------------------------------
> > This SF.net email is sponsored by: ObjectStore.
> > If flattening out C++ or Java code to make your application fit in a
> > relational database is painful, don't do it! Check out ObjectStore.
> > Now part of Progress Software. http://www.objectstore.net/sourceforge
> > _______________________________________________
> > Mspgcc-users mailing list
> > [email protected]
> > https://lists.sourceforge.net/lists/listinfo/mspgcc-users

-- 
/********************************************************************
     ("`-''-/").___..--''"`-._     (\   Dimmy the Wild      UA1ACZ
      `6_ 6  )   `-.  (     ).`-.__.`)  Enterprise Information Sys 
      (_Y_.)'  ._   )  `._ `. ``-..-'   Nevsky prospekt,   20 / 44
    _..`--'_..-_/  /--'_.' ,'           Saint Petersburg,   Russia
   (il),-''  (li),'  ((!.-'             +7 (812)  3468202, 5585314
 ********************************************************************/


Reply via email to