by amylaar » Tue Mar 26, 2013 12:18 pm
[quote="ysapir"]Just a quick comment - we found out that under some circumstances, the optimizer does not always consider the volatile attribute to the *last_addr pointer, and optimizes out the while() loop.
That volatile doesn't really mean anything, because the compiler sees that that address is set to point inside an object pointed to by tcb->src_addr, so if that address
didn't point to something volatile, casting or assigning the pointer won't make it so (at least as long as the compiler can keep track of the value propagation).