go-clangライブラリを使用して、次の C ファイルを解析しています: aac.c。ファイルを clang で実行して AST をダンプすると、何らかの理由で、特定の関数の AST 出力が得られません。たとえば、C ファイルには、前方宣言aac_ioctl_send_raw_srb
と実際の定義が含まれています。
これを考えると、出力に 2 つの AST ノードが表示されることを期待していましたが、1 つだけFuncDecl
(前方宣言) がダンプされます。
clang -Xclang -ast-dump -fsyntax-only aac.c | grep "aac_ioctl_send_raw_srb" | wc -l
aac.c:38:10: fatal error: 'opt_aac.h' file not found
#include "opt_aac.h"
^
1 error generated.
1 <--- wc output
(エラー無視)
go-clang ライブラリを使用して、自分のアプリケーション内から C ファイルを解析しても同じ結果が得られます。定義がダンプされない理由について何か説明はありますか?