https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63483
--- Comment #10 from Richard Biener <rguenth at gcc dot gnu.org> --- Ok, I believe that even char * const a; int * const b; void foo (void) { a[1] = 1; b[2] = 1; } int bar (void) { return a && b; } does not reproduces the issue. $foo..ng: .prologue 1 ldq $1,a($29) !literal ldq $2,0($1) ldq $1,b($29) !literal bis $31,$31,$31 lda $4,1($2) ldq_u $3,1($2) ldq $5,0($1) lda $1,1($31) insbl $1,$4,$1 mskbl $3,$4,$3 bis $1,$3,$1 stq_u $1,1($2) lda $1,1($31) stl $1,8($5) ret $31,($26),1