All, I've an almost complete implementation of F_C_STRING, but need a bit of insight on the inlining that I'm trying to implement. In pseudo-code, F_C_STRING is
case 1. f_c_string(string) = trim(string) // c_null_char case 2. f_c_string(string, asis=.false.) = trim(string) // c_null_char case 3. f_c_string(string, asis=.true.) = string // c_null_char In trans-intrinsic.cc(conv_isocbinding_function), my current implementation has if (asis) /* asis is present. */ { case 3 } else { case 1 } Where I need a bit of a nudge is the actual evaluation of 'asis' and how to write the gimple stuff, i.e., this part becomes if (asis) /* asis is present. */ { if (asis == .true.) case 2 else case 3 } else { case 1 } -- Steve