[clang] [Clang][Sema] Diagnose friend declarations with enum elaborated-type-specifier in all language modes (PR #80171)
via cfe-commits
cfe-commits at lists.llvm.org
Wed Feb 7 10:00:26 PST 2024
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff 7718ac38a0c23597d7d02f0022eb89afe6d1b35f cb48321729a52d8883874baa85de48c40b8693cb -- clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.type.elab/p4.cpp clang/include/clang/Parse/Parser.h clang/include/clang/Sema/DeclSpec.h clang/include/clang/Sema/Sema.h clang/lib/Parse/ParseTentative.cpp clang/lib/Sema/DeclSpec.cpp clang/lib/Sema/SemaDecl.cpp clang/lib/Sema/SemaDeclCXX.cpp clang/lib/Sema/SemaTemplateInstantiateDecl.cpp clang/test/CXX/dcl.dcl/dcl.spec/dcl.type/dcl.type.elab/p3.cpp clang/test/CXX/drs/dr16xx.cpp clang/test/CXX/drs/dr23xx.cpp clang/test/CXX/temp/temp.decls/temp.class/temp.mem.enum/p1.cpp clang/test/FixIt/fixit-c++11.cpp clang/test/Parser/cxx-decl.cpp clang/test/Parser/cxx0x-decl.cpp clang/test/SemaCXX/cxx98-compat.cpp clang/test/SemaCXX/enum-scoped.cpp
``````````
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/clang/include/clang/Parse/Parser.h b/clang/include/clang/Parse/Parser.h
index 8b8646d121..da18cf88ed 100644
--- a/clang/include/clang/Parse/Parser.h
+++ b/clang/include/clang/Parse/Parser.h
@@ -2552,10 +2552,10 @@ private:
/// Starting with a scope specifier, identifier, or
/// template-id that refers to the current class, determine whether
/// this is a constructor declarator.
- bool
- isConstructorDeclarator(bool Unqualified, bool DeductionGuide = false,
- DeclSpec::FriendSpecified IsFriend = DeclSpec::FriendSpecified::No,
- const ParsedTemplateInfo *TemplateInfo = nullptr);
+ bool isConstructorDeclarator(
+ bool Unqualified, bool DeductionGuide = false,
+ DeclSpec::FriendSpecified IsFriend = DeclSpec::FriendSpecified::No,
+ const ParsedTemplateInfo *TemplateInfo = nullptr);
/// Specifies the context in which type-id/expression
/// disambiguation will occur.
diff --git a/clang/include/clang/Sema/DeclSpec.h b/clang/include/clang/Sema/DeclSpec.h
index 8f8f6e2b08..3ea08ccf98 100644
--- a/clang/include/clang/Sema/DeclSpec.h
+++ b/clang/include/clang/Sema/DeclSpec.h
@@ -346,10 +346,7 @@ public:
// FIXME: Attributes should be included here.
};
- enum FriendSpecified : bool {
- No,
- Yes
- };
+ enum FriendSpecified : bool { No, Yes };
private:
// storage-class-specifier
@@ -471,9 +468,9 @@ public:
TypeSpecPipe(false), TypeSpecSat(false), ConstrainedAuto(false),
TypeQualifiers(TQ_unspecified), FS_inline_specified(false),
FS_forceinline_specified(false), FS_virtual_specified(false),
- FS_noreturn_specified(false),
- FriendSpecifiedFirst(false), ConstexprSpecifier(static_cast<unsigned>(
- ConstexprSpecKind::Unspecified)),
+ FS_noreturn_specified(false), FriendSpecifiedFirst(false),
+ ConstexprSpecifier(
+ static_cast<unsigned>(ConstexprSpecKind::Unspecified)),
Attrs(attrFactory), writtenBS(), ObjCQualifiers(nullptr) {}
// storage-class-specifier
diff --git a/clang/lib/Parse/ParseTentative.cpp b/clang/lib/Parse/ParseTentative.cpp
index a4f6498754..47c85030f4 100644
--- a/clang/lib/Parse/ParseTentative.cpp
+++ b/clang/lib/Parse/ParseTentative.cpp
@@ -79,9 +79,9 @@ bool Parser::isCXXDeclarationStatement(
getCurScope(), *II, Tok.getLocation(), SS, /*Template=*/nullptr);
if (Actions.isCurrentClassName(*II, getCurScope(), &SS) ||
isDeductionGuide) {
- if (isConstructorDeclarator(/*Unqualified=*/SS.isEmpty(),
- isDeductionGuide,
- /*IsFriend=*/DeclSpec::FriendSpecified::No))
+ if (isConstructorDeclarator(
+ /*Unqualified=*/SS.isEmpty(), isDeductionGuide,
+ /*IsFriend=*/DeclSpec::FriendSpecified::No))
return true;
} else if (SS.isNotEmpty()) {
// If the scope is not empty, it could alternatively be something like
``````````
</details>
https://github.com/llvm/llvm-project/pull/80171
More information about the cfe-commits
mailing list