This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug rtl-optimization/60947] [4.9/4.10 Regression] Unable to handle kernel paging request (linux kernel 2.6.28.9) with gcc 4.9 release


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

--- Comment #5 from YuFan <yufan8.chen at gmail dot com> ---
(In reply to Andrew Pinski from comment #4)
> Could there be an out of bounds access in that loop?

I traced the code, and the following code is equal to the original one with
replacing inline functions. In C code, there would be no possibility to get an
out of bounds access.

#SNDRV_PCM_HW_PARAM_FIRST_MASK 0
#SNDRV_PCM_HW_PARAM_LAST_MASK 2
for (k = SNDRV_PCM_HW_PARAM_FIRST_MASK; k <= SNDRV_PCM_HW_PARAM_LAST_MASK; k++)
{
    memset(&constrs->masks[k - SNDRV_PCM_HW_PARAM_FIRST_MASK], 0xff,
SNDRV_MASK_SIZE * sizeof(u_int32_t)); 

}

> Can you try adding -fno-vrp?
I supposed you mean -fno-tree-vrp. I tried it but still has the same issue.

The following assembly code snippet is the same as the original one without
-fno-tree-vrp  

===============================================
snd_pcm_hw_constraints_init:
    @ args = 0, pretend = 0, frame = 0
    @ frame_needed = 1, uses_anonymous_args = 0
    mov    ip, sp
    stmfd    sp!, {r4, r5, r6, r7, r8, r9, r10, fp, ip, lr, pc}
    sub    fp, ip, #4
    sub    sp, sp, #20
    ldr    r8, [r0, #112]
    add    r3, r8, #232
    add    r4, r8, #328
.L1062:
    mov    r0, r3
    mov    r1, #255
    mov    r2, #8
    bl    memset
    add    r3, r0, #32
    cmp    r3, r4
    bne    .L1062
    mov    r3, #0
    mov    r2, r8
    mov    r5, r3
    mov    r4, #12
    mvn    lr, #0
===============================================


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]