forked from OSchip/llvm-project
Revert "Fix assertion failures on annot_* tokens in clang -E"
This is causing a failure in the msan buildbot that I am having trouble reproducing. Reverting until I can figure out what went wrong. llvm-svn: 200492
This commit is contained in:
parent
fe5ab2f5ba
commit
5eb7cb74a7
|
@ -342,7 +342,6 @@ void PrintPPOutputPPCallbacks::InclusionDirective(SourceLocation HashLoc,
|
|||
OS << "@import " << Imported->getFullModuleName() << ";"
|
||||
<< " /* clang -E: implicit import for \"" << File->getName() << "\" */";
|
||||
EmittedTokensOnThisLine = true;
|
||||
setEmittedDirectiveOnThisLine();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -658,9 +657,11 @@ static void PrintPreprocessedTokens(Preprocessor &PP, Token &Tok,
|
|||
// -traditional-cpp the lexer keeps /all/ whitespace, including comments.
|
||||
SourceLocation StartLoc = Tok.getLocation();
|
||||
Callbacks->MoveToLine(StartLoc.getLocWithOffset(Tok.getLength()));
|
||||
} else if (Tok.isAnnotation()) {
|
||||
// PrintPPOutputPPCallbacks handles producing appropriate output here.
|
||||
// Ignore this token entirely.
|
||||
} else if (Tok.is(tok::annot_module_include) ||
|
||||
Tok.is(tok::annot_module_begin) ||
|
||||
Tok.is(tok::annot_module_end)) {
|
||||
// PrintPPOutputPPCallbacks::InclusionDirective handles producing
|
||||
// appropriate output here. Ignore this token entirely.
|
||||
PP.Lex(Tok);
|
||||
continue;
|
||||
} else if (IdentifierInfo *II = Tok.getIdentifierInfo()) {
|
||||
|
|
|
@ -163,8 +163,8 @@ bool TokenConcatenation::AvoidConcat(const Token &PrevPrevTok,
|
|||
return false;
|
||||
|
||||
tok::TokenKind PrevKind = PrevTok.getKind();
|
||||
if (!PrevTok.isAnnotation() && PrevTok.getIdentifierInfo())
|
||||
PrevKind = tok::identifier; // Language keyword or named operator.
|
||||
if (PrevTok.getIdentifierInfo()) // Language keyword or named operator.
|
||||
PrevKind = tok::identifier;
|
||||
|
||||
// Look up information on when we should avoid concatenation with prevtok.
|
||||
unsigned ConcatInfo = TokenInfo[PrevKind];
|
||||
|
@ -212,7 +212,7 @@ bool TokenConcatenation::AvoidConcat(const Token &PrevPrevTok,
|
|||
|
||||
// In C++11, a string or character literal followed by an identifier is a
|
||||
// single token.
|
||||
if (!Tok.isAnnotation() && Tok.getIdentifierInfo())
|
||||
if (Tok.getIdentifierInfo())
|
||||
return true;
|
||||
|
||||
// A ud-suffix is an identifier. If the previous token ends with one, treat
|
||||
|
@ -225,9 +225,6 @@ bool TokenConcatenation::AvoidConcat(const Token &PrevPrevTok,
|
|||
if (Tok.is(tok::numeric_constant))
|
||||
return GetFirstChar(PP, Tok) != '.';
|
||||
|
||||
if (Tok.isAnnotation()) // token will be put on its own line.
|
||||
return false;
|
||||
|
||||
if (Tok.getIdentifierInfo() || Tok.is(tok::wide_string_literal) ||
|
||||
Tok.is(tok::utf8_string_literal) || Tok.is(tok::utf16_string_literal) ||
|
||||
Tok.is(tok::utf32_string_literal) || Tok.is(tok::wide_char_constant) ||
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
// empty
|
|
@ -1,4 +0,0 @@
|
|||
module a {
|
||||
header "a.h"
|
||||
export *
|
||||
}
|
|
@ -1,5 +0,0 @@
|
|||
// RUN: %clang_cc1 -E %s -fmodules -fmodules-cache-path=%t -I%S/Inputs | FileCheck %s
|
||||
// CHECK: @import a; /* clang -E: implicit import
|
||||
#include "a.h"
|
||||
// CHECK: #pragma clang __debug parser_crash
|
||||
#pragma clang __debug parser_crash
|
Loading…
Reference in New Issue