[Bug middle-end/43390] [4.5 Regression] ICE: integral result type precision does not match field size of BIT_FIELD_REF
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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
--- 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