On Wed, Feb 5, 2014 at 7:33 PM, vijay nag <vijunag@xxxxxxxxx> wrote: > On Wed, Feb 5, 2014 at 7:33 PM, vijay nag <vijunag@xxxxxxxxx> wrote: >> Hello, >> >> You can use the below program to find the length of the function >> compiled for X86 target. >> >> Note that assembly instruction for "function()" is immediately >> followed by assembly for "functionEnd" >> >> Key things to note here >> >> 1) Compiler still emits epilogue/prologue for a function with empty >> body. However you could disable this using -fomit-frame-ptr in which >> case function >> body will only have "ret" instruction and in which case difference >> would be 1. >> 0x80483a4 <function> ret >> >> │ >> │0x80483a5 <functionEnd> ret >> >> So size of the function would be 0x80483a5 - 0x80483a4 = 1 >> >> 2)In case if you need frame-ptr, there will be a minimum of 4 >> instructions and in this case difference would be 5. >> 0x80483a4 <function> push %ebp >> >> │ >> │0x80483a5 <function+1> mov %esp,%ebp >> >> │ >> │0x80483a7 <function+3> pop %ebp >> >> │ >> │0x80483a8 <function+4> ret >> >> │ >> │0x80483a9 <functionEnd> push %ebp >> >> │ >> │0x80483aa <functionEnd+1> mov %esp,%ebp >> >> │ >> │0x80483ac <functionEnd+3> pop %ebp >> >> │ >> │0x80483ad <functionEnd+4> ret >> >> So size of the function would be 0x80483a9 - 0x80483a4 = 5 >> >> >> cat fsize.c >> #include <stdio.h> >> >> int function(){ >> } >> >> int functionEnd(){ >> } >> >> int main() >> { >> printf("%x\n", &functionEnd - &function); >> } >> >> vijayNag >> >> On Wed, Feb 5, 2014 at 7:00 PM, Prathamesh Kulkarni >> <bilbotheelffriend@xxxxxxxxx> wrote: >>> Hi, is there a way to find if a function has empty body ? >>> >>> Thanks and Regards, >>> Prathamesh > > My apologies for top-posting. I wanted to ask, is there a way to detect if a function has empty body using GCC API ? Sorry if I didn't phrase it correctly earlier.