-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Fix calling variadic functions through TClingCallFunc (Fixes roottest-python-cling-cling on ICC). #816
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix calling variadic functions through TClingCallFunc (Fixes roottest-python-cling-cling on ICC). #816
Conversation
|
Starting build on |
|
@Teemperor Nice work. I assigned to Pere as he mentioned that he was looking at this before. |
| TEST(TClingCallFunc, FunctionWrapperVariadic) | ||
| { | ||
| gInterpreter->Declare(R"cpp( | ||
| void FunctionWrapperFuncVariadic(int j, ...) {} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we actually add some work to the function body, run it and check the result? This would give us one extra degree of certainty.
| callbuf << arg_type; | ||
| } | ||
| if (FD->isVariadic()) | ||
| callbuf << ", ..."; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Clang-format says you didn't use 3 spaces on the line above. 😃
|
Build failed on centos7/gcc49. Errors:
Warnings:
|
a77fb8b to
5860dbc
Compare
|
Starting build on |
The casting of the function to improve lookup didn't took variadic functions into aspect, causing ABI issues when generating the code for calling this function. This correctly appends the annotation for a variadic function to the function type. This fixes the roottest-python-cling-cling test when compiling with icc.
The casting of the function to improve lookup didn't took
variadic functions into aspect, causing ABI issues when generating
the code for calling this function. This correctly appends the
annotation for a variadic function to the function type.
This fixes the roottest-python-cling-cling test when compiling
with icc.