diff options
Diffstat (limited to 'clang/lib/Frontend/VerifyDiagnosticConsumer.cpp')
| -rw-r--r-- | clang/lib/Frontend/VerifyDiagnosticConsumer.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp b/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp index 0221a5550c0..407c1d32972 100644 --- a/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp +++ b/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp @@ -491,11 +491,12 @@ static bool ParseDirective(StringRef S, ExpectedData *ED, SourceManager &SM, } // Construct new directive. - Directive *D = Directive::create(RegexKind, Pos, ExpectedLoc, Text, - Min, Max); + std::unique_ptr<Directive> D( + Directive::create(RegexKind, Pos, ExpectedLoc, Text, Min, Max)); + std::string Error; if (D->isValid(Error)) { - DL->push_back(D); + DL->push_back(D.release()); FoundDirective = true; } else { Diags.Report(Pos.getLocWithOffset(ContentBegin-PH.Begin), @@ -880,5 +881,6 @@ Directive *Directive::create(bool RegexKind, SourceLocation DirectiveLoc, } } - return new RegexDirective(DirectiveLoc, DiagnosticLoc, Text, Min, Max, RegexStr); + return new RegexDirective(DirectiveLoc, DiagnosticLoc, Text, Min, Max, + RegexStr); } |

