[Bug go/64510] New: FAIL: go.test/test/nilptr2.go execution on non-split-stack targets

ubizjak at gmail dot com gcc-bugzilla@gcc.gnu.org
Tue Jan 6 14:56:00 GMT 2015


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64510

            Bug ID: 64510
           Summary: FAIL: go.test/test/nilptr2.go execution on
                    non-split-stack targets
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: go
          Assignee: ian at airs dot com
          Reporter: ubizjak at gmail dot com
                CC: cmang at google dot com

The testcase go.test/test/nilptr2.go fails execution on non-split-stack
targets:

Program received signal SIGSEGV, Segmentation fault.
0x0000000000402965 in main.$nested32 () at
/home/uros/gcc-svn/trunk/gcc/testsuite/go.test/test/nilptr2.go:76
76              {"*bigstructp", func() { use(*bigstructp) }},

The test wants to pass ~128MB structure on the stack, resulting in
(x86_64-linux-gnu, CentOS 5.11):

(gdb) disass
Dump of assembler code for function main.$nested32:
   0x0000000000402910 <+0>:     sub    $0x8000058,%rsp
   0x0000000000402917 <+7>:     mov    0x204fa2(%rip),%rsi        # 0x6078c0
<main.bigstructp>
   0x000000000040291e <+14>:    test   %rsi,%rsi
   0x0000000000402921 <+17>:    je     0x402960 <main.$nested32+80>
   0x0000000000402923 <+19>:    lea    0x10(%rsp),%rdi
   0x0000000000402928 <+24>:    mov    $0x8000038,%edx
   0x000000000040292d <+29>:    callq  0x401bc8 <memcpy@plt>
   0x0000000000402932 <+34>:    mov    $0x8000038,%esi
   0x0000000000402937 <+39>:    mov    $0x404680,%edi
   0x000000000040293c <+44>:    callq  0x401b28 <__go_new@plt>
   0x0000000000402941 <+49>:    lea    0x10(%rsp),%rsi
   0x0000000000402946 <+54>:    mov    $0x8000038,%edx
   0x000000000040294b <+59>:    mov    %rax,%rdi
   0x000000000040294e <+62>:    callq  0x401bc8 <memcpy@plt>
   0x0000000000402953 <+67>:    add    $0x8000058,%rsp
   0x000000000040295a <+74>:    retq   
   0x000000000040295b <+75>:    nopl   0x0(%rax,%rax,1)
   0x0000000000402960 <+80>:    mov    $0x6,%edi
=> 0x0000000000402965 <+85>:    mov    %rsi,0x8(%rsp)

Please see the stack adjustment at the top:

sub    $0x8000058,%rsp

The testcase also fails for -m32, fails on alpha [1] (with the same failure),
sparc [2], powerpc [3], powerpc64le [4] and probably other non-split-stack
targets.

[1] https://gcc.gnu.org/ml/gcc-testresults/2015-01/msg00400.html
[2] https://gcc.gnu.org/ml/gcc-testresults/2015-01/msg00354.html
[3] https://gcc.gnu.org/ml/gcc-testresults/2015-01/msg00477.html
[4] https://gcc.gnu.org/ml/gcc-testresults/2015-01/msg00480.html



More information about the Gcc-bugs mailing list