This is from a -O1 of syntax.c - note how it stamps on r2 as a temp
which is the 1st variadic argument before it gets to stack the original.


        .global syntax_error   <<<<< void syntax_error(struct info *info, const 
char *format, ...) {
        .thumb
        .thumb_func
        .type   syntax_error, %function
syntax_error:
        .fnstart
.LFB100:
        .loc 1 116 0
        .cfi_startproc
        @ args = 4, pretend = 12, frame = 8
        @ frame_needed = 0, uses_anonymous_args = 1
        .loc 1 120 0
        ldr     r3, [r0, #0]
        ldr     r3, [r3, #0]
        subs    r2, r3, #6       !!!!!
        it      ne
        movne   r2, #1
        cmp     r3, #0
        ite     eq
        moveq   r3, #0
        andne   r3, r2, #1
        cbnz    r3, .L153
        .loc 1 116 0
        push    {r1, r2, r3}
        .save {r1, r2, r3}

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/758082

Title:
  [armel] segfaults in make check pass when built with optimization

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to