[gnu.g++.bug] Bug report: g++ 1.32: missing } causes g++ to loop forever

ken@CS.ROCHESTER.EDU (Ken Yap) (02/25/89)

Summary:

g++ 1.32 spins its wheels after detecting EOF in this program.

Configuration:

tm.h = tm-sun3.h
md = m68k.md
aux-output.c = output-m68k.c
sun 3-50, Sun Unix 3.4

Session log:

dubhe.cs.rochester.edu% g++ -c -v bug2.cc
g++ version 1.32.0
 /usr/su/lib/gcc-cpp+ -+ -v -undef -D__GNU__ -D__GNUG__ -Dmc68000 -Dsun -Dunix bug2.cc /tmp/cca19701.cpp
GNU CPP version 1.32.0
 /usr/su/lib/gcc-c++ /tmp/cca19701.cpp -quiet -dumpbase bug2.cc -noreg -version -o /tmp/cca19701.s
GNU C++ version 1.32.0 (68k, MIT syntax) compiled by CC.
In function int main (int, char **):
bug2.cc:28: parse error at end of input
^Cdubhe.cs.rochester.edu%

Program:

#include	<stream.h>

main(int argc, char *argv[])
{
	register int	i, f;
	extern int	optind;
	extern char	*optarg;

	while ((i = getopt(argc, argv, "t:")) != EOF)
	{
		switch(i)
		{
		case 't':
			f = 0;
			for ( ; *optarg != '\0'; ++optarg)
			{
				switch (*optarg)
				{
				default: ;
			}
			break;
		default:
			cerr << form("Unknown option '%c' ignored\n", i);
			break;
		}
	}
}