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


-- 
           Summary: Test failures with "alignment of array elements is
                    greater than element size"
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: irar at il dot ibm dot com
 GCC build triplet: x86_64-suse-linux
  GCC host triplet: x86_64-suse-linux
GCC target triplet: x86_64-suse-linux


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

Reply via email to