------- Comment #1 from gilles dot chanteperdrix at xenomai dot org 2009-01-05 15:21 ------- The following, even simpler test case:
unsigned long long f(unsigned long long ull) { register unsigned long long *__r0 __asm__ ("r0") = &ull; __asm__ __volatile__ ("" : "+r" (__r0)); return * __r0; } gives the same warning, and the following assembly code: 00000000 <f>: 0: e24dd008 sub sp, sp, #8 ; 0x8 4: e28d0008 add r0, sp, #8 ; 0x8 8: e16000f8 strd r0, [r0, #-8]! c: e8900003 ldm r0, {r0, r1} 10: e28dd008 add sp, sp, #8 ; 0x8 14: e12fff1e bx lr -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38674