------- Comment #10 from rguenth at gcc dot gnu dot org 2010-05-29 11:47 ------- Or rather, if you have
void __attribute__((naked)) foo (int i) { asm("use i"); } without any inputs refering to i that is invalid. Like I see in the attached preprocessed source: static void __attribute__((naked)) __attribute__((no_instrument_function)) v4wb_copy_user_page(void *kto, const void *kfrom) { asm(" stmfd sp!, {r4, lr} @ 2\n mov r2, %0 @ 1\n ldmia r1!, {r3, r4, ip, lr} @ 4\n1: mcr p15, 0, r0, c7, c6, 1 @ 1 invalidate D line\n stmia r0!, {r3, r4, ip, lr} @ 4\n ldmia r1!, {r3, r4, ip, lr} @ 4+1\n stmia r0!, {r3, r4, ip, lr} @ 4\n ldmia r1!, {r3, r4, ip, lr} @ 4\n mcr p15, 0, r0, c7, c6, 1 @ 1 invalidate D line\n stmia r0!, {r3, r4, ip, lr} @ 4\n ldmia r1!, {r3, r4, ip, lr} @ 4\n subs r2, r2, #1 @ 1\n stmia r0!, {r3, r4, ip, lr} @ 4\n ldmneia r1!, {r3, r4, ip, lr} @ 4\n bne 1b @ 1\n mcr p15, 0, r1, c7, c10, 4 @ 1 drain WB\n ldmfd sp!, {r4, pc} @ 3" # 46 "/home/kraj/work/linux-2.6.34/arch/arm/mm/copypage-v4wb.c" : : "I" (((1UL) << 12) / 64)); } kto and kfrom are unused. -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44290