On Tue, 2003-11-04 at 17:12, Richard B. Kreckel wrote:
Perhaps a naive question: If there is no support for weak symbols or something like this, then the compiler is forced to always inline whenever somebody says "inline", right? How then, does the compiler handle extreme cases where inlining cannot be done because of recursions, mutually inlined functions, and other such things???
After browsing the assembly code, it looks like "or something like this". If a function is marked inline and emitted out of line, it is placed into a section named ".text$[mangled name of the function]". The next line is ".linkonce discard" Normal functions are simply placed in the ".text" section. I am guessing that the linker can resolve all of the specially named sections to a single one, but cannot resolve that down to an identically named function in the ".text" section.
Only grudginly so. But if this turns out to work and there *really* is no other way on that platform, then possibly.
I'll ask on the binutils list to see if there is a workaround. Besides, if Mr. Haible needed those functions inline for performance, than isn't the fact that they are not being inlined, even on Linux, a bug in its own right? -Jonathan Brandmeyer