From: Davin Pearson Newsgroups: comp.os.msdos.djgpp Subject: G++ can't optimise my code! Date: Thu, 06 Nov 1997 02:29:44 +1200 Organization: University of Canterbury Lines: 183 Message-ID: <346082D8.2AE3@EXT.canterbury.ac.nz> Reply-To: d DOT pearson AT EXT DOT canterbury DOT ac DOT nz NNTP-Posting-Host: exti141.tacacs.canterbury.ac.nz Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------6E35738A5B58" To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Precedence: bulk This is a multi-part message in MIME format. --------------6E35738A5B58 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit I find it hard to believe that very many people seriously use G++. On many occaisons it has barked something like this: cd ~/skid/ make run CCOPT=-O2 gcc -c -O2 main.cc -o main.o axle.h: In method `void Car::evolve()': In file included from main.cc:8: axle.h:273: Internal compiler error. axle.h:273: Please submit a full bug report to `bug-g++@prep.ai.mit.edu'. make.exe: *** [main.o] Error 1 Having just read the DJGPP FAQ on this problem, I can report having no joy with -fno-strength-reduce, and "gcc -v" says version 2.7.2. I have submitted a similar bug report in the past (Having tracked down that bug to a particular construct), only to receive no acknowledgement of my bug report! It therefore seems that "Internal compiler error" is a dead-end when it comes to using G++. (The only alternative I can think of is to try to re-work the code to avoid the bug). My present code was compiling fine, until I decided to try some optimisation. The result was the crash described above. If only the optimisation-part of G++ is buggy, then perhaps I could use a free-ware/gnu-ware C++ to C convertor and use the output of that to feed into the (hopefully bugfree) GNU C compiler. Does anyone know of a such a program? It would be a sad day indeed that I had to recode in C, as I am making extensive use of operator overloading (Allegro's fix class, and my own class for 2-dimensional vectors). Why is G++ so bad? Is it C++'s fault or something? I assume that Gcc is a lot less buggy since I have compiled some large projects with it. Does anyone have experiences of "internal compiler errors" with commercial C++ compilers? Davin. I am including my sources, so that someone else can try compiling on another machine... To build, type: "make". To attempt to optimise, type "make CCOPT=-O2" or whatever. -- ------------- Davin Pearson --------------6E35738A5B58 Content-Type: application/x-zip-compressed; name="Sk971105.zip" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="Sk971105.zip" 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 --------------6E35738A5B58--