[clang] [Clang] prevent constexpr crash on invalid overrides (PR #184048)

Shafik Yaghmour via cfe-commits cfe-commits at lists.llvm.org
Fri Mar 6 15:49:41 PST 2026


================
@@ -9247,9 +9247,12 @@ bool Sema::AddOverriddenMethods(CXXRecordDecl *DC, CXXMethodDecl *MD) {
         continue;
       if (Overridden.insert(BaseMD).second) {
         MD->addOverriddenMethod(BaseMD);
-        CheckOverridingFunctionReturnType(MD, BaseMD);
-        CheckOverridingFunctionAttributes(MD, BaseMD);
-        CheckOverridingFunctionExceptionSpec(MD, BaseMD);
+        bool Invalid = false;
+        Invalid |= CheckOverridingFunctionReturnType(MD, BaseMD);
+        Invalid |= CheckOverridingFunctionAttributes(MD, BaseMD);
+        Invalid |= CheckOverridingFunctionExceptionSpec(MD, BaseMD);
+        if (Invalid)
----------------
shafik wrote:

I am curious why these three matter but `CheckIfOverriddenFunctionIsMarkedFinal` does not, it also diagnoses with an error as well.



https://github.com/llvm/llvm-project/pull/184048


More information about the cfe-commits mailing list