summaryrefslogtreecommitdiffstats
path: root/clang/lib/Basic/Diagnostic.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/Basic/Diagnostic.cpp')
-rw-r--r--clang/lib/Basic/Diagnostic.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/clang/lib/Basic/Diagnostic.cpp b/clang/lib/Basic/Diagnostic.cpp
index e83d4f37415..164ac1b6364 100644
--- a/clang/lib/Basic/Diagnostic.cpp
+++ b/clang/lib/Basic/Diagnostic.cpp
@@ -129,7 +129,7 @@ Diagnostic::Diagnostic(DiagnosticClient *client) : Client(client) {
NumDiagnostics = 0;
NumErrors = 0;
CustomDiagInfo = 0;
- NumDiagArgs = -1;
+ CurDiagID = ~0U;
}
Diagnostic::~Diagnostic() {
@@ -215,7 +215,9 @@ Diagnostic::Level Diagnostic::getDiagnosticLevel(unsigned DiagID) const {
/// ProcessDiag - This is the method used to report a diagnostic that is
/// finally fully formed.
-void Diagnostic::ProcessDiag(const DiagnosticInfo &Info) {
+void Diagnostic::ProcessDiag() {
+ DiagnosticInfo Info(this);
+
// Figure out the diagnostic level of this message.
Diagnostic::Level DiagLevel = getDiagnosticLevel(Info.getID());
@@ -347,25 +349,25 @@ FormatDiagnostic(llvm::SmallVectorImpl<char> &OutStr) const {
unsigned StrNo = *DiagStr++ - '0';
switch (getArgKind(StrNo)) {
- case DiagnosticInfo::ak_std_string: {
+ case Diagnostic::ak_std_string: {
const std::string &S = getArgStdStr(StrNo);
assert(ModifierLen == 0 && "No modifiers for strings yet");
OutStr.append(S.begin(), S.end());
break;
}
- case DiagnosticInfo::ak_c_string: {
+ case Diagnostic::ak_c_string: {
const char *S = getArgCStr(StrNo);
assert(ModifierLen == 0 && "No modifiers for strings yet");
OutStr.append(S, S + strlen(S));
break;
}
- case DiagnosticInfo::ak_identifierinfo: {
+ case Diagnostic::ak_identifierinfo: {
const IdentifierInfo *II = getArgIdentifier(StrNo);
assert(ModifierLen == 0 && "No modifiers for strings yet");
OutStr.append(II->getName(), II->getName() + II->getLength());
break;
}
- case DiagnosticInfo::ak_sint: {
+ case Diagnostic::ak_sint: {
int Val = getArgSInt(StrNo);
if (ModifierIs(Modifier, ModifierLen, "select")) {
@@ -380,7 +382,7 @@ FormatDiagnostic(llvm::SmallVectorImpl<char> &OutStr) const {
}
break;
}
- case DiagnosticInfo::ak_uint: {
+ case Diagnostic::ak_uint: {
unsigned Val = getArgUInt(StrNo);
if (ModifierIs(Modifier, ModifierLen, "select")) {
OpenPOWER on IntegriCloud