#if defined(__GNUC__) || (_MSC_VER >= 1300) || \
(__BORLANDC__ >= 4) || (_WATCOM >= 5213) || \
defined(__NORTONC__) || defined(__SUNC__) || \
(_IBM_AIX_C_COMPILER_WHATEVER >= 123123) ...
and that results in exactly the mess I wanted to avoid :-)
Having one conditional per compiler which has problems with __FUNCTION__ would make things a little bit more readable. Okay, GNUC and MSVC might be the only compilers used for xmlsec today, but history shows this can change very rapidly.
Ciao
Igor
Aleksey Sanin wrote:
What about: #if defined (__GNUC__) || (_MSC_VER >= 1300) #define DUMMY #else #define __FUNCTION__ "" #endifAleksey Igor Zlatkovic wrote:Hi there,
There is a small error of mine in include/xmlsec/errors.h regarding the
__FUNCTION__ logic. The current predicate is
#if !defined(__GNUC__) || (_MSC_VER >= 1300)
which I wrongly assumed would work, on a gloomy day well past midnight. In
fact, this predicate always fires on everything other than GNUC, because
__GNUC__ is not defined.
The truth is, that the correct predicate cannot be conducted generally, but
every offending compiler must bring its own toys. That brings us to
something like
#if defined(__A_COMPILER__) && (__A_COMPILER__ < X)
#define __FUNCTION__ ""
#endif
with "__A_COMPILER__" being whatever the current compiler predefines. Every
compiler brand which does not support __FUNCTION__ will need its own
construct like the above.
I now fixed the predicate to handle the MSVC compiler version lower than 13.
If there is someone using a compiler other than GNUC or MSVC, please drop me
a correct predicate for your compiler, if it doesn't support the builtin
__FUNCTION__ macro.
Or does someone have a better idea?
Ciao
Igor
_______________________________________________ xmlsec mailing list [EMAIL PROTECTED] http://www.aleksey.com/mailman/listinfo/xmlsec
