You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
| nil => (fmt_c_decl "void" args name nil, None, nil)
| cons r0 _ =>
let r0 := List.last rets r0 in
let rets' := List.removelast rets in
let retrenames := fst (rename_outs rets' (cmd.vars body)) in
(fmt_c_decl "uintptr_t" args name (List.map snd retrenames), Some r0, retrenames)
endin
I would like a function like
c_arrange_arguments {A R} (args : list A) (rets : list R) : option R * list (A + R)
which factors out the logic about which return gets returned and which returns get added to the argument list, and the logic about which order things get added. (I can make a PR for this if you'd like.) See also mit-plv/fiat-crypto#895
The text was updated successfully, but these errors were encountered:
In usage in fiat-crypto, I find myself needing to recreate some of the logic from
bedrock2/bedrock2/src/bedrock2/ToCString.v
Lines 149 to 156 in 13365e8
I would like a function like
which factors out the logic about which return gets returned and which returns get added to the argument list, and the logic about which order things get added. (I can make a PR for this if you'd like.) See also mit-plv/fiat-crypto#895
The text was updated successfully, but these errors were encountered: