mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-17 00:36:34 +00:00
parent
b1cd3cb3f4
commit
d71ee7d230
@ -4010,7 +4010,7 @@ LangOptions getFormattingLangOpts(const FormatStyle &Style) {
|
||||
|
||||
switch (Style.Language) {
|
||||
case FormatStyle::LK_C:
|
||||
LangOpts.C17 = 1;
|
||||
LangOpts.C11 = 1;
|
||||
break;
|
||||
case FormatStyle::LK_Cpp:
|
||||
case FormatStyle::LK_ObjC:
|
||||
|
@ -44,7 +44,7 @@ static SmallVector<StringRef> CppNonKeywordTypes = {
|
||||
bool FormatToken::isTypeName(const LangOptions &LangOpts) const {
|
||||
if (is(TT_TypeName) || Tok.isSimpleTypeSpecifier(LangOpts))
|
||||
return true;
|
||||
return (LangOpts.CXXOperatorNames || LangOpts.C17) && is(tok::identifier) &&
|
||||
return (LangOpts.CXXOperatorNames || LangOpts.C11) && is(tok::identifier) &&
|
||||
std::binary_search(CppNonKeywordTypes.begin(),
|
||||
CppNonKeywordTypes.end(), TokenText);
|
||||
}
|
||||
|
@ -129,7 +129,6 @@ public:
|
||||
: Style(Style), Line(Line), CurrentToken(Line.First), AutoFound(false),
|
||||
IsCpp(Style.isCpp()), LangOpts(getFormattingLangOpts(Style)),
|
||||
Keywords(Keywords), Scopes(Scopes), TemplateDeclarationDepth(0) {
|
||||
assert(IsCpp == (LangOpts.CXXOperatorNames || LangOpts.C17));
|
||||
Contexts.push_back(Context(tok::unknown, 1, /*IsExpression=*/false));
|
||||
resetTokenMetadata();
|
||||
}
|
||||
@ -3847,7 +3846,7 @@ static bool isFunctionDeclarationName(const LangOptions &LangOpts,
|
||||
};
|
||||
|
||||
const auto *Next = Current.Next;
|
||||
const bool IsCpp = LangOpts.CXXOperatorNames || LangOpts.C17;
|
||||
const bool IsCpp = LangOpts.CXXOperatorNames || LangOpts.C11;
|
||||
|
||||
// Find parentheses of parameter list.
|
||||
if (Current.is(tok::kw_operator)) {
|
||||
|
@ -224,9 +224,7 @@ class TokenAnnotator {
|
||||
public:
|
||||
TokenAnnotator(const FormatStyle &Style, const AdditionalKeywords &Keywords)
|
||||
: Style(Style), IsCpp(Style.isCpp()),
|
||||
LangOpts(getFormattingLangOpts(Style)), Keywords(Keywords) {
|
||||
assert(IsCpp == (LangOpts.CXXOperatorNames || LangOpts.C17));
|
||||
}
|
||||
LangOpts(getFormattingLangOpts(Style)), Keywords(Keywords) {}
|
||||
|
||||
/// Adapts the indent levels of comment lines to the indent of the
|
||||
/// subsequent line.
|
||||
|
@ -167,9 +167,7 @@ UnwrappedLineParser::UnwrappedLineParser(
|
||||
? IG_Rejected
|
||||
: IG_Inited),
|
||||
IncludeGuardToken(nullptr), FirstStartColumn(FirstStartColumn),
|
||||
Macros(Style.Macros, SourceMgr, Style, Allocator, IdentTable) {
|
||||
assert(IsCpp == (LangOpts.CXXOperatorNames || LangOpts.C17));
|
||||
}
|
||||
Macros(Style.Macros, SourceMgr, Style, Allocator, IdentTable) {}
|
||||
|
||||
void UnwrappedLineParser::reset() {
|
||||
PPBranchLevel = -1;
|
||||
|
@ -3935,6 +3935,12 @@ TEST_F(TokenAnnotatorTest, UserDefinedConversionFunction) {
|
||||
EXPECT_TOKEN(Tokens[5], tok::l_paren, TT_FunctionDeclarationLParen);
|
||||
}
|
||||
|
||||
TEST_F(TokenAnnotatorTest, UTF8StringLiteral) {
|
||||
auto Tokens = annotate("return u8\"foo\";", getLLVMStyle(FormatStyle::LK_C));
|
||||
ASSERT_EQ(Tokens.size(), 4u) << Tokens;
|
||||
EXPECT_TOKEN(Tokens[1], tok::utf8_string_literal, TT_Unknown);
|
||||
}
|
||||
|
||||
} // namespace
|
||||
} // namespace format
|
||||
} // namespace clang
|
||||
|
Loading…
x
Reference in New Issue
Block a user