[Bug middle-end/32711] Regression: ICE when using inline asm constraint "X"

2007-07-09 Thread ubizjak at gmail dot com


--- Comment #3 from ubizjak at gmail dot com  2007-07-10 06:46 ---
(In reply to comment #1)
> "X" constraint means anything matches.  Now why we are ICEing is a bit weird

We hit:

  /* We have patterns that allow zero sets of memory, for instance.
 In 64-bit mode, we should probably support all 8-byte vectors,
 since we can in fact encode that into an immediate.  */
  if (GET_CODE (x) == CONST_VECTOR)
{
  gcc_assert (x == CONST0_RTX (GET_MODE (x)));
  x = const0_rtx;
}

It is true that a message would be nice there, but it is also true that X is an
invalid constraint for most (all?) of the instructions.


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WONTFIX


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



[Bug fortran/20520] allocatable arrays used uninitialized without a warning

2007-07-09 Thread dfranke at gcc dot gnu dot org


--- Comment #10 from dfranke at gcc dot gnu dot org  2007-07-10 06:37 
---
*** Bug 32709 has been marked as a duplicate of this bug. ***


-- 


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



[Bug fortran/32709] Diagnose: ALLOCATABLE array used but never ALLOCATEd

2007-07-09 Thread dfranke at gcc dot gnu dot org


--- Comment #1 from dfranke at gcc dot gnu dot org  2007-07-10 06:37 ---


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


-- 

dfranke at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug fortran/32673] Wrongly allowed: Statement function with subobject of constant

2007-07-09 Thread burnus at gcc dot gnu dot org


--- Comment #2 from burnus at gcc dot gnu dot org  2007-07-10 06:23 ---
I think this is indeed no bug. I contacted NAG f95 and if they found something
in the standard which we overlooked, I will reopen this PR.


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug libfortran/32702] [4.3 Regression] crash when printing big character variable

2007-07-09 Thread jvdelisle at gcc dot gnu dot org


--- Comment #4 from jvdelisle at gcc dot gnu dot org  2007-07-10 05:59 
---
Closing


-- 

jvdelisle at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug libfortran/32702] [4.3 Regression] crash when printing big character variable

2007-07-09 Thread jvdelisle at gcc dot gnu dot org


--- Comment #3 from jvdelisle at gcc dot gnu dot org  2007-07-10 05:37 
---
Subject: Bug 32702

Author: jvdelisle
Date: Tue Jul 10 05:37:29 2007
New Revision: 126510

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126510
Log:
2007-07-09  Jerry DeLisle  <[EMAIL PROTECTED]>

PR libgfortran/32702
* io/unix.c (unix_stream): Restore buffer pointer and small_buffer.
(fd_alloc): If the number of bytes needed is greater than the default
BUFFER_SIZE, allocate a new buffer large enough.  Free the old buffer
if
necessary. (fd_sfree): Restore use of buffer pointer.
(fd_close): Likewise. (fd_open): Likewise.
(init_error_stream): Likewise.

Modified:
trunk/libgfortran/ChangeLog
trunk/libgfortran/io/unix.c


-- 


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



[Bug fortran/32157] intrinsic function name conflicts with subroutine if present in the same file

2007-07-09 Thread pault at gcc dot gnu dot org


--- Comment #7 from pault at gcc dot gnu dot org  2007-07-10 05:15 ---
Fixed on trunk

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug fortran/32634] renamed, use associated generic interface rejected

2007-07-09 Thread pault at gcc dot gnu dot org


--- Comment #4 from pault at gcc dot gnu dot org  2007-07-10 05:13 ---
Fixed on trunk.

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED


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



[Bug fortran/32689] [4.3 regression] TRANSFER returns scalar, even if MOLD is an array

2007-07-09 Thread pault at gcc dot gnu dot org


--- Comment #4 from pault at gcc dot gnu dot org  2007-07-10 05:12 ---
Fixed

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug fortran/32689] [4.3 regression] TRANSFER returns scalar, even if MOLD is an array

2007-07-09 Thread pault at gcc dot gnu dot org


--- Comment #3 from pault at gcc dot gnu dot org  2007-07-10 05:11 ---
Subject: Bug 32689

Author: pault
Date: Tue Jul 10 05:11:00 2007
New Revision: 126509

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126509
Log:
2007-07-10  Paul Thomas  <[EMAIL PROTECTED]>

PR fortran/32157
* resolve.c (is_external_proc): New function.  Adds test that
the symbol is not an intrinsic procedure.
* (resolve_function, resolve_call): Replace logical statements
with call to is_external_proc.

PR fortran/32689
* simplify.c (gfc_simplify_transfer): If mold has rank, the
result is an array.

PR fortran/32634
* module.c (write_generic): Write the local name of the
interface. 


2007-07-10  Paul Thomas  <[EMAIL PROTECTED]>

PR fortran/32157
* gfortran.dg/overload_2.f90: New test.

PR fortran/32689
* gfortran.dg/transfer_simplify_5.f90

PR fortran/32634
* gfortran.dg/interface_15.f90: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/interface_16.f90
trunk/gcc/testsuite/gfortran.dg/overload_2.f90
trunk/gcc/testsuite/gfortran.dg/transfer_simplify_5.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/module.c
trunk/gcc/fortran/resolve.c
trunk/gcc/fortran/simplify.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug fortran/32634] renamed, use associated generic interface rejected

2007-07-09 Thread pault at gcc dot gnu dot org


--- Comment #3 from pault at gcc dot gnu dot org  2007-07-10 05:11 ---
Subject: Bug 32634

Author: pault
Date: Tue Jul 10 05:11:00 2007
New Revision: 126509

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126509
Log:
2007-07-10  Paul Thomas  <[EMAIL PROTECTED]>

PR fortran/32157
* resolve.c (is_external_proc): New function.  Adds test that
the symbol is not an intrinsic procedure.
* (resolve_function, resolve_call): Replace logical statements
with call to is_external_proc.

PR fortran/32689
* simplify.c (gfc_simplify_transfer): If mold has rank, the
result is an array.

PR fortran/32634
* module.c (write_generic): Write the local name of the
interface. 


2007-07-10  Paul Thomas  <[EMAIL PROTECTED]>

PR fortran/32157
* gfortran.dg/overload_2.f90: New test.

PR fortran/32689
* gfortran.dg/transfer_simplify_5.f90

PR fortran/32634
* gfortran.dg/interface_15.f90: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/interface_16.f90
trunk/gcc/testsuite/gfortran.dg/overload_2.f90
trunk/gcc/testsuite/gfortran.dg/transfer_simplify_5.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/module.c
trunk/gcc/fortran/resolve.c
trunk/gcc/fortran/simplify.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug fortran/32157] intrinsic function name conflicts with subroutine if present in the same file

2007-07-09 Thread pault at gcc dot gnu dot org


--- Comment #6 from pault at gcc dot gnu dot org  2007-07-10 05:11 ---
Subject: Bug 32157

Author: pault
Date: Tue Jul 10 05:11:00 2007
New Revision: 126509

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126509
Log:
2007-07-10  Paul Thomas  <[EMAIL PROTECTED]>

PR fortran/32157
* resolve.c (is_external_proc): New function.  Adds test that
the symbol is not an intrinsic procedure.
* (resolve_function, resolve_call): Replace logical statements
with call to is_external_proc.

PR fortran/32689
* simplify.c (gfc_simplify_transfer): If mold has rank, the
result is an array.

PR fortran/32634
* module.c (write_generic): Write the local name of the
interface. 


2007-07-10  Paul Thomas  <[EMAIL PROTECTED]>

PR fortran/32157
* gfortran.dg/overload_2.f90: New test.

PR fortran/32689
* gfortran.dg/transfer_simplify_5.f90

PR fortran/32634
* gfortran.dg/interface_15.f90: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/interface_16.f90
trunk/gcc/testsuite/gfortran.dg/overload_2.f90
trunk/gcc/testsuite/gfortran.dg/transfer_simplify_5.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/module.c
trunk/gcc/fortran/resolve.c
trunk/gcc/fortran/simplify.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug libstdc++/32683] Compiling HPCToolkit causes many errors and warnings using GCC 4.3 (but not prior versions)

2007-07-09 Thread rob1weld at aol dot com


--- Comment #7 from rob1weld at aol dot com  2007-07-10 04:55 ---
>--- Comment #3 From Paolo Carlini 2007-07-09 08:43 [reply] --- 
>Note that in 4.3 the header dependencies have been streamlined and it's well
>possible that some projects around are failing to include required headers. 
>Please double check in this light, thanks.

In _some_ cases that is true "some projects around are failing to include
required headers".


In _other_ cases the problem is that GCC 4.3 has re-ordered the resulting
inclusion sequence by not "polluting" (if that is how you feel about it) some
files with _assumed_ excess header files.

The lack of these _assumed_ excess header files early in the resulting ".ii"
file is causing the undefined errors. Since the "new" GCC 4.3 headers are
'light' (no extra baggage) the include _may_ get used later (in _some_ cases a
'popular' include (like types.h) is _bound_ to be included, in many cases).

Since all correctly written .h (or .hpp) files use [ "#ifndef X_H" "#define
X_H" "Eendif" ] to surround themselves (and avoid being included twice) in
the case of removing "sys/types.h" (and likely a couple of others) we have a
situation that causes breakage rather than actually lightening the resulting .h
(or .hpp) file. It would make the resulting object file no smaller either.


Here is an example:


I compiled the files using -save-temps and renamed the ".ii" files by GCC
version. Here is a comparison of the files produced by GCC 4.1 and GCC 4.3:


In file OAInterface_4.1.ii we have this:

/* Line 5955 */
# 1 "/usr/include/sys/types.h" 1 3 4
/* Line 6022 */
typedef unsigned short int ushort;
/* Line 39661 */
  ushort insnSize;



In file OAInterface_4.3.ii we have this:

/* Line 28636 */
  ushort insnSize;
/* Line 33996 */
# 1 "/usr/include/sys/types.h" 1 3 4
/* Line 34063 */
typedef unsigned short int ushort;



Notice that the file "/usr/include/sys/types.h" has it's line number ONE on
line number 5955 using version 4.1, but it is on line 33996 using 4.3 !

The omission of "/usr/include/sys/types.h" from one of the includes in 4.3
(where it was present in 4.1) means that it eventually gets picked up by a 
later include file (in 4.3) and appears too late (after it is neccesary).

This means that source code that worked previously with 4.1 (or older) will
need their local source include files line numbers permutated to occur after
the inclusion of what GCC 4.3 _might_ define in a particular include file and
prior to what any later includes _might_ need defined by that particular local
include.

Simply placing the local includes last in the list of all included files (at
the
top of the source file, assuming that "#include" does not occur later in the
file (like it sometimes does in GCC)) will not always work since the include
files sometimes use defines that activate features used in later includes.

That is a "travelling salesman" problem _BUT_ in addition you need to know
how to alter each "salesman's" wares (not part of the clasical "TS" problem).
That means it is very time consuming; in case what I am saying is unclear.


I don't use C++ much (and know how to fix this) so one of you is welcome to
"Reopen bug" or "Leave as RESOLVED INVALID" - since I did not change the
setting.


I thank you both and appreciate your expert advice on this matter. If this is
how C++ is "really supposed to be" then it is technically correct to leave this
and let the world deal with it's problem. I'm not working the tech support
lines. :)


-- 


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



[Bug libstdc++/32683] Compiling HPCToolkit causes many errors and warnings using GCC 4.3 (but not prior versions)

2007-07-09 Thread rob1weld at aol dot com


--- Comment #6 from rob1weld at aol dot com  2007-07-10 04:31 ---
>Comment #5 From Paolo Carlini 2007-07-09 21:19 [reply] --- 
>The last issue simply doesn't make sense.

On page http://gcc.gnu.org/bugs.html#need it says:

"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)."


What part of number two is confusing?


-- 


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



[Bug c++/32676] [cxx0x branch] incorrect member address when using delegate constructors and virtual inheritance

2007-07-09 Thread pedro dot lamarao at mndfck dot org


--- Comment #1 from pedro dot lamarao at mndfck dot org  2007-07-10 01:33 
---
Just to note I'm aware of the bug.
I'll take a look at it soon but unfortunately not too soon.


-- 


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



[Bug rtl-optimization/32664] [sh] ICE in create_pre_exit, at mode-switching.c:373

2007-07-09 Thread kkojima at gcc dot gnu dot org


--- Comment #4 from kkojima at gcc dot gnu dot org  2007-07-10 01:02 ---
Fixed.


-- 

kkojima at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug rtl-optimization/32664] [sh] ICE in create_pre_exit, at mode-switching.c:373

2007-07-09 Thread kkojima at gcc dot gnu dot org


--- Comment #3 from kkojima at gcc dot gnu dot org  2007-07-10 01:01 ---
Subject: Bug 32664

Author: kkojima
Date: Tue Jul 10 01:01:11 2007
New Revision: 126507

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126507
Log:
PR rtl-optimization/32664
* mode-switching.c (create_pre_exit): Skip barrier insns.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/mode-switching.c


-- 


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



[Bug libfortran/32702] [4.3 Regression] crash when printing big character variable

2007-07-09 Thread jvdelisle at gcc dot gnu dot org


--- Comment #2 from jvdelisle at gcc dot gnu dot org  2007-07-10 00:39 
---
Got it.


-- 

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|NEW |ASSIGNED
   Last reconfirmed|2007-07-09 15:10:11 |2007-07-10 00:39:56
   date||


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



[Bug middle-end/32398] [4.3 Regression] checking for suffix of object files... configure: error: cannot compute suffix of f object files: cannot compile

2007-07-09 Thread dave at hiauly1 dot hia dot nrc dot ca


--- Comment #19 from dave at hiauly1 dot hia dot nrc dot ca  2007-07-10 
00:04 ---
Subject: Re:  [4.3 Regression] checking for suffix of object files...
configure: error: cannot compute suffix of f obje

> The problem that i have is it the argument pointer does not have a fixed
> value.  it is assigned to a hard register sometimes during reload.

Function.c generates an insn to copy it to a pseudo during rtl
expansion.  This is the so called internal argument pointer.  It
is assigned a hard register during reload.

A copy is needed because the incoming argument pointer is a call
clobbered register.  The register used for the incoming argument
pointer never changes.  After the copy is made, the compiler is
free to make whatever use it wants of the argument pointer register.

If the internal argument pointer was removed, we would have to copy
the incoming argument pointer to a fixed register in the prologue,
or save and restore the argument pointer register across calls.
I'm not sure either of these approaches is an improvement over what
we have now.

When a call is made, the pa call expander emits insns to load the
argument pointer suitably for the call using virtual_outgoing_args_rtx.
We don't restore the argument pointer after a call.  However,
we do this for the PIC register.

The thinking behind the current approach is that accesses to the
argument block are much less frequent than accesses using the
PIC register.  Typically, the argument pointer is only needed for
calls which have more than eight arguments or for va_args.  The
generic copy method has always worked reasonably well although
there are some tail call optimizations that don't occur when it is
used.

It probably would be possible to handle the argument pointer in
a manner similar to the way we handle the PIC register.  This is
a bit tricky.  The details of regarding the handling of the argument
pointer would have to be hidden until after reload.  We have some
ugly post-reload splitters to handle this for the PIC register.
The downside is we lose the use of a register when we don't need
an argument pointer.

I have the impression that you are confused about the reason the
argument pointer isn't fixed.  Reload doesn't modify its incoming
value.  Reload also can't eliminate it because it there isn't a
fixed relationship to the stack pointer (or the frame pointer).
So, reload doesn't affect its liveness.

Dave


-- 


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



[Bug middle-end/32711] Regression: ICE when using inline asm constraint "X"

2007-07-09 Thread scovich at gmail dot com


--- Comment #2 from scovich at gmail dot com  2007-07-09 23:27 ---
(In reply to comment #1)
> "X" constraint means anything matches.  Now why we are ICEing is a bit weird.

I started using it because "g" doesn't seem to allow xmm references.
Fortunately, "xm" seems to have the desired effect.


-- 


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



[Bug libstdc++/32261] Thread race segfault in std::string::append with -O and -s

2007-07-09 Thread appfault at hotmail dot com


--- Comment #11 from appfault at hotmail dot com  2007-07-09 23:21 ---
I've been unable to reproduce any issues in 3.4.6, even with tests that do not
rely on the empty string.  I suspect there is something more specific that was
fixed somewhere between 3.3.x and 3.4.6.

It doesn't seem appropriate to have marked this as a dupe of bug 21334, since
bug 21334 has had no code changes made, but clearly a code change was made at
some point to fix the comment 0 report.

I recommend the comment 0 test be added to the gcc regression test suite, after
which this zilla could be reclassified as 'fixed'.


-- 


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



[Bug middle-end/32711] Regression: ICE when using inline asm constraint "X"

2007-07-09 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2007-07-09 22:59 ---
"X" constraint means anything matches.  Now why we are ICEing is a bit weird.


-- 


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



[Bug middle-end/32711] New: Regression: ICE when using inline asm constraint "X"

2007-07-09 Thread scovich at gmail dot com
Compiling the following functions with gcc-4.{1,2,3} results in an ICE.
gcc-3.4.4 does not ICE:

#include 
static inline
__m128i my_asm(__m128i a, __m128i b) {
   __m128i result;
   asm("pshufb\t%1,%0" : "=x"(result) : "X"(b), "0"(a));
   return result;
}
__m128i foo(__m128i src) {
  return my_asm(src, _mm_set1_epi32(1));
}

If the inline asm is called directly (not through an inline function) or if the
"X" constraint changes to "mx" everything works fine.


-- 
   Summary: Regression: ICE when using inline asm constraint "X"
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: scovich at gmail dot com
GCC target triplet: x86_64-linux-gnu


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



[Bug fortran/32665] allocatable array on lhs deleted while still in use on rhs

2007-07-09 Thread pault at gcc dot gnu dot org


--- Comment #1 from pault at gcc dot gnu dot org  2007-07-09 22:42 ---
Oh dear - that's right.  I feel a temporary coming on!

Paul


-- 

pault 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-07-09 22:42:47
   date||


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



[Bug fortran/32682] [4.3 Regression] ICE in gfc_trans_array_constructor, at fortran/trans-array.c:1664

2007-07-09 Thread pault at gcc dot gnu dot org


--- Comment #3 from pault at gcc dot gnu dot org  2007-07-09 22:40 ---
(In reply to comment #2)

Whilst I agree that this is a regession, it is so because an underlying bug is
exposed - in other words, r124541 is perfectly correct.

The following also fails:

program matrix

implicit none
real,dimension(2,2),parameter::c=reshape((/1,2,3,4/),(/2,2/))
real,dimension(2,2)::m

m=f()+c
m=c+f()
call sub(m+f())
call sub(c+m)
call sub(f()+c)
call sub(c+f())

contains

  function f()
implicit none
real, dimension(2,2)::f
f=0
  end function f

  subroutine sub(a)
implicit none
real, dimension(2,2)::a
print *, a
  end subroutine sub

end program matrix

which was not affected by the above patch.

This fixes both versions of the bug:

Index: gcc/fortran/trans-array.c
===
*** gcc/fortran/trans-array.c   (revision 126461)
--- gcc/fortran/trans-array.c   (working copy)
*** gfc_trans_array_constructor (gfc_loopinf
*** 1656,1661 
--- 1656,1673 

/* See if the constructor determines the loop bounds.  */
dynamic = false;
+
+   if (ss->expr->shape && loop->to[0] == NULL_TREE)
+ {
+   int n;
+   for (n = 0; n < ss->expr->rank; n++)
+   {
+ loop->to[n] = gfc_conv_mpz_to_tree (ss->expr->shape [n],
+ gfc_index_integer_kind);
+ loop->from[n] = gfc_index_zero_node;
+   }
+ }
+
if (loop->to[0] == NULL_TREE)
  {
mpz_t size;

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |pault at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2007-07-09 06:01:16 |2007-07-09 22:40:38
   date||


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



[Bug libfortran/32336] matmul: flag runtime- instead of assertation error

2007-07-09 Thread tkoenig at gcc dot gnu dot org


--- Comment #5 from tkoenig at gcc dot gnu dot org  2007-07-09 22:35 ---
Fixed on trunk.  Closing.


-- 

tkoenig at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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



[Bug libfortran/32336] matmul: flag runtime- instead of assertation error

2007-07-09 Thread tkoenig at gcc dot gnu dot org


--- Comment #4 from tkoenig at gcc dot gnu dot org  2007-07-09 22:35 ---
Subject: Bug 32336

Author: tkoenig
Date: Mon Jul  9 22:34:43 2007
New Revision: 126498

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126498
Log:
2007-07-09  Thomas Koenig  <[EMAIL PROTECTED]>

PR libfortran/32336
* m4/matmul.m4:  When the dimension of b is incorrect,
raise a runtime error instead of a failed assertion.
* generated/matmul_i1.c:  Regenerated.
* generated/matmul_i2.c:  Regenerated.
* generated/matmul_i4.c:  Regenerated.
* generated/matmul_i8.c:  Regenerated.
* generated/matmul_i16.c:  Regenerated.
* generated/matmul_r4.c:  Regenerated.
* generated/matmul_r8.c:  Regenerated.
* generated/matmul_r10.c:  Regenerated.
* generated/matmul_r16.c:  Regenerated.

2007-07-09  Thomas Koenig  <[EMAIL PROTECTED]>

PR libfortran/32336
* gfortran.dg/matmul_5.f90:  New test case.


Added:
trunk/gcc/testsuite/gfortran.dg/matmul_5.f90
Modified:
trunk/gcc/testsuite/ChangeLog
trunk/libgfortran/ChangeLog
trunk/libgfortran/generated/matmul_c10.c
trunk/libgfortran/generated/matmul_c16.c
trunk/libgfortran/generated/matmul_c4.c
trunk/libgfortran/generated/matmul_c8.c
trunk/libgfortran/generated/matmul_i1.c
trunk/libgfortran/generated/matmul_i16.c
trunk/libgfortran/generated/matmul_i2.c
trunk/libgfortran/generated/matmul_i4.c
trunk/libgfortran/generated/matmul_i8.c
trunk/libgfortran/generated/matmul_r10.c
trunk/libgfortran/generated/matmul_r16.c
trunk/libgfortran/generated/matmul_r4.c
trunk/libgfortran/generated/matmul_r8.c
trunk/libgfortran/m4/matmul.m4


-- 


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



[Bug fortran/32710] ICE: namelist and subroutine with the same name

2007-07-09 Thread burnus at gcc dot gnu dot org


--- Comment #2 from burnus at gcc dot gnu dot org  2007-07-09 22:34 ---
If one moves "subroutine name()" before "readinput", valgrind shows no
problems. (And no ICE occurs with 4.2 and 4.1.)

This occures for dt->namelist->name, which is "name" (len 4)
==18422==at 0x4A3FB2: build_dt (trans-io.c:1592)


-- 


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



[Bug middle-end/32398] [4.3 Regression] checking for suffix of object files... configure: error: cannot compute suffix of f object files: cannot compile

2007-07-09 Thread zadeck at naturalbridge dot com


--- Comment #18 from zadeck at naturalbridge dot com  2007-07-09 22:28 
---
Subject: Re:  [4.3 Regression] checking for suffix of
 object files... configure: error: cannot compute suffix of f object files:
 cannot compile

dave at hiauly1 dot hia dot nrc dot ca wrote:
> --- Comment #17 from dave at hiauly1 dot hia dot nrc dot ca  2007-07-09 
> 22:01 ---
> Subject: Re:  [4.3 Regression] checking for suffix of object files...
> configure: error: cannot compute suffix of f obje
>
>   
>> --- Comment #16 from bonzini at gnu dot org  2007-07-09 21:04 ---
>> Looking out of the box, why can't we add it always, the same as we do with 
>> the
>> frame and stack pointer??  I wonder if the fixed/variable thing is a red
>> herring.
>> 
>
> From an ABI standpoint, the stack and argument pointers are equivalent.
> They are both passed in hardware registers and they both point to places
> on the stack on function entry.  The argument pointer is *always* live
> when a function is entered and this never changes, even if it isn't used.
> So, from my standpoint, it seems reasonable to add it always (at least
> for hppa64).
>
> However, I believe Kenny would like a solution that avoids having to
> set the register as live in the entry defs (i.e., he would like to move
> away from having entry defs, etc).
>
> Dave
>
>   
The problem that i have is it the argument pointer does not have a fixed
value.  it is assigned to a hard register sometimes during reload.

kenny


-- 


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



[Bug fortran/29459] Spurious warning about uninitialized optional arguments

2007-07-09 Thread fxcoudert at gcc dot gnu dot org


--- Comment #6 from fxcoudert at gcc dot gnu dot org  2007-07-09 22:03 
---
With the initial testcase:

module foo_mod
implicit none
contains
subroutine print_sub(fmt_acf,iu,labels)
character (len=*), intent(in), optional :: fmt_acf
integer  , intent(in), optional :: iu
character (len=*), intent(in), optional :: labels(:)
if (present(iu)) then
   print*,iu
end if
if (present(fmt_acf)) then
   print*,fmt_acf
end if
if (present(labels)) then
   write (*,*) labels
end if
end subroutine print_sub
!
end module foo_mod

we still have the following warning with -O1 -Wall:
u.f90: In function ‘print_sub’:
u.f90:4: warning: ‘’ may be used uninitialized in this function


-- 

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
   Keywords|patch   |


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



[Bug middle-end/32398] [4.3 Regression] checking for suffix of object files... configure: error: cannot compute suffix of f object files: cannot compile

2007-07-09 Thread dave at hiauly1 dot hia dot nrc dot ca


--- Comment #17 from dave at hiauly1 dot hia dot nrc dot ca  2007-07-09 
22:01 ---
Subject: Re:  [4.3 Regression] checking for suffix of object files...
configure: error: cannot compute suffix of f obje

> --- Comment #16 from bonzini at gnu dot org  2007-07-09 21:04 ---
> Looking out of the box, why can't we add it always, the same as we do with the
> frame and stack pointer??  I wonder if the fixed/variable thing is a red
> herring.

>From an ABI standpoint, the stack and argument pointers are equivalent.
They are both passed in hardware registers and they both point to places
on the stack on function entry.  The argument pointer is *always* live
when a function is entered and this never changes, even if it isn't used.
So, from my standpoint, it seems reasonable to add it always (at least
for hppa64).

However, I believe Kenny would like a solution that avoids having to
set the register as live in the entry defs (i.e., he would like to move
away from having entry defs, etc).

Dave


-- 


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



[Bug fortran/29459] Spurious warning about uninitialized optional arguments

2007-07-09 Thread fxcoudert at gcc dot gnu dot org


--- Comment #5 from fxcoudert at gcc dot gnu dot org  2007-07-09 22:01 
---
Subject: Bug 29459

Author: fxcoudert
Date: Mon Jul  9 22:00:52 2007
New Revision: 126496

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126496
Log:
PR fortran/29459
* trans-array.c (gfc_trans_array_constructor): Mark offset field
with TREE_NO_WARNING.
* trans-decl.c (gfc_build_qualified_array): Mark lbound, ubound,
stride and size variables with TREE_NO_WARNING.

Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/trans-array.c
trunk/gcc/fortran/trans-decl.c


-- 


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



[Bug fortran/32710] ICE: namelist and subroutine with the same name

2007-07-09 Thread burnus at gcc dot gnu dot org


--- Comment #1 from burnus at gcc dot gnu dot org  2007-07-09 21:57 ---
Works for me with 4.3.0; I can reproduce the ICE with 4.2 and 4.1.

valgrind with 4.3.0 shows:
==18422== Invalid read of size 8
==18422==at 0x4A3FB2: build_dt (trans-io.c:1592)
==18422==by 0x47819E: gfc_trans_code (trans.c:670)
==18422==by 0x48CCFE: gfc_generate_function_code (trans-decl.c:3224)
==18422==by 0x48CF84: gfc_generate_function_code (trans-decl.c:2838)
==18422==by 0x44E0C3: gfc_parse_file (parse.c:3279)
==18422==by 0x47279D: gfc_be_parse_file (f95-lang.c:301)
==18422==by 0x6B3733: toplev_main (toplev.c:1051)
==18422==by 0x52BEB43: (below main) (in /lib64/libc-2.6.so)
==18422==  Address 0x40E1F50 is 0 bytes inside a block of size 392 free'd
==18422==at 0x4C2291B: free (in
/usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==18422==by 0x44BBBA: gfc_fixup_sibling_symbols (parse.c:2774)
==18422==by 0x44DAD4: parse_contained (parse.c:2858)
==18422==by 0x44DDEC: parse_progunit (parse.c:2980)
==18422==by 0x44E094: gfc_parse_file (parse.c:3217)
==18422==by 0x47279D: gfc_be_parse_file (f95-lang.c:301)
==18422==by 0x6B3733: toplev_main (toplev.c:1051)
==18422==by 0x52BEB43: (below main) (in /lib64/libc-2.6.so)


-- 

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
   Last reconfirmed|-00-00 00:00:00 |2007-07-09 21:57:56
   date||
   Target Milestone|--- |4.3.0


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



[Bug fortran/32710] New: ICE: namelist and subroutine with the same name

2007-07-09 Thread jaydub66 at gmail dot com
program samename

contains


  subroutine readInput
implicit none
integer:: a,b,c
NAMELIST /name/ a,b,c
read(5,nml=name)
  end subroutine readInput


  subroutine name()

  end subroutine name


end program


this code fails with the following error (gfortran 4.3 and 4.1.3):

samename.f90: In function ‘readinput’:
samename.f90:6: internal compiler error: Segmentation fault

for gfortran 4.2 the error message is:

samename.f90: In function ‘readinput’:
samename.f90:6: internal compiler error: in gfc_typenode_for_spec, at
fortran/trans-types.c:693


just defining the namelist works fine, only the read statement triggers the ICE


-- 
   Summary: ICE: namelist and subroutine with the same name
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: jaydub66 at gmail dot com


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



[Bug fortran/32689] [4.3 regression] TRANSFER returns scalar, even if MOLD is an array

2007-07-09 Thread pault at gcc dot gnu dot org


--- Comment #2 from pault at gcc dot gnu dot org  2007-07-09 21:33 ---
(In reply to comment #1)

How wierd and wonderful - whilst it is a regression, it is only just; given the
timing of gfc_array_transfer and gfc_simplify_transfer, the latter undid the
former by only a few months or so:)

Really galling is that Brooks and I missed this case and that the fix is so
very easy *sigh*

Index: gcc/fortran/simplify.c
===
*** gcc/fortran/simplify.c  (revision 126461)
--- gcc/fortran/simplify.c  (working copy)
*** gfc_simplify_transfer (gfc_expr *source,
*** 3924,3930 

/* Set the number of elements in the result, and determine its size.  */
result_elt_size = gfc_target_expr_size (mold_element);
!   if (mold->expr_type == EXPR_ARRAY || size)
  {
int result_length;

--- 3924,3930 

/* Set the number of elements in the result, and determine its size.  */
result_elt_size = gfc_target_expr_size (mold_element);
!   if (mold->expr_type == EXPR_ARRAY || mold->rank || size)
  {
int result_length;

I will commit this tomorrow morning, with two other "obvious" patches, after
regtesting.

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |pault at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2007-07-09 09:10:41 |2007-07-09 21:33:26
   date||


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



[Bug libstdc++/32683] Compiling HPCToolkit causes many errors and warnings using GCC 4.3 (but not prior versions)

2007-07-09 Thread pcarlini at suse dot de


--- Comment #5 from pcarlini at suse dot de  2007-07-09 21:19 ---
(In reply to comment #4)
> >Comment #2 From Andrew Pinski 2007-07-09 02:53 [reply] --- 
> >No include for  or .
> 
> Andrew, I'm not an expert at C++ but I did my best to attempt to make a couple
> of reduced testcases where I felt I was able. BOTH those testcases _do_ use
> "#include ".

That header has *nothing* to do with  and 

> There exists TWO issues not dealt with in your replies (see above):
> 
> 1): "There is something about the way GCC 4.3 builds "gij" that does not let 
> it
> run .jar files that work perfectly on the WinXP platform with Internet
> Explorer."
> 
> 2): The ".ii" files that GCC produces are not 'all inclusive' - you can't move
> them and then simply compile them in a different directory (like ".i" files).
> How are we supposed to create an ".ii" file and attach it for an expert to
> study? (as is suggested we do for "C" errors and ".i" files). Maybe the
> streamlining has caused this

The last issue simply doesn't make sense. The former at best is a separate Java
issue.


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||INVALID


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



[Bug fortran/32709] New: Diagnose: ALLOCATABLE array used but never ALLOCATEd

2007-07-09 Thread burnus at gcc dot gnu dot org
NAG f95 does:
Error: foo.f90, line 45: ALLOCATABLE array NCOSET used but never ALLOCATEd

gfortran does not detect this. Testcase, see PR 31683.


-- 
   Summary: Diagnose: ALLOCATABLE array used but never ALLOCATEd
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: diagnostic
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org


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



[Bug middle-end/32708] New: _mm_cvtsi64x_si128() and _mm_cvtsi128_si64x() inefficient

2007-07-09 Thread scovich at gmail dot com
Consider the following functions (compiled with "g++-4.1.2 -msse3 -O3"):
#include 
__m128i int2vector(int i) { return _mm_cvtsi32_si128(i); }
int vector2int(__m128i i) { return _mm_cvtsi128_32(i); }
__m128i long2vector(long long i) { return _mm_cvtsi64x_si128(i); }
long long vector2long(__m128i) { return _mm_cvtsi128_si64x(i); }

They become:

_Z10int2vectori:
movd%edi, %xmm0
ret
_Z10vector2intU8__vectorx:
movd%xmm0, %rax
movq%xmm0, -16(%rsp)
ret
_Z11long2vectorx:
movd%rdi, %mm0
movq%rdi, -8(%rsp)
movq2dq %mm0, %xmm0
ret
_Z11vector2longU8__vectorx:
movd%xmm0, %rax
movq%xmm0, -16(%rsp)
ret

long2vector() should use a simple MOVQ instruction the way int2vector() uses
MOVD. It appears that the reason for the stack access is that the original code
used a reg64->mem->mm->xmm path, which the optimizer partly noticed;
gcc-4.3-20070617 leaves the full path in place.

Also, do the vector2() functions really need to access the stack?

Finally, I've noticed several places where instructions involving 64-bit values
use the "d/l" suffix (e.g. "long i = 0" ==> "xorl %eax, %eax"), or 32-bit
operations that use 64-bit registers (e.g. "movd %xmm0, %rax" above). Are those
generally features, bugs, or a "who cares?"


-- 
   Summary: _mm_cvtsi64x_si128() and _mm_cvtsi128_si64x()
inefficient
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: scovich at gmail dot com
GCC target triplet: x86_64-linux-gnu


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



[Bug middle-end/32398] [4.3 Regression] checking for suffix of object files... configure: error: cannot compute suffix of f object files: cannot compile

2007-07-09 Thread bonzini at gnu dot org


--- Comment #16 from bonzini at gnu dot org  2007-07-09 21:04 ---
Looking out of the box, why can't we add it always, the same as we do with the
frame and stack pointer??  I wonder if the fixed/variable thing is a red
herring.


-- 


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



[Bug libstdc++/32683] Compiling HPCToolkit causes many errors and warnings using GCC 4.3 (but not prior versions)

2007-07-09 Thread rob1weld at aol dot com


--- Comment #4 from rob1weld at aol dot com  2007-07-09 21:01 ---
>Comment #2 From Andrew Pinski 2007-07-09 02:53 [reply] --- 
>No include for  or .

Andrew, I'm not an expert at C++ but I did my best to attempt to make a couple
of reduced testcases where I felt I was able. BOTH those testcases _do_ use
"#include ". In addition both my testcases (and HPCToolkit) compile
with versions of GCC < 4.3 .


> All of these look like missing includes in the source

No. (my testcases are not.) (see answer to Paolo below).


> and nothing wrong with GCC 4.3.0.

Maybe. Either GCC 4.3 is incorrect and all the prior versions are OK, _or_ the
other way around. Between the people at Rice and you, you know more about C++
than me.


>Comment #3 From Paolo Carlini 2007-07-09 08:43 [reply] --- 
>Note that in 4.3 the header dependencies have been streamlined and it's well
>possible that some projects around are failing to include required headers. 
>Please double check in this light, thanks.

I'm building 4.2.1 (with concept checking off) so I can build HPCToolkit
without any trouble. While that is running I'll open another window and go back
and play with HPCToolkit some more (using 4.3).


>dependencies have been streamlined 
That will break a lot of code.

Asuming that 4.3 is adhearing to _all_ C++ standards correctly and that
HPCToolkit (and many other programs) are poorly written it would be kind to
have a "-fuse-old-headers" switch.

Fixing versions of GCC < 4.3 to have correct header dependancies would only
cause more programs to fail to compile. That's not 'our' fault but sometimes we
need to be accomidating (Look at all the switches in gcc.info 'C++ Dialect
Options' we have just to be compatible with old code - may need one more).


There exists TWO issues not dealt with in your replies (see above):

1): "There is something about the way GCC 4.3 builds "gij" that does not let it
run .jar files that work perfectly on the WinXP platform with Internet
Explorer."

2): The ".ii" files that GCC produces are not 'all inclusive' - you can't move
them and then simply compile them in a different directory (like ".i" files).
How are we supposed to create an ".ii" file and attach it for an expert to
study? (as is suggested we do for "C" errors and ".i" files). Maybe the
streamlining has caused this.


Paolo, I'm doing that now. Back before tommorrow.


-- 


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



[Bug bootstrap/32690] 4.2.1 Bootstrap fails - gcc-4_2-branch/boehm-gc/ltconfig: No such file or directory

2007-07-09 Thread rob1weld at aol dot com


--- Comment #1 from rob1weld at aol dot com  2007-07-09 20:27 ---
A few hours later and it failed for want of ltcf-c.sh and ltcf-cxx.sh. I ran
gcc_update again and that fixed the configure / makefile problem of not copying
those files over.

There is still the annoyance of the build re-starting too far back and using
"rm -f stage_current" / "rm -rf stagefeedback-*" - even if you only type just
"make" (instead of "make profiledbootstrap").

It would be better if the build made it as far as the libraries then it would
not try to remake the 'use feedback' stages and simply continue the libraries
where it left off.


-- 


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



[Bug tree-optimization/32698] [4.3 regression] inefficient pointer expression

2007-07-09 Thread rguenth at gcc dot gnu dot org


--- Comment #9 from rguenth at gcc dot gnu dot org  2007-07-09 19:42 ---
Subject: Bug 32698

Author: rguenth
Date: Mon Jul  9 19:41:54 2007
New Revision: 126494

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126494
Log:
2007-07-09  Richard Guenther  <[EMAIL PROTECTED]>

PR middle-end/32698
* fold-const.c (fold_plusminus_mult_expr): Move constant
arguments second to allow decomposing.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/fold-const.c


-- 


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



[Bug c/32692] Inconsistent warning/error with static and non-static declarations

2007-07-09 Thread geoffk at gcc dot gnu dot org


--- Comment #4 from geoffk at gcc dot gnu dot org  2007-07-09 19:34 ---
'external linkage' is not the same thing as 'the declaration contains the
keyword "extern"'.


-- 


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



[Bug debug/23551] dwarf records for inlines appear incomplete

2007-07-09 Thread aoliva at gcc dot gnu dot org


--- Comment #18 from aoliva at gcc dot gnu dot org  2007-07-09 19:24 ---
Subject: Bug 23551

Author: aoliva
Date: Mon Jul  9 19:24:23 2007
New Revision: 126492

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126492
Log:
Revert:
2007-07-06  Alexandre Oliva  <[EMAIL PROTECTED]>
PR debug/23551
* tree-ssa-copyrename.c (copy_rename_partition_coalesce):
Disregard DECL_FROM_INLINE.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-ssa-copyrename.c


-- 


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



[Bug target/27855] reassociation pass produces ~30% slower matrix multiplication code

2007-07-09 Thread uros at gcc dot gnu dot org


--- Comment #16 from uros at gcc dot gnu dot org  2007-07-09 19:22 ---
Subject: Bug 27855

Author: uros
Date: Mon Jul  9 19:22:03 2007
New Revision: 126491

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126491
Log:
PR target/27855
* doc/extend.texi: Add ftree-reassoc flag.
* common.opt (ftree-reassoc): New flag.
* tree-ssa-reassoc.c (gate_tree_ssa_reassoc): New static function.
(struct tree_opt_pass pass_reassoc): Use gate_tree_ssa_reassoc.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/common.opt
trunk/gcc/doc/invoke.texi
trunk/gcc/tree-ssa-reassoc.c


-- 


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



[Bug fortran/32682] [4.3 Regression] ICE in gfc_trans_array_constructor, at fortran/trans-array.c:1664

2007-07-09 Thread jaydub66 at gmail dot com


--- Comment #2 from jaydub66 at gmail dot com  2007-07-09 19:17 ---
I checked it: The ICE is really introduced by rev. 124541.

> r124541 | pault | 2007-05-08 13:58:25 +0200 (Tue, 08 May 2007) | 18 lines
> PR 29397, PR 29400
> * decl.c (add_init_expr_to_sym): Expand a scalar initializer
> for a parameter array into an array expression with the right
> shape.
> * array.c (spec_dimen_size): Remove static attribute.
> * gfortran.h : Prototype for spec_dimen_size.
>http://gcc.gnu.org/ml/gcc-patches/2007-05/msg00406.html


-- 


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



[Bug fortran/32707] mismatched character lengths in array

2007-07-09 Thread vivekrao4 at yahoo dot com


--- Comment #1 from vivekrao4 at yahoo dot com  2007-07-09 19:05 ---
Gfortran also does not warn about the simpler code

program xtrim_array
! check if compiler catches character array constructor with elements of
different sizes
implicit none
character (len=4) :: xx(2)
xx = ["boy","girl"]
print*,"xx = '" // xx(1) // "' '" // xx(2) // "'" 
end program xtrim_array


-- 


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



[Bug fortran/32707] New: mismatched character lengths in array

2007-07-09 Thread vivekrao4 at yahoo dot com
For the following invalid code

program xtrim_array
implicit none
character (len=4) :: xx(2)
xx = [trim("boy "),trim("girl")] ! invalid -- elements have different lengths
print*,"xx = '" // xx(1) // "' '" // xx(2) // "'" 
end program xtrim_array

compiling and running with gfortran gives

gfortran -v -O0 -Wall -fbounds-check -static -g xtrim_array.f90
Driving: gfortran -v -O0 -Wall -fbounds-check -static -g xtrim_array.f90
-lgfortranbegin -lgfortran
Using built-in specs.
Target: i386-pc-mingw32
Configured with: ../trunk/configure --prefix=/mingw
--enable-languages=c,fortran --with-gmp=/home/coudert/local --disable-nls
--with-ld=/mingw/bin/ld --with-as=/mingw/bin/as --disable-werror
--enable-bootstrap --enable-threads --build=i386-pc-mingw32 --disable-shared
--enable-libgomp
Thread model: win32
gcc version 4.3.0 20070706 (experimental)
 c:/programs/gfortran/bin/../libexec/gcc/i386-pc-mingw32/4.3.0/f951.exe
xtrim_array.f90 -quiet -dumpbase xtrim_array.f90 -mtune=i386 -auxbase
xtrim_array -g -O0 -Wall -version -fbounds-check -fintrinsic-modules-path
c:/programs/gfortran/bin/../lib/gcc/i386-pc-mingw32/4.3.0/finclude -o
C:\DOCUME~1\vrao\LOCALS~1\Temp/ccaETULf.s
GNU F95 version 4.3.0 20070706 (experimental) (i386-pc-mingw32)
compiled by GNU C version 4.3.0 20070706 (experimental), GMP version
4.2.1, MPFR version 2.2.1.
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
 as -o C:\DOCUME~1\vrao\LOCALS~1\Temp/ccg74eom.o
C:\DOCUME~1\vrao\LOCALS~1\Temp/ccaETULf.s
 c:/programs/gfortran/bin/../libexec/gcc/i386-pc-mingw32/4.3.0/collect2.exe
-Bstatic c:/programs/g95/lib/crt2.o
c:/programs/gfortran/bin/../lib/gcc/i386-pc-mingw32/4.3.0/crtbegin.o
-Lc:/programs/gfortran/bin/../lib/gcc/i386-pc-mingw32/4.3.0
-Lc:/programs/gfortran/bin/../lib/gcc -Lc:/programs/g95/lib
-Lc:/programs/gfortran/bin/../lib/gcc/i386-pc-mingw32/4.3.0/../../..
C:\DOCUME~1\vrao\LOCALS~1\Temp/ccg74eom.o -lgfortranbegin -lgfortran -lmingw32
-lgcc -lmoldname -lmingwex -lmsvcrt -luser32 -lkernel32 -ladvapi32 -lshell32
-lmingw32 -lgcc -lmoldname -lmingwex -lmsvcrt
c:/programs/gfortran/bin/../lib/gcc/i386-pc-mingw32/4.3.0/crtend.o

U:\vrao\fortran>a
 xx = 'boy ' 'girl'

It would be nice if gfortran gave a compile-time or run-time error.

Mingw G95 Jun 30 2007 with the default options says

In file xtrim_array.f90:4

xx = [trim("boy "),trim("girl")] ! invalid -- elements have different lengths
   1
Error: Element in character array constructor at (1) has length 4 instead of 3


-- 
   Summary: mismatched character lengths in array
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: vivekrao4 at yahoo dot com


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



[Bug libfortran/32702] [4.3 Regression] crash when printing big character variable

2007-07-09 Thread burnus at gcc dot gnu dot org


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

   Keywords||wrong-code
  Known to fail||4.3.0
  Known to work||4.2.1
Summary|crash when printing big |[4.3 Regression] crash when
   |character variable  |printing big character
   ||variable
   Target Milestone|--- |4.3.0


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



[Bug fortran/32703] ICE with [trim(character_variable)]

2007-07-09 Thread burnus at gcc dot gnu dot org


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

OtherBugsDependingO||19276
  nThis||
   Keywords||ice-on-valid-code
   Target Milestone|--- |4.3.0


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



[Bug fortran/32703] ICE with [trim(character_variable)]

2007-07-09 Thread langton at gcc dot gnu dot org


--- Comment #1 from langton at gcc dot gnu dot org  2007-07-09 18:32 ---
Confirmed.  The segfault occurs on trans-array.c:1380 because e->ts->cl is
null.


-- 

langton 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-07-09 18:32:53
   date||


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



[Bug tree-optimization/32636] [4.3 regression] 25_algorithms/search_n/iterator.cc: pch-related verify_ssa failure

2007-07-09 Thread hp at gcc dot gnu dot org


--- Comment #14 from hp at gcc dot gnu dot org  2007-07-09 18:30 ---
>From revision 126479 (in the range 126472..126429), the bug is again hidden.
There's a libstdc++-v3/include/bits/stl_algo.h tweak in that range that
apparently sufficiently changed the code.


-- 


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



[Bug target/27855] reassociation pass produces ~30% slower matrix multiplication code

2007-07-09 Thread ubizjak at gmail dot com


--- Comment #15 from ubizjak at gmail dot com  2007-07-09 18:16 ---
New timings on x86_64 core2 (from [1])

The tests were performed on core2 in 64bit mode, using '-DREPS=1 -O3 -msse3
-march=core2 -ffast-math' flags, with and without newly introduced
-fno-tree-reassoc flag.

The results were _interesting_, showing extreme differences in the run times:

w/o -fno-tree-reassoc:

ALGORITHM NB   REPSTIME  MFLOPS
=  =  =  ==  ==

-DTYPE=float: atlasmm   60  1   2.000 2159.87
-DTYPE=double:atlasmm   60  1   2.500 1727.89

w/ -fno-tree-reassoc:

ALGORITHM NB   REPSTIME  MFLOPS
=  =  =  ==  ==

-DTYPE=float: atlasmm   60  1   0.932 4634.90
-DTYPE=double:atlasmm   60  1   1.520 2841.93

[1] http://gcc.gnu.org/ml/gcc-patches/2007-07/msg00849.html


-- 


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



[Bug java/32706] New: gcj -M's dependency list is empty

2007-07-09 Thread cagney at redhat dot com
GCJ -M is producing an empty dependency list vis:

package frysk4742;
class Referee
{
static int i;
int j;
Referee() {
j = i++;
}
}

package frysk4742;

class Referer {
static public void main(String[] args) {
new Referee();
}
}

gcj -M frysk4742/Referer.java

gcc (GCC) 4.1.1 20070105 (Red Hat 4.1.1-51):
imports/tests/frysk4742/Referer.java
../../../frysk/frysk-imports/tests/frysk4742/Referer.o:  \
 ../../../frysk/frysk-imports/tests/frysk4742/Referer.java \
  /usr/share/java/libgcj-4.1.1.jar \
  ../../../frysk/frysk-imports/tests/frysk4742/Referee.java

gcc (GCC) 4.1.2 20070502 (Red Hat 4.1.2-12):
/tmp/ccSF6vYl.o:


-- 
   Summary: gcj -M's dependency list is empty
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: java
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: cagney at redhat dot com


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



[Bug tree-optimization/32705] [4.3 Regression] ICE in set_ssa_val_to, at tree-ssa-sccvn.c:1022

2007-07-09 Thread dberlin at dberlin dot org


--- Comment #3 from dberlin at gcc dot gnu dot org  2007-07-09 18:12 ---
Subject: Re:  New: [4.3 Regression] ICE in set_ssa_val_to, at
tree-ssa-sccvn.c:1022

Oh, this assert, sorry, i removed the other assert int his function.

This means we have discovered some very very very strange value that
an ssa name value numbers to.

Can someone paste the output of debug_generic_stmt (to) and
debug_tree(to) at the point of failure?

On 9 Jul 2007 16:50:55 -, rguenth at gcc dot gnu dot org
<[EMAIL PROTECTED]> wrote:
> === acats Summary ===
> # of expected passes2269
> # of unexpected failures46
>
> *** FAILURES: ae2113a ae2113b c38202a c85014b c87b26b c910001 c930001 c93008b
> c94002b c94002d c94002e c94002f c94002g c94008c c95012a c95085a c954015 
> c954019
> c954022 c954026 c954a03 c97113a c97201g c97201h c97201x c97202a c97205a 
> c97205b
> c97305a c97305b c97305c c97305d c974002 c974003 c974008 c974009 c974010 
> c974011
> cc1207b cc3019c cd92001 ce2103a ce2201l ce2202a ce3815a cxh1001
>
> nearly all of them are of the form
>
> +===GNAT BUG DETECTED==+
> | 4.3.0 20070709 (experimental) (x86_64-unknown-linux-gnu) GCC error:  |
> | in set_ssa_val_to, at tree-ssa-sccvn.c:1022  |
> | Error detected around ae2113b.adb:33 |
> | Please submit a bug report; see http://gcc.gnu.org/bugs.html.|
> | Use a subject line meaningful to you and us to track the bug.|
> | Include the entire contents of this bug box in the report.   |
> | Include the exact gcc or gnatmake command that you entered.  |
> | Also include sources listed below in gnatchop format |
> | (concatenated together with no headers between files).   |
> +==+
>
>
> --
>Summary: [4.3 Regression] ICE in set_ssa_val_to, at tree-ssa-
> sccvn.c:1022
>Product: gcc
>Version: 4.3.0
> Status: UNCONFIRMED
>   Keywords: ice-on-valid-code
>   Severity: normal
>   Priority: P3
>  Component: tree-optimization
> AssignedTo: unassigned at gcc dot gnu dot org
> ReportedBy: rguenth at gcc dot gnu dot org
>
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32705
>
> --- 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=32705



[Bug tree-optimization/32705] [4.3 Regression] ICE in set_ssa_val_to, at tree-ssa-sccvn.c:1022

2007-07-09 Thread dberlin at dberlin dot org


--- Comment #2 from dberlin at gcc dot gnu dot org  2007-07-09 18:11 ---
Subject: Re:  [4.3 Regression] ICE in set_ssa_val_to, at tree-ssa-sccvn.c:1022

Uh, this assert was removed, so i don't know how it could still trigger ;)


On 9 Jul 2007 17:36:22 -, ebotcazou at gcc dot gnu dot org
<[EMAIL PROTECTED]> wrote:
>
>
> --- Comment #1 from ebotcazou at gcc dot gnu dot org  2007-07-09 17:36 
> ---
> Confirmed on platforms where the Ada compiler bootstraps at all. :-)
>
> I plan to look at them once I've found something plausible for PR 32589.
>
>
> --
>
> ebotcazou at gcc dot gnu dot org changed:
>
>What|Removed |Added
> 
>  CC||ebotcazou at gcc dot gnu dot
>||org
>  Status|UNCONFIRMED |NEW
>  Ever Confirmed|0   |1
>Last reconfirmed|-00-00 00:00:00 |2007-07-09 17:36:22
>date||
>
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32705
>
> --- 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=32705



[Bug fortran/32704] -static-libgfortran is undocumented

2007-07-09 Thread dfranke at gcc dot gnu dot org


--- Comment #1 from dfranke at gcc dot gnu dot org  2007-07-09 18:10 ---
I asked for it, seems to be me who is going to document it :)


-- 

dfranke at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dfranke at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-07-09 18:10:27
   date||


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



[Bug c++/32560] [4.3 regression] ICE on invalid declaration in template

2007-07-09 Thread pcarlini at suse dot de


--- Comment #1 from pcarlini at suse dot de  2007-07-09 17:52 ---
I can fix this...


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |pcarlini at suse dot de
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-07-09 17:52:12
   date||


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



[Bug target/32462] [4.3 regression] Linking libgcj.so fails on Solaris 10/x86

2007-07-09 Thread ro at techfak dot uni-bielefeld dot de


--- Comment #7 from ro at techfak dot uni-bielefeld dot de  2007-07-09 
17:48 ---
Subject: Re:  [4.3 regression] Linking libgcj.so fails on Solaris 10/x86

aph at gcc dot gnu dot org writes:

> So, the question is why the linker is complaining that "a GOT relative
> relocation must reference a local symbol" since it is defined locally and it
> should be possible to calculate its offset from the GOT.

I've looked up the message in the OpenSolaris ld sources: they are from

http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/sgs/libld/common/relocate.c

(ld_process_sym_reloc), l. 1187 - 1198 (the message is
MSG_REL_BADGOTBASED).  On l. 1116.. there's a description of which symbols
are considered local.  I must confess that I don't fully understand what is
going on there ;-)

Rainer


-- 


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



[Bug tree-optimization/32698] [4.3 regression] inefficient pointer expression

2007-07-09 Thread zippel at gcc dot gnu dot org


--- Comment #8 from zippel at gcc dot gnu dot org  2007-07-09 17:42 ---
(In reply to comment #7)
> On the backend side we have the fwprop pass which is supposed to do
> addressing mode selection and the backend which is supposed to provide
> accurate costs for them.

Let's take your proposed form:

  return (*(p + (i + 2) * 4) + *(p + (i + 1) * 4)) + *(p + (i + 3) * 4);

After initial RTL expansion something like this is generated:

  t1 = i + 2;
  r = *(p + t1 * 4);
  t2 = i + 1;
  r += *(p + t2 * 4);
  t3 = i + 3;
  r += *(p + t3 * 4);

The problem is now that it takes until combine until this is generated:

r = *(p + i * 4 + 8);
r += *(p + i * 4 + 4);
r += *(p + i * 4 + 12);

and at this point it's too late. It's easy to blame the back end, but at this
point it's IMHO unrealistic to undo this mess at RTL level. The proper address
form should be generated as early as possible, so that at the time RTL is
generated, it's as close as possible to the final form.


-- 


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



[Bug tree-optimization/32705] [4.3 Regression] ICE in set_ssa_val_to, at tree-ssa-sccvn.c:1022

2007-07-09 Thread ebotcazou at gcc dot gnu dot org


--- Comment #1 from ebotcazou at gcc dot gnu dot org  2007-07-09 17:36 
---
Confirmed on platforms where the Ada compiler bootstraps at all. :-)

I plan to look at them once I've found something plausible for PR 32589.


-- 

ebotcazou at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||ebotcazou at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-07-09 17:36:22
   date||


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



[Bug c++/32106] [4.3 regression] ICE after name-clash between struct and namespace

2007-07-09 Thread pcarlini at suse dot de


--- Comment #1 from pcarlini at suse dot de  2007-07-09 17:07 ---
Cannot be reproduced anymore. If people want me to add the testcase to be safe,
just let me know.


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||WORKSFORME


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



[Bug tree-optimization/32705] New: [4.3 Regression] ICE in set_ssa_val_to, at tree-ssa-sccvn.c:1022

2007-07-09 Thread rguenth at gcc dot gnu dot org
=== acats Summary ===
# of expected passes2269
# of unexpected failures46

*** FAILURES: ae2113a ae2113b c38202a c85014b c87b26b c910001 c930001 c93008b
c94002b c94002d c94002e c94002f c94002g c94008c c95012a c95085a c954015 c954019
c954022 c954026 c954a03 c97113a c97201g c97201h c97201x c97202a c97205a c97205b
c97305a c97305b c97305c c97305d c974002 c974003 c974008 c974009 c974010 c974011
cc1207b cc3019c cd92001 ce2103a ce2201l ce2202a ce3815a cxh1001 

nearly all of them are of the form

+===GNAT BUG DETECTED==+
| 4.3.0 20070709 (experimental) (x86_64-unknown-linux-gnu) GCC error:  |
| in set_ssa_val_to, at tree-ssa-sccvn.c:1022  |
| Error detected around ae2113b.adb:33 |
| Please submit a bug report; see http://gcc.gnu.org/bugs.html.|
| Use a subject line meaningful to you and us to track the bug.|
| Include the entire contents of this bug box in the report.   |
| Include the exact gcc or gnatmake command that you entered.  |
| Also include sources listed below in gnatchop format |
| (concatenated together with no headers between files).   |
+==+


-- 
   Summary: [4.3 Regression] ICE in set_ssa_val_to, at tree-ssa-
sccvn.c:1022
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: ice-on-valid-code
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rguenth at gcc dot gnu dot org


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



[Bug middle-end/32398] [4.3 Regression] checking for suffix of object files... configure: error: cannot compute suffix of f object files: cannot compile

2007-07-09 Thread bonzini at gnu dot org


--- Comment #15 from bonzini at gnu dot org  2007-07-09 16:31 ---
Note that this:

> Before the dataflow merge, the argument pointer was always included
> in "Registers live at start".

... was because uninitialized registers always showed up as live at start
before DF merge.


-- 


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



[Bug fortran/32704] New: -static-libgfortran is undocumented

2007-07-09 Thread tobias dot burnus at physik dot fu-berlin dot de
PR 31400 added -static-libgfortran, but a documentation is missing.

(One should probably also update
http://gcc.gnu.org/wiki/GFortranGettingStarted)


-- 
   Summary: -static-libgfortran is undocumented
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: tobias dot burnus at physik dot fu-berlin dot de


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



[Bug middle-end/32004] [4.1/4.2/4.3 regression] : can't find a register in class 'GENERAL_REGS' while reloading 'asm'

2007-07-09 Thread bonzini at gnu dot org


--- Comment #32 from bonzini at gnu dot org  2007-07-09 15:38 ---
additional fix committed.


-- 

bonzini at gnu dot org changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution||FIXED


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



[Bug middle-end/32004] [4.1/4.2/4.3 regression] : can't find a register in class 'GENERAL_REGS' while reloading 'asm'

2007-07-09 Thread bonzini at gcc dot gnu dot org


--- Comment #31 from bonzini at gnu dot org  2007-07-09 15:38 ---
Subject: Bug 32004

Author: bonzini
Date: Mon Jul  9 15:37:56 2007
New Revision: 126488

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126488
Log:
2007-07-09  Paolo Bonzini  <[EMAIL PROTECTED]>

PR middle-end/32004
* function.c (rest_of_match_asm_constraints): Pass PROP_REG_INFO.

Modified:
branches/gcc-4_1-branch/gcc/ChangeLog
branches/gcc-4_1-branch/gcc/function.c


-- 


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



[Bug middle-end/32004] [4.1/4.2/4.3 regression] : can't find a register in class 'GENERAL_REGS' while reloading 'asm'

2007-07-09 Thread bonzini at gcc dot gnu dot org


--- Comment #30 from bonzini at gnu dot org  2007-07-09 15:37 ---
Subject: Bug 32004

Author: bonzini
Date: Mon Jul  9 15:37:32 2007
New Revision: 126487

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126487
Log:
2007-07-09  Paolo Bonzini  <[EMAIL PROTECTED]>

PR middle-end/32004
* function.c (rest_of_match_asm_constraints): Pass PROP_REG_INFO.

Modified:
branches/gcc-4_2-branch/gcc/ChangeLog
branches/gcc-4_2-branch/gcc/function.c


-- 


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



[Bug tree-optimization/32698] [4.3 regression] inefficient pointer expression

2007-07-09 Thread rguenther at suse dot de


--- Comment #7 from rguenther at suse dot de  2007-07-09 15:37 ---
Subject: Re:  [4.3 regression] inefficient
 pointer expression

On Mon, 9 Jul 2007, zippel at gcc dot gnu dot org wrote:

> (In reply to comment #5)
> > as you suggest creates worse assembly (look at the extra shift)
> > 
> > foo:
> > pushl   %ebp
> > movl%esp, %ebp
> > movl12(%ebp), %ecx
> > movl8(%ebp), %edx
> > popl%ebp
> > sall$2, %ecx
> > movl8(%ecx,%edx), %eax
> > addl4(%ecx,%edx), %eax
> > addl12(%ecx,%edx), %eax
> > ret
> 
> The cost of this is dependent on the target, so IMO the shift could be
> propagated back into the address at RTL level.

Or the other way around.

> > so there is no form that is clearly better to canonicalize to.
> 
> Your example is rather artificial and depends on that (i + x) * y is 
> completely
> eliminated. My main point is still that such expression are far more difficult
> to translate into proper address operations.
> To generate addresses targeting a form of (i * x) + y is clearly better.

My example is not artificial.  It is quite common to have loops that
stream data from one type to another.  Also it's not 'clearly' better to 
me.

Anyway, fold () is certainly not able to decide this and both value
numbering and re-association can improve the IL by taking into account
context.

On the backend side we have the fwprop pass which is supposed to do
addressing mode selection and the backend which is supposed to provide
accurate costs for them.

Richard.


-- 


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



[Bug fortran/32703] New: ICE with [trim(character_variable)]

2007-07-09 Thread vivekrao4 at yahoo dot com
For the program

program array_char
implicit none
character (len=1) :: x
x = "a"
print*,[trim(x)]
end program array_char

compiling on Windows XP with

gfortran -v xconcat.f90

produces an ICE:

Driving: gfortran -v xconcat.f90 -lgfortranbegin -lgfortran
Using built-in specs.
Target: i386-pc-mingw32
Configured with: ../trunk/configure --prefix=/mingw
--enable-languages=c,fortran --with-gmp=/home/coudert/local --disable-nls
--with-ld=/mingw/bin/ld --with-as=/mingw/bin/as --disable-werror
--enable-bootstrap --enable-threads --build=i386-pc-mingw32 --disable-shared
--enable-libgomp
Thread model: win32
gcc version 4.3.0 20070706 (experimental)
 c:/programs/gfortran/bin/../libexec/gcc/i386-pc-mingw32/4.3.0/f951.exe
xconcat.f90 -quiet -dumpbase xconcat.f90 -mtune=i386 -auxbase xconcat -version
-fintrinsic-modules-path
c:/programs/gfortran/bin/../lib/gcc/i386-pc-mingw32/4.3.0/finclude -o
C:\DOCUME~1\vrao\LOCALS~1\Temp/cc8grzTr.s
GNU F95 version 4.3.0 20070706 (experimental) (i386-pc-mingw32)
compiled by GNU C version 4.3.0 20070706 (experimental), GMP version
4.2.1, MPFR version 2.2.1.
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
xconcat.f90: In function 'MAIN__':
xconcat.f90:4: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html> for instructions.

The program works if the line

print*,[trim(x)]

is replaced with

print*,[x]

or 

print*,trim(x)


-- 
   Summary: ICE with [trim(character_variable)]
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: vivekrao4 at yahoo dot com


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



[Bug tree-optimization/32698] [4.3 regression] inefficient pointer expression

2007-07-09 Thread zippel at gcc dot gnu dot org


--- Comment #6 from zippel at gcc dot gnu dot org  2007-07-09 15:27 ---
(In reply to comment #5)
> as you suggest creates worse assembly (look at the extra shift)
> 
> foo:
> pushl   %ebp
> movl%esp, %ebp
> movl12(%ebp), %ecx
> movl8(%ebp), %edx
> popl%ebp
> sall$2, %ecx
> movl8(%ecx,%edx), %eax
> addl4(%ecx,%edx), %eax
> addl12(%ecx,%edx), %eax
> ret

The cost of this is dependent on the target, so IMO the shift could be
propagated back into the address at RTL level.

> so there is no form that is clearly better to canonicalize to.

Your example is rather artificial and depends on that (i + x) * y is completely
eliminated. My main point is still that such expression are far more difficult
to translate into proper address operations.
To generate addresses targeting a form of (i * x) + y is clearly better.


-- 


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



[Bug libfortran/32702] crash when printing big character variable

2007-07-09 Thread dfranke at gcc dot gnu dot org


-- 

dfranke 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-07-09 15:10:11
   date||


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



[Bug libfortran/32702] crash when printing big character variable

2007-07-09 Thread dfranke at gcc dot gnu dot org


--- Comment #1 from dfranke at gcc dot gnu dot org  2007-07-09 15:08 ---
Confirmed. Presumely a buffer overflow in the library.

If len==8192, valgrind does not report any errors. 
If len > 8192:

===30988== Invalid write of size 1
==30988==at 0x4022D8E: memcpy (mc_replace_strmem.c:406)
==30988==by 0x40A26C3: write_character (write.c:1412)
==30988==by 0x40A462B: _gfortrani_list_formatted_write (write.c:1533)
==30988==by 0x409A885: _gfortran_transfer_character (transfer.c:1416)
==30988==by 0x80486FB: MAIN__ (pr32702.f90:4)
==30988==by 0x8048748: main (fmain.c:22)
==30988==  Address 0x4229340 is 0 bytes after a block of size 8,296 alloc'd
==30988==at 0x40213D0: malloc (vg_replace_malloc.c:149)
==30988==by 0x40342CC: _gfortrani_get_mem (memory.c:53)
==30988==by 0x40A0BE4: fd_to_stream (unix.c:1048)
==30988==by 0x409F509: _gfortrani_init_units (unit.c:525)
==30988==by 0x4033F73: init (main.c:152)
==30988==by 0x40307DC: (within
/h/franke/packages/i686-pc-linux-gnu/gcc/lib/gcc/i686-pc-linux-gnu/4.3.0/libgfortran.so.3.0.0)
==30988==by 0x400D762: call_init (in /lib/ld-2.4.so)
==30988==by 0x400D872: _dl_init (in /lib/ld-2.4.so)
==30988==by 0x400087E: (within /lib/ld-2.4.so)

Moving to libfortran, adding Jerry to CC.


-- 

dfranke at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||dfranke at gcc dot gnu dot
   ||org, jvdelisle at gcc dot
   ||gnu dot org
  Component|fortran |libfortran


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



[Bug fortran/31129] No warning on unused parameters

2007-07-09 Thread dfranke at gcc dot gnu dot org


--- Comment #5 from dfranke at gcc dot gnu dot org  2007-07-09 15:00 ---
Closing again. This time, I mean it.


-- 

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=31129



[Bug tree-optimization/32698] [4.3 regression] inefficient pointer expression

2007-07-09 Thread rguenth at gcc dot gnu dot org


--- Comment #5 from rguenth at gcc dot gnu dot org  2007-07-09 15:00 ---
Note that we don't hoist the i*4 or the addition to p to help addressing mode
selection which likes to see the "whole" address.

Of course it shouldn't matter in which form we see the addresses and the same
code should be generated for all, still canonicalization to the same form
makes a difference.

In fact, canonicalizing to

  unsigned int D.1656;

:
  D.1656 = i * 4;
  return (*(p + (D.1656 + 8)) + *(p + (D.1656 + 4))) + *(p + (D.1656 + 12));

as you suggest creates worse assembly (look at the extra shift)

foo:
pushl   %ebp
movl%esp, %ebp
movl12(%ebp), %ecx
movl8(%ebp), %edx
popl%ebp
sall$2, %ecx
movl8(%ecx,%edx), %eax
addl4(%ecx,%edx), %eax
addl12(%ecx,%edx), %eax
ret

in fact the above shows that the proper fix would be in the backend (if
there is anything to fix) and making sure we consistently canonicalize
is good enough.  Consider the related testcase

int foo(int *p, short *q, char *r, unsigned int i)
{
  return p[i + 1] + q[i + 1] + r[i + 1];
}

which in one case is canonicalized to

  unsigned int D.1658;

:
  D.1658 = i + 1;
  return ((int) *(r + D.1658) + *(p + D.1658 * 4)) + (int) *(q + D.1658 * 2);

in the other to

  return ((int) *(r + (i + 1)) + *(p + (i * 4 + 4))) + (int) *(q + (i * 2 +
2));

so there is no form that is clearly better to canonicalize to.  But the
correct "form" depends on the context (whether it is profitable to either
CSE i * 4 or i + 1).


-- 


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



[Bug fortran/31129] No warning on unused parameters

2007-07-09 Thread dfranke at gcc dot gnu dot org


--- Comment #4 from dfranke at gcc dot gnu dot org  2007-07-09 14:58 ---
Fixed in trunk. Not a regression, no backport. Closing.


-- 

dfranke at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.3.0


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



[Bug fortran/31129] No warning on unused parameters

2007-07-09 Thread dfranke at gcc dot gnu dot org


--- Comment #3 from dfranke at gcc dot gnu dot org  2007-07-09 14:57 ---
Subject: Bug 31129

Author: dfranke
Date: Mon Jul  9 14:56:49 2007
New Revision: 126486

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126486
Log:
gcc/fortran:
2007-07-09  Daniel Franke  <[EMAIL PROTECTED]>

PR fortran/31129
* trans-decl.c (generate_local_decl) Emit a warning if an unused
parameter is found.

gcc/testsuite:
2007-07-09  Daniel Franke  <[EMAIL PROTECTED]>

PR fortran/31129
* gfortran.dg/parameter_unused.f90: New test.


Added:
trunk/gcc/testsuite/gfortran.dg/parameter_unused.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/trans-decl.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug fortran/32702] New: crash when printing big character variable

2007-07-09 Thread vivekrao4 at yahoo dot com
For the code

program main
character (len=1) :: word
word = "dog"
print*,"word =",word
end program main

compiled with

U:\vrao\fortran>gfortran -v xbug.f90
Driving: gfortran -v xbug.f90 -lgfortranbegin -lgfortran
Using built-in specs.
Target: i386-pc-mingw32
Configured with: ../trunk/configure --prefix=/mingw
--enable-languages=c,fortran --with-gmp=/home/coudert/local --disable-nls
--with-ld=/mingw/bin/ld --with-as=/mingw/bin/as --disable-werror
--enable-bootstrap --enable-threads --build=i386-pc-mingw32 --disable-shared
--enable-libgomp
Thread model: win32
gcc version 4.3.0 20070706 (experimental)
 c:/programs/gfortran/bin/../libexec/gcc/i386-pc-mingw32/4.3.0/f951.exe
xbug.f90 -quiet -dumpbase xbug.f90 -mtune=i386 -auxbase xbug -version
-fintrinsic-modules-path
c:/programs/gfortran/bin/../lib/gcc/i386-pc-mingw32/4.3.0/finclude -o
C:\DOCUME~1\vrao\LOCALS~1\Temp/ccfHwMra.s
GNU F95 version 4.3.0 20070706 (experimental) (i386-pc-mingw32)
compiled by GNU C version 4.3.0 20070706 (experimental), GMP version
4.2.1, MPFR version 2.2.1.
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
 as -o C:\DOCUME~1\vrao\LOCALS~1\Temp/cc1pIAXq.o
C:\DOCUME~1\vrao\LOCALS~1\Temp/ccfHwMra.s
 c:/programs/gfortran/bin/../libexec/gcc/i386-pc-mingw32/4.3.0/collect2.exe
-Bdynamic c:/programs/g95/lib/crt2.o
c:/programs/gfortran/bin/../lib/gcc/i386-pc-mingw32/4.3.0/crtbegin.o
-Lc:/programs/gfortran/bin/../lib/gcc/i386-pc-mingw32/4.3.0
-Lc:/programs/gfortran/bin/../lib/gcc -Lc:/programs/g95/lib
-Lc:/programs/gfortran/bin/../lib/gcc/i386-pc-mingw32/4.3.0/../../..
C:\DOCUME~1\vrao\LOCALS~1\Temp/cc1pIAXq.o -lgfortranbegin -lgfortran -lmingw32
-lgcc -lmoldname -lmingwex -lmsvcrt -luser32 -lkernel32 -ladvapi32 -lshell32
-lmingw32 -lgcc -lmoldname -lmingwex -lmsvcrt
c:/programs/gfortran/bin/../lib/gcc/i386-pc-mingw32/4.3.0/crtend.o

the program on Windows XP prints "word =dog" but then crashes with a pop-up
message

"a.exe has encountered a problem and needs to close".

The program runs fine with the LEN is reduced to 8000.


-- 
   Summary: crash when printing big character variable
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: vivekrao4 at yahoo dot com


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



[Bug tree-optimization/32698] [4.3 regression] inefficient pointer expression

2007-07-09 Thread zippel at gcc dot gnu dot org


--- Comment #4 from zippel at gcc dot gnu dot org  2007-07-09 14:40 ---
IMHO something like this should be generated:

p2 = p + (i * 4);
return (*(p2 + 4) + *(p2 + 8) + *(p2 + 12));

Right now not even the (i*4) expression is removed from the last instruction
anymore.


-- 


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



[Bug fortran/32699] Global name 'len' at (1) is already being used as a FUNCTION at (2)

2007-07-09 Thread dfranke at gcc dot gnu dot org


--- Comment #1 from dfranke at gcc dot gnu dot org  2007-07-09 14:25 ---


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


-- 

dfranke at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug fortran/32157] intrinsic function name conflicts with subroutine if present in the same file

2007-07-09 Thread dfranke at gcc dot gnu dot org


--- Comment #5 from dfranke at gcc dot gnu dot org  2007-07-09 14:25 ---
*** Bug 32699 has been marked as a duplicate of this bug. ***


-- 


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



[Bug tree-optimization/32377] can't determine dependence (source/destination overlap without more than size)

2007-07-09 Thread sebpop at gmail dot com


--- Comment #15 from sebpop at gmail dot com  2007-07-09 14:19 ---
Subject: Re:  can't determine dependence (source/destination overlap without
more than size)

> I was going to submit the attached patch, but now the analysis fails with
> "affine-affine test failed: missing iteration counts" and distance vector is
> not built (so the loop in this PR cannot be vectorized even with the addition
> of DDR_REVERSED_P). This was caused by your patch to PR 32457
> http://gcc.gnu.org/viewcvs?view=rev&revision=126305. Is there any way to
> restore the previous behaviour for this case?
>

I'll try to fix this.


-- 


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



[Bug c++/32697] O2 optimizes away assignment

2007-07-09 Thread Dries dot Decock at excentis dot com


--- Comment #3 from Dries dot Decock at excentis dot com  2007-07-09 14:07 
---
Thanks for the reply. 

I will use the -fno-strict-aliasing for now, and hope that the SWIG maintainers
will fix this problem in the near future.

Thanks again.


-- 


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



[Bug c++/32700] O2 optimizes away assignment

2007-07-09 Thread Dries dot Decock at excentis dot com


--- Comment #1 from Dries dot Decock at excentis dot com  2007-07-09 14:06 
---
Sorry, dup


-- 

Dries dot Decock at excentis dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug c++/32700] New: O2 optimizes away assignment

2007-07-09 Thread Dries dot Decock at excentis dot com
Hi,

I'm using SWIG to combine Java and C++ code. At some point, SWIG generates a
method like this :

1SWIGEXPORT jlong JNICALL Java_com_excentis_products_X_XUpcast(JNIEnv *jenv,
jclass jcls, jlong jarg1) {
jlong baseptr = 0;
(void)jenv;
(void)jcls;
*(Flow **)&baseptr = *(TcpFlow **)&jarg1;
return baseptr;
}

The problem is that the assignment is not executed and the return value is
always zero, when using -O2 optimization. When I disable O2, or add a debug
statement, the value is ok.

I don't like the generated code, but it should work fine.


-- 
   Summary: O2 optimizes away assignment
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: Dries dot Decock at excentis dot com
 GCC build triplet: i686-pc-linux
  GCC host triplet: i686-pc-linux
GCC target triplet: i686-pc-linux i686-mingw32


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



[Bug c++/32697] O2 optimizes away assignment

2007-07-09 Thread sorenj at us dot ibm dot com


--- Comment #2 from sorenj at us dot ibm dot com  2007-07-09 13:55 ---
Please refer to
https://sourceforge.net/tracker/?func=detail&atid=101645&aid=1560993&group_id=1645

Long story short - as it stands today: C++ standards team won't change the spec
to allow type punning, gcc team won't "fix" code generation if it involves type
punning, swig team won't rewrite the code generators to generate ANSI spec
compliant code.

(The only way to do this by current ANSI spec rules is to memcpy the contents
of the pointers themselves from a pointer of one type to a pointer of another
type.)

Your only solution at this time is to use -fno-strict-aliasing when compiling
swig wrapper code.  This has been a major headache mainly for package
maintainers.


-- 


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



[Bug fortran/32699] New: Global name 'len' at (1) is already being used as a FUNCTION at (2)

2007-07-09 Thread michael dot a dot richmond at nasa dot gov
When I compile the program listed below I get the message:

al1.f90:4.17:
SUBROUTINE len(i)
1
al1.f90:2.4:
i = len(" ")
   2
Error: Global name 'len' at (1) is already being used as a FUNCTION at (2)

For what it's worth:

1. g95, Compaq, and Lahey Fortran do not consider it an error.
2. Declaring len to be INTRINSIC has no effect.

PROGRAM VAL
i = len(" ")
END
SUBROUTINE len(i)
END


-- 
   Summary: Global name 'len' at (1) is already being used as a
FUNCTION at (2)
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: michael dot a dot richmond at nasa dot gov


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



[Bug tree-optimization/32698] [4.3 regression] inefficient pointer expression

2007-07-09 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2007-07-09 13:42 ---
Mine.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |rguenth at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2007-07-09 13:39:51 |2007-07-09 13:42:24
   date||


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



[Bug tree-optimization/32698] [4.3 regression] inefficient pointer expression

2007-07-09 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2007-07-09 13:41 ---
Created an attachment (id=13875)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13875&action=view)
patch

With the proposed patch mainline generates again

foo:
pushl   %ebp
movl%esp, %ebp
movl8(%ebp), %ecx
movl12(%ebp), %edx
popl%ebp
movl8(%ecx,%edx,4), %eax
addl4(%ecx,%edx,4), %eax
addl12(%ecx,%edx,4), %eax
ret

and

  return (*(p + (i + 2) * 4) + *(p + (i + 1) * 4)) + *(p + (i + 3) * 4);


-- 


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



[Bug tree-optimization/32698] [4.3 regression] inefficient pointer expression

2007-07-09 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2007-07-09 13:39 ---
With 2.95, 3.3.6 and 3.4.6 I get (for 32bit):

foo:
pushl %ebp
movl %esp,%ebp
movl 8(%ebp),%edx
movl 12(%ebp),%eax
movl %ebp,%esp
popl %ebp
movl 8(%edx,%eax,4),%ecx
addl 4(%edx,%eax,4),%ecx
addl 12(%edx,%eax,4),%ecx
movl %ecx,%eax
ret

4.0.3 and 4.1.2 generate:

foo:
pushl   %ebp
movl%esp, %ebp
movl12(%ebp), %edx
sall$2, %edx
addl8(%ebp), %edx
movl8(%edx), %eax
addl4(%edx), %eax
addl12(%edx), %eax
leave
ret

4.2.0 generates

foo:
pushl   %ebp
movl%esp, %ebp
movl12(%ebp), %ecx
movl8(%ebp), %edx
popl%ebp
sall$2, %ecx
movl4(%ecx,%edx), %eax
addl8(%ecx,%edx), %eax
addl12(%ecx,%edx), %eax
ret

while mainline generates

foo:
pushl   %ebp
movl%esp, %ebp
movl12(%ebp), %ecx
movl8(%ebp), %edx
pushl   %ebx
leal0(,%ecx,4), %ebx
movl8(%ebx,%edx), %eax
addl4(%edx,%ecx,4), %eax
addl12(%ebx,%edx), %eax
popl%ebx
popl%ebp
ret

64bit variants of all of the above create

foo:
.LFB2:
leal1(%rsi), %edx
leal2(%rsi), %eax
addl$3, %esi
movl(%rdi,%rax,4), %eax
addl(%rdi,%rdx,4), %eax
addl(%rdi,%rsi,4), %eax
ret

Tree dumps (of mainline) 64bit vs. 32bit are:

  return (*(p + (long unsigned int) (i + 2) * 4) + *(p + (long unsigned int) (i
+ 1) * 4)) + *(p + (long unsigned int) (i + 3) * 4);

  unsigned int D.1660;
  D.1660 = i * 4;
  return (*(p + (D.1660 + 8)) + *(p + (i + 1) * 4)) + *(p + (D.1660 + 12));


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   GCC host triplet|i686-pc-linux-gnu   |
 GCC target triplet||i686-*-*
   Keywords||missed-optimization
   Last reconfirmed|-00-00 00:00:00 |2007-07-09 13:39:51
   date||
   Target Milestone|--- |4.3.0


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



[Bug tree-optimization/32681] ice for legal C code with flags -ffast-math -O3 -ftree-vectorize

2007-07-09 Thread ubizjak at gmail dot com


--- Comment #9 from ubizjak at gmail dot com  2007-07-09 13:36 ---
Fixed.


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

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


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



[Bug c/21920] aliasing violations

2007-07-09 Thread schwab at suse dot de


--- Comment #117 from schwab at suse dot de  2007-07-09 13:35 ---
*** Bug 32697 has been marked as a duplicate of this bug. ***


-- 

schwab at suse dot de changed:

   What|Removed |Added

 CC||Dries dot Decock at excentis
   ||dot com


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



[Bug c++/32697] O2 optimizes away assignment

2007-07-09 Thread schwab at suse dot de


--- Comment #1 from schwab at suse dot de  2007-07-09 13:35 ---
Report this to the SWIG maintainers.  This is violating the C/C++ aliasing
rules.

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


-- 

schwab at suse dot de changed:

   What|Removed |Added

   Severity|major   |normal
 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug tree-optimization/32681] ice for legal C code with flags -ffast-math -O3 -ftree-vectorize

2007-07-09 Thread uros at gcc dot gnu dot org


--- Comment #8 from uros at gcc dot gnu dot org  2007-07-09 13:32 ---
Subject: Bug 32681

Author: uros
Date: Mon Jul  9 13:31:46 2007
New Revision: 126484

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126484
Log:
PR tree-optimization/32681
* tree-if-conv.c (find_phi_replacement_condition): Use the condition
saved in second_edge->aux when first_bb is a loop header.


Modified:
branches/gcc-4_2-branch/gcc/ChangeLog
branches/gcc-4_2-branch/gcc/tree-if-conv.c


-- 


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



[Bug tree-optimization/32698] New: [4.3 regression] inefficient pointer expression

2007-07-09 Thread zippel at gcc dot gnu dot org
Taking this example:

int foo(int *p, unsigned int i)
{   
  return p[i + 1] + p[i + 2] + p[i + 3];
}

produces inefficient code. The problem already starts at tree level, where for
"p[i+1]" an expression like *(p + (i + 1) * 4)) is generated, which is not a
common pointer expression.
Also since this is different from the other generated pointer expression, the
common index expression isn't completely replaced.

An initial discussion about this can be found here:
http://gcc.gnu.org/ml/gcc-patches/2007-07/msg00418.html


-- 
   Summary: [4.3 regression] inefficient pointer expression
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: zippel at gcc dot gnu dot org
  GCC host triplet: i686-pc-linux-gnu


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



[Bug c++/32697] New: O2 optimizes away assignment

2007-07-09 Thread Dries dot Decock at excentis dot com
Hi,

I'm using SWIG to combine Java and C++ code. At some point, SWIG generates a
method like this :

1SWIGEXPORT jlong JNICALL Java_com_excentis_products_X_XUpcast(JNIEnv *jenv,
jclass jcls, jlong jarg1) {
jlong baseptr = 0;
(void)jenv;
(void)jcls;
*(Flow **)&baseptr = *(TcpFlow **)&jarg1;
return baseptr;
}

The problem is that the assignment is not executed and the return value is
always zero, when using -O2 optimization. When I disable O2, or add a debug
statement, the value is ok.

I don't like the generated code, but it should work fine.


-- 
   Summary: O2 optimizes away assignment
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: Dries dot Decock at excentis dot com
 GCC build triplet: i686-pc-linux
  GCC host triplet: i686-pc-linux
GCC target triplet: i686-pc-linux i686-mingw32


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



[Bug c/32692] Inconsistent warning/error with static and non-static declarations

2007-07-09 Thread sirl at gcc dot gnu dot org


--- Comment #3 from sirl at gcc dot gnu dot org  2007-07-09 13:15 ---
Sorry, apparently I forgot to search 'All' bugs instead of just the 'Open' ones
yesterday.

One question though, how does the func6() part of the testcase relate to all
this? For this one there is no 'extern' specifier anywhere, so shouldn't
sub-clause 7 of 6.2.2 apply here and thus a warning is justified?

7 If, within a translation unit, the same identifier appears with both internal
and external linkage, the behavior is undefined.


-- 


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



[Bug tree-optimization/32681] ice for legal C code with flags -ffast-math -O3 -ftree-vectorize

2007-07-09 Thread uros at gcc dot gnu dot org


--- Comment #7 from uros at gcc dot gnu dot org  2007-07-09 13:11 ---
Subject: Bug 32681

Author: uros
Date: Mon Jul  9 13:11:22 2007
New Revision: 126483

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126483
Log:
PR tree-optimization/32681
* tree-if-conv.c (find_phi_replacement_condition): Use the condition
saved in second_edge->aux when first_bb is a loop header.


Modified:
branches/gcc-4_1-branch/gcc/ChangeLog
branches/gcc-4_1-branch/gcc/tree-if-conv.c


-- 


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



[Bug tree-optimization/32681] ice for legal C code with flags -ffast-math -O3 -ftree-vectorize

2007-07-09 Thread uros at gcc dot gnu dot org


--- Comment #6 from uros at gcc dot gnu dot org  2007-07-09 13:00 ---
Subject: Bug 32681

Author: uros
Date: Mon Jul  9 13:00:19 2007
New Revision: 126482

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=126482
Log:
PR tree-optimization/32681
* tree-if-conv.c (find_phi_replacement_condition): Use the condition
saved in second_edge->aux when first_bb is a loop header.

testsuite/ChangeLog:

PR tree-optimization/32681
* gcc.dg/tree-ssa/pr32681.c: New test.


Added:
trunk/gcc/testsuite/gcc.dg/tree-ssa/pr32681.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-if-conv.c


-- 


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



[Bug fortran/31447] set intent(out) arguments to uninitialized

2007-07-09 Thread dfranke at gcc dot gnu dot org


--- Comment #1 from dfranke at gcc dot gnu dot org  2007-07-09 12:56 ---
Related: PR28004 - "Warn if intent(out) dummy variable is used before being
defined"


-- 

dfranke at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||dfranke at gcc dot gnu dot
   ||org


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



  1   2   >