🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Ron Guilmette Sat, 22 Apr 1989 18:16
BUG in G++ 1.35.0 (pre-release) void& formals allowed
#1895
Author: Ron Guilmette
Date: Sat, 22 Apr 1989 18:16
51 lines
2599 bytes
As the following source file demonstrates, G++ 1.35.0 (pre-release Sun3)
allows you to declare formal arguments to be of type "void&".
According to "The Book" (page 270) this should not be legal.

b038 had missed error(s) as follows:
	8: void test2 (void& formal_void_ref)		// ERROR
b038: FAILED
----------------------------------------------------------------------------
// Check that it is illegal to declare a reference-to-void
// type object.

const void* null = 0;

void& global_void_ref = *null;			// ERROR

void test2 (void& formal_void_ref)		// ERROR
{
	void& local_void_ref = formal_void_ref;	// ERROR
}

void test ()
{
	void& local_void_ref = *null;		// ERROR

	test2 (local_void_ref);
}
-----------------------------------------------------------------------------
/usr/local/src/src/g++/build/sun3/1.35-.0-.0/g++ -B/usr/local/src/src/g++/build/sun3/1.35-.0-.0/ -ansi -pedantic -Wall -Wwrite-strings -S -v b038.C
g++ version 1.35.0-
 /usr/local/src/src/g++/build/sun3/1.35-.0-.0/cpp -+ -v -undef -D__GNU__ -D__GNUG__ -T -D__STRICT_ANSI__ -D__mc68000__ -D__sun__ -D__unix__ -pedantic -Wall -D__HAVE_68881__ b038.C /tmp/cca17992.cpp
GNU CPP version 1.35.0-
 /usr/local/src/src/g++/build/sun3/1.35-.0-.0/c++ /tmp/cca17992.cpp -quiet -dumpbase b038.C -Wall -Wwrite-strings -pedantic -ansi -noreg -version -o b038.s
GNU C++ version 1.35.0- (68k, MIT syntax) compiled by GNU C version 1.34.1.
b038.C:6: invalid type: `void &'
b038.C:6: variable or field `global_void_ref' declared void
b038.C:6: invalid use of void expression
b038.C:9: invalid type: `void &'
In function void test2 ():
b038.C:10: invalid type: `void &'
b038.C:10: variable or field `local_void_ref' declared void
b038.C:10: `formal_void_ref' was not declared (first use this function)
b038.C:10: (Each undeclared identifier is reported only once
b038.C:10: for each function it appears in.)
b038.C:10: warning: unused variable `local_void_ref'
In function void test ():
b038.C:15: invalid type: `void &'
b038.C:15: variable or field `local_void_ref' declared void
b038.C:15: invalid use of void expression
b038.C:9: too many arguments to function `void test2 ()'
b038.C:17: at this point in file
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads