HELP ME WITH COMPILE A C++ PROGRAM
Carlos Frederico Trotta Matt
cftmatt@lttc.com.ufrj.br
Thu Jan 7 07:27:00 GMT 1999
My name is Carlos Frederico and I am a graduate student of Mechanical Engineer at Federal University of Rio de Janeiro, Brazil.
At moment, I'm trying to compile a C++ program called NETGEN. My C++ compiler is g++(GNU C++ compiler). When I started to compile the NETGEN's libraries, in one of C++ source file named improve3.cc appeared a strange message saying: "INTERNAL COMPILER ERROR/PLEASE SUBMIT A FULL BUG REPORT TO EGCS-BUGS@CYGNUS.COM".
The message I have received from my compiler is as follow :
=========================================================================================
In file included from ../../libsrc/geom/geom.hh:12,
from improve3.cc:11:
improve3.cc: In method `void Mesh::SwapImprove(double)':
improve3.cc:1350: Internal compiler error.
improve3.cc:1350: Please submit a full bug report to `egcs-bugs@cygnus.com'.
../../libsrc/geom/geom3d.hh: In function `class Vec3d operator -(const class Point3d &, const class Point3d &)':
=========================================================================================
The C++ source file improve3.cc is enormous, so I am sending you a piece of this file containg line 1350.
I thank you very much for your kind attention,
Sincerely,
Carlos Frederico Trotta Matt.
{
bad1 = 0;
for (k = 1; k <= hasbothpoints.Size(); k++)
bad1 += CalcBad (points,
volelements.Get(hasbothpoints.Get(k)), 0);
p1 = points.Get(pi1);
p2 = points.Get(pi2);
pnew = Center (p1, p2);
points.Elem(pi1) = pnew;
bad2 = 0;
for (k = 1; k <= hasbothpoints.Size(); k++)
bad2 += CalcBad (points,
volelements.Get(hasbothpoints.Get(k)), 0);
points.Elem(pi1) = p1;
points.Elem(pi2) = pnew;
for (k = 1; k <= hasbothpoints.Size(); k++)
bad2 += CalcBad (points,
volelements.Get(hasbothpoints.Get(k)), 0);
points.Elem(pi2) = p2;
}
if (!LegalTet(*elem)) // || (bad2 < bad1))
{
cout << "Split Edge " << pi1 << "-" << pi2 << endl;
(*testout) << "Split Edge " << pi1 << "-" << pi2 << endl;
int pinew = points.Append (pnew);
for (k = 1; k <= hasbothpoints.Size(); k++)
{
Element & oldel = volelements.Elem(hasbothpoints.Get(k));
Element newel = oldel;
for (l = 1; l <= 4; l++)
{
if (oldel.PNum(l) == pi2) oldel.PNum(l) = pinew;
if (newel.PNum(l) == pi1) newel.PNum(l) = pinew;
}
volelements.Append (newel);
}
i = 2 * volelements.Size();
break;
}
}
}
cout << "Splitt - Improve done" << endl;
(*testout) << "Splitt - Improve done" << endl;
bad1 = 0;
for (i = 1; i <= volelements.Size(); i++)
bad1 += CalcBad (points, volelements.Get(i), 0);
(*testout) << "Total badness = " << bad1 << endl;
for (i = 1; i <= volelements.Size(); i++)
if (!LegalTet (volelements.Get(i)))
cout << "Illegal Tet" << endl;
}
void Mesh :: SwapImprove (double h)
{
int i, j, k, l;
INDEX_2 i2;
int elnr, mattyp;
int pi1, pi2, pi3, pi4, pi5, pi6;
Element el21(4), el22(4), el31(4), el32(4), el33(4);
Element el1(4), el2(4), el3(4), el4(4);
Element el1b(4), el2b(4), el3b(4), el4b(4);
Element * elem;
More information about the Gcc-bugs
mailing list