#include // No function prologue/epilogue - raw assembly only __attribute__((naked)) void my_naked_function() { __asm__ volatile ( "movl $42, %eax\n\t" "ret" ); } int main() { int result; __asm__ volatile ( "call my_naked_function\n\t" "movl %%eax, %0\n\t" : "=r"(result) : : "%eax" ); printf("Result from naked function: %d\n", result); return 0; }