------- Comment #13 from darrenrjenkins at gmail dot com 2010-09-22 00:20 ------- I seem to be getting this bug on arm thumb also
USB_INT16U ReadLE16U ( volatile USB_INT08U *pmem ) { USB_INT16U val; USB_INT08U *bytes = (USB_INT08U *)&val; bytes[0] = pmem[0]; bytes[1] = pmem[1]; return val; } B580 push {r7, lr} B081 sub sp, #4 7802 ldrb r2, [r0, #0] AF00 add r7, sp, #0 1CBB adds r3, r7, #2 701A strb r2, [r3, #0] 46BD mov sp, r7 B001 add sp, #4 7842 ldrb r2, [r0, #1] 8818 ldrh r0, [r3, #0] BC80 pop {r7} BC02 pop {r1} 4708 bx r1 This happens on both 4.4.4 and 4.5.1 -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30282