https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78537
Bug ID: 78537
Summary: #define something doesn't work
Product: gcc
Version: 4.9.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: [email protected]
Target Milestone: ---
Hello, I encounter a similar problem as
http://stackoverflow.com/questions/40804244 whilst trying to build the legacy
LineMode browser (available on
http://cdn.browserarchive.org/worldwideweb/NeXT/WWWLineMode_0.11a.tar.gz) using
GCC 4.9.2 (Debian 8):
WWW/LineMode/Implementation/ultrix_cc$ make
cc -c -I../../../Implementation/ -I../ ../../../Implementation/HTFTP.c
../../../Implementation/HTFTP.c:46:20: error: expected identifier before
numeric constant
#define IPPORT_FTP 21
^
../CommonMakefile:52: recipe for target 'HTFTP.o' failed
make: *** [HTFTP.o] Error 1
Note that the line in question is wrapped by an ifndef / endif:
#ifndef IPPORT_FTP
#define IPPORT_FTP 21
#endif
I would expect some compatibility issues with this code from the early 90s,
however #define IPPORT_FTP 21 should work just as fine as "#define whatever"
should... Something definitely seems broken in this specific version of GCC.
If something can be done about it even though 4.9.2 is relatively old now (yet
still the default compiler in current Debian stable), that would really be
nice!