@@ -160,7 +160,9 @@ void addCxxRules(clang::ASTContext &ctx, const clang::NamespaceDecl *rules) {
160160 }
161161 for (auto decl : ns->decls ()) {
162162 auto named = llvm::cast<clang::NamedDecl>(decl);
163- assert (isRuleName (named->getName ()) && " declaration is not a rule" );
163+ if (!isRuleName (named->getName ())) {
164+ llvm::report_fatal_error (" declaration is not a rule" );
165+ }
164166 addRule (ctx, dir.str (), named->getName ().str (), named);
165167 }
166168 }
@@ -172,7 +174,9 @@ void addCRule(clang::ASTContext &ctx, const clang::NamedDecl *decl) {
172174 return ;
173175 }
174176 auto [dir, name] = identifier.rsplit (' _' );
175- assert (isRuleName (name) && " declaration is not a rule" );
177+ if (!isRuleName (name)) {
178+ llvm::report_fatal_error (" declaration is not a rule" );
179+ }
176180 addRule (ctx, dir.str (), name.str (), decl);
177181}
178182
@@ -197,8 +201,9 @@ ExprMatch findExpr(const clang::Expr *use) {
197201 use->dump (llvm::errs (), sema_->Context );
198202 it->second .decl ->dump (llvm::errs ());
199203 best.rule_decl ->decl ->dump (llvm::errs ());
204+ llvm::report_fatal_error (
205+ " use matches several rules, none more specialized" );
200206 }
201- assert (better && " use matches several rules, none more specialized" );
202207 if (better != it->second .decl ) {
203208 continue ;
204209 }
@@ -235,7 +240,10 @@ TypeRuleMatch findType(clang::QualType use) {
235240 if (match->depth == best.match .depth ) {
236241 auto better = AstMatcher::MoreSpecializedType (*sema_, it->second .decl ,
237242 best.rule_decl ->decl );
238- assert (better && " type matches several rules, none more specialized" );
243+ if (!better) {
244+ llvm::report_fatal_error (
245+ " type matches several rules, none more specialized" );
246+ }
239247 if (better != it->second .decl ) {
240248 continue ;
241249 }
0 commit comments