r285950 - Instead of resetting the pointer, or releasing it which was the previous
Chandler Carruth via cfe-commits
cfe-commits at lists.llvm.org
Thu Nov 3 11:03:15 PDT 2016
Author: chandlerc
Date: Thu Nov 3 13:03:14 2016
New Revision: 285950
URL: http://llvm.org/viewvc/llvm-project?rev=285950&view=rev
Log:
Instead of resetting the pointer, or releasing it which was the previous
code, let's just assert that the DiagonsticEngine doesn't own the client
because our constructor took ownership of it and has a std::unique_ptr
that handles deleting it. This seems much more clear -- the release was
harmless but confusing as if there were some memory there it would have
leaked, and the reset was harmless but confusing as if there were some
memory there it would have been double-freed. But in both cases there
was nothing there.
Modified:
cfe/trunk/lib/Frontend/VerifyDiagnosticConsumer.cpp
Modified: cfe/trunk/lib/Frontend/VerifyDiagnosticConsumer.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/VerifyDiagnosticConsumer.cpp?rev=285950&r1=285949&r2=285950&view=diff
==============================================================================
--- cfe/trunk/lib/Frontend/VerifyDiagnosticConsumer.cpp (original)
+++ cfe/trunk/lib/Frontend/VerifyDiagnosticConsumer.cpp Thu Nov 3 13:03:14 2016
@@ -43,7 +43,8 @@ VerifyDiagnosticConsumer::~VerifyDiagnos
assert(!CurrentPreprocessor && "CurrentPreprocessor should be invalid!");
SrcManager = nullptr;
CheckDiagnostics();
- Diags.takeClient().reset();
+ assert(!Diags.ownsClient() &&
+ "The VerifyDiagnosticConsumer takes over ownership of the client!");
}
#ifndef NDEBUG
More information about the cfe-commits
mailing list