Skip to content

Commit df27117

Browse files
committed
[CIR] Fix parsing of CIR dialect's struct type
The parsing function wasn't considering the commas separating the types inside the angle brackets, that are used by printing. Related to llvm#9.
1 parent a5b975e commit df27117

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

clang/lib/CIR/Dialect/IR/CIRTypes.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,12 @@ Type StructType::parse(mlir::AsmParser &parser) {
7676
if (parser.parseString(&typeName))
7777
return Type();
7878
llvm::SmallVector<Type> members;
79-
Type nextMember;
80-
while (mlir::succeeded(parser.parseType(nextMember)))
79+
while (mlir::succeeded(parser.parseOptionalComma())) {
80+
Type nextMember;
81+
if (parser.parseType(nextMember))
82+
return Type();
8183
members.push_back(nextMember);
84+
}
8285
if (parser.parseGreater())
8386
return Type();
8487
return get(parser.getContext(), members, typeName);

0 commit comments

Comments
 (0)