[Bug tree-optimization/29145] unsafe use of restrict qualifier

2007-02-06 Thread dorit at il dot ibm dot com


--- Comment #11 from dorit at il dot ibm dot com  2007-02-06 08:18 ---
(In reply to comment #10)
 One thing I can think of that this description misses is that the two 
 pointers must be based-on *different* restrict-qualified pointers, unless 
 that case is already handled elsewhere.

yes, at the beginning of this function we check if the two pointers are the
same, and if so - we don't reach this part of the code. Since our
implementation of based on is the pointer itself (i.e. is ptr_a based on
some restricted pointer ptr_b is implemented as is ptr_a a restricted
pointer, we are safe. You're right though that when the implementation of
based on is extended, we'd need to compare the two restricted pointers (we
now compare the two ptr_a's, we'd need to compare the two ptr_b's). 


-- 


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



[Bug target/29487] Shared libstdc++ fails to link

2007-02-06 Thread paolo dot bonzini at lu dot unisi dot ch


--- Comment #29 from paolo dot bonzini at lu dot unisi dot ch  2007-02-06 
08:26 ---
Subject: Re:  Shared libstdc++ fails to link


 Paolo, would you be able to undo the change to make foo not marked
 TREE_NOTHROW?  IIUC, that would be different than the patch you posted
 in Comment #22, which appears to affect bar.

My patch was related to Richi's comment when CCing me; the only patch I 
found from me that was related to TREE_NOTHROW subtly changed the 
semantics, and that patch sort of undone that change (I say sort of 
because it takes a little more care actually).

 Also, I didn't quite
 understand your patch, in that it would appear to result in fewer
 functions being marked TREE_NOTHROW

It would result in more functions being marked TREE_NOTHROW, since those 
functions will not go through the insn loop in 
set_nothrow_function_flags if the front-end declared them nothrow.

I'm attaching an updated version of the patch, which passes some 
internal (i.e. my brain and a small testcase using weak and nothrow) 
sanity checks, but I've not tried in any real world situation.  It's 
actually an alternate fix for PR29323 which doesn't trigger this bug. 
I'll let other people consider if it makes any sense since I'm not at 
all expert in this area.

 I would think we want to remove the
 check for binds_local_p at the top of set_nothrow_function_flags?

Agreed, and we have to move it elsewhere.  (See the upcoming patch).

Paolo


-- 


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



[Bug target/29487] Shared libstdc++ fails to link

2007-02-06 Thread bonzini at gnu dot org


--- Comment #30 from bonzini at gnu dot org  2007-02-06 08:37 ---
Created an attachment (id=13011)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13011action=view)
proposed, untested patch


-- 


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



[Bug fortran/30609] Calculating masks twice

2007-02-06 Thread fxcoudert at gcc dot gnu dot org


--- Comment #1 from fxcoudert at gcc dot gnu dot org  2007-02-06 08:39 
---
Confirmed, although I'm not exactly sure how we could detect that. Maybe we
would need to add front-end optimization passes, between resolution and
translation...


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-02-06 08:39:59
   date||


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



[Bug target/29487] Shared libstdc++ fails to link

2007-02-06 Thread rguenth at gcc dot gnu dot org


--- Comment #31 from rguenth at gcc dot gnu dot org  2007-02-06 09:26 
---
The patch proposed makes sense, Dave can you verify it fixes this PR for you? 
I'll spin some testing on the trunk in a moment.


-- 


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



[Bug c++/30711] New: Ifstream bug using Red Hat g++-4.1.0 compared to g++-4.0.2

2007-02-06 Thread steigers at phys dot ethz dot ch
When an ifstream object is used in several open()-close() cycles, it seems to
remember past cycles in the Red Hat gcc version.

STEPS TO REPRODUCE:
1) Compile the attached code using gcc version 4.1.0 20060515 (Red Hat
4.1.0-18)
2) Compile the attached code using gcc version 4.0.2
3) Create a file named filetest.mat in the directory where you exectude the
binaries
4) Compare the results: They are different

ACTUAL RESULTS: (Output from program compiled with gcc 4.1.0 20060515 (Red Hat
4.1.0-18))
--
Try 1: ifstream-declaration outside loop (not working)
could not open file ./not_existing_directory/filetest.mat
could not open file ./filetest.mat
--
Try 2: ifstream-declaration inside loop (working)
could not open file ./not_existing_directory/filetest.mat
could open file ./filetest.mat
--

EXPECTED RESULTS: (Output from program compiled with gcc 4.0.2)
--
Try 1: ifstream-declaration outside loop (not working)
could not open file ./not_existing_directory/filetest.mat
could open file ./filetest.mat
--
Try 2: ifstream-declaration inside loop (working)
could not open file ./not_existing_directory/filetest.mat
could open file ./filetest.mat
--

BUILD INFOS:

Faulty version:
---
gcc version 4.1.0 20060515 (Red Hat 4.1.0-18)
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --enable-shared --enable-threads=posix
--enable-checking=release --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --with-gxx-include-dir=/usr/include/c++/3.4.3
--enable-libgcj-multifile --enable-languages=c,c++,java,f95
--enable-java-awt=gtk --disable-dssi
--with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic
--host=x86_64-redhat-linux
Thread model: posix

Working version:

gcc version 4.0.2
Reading specs from
/usr/pack/gcc-4.0.2-mo/amd64-debian-linux3.1/lib/gcc/x86_64-unknown-linux-gnu/4.0.2/specs
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --prefix=/usr/pack/gcc-4.0.2-mo
--exec-prefix=/usr/pack/gcc-4.0.2-mo/amd64-debian-linux3.1
--with-gxx-include-dir=/usr/pack/gcc-4.0.2-mo/include/c++ --disable-nls
--enable-languages=c,c++,f95
Thread model: posix


-- 
   Summary: Ifstream bug using Red Hat g++-4.1.0 compared to g++-
4.0.2
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: steigers at phys dot ethz dot ch


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



[Bug c++/30711] Ifstream bug using Red Hat g++-4.1.0 compared to g++-4.0.2

2007-02-06 Thread steigers at phys dot ethz dot ch


--- Comment #1 from steigers at phys dot ethz dot ch  2007-02-06 10:05 
---
Created an attachment (id=13012)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13012action=view)
Code for testing the bug


-- 


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



[Bug tree-optimization/30317] VRP cannot extract a range from (unsigned int) i + 0x0ffffffff 4

2007-02-06 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2007-02-06 10:08 ---
Created an attachment (id=13013)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13013action=view)
alternate patch

This patch tackes the issue by allowing

  a_2 = ASSERT_EXRP a_1, (unsigned)a_1 + 5 = 10

(and similar expressions).  A variant of this patch which had not undergone
a last-minute cosmetic cleanup survivied all-languages bootstrap and regtest
on x86_64-unknown-linux-gnu.


-- 


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



[Bug c++/30703] ICE Segmentation fault on using OpenMP

2007-02-06 Thread jakub at gcc dot gnu dot org


--- Comment #2 from jakub at gcc dot gnu dot org  2007-02-06 10:11 ---
Simplified testcase:
struct A
{
  A() {}
  ~A() {}
  int i;
};

void
foo (A a)
{
#pragma omp parallel firstprivate (a)
  a.i++;
}

The problem is that while OpenMP 2.5 prohibits firstprivate etc. vars having
reference type (and we properly diagnose it), cp_genericize_r changes
TREE_ADDRESSABLE class parameters to reference type internally and this is
something cc1plus should handle.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jakub at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-02-06 10:11:01
   date||


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



[Bug target/29487] Shared libstdc++ fails to link

2007-02-06 Thread amylaar at gcc dot gnu dot org


--- Comment #32 from amylaar at gcc dot gnu dot org  2007-02-06 10:18 
---
(In reply to comment #30)
 Created an attachment (id=13011)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13011action=view) [edit]
 proposed, untested patch
 

As far as I can tell, this patch takes care of the correctness issues,
however at the expense of optimization.  Declaring a function as nothrow
will no longer enable optimizations in the callers that depend on the
the callee to be nothrow.  Including analysis that finds the caller
to be nothrow, so again, exception handling information of libraries
is likely to increase.

I don't think it makes sense that you hijack the tree flag of the declaration
to be not about the declaration at all.

Andrew Pinski's observation in #12 that the root problem is to try to squish
two bits int one still stands.  IMO the bit formerly known as
current_function_nothrow should be put into struct function, and then found
via cfun.


-- 


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



[Bug c++/30711] Ifstream bug using Red Hat g++-4.1.0 compared to g++-4.0.2

2007-02-06 Thread steigers at phys dot ethz dot ch


--- Comment #2 from steigers at phys dot ethz dot ch  2007-02-06 10:33 
---
Apparently if the close() statement is followed by a clear() statement it
works. I t also works if close() is omitted and only clear() is called.

I therefore suspect that someone forgot to change the status of the stream in
the open() method of the fulty compiler.


-- 


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



[Bug target/29487] Shared libstdc++ fails to link

2007-02-06 Thread rguenth at gcc dot gnu dot org


--- Comment #33 from rguenth at gcc dot gnu dot org  2007-02-06 10:39 
---
It does not work either:

/abuild/rguenther/obj-29487/./gcc/xgcc -shared-libgcc
-B/abuild/rguenther/obj-29487/./gcc -nostdinc++
-L/abuild/rguenther/obj-29487/x86_64-unknown-linux-gnu/libstdc++-v3/src
-L/abuild/rguenther/obj-29487/x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs
-B/usr/local/x86_64-unknown-linux-gnu/bin/
-B/usr/local/x86_64-unknown-linux-gnu/lib/ -isystem
/usr/local/x86_64-unknown-linux-gnu/include -isystem
/usr/local/x86_64-unknown-linux-gnu/sys-include -Winvalid-pch -Wno-deprecated
-x c++-header -g -O2  -D_GNU_SOURCE
-I/abuild/rguenther/obj-29487/x86_64-unknown-linux-gnu/libstdc++-v3/include/x86_64-unknown-linux-gnu
-I/abuild/rguenther/obj-29487/x86_64-unknown-linux-gnu/libstdc++-v3/include
-I/abuild/rguenther/gcc/libstdc++-v3/libsupc++ -O2 -g
/abuild/rguenther/gcc/libstdc++-v3/include/precompiled/extc++.h -o
x86_64-unknown-linux-gnu/bits/extc++.h.gch/O2g.gch
In file included from
/abuild/rguenther/gcc/libstdc++-v3/include/precompiled/extc++.h:65:
/abuild/rguenther/obj-29487/x86_64-unknown-linux-gnu/libstdc++-v3/include/ext/pb_ds/exception.hpp:
In function 'void pb_ds::__throw_insert_error()':
/abuild/rguenther/obj-29487/x86_64-unknown-linux-gnu/libstdc++-v3/include/ext/pb_ds/exception.hpp:79:
error: statement marked for throw, but doesn't
D.155211_27 = D.155210_26;

/abuild/rguenther/obj-29487/x86_64-unknown-linux-gnu/libstdc++-v3/include/ext/pb_ds/exception.hpp:79:
error: statement marked for throw, but doesn't
D.155275_49 = D.155274_48;

/abuild/rguenther/obj-29487/x86_64-unknown-linux-gnu/libstdc++-v3/include/ext/pb_ds/exception.hpp:79:
internal compiler error: verify_stmts failed
Please submit a full bug report,
with preprocessed source if appropriate.
See URL:http://gcc.gnu.org/bugs.html for instructions.
make[4]: *** [x86_64-unknown-linux-gnu/bits/extc++.h.gch/O2g.gch] Error 1


-- 


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



[Bug target/29487] Shared libstdc++ fails to link

2007-02-06 Thread bonzini at gnu dot org


--- Comment #34 from bonzini at gnu dot org  2007-02-06 10:41 ---
The two bits were actually the same, since passes.c was doing this exactly
after calling set_nothrow_function_flags

  if (current_function_nothrow)
/* Now we know that this can't throw; set the flag for the benefit
   of other functions later in this translation unit.  */
TREE_NOTHROW (current_function_decl) = 1;

The patch I proposed does not hinder optimization that much. Declaring a
function as nothrow will still enable optimizations in the callers that depend
on the the callee to be nothrow, as far as the callee binds locally; this
includes static functions, non-default visibility functions, and locally
declared non-weak functions.

Richard, another necessary hunk for correctness would be this:

Index: cvs/gcc/gcc/tree-eh.c
===
--- cvs/gcc/gcc/tree-eh.c   (revision 120669)
+++ cvs/gcc/gcc/tree-eh.c   (working copy)
@@ -1979,8 +1979,7 @@ tree_could_trap_p (tree expr)

 case CALL_EXPR:
   t = get_callee_fndecl (expr);
-  /* Assume that calls to weak functions may trap.  */
-  if (!t || !DECL_P (t) || DECL_WEAK (t))
+  if (!t || !DECL_P (t) || !targetm.binds_local_p (t))
return true;
   return false;



Finally, let me remark again that I'm *no expert in this area*.  I'd be pretty
nervous if this patch ended up in 4.1.2 without huge scrutiny from experts.

I'll prepare a patch to revert my 2004 change too.


-- 


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



[Bug target/29487] Shared libstdc++ fails to link

2007-02-06 Thread amylaar at gcc dot gnu dot org


--- Comment #35 from amylaar at gcc dot gnu dot org  2007-02-06 11:10 
---
 (In reply to comment #25)
 I think the analysis should be deeper than just binds_local_p, though;
 I think it should be based on whether attribute ((weak)) (or
 equivalent) explicitly appears, so that we don't pessimize bar if foo is
 in a template function, out-of-line inline, or other such function.  The
 test ought to be based on the demonstrable intent of the user to replace
 the function, not on whether or not the function happens to be weak.

Thinking a bit more about this, I agree.  If the function is declared
in the same translation unit, and no attribute or pragma prevents the
function from being inlined, it is already fair game for inlining, irrespective
of wether it binds locally or not.  Thus, if we decide for pragmatic reasons
(code size, snafus in analysis) not to inline such a function, we should still
be able to use analysis results about nothrow, const and pure characteristics
of the function.

When we get to the point where we can do cross-module optimizations (LTO or
otherwise), some other issues arise:
The situation is a bit different if the function is defined in a different
translation unit.  For shared libraries, putting functions into separate
translation unit is a common technique to show that the function should
not be inlined into a function in a different translation unit, or any
analysis results applied to a caller/callee in a different translation unit.
But it would make sense to have an option to enable such inlining / analysis,
and even to turn it on by default, since for any ordinary conformant program
the one-definition rule applies.


-- 


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



[Bug target/29487] Shared libstdc++ fails to link

2007-02-06 Thread amylaar at gcc dot gnu dot org


--- Comment #36 from amylaar at gcc dot gnu dot org  2007-02-06 11:17 
---
(In reply to comment #34)
 I'll prepare a patch to revert my 2004 change too.

I suspect that a 100% literal reversion will run into problems where the
use of a global variable will result in the the analysis of one function
being applied to another function.

It will probably work (modulo minor merge conflicts) if instead of
bringing the global variable current_function_nothrow back, you define
a nothrow bit in struct function and
#define current_function_nothrow cfun-nothrow
.


-- 


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



[Bug libfortran/30694] minval/maxval with +/-Inf

2007-02-06 Thread fxcoudert at gcc dot gnu dot org


--- Comment #6 from fxcoudert at gcc dot gnu dot org  2007-02-06 12:12 
---
(In reply to comment #5)
 Min/maxval should return (for REAL):
  +INF if there is an INF in the maxval argument array
  -INF if there is a -INF in the minval argument array
  NAN if the argument array only consists of NAN
  -HUGE or HUGE if there the array is zero-dimensional (after masking)
 (for the other cases the obvious min/max values of the arguments)
 
 For INTEGERs, we only have:
  -HUGE-1 / +HUGE for a zero-dimensional array (after masking)
 (for the other cases the obvious min/max)
 as NAN and +/-INF don't exists (cf. PR30512).

I agree with that. I think we need separate m4 files for integers and reals,
changing the Makefile in the following way:

Index: Makefile.am
===
--- Makefile.am (revision 121506)
+++ Makefile.am (working copy)
@@ -175,10 +175,12 @@
 generated/maxloc1_8_r16.c \
 generated/maxloc1_16_r16.c

-i_maxval_c= \
+i_maxval_i_c= \
 generated/maxval_i4.c \
 generated/maxval_i8.c \
-generated/maxval_i16.c \
+generated/maxval_i16.c
+
+i_maxval_r_c= \
 generated/maxval_r4.c \
 generated/maxval_r8.c \
 generated/maxval_r10.c \
@@ -230,10 +232,12 @@
 generated/minloc1_8_r16.c \
 generated/minloc1_16_r16.c

-i_minval_c= \
+i_minval_i_c= \
 generated/minval_i4.c \
 generated/minval_i8.c \
-generated/minval_i16.c \
+generated/minval_i16.c
+
+i_minval_r_c= \
 generated/minval_r4.c \
 generated/minval_r8.c \
 generated/minval_r10.c \
@@ -419,9 +423,9 @@
 generated/pow_c16_i16.c

 m4_files= m4/iparm.m4 m4/ifunction.m4 m4/iforeach.m4 m4/all.m4 \
-m4/any.m4 m4/count.m4 m4/maxloc0.m4 m4/maxloc1.m4 m4/maxval.m4 \
-m4/minloc0.m4 m4/minloc1.m4 m4/minval.m4 m4/product.m4 m4/sum.m4 \
-m4/matmul.m4 m4/matmull.m4 \
+m4/any.m4 m4/count.m4 m4/maxloc0.m4 m4/maxloc1.m4 m4/maxval_i.m4 \
+m4/maxval_r.m4 m4/minloc0.m4 m4/minloc1.m4 m4/minval_i.m4 m4/minval_r.m4 \
+m4/product.m4 m4/sum.m4 m4/matmul.m4 m4/matmull.m4 \
 m4/ctrig.m4 m4/cexp.m4 m4/chyp.m4 m4/mtype.m4 \
 m4/specific.m4 m4/specific2.m4 m4/head.m4 m4/shape.m4 m4/reshape.m4 \
 m4/transpose.m4 m4/eoshift1.m4 m4/eoshift3.m4 m4/exponent
@@ -429,8 +433,8 @@
 m4/misc_specifics.m4 m4/rrspacing.m4 m4/spacing.m4

 gfor_built_src= $(i_all_c) $(i_any_c) $(i_count_c) $(i_maxloc0_c) \
-$(i_maxloc1_c) $(i_maxval_c) $(i_minloc0_c) $(i_minloc1_c) $(i_minval_c) \
-$(i_product_c) $(i_sum_c) \
+$(i_maxloc1_c) $(i_maxval_i_c) $(i_maxval_r_c) $(i_minloc0_c) \
+$(i_minloc1_c) $(i_minval_i_c) $(i_minval_r_c) $(i_product_c) $(i_sum_c) \
 $(i_matmul_c) $(i_matmull_c) $(i_transpose_c) $(i_shape_c) $(i_eoshift1_c) 
\
 $(i_eoshift3_c) $(i_cshift1_c) $(i_reshape_c) $(in_pack_c) $(in_unpack_c)
\
 $(i_exponent_c) $(i_fraction_c) $(i_nearest_c) $(i_set_exponent_c) \
@@ -647,18 +651,24 @@
 $(i_maxloc1_c): m4/maxloc1.m4 $(I_M4_DEPS1)
$(M4) -Dfile=$@ -I$(srcdir)/m4 maxloc1.m4  $(srcdir)/$@

-$(i_maxval_c): m4/maxval.m4 $(I_M4_DEPS1)
-   $(M4) -Dfile=$@ -I$(srcdir)/m4 maxval.m4  $(srcdir)/$@
+$(i_maxval_i_c): m4/maxval_i.m4 $(I_M4_DEPS1)
+   $(M4) -Dfile=$@ -I$(srcdir)/m4 maxval_i.m4  $(srcdir)/$@

+$(i_maxval_r_c): m4/maxval_r.m4 $(I_M4_DEPS1)
+   $(M4) -Dfile=$@ -I$(srcdir)/m4 maxval_r.m4  $(srcdir)/$@
+
 $(i_minloc0_c): m4/minloc0.m4 $(I_M4_DEPS0)
$(M4) -Dfile=$@ -I$(srcdir)/m4 minloc0.m4  $(srcdir)/$@

 $(i_minloc1_c): m4/minloc1.m4 $(I_M4_DEPS1)
$(M4) -Dfile=$@ -I$(srcdir)/m4 minloc1.m4  $(srcdir)/$@

-$(i_minval_c): m4/minval.m4 $(I_M4_DEPS1)
-   $(M4) -Dfile=$@ -I$(srcdir)/m4 minval.m4  $(srcdir)/$@
+$(i_minval_i_c): m4/minval_i.m4 $(I_M4_DEPS1)
+   $(M4) -Dfile=$@ -I$(srcdir)/m4 minval_i.m4  $(srcdir)/$@

+$(i_minval_r_c): m4/minval_r.m4 $(I_M4_DEPS1)
+   $(M4) -Dfile=$@ -I$(srcdir)/m4 minval_r.m4  $(srcdir)/$@
+
 $(i_product_c): m4/product.m4 $(I_M4_DEPS1)
$(M4) -Dfile=$@ -I$(srcdir)/m4 product.m4  $(srcdir)/$@


I don't know what the status is of the other patch for MAXVAL/MINVAL, but we
should probably combine them into a single patch (in particular to ease the
backporting).


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

  Component|fortran |libfortran
   Last reconfirmed|2007-02-05 19:40:47 |2007-02-06 12:12:21
   date||
   Target Milestone|--- |4.2.0


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



[Bug fortran/29400] ANY and COUNT used on parameter arrays

2007-02-06 Thread fxcoudert at gcc dot gnu dot org


--- Comment #3 from fxcoudert at gcc dot gnu dot org  2007-02-06 12:25 
---
 $ cat pr29400-3.f90 
   integer,parameter :: i(1,1) = 0
   logical :: l
   l = any(i==1)
   end
 $ gfortran pr29400-3.f90  ./a.out
 pr29400-3.f90: In function ‘MAIN__’:
 pr29400-3.f90:1: internal compiler error: in gfc_conv_intrinsic_anyall, at
 fortran/trans-intrinsic.c:1339

Same thing happens for count. We try to walk the constant, and it doesn't work
(we fail on the next assert). dot_product works, while seemingly doing the same
thing, maybe we can borrow from it...


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |fxcoudert at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2006-10-09 12:44:16 |2007-02-06 12:25:46
   date||


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



[Bug libfortran/30694] minval/maxval with +/-Inf

2007-02-06 Thread burnus at gcc dot gnu dot org


--- Comment #7 from burnus at gcc dot gnu dot org  2007-02-06 12:30 ---
 I don't know what the status is of the other patch for MAXVAL/MINVAL, but we
 should probably combine them into a single patch (in particular to ease the
 backporting).
The status of the other patch is: Waiting for review.
http://gcc.gnu.org/ml/gcc-patches/2007-02/msg00260.html


-- 


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



[Bug middle-end/27302] Fold does not fold (i j) == (j i) to 1

2007-02-06 Thread rguenth at gcc dot gnu dot org


--- Comment #6 from rguenth at gcc dot gnu dot org  2007-02-06 12:38 ---
Subject: Bug 27302

Author: rguenth
Date: Tue Feb  6 12:38:32 2007
New Revision: 121644

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=121644
Log:
2007-02-06  Richard Guenther  [EMAIL PROTECTED]

PR middle-end/27302
* gcc.dg/torture/pr27302-2.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.dg/torture/pr27302-2.c
Modified:
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug target/30712] New: Failures related to SSE2 starting Feb 5th 2007

2007-02-06 Thread brett dot albertson at stratech dot com
I started to get failures bootstrapping trunk early this morning.  For example:

Executing on host: /u01/var/tmp/gcc_trunk_svn/gcc_20070206/gcc/xgcc
-B/u01/var/tmp/gcc_trunk_svn/gcc_20070206/gcc/
/u01/var/tmp/gcc_trunk_svn/gcc/gcc/testsuite/gcc.target/i386/pr13366.c   -O
-msse -fno-show-column -S  -o pr13366.s(timeout = 300)
In file included from
/u01/var/tmp/gcc_trunk_svn/gcc_20070206/gcc/include/xmmintrin.h:1245,^M
 from
/u01/var/tmp/gcc_trunk_svn/gcc/gcc/testsuite/gcc.target/i386/pr13366.c:4:^M
/u01/var/tmp/gcc_trunk_svn/gcc_20070206/gcc/include/emmintrin.h:34: error:
#error SSE2 instruction set not enabled
compiler exited with status 1
output is:
In file included from
/u01/var/tmp/gcc_trunk_svn/gcc_20070206/gcc/include/xmmintrin.h:1245,
 from
/u01/var/tmp/gcc_trunk_svn/gcc/gcc/testsuite/gcc.target/i386/pr13366.c:4:
/u01/var/tmp/gcc_trunk_svn/gcc_20070206/gcc/include/emmintrin.h:34: error:
#error SSE2 instruction set not enabled

FAIL: gcc.target/i386/pr13366.c (test for excess errors)

There were 13 new failures, all SSE2 related which passed until this morning. 
I'm assuming it is related to the check-ins from Harsha Jagasia.

Let me know if you need more information.

Brett Albertson


-- 
   Summary: Failures related to SSE2 starting Feb 5th 2007
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: critical
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: brett dot albertson at stratech dot com
 GCC build triplet: i386-pc-solaris2.10
  GCC host triplet: i386-pc-solaris2.10
GCC target triplet: i386-pc-solaris2.10


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



[Bug fortran/29400] ANY and COUNT used on parameter arrays

2007-02-06 Thread fxcoudert at gcc dot gnu dot org


--- Comment #4 from fxcoudert at gcc dot gnu dot org  2007-02-06 13:41 
---
I was wrong: the bug basically happens for all intrinsics which gfc_walk_expr
one of their arguments and then simply assert that the ss != gfc_ss_terminator.
This is a wrong thing to do for constant arguments. I audited all the
intrinsics to find out which I could lead to an ICE, and here's the complete
list:

  integer,parameter :: i(1,1) = 0, j(2) = 42
  logical :: l

!  print *, maxloc(j+j,mask=(j==2))

  print *, size(j+j)
  print *, minval(j+j)
  print *, minval(j,mask=(j==2))
  print *, maxval(j+j)
  print *, maxval(j,mask=(j==2))
  print *, sum(j,mask=j==2)
  print *, sum(j+j)
  print *, product(j+j)
  print *, ubound(j+j)
  print *, lbound(j+j)
  print *, dot_product(j+j,j)
  print *, dot_product(j,j+j)
  print *, count(i==1)
  print *, any(i==1)
  print *, all(i==1)

  end

I couldn't make maxloc/minloc ICE, although I'm pretty sure there should be a
way to get it.


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug c/12963] Wrong and misleading warning encourages writing non-portable code

2007-02-06 Thread manu at gcc dot gnu dot org


--- Comment #21 from manu at gcc dot gnu dot org  2007-02-06 13:48 ---
Patch: http://gcc.gnu.org/ml/gcc-patches/2007-01/msg01933.html


-- 


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



[Bug c++/11856] unsigned warning in template

2007-02-06 Thread manu at gcc dot gnu dot org


--- Comment #22 from manu at gcc dot gnu dot org  2007-02-06 13:49 ---
Not a definitive fix but at least the warning can be disabled:
http://gcc.gnu.org/ml/gcc-patches/2007-01/msg01933.html


-- 


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



[Bug target/29120] Arm cross-compiler could not be created (assember error)

2007-02-06 Thread s_j_newbury at yahoo dot co dot uk


--- Comment #2 from s_j_newbury at yahoo dot co dot uk  2007-02-06 13:58 
---
Sounds like you're trying to build a hard-float compiler for a soft-float
(binutils) target.


-- 


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



[Bug fortran/29397] Constant logical expression with parameter array

2007-02-06 Thread fxcoudert at gcc dot gnu dot org


--- Comment #2 from fxcoudert at gcc dot gnu dot org  2007-02-06 14:05 
---
We're passing a pointer to a logical instead of an array descriptor:

$ cat a.f90   
  integer :: k(3), l(1)
  integer, parameter :: j(3) = 2
  l = maxloc (k, j1)
  end
$ cat a.f90.003t.original
MAIN__ ()
{
  int4 l[1];
  int4 k[3];

  _gfortran_set_std (70, 127, 0, 0);
  {
static logical4 C.1011 = 0;
struct array1_int4 parm.1;
struct array1_int4 parm.0;

parm.0.dtype = 265;
parm.0.dim[0].lbound = 1;
parm.0.dim[0].ubound = 1;
parm.0.dim[0].stride = 1;
parm.0.data = (void *) l[0];
parm.0.offset = 0;
parm.1.dtype = 265;
parm.1.dim[0].lbound = 1;
parm.1.dim[0].ubound = 3;
parm.1.dim[0].stride = 1;
parm.1.data = (void *) k[0];
parm.1.offset = 0;
_gfortran_mmaxloc0_4_i4 (parm.0, parm.1, C.1011);
  }
}


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

   Last reconfirmed|2006-10-08 21:50:42 |2007-02-06 14:05:37
   date||


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



[Bug target/29487] Shared libstdc++ fails to link

2007-02-06 Thread dave at hiauly1 dot hia dot nrc dot ca


--- Comment #37 from dave at hiauly1 dot hia dot nrc dot ca  2007-02-06 
14:13 ---
Subject: Re:  Shared libstdc++ fails to link

 The patch proposed makes sense, Dave can you verify it fixes this PR for you? 
 I'll spin some testing on the trunk in a moment.

Yes.  I'll try when an updated patch is ready.  I understand the first
candidate doesn't work.

My hpux 10 system is just finishing a build and check.  I'll also tweak
the backend to use COMDAT support on hpux 11 and do a build on it.  That's
much faster.

Dave


-- 


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



[Bug fortran/30713] New: Internal Complier Error

2007-02-06 Thread ray at ultramarine dot com
Attached code generates on Internal Complier Error when using -O3 on
an Intel Mac


-- 
   Summary: Internal Complier Error
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ray at ultramarine dot com


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



[Bug driver/30714] New: [regression] gcj driver doesn't recognize files starting with II

2007-02-06 Thread doko at ubuntu dot com
at least seen on the redhat/gcc-4_1-branch-java-merge-20070117 branch; not yet
validated on the trunk:

$ touch IIFoo.java
$ gcj -C IIFoo.java
gcj: no input files


-- 
   Summary: [regression] gcj driver doesn't recognize files starting
with II
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: driver
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: doko at ubuntu dot com


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



[Bug target/29120] Arm cross-compiler could not be created (assember error)

2007-02-06 Thread joaquinduran at adtelecom dot es


--- Comment #3 from joaquinduran at adtelecom dot es  2007-02-06 14:26 
---
Forget the bug.

I submmited it because I wa not able to build it from Open Embedded meta-data.
The fix was update the meda-data used to generate the images (which specifies
the ./configure options; very similar to gentoo).

I've build gcc 4.1.1 for arm and is performing very well.


-- 

joaquinduran at adtelecom dot es changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug fortran/30715] New: [fortran, 4.3 regression]: ICE in operand_equal_p()

2007-02-06 Thread martin at mpa-garching dot mpg dot de
Current mainline ICEs on the code below:

module coord_v_convert
  INTEGER, PARAMETER, public :: dp  = SELECTED_REAL_KIND(12,200)

contains

  Subroutine xcc_V_CONVERT(ivector,iepoch,oepoch,isys,osys,ovector)
real(dp) ::  IVECTOR(1:3)   ! Input coordinate vector
real(dp) ::  IEPOCH ! Input epoch
real(dp) ::  OEPOCH ! Output epoch
real(dp) ::  OVECTOR(1:3)   ! Output coordinate vector
Character(len=*) ::ISYS   ! Input system
Character(len=*) ::OSYS   ! Output system
real(dp) ::  XVECTOR(1:3) ! Temporary coordinate holder
real(dp) ::  YVECTOR(1:3) ! Temporary coordinate holder
Character(len=20) ::isysu ! Input system, uppercase
Character(len=20) ::osysu ! Output system, uppercase

if (trim(isysu) /= 'E') then
   if (trim(isysu) == 'Q' .or. trim(isysu) == 'C') then
  call xcc_dp_q_to_e(ivector,iepoch,xvector)
   elseif (trim(isysu) == 'G') then
  call xcc_dp_g_to_e(ivector,iepoch,xvector)
   endif
endif

if (iepoch /= oepoch) then
   call xcc_dp_precess(xvector,iepoch,oepoch,yvector)
else
   yvector(1:3)=xvector(1:3)
endif

if (trim(osysu) /= 'E') then 
   if (trim(osysu) == 'Q' .or. trim(osysu) == 'C') then
  call xcc_dp_e_to_q(yvector,oepoch,ovector)
   elseif (trim(osysu) == 'G') then
  call xcc_dp_e_to_g(yvector,oepoch,ovector)
   endif
endif
  end subroutine xcc_v_convert
end module coord_v_convert

~/tmpgfortran -c -O -v coord_v_convert.F90
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: /scratch/martin/gcc/configure
--prefix=/afs/mpa/data/martin/ugcc --enable-languages=c++,fortran
Thread model: posix
gcc version 4.3.0 20070206 (experimental)
 /afs/mpa/data/martin/ugcc/libexec/gcc/i686-pc-linux-gnu/4.3.0/cc1 -E
-lang-fortran -traditional-cpp -D_LANGUAGE_FORTRAN -quiet -v
coord_v_convert.F90 -mtune=generic -O -o /tmp/ccjN9yGi.f95
ignoring nonexistent directory
/afs/mpa/data/martin/ugcc/lib/gcc/i686-pc-linux-gnu/4.3.0/../../../../i686-pc-linux-gnu/include
#include ... search starts here:
#include ... search starts here:
 /usr/local/include
 /afs/mpa/data/martin/ugcc/include
 /afs/mpa/data/martin/ugcc/lib/gcc/i686-pc-linux-gnu/4.3.0/include
 /usr/include
End of search list.
 /afs/mpa/data/martin/ugcc/libexec/gcc/i686-pc-linux-gnu/4.3.0/f951
/tmp/ccjN9yGi.f95 -ffree-form -quiet -dumpbase coord_v_convert.F90
-mtune=generic -auxbase coord_v_convert -O -version -fpreprocessed
-fintrinsic-modules-path
/afs/mpa/data/martin/ugcc/lib/gcc/i686-pc-linux-gnu/4.3.0/finclude -o
/tmp/ccUyuIKr.s
GNU F95 version 4.3.0 20070206 (experimental) (i686-pc-linux-gnu)
compiled by GNU C version 4.3.0 20070206 (experimental).
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
coord_v_convert.F90: In function 'xcc_v_convert':
coord_v_convert.F90:29: internal compiler error: in operand_equal_p, at
fold-const.c:2577

The 4.1 and 4.2 branches compile this properly.


-- 
   Summary: [fortran, 4.3 regression]: ICE in operand_equal_p()
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: martin at mpa-garching dot mpg dot de
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


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



[Bug c++/30703] ICE Segmentation fault on using OpenMP

2007-02-06 Thread jakub at gcc dot gnu dot org


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

URL||http://gcc.gnu.org/ml/gcc-
   ||patches/2007-
   ||02/msg00501.html
   Target Milestone|--- |4.2.0


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



[Bug libgomp/28296] [4.2/4.3 Regression] libgomp fails to configure on Tru64 UNIX

2007-02-06 Thread sayle at gcc dot gnu dot org


--- Comment #8 from sayle at gcc dot gnu dot org  2007-02-06 15:09 ---
Subject: Bug 28296

Author: sayle
Date: Tue Feb  6 15:09:17 2007
New Revision: 121649

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=121649
Log:

PR libgomp/28296
Backport from mainline.
* config/darwin.h (CPP_SPEC): Handle -pthread, transforming
it into -D_REENTRANT.


Modified:
branches/gcc-4_2-branch/gcc/ChangeLog
branches/gcc-4_2-branch/gcc/config/darwin.h


-- 


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



[Bug libgomp/28296] [4.2/4.3 Regression] libgomp fails to configure on Tru64 UNIX

2007-02-06 Thread sayle at gcc dot gnu dot org


--- Comment #9 from sayle at gcc dot gnu dot org  2007-02-06 15:15 ---
Subject: Bug 28296

Author: sayle
Date: Tue Feb  6 15:15:33 2007
New Revision: 121650

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=121650
Log:

PR libgomp/28296
Backport from mainline.
Revert:
2006-07-05  Eric Christopher  [EMAIL PROTECTED]
* configure.ac: Depend addition of -pthread on host OS.
* configure: Regenerate.


Modified:
branches/gcc-4_2-branch/libgomp/ChangeLog
branches/gcc-4_2-branch/libgomp/configure
branches/gcc-4_2-branch/libgomp/configure.ac


-- 


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



[Bug fortran/30713] Internal Complier Error

2007-02-06 Thread kargl at gcc dot gnu dot org


--- Comment #1 from kargl at gcc dot gnu dot org  2007-02-06 15:36 ---
There is no attached code.  Ray can you try adding the code, again.


-- 


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



[Bug fortran/30713] Internal Complier Error

2007-02-06 Thread ray at ultramarine dot com


--- Comment #2 from ray at ultramarine dot com  2007-02-06 15:39 ---
Subject: Re:  Internal Complier Error

On Tue, 6 Feb 2007, kargl at gcc dot gnu dot org wrote:

 
 
 --- Comment #1 from kargl at gcc dot gnu dot org  2007-02-06 15:36 ---
 There is no attached code.  Ray can you try adding the code, again.
 

  Really sorry about that but got an internal bugzilla error when
  I tried.


--- Comment #3 from ray at ultramarine dot com  2007-02-06 15:39 ---
Created an attachment (id=13014)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13014action=view)


-- 


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



[Bug fortran/30713] Internal Complier Error

2007-02-06 Thread burnus at gcc dot gnu dot org


--- Comment #4 from burnus at gcc dot gnu dot org  2007-02-06 16:34 ---
Not that it much helps, but with today's gcc under x86_64-unknown-linux-gnu it
does not crash.
Maybe someone with Intel Mac can reproduce it.

Oherwise:
Compile with the -v option, e.g.  gfortran -v -O3 env_grid.f
After the line gcc-Version 4.3.0 20070206 (experimental) is the actual
compilation command. On my computer it looks like:
/projects/tob/gcc-trunk/libexec/gcc/x86_64-unknown-linux-gnu/4.3.0/f951
env_grid.f -ffixed-form ...

Run now (replace the argument with yours of above)
 gdb /projects/tob/gcc-trunk/libexec/gcc/x86_64-unknown-linux-gnu/4.3.0/f951
(gdb) b real_abort
(gdb) b fancy_abort
(gdb) run env_grid.f -ffixed-form (... and the rest of the options)

When it stops, enter
(gdb) bt

This gives a backtrace and a hint where the error occurs. What exact version of
gfortran did you try? Do you know by chance whether this is a new problem or
was present in a previous version of gfortran 4.3?


-- 


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



[Bug fortran/30715] [4.3 regression]: ICE in operand_equal_p() with -O

2007-02-06 Thread burnus at gcc dot gnu dot org


--- Comment #1 from burnus at gcc dot gnu dot org  2007-02-06 16:52 ---
Confirmed. It crashes with -O but not without optimization.

Reduced test case:
Subroutine xcc_V_CONVERT(iepoch)
implicit none
logical :: IEPOCH
real:: XVECTOR(1:3)
real:: YVECTOR(1:3)
xvector = 0.0
if (iepoch) then
   yvector(1:3)=xvector(1:3)
endif
end subroutine xcc_v_convert


#1  0x00551e7d in operand_equal_p (arg0=0x2b493e8fecc0,
arg1=0x2b493e81b440, flags=0)at gcc/fold-const.c:2577
#2  0x0057977f in fold_ternary (code=COND_EXPR, type=0x2b493e82b0c0,
op0=0x2b493e81b200, op1=0x2b493e8fecc0, op2=0x2b493e81b440) at
gcc/fold-const.c:11773
#3  0x0057a9a1 in fold_build3_stat (code=10473456, type=0xa11,
op0=0x9fcec0, op1=0xa, op2=0x70) at gcc/fold-const.c:12423
#4  0x00497321 in gfc_trans_if_1 (code=0xe60c40) at
gcc/fortran/trans-stmt.c:612
#5  0x00468183 in gfc_trans_code (code=0xe61150) at
gcc/fortran/trans.c:531


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||burnus at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
  GCC build triplet|i686-pc-linux-gnu   |
   GCC host triplet|i686-pc-linux-gnu   |
 GCC target triplet|i686-pc-linux-gnu   |
   Last reconfirmed|-00-00 00:00:00 |2007-02-06 16:52:39
   date||
Summary|[fortran, 4.3 regression]:  |[4.3 regression]: ICE in
   |ICE in operand_equal_p()|operand_equal_p()  with -O


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



[Bug fortran/30713] Internal Complier Error

2007-02-06 Thread ray at ultramarine dot com


--- Comment #5 from ray at ultramarine dot com  2007-02-06 17:00 ---
Subject: Re:  Internal Complier Error

On Tue, 6 Feb 2007, burnus at gcc dot gnu dot org wrote:

 
 
 --- Comment #4 from burnus at gcc dot gnu dot org  2007-02-06 16:34 
 ---
 Not that it much helps, but with today's gcc under x86_64-unknown-linux-gnu it
 does not crash.
 Maybe someone with Intel Mac can reproduce it.
 
 Oherwise:
 Compile with the -v option, e.g.  gfortran -v -O3 env_grid.f
 After the line gcc-Version 4.3.0 20070206 (experimental) is the actual
 compilation command. On my computer it looks like:
 /projects/tob/gcc-trunk/libexec/gcc/x86_64-unknown-linux-gnu/4.3.0/f951
 env_grid.f -ffixed-form ...
 
 Run now (replace the argument with yours of above)
  gdb /projects/tob/gcc-trunk/libexec/gcc/x86_64-unknown-linux-gnu/4.3.0/f951
 (gdb) b real_abort
 (gdb) b fancy_abort
 (gdb) run env_grid.f -ffixed-form (... and the rest of the options)
 
 When it stops, enter
 (gdb) bt
 
 This gives a backtrace and a hint where the error occurs. What exact version 
 of
 gfortran did you try? Do you know by chance whether this is a new problem or
 was present in a previous version of gfortran 4.3?

  If you will look in the log file it contains the results of
  both uname -a and gfortran -v. It says

gcc version 4.3.0 20070104 (experimental)

  I tried the above, but did not get any trace. Message said no stack.

  I have no idea if this is an old or a new problem. I am mostly using
  4.1 on solaris, linux, and mac (power pc). This is the first time 
  I have seen the problem.

  If it helps, I got around the problem by making the code from line
  105 to 117 into a subroutine. Also, the problem does not exist without
  -O3.

  Sorry I could not be of more help,

  Ray


-- 


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



[Bug middle-end/30715] [4.3 regression]: ICE in operand_equal_p() with -O

2007-02-06 Thread burnus at gcc dot gnu dot org


--- Comment #2 from burnus at gcc dot gnu dot org  2007-02-06 17:45 ---
 Reduced test case:
The line xvector = 0.0 can also be removed. The dump-tree-original looks then
as follows:

xcc_v_convert (iepoch)
{
  real4 xvector[3];
  real4 yvector[3];

  if (*iepoch)
{
  (void) __builtin_memcpy ((void *) yvector, (void *) xvector, 12);
}
}


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

  Component|fortran |middle-end


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



[Bug fortran/30713] ICE in insert_into_preds_of_block, at tree-ssa-pre.c:2750

2007-02-06 Thread pinskia at gcc dot gnu dot org


--- Comment #6 from pinskia at gcc dot gnu dot org  2007-02-06 17:50 ---
This is most likely a dup of bug 29922.


-- 


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



[Bug middle-end/30391] [4.3 regression] ICE at -O1 with conditional expressions and GIMPLE_MODIFY_STMT

2007-02-06 Thread pinskia at gcc dot gnu dot org


--- Comment #7 from pinskia at gcc dot gnu dot org  2007-02-06 17:52 ---
*** Bug 30715 has been marked as a duplicate of this bug. ***


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||martin at mpa-garching dot
   ||mpg dot de


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



[Bug middle-end/30715] [4.3 regression]: ICE in operand_equal_p() with -O

2007-02-06 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2007-02-06 17:52 ---


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


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE


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



[Bug fortran/30432] [4.1 only] gfortran.dg/c_by_val_1.f fails on ia64-*-*, problem with %VAL

2007-02-06 Thread sje at cup dot hp dot com


--- Comment #10 from sje at cup dot hp dot com  2007-02-06 18:01 ---
This is fixed on mainline and the 4.2 branch now.  Should it be closed?  I
don't think %VAL is in GCC 4.1 and the failing test is certainly not in the 4.1
branch.  The underlying bug is in 4.1 but it may not be possible to trigger it
without %VAL.


-- 

sje at cup dot hp dot com changed:

   What|Removed |Added

  Known to fail|4.2.0 4.1.2 |4.1.2
  Known to work|4.3.0   |4.3.0 4.2.0
Summary|[4.2/4.1 only]  |[4.1 only]
   |gfortran.dg/c_by_val_1.f|gfortran.dg/c_by_val_1.f
   |fails on ia64-*-*, problem  |fails on ia64-*-*, problem
   |with %VAL   |with %VAL


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



[Bug driver/30714] [4.3 regression] gcj driver doesn't recognize files starting with II

2007-02-06 Thread doko at ubuntu dot com


--- Comment #1 from doko at ubuntu dot com  2007-02-06 18:02 ---
confirmed with trunk 20070206


-- 

doko at ubuntu dot com changed:

   What|Removed |Added

  Known to fail||4.3.0
  Known to work||4.1.2 4.2.0
Summary|[regression] gcj driver |[4.3 regression] gcj driver
   |doesn't recognize files |doesn't recognize files
   |starting with II|starting with II


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



[Bug libgomp/30540] Document default value of implementation-dependent OpenMP settings

2007-02-06 Thread dfranke at gcc dot gnu dot org


--- Comment #5 from dfranke at gcc dot gnu dot org  2007-02-06 18:11 ---
Subject: Bug 30540

Author: dfranke
Date: Tue Feb  6 18:11:30 2007
New Revision: 121657

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=121657
Log:
2007-02-07  Daniel Franke  [EMAIL PROTECTED]

Backport from mainline:
2007-01-31  Ralf Wildenhues  [EMAIL PROTECTED]

* libgomp.texi: Fix spacing after abbreviations.

Backport from mainline:
2007-01-29  Daniel Franke  [EMAIL PROTECTED]

PR libgomp/30540
* libgomp.texi: More about implementation-dependent settings.


Modified:
branches/gcc-4_2-branch/libgomp/ChangeLog
branches/gcc-4_2-branch/libgomp/libgomp.texi


-- 


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



[Bug target/30272] Build failure under SGI Irix (GFortran)

2007-02-06 Thread dfranke at gcc dot gnu dot org


--- Comment #8 from dfranke at gcc dot gnu dot org  2007-02-06 18:12 ---
Subject: Bug 30272

Author: dfranke
Date: Tue Feb  6 18:12:22 2007
New Revision: 121658

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=121658
Log:
2007-02-07  Daniel Franke  [EMAIL PROTECTED]

Backport from mainline:
2007-01-25  Daniel Franke  [EMAIL PROTECTED]

PR target/30272
* inclhack.def(broken_cabs): Also remove definition of cabsl.
* fixincl.x: Regenerate.
* tests/base/math.h: Update.


Modified:
branches/gcc-4_2-branch/fixincludes/fixincl.x
branches/gcc-4_2-branch/fixincludes/inclhack.def
branches/gcc-4_2-branch/fixincludes/tests/base/math.h


-- 


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



[Bug target/30272] Build failure under SGI Irix (GFortran)

2007-02-06 Thread dfranke at gcc dot gnu dot org


--- Comment #9 from dfranke at gcc dot gnu dot org  2007-02-06 18:14 ---
Fixed in mainline and 4.2. Closing.


-- 

dfranke at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug libgomp/30540] Document default value of implementation-dependent OpenMP settings

2007-02-06 Thread dfranke at gcc dot gnu dot org


--- Comment #6 from dfranke at gcc dot gnu dot org  2007-02-06 18:15 ---
Fixed in mainline and 4.2. Closing.


-- 

dfranke at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug libgomp/30540] Document default value of implementation-dependent OpenMP settings

2007-02-06 Thread dfranke at gcc dot gnu dot org


-- 

dfranke at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.2.0


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



[Bug target/30272] Build failure under SGI Irix (GFortran)

2007-02-06 Thread dfranke at gcc dot gnu dot org


-- 

dfranke at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|4.3.0   |4.2.0


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



[Bug driver/13071] no easy way to exclude backward C++ headers from include path

2007-02-06 Thread bkoz at gcc dot gnu dot org


--- Comment #5 from bkoz at gcc dot gnu dot org  2007-02-06 18:32 ---

Solving for C++0x.


-- 

bkoz at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||bkoz at gcc dot gnu dot org


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



[Bug libgomp/30546] [4.2/4.3 regression] build fail in libgomp when building from SVN because makeinfo is missing

2007-02-06 Thread dfranke at gcc dot gnu dot org


--- Comment #15 from dfranke at gcc dot gnu dot org  2007-02-06 18:48 
---
Subject: Bug 30546

Author: dfranke
Date: Tue Feb  6 18:48:11 2007
New Revision: 121661

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=121661
Log:
2007-02-07  Daniel Franke  [EMAIL PROTECTED]

Backport from mainline:
2007-01-31  Daniel Franke [EMAIL PROTECTED]

PR libgomp/30546
* acx.m4 (ACX_PROG_CHECK_VER): Locate a program and check that its
version is acceptable.


Modified:
branches/gcc-4_2-branch/config/ChangeLog
branches/gcc-4_2-branch/config/acx.m4


-- 


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



[Bug libgomp/30546] [4.2/4.3 regression] build fail in libgomp when building from SVN because makeinfo is missing

2007-02-06 Thread dfranke at gcc dot gnu dot org


--- Comment #16 from dfranke at gcc dot gnu dot org  2007-02-06 18:50 
---
Subject: Bug 30546

Author: dfranke
Date: Tue Feb  6 18:49:55 2007
New Revision: 121662

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=121662
Log:
2007-02-07  Daniel Franke [EMAIL PROTECTED]

Backport from mainline:
2007-01-31  Daniel Franke [EMAIL PROTECTED]

PR libgomp/30546
* configure.ac: Add check for makeinfo
* Makefile.am: Redefined target libgomp.info, build libgomp.info only
if an appropiate version of makeinfo is found.
* aclocal.m4: Regenerated.
* configure: Regenerated.
* Makefile.in: Regenerated.
* testsuite/Makefile.in: Regenerated.


Modified:
branches/gcc-4_2-branch/libgomp/ChangeLog
branches/gcc-4_2-branch/libgomp/Makefile.am
branches/gcc-4_2-branch/libgomp/Makefile.in
branches/gcc-4_2-branch/libgomp/aclocal.m4
branches/gcc-4_2-branch/libgomp/configure
branches/gcc-4_2-branch/libgomp/configure.ac
branches/gcc-4_2-branch/libgomp/testsuite/Makefile.in


-- 


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



[Bug libgomp/30546] [4.2/4.3 regression] build fail in libgomp when building from SVN because makeinfo is missing

2007-02-06 Thread dfranke at gcc dot gnu dot org


--- Comment #17 from dfranke at gcc dot gnu dot org  2007-02-06 18:54 
---
Fixed in mainline and 4.2. Closing.


-- 

dfranke at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/30716] New: recursive templates compilation fault

2007-02-06 Thread generatorglukoff at gmail dot com
I had tried to compile code like

templateint dim class cls {
 clsdim-1 c[16];
};
template class cls0 {
};

int main() {
 cls200 c;
 return 0;
}

and had error:

g++: Internal error: Segmentation fault (program cc1plus)
Please submit a full bug report.
See URL:http://gcc.gnu.org/bugs.html for instructions.

I think, in this case better output maybe something like no enough memory,
unable to compile etc.



Information as defined in http://gcc.gnu.org/bugs.html

- the options given when GCC was configured/built

--prefix=/usr --libexecdir=/usr/lib --enable-shared --enable-threads=posix
--enable-__cxa_atexit --enable-clocale=gnu --enable-languages=c,c++



- the complete command line that triggers the bug

g++ bug.cpp


- the compiler output (error messages, warnings, etc.)

g++: Internal error: Segmentation fault (program cc1plus)
Please submit a full bug report.
See URL:http://gcc.gnu.org/bugs.html for instructions.


- the preprocessed file (*.i*) that triggers the bug, generated by adding
-save-temps to the complete compilation command, or, in the case of a bug
report for the GNAT front end, a complete set of source files (see below)

Reading specs from /usr/lib/gcc/i686-pc-linux-gnu/3.4.3/specs
Configured with: ../gcc-3.4.3/configure --prefix=/usr --libexecdir=/usr/lib
--enable-shared --enable-threads=posix --enable-__cxa_atexit
--enable-clocale=gnu --enable-languages=c,c++
Thread model: posix
gcc version 3.4.3
 /usr/lib/gcc/i686-pc-linux-gnu/3.4.3/cc1plus -E -quiet -v -D_GNU_SOURCE
bug.cpp -mtune=pentiumpro
ignoring nonexistent directory
/usr/lib/gcc/i686-pc-linux-gnu/3.4.3/../../../../i686-pc-linux-gnu/include
#include ... search starts here:
#include ... search starts here:
 /usr/lib/gcc/i686-pc-linux-gnu/3.4.3/../../../../include/c++/3.4.3

/usr/lib/gcc/i686-pc-linux-gnu/3.4.3/../../../../include/c++/3.4.3/i686-pc-linux-gnu
 /usr/lib/gcc/i686-pc-linux-gnu/3.4.3/../../../../include/c++/3.4.3/backward
 /usr/local/include
 /usr/lib/gcc/i686-pc-linux-gnu/3.4.3/include
 /usr/include
End of search list.
# 1 bug.cpp
# 1 built-in
# 1 command line
# 1 bug.cpp
templateint dim class cls {
 clsdim-1 c[16];
};
template class cls0 {
};


int main() {
 cls200 c;
 return 0;
}


-- 
   Summary: recursive templates compilation fault
   Product: gcc
   Version: 3.4.3
Status: UNCONFIRMED
  Severity: minor
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: generatorglukoff at gmail dot com
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


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



[Bug c/30717] New: Compile error with e500 target on gcc 4.1/4.2

2007-02-06 Thread guenter at roeck-us dot net
glibc 2.3.6 fails to compile with gcc 4.1.2 dated 11/24/06 or later, or
matching gcc version 4.2.x, if gcc is compiled for e500 or e500v2 CPUs.

The following code is a shortened test case.

#define testmacro(mem) \
  ({  \
__typeof (*(mem)) __val;  \
__asm __volatile ( addi%0,%2,1\n\
  : =b (__val), =m (*mem)\
  : b (mem), m (*mem) \
  : cr0, memory); \
__val;\
  })

struct teststruct1
  {
int count;
  } __attribute__ ((packed));

struct teststruct2
  {
int count;
  };

void testfunc (struct teststruct1 *s1, struct teststruct2 *s2)
{
  int v;

  testmacro(v);// ok
  testmacro(s1-count);// fails
  testmacro(s2-count);// ok
}

Compilation output:

$ ppc-teak-linuxspe1-gcc -c testcc.c
testcc.c: In function 'testfunc':
testcc.c:26: error: output number 1 not directly addressable
testcc.c:26: warning: use of memory input without lvalue in asm operand 3 is
deprecated 
$ 

The problem is caused by the addition of MASK_STRICT_ALIGN into the processor
mask for 8540 and 8548 CPUs in various locations; if the MASK_STRICT_ALIGN
definitions added between gcc-4.1-20061117 and gcc-4.1-20061124 are removed,
everything compiles fine.
Problem is not seen if gcc is compiled for ppc or powerpc targets.


-- 
   Summary: Compile error with e500 target on gcc 4.1/4.2
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: guenter at roeck-us dot net


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



[Bug c/30717] Compile error with e500 target on gcc 4.1/4.2

2007-02-06 Thread guenter at roeck-us dot net


--- Comment #1 from guenter at roeck-us dot net  2007-02-06 19:28 ---
Turns out that compilation is fine if I compile with -mno-strict-align.
Maybe this is not a bug after all but simply changed semantics ?


-- 


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



[Bug c/30717] Compile error with e500 target on gcc 4.1/4.2

2007-02-06 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2007-02-06 19:30 ---
You cannot really take the address of an elemenent of a packed struct on non
strict alignment targets as if you deference them, it will try to do an aligned
load which then fail as the alignment is wrong.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug libstdc++/30711] Ifstream bug using Red Hat g++-4.1.0 compared to g++-4.0.2

2007-02-06 Thread pcarlini at suse dot de


--- Comment #3 from pcarlini at suse dot de  2007-02-06 19:32 ---
I cannot reproduce the issue on official FSF compiler more recent than gcc4.0.0
(note that vendor releases are not supported here, sorry). In fact, since that
release we are implementing the resolution of DR 409:

  http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#409

which implies that an user-code clear after a failed open is not necessary
anymore. Also note that, in general, if you are not sure about the
implementation of DR 409 in a given library, portable code should always call
clear after a failed open (of course, constructing a new fstream, as per your
Try 2, always works).


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
  Component|c++ |libstdc++
 Resolution||INVALID


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



[Bug c/30719] New: gcc should probably warn if users compile without -O

2007-02-06 Thread tvb at gnome dot org
Compiling without -O causes severe consequences that can easily
be avoided, i.e. see the wontfix bug 25575.

people expect to have warnings for use of uninitialized variables,
I dont know if this behaviour has always been the same across gcc
versions but regardless, the user cant be expected to read the whole
manual to stumble upon this one alarming detail.

If there is no reason to ever compile without -O, then that should
probably be completely disabled, otherwise there should be a warning
I think BEWARE!!! you are compiling without optimization - some
warnings and errors will be missed

This would have saved me 2 weeks of tracking down the uninitialized
bytes without the compiler's help.


-- 
   Summary: gcc should probably warn if users compile without -O
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tvb at gnome dot org


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



[Bug c/30717] Compile error with e500 target on gcc 4.1/4.2

2007-02-06 Thread guenter at roeck-us dot net


--- Comment #3 from guenter at roeck-us dot net  2007-02-06 19:41 ---
Does that mean this is really a glibc problem ?

In glibc, the problem occurs with an atomic_increment() on an element of a
packet structure.


-- 


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



[Bug inline-asm/28686] ebp from clobber list used as operand

2007-02-06 Thread spark at gcc dot gnu dot org


--- Comment #7 from spark at gcc dot gnu dot org  2007-02-06 19:43 ---
Subject: Bug 28686

Author: spark
Date: Tue Feb  6 19:43:41 2007
New Revision: 121663

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=121663
Log:
2007-02-06  Seongbae Park [EMAIL PROTECTED]

PR inline-asm/28686
* global.c (compute_regsets): New function.
(global_alloc): Refactored ELIMINABLE_REGSET
and NO_GLOBAL_ALLOC_REGS computation out.
(rest_of_handle_global_alloc): Call compute_regsets()
for non-optimizing case.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/global.c


-- 


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



[Bug c/30719] gcc should probably warn if users compile without -O

2007-02-06 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2007-02-06 19:48 ---
 If there is no reason to ever compile without -O,

There are reasons, like getting much, much better debug info.
-O1 enables lots of optimization that changes the code so much that debugging
optimizated code is hard.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WONTFIX


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



[Bug fortran/30720] New: runtime: check for empty array slices before allocating a negative amount of memory

2007-02-06 Thread dfranke at gcc dot gnu dot org
The program below terminates with a runtime error due to an attempt to allocate
a negative amount of memory. The error occurs while allocating memory for a
temporary, empty, array slice. 

$ cat pr.f90
program runtime_error
  REAL:: a(5), b
  INTEGER :: l, u
  l = 4
  u = 2

  a = (/ 1.0, 2.0, 3.0, 4.0, 5.0 /)
  b = f(a(l:u) - 3.0)

  CONTAINS
REAL FUNCTION f(x)
  REAL, DIMENSION(:), INTENT(in) :: x
  f = sum(x)
end function
END PROGRAM


There are two issues here:
 a) the runtime error as described above

$ gfortran-svn -O -fdump-tree-original -fdump-tree-optimized pr.f90

from dump-tree-original:
  int4 D.1036;
  void * D.1035;
  int4 D.1034;
  struct array1_real4 atmp.7;
  int4 D.1032;
  int4 D.1031;

  D.1031 = l;
  D.1032 = u;
  atmp.7.dtype = 281;
  atmp.7.dim[0].stride = 1;
  atmp.7.dim[0].lbound = 0;
  atmp.7.dim[0].ubound = u - D.1031;
  D.1034 = (u - D.1031) + 1;
  D.1035 = _gfortran_internal_malloc (D.1034 * 4);
  atmp.7.data = D.1035;

from dump-tree-optimized:
  void * SR.31;
  [...]
  SR.31 = _gfortran_internal_malloc (-4);
  _gfortran_internal_free (SR.31);


Here, if l  u+1, D.1035 will be negative and trigger the runtime error.
In this case, a runtime check whether the slice is empty before calling
_gfortran_internal_malloc() would result in code not stopping with a
(seemingly) unrelated error message.


 b) missed optimization during constant folding:
from dump-tree-original:
  struct array1_real4 atmp.7;

  atmp.7.dtype = 281;
  atmp.7.dim[0].stride = 1;
  atmp.7.dim[0].lbound = 0;
  atmp.7.dim[0].ubound = -1;
  atmp.7.data = 0B;
  [...]
  _gfortran_internal_free (atmp.7.data);

from dump-tree-optimzed:
  _gfortran_internal_free (0B);

If the boundaries are known at compile time, e.g. a(4:2), no memory is
allocated for the array descriptor, but _gfortran_internal_free(0B) is called
nonetheless. This call is still visible after optimization.

$ gfortran-svn -v
gcc version 4.3.0 20070126 (experimental)


-- 
   Summary: runtime: check for empty array slices before allocating
a negative amount of memory
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dfranke at gcc dot gnu dot org


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



[Bug c/30719] gcc should probably warn if users compile without -O

2007-02-06 Thread tvb at gnome dot org


--- Comment #2 from tvb at gnome dot org  2007-02-06 20:09 ---
(In reply to comment #1)
  If there is no reason to ever compile without -O,
 
 There are reasons, like getting much, much better debug info.
 -O1 enables lots of optimization that changes the code so much that debugging
 optimizated code is hard.
 

Agreed 100% on your comment, if your going to close the bug and
say wontfix, would you care to explain why ? ... I mean this bug,
not bug 25575.


-- 

tvb at gnome dot org changed:

   What|Removed |Added

 Status|RESOLVED|UNCONFIRMED
 Resolution|WONTFIX |


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



[Bug driver/30714] [4.3 regression] gcj driver doesn't recognize files starting with II

2007-02-06 Thread tromey at gcc dot gnu dot org


-- 

tromey at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-02-06 20:25:04
   date||


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



[Bug fortran/30720] runtime: check for empty array slices before allocating a negative amount of memory

2007-02-06 Thread fxcoudert at gcc dot gnu dot org


--- Comment #1 from fxcoudert at gcc dot gnu dot org  2007-02-06 20:34 
---
Confirming this bug (both of them, actually).

For the missed-optimization, I think there's no reason to keep a library
function _gfortran_internal_free(x) that is equivalent to if(x) free(x);, we
should generate that code directly.


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||missed-optimization, wrong-
   ||code
  Known to fail||4.3.0
   Last reconfirmed|-00-00 00:00:00 |2007-02-06 20:34:23
   date||


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



[Bug driver/30714] [4.3 regression] gcj driver doesn't recognize files starting with II

2007-02-06 Thread tromey at gcc dot gnu dot org


--- Comment #2 from tromey at gcc dot gnu dot org  2007-02-06 20:44 ---
Subject: Bug 30714

Author: tromey
Date: Tue Feb  6 20:43:55 2007
New Revision: 121666

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=121666
Log:
PR java/30714:
* jvspec.c (lang_specific_driver): Check for the '-' in '-I'.

Modified:
trunk/gcc/java/ChangeLog
trunk/gcc/java/jvspec.c


-- 


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



[Bug driver/30714] [4.3 regression] gcj driver doesn't recognize files starting with II

2007-02-06 Thread tromey at gcc dot gnu dot org


--- Comment #3 from tromey at gcc dot gnu dot org  2007-02-06 20:45 ---
Subject: Bug 30714

Author: tromey
Date: Tue Feb  6 20:45:25 2007
New Revision: 121667

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=121667
Log:
PR java/30714:
* jvspec.c (lang_specific_driver): Check for the '-' in '-I'.

Modified:
branches/redhat/gcc-4_1-branch-java-merge-20070117/gcc/java/ChangeLog
branches/redhat/gcc-4_1-branch-java-merge-20070117/gcc/java/jvspec.c


-- 


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



[Bug driver/30714] [4.3 regression] gcj driver doesn't recognize files starting with II

2007-02-06 Thread tromey at gcc dot gnu dot org


--- Comment #4 from tromey at gcc dot gnu dot org  2007-02-06 20:46 ---
Fix checked in.


-- 

tromey at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.3.0


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



[Bug target/30370] [4.1 regression] Build failure in libgcc2 powitf2 with ICE in gen_reg_rtx

2007-02-06 Thread mmitchel at gcc dot gnu dot org


--- Comment #15 from mmitchel at gcc dot gnu dot org  2007-02-06 20:50 
---
Subject: Bug 30370

Author: mmitchel
Date: Tue Feb  6 20:50:37 2007
New Revision: 121668

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=121668
Log:
PR 30370 
* config/rs6000/t-ppccomm: Correct Makefile typo.

Modified:
branches/gcc-4_1-branch/gcc/ChangeLog
branches/gcc-4_1-branch/gcc/config/rs6000/t-ppccomm


-- 


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



[Bug target/30370] [4.1 regression] Build failure in libgcc2 powitf2 with ICE in gen_reg_rtx

2007-02-06 Thread mmitchel at gcc dot gnu dot org


--- Comment #16 from mmitchel at gcc dot gnu dot org  2007-02-06 20:58 
---
Fixed in 4.1.2.


-- 

mmitchel at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug fortran/30720] runtime: check for empty array slices before allocating a negative amount of memory

2007-02-06 Thread fxcoudert at gcc dot gnu dot org


--- Comment #2 from fxcoudert at gcc dot gnu dot org  2007-02-06 21:00 
---
The wrong-code bug happens in gfc_trans_create_temp_array. For some reason, the
function argument to that function is false, and the code present to take care
of negative extent is not triggered. Thomas, you're the one who introduced this
argument:

2006-06-15  Thomas Koenig [EMAIL PROTECTED]

* trans-array.h (gfc_trans_create_temp_array):  Add bool
argument.
* trans-arrray.c (gfc_trans_create_temp_array): Add extra
argument function to show if we are translating a function.
If we are translating a function, perform checks whether
the size along any argument is negative.  In that case,
allocate size 0.

do you remember why always performing that check (ie, turn function to be
always true) is not the right thing to do?


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug target/30370] [4.1 regression] Build failure in libgcc2 powitf2 with ICE in gen_reg_rtx

2007-02-06 Thread mmitchel at gcc dot gnu dot org


--- Comment #17 from mmitchel at gcc dot gnu dot org  2007-02-06 21:06 
---
Subject: Bug 30370

Author: mmitchel
Date: Tue Feb  6 21:06:36 2007
New Revision: 121669

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=121669
Log:
PR 30370 
* config/rs6000/t-ppccomm: Correct Makefile typo.

Modified:
branches/gcc-4_2-branch/gcc/ChangeLog
branches/gcc-4_2-branch/gcc/config/rs6000/t-ppccomm


-- 


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



[Bug target/29487] Shared libstdc++ fails to link

2007-02-06 Thread dave at hiauly1 dot hia dot nrc dot ca


--- Comment #38 from dave at hiauly1 dot hia dot nrc dot ca  2007-02-06 
21:18 ---
Subject: Re:  Shared libstdc++ fails to link

 Created an attachment (id=13011)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13011action=view)
  -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13011action=view)
 proposed, untested patch

I did a build and check of c and c++ on 4.1.2 using the above patch
modified for the 4.1 branch on HP-UX 11.11 (attached).  I modified
the pa-hpux11.h file to disable TARGET_SOM_SDEF so that the COMDAT
support used with HP-UX 10 was used for one-only support.

I had to include target.h in one file but I didn't bother updating
the Makefile dependencies.

The build was successful and libstdc++-v3 linked successfully.  There
was one minor regression.  nothrow1.C failed in the g++ testsuite.
I've attached the tree dump.

Dave


--- Comment #39 from dave at hiauly1 dot hia dot nrc dot ca  2007-02-06 
21:18 ---
Created an attachment (id=13016)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13016action=view)


--- Comment #40 from dave at hiauly1 dot hia dot nrc dot ca  2007-02-06 
21:18 ---
Created an attachment (id=13017)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13017action=view)


-- 


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



[Bug c++/30721] New: ICE on invalid template code

2007-02-06 Thread v dot haisman at sh dot cvut dot cz
Attached test case ICEs. The code is AFAIK invalid:

---8---

#include stdio.h

template typename Numeric
class Table
{
  typedef struct
  {
const char * const name;
Numeric index;
  } Tableitem;

  static const Tableitem entries[];

public:
  const char * const
  operator[] (Numeric Tableindex)
  {
for (int i=0; isizeof(entries)/sizeof(Tableitem); ++i)
  if(entries[i].index==Tableindex)
return entries[i].name;
return 0;
  }
};


enum funky { feeling, lost, somewhere, in, space };

templatefunky
const Tablefunky::Tableitem Tablefunky::entries[] =
  {
{feeling, feeling},
{lost, lost},
{somewhere, somewhere},
{in, in},
{space, space},
  };

int main (int argc, char **argv)
{
  Tablefunky FunkyTable;
  printf(Funkytable somewhere=[%s]\n, FunkyTable[somewhere]);
  return 0;
}

---8---

The error:

logout::wilx:~/tmp g++42 -o ice ice.cxx
ice.cxx:14: internal compiler error: in import_export_decl, at cp/decl2.c:1956
Please submit a full bug report,
with preprocessed source if appropriate.
See URL:http://gcc.gnu.org/bugs.html for instructions.

GCC version:

logout::wilx:~/tmp g++42 -v
Using built-in specs.
Target: i386-portbld-freebsd6.2
Configured with: ./..//gcc-4.2-20070117/configure --disable-nls
--with-system-zlib --with-libiconv-prefix=/usr/local --with-gmp=/usr/local
--program-suffix=42 --libdir=/usr/local/lib/gcc-4.2.0
--with-gxx-include-dir=/usr/local/lib/gcc-4.2.0/include/c++/
--infodir=/usr/local/info/gcc42 --disable-rpath --prefix=/usr/local
i386-portbld-freebsd6.2
Thread model: posix
gcc version 4.2.0 20070117 (prerelease)


-- 
   Summary: ICE on invalid template code
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: v dot haisman at sh dot cvut dot cz
 GCC build triplet: i386-portbld-freebsd6.2
  GCC host triplet: i386-portbld-freebsd6.2
GCC target triplet: i386-portbld-freebsd6.2


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



[Bug c++/30721] ICE on invalid template code

2007-02-06 Thread v dot haisman at sh dot cvut dot cz


--- Comment #1 from v dot haisman at sh dot cvut dot cz  2007-02-06 21:36 
---
(In reply to comment #0)
[...]
 logout::wilx:~/tmp g++42 -o ice ice.cxx
 ice.cxx:14: internal compiler error: in import_export_decl, at cp/decl2.c:1956
 Please submit a full bug report,
 with preprocessed source if appropriate.
 See URL:http://gcc.gnu.org/bugs.html for instructions.
[...]
I submitted wrong error message, this is the right one:

logout::wilx:~/tmp g++42 -o goezzi goezzi.cxx
goezzi.cxx: In member function 'const char* const
TableNumeric::operator[](Numeric) [with Numeric = funky]':
goezzi.cxx:19:   instantiated from 'const Tablefunky::Tableitem
Tablefunky::entries [5]'
goezzi.cxx:19:   instantiated from 'const char* const
TableNumeric::operator[](Numeric) [with Numeric = funky]'
goezzi.cxx:41:   instantiated from here
goezzi.cxx:19: internal compiler error: in instantiate_decl, at cp/pt.c:12090
Please submit a full bug report,
with preprocessed source if appropriate.
See URL:http://gcc.gnu.org/bugs.html for instructions.


-- 


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



[Bug c++/30722] New: ICE on invalid template code #2

2007-02-06 Thread v dot haisman at sh dot cvut dot cz
This has been derived from test case in PR 30721 but because it ICEs at
different place I report it as different bug.

-8--

template typename Numeric
struct Table
{
  typedef struct
  {
const char * const name;
  } Tableitem;

  static const Tableitem entries[];
};

enum funky { feeling };

templatefunky
const Tablefunky::Tableitem Tablefunky::entries[] = { {} };

-8--

Error:

logout::wilx:~/tmp g++42 -o ice ice.cxx
ice.cxx:14: internal compiler error: in import_export_decl, at cp/decl2.c:1956
Please submit a full bug report,
with preprocessed source if appropriate.
See URL:http://gcc.gnu.org/bugs.html for instructions.

GCC:

logout::wilx:~/tmp g++42 -v
Using built-in specs.
Target: i386-portbld-freebsd6.2
Configured with: ./..//gcc-4.2-20070117/configure --disable-nls
--with-system-zlib --with-libiconv-prefix=/usr/local --with-gmp=/usr/local
--program-suffix=42 --libdir=/usr/local/lib/gcc-4.2.0
--with-gxx-include-dir=/usr/local/lib/gcc-4.2.0/include/c++/
--infodir=/usr/local/info/gcc42 --disable-rpath --prefix=/usr/local
i386-portbld-freebsd6.2
Thread model: posix
gcc version 4.2.0 20070117 (prerelease)


-- 
   Summary: ICE on invalid template code #2
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: v dot haisman at sh dot cvut dot cz
 GCC build triplet: i386-portbld-freebsd6.2
  GCC host triplet: i386-portbld-freebsd6.2
GCC target triplet: i386-portbld-freebsd6.2


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



[Bug c/30719] gcc should probably warn if users compile without -O

2007-02-06 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2007-02-06 22:03 ---
What is there to warn about?
If you do -Winitialize without -O, you get a warning so ...


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WONTFIX


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



[Bug middle-end/28071] [4.1 regression] A file that can not be compiled in reasonable time/space

2007-02-06 Thread hubicka at gcc dot gnu dot org


--- Comment #60 from hubicka at gcc dot gnu dot org  2007-02-06 22:05 
---
Hi,
small update on status.  At -O3 -fno-tree-fre -fno-tree-pre we are now doing
1.1GB footprint, 800MB of this out of gimple.  We still explode in FRE/PRE but
majority of other problems was fixed:
Execution times (seconds)
 garbage collection:  18.23 (12%) usr   0.04 ( 1%) sys  18.46 (10%) wall   
   0 kB ( 0%) ggc
 callgraph construction:  10.31 ( 7%) usr   0.04 ( 1%) sys  10.36 ( 5%) wall   
2296 kB ( 0%) ggc
 life analysis :   4.08 ( 3%) usr   0.16 ( 3%) sys   4.26 ( 2%) wall   
7350 kB ( 2%) ggc
 inline heuristics :  10.46 ( 7%) usr   0.12 ( 2%) sys  10.57 ( 6%) wall   
2438 kB ( 1%) ggc
 integration   :  16.48 (11%) usr   0.46 ( 9%) sys  17.00 ( 9%) wall 
143049 kB (29%) ggc
 tree CFG cleanup  :   4.69 ( 3%) usr   0.00 ( 0%) sys   4.69 ( 2%) wall   
   0 kB ( 0%) ggc
 tree SSA incremental  :   2.32 ( 2%) usr   0.40 ( 8%) sys   2.76 ( 1%) wall   
3276 kB ( 1%) ggc
 tree operand scan :   1.42 ( 1%) usr   0.22 ( 4%) sys   1.54 ( 1%) wall  
27071 kB ( 6%) ggc
 dominator optimization:   2.25 ( 2%) usr   0.00 ( 0%) sys   2.24 ( 1%) wall  
14657 kB ( 3%) ggc
 tree split crit edges :   0.39 ( 0%) usr   0.00 ( 0%) sys   0.39 ( 0%) wall  
17558 kB ( 4%) ggc
 tree SSA to normal:   8.06 ( 5%) usr   0.40 ( 8%) sys   8.51 ( 4%) wall  
22874 kB ( 5%) ggc
 expand:   3.83 ( 3%) usr   0.69 (14%) sys  38.08 (20%) wall  
54312 kB (11%) ggc
 forward prop  :   3.20 ( 2%) usr   0.82 (16%) sys   4.22 ( 2%) wall   
2470 kB ( 1%) ggc
 if-conversion :   6.37 ( 4%) usr   0.00 ( 0%) sys   6.41 ( 3%) wall   
9157 kB ( 2%) ggc
 global alloc  :  12.12 ( 8%) usr   0.94 (19%) sys  15.48 ( 8%) wall  
18801 kB ( 4%) ggc
 TOTAL : 147.90 5.02   191.03
486834 kB

We get considerable usage in bitmaps (just those over 100MB of peak memory
usage are listed):
df-problems.c:2957 (df_chain_create_bb)  208MB
df-problems.c:986 (df_rd_alloc)  207MB
df-problems.c:987 (df_rd_alloc)  110MB
tree-ssa-live.c:534 (new_tree_live_info)  110MB
tree-ssa-live.c:538 (new_tree_live_info)  110MB

At least 100MB, but probably more is consumed by the new linked lists used by
scheduler.  Hopefully this can be tracked by moving everyting to allocpools.

I will send -O2 in separate post.
Honza


-- 


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



[Bug middle-end/28071] [4.1 regression] A file that can not be compiled in reasonable time/space

2007-02-06 Thread hubicka at gcc dot gnu dot org


--- Comment #61 from hubicka at gcc dot gnu dot org  2007-02-06 22:14 
---
Also forgot to mention, integration is slow because of the split_block
quadraticness.

For -O2:
We need 531MB of ram, GGC memory is peaking at 100MB, large portion of the
non-GGC memory are definitly the scheduler dependency lists.

xecution times (seconds)
 garbage collection:  14.26 ( 5%) usr   0.03 ( 1%) sys  14.27 ( 5%) wall   
   0 kB ( 0%) ggc
 life analysis :  73.96 (24%) usr   1.55 (46%) sys  75.52 (24%) wall   
7207 kB ( 2%) ggc
 alias analysis:   0.92 ( 0%) usr   0.00 ( 0%) sys   0.87 ( 0%) wall   
8530 kB ( 3%) ggc
 inline heuristics :  11.64 ( 4%) usr   0.12 ( 4%) sys  11.77 ( 4%) wall   
2695 kB ( 1%) ggc
 integration   :  16.71 ( 5%) usr   0.19 ( 6%) sys  16.91 ( 5%) wall  
69808 kB (21%) ggc
 tree gimplify :   0.49 ( 0%) usr   0.07 ( 2%) sys   0.58 ( 0%) wall  
14977 kB ( 4%) ggc
 tree operand scan :   1.25 ( 0%) usr   0.11 ( 3%) sys   1.29 ( 0%) wall  
20889 kB ( 6%) ggc
 tree SRA  :   1.20 ( 0%) usr   0.07 ( 2%) sys   1.37 ( 0%) wall  
40364 kB (12%) ggc
 tree FRE  :   1.14 ( 0%) usr   0.07 ( 2%) sys   1.21 ( 0%) wall   
9230 kB ( 3%) ggc
 expand:   3.29 ( 1%) usr   0.10 ( 3%) sys   3.39 ( 1%) wall  
45828 kB (14%) ggc
 PRE   :  21.54 ( 7%) usr   0.00 ( 0%) sys  21.54 ( 7%) wall   
 898 kB ( 0%) ggc
 regmove   :  93.59 (30%) usr   0.05 ( 1%) sys  93.64 (30%) wall   
 156 kB ( 0%) ggc
 local alloc   :   5.34 ( 2%) usr   0.00 ( 0%) sys   5.33 ( 2%) wall   
2838 kB ( 1%) ggc
 global alloc  :   4.25 ( 1%) usr   0.06 ( 2%) sys   4.30 ( 1%) wall  
19946 kB ( 6%) ggc
 reload CSE regs   :   4.09 ( 1%) usr   0.00 ( 0%) sys   4.11 ( 1%) wall  
11354 kB ( 3%) ggc
 scheduling 2  :  16.97 ( 6%) usr   0.44 (13%) sys  17.53 ( 6%) wall  
20069 kB ( 6%) ggc
 TOTAL : 308.36 3.39   312.58
334207 kB
total: 531915 kB

regmove has the quadratic loop issues I added param for earliler in the track,
but the parameter is now apparently bit too large since rest of compiler is a
lot faster.  Scheduler/out-of-SSA slowness is gone.

There are no overly large bitmaps, one large allocpool:
df_scan_ref pool  18   74449440   67061984  0

Looks like we are in pretty good shape on this one, only IMO important problems
being the slowness of life (hopefully fixed by DFA) and memory houngryness of
scheduler.

Honza


-- 


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



[Bug fortran/30723] New: Freeing memory doesn't need to call a library function

2007-02-06 Thread fxcoudert at gcc dot gnu dot org
Currently, allocated memory is freed by calling the library function
_gfortran_internal_free, which does nothing but:

/* Free internally allocated memory.  Pointer is NULLified.  Also used to
   free user allocated memory.  */
void
internal_free (void *mem)
{ 
  if (mem != NULL)
free (mem);
}

Two things are worth noting:
  + although the comment says otherwise, the pointer is not NULLified.
  + this code could be generated directly by the front-end, leading to better
optimization.

An example of the missed optimization is the compilation of the following code:

  REAL:: a(5), b
  INTEGER :: l, u
  l = 4
  u = 2

  a = (/ 1.0, 2.0, 3.0, 4.0, 5.0 /)
  b = f(a(l:u) - 3.0)
  call foo(b)

  CONTAINS
REAL FUNCTION f(x)
  REAL, DIMENSION(:), INTENT(in) :: x
  f = sum(x)
end function
END PROGRAM

the optimized tree looks like:

  SR.33 = _gfortran_internal_malloc (0);
  b = 0.0; 
  _gfortran_internal_free (SR.33);

We sure could optimize away the use of SR.33. PR 30720 has another case where
such an optimization could happen.


-- 
   Summary: Freeing memory doesn't need to call a library function
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: missed-optimization
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: fxcoudert at gcc dot gnu dot org


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



[Bug fortran/30723] Freeing memory doesn't need to call a library function

2007-02-06 Thread fxcoudert at gcc dot gnu dot org


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-02-06 23:05:58
   date||
   Target Milestone|--- |4.3.0


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



[Bug target/29746] gcc fails to bootstrap on sh4-*-linux-gnu

2007-02-06 Thread kkojima at gcc dot gnu dot org


--- Comment #18 from kkojima at gcc dot gnu dot org  2007-02-06 23:12 
---
Subject: Bug 29746

Author: kkojima
Date: Tue Feb  6 23:12:35 2007
New Revision: 121671

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=121671
Log:
PR target/29746
* config/sh/sh.c (expand_cbranchdi4): Use scratch register
properly.
(sh_initialize_trampoline): Add parentheses to avoid a warning.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/sh/sh.c


-- 


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



[Bug fortran/30720] runtime: check for empty array slices before allocating a negative amount of memory

2007-02-06 Thread fxcoudert at gcc dot gnu dot org


--- Comment #3 from fxcoudert at gcc dot gnu dot org  2007-02-06 23:13 
---
To keep things separate, I filed PR30723 for the missed optimization.


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

   Keywords|missed-optimization |


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



[Bug fortran/30720] runtime: check for empty array slices before allocating a negative amount of memory

2007-02-06 Thread fxcoudert at gcc dot gnu dot org


--- Comment #4 from fxcoudert at gcc dot gnu dot org  2007-02-06 23:16 
---
Created an attachment (id=13018)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13018action=view)
Patch for this bug

Here's the patch I propose. It makes the code simpler by using a cond_expr
instead of using different statement blocks. Regtested in an earlier version on
i686-linux, regtesting of the current version in progress.


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug fortran/30432] [4.1 only] gfortran.dg/c_by_val_1.f fails on ia64-*-*, problem with %VAL

2007-02-06 Thread fxcoudert at gcc dot gnu dot org


--- Comment #11 from fxcoudert at gcc dot gnu dot org  2007-02-06 23:17 
---
(In reply to comment #10)
 This is fixed on mainline and the 4.2 branch now.  Should it be closed?  I
 don't think %VAL is in GCC 4.1 and the failing test is certainly not in the 
 4.1
 branch.  The underlying bug is in 4.1 but it may not be possible to trigger it
 without %VAL.

OK, that's reason enough to close it. Thanks for your work!


-- 

fxcoudert at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug target/29746] gcc fails to bootstrap on sh4-*-linux-gnu

2007-02-06 Thread kkojima at gcc dot gnu dot org


--- Comment #19 from kkojima at gcc dot gnu dot org  2007-02-06 23:29 
---
Fixed.


-- 

kkojima at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug fortran/25714] concat of strings create an extra temporary variable

2007-02-06 Thread fxcoudert at gcc dot gnu dot org


--- Comment #2 from fxcoudert at gcc dot gnu dot org  2007-02-07 00:21 
---
Here's another patch for concat, to have the front-end generate the code itself
instead of calling a library function. It still generates the extra temporary,
but can optimize other things.

Index: trans-expr.c
===
--- trans-expr.c(revision 121506)
+++ trans-expr.c(working copy)
@@ -934,6 +934,36 @@
 }


+/* Helper for gfc_trans_array_copy, gfc_trans_array_constructor_copy
+   and gfc_conv_concat_op that constructs the call to __builtin_memcpy.  */
+
+static tree
+gfc_build_memcpy_call (tree dst, tree src, tree len)
+{
+  tree tmp, args;
+
+  /* Convert arguments to the correct types.  */
+  if (!POINTER_TYPE_P (TREE_TYPE (dst)))
+dst = gfc_build_addr_expr (pvoid_type_node, dst);
+  else
+dst = fold_convert (pvoid_type_node, dst);
+
+  if (!POINTER_TYPE_P (TREE_TYPE (src)))
+src = gfc_build_addr_expr (pvoid_type_node, src);
+  else
+src = fold_convert (pvoid_type_node, src);
+
+  len = fold_convert (size_type_node, len);
+
+  /* Construct call to __builtin_memcpy.  */
+  args = build_tree_list (NULL_TREE, len);
+  args = tree_cons (NULL_TREE, src, args);
+  args = tree_cons (NULL_TREE, dst, args);
+  tmp = build_function_call_expr (built_in_decls[BUILT_IN_MEMCPY], args);
+  return fold_convert (void_type_node, tmp);
+}
+
+
 /* Handle a string concatenation operation.  A temporary will be allocated to
hold the result.  */

@@ -942,11 +972,15 @@
 {
   gfc_se lse;
   gfc_se rse;
-  tree len;
+  tree destlen;
   tree type;
-  tree var;
+  tree dest;
   tree args;
   tree tmp;
+  tree d;
+  tree dlen;
+  tree cond1, cond2, action1, action2, expr_block1, expr_block2;
+  stmtblock_t block1, block2;

   gcc_assert (expr-value.op.op1-ts.type == BT_CHARACTER
   expr-value.op.op2-ts.type == BT_CHARACTER);
@@ -962,34 +996,92 @@
   gfc_add_block_to_block (se-pre, rse.pre);

   type = gfc_get_character_type (expr-ts.kind, expr-ts.cl);
-  len = TYPE_MAX_VALUE (TYPE_DOMAIN (type));
-  if (len == NULL_TREE)
-{
-  len = fold_build2 (PLUS_EXPR, TREE_TYPE (lse.string_length),
-lse.string_length, rse.string_length);
-}
+  destlen = TYPE_MAX_VALUE (TYPE_DOMAIN (type));
+  if (destlen == NULL_TREE)
+destlen = fold_build2 (PLUS_EXPR, TREE_TYPE (lse.string_length),
+  lse.string_length, rse.string_length);

   type = build_pointer_type (type);

-  var = gfc_conv_string_tmp (se, type, len);
+  dest = gfc_conv_string_tmp (se, type, destlen);

-  /* Do the actual concatenation.  */
-  args = NULL_TREE;
-  args = gfc_chainon_list (args, len);
-  args = gfc_chainon_list (args, var);
-  args = gfc_chainon_list (args, lse.string_length);
-  args = gfc_chainon_list (args, lse.expr);
-  args = gfc_chainon_list (args, rse.string_length);
-  args = gfc_chainon_list (args, rse.expr);
-  tmp = build_function_call_expr (gfor_fndecl_concat_string, args);
+  /* Do the actual concatenation.  The original code in libgfortran was:
+
+   void
+   concat_string (GFC_INTEGER_4 destlen, char * dest,
+  GFC_INTEGER_4 len1, const char * s1,
+  GFC_INTEGER_4 len2, const char * s2)
+   {
+ if (len1 = destlen)
+   {
+ memcpy (dest, s1, destlen);
+ return;
+   }
+ memcpy (dest, s1, len1);
+ dest += len1;
+ destlen -= len1;
+
+ if (len2 = destlen)
+   {
+ memcpy (dest, s2, destlen);
+   }
+ else
+   {
+ memcpy (dest, s2, len2);
+ memset (dest[len2], ' ', destlen - len2);
+   }
+   }
+
+  And that's exactly what we do here.
+   */
+
+  cond1 = fold_build2 (GE_EXPR, boolean_type_node, lse.string_length, destlen
+  action1 = gfc_build_memcpy_call (dest, lse.expr, destlen);
+
+  gfc_start_block (block1);
+  tmp = gfc_build_memcpy_call (dest, lse.expr, lse.string_length);
+  gfc_add_expr_to_block (block1, tmp);
+  dlen = gfc_create_var (TREE_TYPE (destlen), dlen);
+  d = gfc_create_var (pchar_type_node, d);
+  tmp = fold_build2 (MINUS_EXPR, TREE_TYPE (dlen), destlen, lse.string_length
+  gfc_add_modify_expr (block1, dlen, tmp);
+  tmp = fold_build2 (PLUS_EXPR, pchar_type_node, dest,
+fold_convert (pchar_type_node, lse.string_length));
+  gfc_add_modify_expr (block1, d, tmp);
+
+  gfc_init_block (block2);
+  tmp = gfc_build_memcpy_call (d, rse.expr, rse.string_length);
+  gfc_add_expr_to_block (block2, tmp);
+
+  /* Call to memset.  */
+  args = fold_build2 (PLUS_EXPR, pchar_type_node, d,
+ fold_convert (pchar_type_node, rse.string_length));
+  args = gfc_chainon_list (NULL_TREE, args);
+  args = gfc_chainon_list (args, build_int_cst
+  (gfc_get_int_type (gfc_c_int_kind),
+   

[Bug c++/30716] recursive templates compilation fault

2007-02-06 Thread fang at csl dot cornell dot edu


--- Comment #1 from fang at csl dot cornell dot edu  2007-02-07 00:32 
---
Ahh, exploding recursive templates...
For future reference, you could limit the recursion depth explicitly, using
-ftemplate-depth-n

from a gcc-3.4.0 man page:
Set the maximum instantiation depth for template classes to n.  A limit on the
template instantiation depth is needed to detect endless recursions during
template class instantiation.  ANSI/ISO C++ conforming programs must not rely
on a maximum depth greater than 17.

I think 42 would seem more appropriate than 17, but that is for The Committee
to decide.  :)


-- 

fang at csl dot cornell dot edu changed:

   What|Removed |Added

 CC||fang at csl dot cornell dot
   ||edu


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



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

2007-02-06 Thread schlie at comcast dot net


--- Comment #18 from schlie at comcast dot net  2007-02-07 00:56 ---
Subject: Re:  C++ FE emitting assignments to read-only
 global symbols

for 4.3?


 From: rguenth at gcc dot gnu dot org [EMAIL PROTECTED]
 Reply-To: [EMAIL PROTECTED]
 Date: 5 Feb 2007 22:51:25 -
 To: [EMAIL PROTECTED]
 Subject: [Bug c++/20912] C++ FE emitting assignments to read-only global
 symbols
 
 
 
 --- Comment #17 from rguenth at gcc dot gnu dot org  2007-02-05 22:51
 ---
 ... to mark as WONTFIX.
 
 
 -- 
 
 rguenth at gcc dot gnu dot org changed:
 
What|Removed |Added
 
  Status|REOPENED|RESOLVED
  Resolution||WONTFIX
 
 
 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20912
 
 --- You are receiving this mail because: ---
 You are on the CC list for the bug, or are watching someone who is.


-- 


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



[Bug fortran/30681] obsolescent vs. obsolete

2007-02-06 Thread jvdelisle at gcc dot gnu dot org


--- Comment #3 from jvdelisle at gcc dot gnu dot org  2007-02-07 02:10 
---
From the dictionary:  obsolescent - Going out of use; becoming obsolete; 

So this means its not obsolete yet, and thus still supported.

I will fix this.  Splitting hairs really, but what the heck.


-- 

jvdelisle at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jvdelisle at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-02-07 02:10:57
   date||


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



[Bug c/30724] New: Wrong code from -O2 taking ptr=(struct *)int_proc_parm on x86_64

2007-02-06 Thread schendel at kbcomputer dot com
gcc -v
Using built-in specs.
Target: x86_64-suse-linux
Configured with: ../configure --enable-threads=posix --prefix=/usr
--with-local-prefix=/usr/local --infodir=/usr/share/info
--mandir=/usr/share/man --libdir=/usr/lib64 --libexecdir=/usr/lib64
--enable-languages=c,c++,objc,fortran,java,ada --enable-checking=release
--with-gxx-include-dir=/usr/include/c++/4.1.0 --enable-ssp --disable-libssp
--enable-java-awt=gtk --enable-gtk-cairo --disable-libjava-multilib
--with-slibdir=/lib64 --with-system-zlib --enable-shared --enable-__cxa_atexit
--enable-libstdcxx-allocator=new --without-system-libunwind --with-cpu=generic
--host=x86_64-suse-linux
Thread model: posix
gcc version 4.1.0 (SUSE Linux)

Compile the following with cc -O2, gets wrong code.
If you use -fno-strict-aliasing or -fno-schedule-insns2 it works.
cc -O1 works.  cc -O1 -fstrict-aliaseing -fschedule-insns2 fails.
I might have prioritized this critical except I found the ref to
-fno-strict-aliasing in the 4.1.2rc1 thread...

/* -O2 compiles the fetch of lx_id-id_id before it stores
** external_lx_id into the stack:

movzwl  6(%rsp), %eax   // oops, too soon
movl%edi, 4(%rsp)
testw   %ax, %ax  //  tests garbage

*/

typedef int LG_LXID;
typedef int i4;
typedef unsigned short u_i2;
typedef struct _LG_ID {
u_i2 foo;
u_i2 id_id;
} LG_ID;


void
LGend(
LG_LXID external_lx_id,
i4  flag)
{
LG_ID   *lx_id = (LG_ID*)external_lx_id;

if (lx_id-id_id == 0 || (i4)lx_id-id_id  flag)
printf(barfo);
}


-- 
   Summary: Wrong code from -O2 taking ptr=(struct *)int_proc_parm
on x86_64
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: schendel at kbcomputer dot com


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



[Bug c++/30725] New: compile error when meet with ((A()()))

2007-02-06 Thread lidaobing at gmail dot com
following example file can't compiled

$ cat bug.cpp 
class A{
public:
  bool operator()() const {
return true;
  }
};

int main() {
  if ((A()())) {}
}
$ g++-4.1 -c bug.cpp
bug.cpp: In function ‘int main()’:
bug.cpp:9: error: ‘type name’ declared as function returning a function
bug.cpp:9: error: ‘type name’ declared as function returning a function
$ g++-4.1 --version
g++-4.1 (GCC) 4.1.2 20061212 (prerelease) (Ubuntu 4.1.1-21ubuntu3)
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


-- 
   Summary: compile error when meet with ((A()()))
   Product: gcc
   Version: 4.1.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: lidaobing at gmail dot com


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



[Bug fortran/30681] obsolescent vs. obsolete

2007-02-06 Thread patchapp at dberlin dot org


--- Comment #4 from patchapp at dberlin dot org  2007-02-07 04:30 ---
Subject: Bug number PR30681

A patch for this bug has been added to the patch tracker.
The mailing list url for the patch is
http://gcc.gnu.org/ml/gcc-patches/2007-02/msg00597.html


-- 


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



[Bug c++/30725] compile error when meet with ((A()()))

2007-02-06 Thread fang at csl dot cornell dot edu


--- Comment #1 from fang at csl dot cornell dot edu  2007-02-07 05:04 
---
Workaround:
if (A().operator()()) { }


-- 


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



[Bug c++/30725] compile error when meet with ((A()()))

2007-02-06 Thread fang at csl dot cornell dot edu


--- Comment #2 from fang at csl dot cornell dot edu  2007-02-07 05:05 
---
looks familiar: PR 29234


-- 


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



[Bug c++/30725] compile error when meet with ((A()()))

2007-02-06 Thread lidaobing at gmail dot com


--- Comment #3 from lidaobing at gmail dot com  2007-02-07 05:13 ---


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

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


-- 

lidaobing at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug c++/29234] Call to operator() of temporary object wrongly parsed

2007-02-06 Thread lidaobing at gmail dot com


--- Comment #2 from lidaobing at gmail dot com  2007-02-07 05:13 ---
*** Bug 30725 has been marked as a duplicate of this bug. ***


-- 


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



[Bug c/30724] Wrong code from -O2 taking ptr=(struct *)int_proc_parm on x86_64

2007-02-06 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2007-02-07 06:51 ---
If you use -fno-strict-aliasing and it works, that should tell you something
right there really.

Anyways you are violating C/C++ aliasing rules, see PR 21920.

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


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



  1   2   >