[Bug fortran/35740] a = conjg(transpose(a)) still gives wrong results, see bug 31994

2008-03-29 Thread pault at gcc dot gnu dot org


--- Comment #2 from pault at gcc dot gnu dot org  2008-03-29 06:38 ---
(In reply to comment #1)
 Confirm. There seems to be a temporary missing.
 
 Paul, you have fixed PR 31994, do you have an idea here?

Tobias,

I'll put my thinking cap on.  Our conjg(tranpose()) trick is efficoent, of
course, but it keeps on tripping us up.

Cheers

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |pault at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2008-03-28 19:58:54 |2008-03-29 06:38:40
   date||


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



[Bug fortran/35740] a = conjg(transpose(a)) still gives wrong results, see bug 31994

2008-03-29 Thread pault at gcc dot gnu dot org


--- Comment #3 from pault at gcc dot gnu dot org  2008-03-29 07:27 ---
(In reply to comment #2)
Hah!  It's still worse than I thought.  Not only is a temporary not made but
the scalarizer is being blown out of the water by the likes of:

program main
  implicit none
  complex, dimension(2,2) :: a,b,c,d
  a(1,1) = (1.,1.)
  a(2,1) = (2.,2.)
  a(1,2) = (3.,3.)
  a(2,2) = (4.,4.)
  b = a
  c = (0.0,0.0)
  b = conjg(transpose(b + c))
  print *, H(a) -wrong:   ,b
  b = a
  b = transpose(conjg(b + c))
  print *, H(a) -   OK:   ,b
  b = a
  d = conjg(transpose(b + c))
  b = d
  print *, H(a) - really wrong:   ,b
 END program main

Paul


-- 


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



[Bug fortran/35698] lbound and ubound wrong for allocated run-time zero size array

2008-03-29 Thread pault at gcc dot gnu dot org


--- Comment #5 from pault at gcc dot gnu dot org  2008-03-29 08:11 ---
Subject: Bug 35698

Author: pault
Date: Sat Mar 29 08:11:02 2008
New Revision: 133710

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=133710
Log:
2008-03-29  Paul Thomas  [EMAIL PROTECTED]

PR fortran/35698
* trans-array.c (gfc_array_init_size): Set 'size' zero if
negative in one dimension.

PR fortran/35702
* trans-expr.c (gfc_trans_string_copy): Only assign a char
directly if the lhs and rhs types are the same.

2008-03-29  Paul Thomas  [EMAIL PROTECTED]

PR fortran/35698
* gfortran.dg/allocate_zerosize_3.f: New test.

PR fortran/35702
* gfortran.dg/character_assign_1.f90: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/allocate_zerosize_3.f
trunk/gcc/testsuite/gfortran.dg/character_assign_1.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/trans-array.c
trunk/gcc/fortran/trans-expr.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug fortran/35702] [4.3/4.4 Regression]: structure character element with subscripts

2008-03-29 Thread pault at gcc dot gnu dot org


--- Comment #5 from pault at gcc dot gnu dot org  2008-03-29 08:11 ---
Subject: Bug 35702

Author: pault
Date: Sat Mar 29 08:11:02 2008
New Revision: 133710

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=133710
Log:
2008-03-29  Paul Thomas  [EMAIL PROTECTED]

PR fortran/35698
* trans-array.c (gfc_array_init_size): Set 'size' zero if
negative in one dimension.

PR fortran/35702
* trans-expr.c (gfc_trans_string_copy): Only assign a char
directly if the lhs and rhs types are the same.

2008-03-29  Paul Thomas  [EMAIL PROTECTED]

PR fortran/35698
* gfortran.dg/allocate_zerosize_3.f: New test.

PR fortran/35702
* gfortran.dg/character_assign_1.f90: New test.

Added:
trunk/gcc/testsuite/gfortran.dg/allocate_zerosize_3.f
trunk/gcc/testsuite/gfortran.dg/character_assign_1.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/trans-array.c
trunk/gcc/fortran/trans-expr.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug fortran/35698] lbound and ubound wrong for allocated run-time zero size array

2008-03-29 Thread pault at gcc dot gnu dot org


--- Comment #6 from pault at gcc dot gnu dot org  2008-03-29 08:18 ---
Subject: Bug 35698

Author: pault
Date: Sat Mar 29 08:17:36 2008
New Revision: 133711

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=133711
Log:
2008-03-29  Paul Thomas  [EMAIL PROTECTED]

PR fortran/35698
* trans-array.c (gfc_array_init_size): Set 'size' zero if
negative in one dimension.

PR fortran/35702
* trans-expr.c (gfc_trans_string_copy): Only assign a char
directly if the lhs and rhs types are the same.

2008-03-29  Paul Thomas  [EMAIL PROTECTED]

PR fortran/35698
* gfortran.dg/allocate_zerosize_3.f: New test.

PR fortran/35702
* gfortran.dg/character_assign_1.f90: New test.

Added:
branches/gcc-4_3-branch/gcc/testsuite/gfortran.dg/allocate_zerosize_3.f
branches/gcc-4_3-branch/gcc/testsuite/gfortran.dg/character_assign_1.f90
Modified:
branches/gcc-4_3-branch/gcc/fortran/ChangeLog
branches/gcc-4_3-branch/gcc/fortran/trans-array.c
branches/gcc-4_3-branch/gcc/fortran/trans-expr.c
branches/gcc-4_3-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug fortran/35702] [4.3/4.4 Regression]: structure character element with subscripts

2008-03-29 Thread pault at gcc dot gnu dot org


--- Comment #6 from pault at gcc dot gnu dot org  2008-03-29 08:18 ---
Subject: Bug 35702

Author: pault
Date: Sat Mar 29 08:17:36 2008
New Revision: 133711

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=133711
Log:
2008-03-29  Paul Thomas  [EMAIL PROTECTED]

PR fortran/35698
* trans-array.c (gfc_array_init_size): Set 'size' zero if
negative in one dimension.

PR fortran/35702
* trans-expr.c (gfc_trans_string_copy): Only assign a char
directly if the lhs and rhs types are the same.

2008-03-29  Paul Thomas  [EMAIL PROTECTED]

PR fortran/35698
* gfortran.dg/allocate_zerosize_3.f: New test.

PR fortran/35702
* gfortran.dg/character_assign_1.f90: New test.

Added:
branches/gcc-4_3-branch/gcc/testsuite/gfortran.dg/allocate_zerosize_3.f
branches/gcc-4_3-branch/gcc/testsuite/gfortran.dg/character_assign_1.f90
Modified:
branches/gcc-4_3-branch/gcc/fortran/ChangeLog
branches/gcc-4_3-branch/gcc/fortran/trans-array.c
branches/gcc-4_3-branch/gcc/fortran/trans-expr.c
branches/gcc-4_3-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug fortran/35698] lbound and ubound wrong for allocated run-time zero size array

2008-03-29 Thread pault at gcc dot gnu dot org


--- Comment #7 from pault at gcc dot gnu dot org  2008-03-29 08:19 ---
Fixed on trunk and 4.3

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug fortran/35702] [4.3/4.4 Regression]: structure character element with subscripts

2008-03-29 Thread pault at gcc dot gnu dot org


--- Comment #7 from pault at gcc dot gnu dot org  2008-03-29 08:20 ---
Fixed on trunk and 4.3

Paul


-- 

pault at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug fortran/34820] internal compiler error: in gfc_conv_descriptor_data_get, at fortran/trans-array.c:147

2008-03-29 Thread pault at gcc dot gnu dot org


--- Comment #8 from pault at gcc dot gnu dot org  2008-03-29 08:23 ---
(In reply to comment #7)
 I have a regtested patch for this but cannot post it until Saturday, when I am
 back from vacation.
 
 Paul

This has been delayed by the discovery of memory leaks in a number of the
gfortran.dg/alloc_comp*

Watch this space.

Paul


-- 


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



[Bug rtl-optimization/33790] postreload can handle the case where the memory locations use different modes

2008-03-29 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2008-03-29 08:55 ---
Hmm, I wonder how important this is now after the DSE patch for PR 33927 which
basically does the same thing and it also runs after reload.  I really don't
want to make cselib any slower than it is already and post reload cse is really
to me a hack for reload (or really RA) not doing its job so I don't want to
slow down post reload cse.

I am going to close this as won't fix as the reasons mentioned about.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||WONTFIX


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



Re: [Bug rtl-optimization/33790] postreload can handle the case where the memory locations use different modes

2008-03-29 Thread Andrew Pinski
I forgot to mention that the dse patch fixes the problem earlier on so  
we now do the optimization pre-reload. We still have an extra store  
but that is recorded as another bug I filed.


Sent from my iPhone

On Mar 29, 2008, at 1:55, pinskia at gcc dot gnu dot org [EMAIL PROTECTED] 
 wrote:





--- Comment #3 from pinskia at gcc dot gnu dot org  2008-03-29  
08:55 ---
Hmm, I wonder how important this is now after the DSE patch for PR  
33927 which
basically does the same thing and it also runs after reload.  I  
really don't
want to make cselib any slower than it is already and post reload  
cse is really
to me a hack for reload (or really RA) not doing its job so I don't  
want to

slow down post reload cse.

I am going to close this as won't fix as the reasons mentioned about.


--

pinskia at gcc dot gnu dot org changed:

  What|Removed |Added
--- 
--- 
--

Status|ASSIGNED|RESOLVED
Resolution||WONTFIX


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



[Bug rtl-optimization/33790] postreload can handle the case where the memory locations use different modes

2008-03-29 Thread pinskia at gmail dot com


--- Comment #4 from pinskia at gmail dot com  2008-03-29 09:02 ---
Subject: Re:  postreload can handle the case where the memory locations use
different modes

I forgot to mention that the dse patch fixes the problem earlier on so  
we now do the optimization pre-reload. We still have an extra store  
but that is recorded as another bug I filed.

Sent from my iPhone

On Mar 29, 2008, at 1:55, pinskia at gcc dot gnu dot org
[EMAIL PROTECTED] 
  wrote:



 --- Comment #3 from pinskia at gcc dot gnu dot org  2008-03-29  
 08:55 ---
 Hmm, I wonder how important this is now after the DSE patch for PR  
 33927 which
 basically does the same thing and it also runs after reload.  I  
 really don't
 want to make cselib any slower than it is already and post reload  
 cse is really
 to me a hack for reload (or really RA) not doing its job so I don't  
 want to
 slow down post reload cse.

 I am going to close this as won't fix as the reasons mentioned about.


 -- 

 pinskia at gcc dot gnu dot org changed:

   What|Removed |Added
 --- 
 --- 
 --
 Status|ASSIGNED|RESOLVED
 Resolution||WONTFIX


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



-- 


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



[Bug c/35753] apparent integer math bug

2008-03-29 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2008-03-29 10:27 ---
use unsigned arithmetic.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID


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



[Bug c++/35708] jump to label enters catch block

2008-03-29 Thread rguenth at gcc dot gnu dot org


--- Comment #5 from rguenth at gcc dot gnu dot org  2008-03-29 10:52 ---
Here's a shorter testcase:

struct object { int one_o; int allocstamp; };
int pgci_pointable (object obj);
void foo(void);
int main (int argc, char *argv[])
{
  if (pgci_pointable((object){7,100}))
{
  bad_rehash_size:
foo();
}
  goto bad_rehash_size;
}


If you look at the original IL as coming from the FE you see

  {
cleanup_point struct object D.1681 = {.one_o=7, .allocstamp=100};;
 Unknown tree: if_stmt
   cleanup_point pgci_pointable (D.1681) != 0
   bad_rehash_size:;
 cleanup_point  Unknown tree: expr_stmt foo ()  ;
 ;
  }
  goto bad_rehash_size;

which is gimplified to

  {
{
  struct objectD.1670 D.1681;

  D.1681.one_oD.1672 = 7;
  D.1681.allocstampD.1673 = 100;
  D.1699 = pgci_pointable (D.1681);
  retval.0D.1698 = D.1699 != 0;
  if (retval.0D.1698)
{
  bad_rehash_sizeD.1697:;
  foo ();
}
  else
{

}
}
goto bad_rehash_sizeD.1697;
  }

at which point the goto enters a scope with local objects constructed
before the jump target.  Thus the FE generates a new scope around the
if statement where the temporary object is bound to and somehow this
is a of type sk_catch (that there is no checking whether something can
throw inside the block may be a problem).

With gcc 4.1 where the testcase is accepted we gimplify to

int main(int, char**) (argc, argv)
{
  boolD.1451 retval.0D.1759;
  struct objectD.1732 D.1760;
  intD.2 D.1761;
  intD.2 D.1762;

  D.1760.one_oD.1734 = 7;
  D.1760.allocstampD.1735 = 100;
  D.1761 = pgci_pointable (D.1760);
  retval.0D.1759 = D.1761 != 0;
  if (retval.0D.1759)
{
  bad_rehash_sizeD.1758:;
  foo ();
}
  else
{

}
  goto bad_rehash_sizeD.1758;

not creating this extra scope.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

   Keywords||rejects-valid
  Known to fail||4.2.3 4.3.0
  Known to work||4.1.3


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



[Bug c++/35708] jump to label enters catch block

2008-03-29 Thread rguenth at gcc dot gnu dot org


--- Comment #6 from rguenth at gcc dot gnu dot org  2008-03-29 10:56 ---
Jason, can you have a look here?


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||jason at gcc dot gnu dot org


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



[Bug target/34879] __builtin_setjmp / __builtin_longjmp fails stack frame address with O2, O3 and Os

2008-03-29 Thread hutchinsonandy at aim dot com


--- Comment #1 from hutchinsonandy at aim dot com  2008-03-29 11:37 ---
Created an attachment (id=15395)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15395action=view)
Setjmp patch for AVR

The attached patch is a fix for AVR target. MIPS does something similar to get
around same issue.

The real problem is with gcc builin setjmp receiver being removed by
optimizers.
Optimizers think that frame_pointer load in receiver is unneeded and remove it! 

The patch loads the frame pointer in the nonlocal_goto, making the receiver
(where it jumps to) empty, so bad optimization cannot remove it. Additionally,
it avoids the unnecessary arithmetic around frame pointer offsets.

This patch was tested and the testcase passes.

Further changes may be required in the future if AVR 24bit jumps are to be
supported.


-- 


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



[Bug target/21080] Excecution test failure for avr for pr17377 test case.

2008-03-29 Thread hutchinsonandy at aim dot com


--- Comment #3 from hutchinsonandy at aim dot com  2008-03-29 12:55 ---
Created an attachment (id=15396)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15396action=view)
Patch to correct return_address

The attached patch fixes this problem and PR21078
The AVR target support for builtin_return_address only returned value of
frame_pointer+1 - so it would only be correct if stack and frame were empty.

The attached patch calculates the stack usage in the function prolog. This is
placed in symbol stack_usage using UNSPEC instruction pattern. Builtin Return
address uses RETURN_ADDR_RTX(count, tem) to add this to frame pointer to get to
correct address. This only supports level 0 (same function). Other levels (ie
upper functions) return 0  - which is correct response if not supported.
The address is that read from the stack - ie word address.

Testsuite torture/execute/20010122-1.c and PR17377.c both pass with this patch
applied.


-- 


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



[Bug fortran/35754] New: -std=f95: Reject 1P2E12.4 w/o a comma after the P

2008-03-29 Thread burnus at gcc dot gnu dot org
The comma after the P is optional in Fortran 2003 if followed by a repeat
specifier but required in Fortran 95. (According to MRC)


-- 
   Summary: -std=f95: Reject 1P2E12.4 w/o a comma after the P
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Keywords: diagnostic
  Severity: enhancement
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org


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



[Bug c++/35708] jump to label enters catch block

2008-03-29 Thread jason at gcc dot gnu dot org


-- 

jason at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |jason at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-03-29 15:13:00
   date||


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



[Bug c++/35708] jump to label enters catch block

2008-03-29 Thread jason at gcc dot gnu dot org


--- Comment #7 from jason at gcc dot gnu dot org  2008-03-29 15:19 ---
The bug is that the temporary object created by the C99 compound literal syntax
doesn't have proper C++ temporary lifetime; the compiler treats it as living
until the end of the block, so the goto seems to be skipping its
initialization.  The compiler talks about a catch block because it assumes that
the only artificial decl a goto could jump into is the one for the catch
parameter.


-- 


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



[Bug libmudflap/35755] New: [4.4 Regression]: libmudflap.cth/pass39-frag.c

2008-03-29 Thread hjl dot tools at gmail dot com
On Fedora 8/Intel64, gcc 4.4 revision 133638 gave

FAIL: libmudflap.cth/pass39-frag.c (-O2) (rerun 16) execution test
FAIL: libmudflap.cth/pass39-frag.c (-O2) (rerun 16) output pattern test

Revision 133612 is OK. It could be related to stack limit.


-- 
   Summary: [4.4 Regression]: libmudflap.cth/pass39-frag.c
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libmudflap
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hjl dot tools at gmail dot com


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



[Bug fortran/35756] New: incorrect WHERE for functions in ELSEWHERE and overlaps

2008-03-29 Thread dick dot hendrickson at gmail dot com
The following program computes the wrong values for the even
(elsewhere branch) of the left hand array.  It looks like the
function R_MY_MIN_I is evaluated before the store in the WHERE
branch happens.

The same thing happens if the R_M* functions are external 
rather than contained.

Dick Hendrickson

  program RA1028

! fails on Windows XP
! gcc version 4.4.0 20080312 (experimental) [trunk revision 133139]

  INTEGER  ILA(10)
  LOGICAL  LDA(10)

  ILA = (/ (I, i=1,10) /)
  LDA = (/ (i/2*2 .ne. I, i=1,10) /)

  WHERE(LDA)
ILA = R_MY_MAX_I(ILA)
  ELSEWHERE
ILA = R_MY_MIN_I(ILA)
  ENDWHERE

  print *, 10,2,10,2, '  etc'!expected
  print *, ila

  CONTAINS

  INTEGER FUNCTION R_MY_MAX_I(A)
  INTEGER  ::  A(:)
  R_MY_MAX_I = MAXVAL(A)
  END FUNCTION R_MY_MAX_I !internal procedure

  INTEGER FUNCTION R_MY_MIN_I(A)
  INTEGER  ::  A(:)
  R_MY_MIN_I = MINVAL(A)
  END FUNCTION R_MY_MIN_I !internal procedure

  END



C:\g_experiments\gfortrangfortran ra1028.f

C:\g_experiments\gfortrana
  10   2  10   2   etc
  10   1  10   1  10   1
  10   1  10   1


-- 
   Summary: incorrect WHERE for functions in ELSEWHERE and overlaps
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dick dot hendrickson at gmail dot com


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



[Bug fortran/35745] Divide incorrectly extracted from WHERE block?; run time abort

2008-03-29 Thread burnus at gcc dot gnu dot org


--- Comment #2 from burnus at gcc dot gnu dot org  2008-03-29 15:52 ---
See also PR 35756.


-- 


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



[Bug fortran/35756] incorrect WHERE for functions in ELSEWHERE and overlaps

2008-03-29 Thread burnus at gcc dot gnu dot org


--- Comment #1 from burnus at gcc dot gnu dot org  2008-03-29 15:52 ---
Confirm.  See also PR 35745.


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||wrong-code
   Last reconfirmed|-00-00 00:00:00 |2008-03-29 15:52:08
   date||


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



[Bug target/35757] New: [4.4 Regression] Incorrect contraint on sse4_1_blendpssemodesuffixf2c

2008-03-29 Thread hjl dot tools at gmail dot com
sse.md has

(define_insn sse4_1_blendpssemodesuffixf2c
  [(set (match_operand:SSEMODEF2P 0 register_operand =x)
(vec_merge:SSEMODEF2P
  (match_operand:SSEMODEF2P 2 nonimmediate_operand xm)
  (match_operand:SSEMODEF2P 1 register_operand 0)
  (match_operand:SI 3 const_0_to_3_operand n)))]
  TARGET_SSE4_1
  blendpssemodesuffixf2c\t{%3, %2, %0|%0, %2, %3}
  [(set_attr type ssemov)
   (set_attr prefix_extra 1)
   (set_attr mode MODE)])

The problem is blendpd takes 0 to 15 as immediate operand. The problem
is hidden in testsuite due to MAEK defined in sse4_1-check.h.


-- 
   Summary: [4.4 Regression] Incorrect contraint on
sse4_1_blendpssemodesuffixf2c
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: hjl dot tools at gmail dot com
GCC target triplet: x86_64-unknown-linux-gnu


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



[Bug target/35757] [4.4 Regression] Incorrect contraint on sse4_1_blendpssemodesuffixf2c

2008-03-29 Thread hjl dot tools at gmail dot com


--- Comment #1 from hjl dot tools at gmail dot com  2008-03-29 16:09 ---
It is introduced by revision 132518.


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

  Known to fail||4.4.0
  Known to work||4.3.0


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



[Bug libmudflap/35755] [4.4 Regression]: libmudflap.cth/pass39-frag.c

2008-03-29 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2008-03-29 16:57 ---
... (rerun 16) ...

this means the 16th invocation failed.  This is just regular mudflap noise.


-- 


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



[Bug c++/35641] [4.1 regression] ICE on overload of friend function definition inside a class

2008-03-29 Thread reichelt at gcc dot gnu dot org


--- Comment #2 from reichelt at gcc dot gnu dot org  2008-03-29 17:11 
---
Here's a reduced testcase:

=
templateint struct A
{
  friend void foo(const A)
  {
__FUNCTION__;
  }
};

inline void foo(const A0)
{
  __FUNCTION__;
}

void bar()
{
  foo(A0());
}
=

The bug is fixed since GCC 4.2.0, as the code is correctly rejected:

bug.cc: In instantiation of 'A0':
bug.cc:17:   instantiated from here
bug.cc:4: error: redefinition of 'void foo(const A0)'
bug.cc:10: error: 'void foo(const A0)' previously defined here

On the 4.1 branch I still get an ICE, but after the above error message:

bug.cc: In instantiation of 'A0':
bug.cc:17:   instantiated from here
bug.cc:4: error: redefinition of 'void foo(const A0)'
bug.cc:10: error: 'void foo(const A0)' previously defined here
bug.cc:4: internal compiler error: tree check: expected var_decl or
function_decl or type_decl or template_decl, have error_mark in
tsubst_friend_function, at cp/pt.c:5352
Please submit a full bug report, [etc.]

Since we already rejected the code with GCC 3.1 - 3.3.6 this is a regression.
I don't think anybody will fix this minor problem on the 4.1 branch, though.

Btw, the code was wrongly accepted by GCC 4.0.0 - 4.1.1.


-- 

reichelt at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||reichelt at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||error-recovery, ice-on-
   ||invalid-code
  Known to fail||3.4.0 3.4.6 4.0.0 4.1.2
  Known to work||3.1 3.3.6
   Last reconfirmed|-00-00 00:00:00 |2008-03-29 17:11:11
   date||
Summary|ICE on overload of friend   |[4.1 regression] ICE on
   |function definition inside a|overload of friend function
   |class   |definition inside a class
   Target Milestone|--- |4.1.3


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



[Bug c++/24602] g++: Internal error: Illegal instruction (program cc1plus)

2008-03-29 Thread reichelt at gcc dot gnu dot org


--- Comment #11 from reichelt at gcc dot gnu dot org  2008-03-29 17:32 
---
*** Bug 35596 has been marked as a duplicate of this bug. ***


-- 

reichelt at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||kevin at kelphead dot org


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



[Bug c++/35596] Runs out of virtual memory, with for_each

2008-03-29 Thread reichelt at gcc dot gnu dot org


--- Comment #7 from reichelt at gcc dot gnu dot org  2008-03-29 17:32 
---
It's a duplicate of PR24602.


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


-- 

reichelt at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||reichelt at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE


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



[Bug c++/35578] [4.2/4.3/4.4 regression] Error about misplaced 'friend' word is issued on a wrong line

2008-03-29 Thread reichelt at gcc dot gnu dot org


--- Comment #1 from reichelt at gcc dot gnu dot org  2008-03-29 17:43 
---
Confiremd. This happens since GCC 4.2.0.


-- 

reichelt at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||reichelt at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||diagnostic
  Known to fail||4.2.0
  Known to work||4.1.2
   Last reconfirmed|-00-00 00:00:00 |2008-03-29 17:43:57
   date||
Summary|Error about misplaced   |[4.2/4.3/4.4 regression]
   |'friend' word is issued on a|Error about misplaced
   |wrong line  |'friend' word is issued on a
   ||wrong line
   Target Milestone|--- |4.2.4


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



[Bug c++/35578] [4.2/4.3/4.4 regression] Error about misplaced 'friend' word is issued on a wrong line

2008-03-29 Thread reichelt at gcc dot gnu dot org


--- Comment #2 from reichelt at gcc dot gnu dot org  2008-03-29 17:57 
---
Testing a patch.


-- 

reichelt at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |reichelt at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2008-03-29 17:43:57 |2008-03-29 17:57:16
   date||


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



[Bug c++/35758] New: [4.3/4.4 Regression] vector_size attribute lost in function arguments for templates

2008-03-29 Thread pinskia at gcc dot gnu dot org
The following testcase used to work in 4.1.1 but no longer does:

#define vector __attribute__((vector_size(16) ))
templateint INDEX
vector signed int MyFunction(vector float value)  {}

templateint
void MyFunction(float ){}

int main()
{
vector float myVector;
float myFloat;
MyFunction1(myVector);
MyFunction1(myFloat);
}

 CUT 
We get:
vector14.C: In function ‘int main()’:
vector14.C:12: error: no matching function for call to ‘MyFunction(float
__vector__)’
vector14.C:13: error: call of overloaded ‘MyFunction(float)’ is ambiguous
vector14.C:3: note: candidates are: int MyFunction(float) [with int INDEX = 1]
vector14.C:6: note: void MyFunction(float) [with int
anonymous = 1]


-- 
   Summary: [4.3/4.4 Regression] vector_size attribute lost in
function arguments for templates
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Keywords: rejects-valid
  Severity: blocker
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pinskia at gcc dot gnu dot org


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



[Bug c++/35758] [4.3/4.4 Regression] vector_size attribute lost in function arguments for templates

2008-03-29 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2008-03-29 18:45 ---
This is caused by the delaying of vector_size attribute inside templates.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||jason at gcc dot gnu dot org
   Target Milestone|--- |4.3.1


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



[Bug c++/35758] [4.3/4.4 Regression] vector_size attribute lost in function arguments for templates

2008-03-29 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2008-03-29 18:46 ---
This blocks me from even thinking about updating the PS3 toolchain to 4.3.0.


-- 


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



[Bug c++/35758] [4.3/4.4 Regression] vector_size attribute lost in function arguments for templates

2008-03-29 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2008-03-29 18:47 ---
This is related to PR 27433 and I bet fixing this one will also fix that one.


-- 


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



[Bug c++/35758] [4.3/4.4 Regression] vector_size attribute lost in function arguments for templates

2008-03-29 Thread pinskia at gcc dot gnu dot org


--- Comment #4 from pinskia at gcc dot gnu dot org  2008-03-29 18:49 ---
It worked with 4.3.0 20070623 and 4.2.0 20061019.


-- 


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



[Bug c++/35758] [4.3/4.4 Regression] vector_size attribute lost in function arguments for templates

2008-03-29 Thread rguenth at gcc dot gnu dot org


--- Comment #5 from rguenth at gcc dot gnu dot org  2008-03-29 18:55 ---
Confirmed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
  Known to fail||4.3.0
  Known to work||4.2.3
   Last reconfirmed|-00-00 00:00:00 |2008-03-29 18:55:45
   date||


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



[Bug tree-optimization/30186] accessing an element via a pointer on a vector does not cause vec_extract to be used (non-zero index)

2008-03-29 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2008-03-29 19:14 ---
Created an attachment (id=15397)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15397action=view)
Patch which should fix it


-- 


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



[Bug c/35753] apparent integer math bug

2008-03-29 Thread regehr at cs dot utah dot edu


--- Comment #3 from regehr at cs dot utah dot edu  2008-03-29 19:16 ---
Subject: Re:  apparent integer math bug

 This multiplication overflows so the resulting behavior is undefined.

Right-- but always in the past it has been (or seemed) fine to assume 
two's complement overflow behavior for signed arithmetic under gcc on 
two's complement platforms.

I have seen the strict overflow options and those seem quite 
reasonable.  However, changing overflow behavior for multiply seems risky!

Is it still reasonable at least to rely on two's complement behavior for 
signed addition and subtraction?

Thanks,

John Regehr


-- 


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



Re: [Bug c/35753] apparent integer math bug

2008-03-29 Thread Andrew Pinski



Sent from my iPhone

On Mar 29, 2008, at 12:16, regehr at cs dot utah dot edu [EMAIL PROTECTED] 
 wrote:





--- Comment #3 from regehr at cs dot utah dot edu  2008-03-29  
19:16 ---

Subject: Re:  apparent integer math bug


This multiplication overflows so the resulting behavior is undefined.


Right-- but always in the past it has been (or seemed) fine to assume
two's complement overflow behavior for signed arithmetic under gcc on
two's complement platforms.

I have seen the strict overflow options and those seem quite
reasonable.  However, changing overflow behavior for multiply seems  
risky!


Is it still reasonable at least to rely on two's complement behavior  
for

signed addition and subtraction?

It never was reasonable to depend on this behaviour, just GCC got  
better at optimizing these cases. We have had the option -fwrapv since  
at least 3.3 so that people can use that option if the want full  
wrapping behavior with signed types. Note the C standard is over 18  
years old now so I had hoped people would still not making the mistake  
of thinking signed interger being wrapping types.





Thanks,

John Regehr


--


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



[Bug c/35753] apparent integer math bug

2008-03-29 Thread pinskia at gmail dot com


--- Comment #4 from pinskia at gmail dot com  2008-03-29 19:27 ---
Subject: Re:  apparent integer math bug



Sent from my iPhone

On Mar 29, 2008, at 12:16, regehr at cs dot utah dot edu
[EMAIL PROTECTED] 
  wrote:



 --- Comment #3 from regehr at cs dot utah dot edu  2008-03-29  
 19:16 ---
 Subject: Re:  apparent integer math bug

 This multiplication overflows so the resulting behavior is undefined.

 Right-- but always in the past it has been (or seemed) fine to assume
 two's complement overflow behavior for signed arithmetic under gcc on
 two's complement platforms.

 I have seen the strict overflow options and those seem quite
 reasonable.  However, changing overflow behavior for multiply seems  
 risky!

 Is it still reasonable at least to rely on two's complement behavior  
 for
 signed addition and subtraction?

It never was reasonable to depend on this behaviour, just GCC got  
better at optimizing these cases. We have had the option -fwrapv since  
at least 3.3 so that people can use that option if the want full  
wrapping behavior with signed types. Note the C standard is over 18  
years old now so I had hoped people would still not making the mistake  
of thinking signed interger being wrapping types.



 Thanks,

 John Regehr


 -- 


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



-- 


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



[Bug c/35753] apparent integer math bug

2008-03-29 Thread regehr at cs dot utah dot edu


--- Comment #5 from regehr at cs dot utah dot edu  2008-03-29 19:32 ---
Subject: Re:  apparent integer math bug

 wrapping behavior with signed types. Note the C standard is over 18  
 years old now so I had hoped people would still not making the mistake  
 of thinking signed interger being wrapping types.

18 years old and still useless for writing real programs!

John Regehr


-- 


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



[Bug c/35430] [4.1/4.2/4.3/4.4 regression] ICE with complex arithmetic

2008-03-29 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2008-03-29 19:44 ---
This is the patch which I am testing:
Index: cp/typeck.c
===
--- cp/typeck.c (revision 133711)
+++ cp/typeck.c (working copy)
@@ -3917,6 +3917,10 @@ cp_build_binary_op (enum tree_code code,
  int unsignedp0, unsignedp1;
  tree primop0 = get_narrower (op0, unsignedp0);
  tree primop1 = get_narrower (op1, unsignedp1);
+ tree undertype = result_type;
+
+ if (TREE_CODE (undertype) == COMPLEX_TYPE)
+   undertype = TREE_TYPE (undertype);

  /* Check for comparison of different enum types.  */
  if (TREE_CODE (TREE_TYPE (orig_op0)) == ENUMERAL_TYPE
@@ -3937,7 +3941,7 @@ cp_build_binary_op (enum tree_code code,
  /* Do not warn if the comparison is being done in a signed type,
 since the signed type will only be chosen if it can represent
 all the values of the unsigned type.  */
- if (!TYPE_UNSIGNED (result_type))
+ if (!TYPE_UNSIGNED (undertype))
/* OK */;
  /* Do not warn if both operands are unsigned.  */
  else if (op0_signed == op1_signed)
@@ -3955,10 +3959,10 @@ cp_build_binary_op (enum tree_code code,
  else if ((resultcode == EQ_EXPR || resultcode == NE_EXPR)
((op0_signed  TREE_CODE (orig_op1) == INTEGER_CST
 int_fits_type_p (orig_op1, c_common_signed_type
-   (result_type)))
+   (undertype)))
|| (op1_signed  TREE_CODE (orig_op0) == INTEGER_CST
 int_fits_type_p (orig_op0, c_common_signed_type
-   (result_type)
+   (undertype)
/* OK */;
  else if (complain  tf_warning)
warning (OPT_Wsign_compare,
Index: c-typeck.c
===
--- c-typeck.c  (revision 133711)
+++ c-typeck.c  (working copy)
@@ -8483,6 +8483,9 @@ build_binary_op (enum tree_code code, tr
{
  tree sop, uop;
  bool ovf;
+ tree undertype = result_type;
+ if (TREE_CODE (undertype) == COMPLEX_TYPE)
+   undertype = TREE_TYPE (undertype);

  if (op0_signed)
sop = xop0, uop = xop1;
@@ -8502,7 +8505,7 @@ build_binary_op (enum tree_code code, tr
  else if (TREE_CODE (uop) == INTEGER_CST
(resultcode == EQ_EXPR || resultcode == NE_EXPR)
int_fits_type_p
-  (uop, c_common_signed_type (result_type)))
+  (uop, c_common_signed_type (undertype)))
/* OK */;
  /* Do not warn if the unsigned quantity is an enumeration
 constant and its maximum value would fit in the result
@@ -8511,7 +8514,7 @@ build_binary_op (enum tree_code code, tr
TREE_CODE (TREE_TYPE (uop)) == ENUMERAL_TYPE
int_fits_type_p
   (TYPE_MAX_VALUE (TREE_TYPE (uop)),
-   c_common_signed_type (result_type)))
+   c_common_signed_type (undertype)))
/* OK */;
  else
warning (OPT_Wsign_compare, comparison between signed and
unsigned);


-- 


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



[Bug target/35713] [4.4 Regression] invalid type for va_arg with _Decimal128

2008-03-29 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2008-03-29 20:17 ---
This is caused by the extra type checking which Richard Guenther added.
It is not just _Decimal128, but almost all types which are broken.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||rguenther at suse dot de
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Keywords||ice-checking
   Last reconfirmed|-00-00 00:00:00 |2008-03-29 20:17:18
   date||
Summary|invalid type for va_arg with|[4.4 Regression] invalid
   |_Decimal128 |type for va_arg with
   ||_Decimal128
   Target Milestone|--- |4.4.0


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



[Bug c/35748] ICE with cast to invalid union

2008-03-29 Thread reichelt at gcc dot gnu dot org


--- Comment #1 from reichelt at gcc dot gnu dot org  2008-03-29 20:18 
---
Testing a patch.


-- 

reichelt at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |reichelt at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-03-29 20:18:08
   date||


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



[Bug tree-optimization/35431] [4.1/4.2/4.3/4.4 regression] ICE with complex data in PRE

2008-03-29 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2008-03-29 21:01 ---
We have invalid gimple before PRE:
  k_7 = COMPLEX_EXPR (int) D.1197_2, 0;
Which we don't catch.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||pinskia at gcc dot gnu dot
   ||org
Summary|[4.1/4.2/4.3/4.4 regression]|[4.1/4.2/4.3/4.4 regression]
   |ICE with complex data   |ICE with complex data in PRE


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



[Bug fortran/35759] New: WHERE with overlap with ELSEWHERE error

2008-03-29 Thread dick dot hendrickson at gmail dot com
The following program computes the wrong result for a WHERE where
different sections of the same array are in both the WHERE and
ELSEWHERE section.  It's as if the ELSEWHERE block were
ignored.

Dick Hendrickson

  program RG0023
! fails on Windows XP
! gcc version 4.4.0 20080312 (experimental) [trunk revision 133139]


  integer UDA1L(6)
  integer ::  UDA1R(6), expected(6) = (/2,0,5,0,3,0/)
  LOGICAL LDA(5)

  UDA1L(1:6) = 0
  uda1r = (/1,2,3,4,5,6/)
  lda = (/ (i/2*2 .ne. I, i=1,5) /)

  WHERE (LDA)!  expected
UDA1L(1:5) = UDA1R(2:6)  !  uda1l = 2,0,4,0,6,0
  ELSEWHERE
UDA1L(2:6) = UDA1R(6:2:-1) !uda1l = 2,0,5,0,3,0
  ENDWHERE

  print *, 'expected = ',expected
  print *, 'computed = ', uda1l

  END

gfortran:gfortran rg0023.f

gfortran:a
 expected =2   0   5   0   3  
0
 computed =2   0   4   0   6  
0


-- 
   Summary: WHERE with overlap with ELSEWHERE error
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: dick dot hendrickson at gmail dot com


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



[Bug tree-optimization/35431] [4.1/4.2/4.3/4.4 regression] ICE with complex integer, invalid gimple

2008-03-29 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2008-03-29 21:04 ---
This is caused by PHI-opt, fixing.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |pinskia at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
Summary|[4.1/4.2/4.3/4.4 regression]|[4.1/4.2/4.3/4.4 regression]
   |ICE with complex data in PRE|ICE with complex integer,
   ||invalid gimple


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



[Bug target/35757] [4.4 Regression] Incorrect contraint on sse4_1_blendpssemodesuffixf2c

2008-03-29 Thread hjl dot tools at gmail dot com


--- Comment #2 from hjl dot tools at gmail dot com  2008-03-29 21:12 ---
A patch is posted at

http://gcc.gnu.org/ml/gcc-patches/2008-03/msg01848.html


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

URL||http://gcc.gnu.org/ml/gcc-
   ||patches/2008-
   ||03/msg01848.html
   Keywords||patch


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



[Bug fortran/34128] slow gfortran 4.x (library?) compared to g77 3.4

2008-03-29 Thread jvdelisle at gcc dot gnu dot org


--- Comment #9 from jvdelisle at gcc dot gnu dot org  2008-03-29 21:19 
---
I have submitted glibc PR

http://sources.redhat.com/bugzilla/show_bug.cgi?id=5997

With a C test case that clearly shows the problem.


-- 


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



[Bug target/35760] New: [4.4 Regression] ICE with complex types and -static on PPC darwin

2008-03-29 Thread pinskia at gcc dot gnu dot org
While going to look into fixing PR 35314, I found this bug for PowerPC darwin.
A simple testcase:
int foo()
{
  __complex__ float i = 0;
}

Will ICE in memory_address when we don't compile with PIC turned on.
t.c: In function 'foo':
t.c:3: internal compiler error: in memory_address, at explow.c:492
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.


-- 
   Summary: [4.4 Regression] ICE with complex types and -static on
PPC darwin
   Product: gcc
   Version: 4.4.0
Status: UNCONFIRMED
  Keywords: ice-on-valid-code
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: pinskia at gcc dot gnu dot org
GCC target triplet: powerpc-darwin


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



[Bug target/35760] [4.4 Regression] ICE with complex types and -static on PPC darwin

2008-03-29 Thread pinskia at gcc dot gnu dot org


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.4.0


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



[Bug libstdc++/35725] [4.3/4.4 Regression] ambiguous std::fill with character array

2008-03-29 Thread paolo at gcc dot gnu dot org


--- Comment #4 from paolo at gcc dot gnu dot org  2008-03-29 22:38 ---
Subject: Bug 35725

Author: paolo
Date: Sat Mar 29 22:38:19 2008
New Revision: 133721

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=133721
Log:
2008-03-29  Paolo Carlini  [EMAIL PROTECTED]

PR libstdc++/35725
* include/bits/stl_algobase.h (__fill_a(_ForwardIterator,
_ForwardIterator, _Tp), __fill_a(_Tp*, _Tp*, _Tp),
__fill_n_a(_OutputIterator, _Size, _Tp), __fill_n_a(_Tp*, _Size,
_Tp)): Fix signatures.
* testsuite/25_algorithms/fill/35725.cc: New.
* testsuite/25_algorithms/fill_n/35725.cc: Likewise.

Added:
trunk/libstdc++-v3/testsuite/25_algorithms/fill/35725.cc
trunk/libstdc++-v3/testsuite/25_algorithms/fill_n/35725.cc
Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/bits/stl_algobase.h


-- 


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



[Bug libstdc++/35725] [4.3/4.4 Regression] ambiguous std::fill with character array

2008-03-29 Thread paolo at gcc dot gnu dot org


--- Comment #5 from paolo at gcc dot gnu dot org  2008-03-29 22:39 ---
Subject: Bug 35725

Author: paolo
Date: Sat Mar 29 22:38:36 2008
New Revision: 133722

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=133722
Log:
2008-03-29  Paolo Carlini  [EMAIL PROTECTED]

PR libstdc++/35725
* include/bits/stl_algobase.h (__fill_a(_ForwardIterator,
_ForwardIterator, _Tp), __fill_a(_Tp*, _Tp*, _Tp),
__fill_n_a(_OutputIterator, _Size, _Tp), __fill_n_a(_Tp*, _Size,
_Tp)): Fix signatures.
* testsuite/25_algorithms/fill/35725.cc: New.
* testsuite/25_algorithms/fill_n/35725.cc: Likewise.

Added:
branches/gcc-4_3-branch/libstdc++-v3/testsuite/25_algorithms/fill/35725.cc
   
branches/gcc-4_3-branch/libstdc++-v3/testsuite/25_algorithms/fill_n/35725.cc
Modified:
branches/gcc-4_3-branch/libstdc++-v3/ChangeLog
branches/gcc-4_3-branch/libstdc++-v3/include/bits/stl_algobase.h


-- 


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



[Bug libstdc++/35725] [4.3/4.4 Regression] ambiguous std::fill with character array

2008-03-29 Thread pcarlini at suse dot de


--- Comment #6 from pcarlini at suse dot de  2008-03-29 22:43 ---
Fixed.


-- 

pcarlini at suse dot de changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c/35761] New: GCC 4.3.0 tar 1.19 and glibc 2.7 bug with __cplusplus and -O2

2008-03-29 Thread devilsclaw at devilsclaws dot net
I'm currently compiling my linux based of the Linux From Scratch SVN.

I decided to try my hand at compiling with the gcc 4.3.0.

The current bug im noticing has to do with the -O2 flag and __cplusplus.

I have done a search through the bug database all most errors that I have seen
have had __cplusplus in the part of the program that failed.

One of the programs that I tried to compile was tar 1.18 and 1.19. It would not
compile because of the -O2 flag, when I removed it from the config script and
reconfigured it compiled fine.

The same thing happened with the glibc and the problem was in the conftest
which had a __cplusplus and a exception throw.

With LFS the first part of the compiling process is to only comprile the C
compiler part of gnu compiler yet im not sure why __cplusplus would be
returning true if there is not a C++ compiler.


-- 
   Summary: GCC 4.3.0 tar 1.19 and glibc 2.7 bug with __cplusplus
and -O2
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: devilsclaw at devilsclaws dot net


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



[Bug c/35761] GCC 4.3.0 tar 1.19 and glibc 2.7 bug with __cplusplus and -O2

2008-03-29 Thread devilsclaw at devilsclaws dot net


--- Comment #1 from devilsclaw at devilsclaws dot net  2008-03-29 23:01 
---
I also tried -O0 , -O1 , -O3 and -O4. The only one that worked as you would
guess was -O0.


-- 


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



[Bug c/35761] GCC 4.3.0 tar 1.19 and glibc 2.7 bug with __cplusplus and -O2

2008-03-29 Thread rguenth at gcc dot gnu dot org


--- Comment #2 from rguenth at gcc dot gnu dot org  2008-03-29 23:17 ---
It certainly is not setting __cplusplus if you are not using C++.  Other than
that this is not a useful bugreport.


-- 


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



[Bug fortran/35759] WHERE with overlap with ELSEWHERE error

2008-03-29 Thread burnus at gcc dot gnu dot org


--- Comment #1 from burnus at gcc dot gnu dot org  2008-03-29 23:23 ---
Confirm.

The algorithm below does essentially:

while (1,0,1,0,1)
  uda1l( 1 _ 3 _ 5) = 2 3 4 5 6
else
  udal1 ( _ 3 _ 5 _) = 6 5 4 3 2
done

That is
1. uda1l(1) = 2
2. uda1l(3) = 5 ---\__
3. uda1l(3) = 4 ---/
4. uda1l(5) = 3 ---\__
5. uda1l(6) = 4 ---/

The order is wrong. The procedure has to be:

1. Establish control mask (i.e. 1,0,1,0,1) and run WHERE
  while (1,0,1,0,1)
uda1l( 1 _ 3 _ 5) = 2 3 4 5 6
  end

2. Establish pending controlmask for ELSEWHERE (i.e. 0,1,0,1,0)
  elsewhile (0,1,0,1)
uda1l( 1 _ 3 _ 5) = 2 3 4 5 6
  end


  {
static logical(kind=4) A.2[5] = {1, 0, 1, 0, 1};
static integer(kind=4) A.1[6] = {1, 2, 3, 4, 5, 6};

(void) __builtin_memset ((void *) uda1l, 0, 24);
(void) __builtin_memcpy ((void *) uda1r, (void *) A.1, 24);
(void) __builtin_memcpy ((void *) lda, (void *) A.2, 20);
{
  integer(kind=8) S.3;

  S.3 = 1;
  while (1)
{
  if (S.3  5) goto L.1;
  if (lda[S.3 + -1])
{
  uda1l[S.3 + -1] = uda1r[S.3];
}
  else
{
  uda1l[S.3] = uda1r[6 - S.3];
}
  S.3 = S.3 + 1;
}
  L.1:;
}


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||wrong-code
   Last reconfirmed|-00-00 00:00:00 |2008-03-29 23:23:44
   date||


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



[Bug c++/35319] [4.3/4.4 regression] ICE throwing fixed-point types

2008-03-29 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2008-03-30 00:20 ---
This is most likely because there is no way to mangle fixed point types at all.
 So really I don't think this should be a P2 or marked as a regression until
the ABI has been finialized


-- 


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



[Bug tree-optimization/35737] [4.2/4.3/4.4 regression] ICE with __builtin_setjmp and complex variable

2008-03-29 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2008-03-30 00:24 ---
Confirmed.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||pinskia at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-03-30 00:24:46
   date||


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



[Bug tree-optimization/35737] [4.2/4.3/4.4 regression] ICE with __builtin_setjmp and complex variable

2008-03-29 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2008-03-30 00:30 ---
Complex lowering is creating phi's with constant arguments on abnormal edges.


-- 


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



[Bug c/35746] [4.3/4.4 regression] ICE with undefined variables

2008-03-29 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2008-03-30 00:32 ---
Confirmed.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||pinskia at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-03-30 00:32:20
   date||


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



[Bug c++/11859] Substitution failure incorrectly reported as error in SFINAE situation.

2008-03-29 Thread reichelt at gcc dot gnu dot org


--- Comment #3 from reichelt at gcc dot gnu dot org  2008-03-30 00:42 
---
Fixed on mainline by Douglas' patch:

2008-03-25  Douglas Gregor  [EMAIL PROTECTED]

   * typeck.c (composite_pointer_type_r): Add SFINAE support.
   ...


-- 

reichelt at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||doug dot gregor at gmail dot
   ||com
 Status|NEW |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.4.0


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



[Bug c/35746] [4.3/4.4 regression] ICE with undefined variables

2008-03-29 Thread pinskia at gcc dot gnu dot org


--- Comment #2 from pinskia at gcc dot gnu dot org  2008-03-30 00:50 ---
So this was introduced by the gimplify_modify_expr changes.  The C++ front-end
actually produces error_mark_node for the call, maybe the C front-end should do
the same.


-- 


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



[Bug c++/35747] [4.3/4.4 regression] ICE with undefined variable in statement expression

2008-03-29 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2008-03-30 00:52 ---
Confirmed, only happens with the C++ front-end.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-03-30 00:52:26
   date||


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



[Bug c/35736] [4.4 regression] ICE with continue and -Wall

2008-03-29 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2008-03-30 00:57 ---
This is a predict_expr tree.  Shouldn't TREE_SIDE_EFFECTS be set on that
expression?


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||hubicka at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-03-30 00:57:03
   date||


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



[Bug bootstrap/35216] Out of memory building java

2008-03-29 Thread bugzilla-gcc at thewrittenword dot com


--- Comment #1 from bugzilla-gcc at thewrittenword dot com  2008-03-30 
02:24 ---
Created an attachment (id=15398)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15398action=view)
Patch for a generated file

This patch allowed the build to complete for us, unfortunately Makefile.in is a
generated file, as is sources.am, which is generated by makemake.tcl. We have
not come up with a usable patch for makemake.tcl yet.


-- 


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



[Bug c/35762] New: wrong code emitted for loop with volatile induction variable

2008-03-29 Thread regehr at cs dot utah dot edu
This is for gcc version 4.3.0 (GCC) 

This is similar to bug 35729.  I'm filing a new report since the behavior seems
to be a different one.

This code:

volatile short g_10 = 0;
volatile int g_13 = 0;
int func_1 (void)
{
  for (g_10 = 0; g_10  10; g_10++)
return g_13;
  return 0;
}

When compiled with:

  gcc -O1 -S foo.c

gives:

func_1:
pushl   %ebp
movl%esp, %ebp
movw$0, g_10
movzwl  g_10, %eax
cmpw$10, %ax
setle   %al
movzbl  %al, %eax
subl$1, %eax
andlg_13, %eax
popl%ebp
ret

The output is not correct, it unconditionally returns the value from g_13.


-- 
   Summary: wrong code emitted for loop with volatile induction
variable
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: regehr at cs dot utah dot edu
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


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



[Bug libstdc++/35763] New: std::cout loses whole blocks of output if interrupted by signal without SA_RESTART

2008-03-29 Thread zlynx at acm dot org
I noticed this when running a program that uses a periodic timer signal.  The
sigaction did not set SA_RESTART.  During program runs, huge chunks of console
output would disappear.

I sort of tracked this down to the code in libstdc++ that uses fwrite to do the
output of cout and cerr.  That is a bit weird, I expected it to be using the
basic_file operations on fd 0 instead.

In summary, it appears to call fwrite and never check the error return, then it
increments the streambuf pointers and loses that whole output block.


-- 
   Summary: std::cout loses whole blocks of output if interrupted by
signal without SA_RESTART
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: zlynx at acm dot org
  GCC host triplet: x86_64-pc-linux-gnu


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



[Bug libstdc++/35763] std::cout loses whole blocks of output if interrupted by signal without SA_RESTART

2008-03-29 Thread zlynx at acm dot org


--- Comment #1 from zlynx at acm dot org  2008-03-30 03:43 ---
Forgot to mention, I filed a bug for fwrite too:
http://sources.redhat.com/bugzilla/show_bug.cgi?id=5998

Until they fix that (if they do) it will be useless to check fwrite's return
value since you can't know how many bytes were written.

I think the fix would be to use write directly or to use the file operations
(which do seem to use write directly and check for EINTR returns) on fd 0.


-- 


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



[Bug libstdc++/35763] std::cout loses whole blocks of output if interrupted by signal without SA_RESTART

2008-03-29 Thread zlynx at acm dot org


--- Comment #2 from zlynx at acm dot org  2008-03-30 03:46 ---
Created an attachment (id=15399)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=15399action=view)
test program, build: g++ timer-test.cc -lrt


-- 


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



[Bug c/35764] New: improper load from volatile

2008-03-29 Thread regehr at cs dot utah dot edu
This is for gcc version 4.3.0 (GCC) 

This is very likely related to 35729 and 35762.

This code:

extern int bar (void);
volatile int g_156;
int foo (void)
{
  if (bar ())
return 0;
  else
return g_156;
}

Compiled with:

  gcc -O1 -S foo.c

Gives:
foo:
pushl   %ebp
movl%esp, %ebp
subl$8, %esp
callbar
cmpl$1, %eax
sbbl%eax, %eax
andlg_156, %eax
leave
ret

The unconditional load from volatile g_156 is incorrect.


-- 
   Summary: improper load from volatile
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: regehr at cs dot utah dot edu
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


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