Пропуск инструкций внутри IfStatements

Я создал if(isa<IfStmt>(s)) а также if(isa<ReturnStmt>(s)) который печатает что-то, если найден. Я создал этот простой код C ++, который содержит оператор возврата внутри оператора if

#include <stdlib.h>
int main(int argc, char** argv) {
int a = atoi(argv[1]);
if(a == 0)
return 1;
else
return 10;
return 0;
}

Можно ли пропустить / игнорировать заявление о возврате внутри если еще заявление ?

0

Решение

clang-query test.cpp --

match returnStmt(unless(hasAncestor(ifStmt()))

Чтобы решить такие проблемы, Справочник AST Matcher и лязг -ast-dump параметр твои друзья. А также clang-query сам, так как он принимает в основном тот же DSL, что и clangAPI C ++.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]