aboutsummaryrefslogtreecommitdiff
path: root/backend/lib/MIR/MIRMetadataTextParser.cpp
diff options
context:
space:
mode:
authorRichard-Qin-X <richard.qin.001@gmail.com>2026-08-11 17:37:42 +0800
committerRichard-Qin-X <richard.qin.001@gmail.com>2026-08-11 17:37:42 +0800
commit6a7b083f322f4ac47e58cbf9d4d5fd4d1f6fecd0 (patch)
treef363c502f0e2b9cda2f12928049275a433db6ad4 /backend/lib/MIR/MIRMetadataTextParser.cpp
parentadcf8c9b1bd1b47e00bf859693112cea1f7e8c9f (diff)
downloadrcc-project-6a7b083f322f4ac47e58cbf9d4d5fd4d1f6fecd0.tar.gz
rcc-project-6a7b083f322f4ac47e58cbf9d4d5fd4d1f6fecd0.tar.xz
[MIR] Accept fixed-baseline LLVM syntax
Diffstat (limited to 'backend/lib/MIR/MIRMetadataTextParser.cpp')
-rw-r--r--backend/lib/MIR/MIRMetadataTextParser.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/backend/lib/MIR/MIRMetadataTextParser.cpp b/backend/lib/MIR/MIRMetadataTextParser.cpp
index 51b039f..7875b06 100644
--- a/backend/lib/MIR/MIRMetadataTextParser.cpp
+++ b/backend/lib/MIR/MIRMetadataTextParser.cpp
@@ -74,11 +74,11 @@ Expected<MachineDIExpression> MetadataTextParser::parseExpression() {
while (!at(MITokenKind::RightParen)) {
if (at(MITokenKind::Identifier)) {
const auto Opcode = parseDIExpressionOpcodeName(token().stringValue());
- if (!Opcode) {
- return makeUnexpected(ErrorCode::ParseError, "unknown DIExpression opcode '" +
- std::string(token().stringValue()) + "'");
- }
- Elements.push_back(*Opcode);
+ const auto Encoding = parseDIExpressionAttributeEncodingName(token().stringValue());
+ if (!Opcode && !Encoding)
+ return makeUnexpected(ErrorCode::ParseError,
+ invalidDIExpressionElementMessage(token().stringValue()));
+ Elements.push_back(Opcode ? *Opcode : *Encoding);
advance();
} else if (at(MITokenKind::IntegerLiteral)) {
std::int64_t Signed = 0;