TableGen: AsmMatcher diagnostics preference detail.
authorJim Grosbach <grosbach@apple.com>
Tue, 26 Jun 2012 22:58:01 +0000 (22:58 +0000)
committerJim Grosbach <grosbach@apple.com>
Tue, 26 Jun 2012 22:58:01 +0000 (22:58 +0000)
Don't override a custom diagnostic w/ a generic InvalidOperand, all else
being equal.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159238 91177308-0d34-0410-b5e6-96231b3b80d8

utils/TableGen/AsmMatcherEmitter.cpp

index fb8d7048143ba0f113c1aded4845a93dbcdf5a4b..f5e094e486a8a5480b981d178694e4446086a678 100644 (file)
@@ -2663,7 +2663,9 @@ void AsmMatcherEmitter::run(raw_ostream &OS) {
   OS << "      if (!HadMatchOtherThanPredicate &&\n";
   OS << "          (it == MnemonicRange.first || ErrorInfo <= i+1)) {\n";
   OS << "        ErrorInfo = i+1;\n";
-  OS << "        RetCode = Diag;\n";
+  OS << "        // InvalidOperand is the default. Prefer specificity.\n";
+  OS << "        if (Diag != Match_InvalidOperand)\n";
+  OS << "          RetCode = Diag;\n";
   OS << "      }\n";
   OS << "      // Otherwise, just reject this instance of the mnemonic.\n";
   OS << "      OperandsValid = false;\n";