Hi,
I have a question regarding the reordering of statements involving a builtin function and extended asm volatile expressions in avr-gcc. Consider the following code snippet: //C++ { asm volatile(/* template plus operands */); __builtin_avr_delay_cycles(cycles); asm volatile(/* template plus operands */); } I understand that the compiler is allowed to reorder statements as long as it doesn't affect the observable behavior of the program. However, in this specific case, the __builtin_avr_delay_cycles function is a compiler intrinsic. Assuming there are no other expressions on the above block, is it possible for the compiler to reorder the three statements? Cheers, Ricardo Cosme