egcs-2.91.57 C++ prints incorrect directory separator

David Edelsohn dje@watson.ibm.com
Tue Nov 3 15:08:00 GMT 1998


	In egcs-1.1 (egcs-2.91.57 19980901) on cygwin-b20, when compiling
with C++ (cc1plus) the full pathname of a file with an error is printed
with "\\" directory separators while using C (cc1) the full pathname is
properly escaped displaying a single "\". 

	The C preprocessor produces a string with escaped backslashes.
The C compiler seems to print this properly while the C++ compiler blindly
prints the characters.

David

(/kitchawan) cd /tmp
(/tmp) env
CLASSPATH=;C:\Program Files\Maestro.nt;d:\Program Files\Exceed.nt
COMSPEC=C:\WINNT\system32\cmd.exe
CYGFS=C:/Cygnus/cygwin-b20
CYGREL=B20
CYGROOT=C:\Cygnus\cygwin-b20
EDITOR=emacs
EMACS=t
EMACS_DIR=c:/emacs
GCC_EXEC_PREFIX=C:\Cygnus\cygwin-b20\H-i586-cygwin32\lib\gcc-lib\
GDBTK_LIBRARY=C:/Cygnus/cygwin-b20/share/gdbtcl
MACHTYPE=i586-pc-cygwin32
MAKE_MODE=unix
MANPATH=/cygnus/man
OS2LIBPATH=C:\WINNT\system32\os2\dll;
OS=Windows_NT
OSTYPE=CYGWIN_NT-4.0
PATH=/Cygnus/cygwin-b20/H-i586-cygwin32/bin:/bin:/emacs/bin:/WINNT/system32:/WINNT:/Program Files/Maestro.nt:/notes/://D/Program Files/Personal
Communications://D/PROGRAM
PATHEXT=.COM;.EXE;.BAT;.CMD
PROMPT=$p$g
PS1=(\w)
PS2=2>
PS3=2>
PWD=/tmp
SHELL=C:/bin/bash.exe
SHLVL=1
SYSTEMDRIVE=C:
SYSTEMROOT=C:\WINNT
TCL_LIBRARY=C:\Cygnus\cygwin-b20\share\tcl8.0\
TEMP=C:\TEMP
TERM=emacs
TERMCAP=emacs:co#81:tc=unknown:
TMANPATH=/usr/cross64/usr/share/catman/:/usr/share/catman:/usr/share/man:/usr/catman:/usr/man
TMP=C:\tmp
WINDIR=C:\WINNT
_=/Cygnus/cygwin-b20/H-i586-cygwin32/bin/env
__PARENT_PROCESS_ID=625
(/tmp) gcc -c foo.C -I/tmp
In file included from foo.C:1:
\\tmp\\foo.H:1: syntax error before `;'
(/tmp) gcc -c foo.C -I\\tmp
In file included from foo.C:1:
\\tmp\\foo.H:1: syntax error before `;'
(/tmp) gcc -E foo.C -I/tmp
# 1 "foo.C"
# 1 "\\tmp\\foo.H" 1
nosuch a;
# 1 "foo.C" 2

main() {}

(/tmp) gcc -E foo.C -I/tmp > foo.i
(/tmp) gcc -c foo.i
In file included from foo.C:1:
\tmp\foo.H:1: parse error before `a'
\tmp\foo.H:1: warning: data definition has no type or storage class
(/tmp) gcc -E foo.C -I/tmp > foo.ii
(/tmp) gcc -c foo.ii
In file included from foo.C:1:
\\tmp\\foo.H:1: syntax error before `;'
(/tmp) gcc -c foo.C -I/tmp -v
Reading specs from
C:\Cygnus\cygwin-b20\H-i586-cygwin32\lib\gcc-lib\i586-cygwin32\egcs-2.91.57
\specs
gcc version egcs-2.91.57 19980901 (egcs-1.1 release)

C:\Cygnus\cygwin-b20\H-i586-cygwin32\lib\gcc-lib\i586-cygwin32\egcs-2.91.57
\cpp.exe -lang-c++ -v -I/tmp -iprefix
C:\Cygnus\cygwin-b20\H-i586-cygwin32\lib\gcc-lib\i586-cygwin32\egcs-2.91.57
\ -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -D__GNUC_MINOR__=91 -Di386
 -D_WIN32 -DWINNT -D_X86_=1 -D__STDC__=1
- -D__stdcall=__attribute__((__stdcall__))
- -D__cdecl=__attribute__((__cdecl__)) -D__declspec(x)=__attribute__((x))
- -D__i386__ -D_WIN32 -D__WINNT__ -D_X86_=1 -D__STDC__=1
- -D__stdcall=__attribute__((__stdcall__))
- -D__cdecl=__attribute__((__cdecl__)) -D__declspec(x)=__attribute__((x))
- -D__i386 -D__WINNT -Asystem(winnt) -Acpu(i386) -Amachine(i386)
- -D__EXCEPTIONS -remap -Acpu(i386) -Amachine(i386) -Di386 -D__i386
- -D__i386__ -Di586 -Dpentium -D__i586 -D__i586__ -D__pentium -D__pentium__
- -D__CYGWIN32__ -D__CYGWIN__ foo.C C:\tmp\ccaYg9vt.ii
GNU CPP version egcs-2.91.57 19980901 (egcs-1.1 release) (80386, BSD
syntax)
#include "..." search starts here:
#include <...> search starts here:
 \tmp

C:\Cygnus\cygwin-b20\H-i586-cygwin32\lib\gcc-lib\i586-cygwin32\egcs-2.91.57
\..\..\..\..\..\include\g++

C:\Cygnus\cygwin-b20\H-i586-cygwin32\lib\gcc-lib\i586-cygwin32\egcs-2.91.57
\..\..\..\..\..\include

C:\Cygnus\cygwin-b20\H-i586-cygwin32\lib\gcc-lib\i586-cygwin32\egcs-2.91.57
\..\..\..\..\i586-cygwin32\include

C:\Cygnus\cygwin-b20\H-i586-cygwin32\lib\gcc-lib\i586-cygwin32\egcs-2.91.57
\include
End of search list.

C:\Cygnus\cygwin-b20\H-i586-cygwin32\lib\gcc-lib\i586-cygwin32\egcs-2.91.57
\cc1plus.exe C:\tmp\ccaYg9vt.ii -quiet -dumpbase foo.cc -version -o
C:\tmp\cco7sNDU.s
GNU C++ version egcs-2.91.57 19980901 (egcs-1.1 release) (i586-cygwin32)
compiled by GNU C version egcs-2.91.57 19980901 (egcs-1.1 release).
In file included from foo.C:1:
\\tmp\\foo.H:1: syntax error before `;'



More information about the Gcc-bugs mailing list