0
私はclangのlibtoolを構築しています 与えられたDeclが#if #ifdef #ifndefのスコープ内にあるかどうかを教えてくれるプリプロセッサの情報をどのように得ることができますか?Declが#if指令のスコープ内にあるかどうかをチェックする方法?
私はclangのlibtoolを構築しています 与えられたDeclが#if #ifdef #ifndefのスコープ内にあるかどうかを教えてくれるプリプロセッサの情報をどのように得ることができますか?Declが#if指令のスコープ内にあるかどうかをチェックする方法?
これは残念なことに簡単な答えはありません。 Clangは、ASTレベルのプリプロセッサディレクティブを完全に認識していません。
PPCallbacksクラスを実装し、コンパイラーインスタンスプリプロセッサに登録し、If、Elif、Endifの関数を実装するのが私の知る限りで可能です。
次に、ASTVisitorを使用して、それらのソースの場所の間のすべてを見つけることができます。