This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[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
- From: "yufan8.chen at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 24 Apr 2014 03:42:58 +0000
- Subject: [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
- Auto-submitted: auto-generated
- References: <bug-60947-4 at http dot gcc dot gnu dot org/bugzilla/>
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
===============================================