I'm looking at the assembly of some compiled code, and while searching for a particular function, I found two, sharing the same name:
000000000042da10 <my_function..0>:
000000000042dc50 <my_function..1>:
There is only one declaration of this function within the C code. I notice both of these functions are called in the assembly code in different places, with slightly different arguments.
This is a non-gcc compiler, but I'm not sure which (I've just been told this wasn't compiled with gcc). I know that it is compiled with maximum optimization (-O3), so I'm curious if this is the compiler optimizing for integer-constant arguments and creating the function twice, once for each time it's called.
What reason is there for two of the same function to exist within a program?