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 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits