Skip to content

Annotated CAST Part 4: Future Extensions

Ryan Sullivant edited this page May 16, 2022 · 1 revision

Lambdas and Execution

  • Add body index to LambdaNodes so that we can order execution of loops when dealing with breaks/continues
  • Execution: Loop top interface needs special execution. We plan to store state info use_initial in LoopTopInterface node

Fixes and Extensions

  • The logic for determining if a Call without a FunctionDef should have a ret val is too simple. Currently, we check if the Call is on the RHS of an assignment. However, this does mean code like
  int func(x) {
     return sqrt(x);
  }

  int y = func(16);

breaks during LambdaExpressionPass. The call to sqrt() needs to have a ret val, but it is not on the RHS of an assignment. Add example C file

  • Loops at start of else body. The logic for gcc_ast_to_cast is too simple to handle this situation, and incorrectly attaches the loop to high in the CAST tree. The determination of what should fall in the else body needs to be more robust. Add example C file