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