clang側にも多少ターゲット情報の記述が必要
これも、なんでもかんでも適当に 32bit でお願いします…という気持ちがこめられている
ELVMTargetInfo(const llvm::Triple &Triple, const TargetOptions &)
: TargetInfo(Triple) {
BoolWidth = BoolAlign = 32;
CharWidth = CharAlign = 32;
HalfWidth = HalfAlign = 32;
IntWidth = IntAlign = 32;
LongWidth = LongAlign = 32;
LongLongWidth = LongLongAlign = 32;
LongWidth = LongAlign = PointerWidth = PointerAlign = 32;
SizeType = UnsignedLong;
PtrDiffType = SignedLong;
IntPtrType = SignedLong;
IntMaxType = SignedLong;
Int64Type = SignedLong;
FloatWidth = 32;
FloatAlign = 32;
DoubleWidth = 32;
DoubleAlign = 32;
LongDoubleWidth = 32;
LongDoubleAlign = 32;
FloatFormat = &llvm::APFloat::IEEEsingle();
DoubleFormat = &llvm::APFloat::IEEEsingle();
LongDoubleFormat = &llvm::APFloat::IEEEsingle();
RegParmMax = 0;
resetDataLayout("ELVM-e-m:e-p:32:32-i32:32-n32-S32");
MaxAtomicPromoteWidth = 32;
MaxAtomicInlineWidth = 32;
TLSSupported = false;
}