Path: utzoo!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!tut.cis.ohio-state.edu!AI.MIT.EDU!tiemann From: tiemann@AI.MIT.EDU (Micheal Tiemann) Newsgroups: gnu.g++.bug Subject: Compiler error in g++ 1.36 Message-ID: <9001152005.AA04642@apple-gunkies.ai.mit.edu> Date: 15 Jan 90 20:05:18 GMT References: <9001151925.AA08585@flipper.Miami.EDU> Sender: daemon@tut.cis.ohio-state.edu Distribution: gnu Organization: GNUs Not Usenet Lines: 35 Date: Mon, 15 Jan 90 14:25:27 EST From: angel@flipper.miami.edu (angel li) On VMS, using g++ 1.36.3-, the following code does not compile: #define stdin $$PsectAttributes_NOSHR$$stdin #define stdout $$PsectAttributes_NOSHR$$stdout #define stderr $$PsectAttributes_NOSHR$$stderr extern int *stdin; extern int *stdout; extern int *stderr; extern void frob(int *, int *); void sub() { frob(stdin, stdout); } The compiler complains on lines 5,6,7: type name expected before `*' If the leading "$$" characters are replaced by "_$" in lines 1, 2, and 3 , the file compiles cleanly. Dollars are legal identifier characters on VMS. If you want to use $, then give the compiler another token to do internal naming. #define NO_DOLLAR_IN_LABEL and recompile those files which reference that #ifdef. Michael