#define barrier() asm volatile("" ::: "memory") What exactly volatile("" ::: "memory") doing here ? I was referring to gnu as (ver 2.14) manual but could not get much clue about this assembly construct - any pointers ?