On 08/13/2010 10:25 AM, Job Noorman wrote: > //file main.cpp > void func() {} > > int main() > { > //this works but GCC generates an indirect call: > // movl $_Z4funcv, %eax > // call *%eax > asm("call *%0" : : "r"(func)); > > //this is what I conceptually want to do but doesn't work because > //GCC generates > // call $_Z4funcv > //which gives an error from the assembler: > // main.cpp: Assembler messages: > // main.cpp:20: Error: suffix or operands invalid for `call' > //I would like to find a way to make GCC generate the following: > // call _Z4funcv > //(note there is no "$") > asm("call %0" : : "i"(func)); > } asm("call %P0" : : "i"(func)); Andrew.