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

Reply via email to