[Bug c++/24967] New: ICE with misplaced typename

2005-11-21 Thread christoph dot pesch at siemens dot com
Hi,

my latest typo (a typename in the return statement of a template 
function) caused an internal compiler error with gcc 4.0.2 and 
gcc 3.4.3. (No ICE with gcc 3.3.4).

#include utility

templatetypename It typename std::pairIt,double
test(It it)
{
  return typename std::pairIt,double(it, 0.0); // ICE
  // return std::pairIt,double(it, 0.0);   // no ICE
}


Output of gcc:
[EMAIL PROTECTED]/src/c++/test]214: g++ -c ice.cpp
ice.cpp: In function 'std::pairIt, double test(It)':
ice.cpp:6: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See URL:http://gcc.gnu.org/bugs.html for instructions.


I hope this is not a duplicate of an allready existing
bug report. (In the past I was not very successfully in
searching for known bugs).

Best regards and thanks for all the great work on gcc,
Christoph


-- 
   Summary: ICE with misplaced typename
   Product: gcc
   Version: 4.0.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: christoph dot pesch at siemens dot com
  GCC host triplet: i686-pc-linux-gnu


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



[Bug target/24951] [4.1/4.2 Regression] ICE: RTL check: expected code 'const_int', have 'const_double' in output_vec_const_move, at config/rs6000/rs6000.c

2005-11-21 Thread bonzini at gcc dot gnu dot org


--- Comment #2 from bonzini at gcc dot gnu dot org  2005-11-21 08:24 ---
easy_altivec_constant should only be called with AltiVec integer vector modes,
all of which can be represented with a const_vector of const_ints.  Anyway,
looking into it.

Paolo


-- 

bonzini at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |bonzini at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2005-11-21 02:15:40 |2005-11-21 08:24:28
   date||


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



[Bug libfortran/24909] libmatmul.a breaks darwin build

2005-11-21 Thread ebotcazou at gcc dot gnu dot org


--- Comment #9 from ebotcazou at gcc dot gnu dot org  2005-11-21 09:02 
---
 It should now work again on all supported platforms.

Confirmed on all versions of Solaris.  Thanks!


-- 


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



[Bug libfortran/24903] dotprod should use conj?

2005-11-21 Thread fxcoudert at gcc dot gnu dot org


--- Comment #2 from fxcoudert at gcc dot gnu dot org  2005-11-21 09:11 
---
(In reply to comment #0)
 conjga = conj(*pa);
 or
 conjga = conjl(*pa);
 or
 conjga = conjf(*pa);

I'm ready to do that, but since complex numbers in C are always a pain, I want
to know: are we sure that conj/conjf/conjl are *always* available? I mean, are
they part of the things gcc provides even if there is no library support for
them in the runtime libm?


-- 


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



[Bug target/24951] [4.1/4.2 Regression] ICE: RTL check: expected code 'const_int', have 'const_double' in output_vec_const_move, at config/rs6000/rs6000.c

2005-11-21 Thread bonzini at gcc dot gnu dot org


--- Comment #3 from bonzini at gcc dot gnu dot org  2005-11-21 09:12 ---
Got a patch, but I am curious about Andrew's comment.  I couldn't find a reason
why r106588 *introduced* the bug rather than unveiling a latent one.


-- 


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



[Bug rtl-optimization/24823] [4.1/4.2 Regression] ICE in insert_save, at caller-save.c:719

2005-11-21 Thread krebbel at gcc dot gnu dot org


--- Comment #11 from krebbel at gcc dot gnu dot org  2005-11-21 09:29 
---
Ok, knowing that this may only happen if the return value
of a function has a complex type a trivial fix could look
like this:

Index: gcc/flow.c
===
*** gcc/flow.c.orig 2005-11-15 14:21:23.0 +0100
--- gcc/flow.c  2005-11-21 09:34:05.0 +0100
*** mark_used_regs (struct propagate_block_i
*** 4020,4026 
   recursively scan the value being stored.  */

if ((GET_CODE (testreg) == PARALLEL
! GET_MODE (testreg) == BLKmode)
|| (REG_P (testreg)
 (regno = REGNO (testreg),
! (regno == FRAME_POINTER_REGNUM
--- 4020,4027 
   recursively scan the value being stored.  */

if ((GET_CODE (testreg) == PARALLEL
! (GET_MODE (testreg) == BLKmode
!|| COMPLEX_MODE_P (GET_MODE (testreg
|| (REG_P (testreg)
 (regno = REGNO (testreg),
! (regno == FRAME_POINTER_REGNUM

This fixes the problem for my x86_64 crosscompiler but certainly
needs further testing. Could somebody with an Intel 64bit system
try to bootstrap this? Bootstraps on s390 wouldn't help here because
we do not return complex types that way.


-- 


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



[Bug middle-end/17965] ice in expand_call

2005-11-21 Thread jakub at gcc dot gnu dot org


--- Comment #12 from jakub at gcc dot gnu dot org  2005-11-21 09:41 ---
Subject: Bug 17965

Author: jakub
Date: Mon Nov 21 09:41:42 2005
New Revision: 107289

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=107289
Log:
PR middle-end/17965
* calls.c (expand_call, emit_library_call_value_1): Use xmalloc/free
instead of alloca for really big argument sizes.

* gcc.c-torture/compile/20050622-1.c: New test.

Added:
   
branches/gcc-4_0-rhl-branch/gcc/testsuite/gcc.c-torture/compile/20050622-1.c
Modified:
branches/gcc-4_0-rhl-branch/gcc/ChangeLog
branches/gcc-4_0-rhl-branch/gcc/calls.c
branches/gcc-4_0-rhl-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug c/20303] [4.0 only] Can't push more than 16 nested visibility

2005-11-21 Thread jakub at gcc dot gnu dot org


--- Comment #13 from jakub at gcc dot gnu dot org  2005-11-21 09:43 ---
Subject: Bug 20303

Author: jakub
Date: Mon Nov 21 09:43:10 2005
New Revision: 107290

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=107290
Log:
2005-05-18  H.J. Lu  [EMAIL PROTECTED]

PR middle-end/20303
* c-pragma.c: Include vec.h.
(handle_pragma_visibility): Use VEC.

* doc/invoke.texi: Remove the nested visibility push limit.

2005-07-22  Jakub Jelinek  [EMAIL PROTECTED]

PR middle-end/20303
* gcc.dg/visibility-d.c: New test.

Added:
branches/gcc-4_0-rhl-branch/gcc/testsuite/gcc.dg/visibility-d.c
Modified:
branches/gcc-4_0-rhl-branch/gcc/ChangeLog
branches/gcc-4_0-rhl-branch/gcc/c-pragma.c
branches/gcc-4_0-rhl-branch/gcc/doc/invoke.texi
branches/gcc-4_0-rhl-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug ada/24946] [4.1/4.2 Regression] make[7]: rc: Command not found

2005-11-21 Thread charlet at gcc dot gnu dot org


--- Comment #1 from charlet at gcc dot gnu dot org  2005-11-21 09:43 ---
I got a bugzilla internal error when trying to attach a proposed
patch, so here it is inline (be careful with tabs and spaces,
I'd suggest applying the patch manually):


--- libada/Makefile.in.orig 2005-11-21 04:34:39.422364000 -0500
+++ libada/Makefile.in  2005-11-21 04:34:17.812698000 -0500
@@ -75,6 +75,9 @@
 prefix=$(prefix) \
 STAGE_PREFIX=$(STAGE_PREFIX) \
CC=$(host_cc_for_libada) \
+   AR_FOR_TARGET=$(AR_FOR_TARGET) \
+   RANLIB_FOR_TARGET=$(RANLIB_FOR_TARGET) \
+   GCC_FOR_TARGET=$(GCC_FOR_TARGET) \
 CFLAGS=$(CFLAGS) $(WARN_CFLAGS)

 # Rules to build gnatlib.


Apparently the libada Makefile is not passing some variables to ada/Makefile
properly, so this patch might address the problem you are seeing.
Not clear why we are not seeing this problem on other platforms so far
though.

Arno


-- 


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



[Bug target/17828] -O2 -fPIC doesn't work with switches in linkonce functions and new binutils

2005-11-21 Thread jakub at gcc dot gnu dot org


--- Comment #10 from jakub at gcc dot gnu dot org  2005-11-21 09:52 ---
Subject: Bug 17828

Author: jakub
Date: Mon Nov 21 09:52:20 2005
New Revision: 107297

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=107297
Log:
PR target/17828
* g++.old-deja/g++.other/comdat5.C: New test.
* g++.old-deja/g++.other/comdat5-aux.cc: New file.

Added:
   
branches/gcc-4_0-rhl-branch/gcc/testsuite/g++.old-deja/g++.other/comdat5-aux.cc
branches/gcc-4_0-rhl-branch/gcc/testsuite/g++.old-deja/g++.other/comdat5.C
Modified:
branches/gcc-4_0-rhl-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug debug/20268] With optimization, generating incomplete debug information

2005-11-21 Thread jakub at gcc dot gnu dot org


--- Comment #12 from jakub at gcc dot gnu dot org  2005-11-21 09:55 ---
Subject: Bug 20268

Author: jakub
Date: Mon Nov 21 09:55:14 2005
New Revision: 107300

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=107300
Log:
PR debug/20268
* dwarf2out.c (add_high_low_attributes): New function, extracted from
gen_lexical_block_die.
(gen_lexical_block_die, gen_inlined_subroutine_die): Call it.

Modified:
branches/gcc-4_0-rhl-branch/gcc/ChangeLog
branches/gcc-4_0-rhl-branch/gcc/dwarf2out.c


-- 


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



[Bug libstdc++/1773] __cplusplus defined to 1, should be 199711L

2005-11-21 Thread pcarlini at suse dot de


--- Comment #31 from pcarlini at suse dot de  2005-11-21 10:40 ---
(In reply to comment #30)
 Created an attachment (id=10303)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10303action=view) [edit]
 Defines __cplusplus to 199711L and overrides it in c++config.h for solaris 8

As-is, this cannot be right, because that file is shared between *all* the
Solaris version besides 5 and 6. See configure.host around line 247. If I 
understand correctly Comment #8, the corrected default should be overriden
*only* for Solaris 8.

In general, I'm also in favor of this approach, we all agree about that (see
Comment #24, 25, 26...). Therefore, my plan would be involving Eric for some
tests on *all* the Solaris versions of an amended patch which really would
deal specially with Solaris 8 only. It would involve adding a solaris2.8 dir
in config/os/solaris, and tweaking configure.host to use the existing
solaris2.7 dir for 2.7, 2.9, 2.10... , i.e., skipping 2.8, and the new 2.8
dir (getting the override) for 2.8 only.

Are you willing to work on that?


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

 CC||ebotcazou at libertysurf dot
   ||fr


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



[Bug c++/17972] [3.4 Regression] const/pure functions result in bad asm

2005-11-21 Thread gdr at gcc dot gnu dot org


--- Comment #39 from gdr at gcc dot gnu dot org  2005-11-21 10:41 ---
Fixed in 4.0.0 and higher.
Won't fix for 3.4.x


-- 

gdr at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED
   Target Milestone|3.4.5   |4.0.0


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



[Bug target/14552] compiled trivial vector intrinsic code is ineffiencent

2005-11-21 Thread pluto at agmk dot net


--- Comment #16 from pluto at agmk dot net  2005-11-21 11:29 ---
without Uros' mmx-patch the gcc-4.1.0-20051113 generates amazing code:
(gcc -O3 -march=pentium3 -S -fomit-frame-pointer pr14552.c)

test:   subl$20, %esp
movlw, %eax
movlw+4, %edx
movl%ebx, 8(%esp)
movl%esi, 12(%esp)
movl%eax, (%esp)
movl%edx, 4(%esp)
movswl  (%esp),%esi
movl%edi, 16(%esp)
movswl  4(%esp),%ecx
movswl  2(%esp),%edi
movswl  6(%esp),%ebx
addl%esi, %esi
addl%ecx, %ecx
movzwl  %si, %esi
sall$17, %edi
movzwl  %cx, %ecx
sall$17, %ebx
movl%edi, %eax
movl16(%esp), %edi
movl%ebx, %edx
orl %esi, %eax
movl8(%esp), %ebx
orl %ecx, %edx
movl12(%esp), %esi
movl%eax, w
movl%edx, w+4
movlw, %eax
movlw+4, %edx
movl%eax, dw
movl%edx, dw+4
addl$20, %esp
ret
.size   test, .-test
.comm   dw,8,8
.comm   w,8,8
.ident  GCC: (GNU) 4.1.0 20051113 (experimental)
.section.note.GNU-stack,,@progbits


-- 


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



[Bug target/14552] compiled trivial vector intrinsic code is inefficient

2005-11-21 Thread pcarlini at suse dot de


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

 AssignedTo|uros at kss-loka dot si |unassigned at gcc dot gnu
   ||dot org
 Status|ASSIGNED|NEW
Summary|compiled trivial vector |compiled trivial vector
   |intrinsic code is   |intrinsic code is
   |ineffiencent|inefficient


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



[Bug target/14552] compiled trivial vector intrinsic code is inefficient

2005-11-21 Thread pcarlini at suse dot de


--- Comment #17 from pcarlini at suse dot de  2005-11-21 11:34 ---
Sorry.


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |uros at kss-loka dot si
   |dot org |
 Status|NEW |ASSIGNED


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



[Bug libfortran/24432] [4.1 regression] Missing symbols

2005-11-21 Thread ebotcazou at gcc dot gnu dot org


--- Comment #15 from ebotcazou at gcc dot gnu dot org  2005-11-21 11:45 
---
 FreeBSD has the same problem with missing long double math
 functions.  I tried to add an appropriate XFAIL clause for
 FreeBSD, but dejagnu would still process the file.

Huh... the following patch fixes the problem for me.  Can I install it?

Index: lib/target-supports.exp
===
--- lib/target-supports.exp (revision 107161)
+++ lib/target-supports.exp (working copy)
@@ -530,6 +530,7 @@
puts $f integer,parameter :: k = 
 puts $f   selected_real_kind (precision (0.0_8) + 1)
 puts $f real(kind=k) :: x
+puts $f x = cos (x);
puts $f end
close $f


-- 


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



[Bug libfortran/24432] [4.1 regression] Missing symbols

2005-11-21 Thread fxcoudert at gcc dot gnu dot org


--- Comment #16 from fxcoudert at gcc dot gnu dot org  2005-11-21 12:04 
---
(In reply to comment #15)
 Huh... the following patch fixes the problem for me.  Can I install it?

Fine with me. Consider approved after testing on some C99-aware platform (like
solaris2.10). Please commit on 4.1 as well as mainline.


-- 


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



[Bug c/24968] New: wrong will never be executed warning

2005-11-21 Thread oliverst at online dot de
The following source will report

C:\Dev-Cpp\Projects\test-stlport\main_17.cpp In function `void test_17()': 
12 C:\Dev-Cpp\Projects\test-stlport\main_17.cpp [Warning] will never be
executed
12 C:\Dev-Cpp\Projects\test-stlport\main_17.cpp [Warning] will never be
executed

when using -Wunreachable-code

I reduced this from a way bigger source file with STL and even more if - else
involved and this was the only two warnings from the beginning (whole file) to
the end (this sample). Happens with C and C++.

void test_17()
{
int pos = 1; 
while(1) {
if ( pos )
{
if ( pos == 2 ) /* */
{
}
else
{
break;
}
}
else
{
break;
}
}
}

C:\MinGW_3.4.4\bingcc -v
Reading specs from ../lib/gcc/mingw32/3.4.4/specs
Configured with: ../gcc/configure --with-gcc --with-gnu-ld --with-gnu-as
--host=
mingw32 --target=mingw32 --prefix=/mingw --enable-threads --disable-nls
--enable
-languages=c,c++,f77,ada,objc,java --disable-win32-registry --disable-shared
--e
nable-sjlj-exceptions --enable-libgcj --disable-java-awt --without-x
--enable-ja
va-gc=boehm --disable-libgcj-debug --enable-interpreter
--enable-hash-synchroniz
ation --enable-libstdcxx-debug
Thread model: win32
gcc version 3.4.4 (mingw special)


-- 
   Summary: wrong will never be executed warning
   Product: gcc
   Version: 3.4.4
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: oliverst at online dot de


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



[Bug c/24969] New: [4.1/4.2 Regression] tmpdir-gcc.dg-struct-layout-1/t026 fails execution

2005-11-21 Thread rguenth at gcc dot gnu dot org
FAIL: tmpdir-gcc.dg-struct-layout-1/t026 c_compat_x_tst.o-c_compat_y_tst.o
execute

(more specifically, test2495 fails)


-- 
   Summary: [4.1/4.2 Regression] tmpdir-gcc.dg-struct-layout-1/t026
fails execution
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: critical
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rguenth at gcc dot gnu dot org
GCC target triplet: x86_64-*-linux-gnu


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



[Bug c/24969] [4.1/4.2 Regression] tmpdir-gcc.dg-struct-layout-1/t026 fails execution

2005-11-21 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2005-11-21 12:22 ---
Created an attachment (id=10306)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10306action=view)
testcase

Compile and link the three files in the tar with -O0.


-- 


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



[Bug c/24969] tmpdir-gcc.dg-struct-layout-1/t026 fails execution

2005-11-21 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2005-11-21 12:26 ---
works on i686 with 4.1.0 and 4.0.2


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

  Known to fail||3.3.3 4.1.0 4.2.0
Summary|[4.1/4.2 Regression] tmpdir-|tmpdir-gcc.dg-struct-layout-
   |gcc.dg-struct-layout-1/t026 |1/t026 fails execution
   |fails execution |


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



[Bug libstdc++/1773] __cplusplus defined to 1, should be 199711L

2005-11-21 Thread pedro dot lamarao at mndfck dot org


--- Comment #32 from pedro dot lamarao at mndfck dot org  2005-11-21 12:26 
---
Yes, I'll take a shot at this.


-- 


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



[Bug c/24969] tmpdir-gcc.dg-struct-layout-1/t026 fails execution

2005-11-21 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2005-11-21 12:29 ---
4.0.2 seems to fail also, maybe a testsuite bug?  Still somebody needs to
investigate closer.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

  Known to fail|3.3.3 4.1.0 4.2.0   |3.3.3 4.0.2 4.1.0 4.2.0


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



[Bug tree-optimization/24653] [4.1/4.2 regression] EON regressed seriously on x86-64

2005-11-21 Thread hubicka at gcc dot gnu dot org


--- Comment #7 from hubicka at gcc dot gnu dot org  2005-11-21 13:14 ---
Subject: Bug 24653

Author: hubicka
Date: Mon Nov 21 13:14:02 2005
New Revision: 107304

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=107304
Log:
PR tree-optimization/24653
* tree-ssa-ccp.c (ccp_fold): Strip down useless conversions.

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


-- 


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



[Bug middle-end/24968] wrong will never be executed warning

2005-11-21 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2005-11-21 13:17 ---
Fixed for 4.0.0.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug libstdc++/1773] __cplusplus defined to 1, should be 199711L

2005-11-21 Thread pedro dot lamarao at mndfck dot org


--- Comment #33 from pedro dot lamarao at mndfck dot org  2005-11-21 13:26 
---
Created an attachment (id=10307)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10307action=view)
Defines __cplusplus to 199711L and overrides it for solaris 8 *only*

Please see comment #33 before applying this patch.


-- 

pedro dot lamarao at mndfck dot org changed:

   What|Removed |Added

  Attachment #10303|0   |1
is obsolete||


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



[Bug libstdc++/1773] __cplusplus defined to 1, should be 199711L

2005-11-21 Thread pedro dot lamarao at mndfck dot org


--- Comment #34 from pedro dot lamarao at mndfck dot org  2005-11-21 13:29 
---
I attached a patch containing Paolo's suggestions.
It was produced with svn diff -x -up after an svn copy like this:

[EMAIL PROTECTED] gcc] svn copy libstdc++-v3/config/os/solaris/solaris2.{7,8}

svn diff doesn't contain this copy directly.


-- 


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



[Bug tree-optimization/24653] [4.1 regression] EON regressed seriously on x86-64

2005-11-21 Thread pinskia at gcc dot gnu dot org


--- Comment #8 from pinskia at gcc dot gnu dot org  2005-11-21 13:30 ---
Fixed at least on the mainline for 4.2.0.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

  Known to work||4.2.0
Summary|[4.1/4.2 regression] EON|[4.1 regression] EON
   |regressed seriously on x86- |regressed seriously on x86-
   |64  |64


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



[Bug libstdc++/1773] __cplusplus defined to 1, should be 199711L

2005-11-21 Thread pcarlini at suse dot de


--- Comment #35 from pcarlini at suse dot de  2005-11-21 13:35 ---
(In reply to comment #34)
 I attached a patch containing Paolo's suggestions.

Thanks. Looks fine to me. If Eric could test it on his Solaris machines it 
would be great (remember the svn copy! ;) ...

Before finally committing it, probably we want to add a short comment before
the undef in solaris/solaris2.8/os_defines.h


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

   Last reconfirmed|2005-09-26 00:51:24 |2005-11-21 13:35:15
   date||


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



[Bug middle-end/24969] tmpdir-gcc.dg-struct-layout-1/t026 fails execution

2005-11-21 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2005-11-21 13:40 ---
Old value = 0
New value = 1
check2495 (arg0={a = 27121, b = {c = {d = true, e = 359101392}}}, 
arg1=0x5019ec, arg2={a = 30216, b = {c = {d = true, e = 1}}})
at t026_y.min.i:71
71   if (arg2.b.c.e != a2495[2].b.c.e) ++fails;

Reduced testcase:

void abort(void);
struct S2495 {
short int a;
union{
struct{
_Bool d;
int e:31;
} c;
} b;
};
struct S2495 x;
void foo(struct S2495 a) __attribute__((noinline));
void foo(struct S2495 a)
{
  if (a.a != x.a)
abort();
  if (a.b.c.d != x.b.c.d)
abort();
  if (a.b.c.e != x.b.c.e)
abort();
}
int main()
{
  x.a = 30216;
  x.b.c.d = 1;
  x.b.c.e = 32766;
  foo(x);
  return 0;
}


-- 


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



[Bug libfortran/24919] GFORTRAN input and carriage returns

2005-11-21 Thread ray at ultramarine dot com


--- Comment #10 from ray at ultramarine dot com  2005-11-21 13:52 ---
(In reply to comment #9)
 (In reply to comment #8)
  Tried yesterday's snapshot of 4.1 and it still does not work.
 
 OK, I'm on it. Looks like someone forgot about CRLF systems :)
 
 I'll try to submit a first patch tomorrow...
 
The following changes in transfer.c appear to fix the problem in Linux:
157c157
   char *base, *p, *q;
---
   char *base, *p, *q, last;
173a174
   last= 0;
197c198
   if (readlen  1 || *q == '\n' || *q == '\r')
---
   if (readlen  1 || *q == '\n' )
215a217,219
   if ( last  == '\r') {
  *length = n-1;
   } else {
216a221
   }
222a228
   last = *q;

  Ray


-- 


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



[Bug libstdc++/1773] __cplusplus defined to 1, should be 199711L

2005-11-21 Thread ebotcazou at gcc dot gnu dot org


--- Comment #36 from ebotcazou at gcc dot gnu dot org  2005-11-21 13:59 
---
 Thanks. Looks fine to me. If Eric could test it on his Solaris machines it 
 would be great (remember the svn copy! ;) ...

Sure.

 Before finally committing it, probably we want to add a short comment before
 the undef in solaris/solaris2.8/os_defines.h

Yes, please *heavily* comment.


-- 

ebotcazou at gcc dot gnu dot org changed:

   What|Removed |Added

 CC|ebotcazou at libertysurf dot|ebotcazou at gcc dot gnu dot
   |fr  |org


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



[Bug c++/24970] New: Error in header file: ctime:69: error: �::tm� has not been declared

2005-11-21 Thread schnetter at aei dot mpg dot de
When trying to compile the attached source file with

$ ~/gcc/bin/g++ --version
g++ (GCC) 4.2.0 20051121 (experimental)

with the options

/Users/eschnett/gcc/bin/g++ -DCARPET_INT -DCARPET_REAL -DCARPET_COMPLEX
-mlongcall -ftrapv -fwrapv -fbounds-check -g3 -Wall -Wshadow -Wpointer-arith
-Wcast-qual -Wcast-align -Woverloaded-virtual -c -o
$current_wd/patch_system.cc.o $current_wd/patch_system.cc -I/sw/include
-I/sw/include -I/Users/eschnett/petsc-2.1.6/include
-I/Users/eschnett/petsc-2.1.6/bmake/macx
-I/Users/eschnett/Cvanilla/arrangements/AEIThorns/AHFinderDirect/src
-I/Users/eschnett/Cvanilla/arrangements/AEIThorns/AHFinderDirect/src/include
-I/Users/eschnett/Cvanilla/configs/einstein-orange-gcc-debug/config-data
-I/Users/eschnett/Cvanilla/configs/einstein-orange-gcc-debug/bindings/include
-I/Users/eschnett/Cvanilla/src/include
-I/Users/eschnett/Cvanilla/arrangements
-I/Users/eschnett/Cvanilla/configs/einstein-orange-gcc-debug/bindings/Configuration/Thorns
-I/Users/eschnett/Cvanilla/arrangements/AEIThorns/AHFinderDirect/src/patch
-I/Users/eschnett/Cvanilla/arrangements/AEIThorns/AHFinderDirect/src/patch/include
-DTHORN_IS_AHFinderDirect -DCCODE

then I receive errors beginning with

/Users/eschnett/gcc/lib/gcc/powerpc-apple-darwin8.3.0/4.2.0/../../../../include/c++/4.2.0/ctime:69:
error: ‘::tm’ has not been declared
/Users/eschnett/gcc/lib/gcc/powerpc-apple-darwin8.3.0/4.2.0/../../../../include/c++/4.2.0/ctime:71:
error: ‘::clock’ has not been declared
/Users/eschnett/gcc/lib/gcc/powerpc-apple-darwin8.3.0/4.2.0/../../../../include/c++/4.2.0/ctime:72:
error: ‘::difftime’ has not been declared


-- 
   Summary: Error in header file: ctime:69: error: ‘::tm’ has not
been declared
   Product: gcc
   Version: 4.2.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: powerpc-apple-darwin8.3.0
  GCC host triplet: powerpc-apple-darwin8.3.0
GCC target triplet: powerpc-apple-darwin8.3.0


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



[Bug c++/24970] Error in header file: ctime:69: error: �::tm� has not been declared

2005-11-21 Thread schnetter at aei dot mpg dot de


--- Comment #1 from schnetter at aei dot mpg dot de  2005-11-21 14:01 
---
Created an attachment (id=10309)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10309action=view)
Failing source code


-- 


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



[Bug libfortran/24919] GFORTRAN input and carriage returns

2005-11-21 Thread fxcoudert at gcc dot gnu dot org


--- Comment #11 from fxcoudert at gcc dot gnu dot org  2005-11-21 14:02 
---
(In reply to comment #10)
 The following changes in transfer.c appear to fix the problem in Linux:

Confirming this patch, I have something similar in my own tree. But there are
some other problems with CRLF and I'll try to submit a full patch soon (a few
days at most) to fix them all. Forcing HAVE_CRLF in config.h and running the
testsuite appears to be a very good way to find those :)


-- 


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



[Bug c++/24970] Error in header file: ctime:69: error: �::tm� has not been declared

2005-11-21 Thread schnetter at aei dot mpg dot de


--- Comment #2 from schnetter at aei dot mpg dot de  2005-11-21 14:03 
---
Created an attachment (id=10310)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10310action=view)
Failing preprocessed sourc code (gzipped)


-- 


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



[Bug libfortran/24432] [4.1 regression] Missing symbols

2005-11-21 Thread ebotcazou at gcc dot gnu dot org


--- Comment #17 from ebotcazou at gcc dot gnu dot org  2005-11-21 14:06 
---
 Fine with me. Consider approved after testing on some C99-aware platform (like
 solaris2.10)

Thanks.  My main machine is actually x86-64/Linux so I've verified there that
the large real tests are still reported as executed in testsuite/gfortran.log. 
Same on the Solaris 10 machine.

 Please commit on 4.1 as well as mainline.

Will do.


-- 


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



[Bug middle-end/24969] tmpdir-gcc.dg-struct-layout-1/t026 fails execution

2005-11-21 Thread rguenth at gcc dot gnu dot org


--- Comment #5 from rguenth at gcc dot gnu dot org  2005-11-21 14:06 ---
Disassembly with the first two checks removed (only the third aborts):

foo:
.LFB2:
subq$24, %rsp   #,
.LCFI0:
movlx+8(%rip), %eax #, tmp62
movl16(%rsp), %edx  #, tmp60
movq%rdi, 8(%rsp)   # a, a
andl$2147483647, %eax   #, tmp62
andl$2147483647, %edx   #, tmp60
cmpl%eax, %edx  # tmp62, tmp60
jne .L6 #,
addq$24, %rsp   #,
ret
.L6:
callabort   #

main:
.LFB3:
subq$8, %rsp#,
.LCFI1:
movlx+8(%rip), %eax #, tmp62
movw$30216, x(%rip) #, x.a
movb$1, x+4(%rip)   #, x.b.c.d
movqx(%rip), %rdi   # x, x
andl$-2147483648, %eax  #, tmp62
orl $32766, %eax#, tmp62
movl%eax, x+8(%rip) # tmp62,
callfoo #
xorl%eax, %eax  # result
addq$8, %rsp#,
ret


it looks like we are confused on where we passed the structure by value.
It's in %rdi and %eax, while we think it got passed on stack(!?) in foo.

Someone with more x86_64 ABI knowledge has to look into this.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||hubicka at gcc dot gnu dot
   ||org


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



[Bug libfortran/24919] GFORTRAN input and carriage returns

2005-11-21 Thread jvdelisle at verizon dot net


--- Comment #12 from jvdelisle at verizon dot net  2005-11-21 14:21 ---
Subject: Re:  GFORTRAN input and carriage returns

fxcoudert at gcc dot gnu dot org wrote:
 --- Comment #11 from fxcoudert at gcc dot gnu dot org  2005-11-21 14:02 
 ---
 (In reply to comment #10)
 
The following changes in transfer.c appear to fix the problem in Linux:
 
 
 Confirming this patch, I have something similar in my own tree. But there are
 some other problems with CRLF and I'll try to submit a full patch soon (a few
 days at most) to fix them all. Forcing HAVE_CRLF in config.h and running the
 testsuite appears to be a very good way to find those :)
 
 
Tres bien!


-- 


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



[Bug middle-end/24969] tmpdir-gcc.dg-struct-layout-1/t026 fails execution

2005-11-21 Thread matz at suse dot de


--- Comment #6 from matz at suse dot de  2005-11-21 14:25 ---
Something is fishy.  Iff registers are used for passing then it would have to
be %rdi and %rsi (not %rax)!  So the high part of this struct (where the
bitfield lies) is not passed at all here.  Per ABI this whole struct
should be passed in registers (it's not larger than two eightbytes, and
both eightbytes have class INTEGER (they contain no unaligned fields or
other fancy stuff)).


-- 


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



[Bug target/24969] tmpdir-gcc.dg-struct-layout-1/t026 fails execution

2005-11-21 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

  Component|middle-end  |target
   Keywords||ABI
   Target Milestone|--- |4.1.0


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



[Bug target/24969] tmpdir-gcc.dg-struct-layout-1/t026 fails execution

2005-11-21 Thread rguenth at gcc dot gnu dot org


--- Comment #7 from rguenth at gcc dot gnu dot org  2005-11-21 14:35 ---
More reduced/simplified:

void abort(void);
struct S2495 {
int a;
struct{
   int d;
   int e:31;
} c;
};
struct S2495 x;
void foo(struct S2495 a) __attribute__((noinline));
void foo(struct S2495 a)
{
  if (a.c.e != x.c.e)
abort();
}
int main()
{
  x.c.e = 32766;
  foo(x);
  return 0;
}


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2005-11-21 14:35:35
   date||


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



[Bug ada/24946] [4.1/4.2 Regression] make[7]: rc: Command not found

2005-11-21 Thread dave at hiauly1 dot hia dot nrc dot ca


--- Comment #2 from dave at hiauly1 dot hia dot nrc dot ca  2005-11-21 
14:36 ---
Subject: Re:  [4.1/4.2 Regression] make[7]: rc: Command not found

 Apparently the libada Makefile is not passing some variables to ada/Makefile
 properly, so this patch might address the problem you are seeing.
 Not clear why we are not seeing this problem on other platforms so far
 though.

I'm not sure either.  I did notice that the build that had a problem
was using an old version of make (3.79.1).  I removed this and now this
system appears to be behaving similarly to the other hppa-linux system
that I build on.  On the otherhand, I've been building with this version
of make for years.

Dave


-- 


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



[Bug tree-optimization/24653] [4.1 regression] EON regressed seriously on x86-64

2005-11-21 Thread hubicka at ucw dot cz


--- Comment #9 from hubicka at ucw dot cz  2005-11-21 14:44 ---
Subject: Re:  [4.1 regression] EON regressed seriously on x86-64

 
 
 --- Comment #8 from pinskia at gcc dot gnu dot org  2005-11-21 13:30 
 ---
 Fixed at least on the mainline for 4.2.0.

I am going to fix it on 4.1 branch too once testing converge.  However I
would still like to see DCE after DOM or reordered DCE and DOM.  Even if
the CCP patch fixes the EON regression one way, this problem seem pretty
common to C++ code (see my tramp3d results I posted).

Honza


-- 


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



[Bug libstdc++/24970] Error in header file: ctime:69: error: �::tm� has not been declared

2005-11-21 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2005-11-21 14:55 ---
# 1
/Users/eschnett/Cvanilla/configs/einstein-orange-gcc-debug/bindings/Configuration/Thorns/time.h
1 3 4


Hmm, it is including the wrong time.h for some reason.

Could you add -v and provide the output, I am mainly looking for the include
patch order.


-- 


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



[Bug target/21578] ICE in reload_cse_simplify_operands for Coldfire.

2005-11-21 Thread joel at gcc dot gnu dot org


--- Comment #7 from joel at gcc dot gnu dot org  2005-11-21 14:56 ---
(In reply to comment #6)
 Shall we close this as WORKSFORME?

Looks like it.  


-- 

joel at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||WORKSFORME


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



[Bug ada/24946] [4.1/4.2 Regression] make[7]: rc: Command not found

2005-11-21 Thread charlet at adacore dot com


--- Comment #3 from charlet at adacore dot com  2005-11-21 14:59 ---
Subject: Re:  [4.1/4.2 Regression] make[7]: rc: Command not found

 I'm not sure either.  I did notice that the build that had a problem
 was using an old version of make (3.79.1).  I removed this and now this
 system appears to be behaving similarly to the other hppa-linux system
 that I build on.  On the otherhand, I've been building with this version
 of make for years.

Interesting. This might be a bug in the handling of the
export directive then, latent up to now, but showing explicitely
now that more variables are used by the Ada Makefile.

Arno


-- 


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



[Bug other/24970] Error in header file: ctime:69: error: �::tm� has not been declared

2005-11-21 Thread pinskia at gcc dot gnu dot org


--- Comment #4 from pinskia at gcc dot gnu dot org  2005-11-21 15:01 ---
We have in libstdc++:
#include time.h

So this is invalid. -I does:
   -I dir
   Add the directory dir to the list of directories to be searched
   for header files.  Directories named by -I are searched before the
   standard system include directories.  If the directory dir is a
   standard system include directory, the option is ignored to ensure
   that the default search order for system directories and the spe-
   cial treatment of system headers are not defeated .

either use -iquote which is new for 4.0.0 or use -idirafter


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

  Component|libstdc++   |other


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



[Bug other/24970] Error in header file: ctime:69: error: �::tm� has not been declared

2005-11-21 Thread pinskia at gcc dot gnu dot org


--- Comment #5 from pinskia at gcc dot gnu dot org  2005-11-21 15:02 ---
As I said this is invalid.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug target/14552] compiled trivial vector intrinsic code is inefficient

2005-11-21 Thread pluto at agmk dot net


--- Comment #18 from pluto at agmk dot net  2005-11-21 15:05 ---
gcc-3.3.6 produces better code:

test:   movqw, %mm1
psllw   $1, %mm1
movq%mm1, w
movqw, %mm1
movq%mm1, dw
ret

.comm   dw,8,8
.comm   w,8,8


can we classify this as a code size regression?


-- 


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



[Bug middle-end/24947] -Os should maximize inlining --param values.

2005-11-21 Thread msharov at hotmail dot com


--- Comment #3 from msharov at hotmail dot com  2005-11-21 15:07 ---
By its very nature, demonstrating the problem requires a large example, so I am
unable to provide a sufficiently compact one to post here. You can, however,
download the project I'm having problems with from SourceForge
http://sourceforge.net/projects/ustl. In it I'm using a custom configure script
to set --param values and do what else I can to avoid these errors, so after
running it you'll need to edit Config.mk to comment out INLINE_OPTS, add
-Winline to CXXFLAGS, and change the default -O3 to -Os a little further down.
The location of the resulting errors varies on different machines, but I always
get them. Doing a test build now, I'm getting:

Compiling cmemlink.cc ...
Compiling fdostream.cc ...
cc1plus: warnings being treated as errors
memlink.h: In member function 'char* ustl::ostream::ipos()':
memlink.h:74: warning: inlining failed in call to 'char*
ustl::memlink::begin()': --param max-inline-insns-single limit reached
mostream.h:62: warning: called from here
make: *** [cmemlink.o] Error 1
make: *** Waiting for unfinished jobs
cc1plus: warnings being treated as errors
mistream.h: In member function 'virtual size_t
ustl::istream::underflow(size_t)':
mistream.h:84: warning: inlining failed in call to 'size_t
ustl::istream::remaining() const': --param max-inline-insns-single limit
reached
mistream.h:81: warning: called from here
make: *** [fdostream.o] Error 1

Both begin() and remaining() are as simple as functions get, the former
returning a member pointer, the latter subtracting two values.


-- 


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



[Bug target/14552] compiled trivial vector intrinsic code is inefficient

2005-11-21 Thread pinskia at gcc dot gnu dot org


--- Comment #19 from pinskia at gcc dot gnu dot org  2005-11-21 15:09 
---
(In reply to comment #18)
 can we classify this as a code size regression?

No because 3.3.x was also wrong in the sense it did not emit an emms.


-- 


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



[Bug libstdc++/1773] __cplusplus defined to 1, should be 199711L

2005-11-21 Thread pedro dot lamarao at mndfck dot org


--- Comment #37 from pedro dot lamarao at mndfck dot org  2005-11-21 15:11 
---
 Yes, please *heavily* comment.

If this is approved, someone could do the copy on the relevant branches, then
I'd send a patch with better comments and changelog to the gcc-patches list.


-- 


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



[Bug c/24971] New: missing prototype causes strange effect at a distance with float.

2005-11-21 Thread hansen at cmu dot edu
(972) uname -a
FreeBSD gadoid.ices.cmu.edu 5.2.1-RELEASE FreeBSD 5.2.1-RELEASE #0: Mon Feb 23
20:45:55 GMT 2004 [EMAIL PROTECTED]:/usr/obj/usr/src/sys/GENERIC 
i386
(973) cat a.c
#include stdlib.h
#include stdio.h

int main(int argc,char *argv[])
{
  float n = 40;
  int i;

  for (i = 0;i  10;i++)
foo();

  printf(%g\n,n + 2.0);
  return 0;
}

float foo()
{
  return 1.0;
}
(974) gcc a.c -o a
a.c:17: warning: type mismatch with previous implicit declaration
a.c:10: warning: previous implicit declaration of `foo'
a.c:17: warning: `foo' was previously implicitly declared to return `int'
(975) ./a
nan
(976) 

The above program is missing a prototype for the foo function.  This
correctly causes a warning, but the missing prototype causes problems for
completely unrelated code.  In the above example, the foo() function is called
10 times, then an unrelated floating point operation is peformed which
incorrectly results in a nan.  Note that if the number of loop iterations is
reduced to 6 or fewer times, the program will print the correct result.


-- 
   Summary: missing prototype causes strange effect at a distance
with float.
   Product: gcc
   Version: 3.3.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hansen at cmu dot edu


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



[Bug c/24971] missing prototype causes strange effect at a distance with float.

2005-11-21 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2005-11-21 15:16 ---
This code should have been rejected as it is for 3.4.0 and above.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
   Keywords||accepts-invalid
 Resolution||FIXED
   Target Milestone|--- |3.4.0


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



[Bug c/24971] missing prototype causes strange effect at a distance with float.

2005-11-21 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2005-11-21 15:16 ---
Note the error is:
t.c:17: error: conflicting types for ‘foo’
t.c:10: error: previous implicit declaration of ‘foo’ was here


-- 


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



[Bug rtl-optimization/24823] [4.1/4.2 Regression] ICE in insert_save, at caller-save.c:719

2005-11-21 Thread pinskia at gcc dot gnu dot org


--- Comment #12 from pinskia at gcc dot gnu dot org  2005-11-21 15:16 
---
(In reply to comment #11)
 Could somebody with an Intel 64bit system try to bootstrap this? 

I don't have an Intel 64bit machine, but I can do a bootstrap on a x86_64
machine with this patch.


-- 


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



[Bug c/24972] New: missing prototype causes strange effect at a distance with float.

2005-11-21 Thread hansen at cmu dot edu
(972) uname -a
FreeBSD gadoid.ices.cmu.edu 5.2.1-RELEASE FreeBSD 5.2.1-RELEASE #0: Mon Feb 23
20:45:55 GMT 2004 [EMAIL PROTECTED]:/usr/obj/usr/src/sys/GENERIC 
i386
(973) cat a.c
#include stdlib.h
#include stdio.h

int main(int argc,char *argv[])
{
  float n = 40;
  int i;

  for (i = 0;i  10;i++)
foo();

  printf(%g\n,n + 2.0);
  return 0;
}

float foo()
{
  return 1.0;
}
(974) gcc a.c -o a
a.c:17: warning: type mismatch with previous implicit declaration
a.c:10: warning: previous implicit declaration of `foo'
a.c:17: warning: `foo' was previously implicitly declared to return `int'
(975) ./a
nan
(976) 

The above program is missing a prototype for the foo function.  This
correctly causes a warning, but the missing prototype causes problems for
completely unrelated code.  In the above example, the foo() function is called
10 times, then an unrelated floating point operation is peformed which
incorrectly results in a nan.  Note that if the number of loop iterations is
reduced to 6 or fewer times, the program will print the correct result.


-- 
   Summary: missing prototype causes strange effect at a distance
with float.
   Product: gcc
   Version: 3.3.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hansen at cmu dot edu


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



[Bug c/24973] New: missing prototype causes strange effect at a distance with float.

2005-11-21 Thread hansen at cmu dot edu
(972) uname -a
FreeBSD gadoid.ices.cmu.edu 5.2.1-RELEASE FreeBSD 5.2.1-RELEASE #0: Mon Feb 23
20:45:55 GMT 2004 [EMAIL PROTECTED]:/usr/obj/usr/src/sys/GENERIC 
i386
(973) cat a.c
#include stdlib.h
#include stdio.h

int main(int argc,char *argv[])
{
  float n = 40;
  int i;

  for (i = 0;i  10;i++)
foo();

  printf(%g\n,n + 2.0);
  return 0;
}

float foo()
{
  return 1.0;
}
(974) gcc a.c -o a
a.c:17: warning: type mismatch with previous implicit declaration
a.c:10: warning: previous implicit declaration of `foo'
a.c:17: warning: `foo' was previously implicitly declared to return `int'
(975) ./a
nan
(976) 

The above program is missing a prototype for the foo function.  This
correctly causes a warning, but the missing prototype causes problems for
completely unrelated code.  In the above example, the foo() function is called
10 times, then an unrelated floating point operation is peformed which
incorrectly results in a nan.  Note that if the number of loop iterations is
reduced to 6 or fewer times, the program will print the correct result.


-- 
   Summary: missing prototype causes strange effect at a distance
with float.
   Product: gcc
   Version: 3.3.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hansen at cmu dot edu


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



[Bug c/24972] missing prototype causes strange effect at a distance with float.

2005-11-21 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2005-11-21 15:18 ---


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


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug c/24971] missing prototype causes strange effect at a distance with float.

2005-11-21 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2005-11-21 15:18 ---
*** Bug 24972 has been marked as a duplicate of this bug. ***


-- 


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



[Bug c/24973] missing prototype causes strange effect at a distance with float.

2005-11-21 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2005-11-21 15:18 ---


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


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug c/24971] missing prototype causes strange effect at a distance with float.

2005-11-21 Thread pinskia at gcc dot gnu dot org


--- Comment #4 from pinskia at gcc dot gnu dot org  2005-11-21 15:18 ---
*** Bug 24973 has been marked as a duplicate of this bug. ***


-- 


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



[Bug middle-end/24947] -Os should maximize inlining --param values.

2005-11-21 Thread rearnsha at gcc dot gnu dot org


--- Comment #4 from rearnsha at gcc dot gnu dot org  2005-11-21 15:19 
---
It seems to me that the problem here is that a 'warning' is too strong here,
particularly with -Werror.  We really need a diagnostic that is non-fatal to
the compilation, since there's nothing really wrong with the user's code.


-- 


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



[Bug libstdc++/1773] __cplusplus defined to 1, should be 199711L

2005-11-21 Thread pcarlini at suse dot de


--- Comment #38 from pcarlini at suse dot de  2005-11-21 15:22 ---
(In reply to comment #37)
  Yes, please *heavily* comment.
 
 If this is approved, someone could do the copy on the relevant branches, then
 I'd send a patch with better comments and changelog to the gcc-patches list.

Don't worry about that, as soon as Eric reports, I'll take care of the rest. 


-- 


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



[Bug c/24971] missing prototype causes strange effect at a distance with float.

2005-11-21 Thread hansen at cmu dot edu


--- Comment #5 from hansen at cmu dot edu  2005-11-21 15:28 ---
(In reply to comment #2)
 Note the error is:
 t.c:17: error: conflicting types for ‘foo’
 t.c:10: error: previous implicit declaration of ‘foo’ was here
 

I only get warnings in 3.3.0.  Even with warnings, I still do not think that
there should be an effect in code unrelated to the warning.


-- 


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



[Bug target/24969] tmpdir-gcc.dg-struct-layout-1/t026 fails execution

2005-11-21 Thread pinskia at gcc dot gnu dot org


--- Comment #8 from pinskia at gcc dot gnu dot org  2005-11-21 15:29 ---
3.2.3 also gets this wrong the same way.

The callee side says the struct comes on the stack.
The caller side says the struct goes in via %rdi.

Which one is correct?


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

  Known to fail|3.3.3 4.0.2 4.1.0 4.2.0 |3.3.3 4.0.2 4.1.0 4.2.0
   ||3.2.3
   Target Milestone|4.1.0   |---


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



[Bug c++/24907] [3.4/4.0/4.1/4.2 Regression] int x, ; accepted

2005-11-21 Thread machata at post dot cz


--- Comment #3 from machata at post dot cz  2005-11-21 15:31 ---
Created an attachment (id=10311)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10311action=view)
Allow comma only on second and further passes of declarator processing loop.

The patch addresses the problem by eating comma at the beginning of loop which
processes declarators, and only eating it when it's second or later pass.

Testcase is in patch, make check-g++ passed on i686-pc-linux-gnu.
I'll do bootstrap and more thorough test tomorrow, and send the patch to
gcc-patches then.


-- 


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



[Bug middle-end/24947] -Os should maximize inlining --param values.

2005-11-21 Thread msharov at hotmail dot com


--- Comment #5 from msharov at hotmail dot com  2005-11-21 15:34 ---
I would disagree. If the compiler ends up creating a function call where I
expect a simple movl, that _is_ something I want to hear about as a warning. I
have some code that uses inlines in really tight loops and having such a thing
happen without any sign of what is going wrong would be a very bad thing
indeed. At least now I know which --param to increase.


-- 


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



[Bug target/24969] tmpdir-gcc.dg-struct-layout-1/t026 fails execution

2005-11-21 Thread pinskia at gcc dot gnu dot org


--- Comment #9 from pinskia at gcc dot gnu dot org  2005-11-21 15:35 ---
Here is the rtl which is produced by expanding foo(x):
(insn 15 13 16 (set (reg/f:DI 63)
(symbol_ref:DI (x) var_decl 0x2b15eb00 x)) -1 (nil)
(nil))

(insn 16 15 17 (set (reg:DI 62)
(mem/s/c:DI (reg/f:DI 63) [4 x+0 S8 A32])) -1 (nil)
(nil))

(insn 17 16 18 (set (reg:DI 5 di)
(reg:DI 62)) -1 (nil)
(nil))

(call_insn 18 17 0 (call (mem:QI (symbol_ref:DI (foo) [flags 0x3]
function_decl 0x2b15fb00 foo) [0 S1 A8])
(const_int 0 [0x0])) -1 (nil)
(expr_list:REG_EH_REGION (const_int 0 [0x0])
(nil))
(expr_list:REG_DEP_TRUE (use (reg:DI 5 di))
(nil)))

Obviously this is wrong as it only passes one half of the struct.


-- 


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



[Bug libstdc++/24975] New: Aliasing problems inside libstdc++

2005-11-21 Thread rguenth at gcc dot gnu dot org
We currently miscompile DLV with -fstrict-aliasing, and the only aliasing
issues
that are visible are inside libstdc++:

/usr/include/c++/4.1.0/bits/basic_string.h:180: warning: dereferencing
type-punned pointer will break strict-aliasing rules
/usr/include/c++/4.1.0/bits/stl_set.h:348: warning: dereferencing type-punned
pointer will break strict-aliasing rules
/usr/include/c++/4.1.0/bits/stl_set.h:409: warning: dereferencing type-punned
pointer will break strict-aliasing rules

this is with a patch to enable aliasing warnings for C++


-- 
   Summary: Aliasing problems inside libstdc++
   Product: gcc
   Version: 4.1.0
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: libstdc++
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=24975



[Bug libstdc++/24975] Aliasing problems inside libstdc++

2005-11-21 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2005-11-21 15:44 ---
Created an attachment (id=10312)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10312action=view)
patch to enable aliasing warnings for C++

Apply to see the warnings (even during a libstdc++ build).


-- 


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



[Bug middle-end/24947] -Os should maximize inlining --param values.

2005-11-21 Thread rearnsha at gcc dot gnu dot org


--- Comment #6 from rearnsha at gcc dot gnu dot org  2005-11-21 15:49 
---
Subject: Re:  -Os should maximize inlining --param
values.

I didn't say the compiler shouldn't say anything, I said it shouldn't be
fatal.  Regardless of whether or not you think the limits are too low,
others may disagree and not want to change them.  That doesn't mean that
the compiler should reject their code because the limit has been
exceeded.  

This is not something that should cause -Werror to refuse compilation..


-- 


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



[Bug libstdc++/24975] Aliasing problems inside libstdc++

2005-11-21 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2005-11-21 15:51 ---
(In reply to comment #1)
 Created an attachment (id=10312)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10312action=view) [edit]
 patch to enable aliasing warnings for C++

Note I think this patch is slightly incorrect as the function
build_reinterpret_cast_1 is called during parsing so you get the warning for
template cases where actually the warning would be incorrect.
An example is:
int b;
template typename a a *f(void) {  return (a*)(b); }

This should not warn if a is int.


-- 


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



[Bug fortran/15809] ICE Using Pointer Functions

2005-11-21 Thread pault at gcc dot gnu dot org


--- Comment #14 from pault at gcc dot gnu dot org  2005-11-21 15:53 ---
I have become more than a little bit concerned that this PR is a wild goose
chase.

Applying a similar patch to Erik's, I can persuade some bits of code to do
something.  Furthermore, they are even the same things that ifort9.0 does;
right down to segfaulting in the same places... mostly!  However, getting
anything useful out of such subroutines, even with ifort, is defeating me.

From 12.4.1.1

If the dummy argument is a pointer, the actual argument shall be a pointer and
the types, type parameters and ranks shall agree.

Does this not make an automatic, character-length, pointer dummy incorrect
code?

At the invocation of the procedure, the dummy argument pointer receives the
pointer association status of the actual argument.  If the actual argument is
currently associated, the the dummy argument becomes associated with the same
target...   

Thus encouraged, I wrote this:

  SUBROUTINE A(p,l)
CHARACTER(8), DIMENSION(:), pointer :: p
if (associated (p)) then
  print *, p
else
  print *, not associated
end if
  END SUBROUTINE A

  character(8), dimension (:), pointer :: ptr
  character(8), dimension (2), target :: tar
  tar = def
  ptr = tar
  call a (ptr)
  if (associated (ptr)) print *, in MAIN, ptr = , ptr
  end

ifort decides that p is not associated, whilst gfortran finds p to be
associated but fails to recognise that p is a character and produces a bad
real message at the print statement.

It seems to me that, in gfortran, the dummy needs to be declared in the
procedure and its data pointer set to that of the actual argument.  Whether an
automatic character length should work or not seems to be moot to me.


-- 


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



[Bug c++/24967] ICE with misplaced typename

2005-11-21 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2005-11-21 15:56 ---
This is a dup of bug 19253 which is fixed in 3.4.5, and 4.0.3. That might be
why you did not find the bug.

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


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug c++/19253] [3.4/4.0/4.1 regression] bad error message / ICE for invalid template parameter

2005-11-21 Thread pinskia at gcc dot gnu dot org


--- Comment #17 from pinskia at gcc dot gnu dot org  2005-11-21 15:56 
---
*** Bug 24967 has been marked as a duplicate of this bug. ***


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||christoph dot pesch at
   ||siemens dot com


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



[Bug middle-end/24947] -Os should maximize inlining --param values.

2005-11-21 Thread msharov at hotmail dot com


--- Comment #7 from msharov at hotmail dot com  2005-11-21 16:01 ---
(In reply to comment #6)
 This is not something that should cause -Werror to refuse compilation.

Well, according to the manpage, -Werror treats _all_ warnings as fatal, no
matter what they are about. Since -Winline is an optional parameter that most
normal people don't use, and one that is not enabled by either -Wall or
-Wextra, I have no problem with the current behaviour.

 Regardless of whether or not you think the limits are too low,
 others may disagree and not want to change them.

Speaking of that, can anyone give me an example of when the limits would be
considered too high? Or at all necessary? I can understand the need for them
once the -finline-functions has been enabled, since it may end up inlining
everything I own, but I don't think it is unreasonable to expect everything
explicitly declared inline to be inlined in an optimized build. I did actually
file a bug about that before,
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21587, which was resolved WONTFIX,
saying that inline is always been just a hint to the compiler. It seems that
this is the root of the problem right there: the refusal to distinguish
explicitly inline functions from those that become inline due to
-finline-functions. I'm pretty sure that if you run a poll of all the C++
programmers, they'll tell you that they expect the former to always be inlined
in an optimized build, while the latter ought to depend on some specific
command-line parameters. Perhaps it would be prudent to rethink 21587?


-- 


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



[Bug fortran/24546] [meta-bug] gfortran debugging problems

2005-11-21 Thread jb at gcc dot gnu dot org


--- Comment #5 from jb at gcc dot gnu dot org  2005-11-21 16:01 ---
Just as a general note, the deadline for dwarf3 comments is Dec 1, 2005.  So if
anyone with some clue about how to improve support for debugging fortran has
some good suggestions that would require changes in the debug format, now is
the time to send them.


-- 


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



[Bug libstdc++/24975] Aliasing problems inside libstdc++

2005-11-21 Thread chris at bubblescope dot net


--- Comment #3 from chris at bubblescope dot net  2005-11-21 16:03 ---
While it does look like there might be an error in this warning code, I also
have a feeling we are doing something bad here. I looked at the examples in
stl_set.h and we are doing reference casting from a _Rb_tree_const_iterator to
a _Rb_tree_iterator. Now these both have identical elements and no virtual
functions, which is why I suspect this code works. However I sure this isn't
valid C++?


-- 

chris at bubblescope dot net changed:

   What|Removed |Added

 CC||chris at bubblescope dot net


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



[Bug libstdc++/24975] Aliasing problems inside libstdc++

2005-11-21 Thread pcarlini at suse dot de


--- Comment #4 from pcarlini at suse dot de  2005-11-21 16:05 ---
Thanks. I'm looking into the issue. The part involving set seems to me much
more
critical and hopefully solvable without breaking the ABI, because we are not
exporting anything from the library involving set/multiset. I suppose you can
confirm that DLV heavily uses set?!?


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2005-11-21 16:05:14
   date||


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



[Bug fortran/24223] Gfortran crashes in two places

2005-11-21 Thread pault at gcc dot gnu dot org


--- Comment #6 from pault at gcc dot gnu dot org  2005-11-21 16:06 ---
Subject: Bug 24223

Author: pault
Date: Mon Nov 21 16:05:58 2005
New Revision: 107310

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=107310
Log:
2005-11-21  Paul Thomas  [EMAIL PROTECTED]

PR fortran/24223
* resolve.c (resolve_contained_fntype) Error if an internal
function is assumed character length.

PR fortran/24705
* trans-decl.c (gfc_create_module_variable) Skip ICE in
when backend decl has been built and the symbol is marked
as being in an equivalence statement.

2005-11-21  Paul Thomas  [EMAIL PROTECTED]

PR fortran/24223
* gfortran.dg/substring_equivalence.f90: New test.

PR fortran/24705
* gfortran.dg/auto_internal_assumed.f90: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/auto_internal_assumed.f90   (with props)
trunk/gcc/testsuite/gfortran.dg/substring_equivalence.f90   (with props)
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/resolve.c
trunk/gcc/fortran/trans-decl.c
trunk/gcc/testsuite/ChangeLog

Added: trunk/gcc/testsuite/gfortran.dg/auto_internal_assumed.f90
URL:
http://gcc.gnu.org/viewcvs/trunk/gcc/testsuite/gfortran.dg/auto_internal_assumed.f90?root=gccview=autorev=107310
==
--- trunk/gcc/testsuite/gfortran.dg/auto_internal_assumed.f90 (added)
+++ trunk/gcc/testsuite/gfortran.dg/auto_internal_assumed.f90 Mon Nov 21
16:05:58 2005
@@ -1,0 +1,13 @@
+! { dg-do compile }
+! Test fix of PR24705 - ICE on assumed character length
+! internal function.
+!
+character (6) :: c
+  c = f1 ()! { dg-error must not be assumed length }
+  if (c .ne. 'abcdef') call abort
+contains
+  function f1 ()
+character (*) :: f1
+f1 = 'abcdef'
+  end function f1
+end

Propchange: trunk/gcc/testsuite/gfortran.dg/auto_internal_assumed.f90
('svn:executable' added)

Added: trunk/gcc/testsuite/gfortran.dg/substring_equivalence.f90
URL:
http://gcc.gnu.org/viewcvs/trunk/gcc/testsuite/gfortran.dg/substring_equivalence.f90?root=gccview=autorev=107310
==
--- trunk/gcc/testsuite/gfortran.dg/substring_equivalence.f90 (added)
+++ trunk/gcc/testsuite/gfortran.dg/substring_equivalence.f90 Mon Nov 21
16:05:58 2005
@@ -1,0 +1,8 @@
+! { dg-do compile }
+! Tests fix for PR24223 - ICE on equivalence staement.
+!
+module FLAGS
+  character(len=5) :: Encodings
+  character :: at, dev
+  equivalence ( encodings(1:1),at ), ( encodings(2:2),dev)
+end module FLAGS

Propchange: trunk/gcc/testsuite/gfortran.dg/substring_equivalence.f90
('svn:executable' added)


-- 


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



[Bug fortran/24705] ICE on assumed length character result

2005-11-21 Thread pault at gcc dot gnu dot org


--- Comment #3 from pault at gcc dot gnu dot org  2005-11-21 16:06 ---
Subject: Bug 24705

Author: pault
Date: Mon Nov 21 16:05:58 2005
New Revision: 107310

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=107310
Log:
2005-11-21  Paul Thomas  [EMAIL PROTECTED]

PR fortran/24223
* resolve.c (resolve_contained_fntype) Error if an internal
function is assumed character length.

PR fortran/24705
* trans-decl.c (gfc_create_module_variable) Skip ICE in
when backend decl has been built and the symbol is marked
as being in an equivalence statement.

2005-11-21  Paul Thomas  [EMAIL PROTECTED]

PR fortran/24223
* gfortran.dg/substring_equivalence.f90: New test.

PR fortran/24705
* gfortran.dg/auto_internal_assumed.f90: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/auto_internal_assumed.f90   (with props)
trunk/gcc/testsuite/gfortran.dg/substring_equivalence.f90   (with props)
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/resolve.c
trunk/gcc/fortran/trans-decl.c
trunk/gcc/testsuite/ChangeLog

Added: trunk/gcc/testsuite/gfortran.dg/auto_internal_assumed.f90
URL:
http://gcc.gnu.org/viewcvs/trunk/gcc/testsuite/gfortran.dg/auto_internal_assumed.f90?root=gccview=autorev=107310
==
--- trunk/gcc/testsuite/gfortran.dg/auto_internal_assumed.f90 (added)
+++ trunk/gcc/testsuite/gfortran.dg/auto_internal_assumed.f90 Mon Nov 21
16:05:58 2005
@@ -1,0 +1,13 @@
+! { dg-do compile }
+! Test fix of PR24705 - ICE on assumed character length
+! internal function.
+!
+character (6) :: c
+  c = f1 ()! { dg-error must not be assumed length }
+  if (c .ne. 'abcdef') call abort
+contains
+  function f1 ()
+character (*) :: f1
+f1 = 'abcdef'
+  end function f1
+end

Propchange: trunk/gcc/testsuite/gfortran.dg/auto_internal_assumed.f90
('svn:executable' added)

Added: trunk/gcc/testsuite/gfortran.dg/substring_equivalence.f90
URL:
http://gcc.gnu.org/viewcvs/trunk/gcc/testsuite/gfortran.dg/substring_equivalence.f90?root=gccview=autorev=107310
==
--- trunk/gcc/testsuite/gfortran.dg/substring_equivalence.f90 (added)
+++ trunk/gcc/testsuite/gfortran.dg/substring_equivalence.f90 Mon Nov 21
16:05:58 2005
@@ -1,0 +1,8 @@
+! { dg-do compile }
+! Tests fix for PR24223 - ICE on equivalence staement.
+!
+module FLAGS
+  character(len=5) :: Encodings
+  character :: at, dev
+  equivalence ( encodings(1:1),at ), ( encodings(2:2),dev)
+end module FLAGS

Propchange: trunk/gcc/testsuite/gfortran.dg/substring_equivalence.f90
('svn:executable' added)


-- 


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



[Bug middle-end/24947] -Os should maximize inlining --param values.

2005-11-21 Thread pinskia at gcc dot gnu dot org


--- Comment #8 from pinskia at gcc dot gnu dot org  2005-11-21 16:06 ---
(In reply to comment #7)
I'm pretty sure that if you run a poll of all the C++
 programmers, they'll tell you that they expect the former to always be inlined
 in an optimized build, while the latter ought to depend on some specific
 command-line parameters. 

Depends on which C++ developers and if they have really thought about all their
uses of inline (most have not even though they say they want functions declared
as inline to be inlined)?

Also there are examples of where respecting inline will just cause the compiler
to use so much memory/compile time is not funny.  An example is PR 8361.


-- 


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



[Bug rtl-optimization/24823] [4.1/4.2 Regression] ICE in insert_save, at caller-save.c:719

2005-11-21 Thread krebbel at gcc dot gnu dot org


--- Comment #13 from krebbel at gcc dot gnu dot org  2005-11-21 16:07 
---
 I don't have an Intel 64bit machine, but I can do a bootstrap on a x86_64
 machine with this patch.

Ups. That's what I was trying to suggest - an unusual typo isn't it? ;-)
Thanks for taking care of this!


-- 


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



[Bug c++/20416] Incorrect lifetime for temporary with static const reference

2005-11-21 Thread rsandifo at gcc dot gnu dot org


--- Comment #1 from rsandifo at gcc dot gnu dot org  2005-11-21 16:09 
---
Confirmed.  Here's a dejagnu-style testcase:

// PR c++/20416.  We correctly constructed the temporary S in foo(),
// but incorrectly destroyed it every time foo() was called.
// { dg-do run }
extern C void abort (void);
namespace { int counter; }
struct S {
  S() { counter++; }
  S(const S ) { counter++; }
  ~S() { counter--; }
};
void
foo (void)
{
  static const S s = S();
  if (counter != 1)
abort ();
}
int main ()
{
  if (counter != 0)
abort ();
  foo ();
  foo ();
}


-- 

rsandifo at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||rsandifo at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
  Known to fail||3.4.5 4.1.0
   Last reconfirmed|-00-00 00:00:00 |2005-11-21 16:09:00
   date||


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



[Bug libstdc++/24975] Aliasing problems inside libstdc++

2005-11-21 Thread pcarlini at suse dot de


--- Comment #5 from pcarlini at suse dot de  2005-11-21 16:09 ---
One more bit of info (meant for Chris too): I think the cast has been added
when
set was changed to have both iterator and const_iterator as const iterator
types.
Since we are not exporting anything, I suppose we can fix the code at the level
of the underlying _Rb_tree functions...


-- 


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



[Bug c++/20416] Incorrect lifetime for temporary with static const reference

2005-11-21 Thread rsandifo at gcc dot gnu dot org


--- Comment #2 from rsandifo at gcc dot gnu dot org  2005-11-21 16:09 
---
BTW, this is 12.2/5.


-- 


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



[Bug target/24953] RTL check: access of elt 1 of vector with last elt 0 in vrsave_operation_1, at config/rs6000/predicates.md:1041

2005-11-21 Thread dje at gcc dot gnu dot org


--- Comment #3 from dje at gcc dot gnu dot org  2005-11-21 16:12 ---
Subject: Bug 24953

Author: dje
Date: Mon Nov 21 16:12:32 2005
New Revision: 107311

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=107311
Log:
PR target/24953
* config/rs6000/predicates.md (vrsave_operation): Check
UNSPEC_VOLATILE value.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/rs6000/predicates.md


-- 


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



[Bug rtl-optimization/24823] [4.1/4.2 Regression] ICE in insert_save, at caller-save.c:719

2005-11-21 Thread pinskia at gcc dot gnu dot org


--- Comment #14 from pinskia at gcc dot gnu dot org  2005-11-21 16:19 
---
(In reply to comment #13)
 Ups. That's what I was trying to suggest - an unusual typo isn't it? ;-)
 Thanks for taking care of this!


Actually I was wrong in saying that only complex modes can show up here.  It
can also show up in the mixed 64/32 bit of PPC for 64bit ints (powerpc-darwin
is the target).
(call_insn 8 6 9 (parallel [
(set (parallel:DI [
(expr_list:REG_DEP_TRUE (reg:SI 3 r3)
(const_int 0 [0x0]))
(expr_list:REG_DEP_TRUE (reg:SI 4 r4)
(const_int 4 [0x4]))
])
(call (mem:SI (symbol_ref:SI (f) [flags 0x41] function_decl
0x2b0a6e00 f) [0 S4 A8])
(const_int 32 [0x20])))
(use (const_int 0 [0x0]))
(clobber (scratch:SI))
]) -1 (nil)
(nil)
(nil))

You most likely can construct an ICE for that testcase too but I don't really
know how.
The testcase to get that construct is:
long long f(void);

int g(void)
{
  return f();
}


-- 


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



[Bug rtl-optimization/24823] [4.1/4.2 Regression] ICE in insert_save, at caller-save.c:719

2005-11-21 Thread pinskia at gcc dot gnu dot org


--- Comment #15 from pinskia at gcc dot gnu dot org  2005-11-21 16:22 
---
(In reply to comment #14)
 The testcase to get that construct is:
Compiling with -mpowerpc64 to get the mixed mode.  I would not doubt that the
arm failure is a similar issue but not with complex types.


-- 


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



[Bug middle-end/24947] -Os should maximize inlining --param values.

2005-11-21 Thread msharov at hotmail dot com


--- Comment #9 from msharov at hotmail dot com  2005-11-21 16:25 ---
(In reply to comment #8)
 Depends on which C++ developers and if they have really thought about all 
 their
 uses of inline (most have not even though they say they want functions 
 declared
 as inline to be inlined)?

Since when does developer ignorance require workarounds in the compiler? If I
don't really think about how I write my iterator loops, I fully deserve to
have buffer overflows (although, if the compiler can be smart enough to
generate a warning, that would be great!). Likewise, if I declare all my
functions inline, then I deserve to get an incredibly bloated compiled
executable. That's the spirit of C - do what I say, not what you think is good
for me. If I wanted the latter, I'd be using Java.

 Also there are examples of where respecting inline will just cause the 
 compiler
 to use so much memory/compile time is not funny.  An example is PR 8361.

Looking at that gave me the shivers :) Whoever wrote that code definitely
didn't think about what should be inlined and what shouldn't be. They have
inline functions a hundred lines long! I would say they got exactly what they
deserved - slow compilation and a lot of bloat. If you write bad code, the bad
code should be fixed, not the compiler, which is even in this case doing just
what it is told to do.


-- 


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



[Bug libstdc++/24975] Aliasing problems inside libstdc++

2005-11-21 Thread pcarlini at suse dot de


--- Comment #6 from pcarlini at suse dot de  2005-11-21 16:28 ---
Actually, to be 100% safe wrt binary compatibility (addresses, etc.) we can
also overload for _Rb_tree::const_iterator the involved _Rb_tree functions,
I'm preparing a patch.


-- 


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



[Bug target/24951] [4.1/4.2 Regression] ICE: RTL check: expected code 'const_int', have 'const_double' in output_vec_const_move, at config/rs6000/rs6000.c

2005-11-21 Thread bonzini at gcc dot gnu dot org


--- Comment #4 from bonzini at gcc dot gnu dot org  2005-11-21 16:38 ---
Subject: Bug 24951

Author: bonzini
Date: Mon Nov 21 16:38:13 2005
New Revision: 107312

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=107312
Log:
2005-11-21  Paolo Bonzini  [EMAIL PROTECTED]

PR target/24951
* config/rs6000/rs6000.c (output_vec_const_move): Load cst and
cst2 only for SPE vectors.

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


-- 


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



[Bug rtl-optimization/20583] [4.0 regression] ICE in output_operand: invalid expression as operand

2005-11-21 Thread pinskia at gcc dot gnu dot org


--- Comment #10 from pinskia at gcc dot gnu dot org  2005-11-21 16:50 
---
Fixed in 4.1.0 and above for now.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

  Component|target  |rtl-optimization
  Known to fail||4.0.2
  Known to work||4.1.0 4.2.0
Summary|[4.0/4.1/4.2 regression] ICE|[4.0 regression] ICE in
   |in output_operand: invalid  |output_operand: invalid
   |expression as operand   |expression as operand
   Target Milestone|4.1.0   |4.0.3


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



[Bug target/24951] [4.1/4.2 Regression] ICE: RTL check: expected code 'const_int', have 'const_double' in output_vec_const_move, at config/rs6000/rs6000.c

2005-11-21 Thread bonzini at gcc dot gnu dot org


--- Comment #5 from bonzini at gcc dot gnu dot org  2005-11-21 17:04 ---
Subject: Bug 24951

Author: bonzini
Date: Mon Nov 21 17:04:11 2005
New Revision: 107313

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=107313
Log:
2005-11-21  Paolo Bonzini  [EMAIL PROTECTED]

PR target/24951
* config/rs6000/rs6000.c (output_vec_const_move): Load cst and
cst2 only for SPE vectors.

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


-- 


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



[Bug target/24951] [4.1/4.2 Regression] ICE: RTL check: expected code 'const_int', have 'const_double' in output_vec_const_move, at config/rs6000/rs6000.c

2005-11-21 Thread bonzini at gcc dot gnu dot org


--- Comment #6 from bonzini at gcc dot gnu dot org  2005-11-21 17:05 ---
Andreas, can you confirm it is fixed?


-- 


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



[Bug c/24976] New: simple hexadecimal number parsed as C99 hex float

2005-11-21 Thread bernie at develer dot com
This testcase:

  int a = 0xe+100;

Produces a diagnostic message that would surprise
most users:

 foo.c:1:9: error: invalid suffix +100 on integer constant


I'm not sure what the standard says about ambiguity
between the hex float notation and the regular + operator,
but many users are going to think of this behavior as
a parser bug.


-- 
   Summary: simple hexadecimal number parsed as C99 hex float
   Product: gcc
   Version: 4.0.3
Status: UNCONFIRMED
  Keywords: rejects-valid
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bernie at develer dot com


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



[Bug preprocessor/24976] simple hexadecimal number parsed as C99 hex float

2005-11-21 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2005-11-21 17:28 ---
(In reply to comment #0)
 but many users are going to think of this behavior as
 a parser bug.

This is more of a tokenizer error rather than a parser error.

Anyways 2.95.3 gives:
t.c:1: missing white space after number `0xe'

I wonder if we should accept this code for -std=c89.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

  Component|c   |preprocessor


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



  1   2   >