head	1.2;
access;
symbols;
locks; strict;
comment	@# @;


1.2
date	2004.12.16.10.11.31;	author maho;	state dead;
branches;
next	1.1;

1.1
date	2004.12.16.09.16.23;	author maho;	state Exp;
branches;
next	;


desc
@@


1.2
log
@Back out to original. Maho (myself) committed
at different place.

Pointy hat to:  maho
Submitted by:   pav
@
text
@http://gcc.gnu.org/ml/gcc-patches/2004-07/msg00968.html
http://blog.janik.cz/archives/2004-11-23T22_37_37.html

--- gcc-3.4.1/gcc/fold-const.c.orig	Tue Jun  1 08:15:12 2004
+++ gcc-3.4.1/gcc/fold-const.c	Wed Nov 24 16:39:02 2004
@@@@ -3535,7 +3535,13 @@@@
       HOST_WIDE_INT hi;
       int prec;
 
-      prec = TYPE_PRECISION (etype);
+      /* For enums the comparison will be done in the underlying type,
+	 so using enum's precision is wrong here.
+	 Consider e.g. enum { A, B, C, D, E }, low == B and high == D.  */
+      if (TREE_CODE (etype) == ENUMERAL_TYPE)
+	prec = GET_MODE_BITSIZE (TYPE_MODE (etype));
+      else
+	prec = TYPE_PRECISION (etype);
       if (prec <= HOST_BITS_PER_WIDE_INT)
 	{
 	  hi = 0;
@


1.1
log
@gcc-ooo, gcc compiler for OpenOffice.org 2.0 or later
compilation. This version of gcc is as same as which
Hamburg team use to develop OpenOffice.org, applying
following fixes:

o visiblity fix
http://www.nedprod.com/programs/gccvisibility.html
o emum fix
http://gcc.gnu.org/ml/gcc-patches/2004-07/msg00968.html

For detail, see the announce:
http://porting.openoffice.org/servlets/ReadMsg?listName=dev&msgNo=14280

Many thanks to: Pavel Janik <Pavel at Janik.cz>
@
text
@@

