asm volatile ( "push %1 \n\t" "call *%0 \n\t" "add $4, %%esp \n\t" : : "r" ( &test ), "r" ( &x ) );
asm statements are not allowed to alter control flow
asm volatile ( "push %1 \n\t" "call *%0 \n\t" "add $4, %%esp \n\t" : : "r" ( &test ), "r" ( &x ) );
asm statements are not allowed to alter control flow