[Bug libstdc++/18053] __gnu_cxx::hash_setA uses return type of A::operator() instead of A

2005-01-22 Thread pcarlini at suse dot de

--- Additional Comments From pcarlini at suse dot de  2005-01-22 09:16 
---
Ok..

-- 
   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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


[Bug ada/19526] Windows errorcodes wrong in Ada when tasking

2005-01-22 Thread dannysmith at users dot sourceforge dot net


-- 
   What|Removed |Added

 CC||dannysmith at users dot
   ||sourceforge dot net


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


[Bug middle-end/18008] [4.0 Regression] Duplicate mask on bitfield insertion

2005-01-22 Thread bonzini at gcc dot gnu dot org

--- Additional Comments From bonzini at gcc dot gnu dot org  2005-01-22 
10:04 ---
Combine ought to merge these two

(insn 13 11 14 1 (parallel [
(set (reg:QI 60)
(and:QI (subreg:QI (reg/v:SI 59 [ v ]) 0)
(const_int 3 [0x3])))
(clobber (reg:CC 17 flags))
]) -1 (nil)
(nil))

(insn 15 14 16 1 (parallel [
(set (reg:SI 62)
(zero_extend:SI (reg:QI 60)))
(clobber (reg:CC 17 flags))
]) -1 (nil)
(nil))

into

(insn 15 14 16 1 (parallel [
(set (reg:SI 62)
(zero_extend:SI (and:QI (subreg:QI (reg/v:SI 59 [ v ]) 0)
(const_int 3 [0x3]
(clobber (reg:CC 17 flags))
]) -1 (nil)
(nil))

which can be simplified via the expand_compound_operation machinery to

(insn 15 14 16 1 (parallel [
(set (reg:SI 62)
(and:SI (reg/v:SI 59 [ v ]) (const_int 3 [0x3])))
(clobber (reg:CC 17 flags))
]) -1 (nil)
(nil))

and the set of (reg:SI 63) from (and:SI (reg:SI 62) (const_int 3)) should be 
taken care of by the nonzero_bits stuff.  So it's feasible to have combine fix 
it, at least.

Hum, but maybe the clobber is messing up combine?

-- 


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


[Bug target/19571] floating point registers not preserved during function call

2005-01-22 Thread rearnsha at gcc dot gnu dot org

--- Additional Comments From rearnsha at gcc dot gnu dot org  2005-01-22 
10:36 ---
The code generated looks correct to me.

The generated assembler that you've give for __cos is clearly saving and
restoring f4-f7.
__cos:
// Saves the integer registers
ca4c:   e92d4070stmdb   sp!, {r4, r5, r6, lr}
// Does some processing that does not involve floating point
ca50:   e3c02102bic r2, r0, #-2147483648; 0x8000
ca54:   e35205f9cmp r2, #1044381696 ; 0x3e40
ca58:   e1a05001mov r5, r1
ca5c:   e1a04000mov r4, r0
// Sets f0: OK, since f0 is call-clobbered.
ca60:   be008189mvfltd  f0, #1.0
// This instruction saves 4 floating point registers, starting with f4 on the 
stack
ca64:   ed2d420csfm f4, 4, [sp, #-48]!

... // Rest of function

// And this instruction loads them back again.
ccec:   ecbd420clfm f4, 4, [sp], #48
ccf0:   e8bd8070ldmia   sp!, {r4, r5, r6, pc}

As far as I can see this is the only exit point from the generated code.

I think you need to check that the floating point emulator in your kernel is
functioning correctly.  Particularly for lfm/sfm.

R.

-- 
   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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


[Bug target/19506] [4.0 Regression] PovRay produces wrong pictures with -mfpmath=sse -ffast-math.

2005-01-22 Thread uros at kss-loka dot si

--- Additional Comments From uros at kss-loka dot si  2005-01-22 11:34 
---
Should patch to sse_comparison_operator
(http://gcc.gnu.org/ml/gcc-patches/2005-01/msg01087.html) be reverted in  this
case? It didn't fix the problem, and according to comment #9 the problem is not
 in this area.

-- 


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


[Bug fortran/19574] New: specification expression failure

2005-01-22 Thread coudert at clipper dot ens dot fr
The following code (from
http://home.comcast.net/~kmbtib/gfortran_bugs/REF_JVB_GFTN_005.html) fails in
the following way (on i686-mingw and powerpc-apple-darwin):

-
module funcs
   implicit none
   contains
  function f(x)
 character(*), intent(in) :: x
 integer f(len(x))
 integer i

! do i=1,len(x)
!   f(i) = 0
! end do
  end function f
end module funcs

program spec_expr_test
   use funcs
   implicit none

   write(*,*) size(f('test'))
end program spec_expr_test
-

$ gfortran reduced_spec.f90  ./a.out 
reduced_spec.f90: In function 'f':
reduced_spec.f90:4: warning: Function does not return a value
At line 19 of file reduced_spec.f90
Fortran runtime error: Internal: Possible double free of temporary.


If you uncomment the three lines in the code above, you get a runtime segfault
(on powerpc-apple-darwin):

$ gfortran reduced_spec.f90  ./a.out
zsh: bus error  ./a.out


I don't know if these two issues are related, but I post them both in one PR
just in case they can be debuggued altogether.

-- 
   Summary: specification expression failure
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: coudert at clipper dot ens dot fr
CC: gcc-bugs at gcc dot gnu dot org


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


[Bug libgcj/19512] Optional JNI error checking

2005-01-22 Thread mark at gcc dot gnu dot org

--- Additional Comments From mark at gcc dot gnu dot org  2005-01-22 11:51 
---
Working on a patch.

-- 
   What|Removed |Added

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


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


[Bug fortran/19575] New: cdabs intrinsic incorrectly handled with -std=f95

2005-01-22 Thread coudert at clipper dot ens dot fr
The following code:

program abs_test1
   implicit none
   intrinsic cdabs

!   write(*,*) cdabs((4,3)) ! Causes ICE, as well
   call sub(cdabs)
end program abs_test1

subroutine sub(f)
   implicit none
   interface
  elemental function f(x)
 complex(kind(1.0d0)), intent(in) :: x
 real(kind(x)) :: f
  end function f
   end interface
   complex(kind(1.0d0)) x

   x = (4,3)
   write(*,*) f(x)
end subroutine sub


has an incorrect behavior when -std=f95 is specified (according to James Van
Buskirk, see
http://home.comcast.net/~kmbtib/gfortran_bugs/REF_JVB_GFTN_003.html). On
powerpc-apple-darwin, I get:

$ gfortran abs_test1.f90  ./a.out
   5.00 
$ gfortran abs_test1.f90 -std=f95  ./a.out
   2.25 

while on i686-mingw:

$ gfortran abs_test1.f90  ./a.out
5.00 
$ gfortran abs_test1.f90 -std=f95  ./a.out
NaN


Another related issue: when uncommenting the commented line, the behavior is
correct without -std=f95 (error issued at compile-time), but -std=f95 causes 
ICE:

$ gfortran abs_test1.f90 -std=f95  ./a.out
abs_test1.f90: In function 'MAIN__':
abs_test1.f90:12: internal compiler error: in gfc_typenode_for_spec, at
fortran/trans-types.c:613

-- 
   Summary: cdabs intrinsic incorrectly handled with -std=f95
   Product: gcc
   Version: 4.0.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: coudert at clipper dot ens dot fr
CC: gcc-bugs at gcc dot gnu dot org


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


[Bug target/19571] floating point registers not preserved during function call

2005-01-22 Thread jack at cs dot york dot ac dot uk

--- Additional Comments From jack at cs dot york dot ac dot uk  2005-01-22 
12:06 ---
Thankyou, that's most helpful. The problem is in the ARM simulator I am using.


-- 


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


[Bug target/19549] Register allocation problem in inline asm on x86.

2005-01-22 Thread steven at gcc dot gnu dot org

--- Additional Comments From steven at gcc dot gnu dot org  2005-01-22 
12:07 ---
Falk, sorry but Andrew is right. 
 
First of all, it *does* compile for me at -O[123] on i686, but not  
at -O0 because reload can't find a register.  I tried GCC 3.3, 3.4, 
and 4.0, and -march={i386,i686,athlon-xp,pentium4}, and all these 
versions behave the same. 
 
Second, both PRs concern a basically overly constrained asm.  I am 
sure I mentioned in PR11203 that any success in compiling such asm 
is just luck. 
 
Not a GCC bug 
 

-- 


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


[Bug inline-asm/11203] source doesn't compile with -O0 but they compile with -O3

2005-01-22 Thread steven at gcc dot gnu dot org

--- Additional Comments From steven at gcc dot gnu dot org  2005-01-22 
12:14 ---
Martin, you should realize that this problem *cannot* be solved.  Yes, 
there will perhaps be a time when this particular test case compiles, 
though I think that is unlikely.  But anyway, then there will be other 
cases that fail. 
 
The reason is dead simple: register allocation is NP-complete, so it 
is even *theoretically* not possible to write register allocators that 
always find a coloring.  That means any register allocator will always 
fail on some very constrained asm input.  And you cannot allow it to 
run indefinitely until a coloring is found, because then you've turned 
the graph coloring problem into the halting problem because you can't 
prove that a coloring exists and that the register allocator algorithm 
will terminate. 
 
So really it doesn't matter at all whether or not your specific inline 
asm compiles or not.  When yours does, someone else's will fail. 
 
 

-- 


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


[Bug fortran/19576] New: [ICE] achar in initialization

2005-01-22 Thread coudert at clipper dot ens dot fr
The following code:

program achar_test
   implicit none
   integer i
   character(*), parameter :: y(0:31) = (/(achar(i),i=64,95)/)
   write(*,*) y
end program achar_test

causes ICE on i686-mingw and powerpc-apple-darwin:

$ gfortran achar_test.f90 
achar_test.f90: In function 'MAIN__':
achar_test.f90:5: internal compiler error: in gfc_get_symbol_decl, at
fortran/trans-decl.c:827

-- 
   Summary: [ICE] achar in initialization
   Product: gcc
   Version: 4.0.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: coudert at clipper dot ens dot fr
CC: gcc-bugs at gcc dot gnu dot org


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


[Bug target/19528] [4.0 regression] missing ra.h

2005-01-22 Thread steven at gcc dot gnu dot org

--- Additional Comments From steven at gcc dot gnu dot org  2005-01-22 
12:19 ---
Mark, while you're using your RM powers to move the target milestone on 
this one, could you also please use your GWP powers to approve the simple 
patch http://gcc.gnu.org/ml/gcc-patches/2005-01/msg01258.html that fixes 
this bug? 
 

-- 
   What|Removed |Added

 CC||mark at codesourcery dot com


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


[Bug target/19528] [4.0 regression] missing ra.h

2005-01-22 Thread joel at gcc dot gnu dot org

--- Additional Comments From joel at gcc dot gnu dot org  2005-01-22 12:57 
---
(In reply to comment #10)
 Mark, while you're using your RM powers to move the target milestone on 
 this one, could you also please use your GWP powers to approve the simple 
 patch http://gcc.gnu.org/ml/gcc-patches/2005-01/msg01258.html that fixes 
 this bug? 
  

I can confirm that sh-rtems builds with this patch and won't without it.
The resulting compiler will also build RTEMS.

No sh target builds without this fix so I am also politely asking this to
be committed.

-- 


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


[Bug target/19378] [4.0 Regression] ICE during bootstrap compiling __fixdfdi

2005-01-22 Thread joel at gcc dot gnu dot org

--- Additional Comments From joel at gcc dot gnu dot org  2005-01-22 13:02 
---
(In reply to comment #6)
 AVR is not a primary or secondary platform; removing target milestone.

Understood but there is a patch from Rager Sayle and all it needs is to be
reviewed and approved.  He posted tests rules and an explanation here:

http://gcc.gnu.org/ml/gcc-patches/2005-01/msg00834.html

He reports on avr-elf and I can confirm that this lets avr-rtems build.

Please approve this patch.

-- 
   What|Removed |Added

 CC||mmitchel at gcc dot gnu dot
   ||org


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


[Bug fortran/19576] [ICE] achar in initialization

2005-01-22 Thread Thomas dot Koenig at online dot de

--- Additional Comments From Thomas dot Koenig at online dot de  2005-01-22 
13:30 ---
Same thing on i686-pc-linux-gnu.

-- 


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


[Bug fortran/19576] achar in initialization

2005-01-22 Thread ebotcazou at gcc dot gnu dot org

--- Additional Comments From ebotcazou at gcc dot gnu dot org  2005-01-22 
13:32 ---
Please don't put ICE in the summary.


-- 
   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed||1
   Keywords||ice-on-valid-code
   Last reconfirmed|-00-00 00:00:00 |2005-01-22 13:32:02
   date||
Summary|[ICE] achar in  |achar in initialization
   |initialization  |


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


[Bug fortran/19194] Missing RECL parameter in OPEN statement

2005-01-22 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-01-22 
14:37 ---
Subject: Bug 19194

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-01-22 14:37:39

Modified files:
libgfortran: ChangeLog 
libgfortran/io : io.h 
gcc/fortran: ChangeLog trans-io.c 

Log message:
gcc/fortran/
PR fortran/19194
* trans-io.c (ADD_STRING): Use gfc_charlen_type_node for string
length parameters.
(gfc_build_io_library_fndecls): 'rec' and 'recl_in' are not
pointer fields.

libgfortran/
PR fortran/19194
* io/io.h (st_parameter): Use 'GFC_INTEGER_4' instead of 'int',
use CHARACTER macro for definition of string valued paramters.

Also fix years in recent ChangeLog entries.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/ChangeLog.diff?cvsroot=gccr1=1.148r2=1.149
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/io/io.h.diff?cvsroot=gccr1=1.14r2=1.15
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/ChangeLog.diff?cvsroot=gccr1=1.304r2=1.305
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/fortran/trans-io.c.diff?cvsroot=gccr1=1.26r2=1.27



-- 


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


[Bug fortran/19194] Missing RECL parameter in OPEN statement

2005-01-22 Thread tobi at gcc dot gnu dot org

--- Additional Comments From tobi at gcc dot gnu dot org  2005-01-22 14:40 
---
Fixed.

-- 
   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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


[Bug target/19549] Register allocation problem in inline asm on x86.

2005-01-22 Thread falk at debian dot org

--- Additional Comments From falk at debian dot org  2005-01-22 15:23 
---
(In reply to comment #5)

 Second, both PRs concern a basically overly constrained asm.  I am 
 sure I mentioned in PR11203 that any success in compiling such asm 
 is just luck. 
  
 Not a GCC bug 

We do in fact completely agree, except for the interpretation of the words
invalid and bug. I would have closed it as wontfix instead of invalid.
Of course, the effect for the users is exactly the same :-)

-- 


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


[Bug objc/18408] [4.0 Regression] ICE compiling code that involves casting classes

2005-01-22 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-01-22 
15:23 ---
With --disable-checking, we get the correct code but we don't get an ICE.

-- 
   What|Removed |Added

   Keywords||ice-checking


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


[Bug fortran/19575] cdabs intrinsic incorrectly handled with -std=f95

2005-01-22 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-01-22 
15:48 ---
  sub (specific__abs_c8);
  sub (specific__abs_c4);
Hmm, I don't know what should be happening with intrinsics at all in this case

-- 


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


[Bug inline-asm/11203] source doesn't compile with -O0 but they compile with -O3

2005-01-22 Thread stian at nixia dot no

--- Additional Comments From stian at nixia dot no  2005-01-22 15:58 ---
if you resolve all memory-referenses to temporary variables
void *a=(src + 0*stride)
and use those instead. Doesn't that lessen the stress the register-allocator is
given?

-- 


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


[Bug fortran/19577] New: initial padding for COMMON blocks - order of variables

2005-01-22 Thread ilias at utcpd dot sk
Hello, short fortran software:
===
   Program TEST_COMMON_BLOCKS

   implicit real*8 (a-h,o-z)
   common /common_block/ a,i
 
   a=1.25
   i=-4
   write(*,*) main prog:, i,a

   call subr

   stop  0
   end

   subroutine subr
   implicit real*8 (a-h,o-z)
C  common /common_block/ a,i  ! does compile perfectly
C  common /common_block2/ i,a   ! does compile with warning...
   common /common_block/ i,a   ! does NOT COMPILE - error with padding

   a=-2.585
   i=8
   write(*,*) subroutine :, i,a

   return
   end
==

It gives:
g77 -fno-globals -Wno-globals -Wall tc.f 
tc.f: In subroutine `subr':
tc.f:4: 
  common /common_block/ a,i
  1
tc.f:19: (continued):
  common /common_block/ i,a   ! does NOT COMPILE - error with paddi
  2
Initial padding for common block `common_block' is 4 bytes at (2) but 0 bytes 
at (1) -- consider reordering members, largest-type-size first

The g77 is sensitive on the order of variable types. Commercial ifc does 
compile it well.
 Miro

-- 
   Summary: initial padding for COMMON blocks - order of variables
   Product: gcc
   Version: 3.3.3
Status: UNCONFIRMED
  Severity: minor
  Priority: P2
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ilias at utcpd dot sk
CC: gcc-bugs at gcc dot gnu dot org
  GCC host triplet: PC linux
GCC target triplet: gcc/g77 version 3.3.3


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


[Bug tree-optimization/19038] [4.0 Regression] tree-ssa causing loops to have more than one BB

2005-01-22 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-01-22 
16:48 ---
Subject: Bug 19038

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-01-22 16:48:24

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

Log message:
2005-01-20  Daniel Berlin  [EMAIL PROTECTED]

Fix PR tree-optimization/19038
* tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
copies with loop variant ones.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gccr1=2.7228r2=2.7229
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-dom.c.diff?cvsroot=gccr1=2.86r2=2.87



-- 


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


[Bug tree-optimization/19038] [4.0 Regression] tree-ssa causing loops to have more than one BB

2005-01-22 Thread dberlin at gcc dot gnu dot org

--- Additional Comments From dberlin at gcc dot gnu dot org  2005-01-22 
16:49 ---
Fixed

-- 
   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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


[Bug tree-optimization/18048] [4.0 Regression] mgrid loop performance regression with ivopts

2005-01-22 Thread dberlin at gcc dot gnu dot org


-- 
Bug 18048 depends on bug 19038, which changed state.

Bug 19038 Summary: [4.0 Regression] tree-ssa causing loops to have more than 
one BB
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19038

   What|Old Value   |New Value

 Status|NEW |ASSIGNED
 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

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


[Bug inline-asm/11203] source doesn't compile with -O0 but they compile with -O3

2005-01-22 Thread michaelni at gmx dot at

--- Additional Comments From michaelni at gmx dot at  2005-01-22 17:10 
---
(In reply to comment #14)
 In any case, just because code is syntactically valid 
 GNU C doesn't mean gcc can always compile it.  With this kind of inline asm, 
 you're bound to confuse the register allocator.  The fact that it works at O3 
 is pure luck and not a bug.  

well, you are the gcc developers so theres not much arguing about what you
consider valid, but last time i checked the docs did not mention that asm
statemts may fail to compile at random, and IMO as long as this is not clearly
stated in the docs this bugreport really shouldnt be marked as invalid, say you
dont want to fix it, say it would be too complicated to fix or whatever but its
not invalid


 Note that you're hitting an *error*, not an ICE. 

no, at least one of the bugreports marked as duplicate of this ends in an ICE



(In reply to comment #24)
 Martin, you should realize that this problem *cannot* be solved. Yes, 
 there will perhaps be a time when this particular test case compiles, 
 though I think that is unlikely.  But anyway, then there will be other 
 cases that fail. 

hmm, so the probelm cannot be solved but then maybe it will be solved but this
doesnt count because there will be other unrelated bugs? i cant follow this
reasoning or do u mean that u can never solve all bugs and so theres no need to
fix any single one?


  
 The reason is dead simple: register allocation is NP-complete, so it 
 is even *theoretically* not possible to write register allocators that 
 always find a coloring. 

register allocation in general is NP-complete, yes, but it seems u forget that
this is about finding the optimal solution while gcc fails finding any solution
which in practice is a matter of assigning the registers beginning from the most
constrained operands to the least, and copying a few things on the stack if gcc
cant figure out howto access them, sure this method might fail in 0.001% of the
practical cases and need a 2nd or 3rd pass where it tries different registers
it might also happen that in some intentionally overconstrained cases it ends up
searching the whole 5040 possible assignments of 7 registers onto 7 non memory
operands but still it wont fail

 That means any register allocator will always 
 fail on some very constrained asm input.

now that statement is just false, not to mention irrelevant as none of these asm
statemets are unreasonably constrained


  And you cannot allow it to 
 run indefinitely until a coloring is found, because then you've turned 
 the graph coloring problem into the halting problem because you can't 
 prove that a coloring exists and that the register allocator algorithm 
 will terminate. 

this is ridiculous, the number of possible colorings is finite, u can always try
them all in finite time

-- 


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


Re: [Bug inline-asm/11203] source doesn't compile with -O0 but they compile with -O3

2005-01-22 Thread Daniel Berlin


The reason is dead simple: register allocation is NP-complete, so it
is even *theoretically* not possible to write register allocators that
always find a coloring.
register allocation in general is NP-complete, yes, but it seems u forget 
that
this is about finding the optimal solution while gcc fails finding any solution
which in practice is a matter of assigning the registers beginning from the most
constrained operands to the least, and copying a few things on the stack if gcc
cant figure out howto access them, sure this method might fail in 0.001% of the
practical cases and need a 2nd or 3rd pass where it tries different registers
it might also happen that in some intentionally overconstrained cases it ends up
searching the whole 5040 possible assignments of 7 registers onto 7 non memory
operands but still it wont fail
Just to also point out, it doesn't appear to be NP complete for register 
interference graphs, because they all seem to be 1-perfect.
Various papers have observed this, and i've actually  compiled all of gcc, 
libstdc++, etc, and every package ever on my computer, and not once has a 
single non-1-perfect interference graph 
occurred [my compiler would abort if it was true].

On 1-perfect graphs you can solve this problem in O(time it takes to 
determine the max clique), and there already exists a polynomial time 
algorithm for max-clique on perfect graphs.


 
That means any register allocator will always
fail on some very constrained asm input.
now that statement is just false, not to mention irrelevant as none of 
these asm
statemets are unreasonably constrained
You are correct, NP completeness does not imply impossiblity.
There are only a finite number of possibilities.

 And you cannot allow it to
run indefinitely until a coloring is found, because then you've turned
the graph coloring problem into the halting problem because you can't
prove that a coloring exists and that the register allocator algorithm
will terminate.
this is ridiculous, the number of possible colorings is finite, u can 
always try
them all in finite time
You are right, he is wrong.


[Bug inline-asm/11203] source doesn't compile with -O0 but they compile with -O3

2005-01-22 Thread dberlin at dberlin dot org

--- Additional Comments From dberlin at gcc dot gnu dot org  2005-01-22 
17:21 ---
Subject: Re:  source doesn't compile with -O0 but they
 compile with -O3






 The reason is dead simple: register allocation is NP-complete, so it
 is even *theoretically* not possible to write register allocators that
 always find a coloring.

 register allocation in general is NP-complete, yes, but it seems u forget that
 this is about finding the optimal solution while gcc fails finding any 
 solution
 which in practice is a matter of assigning the registers beginning from the 
 most
 constrained operands to the least, and copying a few things on the stack if 
 gcc
 cant figure out howto access them, sure this method might fail in 0.001% of 
 the
 practical cases and need a 2nd or 3rd pass where it tries different registers
 it might also happen that in some intentionally overconstrained cases it ends 
 up
 searching the whole 5040 possible assignments of 7 registers onto 7 non memory
 operands but still it wont fail

Just to also point out, it doesn't appear to be NP complete for register 
interference graphs, because they all seem to be 1-perfect.
Various papers have observed this, and i've actually  compiled all of gcc, 
libstdc++, etc, and every package ever on my computer, and not once has a 
single non-1-perfect interference graph 
occurred [my compiler would abort if it was true].

On 1-perfect graphs you can solve this problem in O(time it takes to 
determine the max clique), and there already exists a polynomial time 
algorithm for max-clique on perfect graphs.



  
 That means any register allocator will always
 fail on some very constrained asm input.

 now that statement is just false, not to mention irrelevant as none of these 
 asm
 statemets are unreasonably constrained

You are correct, NP completeness does not imply impossiblity.
There are only a finite number of possibilities.


  And you cannot allow it to
 run indefinitely until a coloring is found, because then you've turned
 the graph coloring problem into the halting problem because you can't
 prove that a coloring exists and that the register allocator algorithm
 will terminate.

 this is ridiculous, the number of possible colorings is finite, u can always 
 try
 them all in finite time

You are right, he is wrong.



-- 


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


[Bug tree-optimization/19484] [4.0 Regression] function pointer propagation fails for noreturn functions

2005-01-22 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-01-22 
17:52 ---
Subject: Bug 19484

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-01-22 17:52:44

Modified files:
gcc: ChangeLog tree-cfg.c 
gcc/testsuite  : ChangeLog 
Added files:
gcc/testsuite/gcc.c-torture/compile: 20050122-1.c 20050122-2.c 

Log message:
PR tree-optimization/19484
* tree-cfg.c (remove_fallthru_edge): New function.
(cleanup_control_flow): Remove fallthru edges from calls that are
now known not to return.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gccr1=2.7229r2=2.7230
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-cfg.c.diff?cvsroot=gccr1=2.146r2=2.147
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gccr1=1.4922r2=1.4923
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.c-torture/compile/20050122-1.c.diff?cvsroot=gccr1=NONEr2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.c-torture/compile/20050122-2.c.diff?cvsroot=gccr1=NONEr2=1.1



-- 


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


[Bug tree-optimization/18048] [4.0 Regression] mgrid loop performance regression with ivopts

2005-01-22 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-01-22 
17:54 ---
(In reply to comment #8)
 Actually I think the remaining issues of the mgrid performance regression are 
 caused by PR 19038.

Well I looked the assembly and it looks like a regresiter allocator problem now 
because with -fno-
ivopts we don't spill but with it turned we do.

-- 


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


[Bug tree-optimization/19484] [4.0 Regression] function pointer propagation fails for noreturn functions

2005-01-22 Thread rsandifo at gcc dot gnu dot org


-- 
   What|Removed |Added

OtherBugsDependingO||19578
  nThis||


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


[Bug tree-optimization/19578] New: [4.0 Regression] function pointer propagation fails for noreturn functions (part 2)

2005-01-22 Thread rsandifo at gcc dot gnu dot org
I'm opening this issue to track the second testcase from PR19484:

http://gcc.gnu.org/PR19484

since it needs a different patch from the first (original) testcase.

-- 
   Summary: [4.0 Regression] function pointer propagation fails for
noreturn functions (part 2)
   Product: gcc
   Version: 4.0.0
Status: UNCONFIRMED
  Keywords: ice-on-valid-code
  Severity: normal
  Priority: P2
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rsandifo at gcc dot gnu dot org
CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu
 BugsThisDependsOn: 19484


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


[Bug tree-optimization/19578] [4.0 Regression] function pointer propagation fails for noreturn functions (part 2)

2005-01-22 Thread rsandifo at gcc dot gnu dot org


-- 
   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |rsandifo at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed||1
   Last reconfirmed|-00-00 00:00:00 |2005-01-22 17:57:06
   date||


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


[Bug tree-optimization/19484] [4.0 Regression] function pointer propagation fails for noreturn functions

2005-01-22 Thread rsandifo at gcc dot gnu dot org

--- Additional Comments From rsandifo at gcc dot gnu dot org  2005-01-22 
17:58 ---
Patch committed for the first testcase.  Using PR19578 to track the second.

-- 
   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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


[Bug tree-optimization/19578] [4.0 Regression] function pointer propagation fails for noreturn functions (part 2)

2005-01-22 Thread rsandifo at gcc dot gnu dot org


-- 
Bug 19578 depends on bug 19484, which changed state.

Bug 19484 Summary: [4.0 Regression] function pointer propagation fails for 
noreturn functions
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19484

   What|Old Value   |New Value

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

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


[Bug tree-optimization/19578] [4.0 Regression] function pointer propagation fails for noreturn functions (part 2)

2005-01-22 Thread pinskia at gcc dot gnu dot org


-- 
   What|Removed |Added

   Target Milestone|--- |4.0.0


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


[Bug tree-optimization/19578] [4.0 Regression] function pointer propagation fails for noreturn functions (part 2)

2005-01-22 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-01-22 
18:00 ---
Just for the record (and for lazy people aka me), here is the testcase:
extern void foo (void) __attribute__((noreturn));
void g (void)
{
  void (*f) (void) = foo;
  f ();
  f ();
}

-- 


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


[Bug fortran/19577] initial padding for COMMON blocks - order of variables

2005-01-22 Thread ilias at utcpd dot sk

--- Additional Comments From ilias at utcpd dot sk  2005-01-22 18:02 ---
Created an attachment (id=8038)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=8038action=view)
This is NOT bug

I returned to this programm, and realized that this is NOT a bug, but this is
good restrictive behaviour of the g77 compiler in comparison to the commercial
INTEL compiler, ifc.

The attached prorgamme can by compiled using ifc, but gives wrong results due
to wrong order of variables in the common block of the subroutine.

-- 


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


[Bug tree-optimization/8681] Generates unneeded test

2005-01-22 Thread kazu at cs dot umass dot edu

--- Additional Comments From kazu at cs dot umass dot edu  2005-01-22 18:14 
---
Still not fixed at tree level.

sum (p)
{
  unsigned int D.1166;
  unsigned int D.1161;
  int result;
  int i;

bb 0:
  result = 0;
  i = 0;
  goto bb 3 (L10);

L0:;
  if (i  0) goto L11; else goto L10;

L11:;
  result = 0;

L10:;
  D.1161 = (unsigned int) i;
  result = result + *(p + (int *) D.1161 * 4B);
  D.1166 = D.1161 + 1;
  i = (int) D.1166;
  if (D.1166 != 1) goto L0; else goto L4;

L4:;
  return result;

}


-- 


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


[Bug fortran/19577] initial padding for COMMON blocks - order of variables

2005-01-22 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-01-22 
18:14 ---
Just a note with gfortran we get a warning, not a error though.

Closing as invalid as requested by the submitter.

-- 
   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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


[Bug middle-end/18887] [4.0 Regression] libgcc2.h Improperly determines required built-in function size requirements.

2005-01-22 Thread schlie at comcast dot net

--- Additional Comments From schlie at comcast dot net  2005-01-22 18:28 
---
Subject: Re:  [4.0 Regression] libgcc2.h Improperly
 determines required built-in function size requirements.

Any reason that the milestone was removed vs. moved to 4.1 for tertiary
platforms?


 From: mmitchel at gcc dot gnu dot org [EMAIL PROTECTED]
 
 --- Additional Comments From mmitchel at gcc dot gnu dot org  2005-01-21
 There are no 8-bit or 16-bit targets in the primary or secondary platform
 lists; removing target milestone.
 
 -- 
What|Removed |Added
 
Target Milestone|4.0.0   |---
 
 
 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18887
 
 --- You are receiving this mail because: ---
 You reported the bug, or are watching the reporter.




-- 


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


[Bug tree-optimization/19516] missed optimization (bool)

2005-01-22 Thread kazu at cs dot umass dot edu

--- Additional Comments From kazu at cs dot umass dot edu  2005-01-22 18:34 
---
This is what I get at the end of tree-ssa optimizations.

foo (flag)
{
  int D.1318;
  _Bool D.1317;

bb 0:
  D.1317_2 = *flag_1;
  if (D.1317_2 != 0) goto L0; else goto L1;

L0:;
  bar ();

L1:;
  D.1317_4 = *flag_1;
  if (D.1317_4 != 0) goto L2; else goto L3;

L2:;
  bar () [tail call];

L3:;
  return;

}

Note that the load immediately after L1:; is partially redundant.
I remember Daniel Berlin saying that if PRE is extended to handle
partially redundant load, we can remove the load on one path
to L1 like so:

L0:;
  bar ();
  D.1317_5 = *flag_1;

  D.1317_4 = PHI D.1317_2(...), D.1317_5(...)
L1:;
  if (D.1317_4 != 0) goto L2; else goto L3;

At this point, DOM can thread one of the incoming edges to L1.

One problem is that PRE will probably be still disabled under -Os
when it is extended to handle partially redundant loads even though
PRE would improve this particular case.


-- 


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


[Bug c++/19569] no code for explicit instantiation of template class specialization

2005-01-22 Thread bangerth at dealii dot org

--- Additional Comments From bangerth at dealii dot org  2005-01-22 18:37 
---
Why? The function you want is inline. I would rather claim that the 
instantiation of the function in the general template is wrong, 
although arguably it doesn't matter since it is marked weak. 
 
You will have to explain what kind of problem you have because the 
function you ask for isn't instantiated? 
 
W. 

-- 
   What|Removed |Added

 Status|UNCONFIRMED |WAITING


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


[Bug fortran/19575] cdabs intrinsic incorrectly handled with -std=f95

2005-01-22 Thread sgk at troutmask dot apl dot washington dot edu

--- Additional Comments From sgk at troutmask dot apl dot washington dot 
edu  2005-01-22 19:25 ---
Part of the problem is due to the following from intrinsic.c

  add_sym_1 (zabs, 1, 1, BT_REAL, dd, GFC_STD_GNU, 
 NULL, gfc_simplify_abs, gfc_resolve_abs, 
 a, BT_COMPLEX, dd, REQUIRED);

  make_alias (cdabs);

make_alias() does not set the GFC_STD_GNU flag.  If you change
cdabs to zabs, you get

kargl[216] gfc -o y -std=f95 y.f90
 In file y.f90:3

   intrinsic zabs
1
Error: Intrinsic at (1) does not exist

which is the expected behavior.  We still get the
NaN if -std=f95 is removed from the command line.
NAG's compiler states

kargl[224] f95 -o y -dcfuns y.f90
Error: y.f90, line 5: Intrinsic CDABS cannot be an actual argument
[f95 error termination]




-- 


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


[Bug target/19528] [4.0 regression] missing ra.h

2005-01-22 Thread mark at codesourcery dot com

--- Additional Comments From mark at codesourcery dot com  2005-01-22 19:43 
---
Subject: Re:  [4.0 regression] missing ra.h

joel at gcc dot gnu dot org wrote:
 --- Additional Comments From joel at gcc dot gnu dot org  2005-01-22 
 12:57 ---
 (In reply to comment #10)
 
Mark, while you're using your RM powers to move the target milestone on 
this one, could you also please use your GWP powers to approve the simple 
patch http://gcc.gnu.org/ml/gcc-patches/2005-01/msg01258.html that fixes 
this bug? 
 
 
 
 I can confirm that sh-rtems builds with this patch and won't without it.
 The resulting compiler will also build RTEMS.
 
 No sh target builds without this fix so I am also politely asking this to
 be committed.

The patch should says Returns true rather than Returns 1 in the 
comment; OK with that change.



-- 


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


[Bug target/19378] [4.0 Regression] ICE during bootstrap compiling __fixdfdi

2005-01-22 Thread mark at codesourcery dot com

--- Additional Comments From mark at codesourcery dot com  2005-01-22 19:44 
---
Subject: Re:  [4.0 Regression] ICE during bootstrap compiling
 __fixdfdi

joel at gcc dot gnu dot org wrote:
 --- Additional Comments From joel at gcc dot gnu dot org  2005-01-22 
 13:02 ---
 (In reply to comment #6)
 
AVR is not a primary or secondary platform; removing target milestone.
 
 
 Understood but there is a patch from Rager Sayle and all it needs is to be
 reviewed and approved.  He posted tests rules and an explanation here:
 
 http://gcc.gnu.org/ml/gcc-patches/2005-01/msg00834.html
 
 He reports on avr-elf and I can confirm that this lets avr-rtems build.
 
 Please approve this patch.

The AVR maintainer should review that patch; it's certainly fine to 
commit if approved by the AVR maintainer.



-- 


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


[Bug libfortran/18982] open(status=new) does not generate an error if the file exists

2005-01-22 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-01-22 
19:49 ---
Subject: Bug 18982

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-01-22 19:49:18

Modified files:
gcc/testsuite  : ChangeLog 
libgfortran: ChangeLog 
libgfortran/io : unix.c 
Added files:
gcc/testsuite/gfortran.dg: open_new.f90 

Log message:
2005-01-22  Thomas Koenig  [EMAIL PROTECTED]

PR libfortran/18982
* io/unix.c (regular_file):  No need to change flags-action
if an error occurs.  Document this.
No need to call stat() for STATUS_OLD, open() will
fail anyway.
For ACTION_UNSPECIFIED, try open for read-write, then for
read-only if open fails with EACCES, then for write-only
if that fails with EACCES again.
* io/unix.c (open_external): Document changed behavior of
regular_file.
testsuite/
* gfortran.dg/open_new.f90: New file.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gccr1=1.4924r2=1.4925
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/open_new.f90.diff?cvsroot=gccr1=NONEr2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/ChangeLog.diff?cvsroot=gccr1=1.149r2=1.150
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/io/unix.c.diff?cvsroot=gccr1=1.19r2=1.20



-- 


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


[Bug fortran/19575] cdabs intrinsic incorrectly handled with -std=f95

2005-01-22 Thread sgk at troutmask dot apl dot washington dot edu

--- Additional Comments From sgk at troutmask dot apl dot washington dot 
edu  2005-01-22 20:00 ---
Patch to fix the nonstandard issue with -std=f95.

http://gcc.gnu.org/ml/gcc-patches/2005-01/msg01596.html

-- 


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


[Bug target/19378] [4.0 Regression] ICE during bootstrap compiling __fixdfdi

2005-01-22 Thread joel at gcc dot gnu dot org


-- 
   What|Removed |Added

 CC||denisc at overta dot ru
 AssignedTo|unassigned at gcc dot gnu   |denisc at overta dot ru
   |dot org |
 Status|NEW |ASSIGNED


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


[Bug target/19378] [4.0 Regression] ICE during bootstrap compiling __fixdfdi

2005-01-22 Thread joel at gcc dot gnu dot org

--- Additional Comments From joel at gcc dot gnu dot org  2005-01-22 21:28 
---
I just assigned it to one AVR maintainer and cc'ed the other.  Could one of
you review this patch and commit it per Mark's request.

-- 
   What|Removed |Added

 CC||marekm at amelek dot gda dot
   ||pl


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


[Bug tree-optimization/18048] [4.0 Regression] mgrid loop performance regression with ivopts

2005-01-22 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-01-22 
21:37 ---
If I have a smaller testcase but the loop is still looks like what is in mgrid 
can I paste it here, it is only 
30 lines?

-- 


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


[Bug fortran/19292] [meta-bug] g77 features lacking in gfortran

2005-01-22 Thread pbrook at gcc dot gnu dot org


-- 
Bug 19292 depends on bug 18982, which changed state.

Bug 18982 Summary: open(status=new) does not generate an error if the file 
exists
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18982

   What|Old Value   |New Value

 Status|NEW |RESOLVED
 Resolution||FIXED

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


[Bug fortran/19575] cdabs intrinsic incorrectly handled with -std=f95

2005-01-22 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-01-22 
22:38 ---
Confirmed.

-- 
   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed||1
   Keywords||accepts-invalid
   Last reconfirmed|-00-00 00:00:00 |2005-01-22 22:38:19
   date||


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


[Bug libstdc++/19343] [4.0 Regression] New warnings in libstdc++-v3 since 2004-01-05

2005-01-22 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-01-22 
22:47 ---
*** Bug 19573 has been marked as a duplicate of this bug. ***

-- 
   What|Removed |Added

 CC||hp at gcc dot gnu dot org


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


[Bug libstdc++/19573] [4.0 regression] g++.old-deja/g++.robertl/eb132.C, eb73.C failures

2005-01-22 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-01-22 
22:47 ---
Turns out this is correct warning and this is a dup of bug 19343 which has a 
way to fix it.

  pointer
  allocate(size_type __n, const void* = 0) 
  { 
if (__builtin_expect(__n  this-max_size(), false)) 
  std::__throw_bad_alloc();   -- this function does not have noreturn 
on it.

return static_cast_Tp*(::operator new(__n * sizeof(_Tp)));
  }

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

-- 
   What|Removed |Added

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


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


[Bug libstdc++/19343] [4.0 Regression] New warnings in libstdc++-v3 since 2004-01-05

2005-01-22 Thread pcarlini at suse dot de


-- 
   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |pcarlini at suse dot de
   |dot org |
 Status|NEW |ASSIGNED


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


[Bug target/19506] [4.0 Regression] PovRay produces wrong pictures with -mfpmath=sse -ffast-math.

2005-01-22 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-01-22 
23:08 ---
Subject: Bug 19506

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-01-22 23:07:57

Modified files:
gcc: ChangeLog 
gcc/config/i386: i386.c i386.md 

Log message:
PR target/19506
* config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
in both compare operands.
(movdfcc_1_sse_max): Likewise.
(movsfcc_1_sse): Likewise.  Add earlyclobber for scratch.
(movdfcc_1_sse): Likewise.
* config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
scratch register as needed.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gccr1=2.7238r2=2.7239
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/i386.c.diff?cvsroot=gccr1=1.788r2=1.789
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/i386.md.diff?cvsroot=gccr1=1.609r2=1.610



-- 


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


[Bug libstdc++/19343] [4.0 Regression] New warnings in libstdc++-v3 since 2004-01-05

2005-01-22 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-01-22 
23:09 ---
I was about to send the following patch out for this.
Index: include/bits/functexcept.h
===

RCS file: /cvs/gcc/gcc/libstdc++-v3/include/bits/functexcept.h,v
retrieving revision 1.5
diff -u -p -r1.5 functexcept.h
--- include/bits/functexcept.h  24 Nov 2004 04:11:09 -  1.5
+++ include/bits/functexcept.h  22 Jan 2005 22:54:50 -
@@ -44,50 +44,50 @@ namespace std
 {
   // Helper for exception objects in except
   void
-  __throw_bad_exception(void);
+  __throw_bad_exception(void) __attribute__((noreturn));
 
   // Helper for exception objects in new
   void
-  __throw_bad_alloc(void);
+  __throw_bad_alloc(void) __attribute__((noreturn));
 
   // Helper for exception objects in typeinfo
   void
-  __throw_bad_cast(void);
+  __throw_bad_cast(void) __attribute__((noreturn));
 
   void
-  __throw_bad_typeid(void);
+  __throw_bad_typeid(void) __attribute__((noreturn));
 
   // Helpers for exception objects in stdexcept
   void
-  __throw_logic_error(const char* __s);
+  __throw_logic_error(const char* __s) __attribute__((noreturn));
 
   void
-  __throw_domain_error(const char* __s);
+  __throw_domain_error(const char* __s) __attribute__((noreturn));
 
   void
-  __throw_invalid_argument(const char* __s);
+  __throw_invalid_argument(const char* __s) __attribute__((noreturn));
 
   void
-  __throw_length_error(const char* __s);
+  __throw_length_error(const char* __s) __attribute__((noreturn));
 
   void
-  __throw_out_of_range(const char* __s);
+  __throw_out_of_range(const char* __s) __attribute__((noreturn));
 
   void
-  __throw_runtime_error(const char* __s);
+  __throw_runtime_error(const char* __s) __attribute__((noreturn));
 
   void
-  __throw_range_error(const char* __s);
+  __throw_range_error(const char* __s) __attribute__((noreturn));
 
   void
-  __throw_overflow_error(const char* __s);
+  __throw_overflow_error(const char* __s) __attribute__((noreturn));
 
   void
-  __throw_underflow_error(const char* __s);
+  __throw_underflow_error(const char* __s) __attribute__((noreturn));
 
   // Helpers for exception objects in basic_ios
   void
-  __throw_ios_failure(const char* __s);
+  __throw_ios_failure(const char* __s) __attribute__((noreturn));
 } // namespace std
 
 #endif


-- 


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


[Bug libstdc++/19343] [4.0 Regression] New warnings in libstdc++-v3 since 2004-01-05

2005-01-22 Thread pcarlini at suse dot de

--- Additional Comments From pcarlini at suse dot de  2005-01-22 23:16 
---
 I was about to send the following patch out for this.

Thanks Andrew, I have already implemented and tested AJ original suggestion, 
will
wait a bit for the list opinion.

-- 


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


[Bug target/19506] [4.0 Regression] PovRay produces wrong pictures with -mfpmath=sse -ffast-math.

2005-01-22 Thread rth at gcc dot gnu dot org

--- Additional Comments From rth at gcc dot gnu dot org  2005-01-22 23:23 
---
(In reply to comment #10)
 Should patch to sse_comparison_operator [...] be reverted in this case?

Nah.  As I said in that message, allowing these operators in this manner
doesn't actually give the register allocator any more freedom, and therefore
doesn't do what was hoped.  See e.g. alpha's movsicc_internal for an example
of how the comparisons would have to be reworked in order to give that freedom.

Anyway, fixed.

-- 
   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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


[Bug target/19378] [4.0 Regression] ICE during bootstrap compiling __fixdfdi

2005-01-22 Thread marekm at amelek dot gda dot pl

--- Additional Comments From marekm at amelek dot gda dot pl  2005-01-23 
00:14 ---
I think the proposed avr_hard_regno_mode_ok patch may need a small fix for 
QImode in r29 - possible problem with frame pointer (see removed comment): 
 
-  if (regno = REG_Y  (regno + GET_MODE_SIZE (mode)) = (REG_Y + 1)) 
+  if (regno = (REG_Y + 1)  regno + GET_MODE_SIZE (mode)  REG_Y) 
 

-- 


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


[Bug libfortran/19052] unit 0 not preconnected to standard error

2005-01-22 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-01-23 
00:15 ---
Subject: Bug 19052

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-01-23 00:14:32

Modified files:
libgfortran: ChangeLog libgfortran.h 
libgfortran/io : io.h open.c unit.c unix.c 
libgfortran/runtime: environ.c 

Log message:
PR libgfortran/19052
* libgfortran.h (options_t): Add stderr_unit.
* io/io.h (error_stream): Declare.
* io/open.c (new_unit): Do not terminate abnormally if opening
file preconnected to stdin, stdout, or stderr.
* io/unit.c (init_units): Initialize stderr_unit.
* io/unix.c (error_stream): New function.
* runtime/environ.c (GFORTRAN_STDERR_UNIT): New environment variable.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/ChangeLog.diff?cvsroot=gccr1=1.150r2=1.151
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/libgfortran.h.diff?cvsroot=gccr1=1.21r2=1.22
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/io/io.h.diff?cvsroot=gccr1=1.15r2=1.16
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/io/open.c.diff?cvsroot=gccr1=1.9r2=1.10
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/io/unit.c.diff?cvsroot=gccr1=1.7r2=1.8
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/io/unix.c.diff?cvsroot=gccr1=1.20r2=1.21
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/runtime/environ.c.diff?cvsroot=gccr1=1.6r2=1.7



-- 


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


[Bug libfortran/19052] unit 0 not preconnected to standard error

2005-01-22 Thread dje at gcc dot gnu dot org


-- 
   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dje at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2004-12-17 12:40:46 |2005-01-23 00:24:07
   date||


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


[Bug tree-optimization/18048] [4.0 Regression] mgrid loop performance regression with ivopts

2005-01-22 Thread steven at gcc dot gnu dot org

--- Additional Comments From steven at gcc dot gnu dot org  2005-01-23 
00:24 ---
The mgrid score on AMD64 jumps 30% with my patch for PR19464 applied. 

-- 
   What|Removed |Added

 CC||mark at codesourcery dot com


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


[Bug libfortran/19052] unit 0 not preconnected to standard error

2005-01-22 Thread dje at gcc dot gnu dot org

--- Additional Comments From dje at gcc dot gnu dot org  2005-01-23 00:24 
---
Patch committed.

-- 
   What|Removed |Added

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


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


[Bug fortran/19292] [meta-bug] g77 features lacking in gfortran

2005-01-22 Thread dje at gcc dot gnu dot org


-- 
Bug 19292 depends on bug 19052, which changed state.

Bug 19052 Summary: unit 0 not preconnected to standard error
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19052

   What|Old Value   |New Value

 Status|NEW |ASSIGNED
 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

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


[Bug target/19378] [4.0 Regression] ICE during bootstrap compiling __fixdfdi

2005-01-22 Thread schlie at comcast dot net

--- Additional Comments From schlie at comcast dot net  2005-01-23 00:25 
---
(In reply to comment #10)

have you had a chance to look at Roger's more recient patch:

 http://gcc.gnu.org/ml/gcc-patches/2005-01/msg01181.html



-- 


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


[Bug c/19579] New: -march=i686 generates a bogus program

2005-01-22 Thread abulmo at club-internet dot fr
The following program:

/*--8---*/
int printf(const char *, ...);

int f(void)
{
return 0;   
}

void g(int a[])
{
int n3, n0;
int even;
int diff = a[1] - a[0];

n3 = 3;
if ((n0 = f())  0) {
even = diff + 2 * (n3 - n0);
} else {
even = diff + 2 * n3 + 1;
if (even  0) even++;
else if (even  0) even--;
}

if (even % 2 == 0) {
printf(OK! even = %d\n, even);
} else {
printf(WRONG! even = %d\n, even);
}
}

int main(void)
{
int a[2] = {46, 16};
g(a);
return 0;
}
/*--8---*/

when compiled with:
$ gcc-3.4.3 bug.c -o bug -O2 -march=i686

displays when executed:
WRONG! even = -23

whereas when compiled with:
$ gcc-3.4.3 bug.c -o bug -O2

gives the expected output:
OK! even = -24

The bug is also exhibited when some others -march options are used, like
-march=athlon-xp.

gcc-3.4.3 -v output is:
Reading specs from
/home/richard/programs/gcc-3.4.3/lib/gcc/i686-pc-linux-gnu/3.4.3/specs
Configured with: /home/richard/tmp/gcc/gcc-3.4.3/configure
--prefix=/home/richard/programs/gcc-3.4.3 --program-suffix=-3.4.3
--enable-threads=posix --enable-languages=c,c++
Thread model: posix
gcc version 3.4.3

bug.i:
# 1 bug.c
# 1 built-in
# 1 command line
# 1 bug.c
int printf(const char *, ...);

int f(void)
{
 return 0;
}

void g(int a[])
{
 int n3, n0;
 int even;
 int diff = a[1] - a[0];

 n3 = 3;
 if ((n0 = f())  0) {
  even = diff + 2 * (n3 - n0);
 } else {
  even = diff + 2 * n3 + 1;
  if (even  0) even++;
  else if (even  0) even--;
 }

 if (even % 2 == 0) {
  printf(OK! even = %d\n, even);
 } else {
  printf(WRONG! even = %d\n, even);
 }
}

int main(void)
{
 int a[2] = {46, 16};
 g(a);
 return 0;
}

-- 
   Summary: -march=i686 generates a bogus program
   Product: gcc
   Version: 3.4.3
Status: UNCONFIRMED
  Severity: normal
  Priority: P2
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: abulmo at club-internet dot fr
CC: gcc-bugs at gcc dot gnu dot org
  GCC host triplet: gcc-3.4.3/gentoo-linux/athlon-xp 2500+


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


[Bug target/19579] -march=i686 generates a bogus program

2005-01-22 Thread pinskia at gcc dot gnu dot org


-- 
   What|Removed |Added

  Component|c   |target
   Keywords||wrong-code


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


[Bug rtl-optimization/19464] [3.3/3.4/4.0 Regression] gcse causes poor register allocation

2005-01-22 Thread belyshev at depni dot sinp dot msu dot ru

--- Additional Comments From belyshev at depni dot sinp dot msu dot ru  
2005-01-23 00:42 ---
(In reply to comment #4)
 This can be fixed at the tree level without any gcse or ra hacking: 
 http://gcc.gnu.org/ml/gcc-patches/2005-01/msg01462.html 

GCC generates poor code for this function even with that patch applied:

int r[6];

void g (int n)
{
  while (-- n)
{
  r [0] += r [5];
  r [1] += r [0];
  r [2] += r [1];
  r [3] += r [2];
  r [4] += r [3];
  r [5] += r [4];
}
}


-- 


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


[Bug rtl-optimization/19464] [3.3/3.4/4.0 Regression] gcse causes poor register allocation

2005-01-22 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-01-23 
01:17 ---
(In reply to comment #6)
 (In reply to comment #4)
  This can be fixed at the tree level without any gcse or ra hacking: 
  http://gcc.gnu.org/ml/gcc-patches/2005-01/msg01462.html 
 
 GCC generates poor code for this function even with that patch applied:

This looks like a different bug because with 3.3.3 we get the good code but not 
with 3.4.0.
Good code meaning:
.L5:
addl%edi, %ebp
addl%ebp, %esi
addl%esi, %ecx
addl%ecx, %edx
addl%edx, %eax
addl%eax, %edi
decl%ebx
jne .L5

-- 


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


[Bug rtl-optimization/19580] New: [3.4/4.0 Regression] poor register allocation

2005-01-22 Thread belyshev at depni dot sinp dot msu dot ru
--
int r[6];

void f (int n)
{
  while (-- n)
{
  r [0] += r [5];
  r [1] += r [0];
  r [2] += r [1];
  r [3] += r [2];
  r [4] += r [3];
  r [5] += r [4];
}
}
--

On i386 with -O2 -fomit-frame-pointer we get:

.L4:
movl20(%esp), %ebp
movl8(%esp), %eax
movl16(%esp), %ebx
incl24(%esp)
addl%edi, %ebp
leal(%ebp,%eax), %esi
movl12(%esp), %eax
movl%ebp, 20(%esp)
leal(%esi,%ebx), %ecx
movl4(%esp), %ebx
movl%esi, 8(%esp)
leal(%ecx,%eax), %edx
movl%ecx, 16(%esp)
leal(%edx,%ebx), %eax
movl24(%esp), %ebx
cmpl%ebx, 28(%esp)
movl%edx, 12(%esp)
leal(%eax,%edi), %edi
movl%eax, 4(%esp)
movl%edi, (%esp)
jne .L4

workaround: -fno-gcse

-- 
   Summary: [3.4/4.0 Regression] poor register allocation
   Product: gcc
   Version: 4.0.0
Status: UNCONFIRMED
  Keywords: missed-optimization, ra
  Severity: normal
  Priority: P2
 Component: rtl-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: belyshev at depni dot sinp dot msu dot ru
CC: gcc-bugs at gcc dot gnu dot org


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


[Bug rtl-optimization/19580] [3.4/4.0 Regression] poor register allocation

2005-01-22 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-01-23 
01:36 ---
Confirmed, only a regression from 3.3.3 which gave the following good code:
.L5:
addl%edi, %ebp
addl%ebp, %esi
addl%esi, %ecx
addl%ecx, %edx
addl%edx, %eax
addl%eax, %edi
decl%ebx
jne .L5

-- 
   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed||1
  Known to fail||3.4.0 4.0.0
  Known to work||3.3.3
   Last reconfirmed|-00-00 00:00:00 |2005-01-23 01:36:57
   date||
   Target Milestone|--- |3.4.4


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


[Bug tree-optimization/19581] New: Missed store monition on the tree level (on PPC in general)

2005-01-22 Thread pinskia at gcc dot gnu dot org
This is like PR 19580 but a request to optimize it on the tree level instead of 
just on the RTL level.  
Mainly because we don't catch it for PPC (with 3.3.3 or with -fno-gcse).
int r[6];

void f (int n)
{
  while (-- n)
{
  r [0] += r [5];
  r [1] += r [0];
  r [2] += r [1];
  r [3] += r [2];
  r [4] += r [3];
  r [5] += r [4];
}
}

We should be able to pull out the load and stores for r[0] ... r[5].
If we do it on the tree level, we also just fix the problem for 4.0 also (but I 
think this might need more 
aliasing analysis or I could be wrong).

-- 
   Summary: Missed store monition on the tree level (on PPC in
general)
   Product: gcc
   Version: 4.0.0
Status: UNCONFIRMED
  Keywords: missed-optimization, alias, TREE
  Severity: enhancement
  Priority: P2
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pinskia at gcc dot gnu dot org
CC: gcc-bugs at gcc dot gnu dot org


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


[Bug rtl-optimization/19464] [3.3/3.4/4.0 Regression] gcse causes poor register allocation

2005-01-22 Thread belyshev at depni dot sinp dot msu dot ru

--- Additional Comments From belyshev at depni dot sinp dot msu dot ru  
2005-01-23 01:43 ---
(In reply to comment #7)
 This looks like a different bug because with 3.3.3 we get the good code but
not with 3.4.0.

this is now bug 19580


-- 


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


[Bug tree-optimization/19581] Missed store monition on the tree level (on PPC in general)

2005-01-22 Thread pinskia at gcc dot gnu dot org


-- 
   What|Removed |Added

OtherBugsDependingO||19580
  nThis||


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


[Bug tree-optimization/19581] Missed store monition on the tree level (on PPC in general)

2005-01-22 Thread dberlin at gcc dot gnu dot org

--- Additional Comments From dberlin at gcc dot gnu dot org  2005-01-23 
01:47 ---
This needs more alias analysis
Structure aliasing could do this with a little work, so i'll take this for now

-- 
   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |dberlin at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed||1
   Last reconfirmed|-00-00 00:00:00 |2005-01-23 01:47:51
   date||


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


[Bug middle-end/19580] [3.4/4.0 Regression] poor register allocation

2005-01-22 Thread steven at gcc dot gnu dot org

--- Additional Comments From steven at gcc dot gnu dot org  2005-01-23 
01:49 ---
This is a tree-optimization bug for 4.0 and later.  I think the problem 
is that we don't catch the store motion opportunity at the tree level 
because to the tree alias analyses arrays are opaque objects.  On RTL 
we can distinguish the array members. 
 
If this is the problem, then Dan's sa-branch work should fix it... 
Dan? 

-- 
   What|Removed |Added

 CC||dberlin at gcc dot gnu dot
   ||org
  Component|rtl-optimization|middle-end
   Keywords|ra  |alias


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


[Bug libstdc++/19343] [4.0 Regression] New warnings in libstdc++-v3 since 2004-01-05

2005-01-22 Thread hp at gcc dot gnu dot org

--- Additional Comments From hp at gcc dot gnu dot org  2005-01-23 01:52 
---
I think you need to spell it __noreturn__, as a user should be free to
#define noreturn
in the program, before the include.




-- 


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


[Bug rtl-optimization/19580] [3.4/4.0 Regression] missed load/store monition

2005-01-22 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-01-23 
01:53 ---
(In reply to comment #2)
 This is a tree-optimization bug for 4.0 and later.  I think the problem 
 is that we don't catch the store motion opportunity at the tree level 
 because to the tree alias analyses arrays are opaque objects.  On RTL 
 we can distinguish the array members. 
Then why don't we optimize in 3.4.0 while we did in 3.3.3.

 If this is the problem, then Dan's sa-branch work should fix it... 
 Dan? 

I already filed PR  19581 for that because on PPC even in 3.3.3 we don't get 
optimial code.  But 
someone should look into what happened to changed the behavor in 3.4.0.

I am willing to bet it was the rewritten of the load/store monition.

-- 
   What|Removed |Added

  Component|middle-end  |rtl-optimization
Summary|[3.4/4.0 Regression] poor   |[3.4/4.0 Regression] missed
   |register allocation |load/store monition


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


[Bug libstdc++/19343] [4.0 Regression] New warnings in libstdc++-v3 since 2004-01-05

2005-01-22 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-01-23 
01:56 ---
(In reply to comment #8)
  I was about to send the following patch out for this.
 
 Thanks Andrew, I have already implemented and tested AJ original suggestion, 
 will
 wait a bit for the list opinion.
Actually this patch was the same patch as what you did :).  Anyways makes sure 
that you take  Hans-
Peter's advice because it is correct (there was at least one bug report about 
this before but I had forgot 
about when writting the patch).

-- 


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


[Bug rtl-optimization/19580] [3.4/4.0 Regression] missed load/store monition

2005-01-22 Thread dberlin at dberlin dot org

--- Additional Comments From dberlin at gcc dot gnu dot org  2005-01-23 
02:08 ---
Subject: Re:  [3.4/4.0 Regression] poor register
 allocation



On Sat, 23 Jan 2005, steven at gcc dot gnu dot org wrote:


 --- Additional Comments From steven at gcc dot gnu dot org  2005-01-23 
 01:49 ---
 This is a tree-optimization bug for 4.0 and later.  I think the problem
 is that we don't catch the store motion opportunity at the tree level
 because to the tree alias analyses arrays are opaque objects.  On RTL
 we can distinguish the array members.

 If this is the problem, then Dan's sa-branch work should fix it...
 Dan?

It will once i handle constant index array refs (It currently punts on 
array refs entirely).



-- 


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


[Bug libfortran/19451] Read after a write with a read only file

2005-01-22 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-01-23 
02:20 ---
Subject: Bug 19451

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-01-23 02:18:34

Modified files:
gcc/testsuite  : ChangeLog 
libgfortran: ChangeLog 
libgfortran/io : transfer.c 
Added files:
gcc/testsuite/gfortran.dg: open_readonly_1.f90 

Log message:
2005-01-22  Thomas Koenig  [EMAIL PROTECTED]

PR libfortran/19451
* io/transfer.c (finalize_transfer):  Don't do anything if
there is an error condition.
* open_readonly_1.f90:  New test.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gccr1=1.4925r2=1.4926
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gfortran.dg/open_readonly_1.f90.diff?cvsroot=gccr1=NONEr2=1.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/ChangeLog.diff?cvsroot=gccr1=1.151r2=1.152
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libgfortran/io/transfer.c.diff?cvsroot=gccr1=1.28r2=1.29



-- 


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


[Bug c/19582] New: strtok and strtok_r do not work without -fwritable-strings

2005-01-22 Thread roger at systemroot dot org
$ cat test.c 
#include string.h
#include stdio.h

int main(void) {
char *tmp;
const char * const delim= ;
tmp=strtok(a b c, delim);
printf(%s\n,tmp);
return 0;
}
$ gcc -Wall test.c
$ ./a.out 
Segmentation fault (core dumped)
$ gcc -Wall -fwritable-strings test.c
cc1: note: -fwritable-strings is deprecated; see documentation for details
$ ./a.out
a
$

-- 
   Summary: strtok and strtok_r do not work without -fwritable-
strings
   Product: gcc
   Version: 3.4.4
Status: UNCONFIRMED
  Severity: minor
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: roger at systemroot dot org
CC: gcc-bugs at gcc dot gnu dot org


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


[Bug c/19582] strtok and strtok_r do not work without -fwritable-strings

2005-01-22 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-01-23 
03:00 ---
This is invalid, see the prototype for strtok{,_r}:
 strtok_r(char *str, const char *sep, char **last);

And from the man page (from *BSD, well from darwin):
 The strtok() function is used to isolate sequential tokens in a null-ter-
 minated string, str.

So you need a writable string.

-- 
   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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


[Bug libstdc++/8670] Alignment problem in std::basic_string

2005-01-22 Thread ncm-nospam at cantrip dot org

--- Additional Comments From ncm-nospam at cantrip dot org  2005-01-23 
03:52 ---
Somebody mentioned that using unions for type punning was described
in the textbooks as extremely bad form.  That's how I always thought
of it, too, but it seems, at least in Gcc, unions are now the right 
way to do type punning, instead of casting. For reference, see the 
notes under -fstrict-aliasing (which is turned on by -O2) in

  http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Optimize-Options.html

(Thanks to Robert Love for having pointed this out to me.)

-- 


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


[Bug rtl-optimization/19580] [3.4/4.0 Regression] missed load/store monition

2005-01-22 Thread belyshev at depni dot sinp dot msu dot ru

--- Additional Comments From belyshev at depni dot sinp dot msu dot ru  
2005-01-23 04:34 ---
Caused by this patch:

2003-04-01  Zdenek Dvorak  [EMAIL PROTECTED]

* gcse.c (struct ls_expr): Added pattern_regs field.
(ldst_entry): Initialize it.
(extract_mentioned_regs, extract_mentioned_regs_helper): New.
(store_ops_ok): Use regs precomputed by them.
(find_loads, store_killed_in_insn, load_kills_store): Change return
type to bool.
(store_killed_before, store_killed_after): Take position of register
set in account.
(reg_set_info): Store position of the setter.
(gcse_main): Enable store motion.
(mems_conflict_for_gcse_p): Enable load motion of non-symbol mems.
(pre_insert_copy_insn, update_ld_motion_stores, insert_store): Prevent 
rtl
sharing.
(simple_mem): Enable store motion of non-symbol mems.
(regvec): Type changed.
(LAST_AVAIL_CHECK_FAILURE): New.
(compute_store_table_current_insn): New.
(build_store_vectors): Computation of availability and anticipatability
moved ...
(compute_store_table, find_moveable_store): ... here.
(delete_store): Remove senseless comment.
(store_motion): Reorganize.


-- 
   What|Removed |Added

   Keywords||ra


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


[Bug rtl-optimization/19580] [3.4/4.0 Regression] missed load/store motion

2005-01-22 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-01-23 
04:38 ---
(In reply to comment #5)
 Caused by this patch:
And I was right this was caused by the store motion rewrite.
http://gcc.gnu.org/ml/gcc-patches/2003-02/msg02090.html

-- 
   What|Removed |Added

   Keywords|ra  |
Summary|[3.4/4.0 Regression] missed |[3.4/4.0 Regression] missed
   |load/store monition |load/store motion


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


[Bug rtl-optimization/19580] [3.4/4.0 Regression] missed load/store motion

2005-01-22 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-01-23 
04:39 ---
Note this is not a register allocator problem any more but a missed 
optimization.

-- 


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


[Bug target/19378] [4.0 Regression] ICE during bootstrap compiling __fixdfdi

2005-01-22 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-01-23 
04:51 ---
Subject: Bug 19378

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

Modified files:
gcc: ChangeLog 
gcc/config/avr : avr.c 

Log message:
PR middle-end/19378
* config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gccr1=2.7239r2=2.7240
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/avr/avr.c.diff?cvsroot=gccr1=1.125r2=1.126



-- 


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


[Bug c++/19583] New: Incorrect diagnostic: control may reach end of non-void function '...' being inlined

2005-01-22 Thread zack at gcc dot gnu dot org
$ /scratch/zack/i/gcc-vanilla/bin/g++ -v
Using built-in specs.
Configured with: /home/zack/src/gcc/HEAD/vanilla/configure
--prefix=/scratch/zack/i/gcc-vanilla --disable-checking --enable-languages=c,c++
--disable-multilib
Thread model: posix
gcc version 4.0.0 20050122 (experimental)

$ /scratch/zack/i/gcc-vanilla/bin/g++ -S -O2 -W -Wall testcase.cc
testcase.cc: In function ‘void finalize()’:
testcase.cc:29: warning: control may reach end of non-void function ‘bool
N::operator!=(N) const’ being inlined

I will attach the testcase.

-- 
   Summary: Incorrect diagnostic: control may reach end of non-void
function '...' being inlined
   Product: gcc
   Version: 4.0.0
Status: UNCONFIRMED
  Keywords: diagnostic
  Severity: minor
  Priority: P2
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: zack at gcc dot gnu dot org
CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: x86_64-unknown-linux-gnu
  GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: x86_64-unknown-linux-gnu


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


[Bug c++/19583] Incorrect diagnostic: control may reach end of non-void function '...' being inlined

2005-01-22 Thread zack at gcc dot gnu dot org

--- Additional Comments From zack at gcc dot gnu dot org  2005-01-23 05:08 
---
Created an attachment (id=8039)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=8039action=view)
test case


-- 


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


[Bug c++/19583] Incorrect diagnostic: control may reach end of non-void function '...' being inlined

2005-01-22 Thread zack at gcc dot gnu dot org

--- Additional Comments From zack at gcc dot gnu dot org  2005-01-23 05:11 
---
Created an attachment (id=8040)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=8040action=view)
shorter test case


-- 
   What|Removed |Added

Attachment #8039 is|0   |1
   obsolete||


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


[Bug target/18402] [3.3 regression] ICE in gen_split_1204 on i686-pc-linux-gnu target

2005-01-22 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-01-23 
05:16 ---
Subject: Bug 18402

CVSROOT:/cvs/gcc
Module name:gcc
Branch: gcc-3_3-branch
Changes by: [EMAIL PROTECTED]   2005-01-23 05:16:15

Modified files:
gcc: ChangeLog 
gcc/config/i386: i386.md 
gcc/testsuite  : ChangeLog 
Added files:
gcc/testsuite/gcc.dg: 20030204-1.c 

Log message:
PR target/18402
Backport from mainline
2003-02-05  Jakub Jelinek  [EMAIL PROTECTED]

PR optimization/8555
* config/i386/i386.md (sse_mov?fcc split): Handle op2 == op3 case
instead of aborting.

* gcc.dg/20030204-1.c: New test.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcconly_with_tag=gcc-3_3-branchr1=1.16114.2.1055r2=1.16114.2.1056
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/i386.md.diff?cvsroot=gcconly_with_tag=gcc-3_3-branchr1=1.404.2.28r2=1.404.2.29
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcconly_with_tag=gcc-3_3-branchr1=1.2261.2.397r2=1.2261.2.398
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/20030204-1.c.diff?cvsroot=gcconly_with_tag=gcc-3_3-branchr1=NONEr2=1.3.6.1



-- 


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


[Bug rtl-optimization/8555] [3.2 regression] ICE in gen_split_1231

2005-01-22 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-01-23 
05:16 ---
Subject: Bug 8555

CVSROOT:/cvs/gcc
Module name:gcc
Branch: gcc-3_3-branch
Changes by: [EMAIL PROTECTED]   2005-01-23 05:16:15

Modified files:
gcc: ChangeLog 
gcc/config/i386: i386.md 
gcc/testsuite  : ChangeLog 
Added files:
gcc/testsuite/gcc.dg: 20030204-1.c 

Log message:
PR target/18402
Backport from mainline
2003-02-05  Jakub Jelinek  [EMAIL PROTECTED]

PR optimization/8555
* config/i386/i386.md (sse_mov?fcc split): Handle op2 == op3 case
instead of aborting.

* gcc.dg/20030204-1.c: New test.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcconly_with_tag=gcc-3_3-branchr1=1.16114.2.1055r2=1.16114.2.1056
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/i386.md.diff?cvsroot=gcconly_with_tag=gcc-3_3-branchr1=1.404.2.28r2=1.404.2.29
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/ChangeLog.diff?cvsroot=gcconly_with_tag=gcc-3_3-branchr1=1.2261.2.397r2=1.2261.2.398
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/20030204-1.c.diff?cvsroot=gcconly_with_tag=gcc-3_3-branchr1=NONEr2=1.3.6.1



-- 


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


[Bug c++/19583] [4.0 Regression] Incorrect diagnostic: control may reach end of non-void function '...' being inlined

2005-01-22 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-01-23 
05:21 ---
Here is the simplified testcase:
static inline bool f() throw()
{
  return 0;
}
bool ff()
{
  return f();
}

-- 
   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed||1
   Last reconfirmed|-00-00 00:00:00 |2005-01-23 05:21:08
   date||
Summary|Incorrect diagnostic:   |[4.0 Regression] Incorrect
   |control may reach end of|diagnostic: control may
   |non-void function '...' |reach end of non-void
   |being inlined   |function '...' being inlined
   Target Milestone|--- |4.0.0


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


[Bug c++/19583] [4.0 Regression] Incorrect diagnostic: control may reach end of non-void function '...' being inlined

2005-01-22 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-01-23 
05:22 ---
I think the problem is that we don't look passed eh_spec_block trees.

-- 


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


[Bug target/18402] [3.3 regression] ICE in gen_split_1204 on i686-pc-linux-gnu target

2005-01-22 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-01-23 
05:28 ---
Fixed.

-- 
   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


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


  1   2   >