diff options
Diffstat (limited to 'lib/Basic/Diagnostic.cpp')
-rw-r--r-- | lib/Basic/Diagnostic.cpp | 25 |
1 files changed, 6 insertions, 19 deletions
diff --git a/lib/Basic/Diagnostic.cpp b/lib/Basic/Diagnostic.cpp index 8065b2d..854c4c5 100644 --- a/lib/Basic/Diagnostic.cpp +++ b/lib/Basic/Diagnostic.cpp @@ -12,9 +12,11 @@ //===----------------------------------------------------------------------===// #include "clang/Basic/Diagnostic.h" +#include "clang/Basic/DiagnosticOptions.h" #include "clang/Basic/IdentifierTable.h" #include "clang/Basic/PartialDiagnostic.h" #include "llvm/ADT/SmallString.h" +#include "llvm/ADT/StringExtras.h" #include "llvm/Support/raw_ostream.h" #include "llvm/Support/CrashRecoveryContext.h" #include <cctype> @@ -36,9 +38,10 @@ static void DummyArgToStringFn(DiagnosticsEngine::ArgumentKind AK, intptr_t QT, DiagnosticsEngine::DiagnosticsEngine( const IntrusiveRefCntPtr<DiagnosticIDs> &diags, + DiagnosticOptions *DiagOpts, DiagnosticConsumer *client, bool ShouldOwnClient) - : Diags(diags), Client(client), OwnsDiagClient(ShouldOwnClient), - SourceMgr(0) { + : Diags(diags), DiagOpts(DiagOpts), Client(client), + OwnsDiagClient(ShouldOwnClient), SourceMgr(0) { ArgToStringFn = DummyArgToStringFn; ArgToStringCookie = 0; @@ -515,23 +518,7 @@ static void HandleOrdinalModifier(unsigned ValNo, // We could use text forms for the first N ordinals, but the numeric // forms are actually nicer in diagnostics because they stand out. - Out << ValNo; - - // It is critically important that we do this perfectly for - // user-written sequences with over 100 elements. - switch (ValNo % 100) { - case 11: - case 12: - case 13: - Out << "th"; return; - default: - switch (ValNo % 10) { - case 1: Out << "st"; return; - case 2: Out << "nd"; return; - case 3: Out << "rd"; return; - default: Out << "th"; return; - } - } + Out << ValNo << llvm::getOrdinalSuffix(ValNo); } |