Old bug still in egcs-1.1b

Carlo Wood carlo@runaway.xs4all.nl
Thu Sep 17 19:44:00 GMT 1998


This wasn't CC-ed to egcs-bugs, so I thought I'd forward it here.
It does indeed still cause an ICE with egcs-1.1b:

~/tmp>g++ ice.cc
ice.cc: In function `void f()':
ice.cc:27: Internal compiler error 40.
ice.cc:27: Please submit a full bug report to `egcs-bugs@cygnus.com'.

Forwarded message:
| From owner-egcs@cygnus.com  Thu Sep 17 16:27:36 1998
| To: egcs@cygnus.com
| Subject: Re: egcs-1.1.1 issues
| References: <7730.905928074@hurl.cygnus.com>
| From: Laurent Bonnaud <bonnaud@irisa.fr>
| X-Attribution: Laurent
| X-Mailer: Gnus 5.6 - Emacs 20.3
| Mime-Version: 1.0 (generated by tm-edit 7.108)
| Content-Type: text/plain; charset=US-ASCII
| Date: 16 Sep 1998 17:29:20 +0200
| In-Reply-To: Jeffrey A Law's message of "Wed, 16 Sep 1998 00:41:14 -0600"
| Message-ID: <wjxlnnkm5yn.fsf@coelacanthe.irisa.fr>
| Lines: 57
| Sender: owner-egcs@cygnus.com
| Precedence: bulk
| 
| 
| >>>>> "Jeff" == Jeffrey A Law <law@cygnus.com> writes:
| Jeff> 
| Jeff> I haven't had a chance to walk back through the new bug reports, but
| Jeff> I have seen lots of problems reported with QT (particularly on Alphas)
| Jeff> and various PPC Linux problems.  So those problems should probably
| Jeff> deserve some consideration for egcs-1.1.1.
| 
| Hi,
| 
| I have reported an ICE40 a few monthes ago and it is still in egcs-1.1
| and in egcs-2.92.04 19980906 :
| 
|   http://www.cygnus.com/ml/egcs-bugs/1998-May/0472.html
| 
| The source is included below for your convenience.
| 
| Several other peoples have reported ICEs 40, but i don't know if they
| are related.
| 
| Here are other (less serious) bugs :
| 
|   http://www.cygnus.com/ml/egcs-bugs/1998-May/0612.html
| 
|   http://www.cygnus.com/ml/egcs-bugs/1998-Apr/0605.html
| 
| -- 
| Laurent.
| 
| template <int i>
| struct Sized {
|   float array[i];
| };
| 
| template <class T>
| struct rank_type {
|   enum { value = 0 };
| };
| 
| template <class T,int N>
| struct rank_type<T[N]> {
|   enum { value = 1 + rank_type<T>::value };
| };
| 
| template <class T>
| Sized<rank_type<T[1]>::value> type_deduction_helper(T x[])
| {
|   return Sized<rank_type<T[1]>::value>();
| }
| 
| #define Rank(x) (sizeof(type_deduction_helper(x).array)/(sizeof(float)))
| 
| void f()
| {
|   double d[10][10][10];				  // works for double, too
|   int x[Rank(d)];
| }
| 


-- 
 Carlo Wood  <carlo@runaway.xs4all.nl>



More information about the Gcc-bugs mailing list