[cfe-dev] ignoring*() and hasParent() matchers

Michael Jabbour via cfe-dev cfe-dev at lists.llvm.org
Sat Jul 7 07:23:01 PDT 2018


Thanks for the confirmation. I have learned a lot from your great
talks/presentations :-)

Thanks,

Mike


On 06/07/2018 11:03 AM, Manuel Klimek wrote:
> That's what I'd do, too.
>
> On Fri, 6 Jul 2018, 00:50 Michael Jabbour via cfe-dev,
> <cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>> wrote:
>
>     I ended up writing my matcher like this:
>
>     integerLiteral(
>       expr().bind("literal"),       //inline bind call using a
>     redundant node matcher
>       hasAncestor(                  //climb up the AST to the nearest
>     varDeclancestor
>        
>     varDecl(hasInitializer(ignoringParenCasts(equalsBoundNode("literal"))))   
>     //check that this varDecl satisfies the original condition
>       )
>     )
>
>     Any feedback is appreciated, as I am completely new to LibTooling...
>
>     P.S.: The actual matcher I am working on is far more complicated.
>     Inverting it (i.e. using my very first example) would result in
>     much more difficult problems. Although this seems like a
>     roundabout hack, it might be effective when nested inside matchers
>     that have already been tested
>
>     Thanks,
>
>     Mike
>
>
>     On 05/07/2018 7:31 PM, Michael Jabbour wrote:
>>
>>     Hello all,
>>
>>     When using has*() it is sometimes desirable to use
>>     ignoringParenCasts(), for example (from the docs):
>>
>>     varDecl(hasInitializer(ignoringParenCasts(integerLiteral())))
>>
>>     Is there any way to get the same effect when hasParent(), e.g.:
>>
>>     integerLiteral(hasParent(ignoringParenCasts(varDecl())))
>>
>>     Obviously this does not work, but what is the best way to achieve
>>     a similar effect?
>>
>>     cheers,
>>
>>     Mike
>>
>
>     _______________________________________________
>     cfe-dev mailing list
>     cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>
>     http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20180707/2ffbb66a/attachment.html>


More information about the cfe-dev mailing list