aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Sema/SemaAccess.cpp
diff options
context:
space:
mode:
authorYounan Zhang <zyn7109@gmail.com>2025-03-17 16:53:57 +0800
committerGitHub <noreply@github.com>2025-03-17 16:53:57 +0800
commitd9110858ee938db424887cd3435488525dd632cb (patch)
tree9c76bb899b12c77d2e928e2c193eed157e4a0157 /clang/lib/Sema/SemaAccess.cpp
parenta10e1e0135970861d3fd2f742e3628fe94e00af4 (diff)
downloadllvm-d9110858ee938db424887cd3435488525dd632cb.zip
llvm-d9110858ee938db424887cd3435488525dd632cb.tar.gz
llvm-d9110858ee938db424887cd3435488525dd632cb.tar.bz2
[Clang] Fix an incorrect assumption on getTemplatedDecl() (#131559)
Since a68d20e98, we've been calling HandleDelayedAccessCheck() for concept declarations when the declaration contains invalid member accesses. However, a concept declaration is TemplateDecl such that doesn't contain any TemplatedDecl. Fixes https://github.com/llvm/llvm-project/issues/131530
Diffstat (limited to 'clang/lib/Sema/SemaAccess.cpp')
-rw-r--r--clang/lib/Sema/SemaAccess.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaAccess.cpp b/clang/lib/Sema/SemaAccess.cpp
index f79d9a75..6813786 100644
--- a/clang/lib/Sema/SemaAccess.cpp
+++ b/clang/lib/Sema/SemaAccess.cpp
@@ -1518,8 +1518,8 @@ void Sema::HandleDelayedAccessCheck(DelayedDiagnostic &DD, Decl *D) {
} else if (FunctionDecl *FN = dyn_cast<FunctionDecl>(D)) {
DC = FN;
} else if (TemplateDecl *TD = dyn_cast<TemplateDecl>(D)) {
- if (isa<DeclContext>(TD->getTemplatedDecl()))
- DC = cast<DeclContext>(TD->getTemplatedDecl());
+ if (auto *D = dyn_cast_if_present<DeclContext>(TD->getTemplatedDecl()))
+ DC = D;
} else if (auto *RD = dyn_cast<RequiresExprBodyDecl>(D)) {
DC = RD;
}