我正在使用 LLVM IR 生成一些结构数据。
例如:
struct mystruct {int a:1; int b:2; unsigned long c} = {{1, 2, 3}};
我阅读了文档并尝试了演示,似乎 API 需要用户自己处理填充和值组合。
有没有办法像这样更简单地创建结构:
fields.push_back(Type::getIntNTy(context, 1));
fields.push_back(Type::getIntNTy(context, 2));
fields.push_back(Type::getIntNTy(context, 64));
structTy.setBody(fields, false /* isPacked*/);
布局工作真的很难,而且很可能会导致错误。组合初始化器的值也很困难。
据我了解,如果我告诉 llvm API 结构没有打包,它应该自动处理填充,对吧?
任何意见?