[ LUGOS ] Internal Compiler Error

Jernej Kovse jernej.kovse na uni-mb.si
Čet Dec 11 11:59:22 CET 1997


On Thu, 11 Dec 1997, Boris Benko wrote:

> Jernej Kovse wrote:
> 
> > Pozdravljeni,
> >
> > Je kdo kdaj pri kompajliranju (g++) ze kdaj dobil podoben error:
> >
> > p.cxx:214: Internal compiler error.
> > p.cxx:214: Please submit a full bug report to 'bug-g++ na prep.ai.mit.edu'.
> >
> > V kodi uporabljam template. Je res kaksna moznost, da se kompajlerju
> > sfuzla (to se mi zdi malo verjetno), ali pa je moznost, da je kriva kaksna
> > napaka v kodi? Se je kdo ze srecal s cim podobnim?
> 
> Ne, to se je ze tudi meni zgodilo. Pokazalo se je, da sem imel sintakticno
> napako v programu. Ko sem napako popravil, mi je prevajalnik spet dobro delal.
> Hope that helps.
> 
> Poskusi najti workaround, t.j., kodo oblikuj malo drugace.
> 

Napaka zagotovo ni bila sintakticna. Gre za tole (upam, da bo komu, ki
programira s templati in kompajlira z g++ kaj pomagalo):

Imas metodo Izpisi, ki je pisana z template za nek splosen tip, potem pa
je se posebej izpeljana za tip int. Ce imas torej instanco objekta,  
za tip int, bo ta druga metoda, ki je izpeljana posebej za int
prekrila tisto splosno. Sedaj pa recimo, da metoda Izpisi klice drugo
metodo VrniElement. Ta metoda je napisana SAMO za splosni template in
ni posebej izpeljana za int. No tukaj se kompajler ustavi, ceprav se ne 
bi smel. Ni mu jasno zakaj tudi za metodo VrniElement ne obstaja verzija,
izpeljana posebej za int.

Ne gre torej za sintakticno napako, ampak za problem late bindinga.

Zanima pa me, ce je ze kdo imel taksne probleme in kako jih je resil. 

Gre za gcc 2.5.8

Pozrave vsem,

Jernej

*******************************************************************
  Jernej Kovse       E-mail: jernej.kovse na uni-mb.si
  Simekova 22           WWW: http://www2.feri.uni-mb.si/~jernej
  2000 Maribor                  
  Slovenia                 CS Student                   
                      University of Maribor
     Faculty of Electrical Engineering and Computer Science
*******************************************************************




Dodatne informacije o seznamu Starilist