[Bug middle-end/20991] [4.0 Regression] ICE in cgraph_mark_reachable_node

2005-04-14 Thread matz at suse dot de

--- Additional Comments From matz at suse dot de  2005-04-15 06:51 ---
Perhaps due to the IPA infrastructure? 

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20991


[Bug c++/21040] New: Segmentation fault on template/typedef typo

2005-04-14 Thread sjanssen at cse dot unl dot edu
g++ reports: "gpp_bug.cpp:10: internal compiler error: Segmentation fault", on  
 
both Gentoo Linux (gcc 3.3.5) and Solaris (gcc 3.3.2).   
  
Full output of "g++ gpp_bug.cpp":   
gpp_bug.cpp: In function `void func()':   
gpp_bug.cpp:10: internal compiler error: Segmentation fault   
Please submit a full bug report,   
with preprocessed source if appropriate.   
See http://bugs.gentoo.org/> for instructions.   
Preprocessed source stored into /tmp/ccIkMcGH.out file, please attach this to   
your bugreport.   
   
   
Output of "g++ -v" on the Linux system:   
Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/specs   
Configured with: /var/tmp/portage/gcc-3.3.5-r1/work/gcc-3.3.5/configure   
--enable-version-specific-runtime-libs --prefix=/usr   
--bindir=/usr/i686-pc-linux-gnu/gcc-bin/3.3.5   
--includedir=/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include   
--datadir=/usr/share/gcc-data/i686-pc-linux-gnu/3.3.5   
--mandir=/usr/share/gcc-data/i686-pc-linux-gnu/3.3.5/man   
--infodir=/usr/share/gcc-data/i686-pc-linux-gnu/3.3.5/info   
--with-gxx-include-dir=/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.5/include/g++-v3  
 
--host=i686-pc-linux-gnu --disable-altivec --enable-nls   
--without-included-gettext --enable-__cxa_atexit --enable-clocale=gnu   
--with-system-zlib --disable-checking --disable-werror   
--disable-libunwind-exceptions --enable-shared --enable-threads=posix   
--disable-multilib --enable-java-awt=gtk --enable-languages=c,c++,f77,java   
Thread model: posix   
gcc version 3.3.5  (Gentoo Linux 3.3.5-r1, ssp-3.3.2-3, pie-8.7.7.1) 
 
 
Offending source code:   
//BEGIN SOURCE CODE:   
template
struct bar {   
typedef T INNER_TYPE_DEF;   
};   
   
template   
void func(){   
typedef typename bar::INNER_TYPE_DEF LOCAL_TYPE_DEF;   
LOCAL_TYPE_DEF b;   
}   
   
int main(){ }   
//END SOURCE CODE   
   
Obviously "LOCAL_TYPE_DEF" is nonsensical, I stumbled on this segfault as a  
 
result of a typo.

-- 
   Summary: Segmentation fault on template/typedef typo
   Product: gcc
   Version: 3.3.5
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: sjanssen at cse dot unl dot edu
CC: gcc-bugs at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21040


[Bug preprocessor/21039] libcpp incorrectly handles different headers with same name

2005-04-14 Thread matz at suse dot de

--- Additional Comments From matz at suse dot de  2005-04-15 06:21 ---
Created an attachment (id=8640)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=8640&action=view)
Tarball with the testcase


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21039


[Bug preprocessor/21039] New: libcpp incorrectly handles different headers with same name

2005-04-14 Thread matz at suse dot de
This hits when compiling rrdtools, which creates a perl .xs module.  It's 
and autoconf package, and hence has a config.h.  perl also has a config.h 
used from it's headers (by doing a 'include "config.h"', so the one from the 
perl include dir is used correctly), which has a multiple include guard. 
 
Once the perl config.h is included the source goes on, and tries to include 
it's own config.h.  There is no way anymore due to the bug. 
It tries to do this with '#include ', i.e. just searching the -I 
paths (which are setup correctly, so it could find it in ../config.h). 
 
But this doesn't work anymore (it did with 3.3.x), as somehow it seems that 
the place of config.h as it first was found is cached (the perl one), and then 
the ../config.h one isn't even tried.  To demonstrate this I've put a tarball 
below.  After unpacking, please do: 
 
% cd a 
% find -type f 
./b/header.h 
./b/inc-b.h 
./c/inc.c 
./header.h 
% cd c 
% gcc-4 -E -I .. -I ../b inc.c 
# 1 "inc.c" 
# 1 "" 
# 1 "" 
# 1 "inc.c" 
# 1 "../b/inc-b.h" 1 
# 1 "../b/header.h" 1 
 
 
B 
# 1 "../b/inc-b.h" 2 
# 2 "inc.c" 2 
 
Note how the two include directives in inc.c have no effect, _although_ 
-I .. is before -I ../b in the cmdline.  gcc 3 does it correctly: 
 
% gcc-3 -E -I .. -I ../b inc.c | grep header.h 
# 1 "inc.c" 
# 1 "" 
# 1 "" 
# 1 "inc.c" 
# 1 "../b/inc-b.h" 1 
# 1 "../b/header.h" 1 
 
 
B 
# 2 "../b/inc-b.h" 2 
# 2 "inc.c" 2 
# 1 "../header.h" 1 
A 
# 3 "inc.c" 2 
# 1 "../header.h" 1 
A 
# 4 "inc.c" 2

-- 
   Summary: libcpp incorrectly handles different headers with same
name
   Product: gcc
   Version: 4.0.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: preprocessor
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: matz at suse dot de
CC: gcc-bugs at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21039


[Bug fortran/21034] internal compiler error: in gfc_trans_auto_array_allocation, at fortran/trans-array.c:3036

2005-04-14 Thread nicolas dot girard at nerim dot net

--- Additional Comments From nicolas dot girard at nerim dot net  
2005-04-15 06:10 ---
Created an attachment (id=8639)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=8639&action=view)
Source files


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21034


[Bug fortran/21034] internal compiler error: in gfc_trans_auto_array_allocation, at fortran/trans-array.c:3036

2005-04-14 Thread nicolas dot girard at nerim dot net

--- Additional Comments From nicolas dot girard at nerim dot net  
2005-04-15 06:09 ---
Sure. 
Actually the main file is a .F file. The tgz I'm about to attach contain the 
following files: 
 
- main.F : main file 
- guess.h  params.h  pinch_complet.h  prec.h: included by the preprocessor 
- routines.h.ok : when renamed to routines.h, the program compiles fine 
- routines.h.bug: when renamed to routines.h, causes the bug to appear 
 
"$ diff routines.*" gives: 
408c408 
< subroutine solution(n,xf,fg,h1,h2,beta,pas,tolerance,nmax,xav) 
--- 
> subroutine solution(xf,fg,h1,h2,beta,pas,tolerance,nmax,xav) 
438c438 
< parameter (n1=5,n2=5,ndims=10) 
--- 
> parameter (n1=5,n2=5,n=1024,ndims=10) 
 
All I did was to add "n" as a new parameter of the solution() subroutine ; here 
the call to solution() is unchanged but adding a variable corresponding to n in 
the function call changes nothing, the bug still appears. 
 
Thanks again, 
cheers  

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21034


[Bug c++/21038] Poor diagnostic

2005-04-14 Thread igodard at pacbell dot net

--- Additional Comments From igodard at pacbell dot net  2005-04-15 06:04 
---
Yes, it's a design flaw of C that parens and bracked are so overloaded that the
compiler (or the human) can't tell if the problem is too many openers or not
enough closers. Still, every little bit helps :-)

Ivan

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21038


[Bug tree-optimization/21029] [4.1 Regression] vrp miscompiles Ada front-end, drops loop exit test in well-defined wrap-around circumstances

2005-04-14 Thread aoliva at redhat dot com

--- Additional Comments From aoliva at gcc dot gnu dot org  2005-04-15 
05:56 ---
Subject: [PR tree-optimization/21029, RFC] harmful chrec type conversions

I started out by handling the specific case that the Ada front-end
triggers, reduced to function f() in the attached testcase.  Later on,
as I understood the failure more, I figured I'd exercise some other
cases, and painted myself into a corner in which each combination of
widening-or-narrowing signedness-changing-or-not conversion that
chrec_convert() might be asked to handle would be harmed by simply
converting CHREC_LEFT and CHREC_RIGHT to the requested type, and the
strategy we already used for widening conversions gave us correct
results.

Are there good reasons to try to perform the conversions in place and
try to work around the loss of information elsewhere, or is this
approach reasonable?

This is not a final patch; if the idea is considered sound, I'd simply
remove the if and the then-dead remaining code in chrec_convert.
Meanwhile, I'm bootstrapping this on amd64-linux-gnu.

Comments?

Index: gcc/ChangeLog
from  Alexandre Oliva  <[EMAIL PROTECTED]>

PR tree-optimization/21029
* tree-chrec.c (chrec_convert): Handle same-precision integral
types that differ in signedness like widening conversions.

Index: gcc/tree-chrec.c
===
RCS file: /cvs/gcc/gcc/gcc/tree-chrec.c,v
retrieving revision 2.14
diff -u -p -r2.14 tree-chrec.c
--- gcc/tree-chrec.c 5 Apr 2005 07:06:23 - 2.14
+++ gcc/tree-chrec.c 15 Apr 2005 05:40:27 -
@@ -1033,7 +1033,16 @@ chrec_convert (tree type, 
   if (ct == type)
 return chrec;
 
-  if (TYPE_PRECISION (ct) < TYPE_PRECISION (type))
+  if (1 /* Even truncations need to carry information about
+  well-defined overflows in narrowing conversions that might
+  have invoked undefined behavior should the operations be
+  performed directly in the narrow type.  */
+  || TYPE_PRECISION (ct) < TYPE_PRECISION (type)
+  /* Sign changes may involve well-defined overflows; avoid
+silently dropping the signedness change.
+??? Should we limit ourselves to same-precision types here?  */
+  || (INTEGRAL_TYPE_P (ct) && INTEGRAL_TYPE_P (type)
+ && TYPE_UNSIGNED (ct) != TYPE_UNSIGNED (type)))
 return count_ev_in_wider_type (type, chrec);
 
   switch (TREE_CODE (chrec))
Index: gcc/testsuite/ChangeLog
from  Alexandre Oliva  <[EMAIL PROTECTED]>

PR tree-optimization/21029
* gcc.dg/tree-ssa/pr21029.c: New.

Index: gcc/testsuite/gcc.dg/tree-ssa/pr21029.c
===
RCS file: gcc/testsuite/gcc.dg/tree-ssa/pr21029.c
diff -N gcc/testsuite/gcc.dg/tree-ssa/pr21029.c
--- /dev/null   1 Jan 1970 00:00:00 -
+++ gcc/testsuite/gcc.dg/tree-ssa/pr21029.c 15 Apr 2005 05:40:41 -
@@ -0,0 +1,176 @@
+/* { dg-do run } */
+/* { dg-options "-O2" } */
+
+/* PR tree-optimization/21029
+
+   f() used to get optimized to an infinite loop by tree-vrp, because
+   j is assumed to be non-negative.  Even though the conversion from
+   unsigned to signed has unspecified results if the expression value
+   is not representable in the signed type, the compiler itself (e.g.,
+   the Ada front end) depends on wrap-around behavior.  */
+
+unsigned int g(void) {
+  return (unsigned int)g;
+}
+
+unsigned int f(void) {
+  unsigned int k = g ();
+
+  unsigned char i = 123;
+  signed char j;
+
+  do
+if ((j = (signed char) i) < 0)
+  break;
+else
+  i++;
+  while (1);
+
+  /* This is here just so that the compiler introduces ASSERT_EXPR so
+ as to run the vrp pass.  Yuck.  */
+  if (i <= k)
+k = i - 2;
+  else
+k = k + 3;
+
+  return k;
+}
+
+/* Now let's torture it a bit further.  Narrowing conversions need
+   similar treatment.  */
+
+unsigned int f1 (void) {
+  unsigned int k = g ();
+
+  unsigned short i = 123;
+  signed char j;
+
+  do
+if ((j = (signed char) i) < 0)
+  break;
+else
+  i++;
+  while (1);
+
+  /* This is here just so that the compiler introduces ASSERT_EXPR so
+ as to run the vrp pass.  Yuck.  */
+  if (i <= k)
+k = i - 2;
+  else
+k = k + 3;
+
+  return k;
+}
+
+/* And so do widening conversions.  */
+
+unsigned int f2 (void) {
+  unsigned int k = g ();
+
+  unsigned char i = 123;
+  signed short j;
+
+  do
+if ((j = (signed short) (signed char) i) < 0)
+  break;
+else
+  i++;
+  while (1);
+
+  /* This is here just so that the compiler introduces ASSERT_EXPR so
+ as to run the vrp pass.  Yuck.  */
+  if (i <= k)
+k = i - 2;
+  else
+k = k + 3;
+
+  return k;
+}
+
+/* Check same-sign truncations with an increment that turns into
+   decrements.  */
+
+unsigned int f3 (void) {
+  unsigned int k = g ();
+
+  signed short i = 5;
+  signed char j;
+
+  do
+if ((j = (signed char) i) < 0)
+  break;
+else
+  i += 255;
+  while (

[Bug tree-optimization/21004] [4.1 Regression] gcc.dg/builtins-53.c fails

2005-04-14 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-04-15 
05:44 ---
Subject: Bug 21004

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-04-15 05:43:57

Modified files:
gcc: ChangeLog convert.c builtins.c 
gcc/testsuite  : ChangeLog 
gcc/testsuite/gcc.dg: builtins-53.c 

Log message:
PR tree-optimization/21004
* convert.c (convert_to_integer): Convert ceilf, ceill, floorf
and floorl in c99 mode only.
* builtins.c (expand_builtin_int_roundingfn): Assert that
fallback_fndecl is not NULL_TREE.

testsuite:

PR tree-optimization/21004
* gcc.dg/builtins-53.c: Include builtins-config.h.
Check floorf, ceilf, floorl and ceill transformations
only when HAVE_C99_RUNTIME is defined.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.8301&r2=2.8302
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/convert.c.diff?cvsroot=gcc&r1=1.60&r2=1.61
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/builtins.c.diff?cvsroot=gcc&r1=1.453&r2=1.454
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.5353&r2=1.5354
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/builtins-53.c.diff?cvsroot=gcc&r1=1.3&r2=1.4



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21004


[Bug java/21022] bootstrap error compiling libgcj with awt support on darwin-ppc

2005-04-14 Thread pinskia at gcc dot gnu dot org


-- 
   What|Removed |Added

 CC||pinskia at gcc dot gnu dot
   ||org
   Keywords||build, ice-on-valid-code


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21022


[Bug c++/21038] Poor diagnostic

2005-04-14 Thread bangerth at dealii dot org

--- Additional Comments From bangerth at dealii dot org  2005-04-15 05:36 
---
It may also very well be the case that the shown opening brace isn't the 
one that is unmatched, but that you forgot to close a block somewhere in 
the middle. 
 
W. 

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21038


[Bug middle-end/20991] [4.0 Regression] ICE in cgraph_mark_reachable_node

2005-04-14 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-15 
05:36 ---
Hmm, all of the testcases listed here work on the mainline.

-- 
   What|Removed |Added

  Known to work||4.1.0
Summary|[4.0/4.1 Regression] ICE in |[4.0 Regression] ICE in
   |cgraph_mark_reachable_node  |cgraph_mark_reachable_node


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20991


[Bug c++/21012] [4.0/4.1 regression] incorrect name lookup from nested struct

2005-04-14 Thread bangerth at dealii dot org

--- Additional Comments From bangerth at dealii dot org  2005-04-15 05:31 
---
The unqualified name Foo is looked up within the class hierarchy, and finds 
the name of the base class. 
 
W. 

-- 
   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21012


[Bug c++/21008] [3.4/4.0/4.1 Regression] Acess failure in accessing data member of base class from derived template class

2005-04-14 Thread bangerth at dealii dot org

--- Additional Comments From bangerth at dealii dot org  2005-04-15 05:29 
---
A::foo_ is not template-dependent, so it is looked up and bound at the time 
of template definition, not at instantiation time. Because template-dependent 
base classes are not visible at the time, the access is assumed to be from 
the outside, not within the class hierarchy through this->, and the error, 
though surprising, is correct. 
 
W. 

-- 
   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21008


[Bug bootstrap/21037] [4.0 RC1] Bootstrap failure (ld: TOC overflow)

2005-04-14 Thread ltg at zes dot uni-bremen dot de

--- Additional Comments From ltg at zes dot uni-bremen dot de  2005-04-15 
05:25 ---
Subject: RE:  [4.0 RC1] Bootstrap failure (ld: TOC overflow)


On 15-Apr-2005 pinskia at physics dot uc dot edu wrote:
> 
> It is already done for BOOT_LDFLAGS.

OK. I configured now with:

BOOT_LDFLAGS="-Wl,-bbigtoc" CC="/usr/local/bin/gcc -maix64" CFLAGS="-O9 -maix64
-maltivec -mabi=altivec" CXXFLAGS="-g -O9 -maix64 -maltivec -mabi=altivec"
CFLAGS_FOR_TARGET="-O9 -maix64 -maltivec -mabi=altivec" LIBCFLAGS="-g -O9
-maix64 -maltivec -mabi=altivec" LIBCXXFLAGS="-g -O9 -maix64 -maltivec
-mabi=altivec" /devel/build/gcc-4.0.0-20050410/configure --enable-threads=aix
--enable-version-specific-runtime-libs --disable-nls --enable-libgcj-debug
--enable-libgcj-multifile --with-x --enable-gtk-cairo
--enable-gather-detailed-mem-stats --enable-languages=c,c++,f95,java,objc

and built with:

BOOT_CFLAGS="-O9 -maix64" BOOT_LDFLAGS="-Wl,-bbigtoc" CFLAGS="-O9 -maix64"
CXXFLAGS="-O9 -maix64" LIBCFLAGS="-g -O9 -maix64" LIBCXXFLAGS="-g -O9 -maix64
-fno-implicit-templates" nohup /usr/local/bin/make bootstrap&

and it seems that BOOT_LDFLAGS is completely ignored by the build process,
resulting in the same TOC overflow.

Lothar
--
E-Mail: [EMAIL PROTECTED]
Date: 15-Apr-2005
Time: 05:44:28

This message was sent by XFMail
--


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21037


[Bug libfortran/18495] Intrinisc function SPREAD is broken

2005-04-14 Thread paulthomas2 at wanadoo dot fr

--- Additional Comments From paulthomas2 at wanadoo dot fr  2005-04-15 
05:07 ---
Subject: Re:  Intrinisc function SPREAD is broken

>
>
>This appears to fix the benchmark in question.
>
>  
>
I believe that reshape needs the same/similar fix.

Is ret->data = NULL guaranteed for temporaries?

This is what I would have done but the question that I asked on the 
original PR is still unanswered - is it the caller or the callee who 
should be arranging the correct amount of memory for a temporary object?

Paul T




-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18495


[Bug c++/21038] Poor diagnostic

2005-04-14 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-15 
04:05 ---
I don't know if it would useful or not.  Take the following:
void g(); void h();
void f()
{
  //. say about 100 lines
  if (a) {
//. say about 100 lines
  //. say about 100 lines
}

well you would get the wrong thing marked and it would not help you in general.

-- 
   What|Removed |Added

   Severity|normal  |enhancement
   Keywords||diagnostic


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21038


[Bug tree-optimization/20936] [4.1 Regression] tree check: accessed operand 2 of view_convert_expr with 1 operands

2005-04-14 Thread kazu at cs dot umass dot edu

--- Additional Comments From kazu at cs dot umass dot edu  2005-04-15 04:05 
---
Testing the obvious fix.


-- 
   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |kazu at cs dot umass dot edu
   |dot org |
 Status|NEW |ASSIGNED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20936


Re: Interesting bug with imLib2/glut, or compiler error?

2005-04-14 Thread Andrew Pinski
On Apr 14, 2005, at 10:32 PM, Jay Summet wrote:
-BEGIN PGP SIGNED MESSAGE-
I ran into an interesting bug when attempting to add imlib2 to a 
program that
uses GLUT.  The program would compile/link fine, but segfault when the
imlib_load_image() call was made. (initial call to imlib)

The fix?
change:
int time;
to:
//int time;
time is a standard C function so if you declare a variable, well you 
just
overwrote it, this is not a GCC bug or even a imLib2/glut bug but
a bug in your program.

-- Pinski


[Bug target/20126] [3.3/3.4/4.0 Regression] Inlined memcmp makes one argument null on entry

2005-04-14 Thread aoliva at redhat dot com

--- Additional Comments From aoliva at gcc dot gnu dot org  2005-04-15 
03:31 ---
Subject: Re: [PR target/20126, RFC] loop DEST_ADDR biv replacement may fail

On Apr 12, 2005, Roger Sayle <[EMAIL PROTECTED]> wrote:

> I still like your fallbacks, that by trying harder we perform better
> optimization,

The more I think about this, the more I have the impression that
perhaps the fallbacks are not necessary.  My gut feeling (that has
been wrong before, so take that with a grain of salt) is that, if we
mark the giv as ignored, its assignment within the loop won't be
removed (if they ever are, I'm not entirely sure), so if we introduce
a new assignment, we're wasting cpu cycles either in the compiler, if
it has to remove the redundant set, or at run-time, if it can't figure
that out.

My feeling stems from the fact that we've never had (AFAIK) a
situation in which the failure to make the change caused a
miscompilation, except in the case of a biv whose final assignment was
hoisted before the loop.  I can't quite figure out why this would ever
make sense; it appears to me that computing its final value after the
loop is always profitable is always better because it would reduce
register pressure, but I may be way off here.  In the two other cases
that were exposed by attempts to report failures in the substitution
(namely, the Ada bootstrap error that Jakub reported against an
earlier version of the patch, and the arm-elf build failure that Josh
reported), the value was there, and, since the code actually refrained
from checking the result of validate_change, perhaps it really didn't
matter whether the substitution worked.  At least until we started
swimming bivs to before the loop...

So I'm wondering if taking out all of the workarounds and going back
to something like what is now in the 4.0 branch, except for the use of
validate_change_maybe_volatile, wouldn't get us exactly what we want.

Unfortunately, cases in which the substitution fails are quite rare,
and the loop code isn't exactly trivial, so it's hard to decide
whether we've just been lucky, or the code was already mostly correct.

Anyhow, in the meantime, could I check in the patch to fix Josh's
asm-elf build failure?  I haven't been able to bootstrap the tree
lately because of PR21029, but I know it would bootstrap successfully
on amd64-linux-gnu (it would never hit the point that I changed :-),
and I know it fixes the arm-elf problem.

It would be nice to keep the hard failure in place for a bit longer,
such that we stood a better chance of finding other situations that
might require work arounds.



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20126


[Bug middle-end/20991] [4.0/4.1 Regression] ICE in cgraph_mark_reachable_node

2005-04-14 Thread matz at suse dot de

--- Additional Comments From matz at suse dot de  2005-04-15 03:16 ---
One strange thing is, that the call to getWidth() in B is already in .generic: 
if (retval.1) 
  { 
getWidth (&i_bnds); 
  } 
 
while the call to getWidth() in isEmpty() (which is inlined later into B()) is 
  D.1595 = this->_vptr.IMG_Rect; 
  D.1596 = *D.1595; 
  D.1597 = OBJ_TYPE_REF(D.1596;this->0) (this); 
  D.1594 = D.1597 == 0; 
 
Both are actually virtual calls of course, so I wonder why they are represented 
differently.  Note that this doesn't change if I make B() a method of IMG_Rect. 
I thought initially that might be a difference, as isEmpty is one. 
 
Another fact is, that if I comment out the totally unrelated useless decl for 
getVisibility(), it works.  The .i01.cgraph dump in that case shows these 
  Initial entry points: void B() void A() 
  Unit entry points: void B() void A() virtual bool IMG_Rect::isEmpty() const 
virtual int IMG_Rect::getWidth() const 
 
while when it breaks (i.e. when getVisibility is there) it looks like: 
  Initial entry points: void B() void A() 
  Unit entry points: void B() void A() 
 
See how the two methods in question are now missing.  As they are declared 
inline this 
actually should be okay, and that getVisibility makes a difference might be 
another bug, 
which hides this one sometimes. 

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20991


[Bug middle-end/20739] [4.0/4.1 regression] ICE in gimplify_addr_expr

2005-04-14 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-04-15 
03:09 ---
Subject: Bug 20739

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-04-15 03:09:51

Modified files:
gcc: ChangeLog gimplify.c 
gcc/testsuite  : ChangeLog 
Added files:
gcc/testsuite/gcc.dg/tree-ssa: pr20739.c 

Log message:
gcc/ChangeLog:
PR middle-end/20739
* gimplify.c (gimplify_addr_expr): Compensate for removal of
e.g. cv-qualification conversions.
gcc/testsuite/ChangeLog:
PR middle-end/20739
* gcc.dg/tree-ssa/pr20739.c: New test.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.8299&r2=2.8300
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/gimplify.c.diff?cvsroot=gcc&r1=2.122&r2=2.123
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.5352&r2=1.5353
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/tree-ssa/pr20739.c.diff?cvsroot=gcc&r1=NONE&r2=1.1



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20739


[Bug middle-end/20991] [4.0/4.1 Regression] ICE in cgraph_mark_reachable_node

2005-04-14 Thread matz at suse dot de

--- Additional Comments From matz at suse dot de  2005-04-15 02:40 ---
We see this error in blender.  I was able to reduce it quite a bit to this: 
 
struct IMG_Rect { 
 virtual inline int getWidth() const; 
 virtual inline bool isEmpty() const; 
 virtual int getVisibility(int) const; 
}; 
 
inline int IMG_Rect::getWidth() const 
{ 
 return 1; 
} 
 
inline bool IMG_Rect::isEmpty() const 
{ 
 return (getWidth() == 0); 
} 
 
void A() 
{ 
 IMG_Rect i_bnds; 
 if (i_bnds.isEmpty()) 
  i_bnds.getWidth(); 
} 
 
void B() 
{ 
 IMG_Rect i_bnds; 
 if (i_bnds.isEmpty()) 
  i_bnds.getWidth(); 
} 
 

-- 
   What|Removed |Added

 CC||matz at suse dot de


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20991


[Bug tree-optimization/21029] [4.1 Regression] vrp miscompiles Ada front-end, drops loop exit test in well-defined wrap-around circumstances

2005-04-14 Thread aoliva at gcc dot gnu dot org

--- Additional Comments From aoliva at gcc dot gnu dot org  2005-04-15 
02:40 ---
> Hmm?  VRP is automatically enabled at -O2 and higher.

But it doesn't run unless we find some ASSERT_EXPR, and if all we have is a
simple loop, no such ASSERT_EXPR is introduced.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21029


Interesting bug with imLib2/glut, or compiler error?

2005-04-14 Thread Jay Summet
-BEGIN PGP SIGNED MESSAGE-
I ran into an interesting bug when attempting to add imlib2 to a program that
uses GLUT.  The program would compile/link fine, but segfault when the
imlib_load_image() call was made. (initial call to imlib)
The fix?
change:
int time;
to:
//int time;
the time integer variable was a global variable that was left over from a FPS
counter I had in the program at one pointit was not used at this time.
The program has no dynamic allocation, so it shouldn't be a pointer error, and
because I got no compile/link errors it shouldn't have been getting confused
with some other global variable...
So, it could be a tool error (gcc) or a really funky interaction between imlib2
and glut/OpenGL.
In any case, if you care to try to replicate it, I've included all the files.
Attached, or at the following URL:
www.cc.gatech.edu/~summetj/drafts/funky_error.tar.gz
./doit compiles and runs the good one, and ./doit_bad compiles the bad one, and
then segfaults. (at least, on my Mandrake 10.1 box...)
The VERSIONS directory lists a lot of information about what GL/MESA/imLib2
versions I'm using (whatever came with Mandrake...)
Jay
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.2.4 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iQCVAwUBQl8n17WkkhmZq4xxAQFOzwP+KD2U89xSiNdO2Bbo8XOLPBGbxJ5tqNoq
tQRSysxOB2j8ChmYkXhnioIlQ0sdcNn6jeAfBRq+I0507rk2s5xZ7/xXCZrZx0Xt
lgbJyeTPi1gp10FS70DFsaL5UbqjtqVoyn+O+pKIqbYZA9ZXaumubRA2Q0lXgnrx
ZsFeWyfPPgI=
=lIu2
-END PGP SIGNATURE-


funky_error.tar.gz
Description: application/gzip


[Bug middle-end/20739] [4.0/4.1 regression] ICE in gimplify_addr_expr

2005-04-14 Thread aoliva at redhat dot com

--- Additional Comments From aoliva at gcc dot gnu dot org  2005-04-15 
02:32 ---
Subject: Re: [PR middle-end/20739] lvalue cond-expr gimplification may crash on 
cv-qual diffs

On Apr 14, 2005, Alexandre Oliva <[EMAIL PROTECTED]> wrote:

> Bootstrap and regtest pased on amd64-linux-gnu, at least for mainline.
> I'm retesting on the branch, since I'm not entirely sure I actually
> tested it there.

Bootstrap and test completed on amd64-linux-gnu.

> Index: gcc/ChangeLog
> from  Alexandre Oliva  <[EMAIL PROTECTED]>

>   PR middle-end/20739
>   * gimplify.c (gimplify_addr_expr): Compensate for removal of
>   e.g. cv-qualification conversions.



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20739


[Bug tree-optimization/21021] [4.1 Regression] ICE in tree-vrp building glibc

2005-04-14 Thread kazu at cs dot umass dot edu

--- Additional Comments From kazu at cs dot umass dot edu  2005-04-15 01:31 
---
Just checked in a workaround patch.
For a real fix, keep an eye on PR 21024.


-- 
   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21021


[Bug tree-optimization/21021] [4.1 Regression] ICE in tree-vrp building glibc

2005-04-14 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-04-15 
01:29 ---
Subject: Bug 21021

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-04-15 01:29:44

Modified files:
gcc: ChangeLog tree-vrp.c 
gcc/testsuite  : ChangeLog 
Added files:
gcc/testsuite/gcc.c-torture/compile: pr21021.c 

Log message:
gcc/
PR tree-optimization/21021
* tree-vrp.c (compare_values): Work around a bug in the front
end that produces a comparison of mismatched types.

testsuite/
PR tree-optimization/21021
* gcc.c-torture/compile/pr21021.c: New.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.8297&r2=2.8298
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-vrp.c.diff?cvsroot=gcc&r1=2.7&r2=2.8
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.5350&r2=1.5351
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.c-torture/compile/pr21021.c.diff?cvsroot=gcc&r1=NONE&r2=1.1



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21021


[Bug bootstrap/21037] [4.0 RC1] Bootstrap failure (ld: TOC overflow)

2005-04-14 Thread ltg at zes dot uni-bremen dot de

--- Additional Comments From ltg at zes dot uni-bremen dot de  2005-04-15 
01:08 ---
Subject: RE:  [4.0 RC1] Bootstrap failure (ld: TOC overflow)


On 15-Apr-2005 pinskia at gcc dot gnu dot org wrote:
> 
> --- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-15
> 00:51 ---
> Also what gcc are you starting with?

[EMAIL PROTECTED]:/devel/build> gcc -v
Reading specs from /usr/local/lib/gcc/powerpc-ibm-aix5.2.0.0/3.4.3/specs
Configured with: ../gcc-3.4.3/configure --enable-threads=aix
--enable-version-specific-runtime-libs --disable-nls --enable-libgcj-debug
--enable-libgcj-multifile --with-x --enable-gtk-cairo
--enable-gather-detailed-mem-stats
Thread model: aix
gcc version 3.4.3

Lothar
--
E-Mail: [EMAIL PROTECTED]
Date: 15-Apr-2005
Time: 03:03:45

This message was sent by XFMail
--


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21037


[Bug c++/21038] New: Poor diagnostic

2005-04-14 Thread igodard at pacbell dot net
In:

void foo() {

int i;
int j;
int k;

you get:

~/ootbc/members/src$ g++ foo.cc
foo.cc: In function `void foo()':
foo.cc:5: error: expected `}' at end of input

The disgnostic should show the line number of the unmatched opener "{". Finding
mismatched brackets can be a real pain in lengthy or nested code such as .h
files for collection template classes.

Ivan

-- 
   Summary: Poor diagnostic
   Product: gcc
   Version: 3.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: igodard at pacbell dot net
CC: gcc-bugs at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21038


[Bug bootstrap/21037] [4.0 RC1] Bootstrap failure (ld: TOC overflow)

2005-04-14 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-15 
00:51 ---
Also what gcc are you starting with?

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21037


[Bug bootstrap/21037] [4.0 RC1] Bootstrap failure (ld: TOC overflow)

2005-04-14 Thread pinskia at physics dot uc dot edu

--- Additional Comments From pinskia at physics dot uc dot edu  2005-04-15 
00:49 ---
Subject: Re:  New: [4.0 RC1] Bootstrap failure (ld: TOC overflow)


On Apr 14, 2005, at 8:45 PM, ltg at zes dot uni-bremen dot de wrote:

> I tried to build gcc-4.0.0-20050410 (RC1) and got the following error:
>
> BOOT_CFLAGS="-O9 -maix64" CFLAGS="-O9 -maix64" CXXFLAGS="-O9 -maix64"
> LIBCFLAGS="-g -O9 -maix64" LIBCXXFLAGS="-g -O9 -maix64 
> -fno-implicit-templates"
> nohup /usr/local/bin/make bootstrap&
>
> It looks like at least the 64bit build on powerpc-ibm-aix5.2.0.0 needs
> a "-Wl,-bbigtoc" as a default flag.

It is already done for BOOT_LDFLAGS.

-- Pinski



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21037


Re: [Bug bootstrap/21037] New: [4.0 RC1] Bootstrap failure (ld: TOC overflow)

2005-04-14 Thread Andrew Pinski
On Apr 14, 2005, at 8:45 PM, ltg at zes dot uni-bremen dot de wrote:
I tried to build gcc-4.0.0-20050410 (RC1) and got the following error:
BOOT_CFLAGS="-O9 -maix64" CFLAGS="-O9 -maix64" CXXFLAGS="-O9 -maix64"
LIBCFLAGS="-g -O9 -maix64" LIBCXXFLAGS="-g -O9 -maix64 
-fno-implicit-templates"
nohup /usr/local/bin/make bootstrap&

It looks like at least the 64bit build on powerpc-ibm-aix5.2.0.0 needs
a "-Wl,-bbigtoc" as a default flag.
It is already done for BOOT_LDFLAGS.
-- Pinski


[Bug bootstrap/21037] New: [4.0 RC1] Bootstrap failure (ld: TOC overflow)

2005-04-14 Thread ltg at zes dot uni-bremen dot de
I tried to build gcc-4.0.0-20050410 (RC1) and got the following error:

/usr/local/bin/gcc -maix64   -g -DENABLE_CHECKING -DENABLE_ASSERT_CHECKING
-DIN_GCC   -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes
-Wold-style-definition-DHAVE_CONFIG_H  -o cc1 \
c-parse.o c-lang.o stub-objc.o attribs.o c-errors.o c-lex.o c-pragma.o
c-decl.o c-typeck.o c-convert.o c-aux-info.o c-common.o c-opts.o c-format.o
c-semantics.o c-incpath.o cppdefault.o c-ppoutput.o c-cppbuiltin.o prefix.o
c-objc-common.o c-dump.o c-pch.o rs6000-c.o c-gimplify.o tree-mudflap.o
c-pretty-print.o main.o  libbackend.a ../libcpp/libcpp.a ../libcpp/libcpp.a 
-liconv ../libiberty/libiberty.a
ld: 0711-781 ERROR: TOC overflow. TOC size: 102280  Maximum size: 65536
collect2: ld returned 12 exit status
make[2]: *** [cc1] Error 1
make[2]: Leaving directory `/devel/build/objdir.400pre/gcc'
make[1]: *** [stage1_build] Error 2
make[1]: Leaving directory `/devel/build/objdir.400pre/gcc'
make: *** [bootstrap] Error 2

This is my configure commandline:

CC="/usr/local/bin/gcc -maix64" CFLAGS="-O9 -maix64 -maltivec -mabi=altivec"
CXXFLAGS="-g -O9 -maix64 -maltivec -mabi=altivec" CFLAGS_FOR_TARGET="-O9 -maix64
-maltivec -mabi=altivec" LIBCFLAGS="-g -O9 -maix64 -maltivec -mabi=altivec"
LIBCXXFLAGS="-g -O9 -maix64 -maltivec -mabi=altivec"
/devel/build/gcc-4.0.0-20050410/configure --enable-threads=aix
--enable-version-specific-runtime-libs --disable-nls --enable-libgcj-debug
--enable-libgcj-multifile --with-x --enable-gtk-cairo
--enable-gather-detailed-mem-stats --enable-languages=c,c++,f95,java,objc

And my make commandline:

BOOT_CFLAGS="-O9 -maix64" CFLAGS="-O9 -maix64" CXXFLAGS="-O9 -maix64"
LIBCFLAGS="-g -O9 -maix64" LIBCXXFLAGS="-g -O9 -maix64 -fno-implicit-templates"
nohup /usr/local/bin/make bootstrap&

It looks like at least the 64bit build on powerpc-ibm-aix5.2.0.0 needs
a "-Wl,-bbigtoc" as a default flag.

Lothar

-- 
   Summary: [4.0 RC1] Bootstrap failure (ld: TOC overflow)
   Product: gcc
   Version: 4.0.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: bootstrap
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ltg at zes dot uni-bremen dot de
CC: gcc-bugs at gcc dot gnu dot org
  GCC host triplet: powerpc-ibm-aix5.2.0.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21037


[Bug java/21036] New: gcj ICE compiling Azureus 2.2.0.2 to native code

2005-04-14 Thread luca dot barbieri at gmail dot com
Description of problem:

gcj ICEs compiling Azureus 2.2.0.2 to native code.

Version-Release number of selected component (if applicable):
gcc-java-4.0.0-0.42 from RedHat Fedora Core Development

How reproducible:
Always

Steps to Reproduce:
1. Download and unpack Azureus 2.2.0.2 from
http://azureus.sourceforge.net/download.php
2. Run gcj -fPIC -fjni -findirect-dispatch -shared -Wl,-Bsymbolic
--classpath=swt.jar:swt-pi.jar:swt-mozilla.jar Azureus2.2.0.2.jar -o
Azureus2.2.0.2.jar.so
  
Actual results:
org/gudy/azureus2/core3/tracker/client/classic/TrackerStatus.java: In class
'org.gudy.azureus2.core3.tracker.client.classic.TrackerStatus':
org/gudy/azureus2/core3/tracker/client/classic/TrackerStatus.java: In method
'org.gudy.azureus2.core3.tracker.client.classic.TrackerStatus.scrapeUDP(java.net.URL,java.io.ByteArrayOutputStream,byte[])':
org/gudy/azureus2/core3/tracker/client/classic/TrackerStatus.java:813: internal
compiler error: in update_aliases, at java/decl.c:166
Please submit a full bug report,
with preprocessed source if appropriate.
See http://bugzilla.redhat.com/bugzilla> for instructions.

Expected results:
Success.

Additional info:
Happens with several other sets of command line options (including no options
except --classpath and -o).

-- 
   Summary: gcj ICE compiling Azureus 2.2.0.2 to native code
   Product: gcc
   Version: 4.0.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: java
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: luca dot barbieri at gmail dot com
CC: gcc-bugs at gcc dot gnu dot org,java-prs at gcc dot gnu
dot org
 GCC build triplet: i386-redhat-linux
  GCC host triplet: i386-redhat-linux
GCC target triplet: i386-redhat-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21036


[Bug middle-end/14311] builtins for atomic operations needed

2005-04-14 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-04-14 
23:37 ---
Subject: Bug 14311

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-04-14 23:37:47

Modified files:
gcc: ChangeLog builtin-types.def builtins.c 
 builtins.def c-common.c c-common.h c-typeck.c 
 expr.c expr.h genopinit.c optabs.c optabs.h 
gcc/doc: extend.texi md.texi 
Added files:
gcc/testsuite/gcc.c-torture/compile: sync-1.c 
gcc/testsuite/gcc.dg: sync-1.c 

Log message:
PR middle-end/14311
* builtin-types.def (BT_BOOL, BT_VOLATILE_PTR, BT_I1, BT_I2,
BT_I4, BT_I8, BT_FN_VOID_VPTR, BT_FN_I1_VPTR_I1, BT_FN_I2_VPTR_I2,
BT_FN_I4_VPTR_I4, BT_FN_I8_VPTR_I8, BT_FN_BOOL_VPTR_I1_I1,
BT_FN_BOOL_VPTR_I2_I2, BT_FN_BOOL_VPTR_I4_I4, BT_FN_BOOL_VPTR_I8_I8,
BT_FN_I1_VPTR_I1_I1, BT_FN_I2_VPTR_I2_I2, BT_FN_I4_VPTR_I4_I4,
BT_FN_I8_VPTR_I8_I8): New.
* builtins.def (DEF_SYNC_BUILTIN): New.
(BUILT_IN_FETCH_AND_ADD_N, BUILT_IN_FETCH_AND_ADD_1,
BUILT_IN_FETCH_AND_ADD_2, BUILT_IN_FETCH_AND_ADD_4,
BUILT_IN_FETCH_AND_ADD_8, BUILT_IN_FETCH_AND_SUB_N,
BUILT_IN_FETCH_AND_SUB_1, BUILT_IN_FETCH_AND_SUB_2,
BUILT_IN_FETCH_AND_SUB_4, BUILT_IN_FETCH_AND_SUB_8,
BUILT_IN_FETCH_AND_OR_N, BUILT_IN_FETCH_AND_OR_1,
BUILT_IN_FETCH_AND_OR_2, BUILT_IN_FETCH_AND_OR_4,
BUILT_IN_FETCH_AND_OR_8, BUILT_IN_FETCH_AND_AND_N,
BUILT_IN_FETCH_AND_AND_1, BUILT_IN_FETCH_AND_AND_2,
BUILT_IN_FETCH_AND_AND_4, BUILT_IN_FETCH_AND_AND_8,
BUILT_IN_FETCH_AND_XOR_N, BUILT_IN_FETCH_AND_XOR_1,
BUILT_IN_FETCH_AND_XOR_2, BUILT_IN_FETCH_AND_XOR_4,
BUILT_IN_FETCH_AND_XOR_8, BUILT_IN_FETCH_AND_NAND_N,
BUILT_IN_FETCH_AND_NAND_1, BUILT_IN_FETCH_AND_NAND_2,
BUILT_IN_FETCH_AND_NAND_4, BUILT_IN_FETCH_AND_NAND_8,
BUILT_IN_ADD_AND_FETCH_N, BUILT_IN_ADD_AND_FETCH_1,
BUILT_IN_ADD_AND_FETCH_2, BUILT_IN_ADD_AND_FETCH_4,
BUILT_IN_ADD_AND_FETCH_8, BUILT_IN_SUB_AND_FETCH_N,
BUILT_IN_SUB_AND_FETCH_1, BUILT_IN_SUB_AND_FETCH_2,
BUILT_IN_SUB_AND_FETCH_4, BUILT_IN_SUB_AND_FETCH_8,
BUILT_IN_OR_AND_FETCH_N, BUILT_IN_OR_AND_FETCH_1,
BUILT_IN_OR_AND_FETCH_2, BUILT_IN_OR_AND_FETCH_4,
BUILT_IN_OR_AND_FETCH_8, BUILT_IN_AND_AND_FETCH_N,
BUILT_IN_AND_AND_FETCH_1, BUILT_IN_AND_AND_FETCH_2,
BUILT_IN_AND_AND_FETCH_4, BUILT_IN_AND_AND_FETCH_8,
BUILT_IN_XOR_AND_FETCH_N, BUILT_IN_XOR_AND_FETCH_1,
BUILT_IN_XOR_AND_FETCH_2, BUILT_IN_XOR_AND_FETCH_4,
BUILT_IN_XOR_AND_FETCH_8, BUILT_IN_NAND_AND_FETCH_N,
BUILT_IN_NAND_AND_FETCH_1, BUILT_IN_NAND_AND_FETCH_2,
BUILT_IN_NAND_AND_FETCH_4, BUILT_IN_NAND_AND_FETCH_8,
BUILT_IN_BOOL_COMPARE_AND_SWAP_N, BUILT_IN_BOOL_COMPARE_AND_SWAP_1,
BUILT_IN_BOOL_COMPARE_AND_SWAP_2, BUILT_IN_BOOL_COMPARE_AND_SWAP_4,
BUILT_IN_BOOL_COMPARE_AND_SWAP_8, BUILT_IN_VAL_COMPARE_AND_SWAP_N,
BUILT_IN_VAL_COMPARE_AND_SWAP_1, BUILT_IN_VAL_COMPARE_AND_SWAP_2,
BUILT_IN_VAL_COMPARE_AND_SWAP_4, BUILT_IN_VAL_COMPARE_AND_SWAP_8,
BUILT_IN_LOCK_TEST_AND_SET_N, BUILT_IN_LOCK_TEST_AND_SET_1,
BUILT_IN_LOCK_TEST_AND_SET_2, BUILT_IN_LOCK_TEST_AND_SET_4,
BUILT_IN_LOCK_TEST_AND_SET_8, BUILT_IN_LOCK_RELEASE_N,
BUILT_IN_LOCK_RELEASE_1, BUILT_IN_LOCK_RELEASE_2,
BUILT_IN_LOCK_RELEASE_4, BUILT_IN_LOCK_RELEASE_8,
BUILT_IN_SYNCHRONIZE: New.
* builtins.c (called_as_built_in): Rewrite from CALLED_AS_BUILT_IN
as a function.  Accept __sync_ as a prefix as well.
(expand_builtin_sync_operation, expand_builtin_compare_and_swap,
expand_builtin_lock_test_and_set, expand_builtin_synchronize,
expand_builtin_lock_release): New.
(expand_builtin): Call them.
* c-common.c (DEF_BUILTIN): Don't require __builtin_ prefix if
neither BOTH_P nor FALLBACK_P are defined.
(builtin_type_for_size): New.
(sync_resolve_size, sync_resolve_params, sync_resolve_return): New.
(resolve_overloaded_builtin): New.
* c-common.h (resolve_overloaded_builtin): Declare.
(builtin_type_for_size): Declare.
* c-typeck.c (build_function_call): Invoke resolve_overloaded_builtin.
* expr.c (sync_add_optab, sync_sub_optab, sync_ior_optab,
sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab,
sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab,
sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab,
sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab,
sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap,
sync_compare_and_swap_cc, sync_lock_test_and_set,
sync_lock_release): New.
* optabs.h: Declare them.
* expr.h (expand_val

[Bug fortran/21034] internal compiler error: in gfc_trans_auto_array_allocation, at fortran/trans-array.c:3036

2005-04-14 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-14 
23:33 ---
Could you attach the .f90 file?

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21034


[Bug tree-optimization/21021] [4.1 Regression] ICE in tree-vrp building glibc

2005-04-14 Thread kazu at cs dot umass dot edu

--- Additional Comments From kazu at cs dot umass dot edu  2005-04-14 23:07 
---
Patch posted:
http://gcc.gnu.org/ml/gcc-patches/2005-04/msg01668.html


-- 
   What|Removed |Added

 CC||dnovillo at gcc dot gnu dot
   ||org
 AssignedTo|dnovillo at gcc dot gnu dot |kazu at cs dot umass dot edu
   |org |
 Status|NEW |ASSIGNED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21021


[Bug tree-optimization/21030] [4.1 Regression] ICE in set_value_range building 176.gcc with -O2

2005-04-14 Thread kazu at cs dot umass dot edu

--- Additional Comments From kazu at cs dot umass dot edu  2005-04-14 23:02 
---
A comment in the patch says "Tested on i686-pc-linux-gnu", but
it just means that it will have been tested by the time I post this patch. :-)


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21030


[Bug libstdc++/21035] New: Documentation for std::basic_string::compare() incorrect

2005-04-14 Thread IRSWalker at ntlworld dot com
The comments in basic_string.h above std::basic_string::compare(...) and
therefore the Doxygen-generated documentation do not correctly describe the
behaviour of the compare() member function.

In all cases, the comments describe compare() as comparing strings by length
first, and calling traits::compare second.

However, the code (and presumably the standard?) performs these in the opposite
order, to provide a proper lexicographical compare.

-- 
   Summary: Documentation for std::basic_string::compare() incorrect
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: minor
  Priority: P3
 Component: libstdc++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: IRSWalker at ntlworld dot com
CC: gcc-bugs at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21035


[Bug tree-optimization/21030] [4.1 Regression] ICE in set_value_range building 176.gcc with -O2

2005-04-14 Thread kazu at cs dot umass dot edu

--- Additional Comments From kazu at cs dot umass dot edu  2005-04-14 23:01 
---
Created an attachment (id=8638)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=8638&action=view)
patch


-- 
   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |kazu at cs dot umass dot edu
   |dot org |
 Status|NEW |ASSIGNED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21030


[Bug fortran/21034] internal compiler error: in gfc_trans_auto_array_allocation, at fortran/trans-array.c:3036

2005-04-14 Thread nicolas dot girard at nerim dot net

--- Additional Comments From nicolas dot girard at nerim dot net  
2005-04-14 22:35 ---
Created an attachment (id=8637)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=8637&action=view)
Assembler file generated using the -save-temps option


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21034


[Bug fortran/21034] New: internal compiler error: in gfc_trans_auto_array_allocation, at fortran/trans-array.c:3036

2005-04-14 Thread nicolas dot girard at nerim dot net
Hi, 
I was in the process of translating a program written in f77 into f90 when this 
bug occurred. All I did was to add parameters to a function ; these parameters 
must correspond to the dimensions of arrays, as I want to allocate memory to 
them dynamically. 
 
I declared my arrays like: 
 
real*8,dimension(n1,n2) tab1, tab2 
 
and n1 and n2 are the two variables I added in the parameters of my function. 
 
 
"$ gfc --version" gives: 
GNU Fortran 95 (GCC 4.1.0 20050413 (experimental)) 
 
Compilation options: 
-ffixed-line-length-132 -Wall -static 
 
I'm completely stuck because of this problem, therefore if you had the 
slightest idea, even just to get round this, I'd be *much* interested... 
 
Many thanks in advance !

-- 
   Summary: internal compiler error: in
gfc_trans_auto_array_allocation, at fortran/trans-
array.c:3036
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: nicolas dot girard at nerim dot net
CC: gcc-bugs at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21034


[Bug c/19435] spurious warnings with nested array constructors

2005-04-14 Thread jsm28 at gcc dot gnu dot org

--- Additional Comments From jsm28 at gcc dot gnu dot org  2005-04-14 22:25 
---
*** Bug 21033 has been marked as a duplicate of this bug. ***

-- 
   What|Removed |Added

 CC||acct4290 at dedion dot com


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19435


[Bug c/21033] Erroneous "excess elements in array initializer" warning

2005-04-14 Thread jsm28 at gcc dot gnu dot org

--- Additional Comments From jsm28 at gcc dot gnu dot org  2005-04-14 22:25 
---


*** This bug has been marked as a duplicate of 19435 ***

-- 
   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21033


[Bug c/21033] Erroneous "excess elements in array initializer" warning

2005-04-14 Thread acct4290 at dedion dot com

--- Additional Comments From acct4290 at dedion dot com  2005-04-14 22:14 
---
Created an attachment (id=8636)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=8636&action=view)
Preprocessed (.i) file for test case.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21033


[Bug tree-optimization/21030] [4.1 Regression] ICE in set_value_range building 176.gcc with -O2

2005-04-14 Thread kazu at cs dot umass dot edu

--- Additional Comments From kazu at cs dot umass dot edu  2005-04-14 22:14 
---
Reduced down to:

void
foo (int unit)
{
  int i;

  for (i = 0; unit; i++, unit--)
{
  if (i >= 0)
{
  int j = i;
  while (j)
j--;
}
}
}


-- 
   What|Removed |Added

 CC||kazu at cs dot umass dot edu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21030


[Bug c/21033] Erroneous "excess elements in array initializer" warning

2005-04-14 Thread acct4290 at dedion dot com

--- Additional Comments From acct4290 at dedion dot com  2005-04-14 22:12 
---
Created an attachment (id=8635)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=8635&action=view)
Source file for self-contained test case.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21033


[Bug c/21033] New: Erroneous "excess elements in array initializer" warning

2005-04-14 Thread acct4290 at dedion dot com
gcc erroneously reports "excess elements in array initializer" under certain
circumstances (sample code attached).  I'm using gcc 3.3.3 under Fedora Core 2,
but I've seen the same problem on 3.4 and 4.0 experimental.

 begin self-contained test program bug.c 

/* I know you don't want #includes, but this is here just for the
 * sake of printf().  It can probably be safely removed. */
#include 
 
/
 * This array is okay.
 /
int *a[] =
{
(int []) { 1, 2, 3, 4, 0 },
(int []) { 5, 6, 0 },
(int []) { 7, 8, 9, 10, 11, 12, 13, 0 },
(int []) { 14, 0 }
};
 
/
 * This array should be identical.  It contains all the same
 * elements as a[], but this time the size (4) is specified.
 * Gcc generates "excess element" warnings for each sub-array
 * with more than 4 elements, even though the length of these
 * arrays has NOT been specified.
 /
int *b[4] =
{
(int []) { 1, 2, 3, 4, 0 }, /*
WARNING: excess elements in array initializer */
(int []) { 5, 6, 0 },
(int []) { 7, 8, 9, 10, 11, 12, 13, 0 },/* WARNING: excess
elements in array initializer */
(int []) { 14, 0 }
};
 
/
 * This array is the same as b[], except the size of each sub-
 * array is specified.  It compiles without warnings and looks
 * the same as a[] when passed to print_array().
 /
int *c[4] =
{
(int [5]) { 1, 2, 3, 4, 0 },
(int [3]) { 5, 6, 0 },
(int [8]) { 7, 8, 9, 10, 11, 12, 13, 0 },
(int [2]) { 14, 0 }
};
 
/
 * Not only does the compiler throw warnings, it also produces
 * different code.  On my machine, print_array() produces the
 * same output from a[] and c[], but not from b[].
 /
void
print_array (int **ptr, int count)
{
int i, j;
 
for (i=0; i < count; i++)
for (j=0; ptr[i][j]; j++)
printf ("%d ", ptr[i][j]);
printf ("\n");
}
 
int main (int argc, char **argv)
{
print_array (a, sizeof (a) / sizeof (*a));
print_array (b, sizeof (b) / sizeof (*b));
print_array (c, sizeof (c) / sizeof (*c));
return 0;
}

 end self-contained test program bug.c 

Here is the gcc command line.  Where should I attach the -save-temps
output files?

# gcc -v -save-temps bug.c
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/3.3.3/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --enable-shared --enable-threads=posix
--disable-checking --disable-libunwind-exceptions --with-system-zlib
--enable-__cxa_atexit --host=i386-redhat-linux
Thread model: posix
gcc version 3.3.3 20040412 (Red Hat Linux 3.3.3-7)
 /usr/lib/gcc-lib/i386-redhat-linux/3.3.3/cc1 -E -quiet -v -D__GNUC__=3
-D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=3 bug.c bug.i
ignoring nonexistent directory "/usr/i386-redhat-linux/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include
 /usr/lib/gcc-lib/i386-redhat-linux/3.3.3/include
 /usr/include
End of search list.
 /usr/lib/gcc-lib/i386-redhat-linux/3.3.3/cc1 -fpreprocessed bug.i -quiet
-dumpbase bug.c -auxbase bug -version -o bug.s
GNU C version 3.3.3 20040412 (Red Hat Linux 3.3.3-7) (i386-redhat-linux)
compiled by GNU C version 3.3.3 20040412 (Red Hat Linux 3.3.3-7).
GGC heuristics: --param ggc-min-expand=99 --param ggc-min-heapsize=129392
bug.c:23: warning: excess elements in array initializer
bug.c:23: warning: (near initialization for `(anonymous)')
bug.c:25: warning: excess elements in array initializer
bug.c:25: warning: (near initialization for `(anonymous)')
bug.c:25: warning: excess elements in array initializer
bug.c:25: warning: (near initialization for `(anonymous)')
bug.c:25: warning: excess elements in array initializer
bug.c:25: warning: (near initialization for `(anonymous)')
bug.c:25: warning: excess elements in array initializer
bug.c:25: warning: (near initialization for `(anonymous)')
 as -V -Qy -o bug.o bug.s
GNU assembler version 2.15.90.0.3 (i386-redhat-linux) using BFD version
2.15.90.0.3 20040415
 /usr/lib/gcc-lib/i386-redhat-linux/3.3.3/collect2 --eh-frame-hdr -m elf_i386
-dynamic-linker /lib/ld-linux.so.2
/usr/lib/gcc-lib/i386-redhat-linux/3.3.3/../../../crt1.o
/usr/lib/gcc-lib/i386-redhat-linux/3.3.3/../../../crti.o
/usr/lib/gcc-lib/i386-redhat-linux/3.3.3/crtbegin.o
-L/usr/lib/gcc-lib/i386-redhat-linux/3.3.3
-L/usr/lib/gcc-lib/i386-redhat-linux/3.3.3/../../.. bug.o -lgcc --as-needed
-lg

[Bug middle-end/21032] GCC 3.4.3 wrongly reorders floating-point operations

2005-04-14 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-14 
22:01 ---
Note neg just flips a bit so it is correct anyways and there is no loss of 
precession.

This also happens on ppc darwin, I don't know what to make of this.  A C person 
has to comment to say 
something about this.

-- 
   What|Removed |Added

  Component|c   |middle-end


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21032


[Bug c/21032] New: GCC 3.4.3 wrongly reorders floating-point operations

2005-04-14 Thread bagnara at cs dot unipr dot it
If you compile the function

void assign2(float* a, double b) {
  volatile float v = -b;
  *a = -v;
}

you will see that GCC 3.4.3, e.g., at -O2, produces

fldl12(%ebp)
fstps   -20(%ebp)
movl8(%ebp), %eax
flds-20(%ebp)
fchs
fstps   -4(%ebp)
flds-4(%ebp)
fchs
fstps   (%eax)

where the first sign change is performed /after/ reducing the
precision and not /before/, as I believe it should (according
to ISO/IEC 9899, 5.1.2.3#13, 6.3.1.5#2 and 6.3.1.8#2).
The produced code seems also very badly optimized, considering
that something like

fldl12(%ebp)
fchs
fstps   -4(%ebp)
flds-4(%ebp)
fchs
fstps   (%eax)

would be significantly more efficient (besides being correct).
The same problem can be seen with gcc-4.0.0 20050406 (Fedora Core 3).

Roberto Bagnara

-- 
   Summary: GCC 3.4.3 wrongly reorders floating-point operations
   Product: gcc
   Version: 3.4.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bagnara at cs dot unipr dot it
CC: gcc-bugs at gcc dot gnu dot org
  GCC host triplet: i686-pc-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21032


[Bug libfortran/18495] Intrinisc function SPREAD is broken

2005-04-14 Thread tkoenig at gcc dot gnu dot org

--- Additional Comments From tkoenig at gcc dot gnu dot org  2005-04-14 
21:49 ---
Created an attachment (id=8634)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=8634&action=view)
Proposed fix for PR 18495.

This appears to fix the benchmark in question.

-- 
   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |tkoenig at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18495


[Bug c++/20912] C++ FE emitting assignments to read-only global symbols

2005-04-14 Thread schlie at comcast dot net

--- Additional Comments From schlie at comcast dot net  2005-04-14 21:28 
---
(In reply to comment #0)

I guess I misunderstand the problem, as given:

  const double ggPi = 3.14159265358979323846;
  double const divPi = 1 / ggPi;

It would seem that neither ggPi or divPI should be designated "unchanging"
at the tree/rtl level, as neither are global static const objects, although:

  3.14159265358979323846

is, if stored as a value; as opposed to being inlined in the code as an 
immediate.

ggPi and divPi are simply variables which are initialized with values at 
runtime;
where the fact that they're "const" has prevented an assignment (other than an
initializing one) being accepted as valid during semantic analysis.  Where post
semantic analysis, they're just variables just like any others which happen to
have no assignments specified post initialization (as enforced by the front 
end);
so should not be marked READONLY/unchanging to begin with, it would seem?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20912


[Bug tree-optimization/21031] Another missed forward propagation opportunity

2005-04-14 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-14 
20:50 ---
Confirmed, I thought I saw a bug like before.

-- 
   What|Removed |Added

 CC||pinskia at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed||1
   Last reconfirmed|-00-00 00:00:00 |2005-04-14 20:50:59
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21031


[Bug tree-optimization/21030] [4.1 Regression] ICE in set_value_range building 176.gcc with -O2

2005-04-14 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-14 
20:44 ---
Confirmed, also happens on i686-pc-linux-gnu.

-- 
   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed||1
   Keywords||ice-on-valid-code
   Last reconfirmed|-00-00 00:00:00 |2005-04-14 20:44:19
   date||
Summary|ICE in set_value_range  |[4.1 Regression] ICE in
   |building 176.gcc with -O2   |set_value_range building
   ||176.gcc with -O2
   Target Milestone|--- |4.1.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21030


[Bug tree-optimization/21031] New: Another missed forward propagation opportunity

2005-04-14 Thread kazu at cs dot umass dot edu
Consider:

int
foo (int a)
{
  int b = a != 0;
  unsigned char c = b;
  if (c)
return 1;
  else
return 0;
}

We end up with code like this:

  b_3 = a_2 != 0;
  c_4 = (unsigned char) b_3;
  if (c_4 != 0) goto ; else goto ;

We want to forward-propagate the preceding two statements into the COND_EXPR
and get

  if (a_2 != 0) goto ; else goto ;

Unlike forward propagation opportunities noted in PR 14754 or PR15558,
this kind of opportunity occurs often in practice.

-- 
   Summary: Another missed forward propagation opportunity
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Keywords: missed-optimization
  Severity: enhancement
  Priority: P2
 Component: tree-optimization
AssignedTo: kazu at cs dot umass dot edu
ReportedBy: kazu at cs dot umass dot edu
CC: gcc-bugs at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21031


[Bug tree-optimization/21030] ICE in set_value_range building 176.gcc with -O2

2005-04-14 Thread janis at gcc dot gnu dot org

--- Additional Comments From janis at gcc dot gnu dot org  2005-04-14 20:43 
---
Created an attachment (id=8633)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=8633&action=view)
minimized test case


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21030


[Bug tree-optimization/21029] [4.1 Regression] vrp miscompiles Ada front-end, drops loop exit test in well-defined wrap-around circumstances

2005-04-14 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-14 
20:42 ---
(In reply to comment #3)
> The other thing is that signed integer wrapping is defined if we add -fwrapv 
> which means we now 
miss 
> compile some java programs too.

Actually I tried basically the same program with the casts removed and it 
worked, it has to do with the 
casts.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21029


[Bug tree-optimization/21030] New: ICE in set_value_range building 176.gcc with -O2

2005-04-14 Thread janis at gcc dot gnu dot org
Mainline GCC for powerpc-linux gets an ICE compiling 176.gcc from SPEC
CPU2000 with -O2, as shown with this minimized test case:

elm3b149% /home/janis/tools/gcc-mline-20050414/bin/gcc -O2 -c bug.c
bug.c: In function ‘schedule_unit’:
bug.c:5: internal compiler error: in set_value_range, at tree-vrp.c:124
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html> for instructions.

That abort is in checking code added on 2005-04-09 by dnovillo.

-- 
   Summary: ICE in set_value_range building 176.gcc with -O2
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: janis at gcc dot gnu dot org
CC: dnovillo at gcc dot gnu dot org,gcc-bugs at gcc dot gnu
dot org
 GCC build triplet: powerpc-linux
  GCC host triplet: powerpc-linux
GCC target triplet: powerpc-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21030


[Bug tree-optimization/21029] [4.1 Regression] vrp miscompiles Ada front-end, drops loop exit test in well-defined wrap-around circumstances

2005-04-14 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-14 
20:25 ---
The other thing is that signed integer wrapping is defined if we add -fwrapv 
which means we now miss 
compile some java programs too.

Confirmed.

-- 
   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed||1
   Keywords||wrong-code
   Last reconfirmed|-00-00 00:00:00 |2005-04-14 20:25:02
   date||
Summary|vrp miscompiles Ada front-  |[4.1 Regression] vrp
   |end, drops loop exit test in|miscompiles Ada front-end,
   |well-defined wrap-around|drops loop exit test in
   |circumstances   |well-defined wrap-around
   ||circumstances
   Target Milestone|--- |4.1.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21029


[Bug tree-optimization/21029] vrp miscompiles Ada front-end, drops loop exit test in well-defined wrap-around circumstances

2005-04-14 Thread aoliva at gcc dot gnu dot org

--- Additional Comments From aoliva at gcc dot gnu dot org  2005-04-14 
20:19 ---
Created an attachment (id=8632)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=8632&action=view)
C testcase that triggers the bug

The problem is that (from the vrp dump):

Simulating statement (from ssa_edges): jD.1487_6 = (intD.0) iD.1486_1;

Visiting statement:
jD.1487_6 = (intD.0) iD.1486_1;

(analyze_scalar_evolution
  (loop_nb = 1)
  (scalar = j_6)
(get_scalar_evolution
  (scalar = j_6)
  (scalar_evolution = {123, +, 1}_1))
(set_scalar_evolution
  (scalar = j_6)
  (scalar_evolution = {123, +, 1}_1))
)
Found new range [123, 2147483647] for j_6

[...]

Visiting statement:
if (jD.1487_6 < 0) goto ; else goto ;


Visiting conditional with predicate: j_6 < 0
With known ranges
j_6: [123, 2147483647]

Predicate evaluates to: 0

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21029


[Bug tree-optimization/21029] vrp miscompiles Ada front-end, drops loop exit test in well-defined wrap-around circumstances

2005-04-14 Thread dnovillo at redhat dot com

--- Additional Comments From dnovillo at redhat dot com  2005-04-14 20:18 
---
Subject: Re:  New: vrp miscompiles Ada front-end, drops loop exit test in 
well-defined wrap-around circumstances

On Thu, Apr 14, 2005 at 08:16:09PM -, aoliva at gcc dot gnu dot org wrote:

> Unfortunately, vrp seldom kicks in, so it's a bit difficult to
> duplicate the problem.
>
Hmm?  VRP is automatically enabled at -O2 and higher.


Diego.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21029


[Bug tree-optimization/21029] New: vrp miscompiles Ada front-end, drops loop exit test in well-defined wrap-around circumstances

2005-04-14 Thread aoliva at gcc dot gnu dot org
csets___elabb gets miscompiled in stage2, such that stage3 enters and endless
loop compiling ada.ads.  Unfortunately, vrp seldom kicks in, so it's a bit
difficult to duplicate the problem.  Perhaps it would make sense to add a
command-line option to force vrp on, and add that to torture, just to see how it
goes?

-- 
   Summary: vrp miscompiles Ada front-end, drops loop exit test in
well-defined wrap-around circumstances
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: tree-optimization
AssignedTo: dnovillo at gcc dot gnu dot org
ReportedBy: aoliva at gcc dot gnu dot org
CC: gcc-bugs at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21029


[Bug target/21017] ppc 64bit target not using rlwinm

2005-04-14 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-14 
19:40 ---
Looks like subregs are getting in the way.
Confirmed.

-- 
   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed||1
   Last reconfirmed|-00-00 00:00:00 |2005-04-14 19:40:31
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21017


[Bug ada/6872] can't build cross including ada to powerpc-ibm-aix4.3.3.0

2005-04-14 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-14 
19:35 ---
*** Bug 21028 has been marked as a duplicate of this bug. ***

-- 
   What|Removed |Added

 CC||ltg at zes dot uni-bremen
   ||dot de


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=6872


[Bug ada/21028] Cross build failure from i686-linux to powerpc-aix5.2

2005-04-14 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-14 
19:35 ---


*** This bug has been marked as a duplicate of 6872 ***

-- 
   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21028


[Bug ada/21028] New: Cross build failure from i686-linux to powerpc-aix5.2

2005-04-14 Thread ltg at zes dot uni-bremen dot de
I tried to build a gcc-3.4-20050408 cross compiler for a
powerpc-aix5.2 system, and I got the following:

gcc   -O9 -DIN_GCC -DCROSS_COMPILE  -W -Wall -Wwrite-strings -Wstrict-prototypes
-Wmissing-prototypes -pedantic -Wno-long-long-DHAVE_CONFIG_H  gcov-dump.o
version.o ../libiberty/libiberty.a   -o gcov-dump
gcc -c -O9 -mminimal-toc -gnatpg -gnata -I- -I. -Iada
-I/home/ltg/software/src/work/gcc-3.4-20050408/gcc/ada
/home/ltg/software/src/work/gcc-3.4-20050408/gcc/ada/ada.ads -o ada/ada.o
gnat1: error: invalid option `minimal-toc'
make[1]: *** [ada/ada.o] Error 1
make[1]: Leaving directory `/home/ltg/software/src/work/objdir/gcc'
make: *** [all-gcc] Error 2

Lothar

-- 
   Summary: Cross build failure from i686-linux to powerpc-aix5.2
   Product: gcc
   Version: 3.4.4
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: ada
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ltg at zes dot uni-bremen dot de
CC: gcc-bugs at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21028


[Bug target/20813] [4.1 Regression] ICE in gen_reg_rtx for 3 spec tests

2005-04-14 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-14 
19:30 ---
(In reply to comment #2)
> Here's a minimized test case that fails on powerpc64-linux with -m64 -O2:
> On IRC pinskia pointed out that powerpc64-linux supports older CPUs by
> default than does powerpc-darwin.  The ICE doesn't happen with -mcpu=power3;
> I didn't try earlier cpus.

The only 64bit PPC CPU that does not support these optional instruction is the 
rs64a.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20813


[Bug fortran/17758] gfortran_abort and some others should be marked as noreturn

2005-04-14 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-14 
19:22 ---
*** Bug 21027 has been marked as a duplicate of this bug. ***

-- 
   What|Removed |Added

 CC||tkoenig at gcc dot gnu dot
   ||org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17758


[Bug fortran/21027] Triple call to _gfortran_runtime_error with -fbounds-check

2005-04-14 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-14 
19:22 ---
This is a dup of bug 17758, which I reported when I was looking into a 
tree-optimizator ICE long time 
ago.  I also noticed just recently when I was about to work on PR 17758, that 
_gfortran_runtime_error 
needed to be marked as noreturn also.

*** This bug has been marked as a duplicate of 17758 ***

-- 
   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21027


[Bug fortran/21027] New: Triple call to _gfortran_runtime_error with -fbounds-check

2005-04-14 Thread tkoenig at gcc dot gnu dot org
$ cat bounds-check.f90
program main
  integer, parameter :: n=10
  integer :: m,i
  integer a(n), b(n)
  call foo(a,m)
  do i=1,m
b(i) = a(i)*a(i)
  end do
  print *,b(1:m)
end program main

subroutine foo(a)
  integer a(10)
  a = 2
  m = 12
end subroutine foo
$ gfortran -fbounds-check -fdump-tree-optimized -O2 -S bounds-check.f90

gets me (from the .t71.optimized file):

bb 0>:
  foo (&a, &m);
  D.474 = m;
  if (D.474 > 0) goto ; else goto ;

:;
  ivtmp.19 = 0;

:;
  if (__builtin_expect (ivtmp.19 > 9, 0) != 0) goto ; else goto ;

:;
  _gfortran_runtime_error ("Array reference out of bounds", "bounds-check.f90",
5);
  _gfortran_runtime_error ("Array reference out of bounds", "bounds-check.f90",
5);
  _gfortran_runtime_error ("Array reference out of bounds", "bounds-check.f90",
5);

:;
  D.499 = *&a[ivtmp.19];
  *&b[ivtmp.19] = D.499 * D.499;
  ivtmp.19 = ivtmp.19 + 1;
  if (() D.474 == ivtmp.19) goto ; else goto ;

which is still present in the assembly code:

.L16:
movl$5, %ecx
movl$.LC0, %edx
movl%ecx, 8(%esp)
movl%edx, 4(%esp)
movl$.LC1, (%esp)
call_gfortran_runtime_error
movl$5, %eax
movl%eax, 8(%esp)
movl$.LC0, %eax
movl%eax, 4(%esp)
movl$.LC1, (%esp)
call_gfortran_runtime_error
movl$5, %eax
movl%eax, 8(%esp)
movl$.LC0, %eax
movl%eax, 4(%esp)
movl$.LC1, (%esp)
call_gfortran_runtime_error
jmp .L5

Maybe it would help if _gfortran_runtime_error was marked
as non-returning.

-- 
   Summary: Triple call to _gfortran_runtime_error with -fbounds-
check
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P2
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tkoenig at gcc dot gnu dot org
CC: gcc-bugs at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21027


[Bug libgcj/21020] java.lang.NoSuchFieldError regression from earlier 4.0.0 snapshot

2005-04-14 Thread mark at gcc dot gnu dot org

--- Additional Comments From mark at gcc dot gnu dot org  2005-04-14 19:14 
---
This was "fixed" by the following patch on the 4.0 branch (20050414):

2005-04-14  Tom Tromey  <[EMAIL PROTECTED]>

* java/lang/natClassLoader.cc (_Jv_FindClass): Use system loader,
not boot loader.
(_Jv_RegisterInitiatingLoader): Likewise.
(_Jv_UnregisterInitiatingLoader): Likewise.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21020


[Bug c++/21026] ICE in check_tag_decl, at cp/decl.c:3516

2005-04-14 Thread belyshev at depni dot sinp dot msu dot ru


-- 
   What|Removed |Added

  Known to fail||3.4.4 3.3.5
  Known to work||4.0.0 4.1.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21026


[Bug c++/21026] New: ICE in check_tag_decl, at cp/decl.c:3516

2005-04-14 Thread belyshev at depni dot sinp dot msu dot ru
// compile with -O0

template  class C
{
  void f ()
  {
typedef typeof(*this) int;
  }
};

// not a regression, fixed in 4.0 and above:
// Search converges between 2004-06-24-trunk (#471) and 2004-06-26-trunk (#472).

-- 
   Summary: ICE in check_tag_decl, at cp/decl.c:3516
   Product: gcc
   Version: 3.4.4
Status: UNCONFIRMED
  Keywords: ice-on-invalid-code
  Severity: minor
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: belyshev at depni dot sinp dot msu dot ru
CC: gcc-bugs at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21026


[Bug c++/20552] [3.3/3.4 Regression] ICE in write_type, at cp/mangle.c:1579

2005-04-14 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-14 
19:10 ---
Fixed on the mainline:
: Search converges between 2004-03-01-trunk (#446) and 2004-04-01-trunk (#447).

Broke:
: Search converges between 2001-03-18-trunk (#11) and 2001-03-25-trunk (#12).

-- 
   What|Removed |Added

Summary|[3.4 Regression] ICE in |[3.3/3.4 Regression] ICE in
   |write_type, at  |write_type, at
   |cp/mangle.c:1579|cp/mangle.c:1579


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20552


[Bug c++/20552] [3.4 Regression] ICE in write_type, at cp/mangle.c:1579

2005-04-14 Thread belyshev at depni dot sinp dot msu dot ru

--- Additional Comments From belyshev at depni dot sinp dot msu dot ru  
2005-04-14 19:02 ---
// reduced testcase

template  class C
{
  void f ()
  {
typedef int U;
typedef typeof(*this) U;
  }
};


-- 
   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed||1
  Known to fail||3.4.4
  Known to work|4.0.0 4.1.0 |4.0.0 4.1.0 3.3.5
   Last reconfirmed|-00-00 00:00:00 |2005-04-14 19:02:49
   date||
Summary|ICE on invalid code |[3.4 Regression] ICE in
   ||write_type, at
   ||cp/mangle.c:1579
   Target Milestone|--- |3.4.4


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20552


[Bug libgcj/21020] java.lang.NoSuchFieldError regression from earlier 4.0.0 snapshot

2005-04-14 Thread aph at gcc dot gnu dot org

--- Additional Comments From aph at gcc dot gnu dot org  2005-04-14 18:47 
---
Do you want me to post the patch, then?


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21020


[Bug testsuite/21010] New gcc.dg/vect tests fail

2005-04-14 Thread janis at gcc dot gnu dot org

--- Additional Comments From janis at gcc dot gnu dot org  2005-04-14 18:22 
---
Fixed with the patch.  Today the tests pass on powerpc64-linux.

-- 
   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21010


[Bug target/20813] [4.1 Regression] ICE in gen_reg_rtx for 3 spec tests

2005-04-14 Thread janis at gcc dot gnu dot org

--- Additional Comments From janis at gcc dot gnu dot org  2005-04-14 18:18 
---
Here's a minimized test case that fails on powerpc64-linux with -m64 -O2:

extern void bar (void *);
extern double x;

void
foo (void)
{
  char buf2 [32][1024];
  bar (buf2 [(int) x]);
}

On IRC pinskia pointed out that powerpc64-linux supports older CPUs by
default than does powerpc-darwin.  The ICE doesn't happen with -mcpu=power3;
I didn't try earlier cpus.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20813


[Bug libgcj/21020] java.lang.NoSuchFieldError regression from earlier 4.0.0 snapshot

2005-04-14 Thread tromey at gcc dot gnu dot org

--- Additional Comments From tromey at gcc dot gnu dot org  2005-04-14 
18:05 ---
For 4.0, my recent system class loader patch works around this problem.

The attached patch should go in the trunk asap.
I looked at all other users of _Jv_FindClassFromSignature,
and this was the only problem caller.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21020


[Bug target/20634] code fails to compile/code generation issue with -funit-at-a-time

2005-04-14 Thread belyshev at depni dot sinp dot msu dot ru

--- Additional Comments From belyshev at depni dot sinp dot msu dot ru  
2005-04-14 18:02 ---
reduced testcase, compile with '-O1 -fschedule-insns -funit-at-a-time',
fails with 3.3-hammer, 3.4, 4.0 and mainline, introduced in 2003:
: Search converges between 2003-07-11-trunk (#291) and 2003-07-12-trunk (#292).

--
unsigned int strlen (const char *);

static void append (char *p0, char **pp, int *j, char *p1)
{
  int k = strlen (p0);

  if (p1 && pp)
k += strlen (p1);
  
  if (*j + k)
while (*j);
}

int yyparse (int foo)
{
  if (foo)
append (0, 0, 0, 0);
  else 
append (0, 0, 0, 0);
}
--

-- 
   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed||1
   Last reconfirmed|-00-00 00:00:00 |2005-04-14 18:02:56
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20634


[Bug testsuite/21010] New gcc.dg/vect tests fail

2005-04-14 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-04-14 
18:02 ---
Subject: Bug 21010

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-04-14 18:02:37

Modified files:
gcc/testsuite/gcc.dg/vect: vect-ifcvt-1.c vect-ifcvt-2.c 
   vect-ifcvt-3.c vect-ifcvt-4.c 
   vect-ifcvt-5.c vect-ifcvt-6.c 
   vect-ifcvt-7.c vect-ifcvt-9.c 
gcc/testsuite  : ChangeLog 

Log message:
PR testsuite/21010
* gcc.dg/vect/vect-ifcvt-1.c: Remove dg-do, add cleanup.
* gcc.dg/vect/vect-ifcvt-2.c: Ditto.
* gcc.dg/vect/vect-ifcvt-3.c: Ditto.
* gcc.dg/vect/vect-ifcvt-4.c: Ditto.
* gcc.dg/vect/vect-ifcvt-5.c: Ditto.
* gcc.dg/vect/vect-ifcvt-6.c: Ditto.
* gcc.dg/vect/vect-ifcvt-7.c: Ditto.
* gcc.dg/vect/vect-ifcvt-9.c: Ditto.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-ifcvt-1.c.diff?cvsroot=gcc&r1=1.2&r2=1.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-ifcvt-2.c.diff?cvsroot=gcc&r1=1.2&r2=1.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-ifcvt-3.c.diff?cvsroot=gcc&r1=1.2&r2=1.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-ifcvt-4.c.diff?cvsroot=gcc&r1=1.2&r2=1.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-ifcvt-5.c.diff?cvsroot=gcc&r1=1.2&r2=1.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-ifcvt-6.c.diff?cvsroot=gcc&r1=1.2&r2=1.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-ifcvt-7.c.diff?cvsroot=gcc&r1=1.2&r2=1.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/vect/vect-ifcvt-9.c.diff?cvsroot=gcc&r1=1.2&r2=1.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcc&r1=1.5349&r2=1.5350



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21010


[Bug target/20126] [3.3/3.4/4.0 Regression] Inlined memcmp makes one argument null on entry

2005-04-14 Thread roger at eyesopen dot com

--- Additional Comments From roger at eyesopen dot com  2005-04-14 17:37 
---
You'll notice in loop.c that everywhere that we currently set all_reduced to
zero, we also set ignore to true.  This change is to avoid wasting CPU cycles,
if we know that an IV can't be eliminated, there's no point in trying to
modify any more instructions that use it.  At best, this incurs wasted
CPU cycles, at worst we'll end up substituting in some places and not others,
which will result in requiring both the original IV *and* the replacement IV
which will increase register pressure in the loop.

As your (Alex's) testing showed, I'm not sure that its strictly required for
correctness, it's mainly to preserve consistency with the exisiting all_reduced
invariants by using the same idiom as used elsewhere, but also as a potential
compile-time/run-time micro-optimization.  However for 4.0, I thought it best
to reuse/copy the existing idiom, rather than risk clearing all_reduced without
setting ignore (which may have potentially exposed code paths not seen before).

We still need the 4.1 variant to be tested/committed to mainline.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20126


[Bug target/20126] [3.3/3.4/4.0 Regression] Inlined memcmp makes one argument null on entry

2005-04-14 Thread aoliva at redhat dot com

--- Additional Comments From aoliva at gcc dot gnu dot org  2005-04-14 
17:21 ---
Subject: Re: [PR target/20126, RFC] loop DEST_ADDR biv replacement may fail

On Apr 12, 2005, Roger Sayle <[EMAIL PROTECTED]> wrote:

> ! v->ignore = 1;

What's the point of the statement above?  If we actually know the giv
reg has the right value, why not use it for other purposes as well?



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20126


[Bug middle-end/20739] [4.0/4.1 regression] ICE in gimplify_addr_expr

2005-04-14 Thread roger at eyesopen dot com

--- Additional Comments From roger at eyesopen dot com  2005-04-14 17:19 
---
Thanks Alex! This is OK for mainline.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20739


[Bug middle-end/20739] [4.0/4.1 regression] ICE in gimplify_addr_expr

2005-04-14 Thread aoliva at redhat dot com

--- Additional Comments From aoliva at gcc dot gnu dot org  2005-04-14 
17:03 ---
Subject: Re: [PR middle-end/20739] lvalue cond-expr gimplification may crash on 
cv-qual diffs

On Apr  4, 2005, Alexandre Oliva <[EMAIL PROTECTED]> wrote:

> If the operands of a cond-expr used as an lvalue differ in cv
> qualification, the front-end adds nop_exprs to add cv qualifiers that
> the gimplifier drops when simplifying &(T const)*v.  The `&' was added
> by gimplify_cond_expr.

> The problem is that gimplify_addr_expr gimplifies its operand in such
> a way that the nop_expr is dropped, and nothing puts it back in, so
> when we test that, in the indirect_ref case in gimplify_addr_expr, the
> types are compatible, the test fails because of the missing
> cv-qualifier in the pointed-to type.  This patch fixes this.

> Ok to install if bootstrap and regtest on amd64-linux-gnu pass?

Bootstrap and regtest pased on amd64-linux-gnu, at least for mainline.
I'm retesting on the branch, since I'm not entirely sure I actually
tested it there.

Index: gcc/ChangeLog
from  Alexandre Oliva  <[EMAIL PROTECTED]>

PR middle-end/20739
* gimplify.c (gimplify_addr_expr): Compensate for removal of
e.g. cv-qualification conversions.

Index: gcc/gimplify.c
===
RCS file: /cvs/gcc/gcc/gcc/gimplify.c,v
retrieving revision 2.122
diff -u -p -r2.122 gimplify.c
--- gcc/gimplify.c 1 Apr 2005 03:42:41 - 2.122
+++ gcc/gimplify.c 4 Apr 2005 11:28:04 -
@@ -3229,6 +3232,9 @@ gimplify_addr_expr (tree *expr_p, tree *
 builtins like __builtin_va_end).  */
   /* Caution: the silent array decomposition semantics we allow for
 ADDR_EXPR means we can't always discard the pair.  */
+  /* Gimplification of the ADDR_EXPR operand may drop
+cv-qualification conversions, so make sure we add them if
+needed.  */
   {
tree op00 = TREE_OPERAND (op0, 0);
tree t_expr = TREE_TYPE (expr);
@@ -3238,9 +3244,9 @@ gimplify_addr_expr (tree *expr_p, tree *
  {
 #ifdef ENABLE_CHECKING
tree t_op0 = TREE_TYPE (op0);
-   gcc_assert (TREE_CODE (t_op0) == ARRAY_TYPE
-   && POINTER_TYPE_P (t_expr)
-   && cpt_same_type (TREE_TYPE (t_op0),
+   gcc_assert (POINTER_TYPE_P (t_expr)
+   && cpt_same_type (TREE_CODE (t_op0) == ARRAY_TYPE
+ ? TREE_TYPE (t_op0) : t_op0,
  TREE_TYPE (t_expr))
&& POINTER_TYPE_P (t_op00)
&& cpt_same_type (t_op0, TREE_TYPE (t_op00)));
Index: gcc/testsuite/ChangeLog
from  Alexandre Oliva  <[EMAIL PROTECTED]>

PR middle-end/20739
* gcc.dg/tree-ssa/pr20739.c: New test.

Index: gcc/testsuite/gcc.dg/tree-ssa/pr20739.c
===
RCS file: gcc/testsuite/gcc.dg/tree-ssa/pr20739.c
diff -N gcc/testsuite/gcc.dg/tree-ssa/pr20739.c
--- /dev/null   1 Jan 1970 00:00:00 -
+++ gcc/testsuite/gcc.dg/tree-ssa/pr20739.c 4 Apr 2005 11:28:20 -
@@ -0,0 +1,24 @@
+/* PR middle-end/20739 */
+
+/* dg-do compile */
+/* dg-options "-O" */
+
+/* We used to fail to compile this because gimplification dropped the
+   conversion that added the const qualifier to the sub-expression
+   involving baz, and then immediately noticed and reported its
+   absence.  */
+
+typedef struct 
+{ 
+char chars[5]; 
+} 
+baz_t; 
+ 
+extern baz_t * baz; 
+ 
+extern void foo (baz_t); 
+int 
+bar (const baz_t * ls) 
+{ 
+foo (ls == 0 ? *(&baz[0]) : *ls); 
+}

-- 
Alexandre Oliva http://www.ic.unicamp.br/~oliva/
Red Hat Compiler Engineer   [EMAIL PROTECTED], gcc.gnu.org}
Free Software Evangelist  [EMAIL PROTECTED], gnu.org}


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20739


[Bug c++/21025] [3.4/4.0/4.1 Regression] ICE on template

2005-04-14 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-14 
16:52 ---
Confirmed.

It also worked with "3.4.0 20040116" which means it was broken after the branch 
of 3.4.0.

-- 
   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed||1
   Keywords||ice-on-valid-code
  Known to fail||3.4.0 4.0.0 4.1.0
  Known to work||3.3.3
   Last reconfirmed|-00-00 00:00:00 |2005-04-14 16:52:50
   date||
Summary|ICE on template |[3.4/4.0/4.1 Regression] ICE
   ||on template
   Target Milestone|--- |3.4.4


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21025


[Bug middle-end/20965] [4.1 Regression] GCC can no longer build itself on ppc-darwin

2005-04-14 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-14 
16:49 ---
Confirmed.

-- 
   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed||1
   Last reconfirmed|-00-00 00:00:00 |2005-04-14 16:49:13
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20965


[Bug c/21024] Type mismatch in a comparison.

2005-04-14 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-14 
16:48 ---
Confirmed.  This has been wrong since "3.5.0 20040909".

-- 
   What|Removed |Added

 CC||pinskia at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed||1
   Last reconfirmed|-00-00 00:00:00 |2005-04-14 16:48:13
   date||
Version|unknown |4.0.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21024


[Bug c++/21025] New: ICE on template

2005-04-14 Thread algrant at acm dot org
3.4.3 seg faults on this:

  template struct X { char x[N]; };
  template X<1 + sizeof(T) - sizeof(T)> F(T const &);
  template struct S { int d() { F(1); } };

Appears to be quite dependent on the fact that the template argument
involves "sizeof(T) - sizeof(T)" - if the - is changed to a +, it works.
Ok in 3.3.2, and ok if S is not a template.

-- 
   Summary: ICE on template
   Product: gcc
   Version: 3.4.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: algrant at acm dot org
CC: gcc-bugs at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21025


[Bug tree-optimization/20773] ICE: SEGV building jar file

2005-04-14 Thread belyshev at depni dot sinp dot msu dot ru

--- Additional Comments From belyshev at depni dot sinp dot msu dot ru  
2005-04-14 16:33 ---
Created an attachment (id=8631)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=8631&action=view)
smaller testcase (4749 bytes)

confirmed on amd64 with both 4.0.0 and mainline.

-- 
   What|Removed |Added

Attachment #8539 is|0   |1
   obsolete||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20773


[Bug target/21017] ppc 64bit target not using rlwinm

2005-04-14 Thread pinskia at gcc dot gnu dot org


-- 
   What|Removed |Added

 CC||pinskia at gcc dot gnu dot
   ||org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21017


[Bug c/21024] New: Type mismatch in a comparison.

2005-04-14 Thread kazu at cs dot umass dot edu
Consider:

extern void *bar (void);

int
foo (unsigned int *p)
{
  const void *r = bar ();

  if (r >= (const void *) *p)
return 1;

  return 0;
}

t03.generic looks like so.

foo (p)
{
  void * D.1155;
  unsigned int D.1156;
  int D.1157;
  const void * r;

  D.1155 = bar ();
  r = D.1155;
  D.1156 = *p;
  if (D.1156 <= r)
{
  D.1157 = 1;
  return D.1157;
}
  else
{
  
}
  D.1157 = 0;
  return D.1157;
}

Note that "if (D.1156 <= r)" has a type mismatch, namely an integer type
v.s. a pointer type.

This PR is the real cause of PR 21021.

-- 
   Summary: Type mismatch in a comparison.
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: kazu at cs dot umass dot edu
CC: dnovillo at redhat dot com,gcc-bugs at gcc dot gnu dot
org
OtherBugsDependingO 21021
 nThis:


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21024


[Bug tree-optimization/21021] [4.1 Regression] ICE in tree-vrp building glibc

2005-04-14 Thread kazu at cs dot umass dot edu


-- 
   What|Removed |Added

  BugsThisDependsOn||21024


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21021


[Bug libmudflap/21023] New: mudflap reports errors

2005-04-14 Thread hermantenbrugge at home dot nl
Yesterday I upgraded my fedora core 3 instalation and got gcc4 installed.
I tested the mudflap code and found a problem. The reduced test case is
below.

when I have two programs a.c and b.c
-- a.c --
typedef struct { char *name; } dummy;
dummy d[] = { {"a"}, {0} };

-- b.c --
typedef struct { char *name; } dummy;
extern dummy d[];

int
main (void)
{
  dummy *pd = d;

  while (pd->name)
{
  printf ("%s\n", pd->name);
  pd++;
}
}

and compile this with:
gcc4 -fmudflap a.c b.c -o a -lmudflap 

when I run the program I get:
a
***
mudflap violation 1 (check/read): time=1113495140.046642 ptr=0x8049a00 size=4
pc=0xb7eff322 location=`b.c:9 (main)'
  /usr/lib/libmudflap.so.0(__mf_check+0x44) [0xb7eff322]
  ./a(main+0x8b) [0x8048787]
  /usr/lib/libmudflap.so.0(__wrap_main+0x1d8) [0xb7f0004e]
Nearby object 1: checked region begins 8B before and ends 5B before
mudflap object 0x80ca090: name=`__mf_lc_mask'
bounds=[0x8049a08,0x8049a0b] size=4 area=no-access check=0r/0w liveness=0
alloc time=1113495140.046375 pc=0xb7effe0a
Nearby object 2: checked region begins 16B before and ends 13B before
mudflap object 0x80ca028: name=`__mf_lookup_cache'
bounds=[0x8049a10,0x80c9a0f] size=524288 area=no-access check=0r/0w liveness=0
alloc time=1113495140.046371 pc=0xb7effe0a
number of nearby objects: 2

There should be no error.
I think the problem is in tree-mudflap.c in function mudflap_finish_file.
Here is a check for TREE_STATIC. I think this should be !TREE_PUBLIC ???

I assigned this to 4.0.1 because I probably can not assign this to 4.0.0
anymore?

-- 
   Summary: mudflap reports errors
   Product: gcc
   Version: 4.0.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: libmudflap
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hermantenbrugge at home dot nl
CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: i386-redhat-linux
  GCC host triplet: i386-redhat-linux
GCC target triplet: i386-redhat-linux


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21023


Bug: Segmentation fault

2005-04-14 Thread Antonio
I wrote a program that is fine compiling by MS VC 7.1 or higher
and works correctly. It also is compiling by CodeWarior 8.0.
Unfortunately gcc says subj. :(

Source code you can find in attach.

gcc --version
  gcc (GCC) 3.3.5  (Gentoo Linux 3.3.5-r1, ssp-3.3.2-3, pie-8.7.7.1)
  Copyright (C) 2003 Free Software Foundation, Inc.

bash-2.05b$ uname -a
  Linux ziggurat 2.6.10-gentoo-r6with_mppe #6 Tue Mar 15 17:39:51 EET 2005 
  i686 AMD Athlon(tm)  AuthenticAMD GNU/Linux

dcc was compiled by command
  emerge gcc

program was compiled by command
  gcc 6.cpp

compiler output is
bash-2.05b$ gcc 6.cpp
loki/HierarchyGenerators.h: In instantiation of `Loki::GenLinearHierarchy, Loki::Typelist, Loki::NullType> >, Chain::Functor,
Chain::Stub>':
6.cpp:50:   instantiated from `ChainWrapper, Loki::Typelist, Loki::NullType> >, Chain::Functor, Chai
::Stub> >'
6.cpp:71:   instantiated from `Loki::GenScatterHierarchy, Loki::Typelist, Loki::NullType> >, Chain::
unctor, Chain::Stub>, ChainWrapper>'
6.cpp:71:   instantiated from `Loki::GenScatterHierarchy, Loki::Typelist, Loki::NullType> >, C
ain::Functor, Chain::Stub>, Loki::Typelist, Loki::Typelist, Loki::NullType> >, Chain::Functor, Chain::Stub>, Loki::NullType> >, ChainWrapper>'
6.cpp:71:   instantiated from here
loki/HierarchyGenerators.h:222: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://bugs.gentoo.org/> for instructions.
Preprocessed source stored into /tmp/ccW13tKm.out file, please attach this to y
ur bugreport.

-- 
Best Regards,
Antonio


code.tar.bz2
Description: BZip2 compressed data


[Bug target/20924] [4.0 regression] inline float divide does not set correct fpu status flags

2005-04-14 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-04-14 
15:53 ---
Fixed.

-- 
   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20924


[Bug tree-optimization/21021] [4.1 Regression] ICE in tree-vrp building glibc

2005-04-14 Thread kazu at cs dot umass dot edu

--- Additional Comments From kazu at cs dot umass dot edu  2005-04-14 15:51 
---
Before VRP (even before ASSERT_EXPR insertion), we have

  const void * r;
  unsigned int D.1157;
  void * D.1156;

  :
  :

  if (r_3 >= D.1157_5) goto ; else goto ;

Note that we already have a type-mismatched comparison - an integer
v.s. a pointer.

tree-vrp.c:maybe_add_assert_expr inserts the following ASSERT_EXPR in
the "else" branch of the "if" statement.

  r_14 = ASSERT_EXPR ;

Eventually the propagation engine visits this ASSERT_EXPR with a call
tree like so.

  simulate_stmt
vrp_visit_stmt
  vrp_visit_assignment
extract_range_from_expr
  extract_range_from_assert (ASSERT_EXPR )
value_ranges_intersect_p ([D.1156_2, D.1156_2], [0, D.1157_5 - 1])
  value_inside_range (D.1157_5 - 1, [D.1156_2, D.1156_2])
compare_values (D.1157_5 - 1, D.1156_2)

compare_values does some limited symbolic comparisons.  In this case,
it checks whether D.1156_2 == INF so that if that's the case, we can
deduce that

  D.1157_5 - 1 < D.1156_2

But we cannot compute TYPE_MAX_VALUE (TREE_TYPE (D.1156_2)) because
D.1156_2 is of a pointer type, causing the ICE.

The root cause of the problem is that we have a type-mismatched
comparison.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21021


[Bug target/20924] [4.0 regression] inline float divide does not set correct fpu status flags

2005-04-14 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-04-14 
15:43 ---
Subject: Bug 20924

CVSROOT:/cvs/gcc
Module name:gcc
Branch: gcc-4_0-branch
Changes by: [EMAIL PROTECTED]   2005-04-14 15:43:07

Modified files:
gcc: ChangeLog 
gcc/config/ia64: ia64.md 

Log message:
PR target/20924
* config/ia64/ia64.md (divsf3_internal_lat): Generate frcpa with
fpsr 0 instead of fpsr 1.
(divsf3_internal_thr): Ditto.
(divdf3_internal_lat): Ditto.
(divdf3_internal_thr): Ditto.
(divxf3_internal_lat): Ditto.
(divxf3_internal_thr): Ditto.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=2.7592.2.153&r2=2.7592.2.154
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/ia64/ia64.md.diff?cvsroot=gcc&only_with_tag=gcc-4_0-branch&r1=1.146.8.1&r2=1.146.8.2



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20924


[Bug tree-optimization/20963] [4.1 Regression] ICE tree check: expected value_handle, have addr_expr in value_exists_in_set_bitmap, at tree-ssa-pre.c:437

2005-04-14 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-04-14 
15:25 ---
Subject: Bug 20963

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-04-14 15:25:02

Modified files:
gcc: ChangeLog tree-ssa-pre.c 

Log message:
2005-04-14  Daniel Berlin  <[EMAIL PROTECTED]>

Fix PR tree-optimization/20963
* tree-ssa-pre.c (compute_avail): Remove special case for
TREE_INVARIANT.
(create_expression_by_pieces): Add value numbers for forced out
statements.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.8288&r2=2.8289
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-pre.c.diff?cvsroot=gcc&r1=2.74&r2=2.75



-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20963


  1   2   >