okay it CException::CException(..) doesn't get inlined now.. But it still doesn't inline my CHandleMove::onMove(...) because of the throw push rbx sub rsp, 10h cmp edx, 3 mov [rdi], rsi jz short loc_408990 mov edi, 68h call ___cxa_allocate_exception mov edx, offset aPacketSizeIsDi ; "Packet size is... mov esi, 4 mov rdi, rax mov rbx, rax call _ZN10CExceptionC1EiPKc ; CException::CException mov edx, offset _ZN10CExceptionD1Ev ; CException::~CException mov esi, offset _ZTI10CException ; `typeinfo for'CException mov rdi, rbx call ___cxa_throw add rsp, 10h pop rbx retn When i put the throw into a own function everything thing is fine..looks like this (and also gets inlined into CHandleMove::onMove(...)) cmp edx, 3 mov [rdi], rsi jz short locret_408920 jmp _Z14throwWrongSizev ; throwWrongSize(void) rep retn .. Its a lot better to put the throw into a own function..