[clang] [libclang] Add clang_CXXMethod_getQualifiers, clang_Cursor_isConstexpr, and clang_CXXMethod_isExplicitObjectMemberFunction (PR #183305)
Aaron Ballman via cfe-commits
cfe-commits at lists.llvm.org
Wed Jul 29 07:02:48 PDT 2026
================
@@ -9533,6 +9533,33 @@ unsigned clang_CXXMethod_isConst(CXCursor C) {
return (Method && Method->getMethodQualifiers().hasConst()) ? 1 : 0;
}
+CXQualifiers clang_CXXMethod_getQualifiers(CXCursor C) {
+ CXQualifiers Q = {};
+ if (!clang_isDeclaration(C.kind))
+ return Q;
+
+ const Decl *D = cxcursor::getCursorDecl(C);
+ const CXXMethodDecl *Method =
+ D ? dyn_cast_or_null<CXXMethodDecl>(D->getAsFunction()) : nullptr;
+ if (Method) {
+ Qualifiers MQ = Method->getMethodQualifiers();
+ Q.Const = MQ.hasConst();
+ Q.Volatile = MQ.hasVolatile();
+ Q.Restrict = MQ.hasRestrict();
+ }
+ return Q;
+}
+
+unsigned clang_CXXMethod_isExplicitObjectMemberFunction(CXCursor C) {
+ if (!clang_isDeclaration(C.kind))
+ return 0;
+
+ const Decl *D = cxcursor::getCursorDecl(C);
+ const CXXMethodDecl *Method =
+ D ? dyn_cast_or_null<CXXMethodDecl>(D->getAsFunction()) : nullptr;
+ return (Method && Method->isExplicitObjectMemberFunction()) ? 1 : 0;
----------------
AaronBallman wrote:
```suggestion
return Method && Method->isExplicitObjectMemberFunction();
```
No need to do the conversion explicitly, the implicit conversion will get the same values. I don't insist either, it's not wrong as-is.
https://github.com/llvm/llvm-project/pull/183305
More information about the cfe-commits
mailing list