[clang] [Clang] disallow the use of asterisks preceding constructor and destructor names (PR #122621)
Oleksandr T. via cfe-commits
cfe-commits at lists.llvm.org
Sun Jan 12 12:06:35 PST 2025
================
@@ -10757,6 +10757,17 @@ static void checkMethodTypeQualifiers(Sema &S, Declarator &D, unsigned DiagID) {
}
}
+static void checkMethodPointerType(Sema &S, Declarator &D, unsigned DiagID) {
+ if (D.getNumTypeObjects() > 0) {
+ DeclaratorChunk &Chunk = D.getTypeObject(D.getNumTypeObjects() - 1);
+ if (Chunk.Kind == DeclaratorChunk::Pointer) {
+ SourceLocation PointerLoc = Chunk.getSourceRange().getBegin();
+ S.Diag(PointerLoc, DiagID) << Chunk.getSourceRange();
+ D.setInvalidType();
+ }
+ }
+}
+
----------------
a-tarasyuk wrote:
Do you mean that having more than one chunk should, by default, be considered an error? I thought about that, however, I opted to use the appropriate kind check to ensure cases like this are handled correctly (the helper is used for constructors and destructors).
```cpp
struct S {
(~S)();
};
```
https://github.com/llvm/llvm-project/pull/122621
More information about the cfe-commits
mailing list