This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/47383] New: [x32] Incorrect array access
- From: "hjl.tools at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 20 Jan 2011 20:00:26 +0000
- Subject: [Bug target/47383] New: [x32] Incorrect array access
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47383
Summary: [x32] Incorrect array access
Product: gcc
Version: 4.6.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: hjl.tools@gmail.com
[hjl@gnu-6 build]$ cat test/prXXX.c
static int heap[2*(256 +1+29)+1];
static int heap_len;
static int heap_max;
void
__attribute__ ((noinline))
foo (int elems)
{
int n, m;
int max_code = -1;
int node = elems;
heap_len = 0, heap_max = (2*(256 +1+29)+1);
for (n = 0; n < elems; n++)
heap[++heap_len] = max_code = n;
do {
n = heap[1];
heap[1] = heap[heap_len--];
m = heap[1];
heap[--heap_max] = n;
heap[--heap_max] = m;
} while (heap_len >= 2);
}
int
main ()
{
foo (286);
return 0;
}
[hjl@gnu-6 build]$ make
mkdir -p x32/exe
/export/build/gnu/gcc-x32/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/gcc-x32/build-x86_64-linux/gcc/ -mx32 -fPIC -fno-exceptions
-I/export/gnu/import/git/kernel.org/x32/libc/build/../bionic/libc/arch-x32/include
-I/export/gnu/import/git/kernel.org/x32/libc/build/../bionic/libc/include
-I/export/gnu/import/git/kernel.org/x32/libc/build/../bionic/libc/kernel/arch-x32
-I/export/gnu/import/git/kernel.org/x32/libc/build/../bionic/libc/kernel
-I/export/gnu/import/git/kernel.org/x32/libc/build/../bionic/libc/kernel/common
-I/export/gnu/import/git/kernel.org/x32/libc/build/../bionic/libm/include
-I/export/gnu/import/git/kernel.org/x32/libc/build/../bionic/libm/include/i387
-Ulinux -D__ANDROID__ -DANDROID -DUSE_SSSE3 -DUSE_SSE2 -DPIC -g -O2 -o
x32/exe/prXXX.static -nostdlib -Wl,-Bstatic -Wl,-z,nocombreloc
x32/lib/crtbegin_static.o x32/obj/prXXX.o -Wl,--start-group x32/lib/libc.a
/export/build/gnu/gcc-x32/build-x86_64-linux/gcc/libgcc.a -Wl,--end-group
x32/lib/crtend_android.o
mkdir -p x32/exe
/export/build/gnu/gcc-x32/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/gcc-x32/build-x86_64-linux/gcc/ -mx32 -fPIC -fno-exceptions
-I/export/gnu/import/git/kernel.org/x32/libc/build/../bionic/libc/arch-x32/include
-I/export/gnu/import/git/kernel.org/x32/libc/build/../bionic/libc/include
-I/export/gnu/import/git/kernel.org/x32/libc/build/../bionic/libc/kernel/arch-x32
-I/export/gnu/import/git/kernel.org/x32/libc/build/../bionic/libc/kernel
-I/export/gnu/import/git/kernel.org/x32/libc/build/../bionic/libc/kernel/common
-I/export/gnu/import/git/kernel.org/x32/libc/build/../bionic/libm/include
-I/export/gnu/import/git/kernel.org/x32/libc/build/../bionic/libm/include/i387
-Ulinux -D__ANDROID__ -DANDROID -DUSE_SSSE3 -DUSE_SSE2 -DPIC -g -O2 -o
x32/exe/prXXX.dynamic -nostdlib -Wl,-z,nocopyreloc -Wl,-z,nocombreloc
-Wl,-dynamic-linker
/export/gnu/import/git/kernel.org/x32/libc/build/x32/lib/ld.so
x32/lib/crtbegin_dynamic.o x32/obj/prXXX.o x32/lib/libc.so x32/lib/libdl.so
/export/build/gnu/gcc-x32/build-x86_64-linux/gcc/libgcc.a
x32/lib/crtend_android.o
export LD_LIBRARY_PATH=x32/lib; \
for f in x32/exe/init-mixed.static x32/exe/init-mixed.dynamic
x32/exe/hello.static x32/exe/hello.dynamic x32/exe/prXXX.static
x32/exe/prXXX.dynamic; do \
./$f; \
done
OK
OK
Hello world
Hello world
/bin/sh: line 1: 22295 Segmentation fault ./$f
/bin/sh: line 1: 22296 Segmentation fault ./$f
make: *** [all] Error 139
[hjl@gnu-6 build]$