лязг не удается получить родительский узел в различных детских узлов TranslationUnitDecl

голоса
0

Я пытаюсь получить й родительский узел в CallExpr в Visitor . Код я работаю, как показано ниже,

int dummy()
{     
  return 0;   
}

namespace
{
    void a()
    {        
       dummy();       
    }

    int b()
    {     
       return dummy();   
    }
} // end of unnamed namespace

void c()
{    
  dummy();   
}

Однако, в функции VisitCallExpr можно получить только родительский узел CallExpr (манекен) в функции а и б , и если я удалить пространство имен , можно получить только родительский узел в функции а . Что я должен сделать , чтобы получить родительский узел для всех вызовов манекена ?

Если удалить пространство имен, только фиктивный () в функции а () имеет родительский узел. С namespce, а (б) и () будет в том же дочерний узел TranslationUnitDecl и соской () в обоих функции имеют родительские узлы. Но манекен () в функции с () не имеет родительский узел в любом случае. Я использую ASTContext :: getParents (), чтобы найти родительский узел манекена ().

Задан 20/10/2018 в 05:16
источник пользователем
На других языках...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more