From f21be143344d0663a1706c9f4b3feb59406e6dba Mon Sep 17 00:00:00 2001 From: Kristof Umann Date: Thu, 27 Sep 2018 12:40:16 +0000 Subject: [PATCH] [Lex] TokenConcatenation now takes const Preprocessor Differential Revision: https://reviews.llvm.org/D52502 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@343204 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Lex/TokenConcatenation.h | 4 ++-- lib/Lex/TokenConcatenation.cpp | 4 ++-- .../Checkers/UninitializedObject/UninitializedObject.h | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/include/clang/Lex/TokenConcatenation.h b/include/clang/Lex/TokenConcatenation.h index 60c182b509..3199e36f0d 100644 --- a/include/clang/Lex/TokenConcatenation.h +++ b/include/clang/Lex/TokenConcatenation.h @@ -29,7 +29,7 @@ namespace clang { /// and ")" next to each other is safe. /// class TokenConcatenation { - Preprocessor &PP; + const Preprocessor &PP; enum AvoidConcatInfo { /// By default, a token never needs to avoid concatenation. Most tokens @@ -56,7 +56,7 @@ namespace clang { /// method. char TokenInfo[tok::NUM_TOKENS]; public: - TokenConcatenation(Preprocessor &PP); + TokenConcatenation(const Preprocessor &PP); bool AvoidConcat(const Token &PrevPrevTok, const Token &PrevTok, diff --git a/lib/Lex/TokenConcatenation.cpp b/lib/Lex/TokenConcatenation.cpp index ec73479cb5..f810c28ccd 100644 --- a/lib/Lex/TokenConcatenation.cpp +++ b/lib/Lex/TokenConcatenation.cpp @@ -67,7 +67,7 @@ bool TokenConcatenation::IsIdentifierStringPrefix(const Token &Tok) const { return IsStringPrefix(StringRef(PP.getSpelling(Tok)), LangOpts.CPlusPlus11); } -TokenConcatenation::TokenConcatenation(Preprocessor &pp) : PP(pp) { +TokenConcatenation::TokenConcatenation(const Preprocessor &pp) : PP(pp) { memset(TokenInfo, 0, sizeof(TokenInfo)); // These tokens have custom code in AvoidConcat. @@ -126,7 +126,7 @@ TokenConcatenation::TokenConcatenation(Preprocessor &pp) : PP(pp) { /// GetFirstChar - Get the first character of the token \arg Tok, /// avoiding calls to getSpelling where possible. -static char GetFirstChar(Preprocessor &PP, const Token &Tok) { +static char GetFirstChar(const Preprocessor &PP, const Token &Tok) { if (IdentifierInfo *II = Tok.getIdentifierInfo()) { // Avoid spelling identifiers, the most common form of token. return II->getNameStart()[0]; diff --git a/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObject.h b/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObject.h index d10b862ea0..828955dc10 100644 --- a/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObject.h +++ b/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObject.h @@ -79,9 +79,9 @@ class FieldNode { protected: const FieldRegion *FR; - /// FieldNodes are never meant to be created on the heap, see - /// FindUninitializedFields::addFieldToUninits(). - /* non-virtual */ ~FieldNode() = default; + // TODO: This destructor shouldn't be virtual, but breaks buildbots with + // -Werror -Wnon-virtual-dtor. + virtual ~FieldNode() = default; public: FieldNode(const FieldRegion *FR) : FR(FR) {} -- 2.50.1