kframework/c-semantics

Default argument conversion

Opened this issue · 0 comments

The program

struct A {A(int){}};
void goo(A const &r = 1){}
int main() {goo();}

get stuck with error:

Fatal error: exception Invalid_argument("mismatched constructor at top of split configuration: baseOfLoc(#token(\"1\", \"Int\"))")

The top of the K cell is:

bindParamCpp3(`Identifier`(#token("\"r"","String")),tcpp(quals(`.Set`(.KList)),`.Set`(.KList),lvRefType(tcpp(quals(`SetItem`(`Const`(.KList))),`.Set`(.KList),classType(classId(`GlobalNamespace`(.KList),classSpecifier(`Struct`(.KList),`Identifier`(#token("\"A\"","String")),`.List{"_,__CPP-DYNAMIC-OTHER-SORTS"}`(.KList))))))),prv(#token("1","Int"),`noTrace_CPP-TRACE-SYNTAX`(.KList),tcpp(quals(`.Set`(.KList)),`.Set`(.KList),`int_CPP-TYPING-SYNTAX`(.KList))))