Question

Some system libraries like malloc strlen want or return size_t as parameter.

  • What is the right choice in LLVM IR to interact with these functions?
  • Is the selection the task for the compiler?
  • Does LLVM IR have a size_t type?
Was it helpful?

Solution

At the LLVM level, size_t doesn't exist. It is a construct for the benefit of the developer that is typedef'd to a native type. The native types have a fixed size for the target architecture and that is how the compiler represents them in LLVM bit code. So on x86, size_t might by viewed by the front end as unsigned long, which it then writes to LLVM as i32 (since LLVM assembly doesn't have an unsigned type).

OTHER TIPS

You can use size_t in llvm, it is a valid type to be used as normal.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top