[cfe-dev] Clang SA: GDM tags

Aleksei Sidorin a.sidorin at samsung.com
Wed Mar 25 12:17:21 PDT 2015


Hello Bhargava,

Pointers to Decl are unique in the translation unit since Decls are part 
of ASTContext (and are created with its allocator) and each Decl belongs 
to only one ASTContext. However, I don't think it is a good idea to use 
them as GDM keys. The reason for using tags is a need to distinguish 
data that belong to different checkers. A static variable (which is 
checker-private) identifies a checker uniquely, but a 'Decl *' doesn't 
since multiple checkers may use it as a key.

> Hi, I am writing a Generic Data Map (GDM) client, a checker basically. 
> Comment in ProgramState.h reads:
>> The typical way that clients generate unique tags are by taking the 
>> address of a static variable.
> Question: Can one use pointer to Decl as a GDM tag? In other words, are
> Decl pointers in a translation unit unique?
>
> Code perusal reveals that Decls belong to an object instance (possibly
> AnalysisConsumer). So, in theory they are non-unique and should not be
> used as a GDM tag. Is that correct?
>
> Thanks and Regards,
> Bhargava 

-- 
Best regards,
Aleksei Sidorin
Software Engineer,
IMSWL-IMCG, SRR, Samsung Electronics




More information about the cfe-dev mailing list