3
我使用LLVM IR生成一些結構數據。我是否需要自己計算填充以構造StructType?
例如:
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該結構未打包,它應該自動處理填充,對吧?
有何評論?