This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Preprocessor Problems
- To: gcc-bugs at gcc dot gnu dot org
- Subject: Preprocessor Problems
- From: Alexy Khrabrov <alexy dot khrabrov at setup dot org>
- Date: Tue, 23 Jan 2001 12:54:40 -0500 (EST)
- CC: John Pedretti <pedretti at roguewave dot com>, Martin Sebor <sebor at roguewave dot com>, Neil Booth <neilb at earthling dot net>
Greetings -- I'm not a permanent member of the
gcc-bugs list, but I found this topic and hope
it's relevant, and will very much appreciate an
advice on compiling the offending piece of LEDA
(www.algorithmic-solutions.com) -- the biggest C++
algorithms library. I also CC'ed to the authors
of the original discussion, hoping for advice.
The problems began with g++ v2.96, coming standard
with the full Red Hat 7.0. These same warnings
are often received when compiling any kinds of
Linux tarballs:
../../incl/LEDA/event_macros.h:22:29: warning: nothing can be pasted after this token
...after some hacking:
../../incl/LEDA/event_macros.h:196:30: warning: pasting would not give a valid preprocessing token
Apparently, at v4.2 (c) 1991-2000, LEDA is a
tested and evolved library. Is there a clear
definition how the new CPP is different from what
worked, and a recommended workaround?
One solution I think of is getting an old CPP.
Then is there a way to instruct gcc to use that
instead of its default one?
--
Cheers,
Alexy V. Khrabrov :: www.suffix.com :: Age Quod Agis
/*******************************************************************************
+
+ LEDA-4.2
+
+ event_macros.h
+
+ This file is part of the LEDA research version (LEDA-R) that can be
+ used free of charge in academic research and teaching. Any commercial
+ use of this software requires a license which is distributed by the
+ Algorithmic Solutions GmbH, Postfach 151101, 66041 Saarbruecken, Germany,
+ http://www.algorithmic-solutions.com (contact@algorithmic-solutions.com)
+
+ Copyright (c) 1991-2000 by Max-Planck-Institut fuer Informatik
+ Im Stadtwald, 66123 Saarbruecken, Germany
+ All rights reserved.
+
*******************************************************************************/
#define _E1FMT0(arg)
#define _E1FMT1(arg) arg
#define _E1FMT2(arg) arg##1 , arg##2
#define _E1FMT3(arg) _E1FMT2(##arg) , arg##3
#define _E1FMT4(arg) _E1FMT3(##arg) , arg##4
#define _E1FMT5(arg) _E1FMT4(##arg) , arg##5
#define _E1FMT6(arg) _E1FMT5(##arg) , arg##6
#define _E2FMT0(type,arg)
#define _E2FMT1(type,arg) type arg
#define _E2FMT2(type,arg) type##1 arg##1 , type##2 arg##2
#define _E2FMT3(type,arg) _E2FMT2(type,arg) , type##3 arg##3
#define _E2FMT4(type,arg) _E2FMT3(type,arg) , type##4 arg##4
#define _E2FMT5(type,arg) _E2FMT4(type,arg) , type##5 arg##5
#define _E2FMT6(type,arg) _E2FMT5(type,arg) , type##6 arg##6
#define _DECLARE_BASE_RECEIVER(name,ctypes,types) \
ETEMPLATE(##ctypes) class name; \
ETEMPLATE(##ctypes) \
class BASE_RECEIVER_##name : public base_receiver { \
friend class name EANGLES(##types); \
typedef name EANGLES(##types) event; \
typedef BASE_RECEIVER_##name EANGLES(##types) receiver; \
event* _e; \
list_item _it; \
public : \
BASE_RECEIVER_##name() : _e(0) {} \
inline ~BASE_RECEIVER_##name(); \
base_event* get_event() const { return (base_event*)_e; } \
virtual void notify(types) = 0; \
};
#define _DECLARE_EVENTS(name,ctypes,types,type_args,args) \
\
template<class obs, class func ECOMMA(##ctypes)> \
event_item attach(name EANGLES(##types)& e, obs& c, func f); \
\
template<class func ECOMMA(##ctypes)> \
event_item attach(name EANGLES(##types)& e, func f); \
\
ETEMPLATE(##ctypes) \
class name : public base_event { \
typedef BASE_RECEIVER_##name EANGLES(##types) receiver; \
list<receiver*> _receivers; \
int _occur_level; \
int _empty_attachments; \
void init() { _occur_level = 0; _empty_attachments = 0; } \
\
protected : \
virtual void notify_receivers(type_args) { \
receiver *r; \
forall(r,_receivers) if (r && r->is_enabled()) r->notify(args); \
} \
\
public : \
name() { init(); } \
name& operator = (const name&) { return *this; } \
name(const name& e) : base_event() { init(); *this = e; } \
~name() { \
receiver *r; \
forall(r,_receivers) if (r) delete r; \
} \
\
virtual void append(receiver& r) { \
r._it = _receivers.append(&r); \
r._e = this; \
} \
\
virtual void remove(receiver& r) { \
if (_occur_level) { \
_receivers[r._it] = 0; \
_empty_attachments++; \
} \
else _receivers.erase(r._it); \
r._e = 0; \
} \
\
void occur(type_args) { \
if (!_receivers.empty()) { \
_occur_level++; notify_receivers(args); _occur_level--; \
} \
} \
\
void remove_empty_attachments () { \
list_item it; \
forall_items(it,_receivers) \
if (_receivers[it] == nil) _receivers.erase(it); \
_empty_attachments = 0; \
} \
\
void operator () (type_args) { occur(args); } \
int number_of_attachments() const { return _receivers.size(); } \
int number_of_empty_attachments() const { return _empty_attachments; } \
int occur_level() const { return _occur_level; } \
EVENT_MEMBER_TEMPLATES \
};
#ifdef LEDA_MEMBER_TEMPLATES
#define EVENT_MEMBER_TEMPLATES \
template<class obs,class func> \
event_item attach(obs & c, func f) { return ::attach(*this,c,f); } \
template<class func> \
event_item attach(func f) { return ::attach(*this,f); }
#else
#define EVENT_MEMBER_TEMPLATES
#endif
#define _DECLARE_EVENT_XDEFS(name,ctypes,types,type_args,args) \
ETEMPLATE(##ctypes) \
inline BASE_RECEIVER_##name EANGLES(##types)::~BASE_RECEIVER_##name() { \
if (_e) _e->remove(*this); \
}
#define _DECLARE_RECEIVERS(name,ctypes,types,type_args,args) \
\
template<class obs, class func ECOMMA(##ctypes)> \
class RECEIVER_##name : public BASE_RECEIVER_##name EANGLES(##types) { \
obs *_c; func _f; \
public : \
void notify(type_args) { (_c->*_f)(args); } \
RECEIVER_##name(obs& c, func f) : _c(&c) , _f(f) {} \
}; \
\
template<class func ECOMMA(##ctypes)> \
class GLOBAL_RECEIVER_##name : public BASE_RECEIVER_##name EANGLES(##types) { \
func _f; \
public : \
void notify(type_args) { (*_f)(args); } \
GLOBAL_RECEIVER_##name(func f) : _f(f) {} \
};
#define _DECLARE_ATTACH_FUNCS(name,ctypes,types) \
\
template<class obs, class func ECOMMA(##ctypes)> \
inline event_item attach(name EANGLES(##types)& e, obs& c, func f) { \
typedef RECEIVER_##name<obs,func ECOMMA(##types)> receiver; \
receiver* r = new receiver (c,f); \
e.append(*r); \
return r; \
} \
\
template<class func ECOMMA(##ctypes)> \
inline event_item attach(name EANGLES(##types)& e, func f) { \
typedef GLOBAL_RECEIVER_##name<func ECOMMA(##types)> receiver; \
receiver* r = new receiver (f); \
e.append(*r); \
return r; \
}
#define _DECLARE_EVENT_SYSTEM(name,ctypes,types,type_args,args) \
_DECLARE_BASE_RECEIVER ( name, ##ctypes, ##types ) \
_DECLARE_EVENTS ( name, ##ctypes, ##types, ##type_args, ##args ) \
_DECLARE_RECEIVERS ( name, ##ctypes, ##types, ##type_args, ##args ) \
_DECLARE_EVENT_XDEFS ( name, ##ctypes, ##types, ##type_args, ##args ) \
_DECLARE_ATTACH_FUNCS ( name, ##ctypes, ##types )
#define DECLARE_EVENT_SYSTEM(name,argc) \
_DECLARE_EVENT_SYSTEM( name, \
_E1FMT##argc(class argt), \
_E1FMT##argc(argt), \
_E2FMT##argc(argt,a), \
_E1FMT##argc(a) )
#define ETEMPLATE(args)
#define EANGLES(args)
#define ECOMMA(args)
#if defined(_MSC_VER)
#pragma warning(disable: 4003)
#endif
DECLARE_EVENT_SYSTEM(EVENT0,0) // makes EVENT0 available
#if defined(_MSC_VER)
#pragma warning(default: 4003)
#endif
#undef ETEMPLATE
#undef EANGLES
#undef ECOMMA
#define ETEMPLATE(args) template<args>
#define EANGLES(args) <args>
#define ECOMMA(args) ,args
DECLARE_EVENT_SYSTEM(EVENT1,1) // makes EVENT1<type> available
DECLARE_EVENT_SYSTEM(EVENT2,2) // makes EVENT2<type1,type2> available ...
DECLARE_EVENT_SYSTEM(EVENT3,3)
DECLARE_EVENT_SYSTEM(EVENT4,4)
DECLARE_EVENT_SYSTEM(EVENT5,5)
// DECLARE_EVENT_SYSTEM(event_name,argument_count)
cd /src/LEDA-4.2/incl/LEDA/
(cd /src/LEDA-4.2; make)
make[1]: Entering directory `/src/LEDA-4.2/src'
cd basic; make
make[2]: Entering directory `/src/LEDA-4.2/src/basic'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/src/LEDA-4.2/src/basic'
cd basic_alg; make
make[2]: Entering directory `/src/LEDA-4.2/src/basic_alg'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/src/LEDA-4.2/src/basic_alg'
cd numbers; make
make[2]: Entering directory `/src/LEDA-4.2/src/numbers'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/src/LEDA-4.2/src/numbers'
cd asm_i386; make
make[2]: Entering directory `/src/LEDA-4.2/src/asm_i386'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/src/LEDA-4.2/src/asm_i386'
cd dict; make
make[2]: Entering directory `/src/LEDA-4.2/src/dict'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/src/LEDA-4.2/src/dict'
cd prio; make
make[2]: Entering directory `/src/LEDA-4.2/src/prio'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/src/LEDA-4.2/src/prio'
cd graph; make
make[2]: Entering directory `/src/LEDA-4.2/src/graph'
g++ -Wall -fpic -O -DLEDA_INSTALL -I../../incl -c _graph.c
In file included from ../../incl/LEDA/event.h:138,
from ../../incl/LEDA/graph.h:41,
from _graph.c:18:
../../incl/LEDA/event_macros.h:22:29: warning: nothing can be pasted after this token
../../incl/LEDA/event_macros.h:23:29: warning: nothing can be pasted after this token
../../incl/LEDA/event_macros.h:24:29: warning: nothing can be pasted after this token
../../incl/LEDA/event_macros.h:25:29: warning: nothing can be pasted after this token
../../incl/LEDA/event_macros.h:36:10: warning: nothing can be pasted after this token
../../incl/LEDA/event_macros.h:37:10: warning: nothing can be pasted after this token
../../incl/LEDA/event_macros.h:39:28: warning: nothing can be pasted after this token
../../incl/LEDA/event_macros.h:40:23: warning: nothing can be pasted after this token
../../incl/LEDA/event_macros.h:41:39: warning: nothing can be pasted after this token
../../incl/LEDA/event_macros.h:54:38: warning: nothing can be pasted after this token
../../incl/LEDA/event_macros.h:55:31: warning: nothing can be pasted after this token
../../incl/LEDA/event_macros.h:57:27: warning: nothing can be pasted after this token
../../incl/LEDA/event_macros.h:58:31: warning: nothing can be pasted after this token
../../incl/LEDA/event_macros.h:60:10: warning: nothing can be pasted after this token
../../incl/LEDA/event_macros.h:62:39: warning: nothing can be pasted after this token
../../incl/LEDA/event_macros.h:130:10: warning: nothing can be pasted after this token
../../incl/LEDA/event_macros.h:131:36: warning: nothing can be pasted after this token
../../incl/LEDA/event_macros.h:138:38: warning: nothing can be pasted after this token
../../incl/LEDA/event_macros.h:139:60: warning: nothing can be pasted after this token
../../incl/LEDA/event_macros.h:146:27: warning: nothing can be pasted after this token
../../incl/LEDA/event_macros.h:147:67: warning: nothing can be pasted after this token
../../incl/LEDA/event_macros.h:157:38: warning: nothing can be pasted after this token
../../incl/LEDA/event_macros.h:158:38: warning: nothing can be pasted after this token
../../incl/LEDA/event_macros.h:159:42: warning: nothing can be pasted after this token
../../incl/LEDA/event_macros.h:165:27: warning: nothing can be pasted after this token
../../incl/LEDA/event_macros.h:166:38: warning: nothing can be pasted after this token
../../incl/LEDA/event_macros.h:167:45: warning: nothing can be pasted after this token
../../incl/LEDA/event_macros.h:196:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:196:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:196:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:196:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:196:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:196:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:196:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:196:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:196:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:196:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:196:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:196:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:196:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:196:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:196:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:196:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:211:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:211:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:211:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:211:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:211:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:211:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:211:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:211:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:211:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:211:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:211:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:211:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:211:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:211:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:211:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:211:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:212:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:212:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:212:30: too many arguments for macro "_DECLARE_BASE_RECEIVER"
../../incl/LEDA/event_macros.h:212:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:212:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:212:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:212:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:212:30: too many arguments for macro "_DECLARE_EVENTS"
../../incl/LEDA/event_macros.h:212:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:212:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:212:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:212:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:212:30: too many arguments for macro "_DECLARE_RECEIVERS"
../../incl/LEDA/event_macros.h:212:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:212:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:212:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:212:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:212:30: too many arguments for macro "_DECLARE_EVENT_XDEFS"
../../incl/LEDA/event_macros.h:212:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:212:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:212:30: too many arguments for macro "_DECLARE_ATTACH_FUNCS"
../../incl/LEDA/event_macros.h:213:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:213:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:213:30: too many arguments for macro "_DECLARE_BASE_RECEIVER"
../../incl/LEDA/event_macros.h:213:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:213:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:213:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:213:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:213:30: too many arguments for macro "_DECLARE_EVENTS"
../../incl/LEDA/event_macros.h:213:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:213:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:213:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:213:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:213:30: too many arguments for macro "_DECLARE_RECEIVERS"
../../incl/LEDA/event_macros.h:213:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:213:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:213:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:213:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:213:30: too many arguments for macro "_DECLARE_EVENT_XDEFS"
../../incl/LEDA/event_macros.h:213:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:213:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:213:30: too many arguments for macro "_DECLARE_ATTACH_FUNCS"
../../incl/LEDA/event_macros.h:214:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:214:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:214:30: too many arguments for macro "_DECLARE_BASE_RECEIVER"
../../incl/LEDA/event_macros.h:214:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:214:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:214:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:214:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:214:30: too many arguments for macro "_DECLARE_EVENTS"
../../incl/LEDA/event_macros.h:214:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:214:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:214:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:214:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:214:30: too many arguments for macro "_DECLARE_RECEIVERS"
../../incl/LEDA/event_macros.h:214:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:214:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:214:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:214:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:214:30: too many arguments for macro "_DECLARE_EVENT_XDEFS"
../../incl/LEDA/event_macros.h:214:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:214:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:214:30: too many arguments for macro "_DECLARE_ATTACH_FUNCS"
../../incl/LEDA/event_macros.h:215:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:215:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:215:30: too many arguments for macro "_DECLARE_BASE_RECEIVER"
../../incl/LEDA/event_macros.h:215:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:215:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:215:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:215:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:215:30: too many arguments for macro "_DECLARE_EVENTS"
../../incl/LEDA/event_macros.h:215:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:215:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:215:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:215:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:215:30: too many arguments for macro "_DECLARE_RECEIVERS"
../../incl/LEDA/event_macros.h:215:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:215:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:215:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:215:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:215:30: too many arguments for macro "_DECLARE_EVENT_XDEFS"
../../incl/LEDA/event_macros.h:215:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:215:30: warning: pasting would not give a valid preprocessing token
../../incl/LEDA/event_macros.h:215:30: too many arguments for macro "_DECLARE_ATTACH_FUNCS"
make[2]: *** [_graph.o] Error 1
make[2]: Leaving directory `/src/LEDA-4.2/src/graph'
make[1]: *** [libG] Error 2
make[1]: Leaving directory `/src/LEDA-4.2/src'
make: *** [lib] Error 2
Compilation exited abnormally with code 2 at Tue Jan 23 12:46:56