🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: gnu.g++.bug
Article #1340

internal compiler error after failed type unification

#1340
From: Thomas M. Breuel
Date: Wed, 06 Jan 1993 21:35
55 lines
2177 bytes
[I don't want to pretend this code makes sense, bug GNU C++ shouldn't
crash on it.]

cd /fs/vision01/tmb/src/rec-character/
gcc -c -v foo.cc
Reading specs from /sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.2/specs
gcc version 2.3.2
 /sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.2/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -Dsparc -Dsun -Dunix -D__sparc__ -D__sun__ -D__unix__ -D__sparc -D__sun -D__unix foo.cc /local/tmp/cca20605.i
GNU CPP version 2.3.2 (sparc)
 /sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.2/cc1plus /local/tmp/cca20605.i -quiet -dumpbase foo.cc -version -o /local/tmp/cca20605.s
GNU C++ version 2.3.2 (sparc) compiled by GNU C version 2.3.2.
foo.cc: In function `void  restore (struct _iobuf*, struct Stk<Stk<int>>&)':
foo.cc:17: type unification failed for function template `restore'
foo.cc:21: Internal compiler error.
foo.cc:21: Please report this to `bug-g++@prep.ai.mit.edu'.

Compilation exited abnormally with code 1 at Wed Jan  6 20:33:48

================================================================
extern "C" {
#include <stdio.h>
}

template <class T>
struct Stk {
	T t[100];
	int fill;
	T &operator()(int i) {return t[i];}
};

template <class T>
void restore(FILE *stream,Stk<T> &stack) {
	int l;
	fread(&l,sizeof l,1,stream);
	stack.fill = l;
	for(int i=0;i<l;i++) restore(stream,stack(i));
}

template <class T>
void restore(FILE *stream,Stk< Stk<T> > &stack) {
	int l;
	fread(&l,sizeof l,1,stream);
	stack.fill = l;
	for(int i=0;i<l;i++) restore(stream,stack(i));
}

void restore(FILE *stream,int &x) {
	fread(&x,sizeof x,1,stream);
}

main() {
	Stk< Stk<int> > foo;
	restore(stdin,foo);
}
================================================================
Technical Details
Message-ID: <9301061935.AA20910@idiap.ch>
Path: arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!idiap.CH!tmb

Show Full Headers
Complete Article Headers
Newsgroups: gnu.g++.bug
Path: arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!idiap.CH!tmb
From: tmb@idiap.CH (Thomas M. Breuel)
Subject: internal compiler error after failed type unification
Message-ID: <9301061935.AA20910@idiap.ch>
Sender: gnulists@ai.mit.edu
Reply-To: tmb@idiap.ch
Organization: GNUs Not Usenet
Distribution: gnu
Date: Wed, 6 Jan 1993 21:35:36 GMT
Approved: bug-g++@prep.ai.mit.edu
Lines: 56