diff --git a/utils/TableGen/ClangAttrEmitter.cpp b/utils/TableGen/ClangAttrEmitter.cpp
index 6dc391122eb7e6f92c7b13b7b7747392312fa397..7aa8bdc781e831b2115cca65615ff96638f6779c 100644
--- a/utils/TableGen/ClangAttrEmitter.cpp
+++ b/utils/TableGen/ClangAttrEmitter.cpp
@@ -3167,7 +3167,9 @@ emitAttributeMatchRules(PragmaClangAttributeSupport &PragmaAttributeSupport,
     }
     OS << ";\n";
   }
-  OS << "  }\n}\n\n";
+  OS << "  }\n";
+  OS << "  llvm_unreachable(\"Invalid match rule\");\n";
+  OS << "}\n\n";
 }
 
 static void GenerateDefaultLangOptRequirements(raw_ostream &OS) {