[cfe-dev] how to check if a FieldDecl is static or not?

Nathan James via cfe-dev cfe-dev at lists.llvm.org
Tue Oct 20 03:05:47 PDT 2020

Hi Yafei,

Static members aren't FieldDecls, they are VarDecls.

Take this example
class Foo {
    static int Bar;

AST output is (with some boilerplate removed)
`-CXXRecordDecl class Foo definition
  |-CXXRecordDecl implicit class Foo
  `-VarDecl col:16 Bar 'int' static

Once you have a VarDecl you should be able to use
VarDecl::isStaticDataMember() to determine if its a static member of a


On Tue, 2020-10-20 at 17:55 +0800, Yafei Liu via cfe-dev wrote:
> Hi, I checked all the API in FieldDecl and didn't find how to check
> if it is a static member, and I tried this also:
> auto FieldType = TheField->getType();
> and I cannot find any static checking in QualType either.
> So how can I check if the field is static or not?
> _______________________________________________
> cfe-dev mailing list
> cfe-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev

More information about the cfe-dev mailing list