Michael Rice (mpr@absoft.com) wrote:: All C++ compilers that I am aware of will not inline a function if it: contains any type of loop. Is anyone aware of ANY C++ compiler that: will do this?

The Concert compiler for ICC++ (a concurrent dialect of C++) does.

: I believe the basic problem is the inability to convert such a function: to a suitable expression tree.

This presumes that inlining is done at the expression level.
Inlining can be done at the intermediate code level, for example
3 address code or (as in our compiler) a control dependence graph (CDG)
in static single assignment form (SSA). e.g.