[Bug middle-end/43390] [4.5 Regression] ICE: integral result type precision does not match field size of BIT_FIELD_REF

2010-03-25 Thread hjl at gcc dot gnu dot org


--- Comment #9 from hjl at gcc dot gnu dot org  2010-03-25 16:40 ---
Subject: Bug 43390

Author: hjl
Date: Thu Mar 25 16:39:51 2010
New Revision: 157726

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=157726
Log:
Backport regression testcases from mainline.

2010-03-25  H.J. Lu  hongjiu...@intel.com

Backport from mainline:
2010-03-22  Jason Merrill  ja...@redhat.com

PR c++/4
* g++.dg/ext/is_pod_98.C: New.

2010-03-22  Michael Matz  m...@suse.de

PR middle-end/43475
* gfortran.dg/pr43475.f90: New testcase.

2010-03-22  Richard Guenther  rguent...@suse.de

PR tree-optimization/43390
* gfortran.fortran-torture/execute/pr43390.f90: New testcase.

2010-03-20  Dodji Seketeli  do...@redhat.com

PR c++/43375
* g++.dg/abi/mangle42.C: New test.

2010-03-19  Andrew Pinski  andrew_pin...@caviumnetworks.com

PR C/43211
* gcc.dg/pr43211.c: New test.

2010-03-18  Martin Jambor  mjam...@suse.cz

PR middle-end/42450
* g++.dg/torture/pr42450.C: New test.

2010-03-18  Michael Matz  m...@suse.de

PR tree-optimization/43402
* gcc.dg/pr43402.c: New testcase.

2010-03-17  Peter Bergner  berg...@vnet.ibm.com

PR target/42427
* gcc.dg/pr42427.c: New test.

2010-03-16  Richard Guenther  rguent...@suse.de

PR middle-end/43379
* gcc.dg/pr43379.c: New testcase.

2010-03-15  Michael Matz  m...@suse.de

PR middle-end/43300
* gcc.dg/pr43300.c: New testcase.

2010-03-15  Richard Guenther  rguent...@suse.de

PR tree-optimization/43367
* gcc.c-torture/compile/pr43367.c: New testcase.

Added:
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/abi/mangle42.C
  - copied unchanged from r157725,
trunk/gcc/testsuite/g++.dg/abi/mangle42.C
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/ext/is_pod_98.C
  - copied unchanged from r157725,
trunk/gcc/testsuite/g++.dg/ext/is_pod_98.C
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/torture/pr42450.C
  - copied unchanged from r157725,
trunk/gcc/testsuite/g++.dg/torture/pr42450.C
branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/compile/pr43367.c
  - copied unchanged from r157725,
trunk/gcc/testsuite/gcc.c-torture/compile/pr43367.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr42427.c
  - copied unchanged from r157725, trunk/gcc/testsuite/gcc.dg/pr42427.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr43211.c
  - copied unchanged from r157725, trunk/gcc/testsuite/gcc.dg/pr43211.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr43300.c
  - copied unchanged from r157725, trunk/gcc/testsuite/gcc.dg/pr43300.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr43379.c
  - copied unchanged from r157725, trunk/gcc/testsuite/gcc.dg/pr43379.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr43402.c
  - copied unchanged from r157725, trunk/gcc/testsuite/gcc.dg/pr43402.c
branches/gcc-4_4-branch/gcc/testsuite/gfortran.dg/pr43475.f90
  - copied unchanged from r157725,
trunk/gcc/testsuite/gfortran.dg/pr43475.f90
   
branches/gcc-4_4-branch/gcc/testsuite/gfortran.fortran-torture/execute/pr43390.f90
  - copied unchanged from r157725,
trunk/gcc/testsuite/gfortran.fortran-torture/execute/pr43390.f90
Modified:
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug middle-end/43390] [4.5 Regression] ICE: integral result type precision does not match field size of BIT_FIELD_REF

2010-03-22 Thread rguenth at gcc dot gnu dot org


--- Comment #7 from rguenth at gcc dot gnu dot org  2010-03-22 12:39 ---
Subject: Bug 43390

Author: rguenth
Date: Mon Mar 22 12:39:04 2010
New Revision: 157624

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=157624
Log:
2010-03-22  Richard Guenther  rguent...@suse.de

PR tree-optimization/43390
* tree-vect-stmts.c (get_vectype_for_scalar_type): Make
sure vector extracts are type correct.

* gfortran.fortran-torture/execute/pr43390.f90: New testcase.

Added:
trunk/gcc/testsuite/gfortran.fortran-torture/execute/pr43390.f90
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-vect-stmts.c


-- 


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



[Bug middle-end/43390] [4.5 Regression] ICE: integral result type precision does not match field size of BIT_FIELD_REF

2010-03-22 Thread rguenth at gcc dot gnu dot org


--- Comment #8 from rguenth at gcc dot gnu dot org  2010-03-22 12:39 ---
Fixed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug middle-end/43390] [4.5 Regression] ICE: integral result type precision does not match field size of BIT_FIELD_REF

2010-03-20 Thread rguenth at gcc dot gnu dot org


--- Comment #6 from rguenth at gcc dot gnu dot org  2010-03-20 15:20 ---
Well.  I'll just implement that given the silence.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |rguenth at gcc dot gnu dot
   |dot org |org
 Status|NEW |ASSIGNED
   Last reconfirmed|2010-03-16 14:57:28 |2010-03-20 15:20:35
   date||


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



[Bug middle-end/43390] [4.5 Regression] ICE: integral result type precision does not match field size of BIT_FIELD_REF

2010-03-16 Thread burnus at gcc dot gnu dot org


--- Comment #3 from burnus at gcc dot gnu dot org  2010-03-16 13:55 ---
Variant which also crashes on x86-64 systems:

   logical :: l1(4)
   logical :: l2(4)
   l1 = (/.TRUE.,.FALSE.,.TRUE.,.FALSE./)
   l2 = (/.FALSE.,.TRUE.,.FALSE.,.TRUE./)
   if (dot_product (l1, l2)) call abort ()
   l2 = .TRUE.
   if (.not.dot_product (l1, l2)) call abort ()
end


test2.f90:8:0: error: integral result type precision does not match field size
of BIT_FIELD_REF
BIT_FIELD_REF vect_var_.37_73, 32, 0
f951: note: in statement
stmp_var_.36_74 = BIT_FIELD_REF vect_var_.37_73, 32, 0;


Testing indicates with gfortran -O3 on x86-64-linux:
working 2009-07-10-r149458
failing 2009-07-17-r149734
though builds might be tainted by local patches.

Thus, it looks like either a middle-end problem or at least an issue exposed by
middle-end modifications.


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

  Component|fortran |middle-end
 GCC target triplet|spu-unknown-elf |
Summary|logical_dot_product.f90:|[4.5 Regression] ICE:
   |error: integral result type |integral result type
   |precision does  not match   |precision does  not match
   |field size of BIT_FIELD_REF |field size of BIT_FIELD_REF
   Target Milestone|--- |4.5.0


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



[Bug middle-end/43390] [4.5 Regression] ICE: integral result type precision does not match field size of BIT_FIELD_REF

2010-03-16 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2010-03-16 14:54 ---
*** Bug 43252 has been marked as a duplicate of this bug. ***


-- 


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



[Bug middle-end/43390] [4.5 Regression] ICE: integral result type precision does not match field size of BIT_FIELD_REF

2010-03-16 Thread rguenth at gcc dot gnu dot org


--- Comment #5 from rguenth at gcc dot gnu dot org  2010-03-16 14:57 ---
The issue is that logical(kind=4) seems to have TYPE_PRECISION of 1 (just
guessing).  But BIT_FIELD_REF vect_var_.37_73, 32, 0 extracts 32bits from
the vector, failing to truncate the result to 1 bit precision, possibly
leading to wrong-code.  What the middle-end expects here is

 integer(kind=4) tmp = But BIT_FIELD_REF vect_var_.37_73, 32, 0;
 res = (logical(kind=4))tmp;

But I suppose this might turn out to be expensive (thus we could also refuse
to build vector types from types whose precision does not match their mode
bitsize).


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-03-16 14:57:28
   date||


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