@@ -3388,20 +3388,27 @@ class Serializer::DeclSerializer : public DeclVisitor<DeclSerializer> {
33883388
33893389 SmallVector<DeclID, 8 > relations;
33903390 for (auto &rel : group->getHigherThan ()) {
3391- assert (rel.Group && " Undiagnosed invalid precedence group!" );
3392- relations.push_back (S.addDeclRef (rel.Group ));
3391+ if (rel.Group ) {
3392+ relations.push_back (S.addDeclRef (rel.Group ));
3393+ } else if (!S.allowCompilerErrors ()) {
3394+ assert (rel.Group && " Undiagnosed invalid precedence group!" );
3395+ }
33933396 }
3397+
3398+ size_t numHigher = relations.size ();
33943399 for (auto &rel : group->getLowerThan ()) {
3395- assert (rel.Group && " Undiagnosed invalid precedence group!" );
3396- relations.push_back (S.addDeclRef (rel.Group ));
3400+ if (rel.Group ) {
3401+ relations.push_back (S.addDeclRef (rel.Group ));
3402+ } else if (!S.allowCompilerErrors ()) {
3403+ assert (rel.Group && " Undiagnosed invalid precedence group!" );
3404+ }
33973405 }
33983406
33993407 unsigned abbrCode = S.DeclTypeAbbrCodes [PrecedenceGroupLayout::Code];
34003408 PrecedenceGroupLayout::emitRecord (S.Out , S.ScratchRecord , abbrCode,
34013409 nameID, contextID.getOpaqueValue (),
34023410 associativity, group->isAssignment (),
3403- group->getHigherThan ().size (),
3404- relations);
3411+ numHigher, relations);
34053412 }
34063413
34073414 void visitInfixOperatorDecl (const InfixOperatorDecl *op) {
0 commit comments