inline functions not inlined in compiled GLSL code?

Hi,
I have the following inlined function called from my fragment shader:

inline half3 CalculateNormal(...) {
    ...
}
fixed4 frag (v2f i) : COLOR
{
    ...
    half3 pNormal = CalculateNormal(...);
    ...
}

However when I check the compiled glsl code, it’s not inlined:

mediump vec3 CalculateNormal(...) {
   ...
}

void main() {
    ...
    pNormal = CalculateNormal(...);
    ...
}

Is this a compiler bug or a feature? Why isn’t it inlined into the main function of frag shader?
Isn’t inlined code supposed to be faster in glsl?

I don’t think that “inline” is a valid keyword in GLSL. (It is reserved for future use but it doesn’t have any meaning in current versions of GLSL; see the specifications of GLSL for OpenGL ES 2.0 at http://www.khronos.org/registry/gles/ .) I guess Unity just removes it as a “service” to the programmer such that the GLSL compiler doesn’t complain about a syntax error.

In practice, I assume that most GLSL compilers (i.e. OpenGL drivers) inline most (if not all) functions. (The “compiled” GLSL code is actually the code that is sent by Unity to the GLSL compiler.)

Got it, thank you!