aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Sema/SemaAccess.cpp
diff options
context:
space:
mode:
authorVlad Serebrennikov <serebrennikov.vladislav@gmail.com>2025-05-01 17:03:47 +0400
committerGitHub <noreply@github.com>2025-05-01 17:03:47 +0400
commit001cc34275111df842edbaa874b7319eef930c81 (patch)
tree73c89d65330a850bc2a2b9718e5bdcc5c27c6e22 /clang/lib/Sema/SemaAccess.cpp
parenta6459debc06f9cb86940ff5cdae35a1f52e1ed19 (diff)
downloadllvm-001cc34275111df842edbaa874b7319eef930c81.zip
llvm-001cc34275111df842edbaa874b7319eef930c81.tar.gz
llvm-001cc34275111df842edbaa874b7319eef930c81.tar.bz2
[clang] Add scoped enum support to `StreamingDiagnostic` (#138089)
This patch adds templated `operator<<` for diagnostics that pass scoped enums, saving people from `llvm::to_underlying()` clutter on the side of emitting the diagnostic. This eliminates 80 out of 220 usages of `llvm::to_underlying()` in Clang. I also backported `std::is_scoped_enum_v` from C++23.
Diffstat (limited to 'clang/lib/Sema/SemaAccess.cpp')
-rw-r--r--clang/lib/Sema/SemaAccess.cpp9
1 files changed, 3 insertions, 6 deletions
diff --git a/clang/lib/Sema/SemaAccess.cpp b/clang/lib/Sema/SemaAccess.cpp
index b77cbdb..890df09 100644
--- a/clang/lib/Sema/SemaAccess.cpp
+++ b/clang/lib/Sema/SemaAccess.cpp
@@ -1670,24 +1670,21 @@ Sema::AccessResult Sema::CheckConstructorAccess(SourceLocation UseLoc,
case InitializedEntity::EK_Base:
PD = PDiag(diag::err_access_base_ctor);
PD << Entity.isInheritedVirtualBase()
- << Entity.getBaseSpecifier()->getType()
- << llvm::to_underlying(getSpecialMember(Constructor));
+ << Entity.getBaseSpecifier()->getType() << getSpecialMember(Constructor);
break;
case InitializedEntity::EK_Member:
case InitializedEntity::EK_ParenAggInitMember: {
const FieldDecl *Field = cast<FieldDecl>(Entity.getDecl());
PD = PDiag(diag::err_access_field_ctor);
- PD << Field->getType()
- << llvm::to_underlying(getSpecialMember(Constructor));
+ PD << Field->getType() << getSpecialMember(Constructor);
break;
}
case InitializedEntity::EK_LambdaCapture: {
StringRef VarName = Entity.getCapturedVarName();
PD = PDiag(diag::err_access_lambda_capture);
- PD << VarName << Entity.getType()
- << llvm::to_underlying(getSpecialMember(Constructor));
+ PD << VarName << Entity.getType() << getSpecialMember(Constructor);
break;
}