[llvm-branch-commits] [clang] 07e9f01 - [Clang] Fix an assertion failure introduced by #93430 (#100313)
Tobias Hieta via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Fri Jul 26 00:24:44 PDT 2024
Author: cor3ntin
Date: 2024-07-26T09:21:28+02:00
New Revision: 07e9f01f8935c0006bdaf209acdce29cda7685d3
URL: https://github.com/llvm/llvm-project/commit/07e9f01f8935c0006bdaf209acdce29cda7685d3
DIFF: https://github.com/llvm/llvm-project/commit/07e9f01f8935c0006bdaf209acdce29cda7685d3.diff
LOG: [Clang] Fix an assertion failure introduced by #93430 (#100313)
The PR #93430 introduced an assertion that did not make any sense. and
caused a regression. The fix is to simply remove the assertion.
No changelog. the intent is to backport this fix to clang 19.
(cherry picked from commit dd82a84e0eeafb017c7220c4a9fbd0a8a407f8a9)
Added:
Modified:
clang/lib/Sema/SemaExpr.cpp
clang/test/SemaCXX/cxx2b-deducing-this.cpp
Removed:
################################################################################
diff --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp
index 9207bf7a41349..206194930f3b4 100644
--- a/clang/lib/Sema/SemaExpr.cpp
+++ b/clang/lib/Sema/SemaExpr.cpp
@@ -5730,7 +5730,6 @@ static bool isParenthetizedAndQualifiedAddressOfExpr(Expr *Fn) {
if (!UO || UO->getOpcode() != clang::UO_AddrOf)
return false;
if (auto *DRE = dyn_cast<DeclRefExpr>(UO->getSubExpr()->IgnoreParens())) {
- assert(isa<FunctionDecl>(DRE->getDecl()) && "expected a function");
return DRE->hasQualifier();
}
if (auto *OVL = dyn_cast<OverloadExpr>(UO->getSubExpr()->IgnoreParens()))
diff --git a/clang/test/SemaCXX/cxx2b-deducing-this.cpp b/clang/test/SemaCXX/cxx2b-deducing-this.cpp
index 5cbc1f735383b..4811b6052254c 100644
--- a/clang/test/SemaCXX/cxx2b-deducing-this.cpp
+++ b/clang/test/SemaCXX/cxx2b-deducing-this.cpp
@@ -895,6 +895,10 @@ void g() {
}
namespace P2797 {
+
+int bar(void) { return 55; }
+int (&fref)(void) = bar;
+
struct C {
void c(this const C&); // #first
void c() &; // #second
@@ -915,6 +919,8 @@ struct C {
(&C::c)(C{});
(&C::c)(*this); // expected-error {{call to non-static member function without an object argument}}
(&C::c)();
+
+ (&fref)();
}
};
}
More information about the llvm-branch-commits
mailing list