Bug List: (This bug is not in your last search results)   Show last search results      Search page      Enter new bug
Bug#: 40233
Product:  
Component:  
Status: RESOLVED
Resolution: FIXED
Assigned To: Richard Guenther <rguenth@gcc.gnu.org>
Host:
Reported against  
Priority:  
Severity:  
Target Milestone:  
 
 
Target:
Reporter: Ira Rosen <irar@il.ibm.com>
Add CC:
CC:
Remove selected CCs
Build:
URL:
Summary:
Keywords:
Known to work:
Known to fail:

Attachment Description Type Created Size Actions
Create a New Attachment (proposed patch, testcase, etc.) View All

Bug 40233 depends on: Show dependency tree
Show dependency graph
Bug 40233 blocks:

Additional Comments:






View Bug Activity   |   Format For Printing   |   Clone This Bug


Description:   Last confirmed: 2009-05-24 11:49 Opened: 2009-05-24 09:14
The following tests fail with "error: alignment of array elements is greater
than element size":
FAIL: gcc.dg/torture/stackalign/nested-2.c  -O3 -fomit-frame-pointer  (test for
excess errors)
WARNING: gcc.dg/torture/stackalign/nested-2.c  -O3 -fomit-frame-pointer 
compilation failed to produce executable
FAIL: gcc.dg/torture/stackalign/nested-2.c  -O3 -g  (test for excess errors)
WARNING: gcc.dg/torture/stackalign/nested-2.c  -O3 -g  compilation failed to
produce executable
FAIL: gcc.dg/torture/stackalign/nested-3.c  -O3 -fomit-frame-pointer  (test for
excess errors)
WARNING: gcc.dg/torture/stackalign/nested-3.c  -O3 -fomit-frame-pointer 
compilation failed to produce executable
FAIL: gcc.dg/torture/stackalign/nested-3.c  -O3 -g  (test for excess errors)
WARNING: gcc.dg/torture/stackalign/nested-3.c  -O3 -g  compilation failed to
produce executable
FAIL: gcc.dg/torture/stackalign/nested-1.c  -O3 -fomit-frame-pointer  (test for
excess errors)
WARNING: gcc.dg/torture/stackalign/nested-1.c  -O3 -fomit-frame-pointer 
compilation failed to produce executable
FAIL: gcc.dg/torture/stackalign/nested-1.c  -O3 -g  (test for excess errors)
WARNING: gcc.dg/torture/stackalign/nested-1.c  -O3 -g  compilation failed to
produce executable
FAIL: gcc.dg/torture/stackalign/nested-2.c  -O3 -fomit-frame-pointer  (test for
excess errors)
WARNING: gcc.dg/torture/stackalign/nested-2.c  -O3 -fomit-frame-pointer 
compilation failed to produce executable
FAIL: gcc.dg/torture/stackalign/nested-2.c  -O3 -g  (test for excess errors)
WARNING: gcc.dg/torture/stackalign/nested-2.c  -O3 -g  compilation failed to
produce executable
FAIL: gcc.dg/torture/stackalign/nested-3.c  -O3 -fomit-frame-pointer  (test for
excess errors)
WARNING: gcc.dg/torture/stackalign/nested-3.c  -O3 -fomit-frame-pointer 
compilation failed to produce executable
FAIL: gcc.dg/torture/stackalign/nested-3.c  -O3 -g  (test for excess errors)
WARNING: gcc.dg/torture/stackalign/nested-3.c  -O3 -g  compilation failed to
produce executable
FAIL: gcc.dg/torture/stackalign/nested-2.c  -O3 -fomit-frame-pointer  (test for
excess errors)
WARNING: gcc.dg/torture/stackalign/nested-2.c  -O3 -fomit-frame-pointer 
compilation failed to produce executable
FAIL: gcc.dg/torture/stackalign/nested-2.c  -O3 -g  (test for excess errors)
WARNING: gcc.dg/torture/stackalign/nested-2.c  -O3 -g  compilation failed to
produce executable
FAIL: gcc.dg/torture/stackalign/nested-3.c  -O3 -fomit-frame-pointer  (test for
excess errors)
WARNING: gcc.dg/torture/stackalign/nested-3.c  -O3 -fomit-frame-pointer 
compilation failed to produce executable
FAIL: gcc.dg/torture/stackalign/nested-3.c  -O3 -g  (test for excess errors)
WARNING: gcc.dg/torture/stackalign/nested-3.c  -O3 -g  compilation failed to
produce executable
FAIL: gcc.dg/torture/stackalign/nested-1.c  -O3 -fomit-frame-pointer  (test for
excess errors)
WARNING: gcc.dg/torture/stackalign/nested-1.c  -O3 -fomit-frame-pointer 
compilation failed to produce executable
FAIL: gcc.dg/torture/stackalign/nested-1.c  -O3 -g  (test for excess errors)
WARNING: gcc.dg/torture/stackalign/nested-1.c  -O3 -g  compilation failed to
produce executable
FAIL: gcc.dg/torture/stackalign/nested-2.c  -O3 -fomit-frame-pointer  (test for
excess errors)
WARNING: gcc.dg/torture/stackalign/nested-2.c  -O3 -fomit-frame-pointer 
compilation failed to produce executable
FAIL: gcc.dg/torture/stackalign/nested-2.c  -O3 -g  (test for excess errors)
WARNING: gcc.dg/torture/stackalign/nested-2.c  -O3 -g  compilation failed to
produce executable
FAIL: gcc.dg/torture/stackalign/nested-3.c  -O3 -fomit-frame-pointer  (test for
excess errors)
WARNING: gcc.dg/torture/stackalign/nested-3.c  -O3 -fomit-frame-pointer 
compilation failed to produce executable
FAIL: gcc.dg/torture/stackalign/nested-3.c  -O3 -g  (test for excess errors)
WARNING: gcc.dg/torture/stackalign/nested-3.c  -O3 -g  compilation failed to
produce executable

FAIL: g++.dg/torture/stackalign/eh-vararg-1.C  -O3 -fomit-frame-pointer  (test
for excess errors)
WARNING: g++.dg/torture/stackalign/eh-vararg-1.C  -O3 -fomit-frame-pointer 
compilation failed to produce executable
FAIL: g++.dg/torture/stackalign/eh-vararg-1.C  -O3 -g  (test for excess errors)
WARNING: g++.dg/torture/stackalign/eh-vararg-1.C  -O3 -g  compilation failed to
produce executable
FAIL: g++.dg/torture/stackalign/eh-vararg-2.C  -O3 -fomit-frame-pointer  (test
for excess errors)
WARNING: g++.dg/torture/stackalign/eh-vararg-2.C  -O3 -fomit-frame-pointer 
compilation failed to produce executable
FAIL: g++.dg/torture/stackalign/eh-vararg-2.C  -O3 -g  (test for excess errors)
WARNING: g++.dg/torture/stackalign/eh-vararg-2.C  -O3 -g  compilation failed to
produce executable
FAIL: g++.dg/torture/stackalign/eh-alloca-1.C  -O3 -fomit-frame-pointer  (test
for excess errors)
WARNING: g++.dg/torture/stackalign/eh-alloca-1.C  -O3 -fomit-frame-pointer 
compilation failed to produce executable
FAIL: g++.dg/torture/stackalign/eh-alloca-1.C  -O3 -g  (test for excess errors)
WARNING: g++.dg/torture/stackalign/eh-alloca-1.C  -O3 -g  compilation failed to
produce executable
FAIL: g++.dg/torture/stackalign/eh-global-1.C  -O3 -fomit-frame-pointer  (test
for excess errors)
WARNING: g++.dg/torture/stackalign/eh-global-1.C  -O3 -fomit-frame-pointer 
compilation failed to produce executable
FAIL: g++.dg/torture/stackalign/eh-global-1.C  -O3 -g  (test for excess errors)
WARNING: g++.dg/torture/stackalign/eh-global-1.C  -O3 -g  compilation failed to
produce executable
FAIL: g++.dg/torture/stackalign/eh-inline-1.C  -O3 -fomit-frame-pointer  (test
for excess errors)
WARNING: g++.dg/torture/stackalign/eh-inline-1.C  -O3 -fomit-frame-pointer 
compilation failed to produce executable
FAIL: g++.dg/torture/stackalign/eh-inline-1.C  -O3 -g  (test for excess errors)
WARNING: g++.dg/torture/stackalign/eh-inline-1.C  -O3 -g  compilation failed to
produce executable
FAIL: g++.dg/torture/stackalign/eh-inline-2.C  -O3 -fomit-frame-pointer  (test
for excess errors)
WARNING: g++.dg/torture/stackalign/eh-inline-2.C  -O3 -fomit-frame-pointer 
compilation failed to produce executable
FAIL: g++.dg/torture/stackalign/eh-inline-2.C  -O3 -g  (test for excess errors)
WARNING: g++.dg/torture/stackalign/eh-inline-2.C  -O3 -g  compilation failed to
produce executable
FAIL: g++.dg/torture/stackalign/eh-vararg-1.C  -O3 -fomit-frame-pointer  (test
for excess errors)
WARNING: g++.dg/torture/stackalign/eh-vararg-1.C  -O3 -fomit-frame-pointer 
compilation failed to produce executable
FAIL: g++.dg/torture/stackalign/eh-vararg-1.C  -O3 -g  (test for excess errors)
WARNING: g++.dg/torture/stackalign/eh-vararg-1.C  -O3 -g  compilation failed to
produce executable
FAIL: g++.dg/torture/stackalign/eh-vararg-2.C  -O3 -fomit-frame-pointer  (test
for excess errors)
WARNING: g++.dg/torture/stackalign/eh-vararg-2.C  -O3 -fomit-frame-pointer 
compilation failed to produce executable
FAIL: g++.dg/torture/stackalign/eh-vararg-2.C  -O3 -g  (test for excess errors)
WARNING: g++.dg/torture/stackalign/eh-vararg-2.C  -O3 -g  compilation failed to
produce executable

The failures start from revision 147829 - basic block SLP. SLP checks if there
is a vector type for the scalar type used in a basic block. It calls
make_vector_type() for a vector type, where array of this type is built for
debug representation purposes in build_array_type():

at ../../gcc/gcc/stor-layout.c:1848
1848              error ("alignment of array elements is greater than
element size");
(gdb) back
#0  layout_type (type=0x2b2860eb2240) at ../../gcc/gcc/stor-layout.c:1848
#1  0x00000000008dc33c in type_hash_lookup (hashcode=2524125531, type=0x40)
at ../../gcc/gcc/tree.c:4721
#2  0x00000000008dc3c9 in type_hash_canon (hashcode=2524125531, type=0x40)
at ../../gcc/gcc/tree.c:4772
#3  0x00000000008dd1d1 in build_array_type (elt_type=0x2b2860e52600,
index_type=0x2b2860dd90c0) at ../../gcc/gcc/tree.c:5851
#4  0x00000000008f4d1d in make_vector_type (innertype=0x2b2860e52600,
nunits=4, mode=VOIDmode) at ../../gcc/gcc/tree.c:7441
#5  0x000000000089d9c8 in get_vectype_for_scalar_type
(scalar_type=0x2b2860e52600) at ../../gcc/gcc/tree-vect-stmts.c:4348
#6  0x0000000000bbc3ef in vect_analyze_data_refs (loop_vinfo=<value
optimized out>, bb_vinfo=<value optimized out>)
    at ../../gcc/gcc/tree-vect-data-refs.c:2050
...
(gdb) p debug_generic_expr (type)
aligned[4]
$6 = void

------- Comment #1 From Richard Guenther 2009-05-24 11:49 -------
Mine.

------- Comment #2 From Richard Guenther 2009-05-24 12:11 -------
Testcase:

typedef int aligned __attribute__((aligned(64)));
struct Frame {
  aligned i;
};

void foo(struct Frame *p)
{
  aligned *q = &p->i;
  *q = 0;
}

------- Comment #3 From Richard Guenther 2009-05-24 13:49 -------
*** Bug 40234 has been marked as a duplicate of this bug. ***

------- Comment #4 From Richard Guenther 2009-05-24 16:13 -------
Fixed.

------- Comment #5 From Richard Guenther 2009-05-24 16:13 -------
Subject: Bug 40233

Author: rguenth
Date: Sun May 24 16:12:58 2009
New Revision: 147835

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=147835
Log:
2009-05-24  Richard Guenther  <rguenther@suse.de>

        PR middle-end/40233
        * tree.c (make_vector_type): Build the TYPE_DEBUG_REPRESENTATION_TYPEs
        array type from the main variant of the inner type.

        * gcc.c-torture/compile/pr40233.c: New testcase.

Added:
    trunk/gcc/testsuite/gcc.c-torture/compile/pr40233.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree.c

------- Comment #6 From hjl@gcc.gnu.org 2009-05-30 13:50 -------
Subject: Bug 40233

Author: hjl
Date: Sat May 30 13:49:33 2009
New Revision: 148004

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=148004
Log:
2009-05-30  H.J. Lu  <hongjiu.lu@intel.com>

        Backport from mainline:

        2009-05-28  Dodji Seketeli  <dodji@redhat.com>

        PR c++/39754
        * g++.dg/template/canon-type-1.C: New test.
        * g++.dg/template/canon-type-2.C: Likewise.
        * g++.dg/template/canon-type-3.C: Likewise.
        * g++.dg/template/canon-type-4.C: Likewise.
        * g++.dg/template/canon-type-5.C: Likewise.
        * g++.dg/template/canon-type-6.C: Likewise.
        * g++.dg/template/canon-type-7.C: Likewise.

        2009-05-28  Ira Rosen  <irar@il.ibm.com>

        PR tree-optimization/40254
        * gcc.dg/vect/pr40254.c: New test.

        2009-05-26  Richard Guenther  <rguenther@suse.de>

        PR middle-end/40252
        * gcc.c-torture/compile/pr40252.c: New testcase.

        2009-05-26  Dodji Seketeli  <dodji@redhat.com>

        PR c++/40007
        * g++.dg/template/typedef18.C: New test.
        * g++.dg/template/typedef19.C: Likewise.
        * g++.dg/template/typedef20.C: Likewise.

        2009-05-25  Ira Rosen  <irar@il.ibm.com>

        PR tree-optimization/40238
        * gcc.dg/vect/pr40238.c: New test.

        2009-05-24  Richard Guenther  <rguenther@suse.de>

        PR middle-end/40233
        * gcc.c-torture/compile/pr40233.c: New testcase.

Added:
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/canon-type-1.C
      - copied unchanged from r148002,
trunk/gcc/testsuite/g++.dg/template/canon-type-1.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/canon-type-2.C
      - copied unchanged from r148002,
trunk/gcc/testsuite/g++.dg/template/canon-type-2.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/canon-type-3.C
      - copied unchanged from r148002,
trunk/gcc/testsuite/g++.dg/template/canon-type-3.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/canon-type-4.C
      - copied unchanged from r148002,
trunk/gcc/testsuite/g++.dg/template/canon-type-4.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/canon-type-5.C
      - copied unchanged from r148002,
trunk/gcc/testsuite/g++.dg/template/canon-type-5.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/canon-type-6.C
      - copied unchanged from r148002,
trunk/gcc/testsuite/g++.dg/template/canon-type-6.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/canon-type-7.C
      - copied unchanged from r148002,
trunk/gcc/testsuite/g++.dg/template/canon-type-7.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/typedef18.C
      - copied unchanged from r148003,
trunk/gcc/testsuite/g++.dg/template/typedef18.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/typedef19.C
      - copied unchanged from r148003,
trunk/gcc/testsuite/g++.dg/template/typedef19.C
    branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/typedef20.C
      - copied unchanged from r148003,
trunk/gcc/testsuite/g++.dg/template/typedef20.C
    branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/compile/pr40233.c
      - copied unchanged from r148003,
trunk/gcc/testsuite/gcc.c-torture/compile/pr40233.c
    branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/compile/pr40252.c
      - copied unchanged from r148003,
trunk/gcc/testsuite/gcc.c-torture/compile/pr40252.c
    branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/vect/pr40238.c
      - copied unchanged from r148003,
trunk/gcc/testsuite/gcc.dg/vect/pr40238.c
    branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/vect/pr40254.c
      - copied unchanged from r148003,
trunk/gcc/testsuite/gcc.dg/vect/pr40254.c
Modified:
    branches/gcc-4_4-branch/gcc/testsuite/ChangeLog

Bug List: (This bug is not in your last search results)   Show last search results      Search page      Enter new bug