Clang IfStmt with shortcut binary operator in condition

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

Clang IfStmt with shortcut binary operator in condition

This post has NOT been accepted by the mailing list yet.

down vote
I am trying to detect if there is a function call inside an if statement as part of condition; like following:

if (cmp(a, b)){
  \\do something
I have found I could do this with AST matcher in following manner:
But the problem is condition could have shortcuts like &&, ||; like following:

if(a != b && cmp(a,b) || c == 10){
\\ do something
Now this condition has binaryoperator && and ||; also have a call expression as part of it. Now how I could detect that there is a call expression inside this if statement? Definitely I don't know how many binary operator as shortcuts will be there, so I am looking for a generalize solution for this, possibly using clange AST matcher.