libtooling

    0

    1答えて

    私は、RecursiveASTVistorを使ってLibToolingをベースにしたスタンドアロンツールを作成しています。ソースコードに格納されたヘッダーファイルの内容を調べる必要はありません。コンパイルデータベースを変更する必要はありますか?私はこの小さなハックを使って私のツールをクラッシュさせないようにしていましたが、私が扱っているソースコードに含まれているヘッダファイルを解析するツールは必要

    1

    1答えて

    私はいくつかのclangツールを使っています。明示的に指定されていないタイプのソースコードを生成する必要があります。 タイプがclang::QualTypeの文字列は、class std::initializer_list<int>です。問題は、キーワードなしでタイプを取得することです。 私はタイプ(clang::Type)をすべての相続人TypeWithKeywordにしようとしましたが、結果は

    0

    1答えて

    次のリンクに従って、カスタムclangフロントエンドツールを作成しました。 http://clang.llvm.org/docs/RAVFrontendAction.html 私は静的解析のフロントエンドツールにclangソースコードを提供しています。 ツールがこのテストケースの例外をスローしています https://llvm.org/svn/llvm-project/cfe/trunk/test

    0

    1答えて

    私はllvmプラグインを作成し、各ソースファイル上でプラグインを実行するcmakeオブジェクトライブラリを作成しましたが、コンパイル単位ごとにプラグインが再度実行されるのに対し、コンパイル全体からデータを取得する必要があります。 私のビルド環境はかなり複雑ですが、私はこのツールを実行するための設定の2番目の表現を管理したくありません。 既存のCMakeLists.txtを使用して、#defineの

    2

    1答えて

    に表示されていない属性は、公式マニュアルに記載されているよう私が打ち鳴らすでカスタム属性を実装: http://clang.llvm.org/docs/InternalsManual.html#how-to-add-an-attribute をだから私はAttr.tdに次のコードを追加しました: def MyAttr: InheritableAttr { let Spellings = [GN

    0

    1答えて

    私はclangのlibtoolを構築しています 与えられたDeclが#if #ifdef #ifndefのスコープ内にあるかどうかを教えてくれるプリプロセッサの情報をどのように得ることができますか?

    0

    1答えて

    if(isa<IfStmt>(s))とif(isa<ReturnStmt>(s))が見つかりました。私は #include <stdlib.h> int main(int argc, char** argv) { int a = atoi(argv[1]); if(a == 0) return 1; else return 10; re

    0

    1答えて

    現在、私はそれを開発しているマシンにインストールされたclang-llvmで私のツールをテストしました。ツールを実行するには、build/binに行ってください。 ただし、このツールを別のマシンで実行しようとしています。 私が開発したツールを実行するには、ここで何をすべきですか? clang-llvm環境全体をセットアップする必要がありますか?あなただけにしようとしているので、私が作成していますツ

    1

    1答えて

    私はClangのlibTooling開発の初心者です。 は私のプロジェクトの要件については、次の変数宣言 int i, j, k = 10; ^ ^ を考え、私は「I」、「J」と「K」を含む全宣言式をキャプチャしたいです。 clang libToolingですべての変数を含む完全な宣言式を取得するにはどうすればよいですか? 私が経験しているのは、完全な表現のための訪問者を得られないという

    2

    1答えて

    は、私は以下のように定義MatchFinderあります MatchFinder Finder; Finder.addMatcher(FunctionCallMatcher, &printer); そしてDeclarationMatcherを、そしてMatchCallback以下の通りです:私のメインのコードで DeclarationMatcher FunctionCallMatcher =