Path: utzoo!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!bu.edu!bu-cs!snorkelwacker!tut.cis.ohio-state.edu!kosman.nrc.com!kevin From: kevin@kosman.nrc.com (Kevin O`Gorman) Newsgroups: gnu.gcc.bug Subject: Problem with -traditional and '/*' in strings Message-ID: <9001101658.AA03077@kosman.UUCP> Date: 11 Jan 90 00:58:19 GMT Sender: daemon@tut.cis.ohio-state.edu Reply-To: kevin%kosman.uucp@nrc.com (Kevin O'Gorman) Distribution: gnu Organization: GNUs Not Usenet Lines: 63 Here is the example. The problem is in the preprocessor. This thing compiles just fine with *my* traditional compiler, or with normal gcc. It fails with gcc -traditional. It has been observed in gcc 1.35 and 1.36. #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh 'bug.c' <<'END_OF_FILE' X/* This program gives trouble if it is compiled with -traditional, as in X gcc -E -traditional bug.c X even though it will compile just fine on my 3b1 with the stock compiler X (which I think is PCC, but is anyway a traditional AT&T C compiler) X X This is a much edited version of MUSH 7.0.3 routine glob.c X */ X X X#undef TEST X#undef TEST2 X X#ifdef TEST X X/* This shows how the T thing might be used. The problem is partly that X TEST is undefined, and T does not get defined */ X#define T(a) printf("%s",a); X Xmain() X{ X X#ifdef TEST2 X /* the following line causes the problem by starting a comment */ X T("/*"); X#endif X} X X#endif END_OF_FILE if test 631 -ne `wc -c <'bug.c'`; then echo shar: \"'bug.c'\" unpacked with wrong size! fi chmod +x 'bug.c' # end of 'bug.c' fi echo shar: End of shell archive. exit 0 -- Kevin O'Gorman ( kevin@kosman.UUCP, kevin%kosman.uucp@nrc.com ) voice: 805-984-8042 Vital Computer Systems, 5115 Beachcomber, Oxnard, CA 93035 Non-Disclaimer: my boss is me, and he stands behind everything I say.