diff options
Diffstat (limited to 'contrib/llvm/tools/clang/lib/Lex/TokenConcatenation.cpp')
| -rw-r--r-- | contrib/llvm/tools/clang/lib/Lex/TokenConcatenation.cpp | 10 | 
1 files changed, 8 insertions, 2 deletions
diff --git a/contrib/llvm/tools/clang/lib/Lex/TokenConcatenation.cpp b/contrib/llvm/tools/clang/lib/Lex/TokenConcatenation.cpp index d1facd9c6879..ec73479cb54f 100644 --- a/contrib/llvm/tools/clang/lib/Lex/TokenConcatenation.cpp +++ b/contrib/llvm/tools/clang/lib/Lex/TokenConcatenation.cpp @@ -99,10 +99,14 @@ TokenConcatenation::TokenConcatenation(Preprocessor &pp) : PP(pp) {      TokenInfo[tok::utf32_char_constant ] |= aci_custom;    } -  // These tokens have custom code in C++1z mode. -  if (PP.getLangOpts().CPlusPlus1z) +  // These tokens have custom code in C++17 mode. +  if (PP.getLangOpts().CPlusPlus17)      TokenInfo[tok::utf8_char_constant] |= aci_custom; +  // These tokens have custom code in C++2a mode. +  if (PP.getLangOpts().CPlusPlus2a) +    TokenInfo[tok::lessequal ] |= aci_custom_firstchar; +    // These tokens change behavior if followed by an '='.    TokenInfo[tok::amp         ] |= aci_avoid_equal;           // &=    TokenInfo[tok::plus        ] |= aci_avoid_equal;           // += @@ -283,5 +287,7 @@ bool TokenConcatenation::AvoidConcat(const Token &PrevPrevTok,      return FirstChar == '#' || FirstChar == '@' || FirstChar == '%';    case tok::arrow:           // ->*      return PP.getLangOpts().CPlusPlus && FirstChar == '*'; +  case tok::lessequal:       // <=> (C++2a) +    return PP.getLangOpts().CPlusPlus2a && FirstChar == '>';    }  }  | 
