[mlir][Parser] Fix crash when resolving invalid operands with missing location #128163
+14
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When
resolveOperandsreports an error and no validSMLocwas provided, report the error at the beginning of the op instead of crashing.E.g., this is currently the case when parsing the following op with a type but without any operands:
Reported error (with this PR):
In the ODS-generated C++, the
SMLocis populated when parsing the optional group containing$args. However, this group is missing in the test case.There are likely additional hand-written parsers that suffer from the same problem.
Note: I tried emitting a second
SMLocfor the optional type group in theOpFormatGen.cpp, but this adds quite a bit of complexity in the code base for little improvement in user experience.