This is the mail archive of the gcc-prs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

optimization/6443: internal compiler error, at flow.c:6458



>Number:         6443
>Category:       optimization
>Synopsis:       internal compiler error, at flow.c:6458
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Apr 24 18:36:00 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Daniel R. Grayson
>Release:        3.0.4
>Organization:
University of Illinois
>Environment:
System: Linux hn02 2.2.19smpx #2 SMP Wed Apr 25 20:33:05 PDT 2001 i686 unknown
Architecture: i686
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ../gcc-3.0.4/./configure --prefix=/u/ac/drg/local --enable-shared --enable-threads=posix --enable-languages=c++,f77,java
>Description:

	gcc -O3 -c bug.c
	bug.c: In function `actors_circ_':
	bug.c:276: Internal compiler error in print_rtl_and_abort, at flow.c:6458

>How-To-Repeat:

	Run

	    gcc -O3 -c bug.c

	where bug.c is the following file.

		struct exception {
		    int type;
		    char *name;
		    double arg1;
		    double arg2;
		    double retval;
		  };

		extern double pow (double __x, double __y) {
		  register long double __value = 0;
		  long long int __p = (long long int) __y;
		  if (__y == (double) __p) {
		    if (__p == 0) return 1.0;
		    if (__p < 0) __p = -__p;
		  }
		  return __value;
		 }



		typedef void * object_;
		typedef struct S153_ * arith_Integer;
		typedef struct S177_ * arith_Rational;
		typedef struct S224_ * tokens_SymbolHashTable;

		typedef struct S226_ * tokens_Dictionary;
		typedef struct S227_ * tokens_Scope;

		typedef struct S252_ * TokenFile;

		typedef struct S255_ * tokens_Real;
		typedef struct S259_ * Sequence;

		typedef struct S260_ * tokens_Frame;
		typedef struct S261_ * tokens_FunctionClosure;
		typedef struct S262_ * tokens_SymbolClosure;
		typedef struct SC269_ Expr;
		typedef struct SC290_ Code;
		typedef struct S296_ * HashTable;
		struct SC269_ {unsigned short type_; object_ ptr_;};
		struct SC290_ {unsigned short type_; object_ ptr_;};
		struct S177_ {arith_Integer numerator;arith_Integer denominator;};
		struct S255_ {double v;};

		extern Expr ab;

		extern arith_Rational re;
		extern arith_Integer arith_circ_circ_(arith_Integer,arith_Integer);
		extern arith_Integer arith_or_(arith_Integer,arith_Integer);
		extern arith_Integer arith_amp_(arith_Integer,arith_Integer);
		extern double arith_circ__1(double,arith_Integer);

		extern arith_Integer arith_circ_(arith_Integer,arith_Integer);
		extern char arith_greater_equal__1(arith_Integer,int);
		extern char arith_equal_equal_equal__1(arith_Integer,int);
		extern arith_Integer arith_minus_(arith_Integer);
		extern arith_Integer arith_plus_(arith_Integer,arith_Integer);
		extern unsigned short arith_pct_(arith_Integer,unsigned short);
		extern int arith_toInt(arith_Integer);
		extern arith_Integer arith_toInteger(int);

		extern tokens_SymbolClosure binding_PowerS;
		Expr actors_circ_(Expr lhs_10,Expr rhs_12){
			  arith_Integer x_19;
			  arith_Integer y_40;
			  tokens_Real y_41;
			  arith_Rational x_20;
			  arith_Integer y_42;
			  tokens_Real x_21;
			  tokens_Real y_43;
			  arith_Integer y_44;
			  Expr tmp__212;
			  Expr tmp__217;
			  Expr tmp__219;
			  arith_Integer tmp__220;
			  Expr tmp__221;
			  Expr tmp__222;
			  arith_Integer tmp__223;
			  Expr tmp__224;
			  tokens_Real tmp__225;
			  Expr tmp__226;
			  arith_Rational tmp__227;
			  Expr tmp__228;
			  Expr tmp__229;
			  tokens_Real tmp__230;
			  Expr tmp__231;
			  tokens_Real tmp__232 = 0;
			  Expr tmp__233;
			  Expr tmp__234;
			  Expr tmp__235;
			  switch (lhs_10.type_) {
			      case 6:;
			      tmp__212 = lhs_10;
			      goto L749_;
			      case 13:;
			      x_19 = ((arith_Integer)lhs_10.ptr_);
			      switch (rhs_12.type_) {
				  case 13:;
				  y_40 = ((arith_Integer)rhs_12.ptr_);
				  if (arith_greater_equal__1(y_40, 0)) goto L787_;
				  if (arith_equal_equal_equal__1(x_19, 1)) goto L788_;
				  if (arith_equal_equal_equal__1(x_19, (- 1))) goto L789_;
				  goto L790_;
				  L789_:;
				  if ((((int)arith_pct_(y_40, ((unsigned short)2))) == 0)) goto L791_;
				  ;
				  goto L792_;
				  L791_:;
				  tmp__220 = arith_toInteger(1);
				  tmp__219 = ((Expr){13,((object_)tmp__220)});
				  ;
				  L792_:;
				  tmp__217 = tmp__219;
				  ;
				  L790_:;
				  tmp__221 = tmp__217;
				  ;
				  goto L793_;
				  L788_:;
				  tmp__221 = ((Expr){13,((object_)x_19)});
				  ;
				  L793_:;
				  tmp__222 = tmp__221;
				  ;
				  goto L794_;
				  L787_:;
				  tmp__223 = arith_circ_(x_19, y_40);
				  tmp__222 = ((Expr){13,((object_)tmp__223)});
				  ;
				  L794_:;
				  tmp__224 = tmp__222;
				  ;
				  goto L768_;
				  case 1:;
				  y_41 = ((tokens_Real)rhs_12.ptr_);
				  ;
				  tmp__225 = 0;
				  tmp__225->v = pow(((double)arith_toInt(x_19)), y_41->v);
				  tmp__224 = ((Expr){1,((object_)tmp__225)});
				  ;
				  goto L768_;
				  case 6:;
				  tmp__224 = rhs_12;
				  ;
				  goto L768_;
				  case 2:;
				  case 3:;
				  case 4:;
				  case 5:;
				  case 7:;
				  case 8:;
				  case 9:;
				  case 10:;
				  case 11:;
				  case 12:;
				  case 14:;
				  case 15:;
				  case 16:;
				  case 17:;
				  case 18:;
				  tmp__226 = ab;
				  tmp__224 = tmp__226;
				  ;
				  goto L768_;
				  L768_:;
				  }
			      tmp__212 = tmp__224;
			      ;
			      goto L749_;
			      case 12:;
			      x_20 = ((arith_Rational)lhs_10.ptr_);
			      ;
			      switch (rhs_12.type_) {
				  case 13:;
				  y_42 = ((arith_Integer)rhs_12.ptr_);
				  ;
				  tmp__227 = re;
				  tmp__228 = ((Expr){12,((object_)tmp__227)});
				  ;
				  goto L795_;
				  case 6:;
				  tmp__228 = rhs_12;
				  ;
				  goto L795_;
				  case 1:;
				  case 2:;
				  case 3:;
				  case 4:;
				  case 5:;
				  case 7:;
				  case 8:;
				  case 9:;
				  case 10:;
				  case 11:;
				  case 12:;
				  case 14:;
				  case 15:;
				  case 16:;
				  case 17:;
				  case 18:;
				  tmp__229 = ab;
				  tmp__228 = tmp__229;
				  ;
				  goto L795_;
				  L795_:;
				  }
			      tmp__212 = tmp__228;
			      ;
			      goto L749_;
			      case 1:;
			      x_21 = ((tokens_Real)lhs_10.ptr_);
			      switch (rhs_12.type_) {
				  case 1:;
				  y_43 = ((tokens_Real)rhs_12.ptr_);
				  ;
				  tmp__230 = 0;
				  tmp__230->v = pow(x_21->v, y_43->v);
				  tmp__231 = ((Expr){1,((object_)tmp__230)});
				  ;
				  goto L814_;
				  case 13:;
				  y_44 = ((arith_Integer)rhs_12.ptr_);
				  ;
				  tmp__232->v = arith_circ__1(x_21->v, y_44);
				  tmp__231 = ((Expr){1,((object_)tmp__232)});
				  ;
				  goto L814_;
				  case 6:;
				  ;
				  goto L814_;
				  case 2:;
				  case 3:;
				  case 4:;
				  case 5:;
				  case 7:;
				  case 8:;
				  case 9:;
				  case 10:;
				  case 11:;
				  case 12:;
				  case 14:;
				  case 15:;
				  case 16:;
				  case 17:;
				  case 18:;
				  tmp__233 = ab;
				  tmp__231 = tmp__233;
				  ;
				  goto L814_;
				  L814_:;
				  }
			      tmp__212 = tmp__231;
			      ;
			      goto L749_;
			      case 2:;
			      case 3:;
			      case 4:;
			      case 5:;
			      case 7:;
			      case 8:;
			      case 9:;
			      case 10:;
			      case 11:;
			      case 14:;
			      case 15:;
			      case 16:;
			      case 17:;
			      case 18:;
			      tmp__234 = ab;
			      ;
			      goto L749_;
			      L749_:;
			      }
			  tmp__235 = tmp__212;
			  return tmp__235;
		}

>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]