libtooling

    2熱度

    1回答

    我是嘗試通過libtooling分析AST的Clang的新手。 我想找到一個特定的功能,並將其AST從原始源文件移動到一個新文件。 我已經知道如何通過MatchFinder找到函數。 現在,我想知道如何將它的AST寫入一個新文件(.c或.cpp) 在此先感謝!

    0熱度

    1回答

    有沒有「叮叮噹噹」來檢查CXXMethodDecl是否與override或final關鍵字一起指定? 我可以通過std::string::find(" override")來檢查代表CXXMethodDecl的字符串,但這種方式看起來有點難看。

    6熱度

    1回答

    tldr;>如何在系統標題中隱藏警告? 我有以下的最小的例子源文件,它觸發一個鐺-整齊警告系統中的標頭: #include <future> int main() { std::promise<int> p; p.set_value(3); } 使用鐺-整齊4.0.0用的libstdC++ 7.0.1調用它在Ubuntu 17.04 : $ clang-tidy ma

    0熱度

    1回答

    我無法找到一個正在查看API的人,但基本上我需要以下內容:在所有Visit *方法之後,我會調用一個最終方法對數據成員執行一些後處理。我假設它會類似於訪問TranslationUnitDecl,除非是第一次訪問方法,它將是最後一次。

    0熱度

    1回答

    我正在使用clang的libtooling來修改一些代碼,並且我試圖找到一種方法來安全地插入標題,只要我的工具在C文件上使用。 我讀過What's the right way to match #includes (or #defines) using Clang's libtooling?關於匹配調用預處理器的問題,但我仍然不確定使用它來插入代碼。 使用libtooling重寫器插入新#incl

    0熱度

    1回答

    我試圖使用clang libtooling分析函數。 這裏是我想分析的源代碼: #include <stdio.h> int main(){ int a = 100; printf("a==%d", a); } 當我跑我的工具,把所有的功能東方電氣在上述文件 ,我發現有很多內置的/系統的功能,像: decls: _IO_cookie_init __underflo

    2熱度

    2回答

    我正在使用LibTooling進行一些分析。我知道如何遍歷AST並在某處插入一些文本。例如, Rewriter mywriter; mywriter.InsertTextAfter(func->getLocEnd(),"Hello"); 現在我想知道是否有任何方法可以保存代碼? (天氣將它保存到原始文件或生成一個新文件) 因爲分析後,我只能讀取終端上的結果,這對我來說還不夠。

    0熱度

    1回答

    我是clang libtooling的初學者。 我正在嘗試使用clang :: CallGraph viewGraph生成我的調用圖的.dot文件。 這裏是代碼: clang::CallGraph mCG; for (unsigned i = 0 ; i < DeclsSize ; ++i) { clang::FunctionDecl *FnDecl = (clang::Functi

    0熱度

    1回答

    我有一個LibTooling(TimeFlag),用於爲每個forstmt/whilestmt添加一個標誌。我用./TimeFlag lalala.cpp --在lalala.cpp中插入標誌 不幸的是,這個工具也會改變頭文件,甚至系統庫。 那麼有沒有讓LibTooling處理輸入文件的方法?

    1熱度

    2回答

    有沒有什麼辦法可以通過clang::FileID或clang::FileEntry得到 #include什麼?