[Bug c++/30946] classes and structs are interchangeable?

2007-02-24 Thread schwab at suse dot de


--- Comment #1 from schwab at suse dot de  2007-02-24 08:21 ---
This is how C++ works, see [dcl.type.elab]/3.


-- 

schwab at suse dot de changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug fortran/30943] Compiler Crash while compiling GNU Octave

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


--- Comment #2 from burnus at gcc dot gnu dot org  2007-02-24 08:27 ---
(In reply to comment #1)
> This crash is with g77, which is no longer support.

To elaborate more: The GCC 4.x series comes with the compiler "gfortran" which
can compile Fortran 77/90/95 (and some Fortran 2003) programs. It should also
be available under Ubuntu (as you have gcc 4.0.3). However, the GCC/gfortran
4.0.x version is a bit buggy thus you should therefore better install gfortran
4.1 (or 4.2.x or 4.3.x).

gfortran binaries are available from:
http://gcc.gnu.org/wiki/GFortranBinaries


-- 


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



[Bug target/30778] [4.3 Regression] invalid code generation for memset() with -mtune=k8

2007-02-24 Thread ubizjak at gmail dot com


--- Comment #2 from ubizjak at gmail dot com  2007-02-24 08:53 ---
The problem here is in ix86_expand_set_or_movmem_via_loop().

In mtune=k8 case, we choose unrolled_loop as the algorithm, where main loop is
expanded as

  expand_set_or_movmem_via_loop (dst, NULL, destreg, NULL, promoted_val,
 count_exp, Pmode, 4, expected_size);

However, the value of "expected_size" equals 31 in the above testcase! This is
smaller that the smallest chunk size (SIZEOF (Pmode) * 4), requested by caller. 

For some reason, expand_set_or_movmem_via_loop() doesn't detect this anomaly
and generates loop for requested chunk size.

The fix is obvious and straightforward. Bail out of
expand_set_or_movmem_via_loop() early if expected_size < piece_size.

I'll fix this in the evening (CET) if Jan won't beat me to it ;)


, where some kind of guard is missing before entering "Main loop" section.


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 CC||ubizjak at gmail dot com


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



[Bug c++/30944] cstddef:54: internal compiler error: Segmentation fault

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


--- Comment #1 from pinskia at gcc dot gnu dot org  2007-02-24 08:53 ---
Could you attach the preprocessed source code which you can get by adding
-save-temps and it will be named something.ii.  Also can you provide the full
output of "gcc -v" ?

This was all mentioned on http://gcc.gnu.org/bugs.html which comes out when an
internal compiler error happens.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING


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



[Bug c++/30945] iostream includes excessive headers - results in large files

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


--- Comment #1 from pinskia at gcc dot gnu dot org  2007-02-24 09:00 ---
Really this is nothing to do with header files really.  
I think the FAQ is wrong with respect to the C++98 standard as he forgets there
are locale supported added which brings in a lot.

Also including iostream, forces the initialization of the C++ standard streams.


-- 


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



[Bug libgcj/29477] [SJLJ EH] JNI broken with certain libs

2007-02-24 Thread mtrudel at gmx dot ch


--- Comment #5 from mtrudel at gmx dot ch  2007-02-24 09:04 ---
The problem is that the new SJLJ backtrace algorithm depends on the typical
function entry sequence "pushl %ebp; movl %esp, %ebp". But while they're always
in our compiled Java code, they are mostly optimized away in JNI libs.
Microsoft Visual C++ mostly removes them in optimization mode -Og (and -Ox
which includes -Og), GCC seems to sometimes remove them in -O2 -O3 and -Os
mode. I think -fno-omit-frame-pointer keeps them for GCC, but I didn't test it.

I think this won't be fixed and we just wait until DWARF EH is finally
available for mingw. Should be soon since it already exists but has not yet
been approved/committed.


-- 

mtrudel at gmx dot ch changed:

   What|Removed |Added

Summary|[MinGW] JNI broken with |[SJLJ EH] JNI broken with
   |certain libs|certain libs


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



[Bug middle-end/30908] -Os inlines functions that are called more than once (optimization regression)

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


--- Comment #16 from pinskia at gcc dot gnu dot org  2007-02-24 09:12 
---
Hmm, on PPC, changing wait to take "long long" instead of int, still makes the
inline case a little shorter (8 bytes/2 instructions).  Though that is just not
fully true.
If I change main to be:
for (;f();) {
x = 1;
wait(100);
x = 0;
wait(100);
}


Which does not have an infinite loop, the non inline case is one instruction (4
bytes) less so really the cost of > WORD_SIZE should be about twice as much for
the arthimenatic.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-02-24 09:12:20
   date||


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



[Bug middle-end/30908] tree cost for types which are > WORD_SIZE

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


--- Comment #17 from pinskia at gcc dot gnu dot org  2007-02-24 09:14 
---
Though I can tell you for spu-elf, really even WORD_SIZE is 128bits, the
arthematic is more than twice the cost of a 4 byte arthematic.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

Summary|-Os inlines functions that  |tree cost for types which
   |are called more than once   |are > WORD_SIZE
   |(optimization regression)   |


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



Re: [Bug tree-optimization/30911] VRP fails to eliminate range checks in Ada code

2007-02-24 Thread Arnaud Charlet
> I guess that nearly all range checks are eliminated and without bootstrapping
> we have a disconnect between the redundant checks in the rts and the
> testcases.  If it happens that the non-bootstrapped rts is built by the
> host compiler(?).

No, that never happens. The rts is always built with the latest (stage3)
compiler. Otherwise it would not even begin to work fro cross compilers.

Arno


[Bug tree-optimization/30911] VRP fails to eliminate range checks in Ada code

2007-02-24 Thread charlet at adacore dot com


--- Comment #33 from charlet at adacore dot com  2007-02-24 10:12 ---
Subject: Re:  VRP fails to eliminate range checks in Ada code

> I guess that nearly all range checks are eliminated and without bootstrapping
> we have a disconnect between the redundant checks in the rts and the
> testcases.  If it happens that the non-bootstrapped rts is built by the
> host compiler(?).

No, that never happens. The rts is always built with the latest (stage3)
compiler. Otherwise it would not even begin to work fro cross compilers.

Arno


-- 


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



[Bug libstdc++/30945] iostream includes excessive headers - results in large files

2007-02-24 Thread pcarlini at suse dot de


--- Comment #2 from pcarlini at suse dot de  2007-02-24 10:15 ---
Let's consider this simply a duplicate of 28080. I'm improving the situation a
bit, but don't expect miracles ;)

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


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

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


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



[Bug libstdc++/28080] header dependencies

2007-02-24 Thread pcarlini at suse dot de


--- Comment #15 from pcarlini at suse dot de  2007-02-24 10:15 ---
*** Bug 30945 has been marked as a duplicate of this bug. ***


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

 CC||rosenwad at bxscience dot
   ||edu


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



[Bug target/30778] [4.3 Regression] invalid code generation for memset() with -mtune=k8

2007-02-24 Thread ubizjak at gmail dot com


--- Comment #3 from ubizjak at gmail dot com  2007-02-24 10:59 ---
I'm currently testing this patch:

2007-02-24  Uros Bizjak  <[EMAIL PROTECTED]>

* config/i386/i386.md (expand_set_or_movmem_via_loop): Return if
GET_MODE_SIZE (mode) * unroll is less than expected_size.

testsuite/ChangeLog:

2007-02-24  Uros Bizjak  <[EMAIL PROTECTED]>

* gcc.target/i386/pr30778.c: New test.

Index: config/i386/i386.c
===
--- config/i386/i386.c  (revision 122286)
+++ config/i386/i386.c  (working copy)
@@ -13315,13 +13315,19 @@
 {
   rtx out_label, top_label, iter, tmp;
   enum machine_mode iter_mode;
-  rtx piece_size = GEN_INT (GET_MODE_SIZE (mode) * unroll);
-  rtx piece_size_mask = GEN_INT (~((GET_MODE_SIZE (mode) * unroll) - 1));
+  HOST_WIDE_INT min_size = GET_MODE_SIZE (mode) * unroll;
+  rtx piece_size = GEN_INT (min_size);
+  rtx piece_size_mask = GEN_INT (~min_size - 1);
   rtx size;
   rtx x_addr;
   rtx y_addr;
   int i;

+  /* Bail out if expected size is less than minimum size
+ that can be emitted.  */
+  if (expected_size < min_size)
+return;
+
   iter_mode = GET_MODE (count);
   if (iter_mode == VOIDmode)
 iter_mode = word_mode;

There is also an optimization opportunity. When compiling testcase to 32bit
code (with -m32 -O2 -mtune=k8), following is generated:

init_reg_last:
pushl   %ebp
movlreg_stat, %edx
xorl%eax, %eax
movl%esp, %ebp
.L2:
movl$0, (%edx,%eax)
movl$0, 4(%edx,%eax)
movl$0, 8(%edx,%eax)
movl$0, 12(%edx,%eax)
addl$16, %eax
cmpl$16, %eax<<< not needed
jb  .L2  <<< not needed
addl%eax, %edx
movw$0, (%edx)
movb$0, 2(%edx)
leave
ret

We don't need to create loop in this case, as this loop will be executed only
once.


-- 


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



Re: [Bug tree-optimization/30911] VRP fails to eliminate range checks in Ada code

2007-02-24 Thread Arnaud Charlet
> > we have a disconnect between the redundant checks in the rts and the
> > testcases.  If it happens that the non-bootstrapped rts is built by the
> > host compiler(?).
> 
> No, that never happens. The rts is always built with the latest (stage3)
> compiler. Otherwise it would not even begin to work fro cross compilers.

Note that I'm talking about ada/rts, which gets installed under adainclude
and adalib, and used by Ada apps. That's the target run-time.

Maybe you are talking about the part of the Ada run-time which is used by
the compiler itself, in which case, it's considered as a source of the
compiler, and treated as such (built successively by all compilers from
bootstrap compiler to stage2 compiler).

Arno


[Bug tree-optimization/30911] VRP fails to eliminate range checks in Ada code

2007-02-24 Thread charlet at adacore dot com


--- Comment #34 from charlet at adacore dot com  2007-02-24 12:32 ---
Subject: Re:  VRP fails to eliminate range checks in Ada code

> > we have a disconnect between the redundant checks in the rts and the
> > testcases.  If it happens that the non-bootstrapped rts is built by the
> > host compiler(?).
> 
> No, that never happens. The rts is always built with the latest (stage3)
> compiler. Otherwise it would not even begin to work fro cross compilers.

Note that I'm talking about ada/rts, which gets installed under adainclude
and adalib, and used by Ada apps. That's the target run-time.

Maybe you are talking about the part of the Ada run-time which is used by
the compiler itself, in which case, it's considered as a source of the
compiler, and treated as such (built successively by all compilers from
bootstrap compiler to stage2 compiler).

Arno


-- 


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



[Bug tree-optimization/30911] VRP fails to eliminate range checks in Ada code

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


--- Comment #35 from rguenth at gcc dot gnu dot org  2007-02-24 12:38 
---
I was talking about the rts that get's used if I configure with
--disable-bootstrap, do a make and then run make check-ada from within the
gcc/ subdirectory.  As far as I understand that rts seems to be built using
the bootstrap compiler.  At least this would explain the difference in the
number of acats failures I see comparing a bootstrapped tree vs. a
non-bootstrapped tree.


-- 


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



Re: [Bug tree-optimization/30911] VRP fails to eliminate range checks in Ada code

2007-02-24 Thread Arnaud Charlet
> I was talking about the rts that get's used if I configure with
> --disable-bootstrap, do a make and then run make check-ada from within the
> gcc/ subdirectory.  As far as I understand that rts seems to be built using
> the bootstrap compiler.  At least this would explain the difference in the
> number of acats failures I see comparing a bootstrapped tree vs. a
> non-bootstrapped tree.

Sorry, I am not familiar with --disable-bootstrap, but if it builds
the Ada rts with the bootstrap compiler, then that's a clear bug in the
top level makefiles.

Ada makefiles are not designed to build the Ada rts with the host
compiler, so there must be some very strange makefile interaction going
on if true.

You can easily verify that of course by checking your build log.

Arno


[Bug tree-optimization/30911] VRP fails to eliminate range checks in Ada code

2007-02-24 Thread charlet at adacore dot com


--- Comment #36 from charlet at adacore dot com  2007-02-24 12:47 ---
Subject: Re:  VRP fails to eliminate range checks in Ada code

> I was talking about the rts that get's used if I configure with
> --disable-bootstrap, do a make and then run make check-ada from within the
> gcc/ subdirectory.  As far as I understand that rts seems to be built using
> the bootstrap compiler.  At least this would explain the difference in the
> number of acats failures I see comparing a bootstrapped tree vs. a
> non-bootstrapped tree.

Sorry, I am not familiar with --disable-bootstrap, but if it builds
the Ada rts with the bootstrap compiler, then that's a clear bug in the
top level makefiles.

Ada makefiles are not designed to build the Ada rts with the host
compiler, so there must be some very strange makefile interaction going
on if true.

You can easily verify that of course by checking your build log.

Arno


-- 


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



[Bug fortran/30400] [4.2 and 4.1 only] ANY not accepted as mask in FORALL

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


--- Comment #4 from sayle at gcc dot gnu dot org  2007-02-24 15:10 ---
Subject: Bug 30400

Author: sayle
Date: Sat Feb 24 15:09:50 2007
New Revision: 122289

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=122289
Log:
2007-02-24  Roger Sayle  <[EMAIL PROTECTED]>
Paul Thomas <[EMAIL PROTECTED]>

PR fortran/30400
* match.c (match_forall_iterator): Use gfc_match_expr instead
of gfc_match_variable to match the iterator variable.  Return
MATCH_NO if not a variable.  Remove the reset of the symbol's
flavor in cleanup.

* gfortran.dg/forall_10.f90: New test case.


Added:
branches/gcc-4_2-branch/gcc/testsuite/gfortran.dg/forall_10.f90
Modified:
branches/gcc-4_2-branch/gcc/fortran/ChangeLog
branches/gcc-4_2-branch/gcc/fortran/match.c
branches/gcc-4_2-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug tree-optimization/30904] VRP does not track values of shifts and/or bitfields?

2007-02-24 Thread bonzini at gcc dot gnu dot org


--- Comment #8 from bonzini at gnu dot org  2007-02-24 16:07 ---
Subject: Bug 30904

Author: bonzini
Date: Sat Feb 24 16:07:41 2007
New Revision: 122290

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

PR tree-optimization/30904
* gcc.dg/pr30904.c: New test.

Added:
trunk/gcc/testsuite/gcc.dg/pr30904.c
Modified:
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/30944] cstddef:54: internal compiler error: Segmentation fault

2007-02-24 Thread tdepuy at gmail dot com


--- Comment #2 from tdepuy at gmail dot com  2007-02-24 18:24 ---
Actually, I found that I couldn't compile anything with gcc or g++. Even the
codes I was compiling yesterday! Sheesh. So, I restarted. Everything is fine
now in the garden of squirrel. Please close/delete this bug as necessary. 

Um, for future reference, should I change the resolution?


(In reply to comment #1)
> Could you attach the preprocessed source code which you can get by adding
> -save-temps and it will be named something.ii.  Also can you provide the full
> output of "gcc -v" ?
Sure:

[EMAIL PROTECTED]:~$ gcc -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v
--enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr
--enable-shared --with-system-zlib --libexecdir=/usr/lib
--without-included-gettext --enable-threads=posix --enable-nls
--program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu
--enable-libstdcxx-debug --enable-mpfr --enable-checking=release i486-linux-gnu
Thread model: posix
gcc version 4.1.2 20060928 (prerelease) (Ubuntu 4.1.1-13ubuntu5)



> 
> This was all mentioned on http://gcc.gnu.org/bugs.html which comes out when an
> internal compiler error happens.
> 

Yes, it was, and I am a jackass. Apologies. Noted for future reference.


-- 


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



[Bug fortran/30947] New: intrinsic: ALARM

2007-02-24 Thread dfranke at gcc dot gnu dot org
$> cat alarm.f90
program test_alarm
  integer(kind=1) :: sec  = 1
  integer(kind=1) :: h= 0
  integer(kind=1) :: stat = -1

  CALL alarm(sec, h, stat)
  if (stat == -1) call abort()
end program

$> gfortran-svn -fdump-tree-original alarm.f90
$> cat alarm.f90.003t.original
MAIN__ ()
{
  static int1 h = 0;
  static int1 stat = -1;
  static int1 sec = 1;

  _gfortran_set_std (70, 127, 0, 0);
  {
int4 D.1005;
int4 D.1004;
int4 D.1003;

D.1003 = (int4) sec;
D.1004 = (int4) h;
D.1005 = (int4) stat;
_gfortran_alarm_sub_int (&D.1003, &D.1004, &D.1005);
  }
  if (stat == -1)
{
  _gfortran_abort ();
}
}

Here, the status (optional return value) is lost.


-- 
   Summary: intrinsic: ALARM
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dfranke at gcc dot gnu dot org
OtherBugsDependingO 30932
 nThis:


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



[Bug fortran/30948] New: intrinsic: CHDIR

2007-02-24 Thread dfranke at gcc dot gnu dot org
subroutine = {
name = 'chdir';
arg  = 'path';
arg  = 'status';

call = 'CALL chdir(path = string)';
call = 'CALL chdir(path = string, status = int_1)';
call = 'CALL chdir(path = string, status = int_2)';
call = 'CALL chdir(path = string, status = int_4)';
call = 'CALL chdir(path = string, status = int_8)';
};

1. The name of the first dummy argument is "NAME" instead of "PATH" (as
documented)
2. The library does not provide overloads for int1 and int2 (i16?)
3. The documentation does not specify the type of the STATUS argument


-- 
   Summary: intrinsic: CHDIR
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: rejects-valid, documentation
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dfranke at gcc dot gnu dot org
OtherBugsDependingO 30932
 nThis:


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



[Bug c/30949] New: "incompatible pointer type" warning does not point to declaration

2007-02-24 Thread schnetter at aei dot mpg dot de
I passed a pointer of the wrong type to a function.  I received a warning about
this.  This warning contained only little information; it only said that the
pointer types differ.  It did not specify what type was passed, nor what type
was expected, nor where the declaration of the called function is.

A test programme is

int func (int x);
void recv (int (* funcptr) (double x));
void call (void)
{
  recv (func);
}

This programme calls "recv" with a wrong argument.  When I compile this, I
receive the warning below:

$ ~/gcc/bin/gcc --version
gcc (GCC) 4.3.0 20070201 (experimental)
$ ~/gcc/bin/gcc -Wall -c fptr.c 
fptr.c: In function ‘call’:
fptr.c:7: warning: passing argument 1 of ‘recv’ from incompatible pointer type

I would have liked a multi-line warning, pointing to the line which declares
"recv".  I also would have liked an explanation like "the passed argument is of
type int (*)(int), but the type int (*)(double) is expected".


-- 
   Summary: "incompatible pointer type" warning does not point to
declaration
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: schnetter at aei dot mpg dot de
 GCC build triplet: i386-apple-darwin8.8.1
  GCC host triplet: i386-apple-darwin8.8.1
GCC target triplet: i386-apple-darwin8.8.1


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



[Bug c++/30944] cstddef:54: internal compiler error: Segmentation fault

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


--- Comment #3 from pinskia at gcc dot gnu dot org  2007-02-24 18:53 ---
> 4.1.2 20060928 

It should noted that you are using a prerelease of 4.1.2.

Anyways closing as works for me as requested by the reporter.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||WORKSFORME


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



[Bug fortran/30948] intrinsic: CHDIR

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


--- Comment #1 from dfranke at gcc dot gnu dot org  2007-02-24 18:55 ---
4. The chdir()-function is implemented but not documented

$> cat chdir.f90
integer :: s
s = chdir("/tmp")
end

$> gfortran-svn -Wall chdir.f90 && echo ok
ok


-- 


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



[Bug fortran/30950] New: intrinsic: CPU_TIME

2007-02-24 Thread dfranke at gcc dot gnu dot org
subroutine = {
name = 'cpu_time';
arg  = 'x';

call = 'CALL cpu_time(x = real_4)';
call = 'CALL cpu_time(x = real_8)';
};

1. The name of the dummy argument is "TIME" instead of "X" as documented.


-- 
   Summary: intrinsic: CPU_TIME
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: documentation
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dfranke at gcc dot gnu dot org
OtherBugsDependingO 30932
 nThis:


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



[Bug target/30770] [4.3 regression] BOOT_CFLAGS="-O2 -g -mtune=nocona" miscompiled the stage 3 compiler

2007-02-24 Thread ubizjak at gmail dot com


--- Comment #5 from ubizjak at gmail dot com  2007-02-24 19:09 ---
(In reply to comment #2)
> I have verified that revision 119252:
> 
> http://gcc.gnu.org/ml/gcc-cvs/2006-11/msg00907.html
> breaks -mtune=nocona. Jan, can you take a look? Thanks.

Something is still wrong with unrolled_loop stringop handling.

Patch at http://gcc.gnu.org/ml/gcc-patches/2007-02/msg01937.html and the
following patch that disables unrolled loop stringops (for nocona) bootstraps
OK for -mtune=nocona. This applies to -march=athlon64 as well.

Index: i386.c
===
--- i386.c  (revision 122286)
+++ i386.c  (working copy)
@@ -789,10 +789,10 @@
   COSTS_N_INSNS (44),  /* cost of FSQRT instruction.  */
   {{libcall, {{12, loop_1_byte}, {-1, rep_prefix_4_byte}}},
{libcall, {{32, loop}, {2, rep_prefix_8_byte},
- {10, unrolled_loop}, {-1, libcall,
+ /*{10, unrolled_loop},*/ {-1, libcall,
   {{libcall, {{6, loop_1_byte}, {48, loop}, {20480, rep_prefix_4_byte},
{-1, libcall}}},
-   {libcall, {{24, loop}, {64, unrolled_loop},
+   {libcall, {{24, loop}, /*{64, unrolled_loop},*/
  {8192, rep_prefix_8_byte}, {-1, libcall
 };



-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 CC||ubizjak at gmail dot com
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-02-24 19:09:51
   date||


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



[Bug c++/30866] [4.3 regression] Another ICE in calc_dfs_tree()

2007-02-24 Thread dje at gcc dot gnu dot org


--- Comment #4 from dje at gcc dot gnu dot org  2007-02-24 19:11 ---
I see a similar error in the libstdc++ testsuite on AIX:

/tmp/20070223/powerpc-ibm-aix5.2.0.0/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp:
In member function 'typename pb_ds::detail::lu_map_data_::entry_pointer pb_ds::detail::lu_map_data_::allocate_new_entry(typename
pb_ds::detail::types_traits::const_reference,
pb_ds::detail::false_type) [with Key = pb_ds::test::basic_type, Mapped =
pb_ds::test::basic_type, Eq_Fn = std::equal_to,
Allocator = __gnu_cxx::throw_allocator, Update_Policy
=
pb_ds::test::counter_lu_policy_t_<__gnu_cxx::throw_allocator,
5u>]':
/tmp/20070223/powerpc-ibm-aix5.2.0.0/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp:75:
internal compiler error: in calc_dfs_tree, at dominance.c:374


-- 

dje at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||dje at gcc dot gnu dot org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2007-02-24 19:11:03
   date||


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



[Bug middle-end/30951] New: Does not fold x + CST == x and x + CST != x

2007-02-24 Thread rguenth at gcc dot gnu dot org
int foo (int x)
{
  return x + 5 == x;
}

(mine)


-- 
   Summary: Does not fold  x + CST == x and x + CST != x
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: missed-optimization
  Severity: enhancement
  Priority: P3
 Component: middle-end
AssignedTo: rguenth at gcc dot gnu dot org
ReportedBy: rguenth at gcc dot gnu dot org


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



[Bug middle-end/30951] Does not fold x + CST == x and x + CST != x

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


--- Comment #1 from rguenth at gcc dot gnu dot org  2007-02-24 19:55 ---
Subject: Bug 30951

Author: rguenth
Date: Sat Feb 24 19:55:47 2007
New Revision: 122295

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

PR middle-end/30951
* fold-const.c (fold_binary): Fold x +- CST op x for
EQ_EXPR and NE_EXPR.

* gcc.dg/pr30951.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.dg/pr30951.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/fold-const.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug middle-end/30951] Does not fold x + CST == x and x + CST != x

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


--- Comment #2 from rguenth at gcc dot gnu dot org  2007-02-24 19:56 ---
Fixed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug fortran/30865] optional argument passed on to size(...,dim=)

2007-02-24 Thread tkoenig at gcc dot gnu dot org


--- Comment #8 from tkoenig at gcc dot gnu dot org  2007-02-24 21:48 ---
(In reply to comment #7)

> Paul, I tried to apply your patch, but it is rejected.

I applied the patch with a recent trunk, which worked (except
I got a message that the patch file contained CR/LF).

I'm running a regression-test now.

Thomas


-- 


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



[Bug c++/30952] New: Unclear error message when callling via a function pointer

2007-02-24 Thread schnetter at aei dot mpg dot de
When I call a function via a function pointer, then the error message does not
specify which argument contains an error.  Consider the code

typedef void (* subptr) (int * x, void ** y);

void call (subptr sub, int a, int * b)
{
  (* sub) (a, b);
}

when compiled, then I receive the errors

$ ~/gcc/bin/g++ --version
g++ (GCC) 4.3.0 20070201 (experimental)
$ ~/gcc/bin/g++ -c argerror.cc
argerror.cc: In function ‘void call(void (*)(int*, void**), int, int*)’:
argerror.cc:5: error: invalid conversion from ‘int’ to ‘int*’
argerror.cc:5: error: cannot convert ‘int*’ to ‘void**’ in argument passing

Note that the first error does not specify that it appears in the first
function argument, and the second error only says "in argument passing", not
"in the second argument".  None of the errors say that the function *sub is
called.


-- 
   Summary: Unclear error message when callling via a function
pointer
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: schnetter at aei dot mpg dot de
 GCC build triplet: i386-apple-darwin8.8.1
  GCC host triplet: i386-apple-darwin8.8.1
GCC target triplet: i386-apple-darwin8.8.1


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



[Bug fortran/30953] New: intrinsic: CTIME

2007-02-24 Thread dfranke at gcc dot gnu dot org
subroutine = {
name = 'ctime';
arg  = 'time';
arg  = 'result';

call = 'CALL ctime(time = int_8, result = string)';
};

The documentation states:
> Arguments:
>   S  The type shall be of type CHARACTER. 
>   T  The type shall be of type INTEGER(KIND=8). 

But the implement dummy argument names are "time" and "result".


-- 
   Summary: intrinsic: CTIME
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: documentation
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dfranke at gcc dot gnu dot org
OtherBugsDependingO 30392
 nThis:


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



[Bug target/30770] [4.3 regression] BOOT_CFLAGS="-O2 -g -mtune=nocona" miscompiled the stage 3 compiler

2007-02-24 Thread ubizjak at gmail dot com


--- Comment #6 from ubizjak at gmail dot com  2007-02-24 22:54 ---
It was a typo in expand_movmem_epilogue() and expand_setmem_epilogue().
Following patch, fixes this bug and together with patch for PR target/30778
(http://gcc.gnu.org/ml/gcc-patches/2007-02/msg01937.html) enables bootstrap for
all x86_64 targets.

2007-02-24  Uros Bizjak  <[EMAIL PROTECTED]>

PR target/30770
* config/i386/i386.md (expand_movmem_epilogue): Fix typo, mask
count argument with 0x10, not with 0x16.
(expand_setmem_epilogue): Ditto.

Index: i386.c
===
--- i386.c  (revision 122286)
+++ i386.c  (working copy)
@@ -13522,7 +13549,7 @@
   HOST_WIDE_INT countval = INTVAL (count);
   int offset = 0;

-  if ((countval & 0x16) && max_size > 16)
+  if ((countval & 0x10) && max_size > 16)
{
  if (TARGET_64BIT)
{
@@ -13675,7 +13702,7 @@
   HOST_WIDE_INT countval = INTVAL (count);
   int offset = 0;

-  if ((countval & 0x16) && max_size > 16)
+  if ((countval & 0x10) && max_size > 16)
{
  if (TARGET_64BIT)
{


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

  BugsThisDependsOn||30778
 AssignedTo|unassigned at gcc dot gnu   |ubizjak at gmail dot com
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2007-02-24 19:09:51 |2007-02-24 22:54:35
   date||


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



[Bug target/30778] [4.3 Regression] invalid code generation for memset() with -mtune=k8

2007-02-24 Thread ubizjak at gmail dot com


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |ubizjak at gmail dot com
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2007-02-13 09:43:50 |2007-02-24 22:55:36
   date||


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



[Bug middle-end/30509] [4.3 Regression] ice for legal code with -O3

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


--- Comment #6 from hubicka at gcc dot gnu dot org  2007-02-24 22:58 ---
I am testing a fix:
Index: tree-inline.c
===
*** tree-inline.c   (revision 122292)
--- tree-inline.c   (working copy)
*** copy_bb (copy_body_data *id, basic_block
*** 873,879 
  gcc_assert (lookup_stmt_eh_region_fn (id->src_cfun, orig_stmt)
  != 0);

! if (tree_could_throw_p (stmt))
{
  int region = lookup_stmt_eh_region_fn (id->src_cfun,
orig_stmt);
  /* Add an entry for the copied tree in the EH hashtable.
--- 873,892 
  gcc_assert (lookup_stmt_eh_region_fn (id->src_cfun, orig_stmt)
  != 0);

! if (tree_could_throw_p (stmt)
! /* When we are cloning for inlining, we are supposed to
!construct a clone that calls precisely the same functions
!as original.  However IPA optimizers might've proved
!earlier some function calls as non-trapping that might
!render some basic blocks dead that might become
!unreachable.
! 
!We can't update SSA with unreachable blocks in CFG and
thus
!we prevent the scenario by preserving even the "dead" eh
!edges until the point they are later removed by
!fixup_cfg pass.  */
! || (id->transform_call_graph_edges == CB_CGE_MOVE
! && lookup_stmt_eh_region_fn (id->src_cfun, orig_stmt) >
0))
{
  int region = lookup_stmt_eh_region_fn (id->src_cfun,
orig_stmt);
  /* Add an entry for the copied tree in the EH hashtable.


-- 

hubicka at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |hubicka at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2007-01-22 02:17:10 |2007-02-24 22:58:13
   date||


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



[Bug target/30778] [4.3 Regression] invalid code generation for memset() with -mtune=k8

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


--- Comment #4 from hubicka at gcc dot gnu dot org  2007-02-24 23:09 ---
Hi,
testing for expected_size is wrong here - with profile feedback, expected_size
is average size of the block and thus can be smaller than actual size of the
block being copied.
In general we should in this case end up using move_by_pieces so we won't
produce the loop anyway, but still there should be loop header test emitted, I
am just looking on why it is skipped.

Honza


-- 


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



[Bug target/30778] [4.3 Regression] invalid code generation for memset() with -mtune=k8

2007-02-24 Thread ubizjak at gmail dot com


--- Comment #5 from ubizjak at gmail dot com  2007-02-24 23:24 ---
(In reply to comment #4)
> Hi,
> testing for expected_size is wrong here - with profile feedback, expected_size
> is average size of the block and thus can be smaller than actual size of the
> block being copied.
> In general we should in this case end up using move_by_pieces so we won't
> produce the loop anyway, but still there should be loop header test emitted, I
> am just looking on why it is skipped.

Please note, that the proposed patch in gcc-patches ML is a bit different and
also removes loops when number of iterations is 1.


-- 


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



[Bug fortran/30954] New: intrinsic: DATE_AND_TIME

2007-02-24 Thread dfranke at gcc dot gnu dot org
DATE_AND_TIME has four optional arguments, thus 
  CALL date_and_time()
is valid.

As all arguments are INTENT(out), 
   _gfortran_date_and_time (0B, 0B, 0B, 0B, 0, 0, 0);
is sort of a no-op and can be omitted.


-- 
   Summary: intrinsic: DATE_AND_TIME
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Keywords: missed-optimization
  Severity: minor
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dfranke at gcc dot gnu dot org
OtherBugsDependingO 30392
 nThis:


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



[Bug target/30770] [4.3 regression] BOOT_CFLAGS="-O2 -g -mtune=nocona" miscompiled the stage 3 compiler

2007-02-24 Thread uros at gcc dot gnu dot org


--- Comment #7 from uros at gcc dot gnu dot org  2007-02-24 23:29 ---
Subject: Bug 30770

Author: uros
Date: Sat Feb 24 23:29:30 2007
New Revision: 122301

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=122301
Log:
PR target/30770
* config/i386/i386.md (expand_movmem_epilogue): Fix typo, mask
count argument with 0x10, not with 0x16.
(expand_setmem_epilogue): Ditto.


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


-- 


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



[Bug target/30778] [4.3 Regression] invalid code generation for memset() with -mtune=k8

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


--- Comment #6 from hubicka at gcc dot gnu dot org  2007-02-24 23:47 ---
Hi,
this is version I ended up with.  In general I don't think that code should
handle with such a small constant sizes, we probably should bump move_by_pieces
constants since it can do better job using proper moves not triggering partial
memory stalls.

This patch however fixes one extra pasto and makes the prologue test
unconditional - I was a bit overagressive minimizing amount of RTL produced
that only leads to bugs in side corners.

Thanks a lot for looking into it - I should've dealt with this bug a lot
sooner, but I was very busy last week...
Honza

Index: config/i386/i386.c
===
--- config/i386/i386.c  (revision 122292)
+++ config/i386/i386.c  (working copy)
@@ -13522,7 +13522,7 @@ expand_movmem_epilogue (rtx destmem, rtx
   HOST_WIDE_INT countval = INTVAL (count);
   int offset = 0;

-  if ((countval & 0x16) && max_size > 16)
+  if ((countval & 0x10) && max_size > 16)
{
  if (TARGET_64BIT)
{
@@ -13539,8 +13539,8 @@ expand_movmem_epilogue (rtx destmem, rtx
emit_strmov (destmem, srcmem, destptr, srcptr, DImode, offset);
  else
{
- emit_strmov (destmem, srcmem, destptr, srcptr, DImode, offset);
- emit_strmov (destmem, srcmem, destptr, srcptr, DImode, offset +
4);
+ emit_strmov (destmem, srcmem, destptr, srcptr, SImode, offset);
+ emit_strmov (destmem, srcmem, destptr, srcptr, SImode, offset +
4);
}
  offset += 8;
}
@@ -13675,7 +13675,7 @@ expand_setmem_epilogue (rtx destmem, rtx
   HOST_WIDE_INT countval = INTVAL (count);
   int offset = 0;

-  if ((countval & 0x16) && max_size > 16)
+  if ((countval & 0x10) && max_size > 16)
{
  if (TARGET_64BIT)
{
@@ -14118,19 +14118,22 @@ ix86_expand_movmem (rtx dst, rtx src, rt
   gcc_assert (desired_align >= 1 && align >= 1);

   /* Ensure that alignment prologue won't copy past end of block.  */
-  if ((size_needed > 1 || (desired_align > 1 && desired_align > align))
-  && !count)
+  if (size_needed > 1 || (desired_align > 1 && desired_align > align))
 {
-  epilogue_size_needed = MAX (size_needed - 1, desired_align - align);
+  enum machine_mode mode = GET_MODE (count_exp);

+  if (mode == VOIDmode)
+   mode = DImode; 
+
+  epilogue_size_needed = MAX (size_needed - 1, desired_align - align);
   /* Epilogue always copies COUNT_EXP & EPILOGUE_SIZE_NEEDED bytes.
 Make sure it is power of 2.  */
   epilogue_size_needed = smallest_pow2_greater_than
(epilogue_size_needed);

   label = gen_label_rtx ();
-  emit_cmp_and_jump_insns (count_exp,
+  emit_cmp_and_jump_insns (force_reg (mode, count_exp),
   GEN_INT (epilogue_size_needed),
-  LTU, 0, GET_MODE (count_exp), 1, label);
+  LTU, 0, mode, 1, label);
   if (expected_size == -1 || expected_size < epilogue_size_needed)
predict_jump (REG_BR_PROB_BASE * 60 / 100);
   else
@@ -14430,11 +14433,14 @@ ix86_expand_setmem (rtx dst, rtx count_e
 promoted_val = promote_duplicated_reg_to_size (val_exp, size_needed,
   desired_align, align);
   /* Ensure that alignment prologue won't copy past end of block.  */
-  if ((size_needed > 1 || (desired_align > 1 && desired_align > align))
-  && !count)
+  if (size_needed > 1 || (desired_align > 1 && desired_align > align))
 {
-  epilogue_size_needed = MAX (size_needed - 1, desired_align - align);
+  enum machine_mode mode = GET_MODE (count_exp);
+
+  if (mode == VOIDmode)
+   mode = DImode; 

+  epilogue_size_needed = MAX (size_needed - 1, desired_align - align);
   /* Epilogue always copies COUNT_EXP & EPILOGUE_SIZE_NEEDED bytes.
 Make sure it is power of 2.  */
   epilogue_size_needed = smallest_pow2_greater_than
(epilogue_size_needed);
@@ -14446,9 +14452,9 @@ ix86_expand_setmem (rtx dst, rtx count_e
   if (epilogue_size_needed > 2 && !promoted_val)
 force_loopy_epilogue = true;
   label = gen_label_rtx ();
-  emit_cmp_and_jump_insns (count_exp,
+  emit_cmp_and_jump_insns (force_reg (mode, count_exp),
   GEN_INT (epilogue_size_needed),
-  LTU, 0, GET_MODE (count_exp), 1, label);
+  LTU, 0, mode, 1, label);
   if (expected_size == -1 || expected_size <= epilogue_size_needed)
predict_jump (REG_BR_PROB_BASE * 60 / 100);
   else


-- 


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



[Bug fortran/30955] New: intrinsic: FGET

2007-02-24 Thread dfranke at gcc dot gnu dot org
subroutine = {
name = 'fget';
arg  = 'count';
arg  = 'status';   /* optional */

call = 'CALL fget(count = char)';
call = 'CALL fget(count = char, status = int_1)';
call = 'CALL fget(count = char, status = int_2)';
call = 'CALL fget(count = char, status = int_4)';
call = 'CALL fget(count = char, status = int_8)';
};

1. The argument name of the first dummy argument name is "count", documented is
"c. Neither one is very descriptive for fget, IMO plain "c" is better than
"count"
2. The first argument shall accept only CHARACTER, but CHARACTER(*) is also
allowed:

$> cat fget.f90
character(len=10) :: s
s = '0123456789'
CALL fget(s)
write(*,*) s
end
$> gfortran-svn fget.f90 && ./a.out
x
 x

I.e. the string is cleared and the first character is set to the input.
This also "works" with substrings, e.g. s(3:6). 

In my eyes I would consider the blanking the bug, not that a string is allowed.
Consistent behaviour should overwrite the first character, not ALL of them.

3. The optional status argument accepts variables of type default integer only.


-- 
   Summary: intrinsic: FGET
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dfranke at gcc dot gnu dot org
OtherBugsDependingO 30932
 nThis:


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



[Bug libfortran/30918] Failure to skip commented out NAMELIST

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


--- Comment #4 from jvdelisle at gcc dot gnu dot org  2007-02-25 00:28 
---
Found it.  Patch on the way.


-- 

jvdelisle at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug c/30956] New: ice on final.c

2007-02-24 Thread sherpya at netfarm dot it
When compiling fribidi-0.10.7 the compiler fails here:
gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -Wall -pedantic -fno-strict-aliasing -MT
fribidi_utils.lo -MD -MP -MF .deps/fribidi_utils.Tpo -c fribidi_utils.c -o
fribidi_utils.o
fribidi_utils.c: In function 'fribidi_map_range':
fribidi_utils.c:108: internal compiler error: in rest_of_handle_final, at
final.c:3942

fribidi-0.10.4 is ok

Compiler version ming32 4.1.2
compile options:
Configured with: ../gcc-4.1.2/configure --with-gcc --with-ld=/mingw/bin/ld
--with-gnu-as --program-suffix=-4.1 --enable-version-specific-runtime-libs
--disable-libstdcxx-debug --host=mingw32 --target=mingw32 --prefix=/mingw
--enable-threads=win32 --disable-nls --enable-languages=c,c++
--disable-win32-registry --disable-shared --enable-sjlj-exceptions
--disable-interpreter --disable-werror --enable-hash-synchronization
Thread model: win32
I'll attach dumps


-- 
   Summary: ice on final.c
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: sherpya at netfarm dot it
 GCC build triplet: i686-pc-mingw32
  GCC host triplet: i686-pc-mingw32
GCC target triplet: i686-pc-mingw32


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



[Bug c/30956] ice on final.c

2007-02-24 Thread sherpya at netfarm dot it


--- Comment #1 from sherpya at netfarm dot it  2007-02-25 02:26 ---
Detailed output:

gcc -v -save-temps -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -Wall -pedantic
-fno-strict-aliasing -MT fribidi_utils.lo -MD -MP -MF .deps/fribidi_utils.Tpo
-c fribidi_utils.c -o fribidi_utils.o
Using built-in specs.
Target: mingw32
Configured with: ../gcc-4.1.2/configure --with-gcc --with-ld=/mingw/bin/ld
--with-gnu-as --program-suffix=-4.1 --enable-version-specific-runtime-libs
--disable-libstdcxx-debug --host=mingw32 --target=mingw32 --prefix=/mingw
--enable-threads=win32 --disable-nls --enable-languages=c,c++
--disable-win32-registry --disable-shared --enable-sjlj-exceptions
--disable-interpreter --disable-werror --enable-hash-synchronization
Thread model: win32
gcc version 4.1.2 [Sherpya]
 j:/mingw/bin/../libexec/gcc/mingw32/4.1.2/cc1.exe -E -quiet -v -I. -I. -I.
-iprefix j:\mingw\bin\../lib/gcc/mingw32/4.1.2/ -MD fribidi_utils.d -MF
.deps/fribidi_utils.Tpo -MP -MT fribidi_utils.lo -MQ fribidi_utils.o
-DHAVE_CONFIG_H fribidi_utils.c -Wall -pedantic -fno-strict-aliasing
-fworking-directory -O2 -fpch-preprocess -o fribidi_utils.i
ignoring nonexistent directory "j:/MinGW/mingw32/include"
#include "..." search starts here:
#include <...> search starts here:
 .
 .
 .
 j:/mingw/bin/../lib/gcc/mingw32/4.1.2/include
 j:/MinGW/include
 /mingw/include
 j:/MinGW/lib/gcc/mingw32/4.1.2/include
 /mingw/include
End of search list.
 j:/mingw/bin/../libexec/gcc/mingw32/4.1.2/cc1.exe -fpreprocessed
fribidi_utils.i -quiet -dumpbase fribidi_utils.c -auxbase-strip fribidi_utils.o
-g -O2 -Wall -pedantic -version -fno-strict-aliasing -o fribidi_utils.s
GNU C version 4.1.2 [Sherpya] (mingw32)
compiled by GNU C version 4.1.1 [Sherpya].
GGC heuristics: --param ggc-min-expand=99 --param ggc-min-heapsize=131005
Compiler executable checksum: 189b7f34c85af66fb411018b3b42b485
fribidi_utils.c: In function 'fribidi_map_range':
fribidi_utils.c:108: internal compiler error: in rest_of_handle_final, at
final.c:3942


-- 

sherpya at netfarm dot it changed:

   What|Removed |Added

 CC||sherpya at netfarm dot it


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



[Bug libfortran/30918] Failure to skip commented out NAMELIST

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


--- Comment #5 from jvdelisle at gcc dot gnu dot org  2007-02-25 02:27 
---
Subject: Bug 30918

Author: jvdelisle
Date: Sun Feb 25 02:27:17 2007
New Revision: 122307

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

PR libgfortran/30918
* io/listread.c (namelist_read): Eat comment line.

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


-- 


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



[Bug libfortran/30918] Failure to skip commented out NAMELIST

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


--- Comment #6 from jvdelisle at gcc dot gnu dot org  2007-02-25 02:30 
---
Subject: Bug 30918

Author: jvdelisle
Date: Sun Feb 25 02:30:14 2007
New Revision: 122308

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

PR libgfortran/30918
* gfortran.dg/namelist_26.f90: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/namelist_26.f90
Modified:
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c/30956] ice on final.c

2007-02-24 Thread sherpya at netfarm dot it


--- Comment #2 from sherpya at netfarm dot it  2007-02-25 02:33 ---
Created an attachment (id=13104)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=13104&action=view)
source .s and .i

the full source of program can be found here:
http://fribidi.org/download/fribidi-0.10.7.tar.gz


-- 


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



[Bug fortran/30865] optional argument passed on to size(...,dim=)

2007-02-24 Thread patchapp at dberlin dot org


--- Comment #9 from patchapp at dberlin dot org  2007-02-25 02:46 ---
Subject: Bug number PR 30865

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


-- 


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



[Bug libfortran/30918] Failure to skip commented out NAMELIST

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


--- Comment #7 from jvdelisle at gcc dot gnu dot org  2007-02-25 03:39 
---
Subject: Bug 30918

Author: jvdelisle
Date: Sun Feb 25 03:39:19 2007
New Revision: 122309

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

PR libgfortran/30918
* io/listread.c (namelist_read): Eat comment line.

2007-02-24  Jerry DeLisle  <[EMAIL PROTECTED]>

PR libgfortran/30918
* gfortran.dg/namelist_26.f90: New test.

Added:
branches/gcc-4_2-branch/gcc/testsuite/gfortran.dg/namelist_26.f90
Modified:
branches/gcc-4_2-branch/gcc/testsuite/ChangeLog
branches/gcc-4_2-branch/libgfortran/ChangeLog
branches/gcc-4_2-branch/libgfortran/io/list_read.c


-- 


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



[Bug middle-end/30956] ice on final.c

2007-02-24 Thread dannysmith at users dot sourceforge dot net


--- Comment #3 from dannysmith at users dot sourceforge dot net  2007-02-25 
03:39 ---
On trunk and 4.2.0 (target i686-pc-mingw32), invalid code is diagnosed
correctly:


fribidi_utils.c: In function 'fribidi_map_range':
fribidi_utils.c:72: error: 'fribidi_map_range': definition is marked as
dllimport

Danny


-- 


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



[Bug libfortran/30918] Failure to skip commented out NAMELIST

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


--- Comment #8 from jvdelisle at gcc dot gnu dot org  2007-02-25 03:52 
---
Subject: Bug 30918

Author: jvdelisle
Date: Sun Feb 25 03:52:11 2007
New Revision: 122310

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

PR libgfortran/30918
* io/listread.c (namelist_read): Eat comment line.

2007-02-24  Jerry DeLisle  <[EMAIL PROTECTED]>

PR libgfortran/30918
* gfortran.dg/namelist_26.f90: New test.

Added:
branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/namelist_26.f90
Modified:
branches/gcc-4_1-branch/gcc/testsuite/ChangeLog
branches/gcc-4_1-branch/libgfortran/ChangeLog
branches/gcc-4_1-branch/libgfortran/io/list_read.c


-- 


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



[Bug libfortran/30918] Failure to skip commented out NAMELIST

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


--- Comment #9 from jvdelisle at gcc dot gnu dot org  2007-02-25 04:00 
---
Fixed on 4.3, 4.2, and 4.1
Thanaks Herald for report.  Please let me know if you have any other troubles.


-- 

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



[Bug fortran/30285] gfortran excessive memory usage with large modules

2007-02-24 Thread bdavis at gcc dot gnu dot org


--- Comment #8 from bdavis at gcc dot gnu dot org  2007-02-25 04:42 ---
the below patch looks like it fixes the problem.  any chance this could be
tryed on the reported problem ?

--bud


Index: gcc/gcc/fortran/module.c
===
--- gcc/gcc/fortran/module.c(revision 122310)
+++ gcc/gcc/fortran/module.c(working copy)
@@ -3598,6 +3598,7 @@
 write_common (gfc_symtree *st)
 {
   gfc_common_head *p;
+  pointer_info *pinfo;
   const char * name;
   int flags;

@@ -3607,6 +3608,14 @@
   write_common (st->left);
   write_common (st->right);

+  /* only need to write a given symtree entry once for 
+ common blocks */ 
+  p = st->n.common; 
+  pinfo = find_pointer(p);
+
+  if (pinfo != NULL && pinfo->u.wsym.state != UNREFERENCED)
+return;
+
   mio_lparen ();

   /* Write the unmangled name.  */
@@ -3614,7 +3623,6 @@

   mio_pool_string (&name);

-  p = st->n.common;
   mio_symbol_ref (&p->head);
   flags = p->saved ? 1 : 0;
   if (p->threadprivate) flags |= 2;


-- 


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



[Bug target/30778] [4.3 Regression] invalid code generation for memset() with -mtune=k8

2007-02-24 Thread ubizjak at gmail dot com


--- Comment #7 from ubizjak at gmail dot com  2007-02-25 07:54 ---
(In reply to comment #6)

> This patch however fixes one extra pasto and makes the prologue test
> unconditional - I was a bit overagressive minimizing amount of RTL produced
> that only leads to bugs in side corners.

This patch ICEs for "-O2 -march=nocona -m32" on the testcase above:

pr30778.c: In function ‘init_reg_last’:
pr30778.c:21: internal compiler error: in predict_jump, at
config/i386/i386.c:13246

BTW: For -march=k8, we now generate:

movqreg_stat(%rip), %rax
movq$0, (%rax)
addq$8, %rax
movq$0, (%rax)
addq$8, %rax
movq$0, (%rax)
addq$8, %rax
movl$0, (%rax)
addq$4, %rax
movw$0, (%rax)
movb$0, 2(%rax)
ret

and previously:

movqreg_stat(%rip), %rax
movq$0, (%rax)
movq$0, 8(%rax)
movq$0, 16(%rax)
movl$0, 24(%rax)
movw$0, 28(%rax)
movb$0, 30(%rax)
ret

(I don't know if this is intentionally, just want to point it out.)


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 AssignedTo|ubizjak at gmail dot com|unassigned at gcc dot gnu
   ||dot org
 Status|ASSIGNED|NEW


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