[clang] Allow struct q{int q;~q();} (#88597) (PR #88673)

via cfe-commits cfe-commits at lists.llvm.org
Sun Apr 14 18:57:28 PDT 2024


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-clang

Author: наб (nabijaczleweli)

<details>
<summary>Changes</summary>

Based on https://github.com/llvm/llvm-project/issues/88597#issuecomment-2053354660

---
Full diff: https://github.com/llvm/llvm-project/pull/88673.diff


2 Files Affected:

- (modified) clang/include/clang/Basic/DiagnosticSemaKinds.td (-2) 
- (modified) clang/lib/Sema/SemaExprCXX.cpp (+2-3) 


``````````diff
diff --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td
index 5ec0218aedfe86..c8c3f2de81f82a 100644
--- a/clang/include/clang/Basic/DiagnosticSemaKinds.td
+++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td
@@ -2187,8 +2187,6 @@ def err_undeclared_destructor_name : Error<
   "undeclared identifier %0 in destructor name">;
 def err_destructor_name : Error<
   "expected the class name after '~' to name the enclosing class">;
-def err_destructor_name_nontype : Error<
-  "identifier %0 after '~' in destructor name does not name a type">;
 def err_destructor_expr_mismatch : Error<
   "identifier %0 in object destruction expression does not name the type "
   "%1 of the object being destroyed">;
diff --git a/clang/lib/Sema/SemaExprCXX.cpp b/clang/lib/Sema/SemaExprCXX.cpp
index 25f23a3abf1718..bb93803c6384d4 100644
--- a/clang/lib/Sema/SemaExprCXX.cpp
+++ b/clang/lib/Sema/SemaExprCXX.cpp
@@ -448,9 +448,8 @@ ParsedType Sema::getDestructorName(const IdentifierInfo &II,
       Diag(NameLoc, diag::err_destructor_expr_nontype)
           << &II << MakeFixItHint();
     }
-  } else {
-    Diag(NameLoc, SearchType.isNull() ? diag::err_destructor_name_nontype
-                                      : diag::err_destructor_expr_mismatch)
+  } else if(!SearchType.isNull()) {
+    Diag(NameLoc, diag::err_destructor_expr_mismatch)
         << &II << SearchType << MakeFixItHint();
   }
 

``````````

</details>


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


More information about the cfe-commits mailing list