template functions not inlined

Dan Nicolaescu dann@ics.uci.edu
Sun Feb 1 06:12:00 GMT 2004


The following trivial example shows that template functions defined at
the top level are not inlined by any version of gcc.

template<typename T>  int func (T t) { return 25; }
void bar(void) { func (17); } 

Intel's compiler inlines func into bar.

Dan Berlin investigated this a bit, and the cause is 
 cp/tree.c:2058-2064 which in turn is caused by varasm.c:4909
Is there any reason for that code to be the right thing to do
for the above example? 



More information about the Gcc mailing list