aboutsummaryrefslogtreecommitdiff
path: root/backend/lib/MIR/MIParser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'backend/lib/MIR/MIParser.cpp')
-rw-r--r--backend/lib/MIR/MIParser.cpp18
1 files changed, 6 insertions, 12 deletions
diff --git a/backend/lib/MIR/MIParser.cpp b/backend/lib/MIR/MIParser.cpp
index f634119..3748187 100644
--- a/backend/lib/MIR/MIParser.cpp
+++ b/backend/lib/MIR/MIParser.cpp
@@ -621,16 +621,12 @@ bool MIParser::Impl::parseScalarLowLevelType(const MIToken &TypeToken, LLT &Resu
Created = LLT::makeFloat(FloatSemantics::BFloat);
break;
case ScalarKind::Pointer:
- if (Context.PointerSizeInBits) {
- auto PointerSize = Context.PointerSizeInBits(static_cast<std::uint32_t>(Value));
- if (!PointerSize)
- return importError(TypeToken, PointerSize.error());
- Created = LLT::makePointer(Value, *PointerSize);
- break;
- }
- if (Context.DefaultPointerSizeInBits == 0)
+ if (!Context.PointerSizeInBits)
return fail(TypeToken, "pointer low-level type requires an explicit pointer size");
- Created = LLT::makePointer(Value, Context.DefaultPointerSizeInBits);
+ if (auto PointerSize = Context.PointerSizeInBits(static_cast<std::uint32_t>(Value)))
+ Created = LLT::makePointer(Value, *PointerSize);
+ else
+ return importError(TypeToken, PointerSize.error());
break;
}
if (!Created)
@@ -1722,9 +1718,7 @@ bool MIParser::Impl::parseMemoryBase(MemoryBase &Result, std::int64_t &Offset) {
advance();
break;
case MITokenKind::QuotedIRValue: {
- LLVMConstantSyntaxOptions ConstantOptions;
- ConstantOptions.DefaultPointerSizeInBits = Context.DefaultPointerSizeInBits;
- auto Constant = parseLLVMConstant(BaseToken.stringValue(), ConstantOptions);
+ auto Constant = parseLLVMConstant(BaseToken.stringValue());
if (!Constant)
return importError(BaseToken, Constant.error());
auto Base = MemoryBase::irConstant(std::move(*Constant));