Skip to content
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

Possible type mismatch for runtime functions #175

Open
m-carrasco opened this issue Dec 15, 2024 · 0 comments
Open

Possible type mismatch for runtime functions #175

m-carrasco opened this issue Dec 15, 2024 · 0 comments

Comments

@m-carrasco
Copy link

Hi,

This is a follow-up of issue #83.

compiler/Runtime.cpp defines the signature of the runtime functions injected by the compiler. I've noticed that in many cases, such as_sym_push_path_constraint, a boolean-like parameter is defined in LLVM using a 1-bit integer (int1T):

  pushPathConstraint =
      import(M, "_sym_push_path_constraint", voidT, ptrT, int1T, intPtrType);

However, the actual C definitions are not defined using a 1-bit integer:

void _sym_push_path_constraint(SymExpr constraint, int taken,
                               uintptr_t site_id) 

I think this mismatch between the LLVM and the C version is causing the behavior explained in #83 . If that is the case, any other runtime function using a 1-bit integer could have the same issues. I just wanted to confirm this before working on a possible fix.

Best,
Manuel

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant