egcs 1.1B inetrnal error

Shmulik Rippa shmulik@Orbotech.Co.IL
Mon Oct 26 23:23:00 GMT 1998


Hi!


egcs 1.1b on solaris 2.6 ultrasparc.

Here are two samples of internal compiler errors:

/opt/egcs/bin/g++ -c -I../../SipGeneral/Src -I../../GenericLib/Src 
-I../../../include  -g -Wall -W -Wno-return-type -Woverloaded-virtual
-fno-exceptions -fno-rtti   -mcpu=ultrasparc -O2 -ffast-math -DBIGENDIAN
-DSPARC    -ftemplate-depth-33 -fenum-int-equiv -fforce-mem
-felide-constructors  -I../../../include -I../../../oo-server
-I../../../general  -I../../GenericLib/Src -I../../SipGeneral/Src 
-I../../Src/kernel -I../../Src/task_geom_ref 
-I../../Src/task_line_width -I../../Src/win_tests  -I../../Src/snap 
-I../../Src/task_registration -I../../Src/utils 
../../SipGeneral/Src/gcircle.C -o
../../SipGeneral/Config/Sparc/gcircle.o
../../SipGeneral/Src/gcircle.C: In function `bool operator <(const class
Gcircle &, const class Gcircle &)':
../../SipGeneral/Src/gcircle.C:257: Internal compiler error.

//---------------------------------------------------------------------------
bool operator<(const Gcircle & x, const Gcircle & y)
{
  if (x.cx == y.cx) {
    return (x.cy < y.cy);
  }
  else {
    return (x.cx < y.cx);
  }
}


################################################

/opt/egcs/bin/g++ -c -I../../SipGeneral/Src -I../../GenericLib/Src 
-I../../../include  -g -Wall -W -Wno-return-type -Woverloaded-virtual
-fno-exceptions -fno-rtti   -mcpu=ultrasparc -O2 -ffast-math -DBIGENDIAN
-DSPARC    -ftemplate-depth-33 -fenum-int-equiv -fforce-mem
-felide-constructors  -I../../../include -I../../../oo-server
-I../../../general  -I../../GenericLib/Src -I../../SipGeneral/Src 
-I../../Src/kernel -I../../Src/task_geom_ref 
-I../../Src/task_line_width -I../../Src/win_tests  -I../../Src/snap 
-I../../Src/task_registration -I../../Src/utils 
../../SipGeneral/Src/best_line.C -o
../../SipGeneral/Config/Sparc/best_line.o
../../../include/fp_compare.H: In function `bool FpEQzero(float)':
In file included from ../../SipGeneral/Src/best_line.C:22:
../../../include/fp_compare.H:14: Internal compiler error.
../.

#ifndef _FP_COMPARE_
#define _FP_COMPARE_

// floating point comparison functions

#include <cfloat>
using namespace std;

#define FP_FLT_EPS 128.0 * FLT_EPSILON
#define FP_DBL_EPS 128.0 * DBL_EPSILON

// d == 0 : true iff d is (floating point) equal to zero
bool FpEQzero(double d ) { return (fabs(d) < FP_DBL_EPS); }
bool FpEQzero(float d )  { return (fabs((double)d) < FP_FLT_EPS); }

// d > 0 : true iff d is (floating point) greater than to zero
bool FpGTzero(double d ) { return d > FP_DBL_EPS; }
bool FpGTzero(float d )  { return d > FP_FLT_EPS; }

// d >= 0 : true iff d is (floating point) greater than or equal to zero
bool FpGEzero(double d ) { return d >= FP_DBL_EPS; }
bool FpGEzero(float d )  { return d >= FP_FLT_EPS; }

// d < 0 : true iff d is (floating point) less than to zero
bool FpLTzero(double d ) { return d < -FP_DBL_EPS; }
bool FpLTzero(float d )  { return d < -FP_FLT_EPS; }

// d <= 0 : true iff d is (floating point) less than or equal to zero
bool FpLEzero(double d ) { return d <= -FP_DBL_EPS; }
bool FpLEzero(float d )  { return d <= -FP_FLT_EPS; }

// a == b : true iff a is (floating point) equal to b
bool FpEQ(double a, double b ) { return FpEQzero(a-b); }
bool FpEQ(float a, float b )   { return FpEQzero(a-b); }

// a > b : true iff a is (floating point) greater than to b
bool FpGT(double a, double b ) { return ( a > (b+FP_DBL_EPS) ); }
bool FpGT(float a, float b )   { return ( a > (b+FP_FLT_EPS) ); }

// a >= b : true iff a is (floating point) greater than or equal to b
bool FpGE(double a, double b ) { return ( a >= (b+FP_DBL_EPS) ); }
bool FpGE(float a, float b )   { return ( a >= (b+FP_FLT_EPS) ); }

// a < b : true iff a is (floating point) smaller than to b
bool FpLT(double a, double b ) { return ( b > (a+FP_DBL_EPS) ); }
bool FpLT(float a, float b )   { return ( b > (a+FP_FLT_EPS) ); }

// a <= b : true iff a is (floating point) smaller than or equal to b
bool FpLE(double a, double b ) { return ( b >= (a+FP_DBL_EPS) ); }
bool FpLE(float a, float b )   { return ( b >= (a+FP_FLT_EPS) ); }


#endif // _FP_COMPARE_


###########################

Thanks!!



More information about the Gcc-bugs mailing list