C ++ funciones en línea utilizando GCC: ¿por qué CALL?
He estado probando llamadas a funciones en línea en C ++.
Thread model: win32
gcc version 4.3.3 (4.3.3-tdm-1 mingw32)
Stroustrup en el lenguaje de programación C ++ wirtes:
El especificador en línea es una pista para el compilador de que debería intentar generar código [...] en línea en lugar de establecer el código para la función una vez y luego llamar a través del mecanismo de llamada de función habitual.
Sin embargo, descubrí que el código generado simplemente no está en línea. Hay unLLAMAD instrucción para el isquare función.
alt text http://i42.tinypic.com/8ys3f4.jp
¿Por qué está pasando esto? ¿Cómo puedo usar funciones en línea entonces?
EDITAR Las opciones de línea de comando utilizadas:
**** Build of configuration Debug for project InlineCpp ****
**** Internal Builder is used for build ****
g++ -O0 -g3 -Wall -c -fmessage-length=0 -osrc\InlineCpp.o ..\src\InlineCpp.cpp
g++ -oInlineCpp.exe src\InlineCpp.o