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