[adlint-user-ja:87] Re: extern FILE * で解析処理中断
Open source and free source code static analyzer
Brought to you by:
asamiogis
From: satake k. <sat...@se...> - 2013-10-15 04:55:20
|
さたけです。 ちょうど、状況をご連絡しようと 内容をまとめていたところでした。 結果から申しますと、 adlint_cinit.hの編集内容を見直すことで、 うまく解析できるようになりました。 http://sourceforge.net/p/adlint/discussion/support_ja/thread/6df9976f/ の記述を参考にして、以下を実施していたのですが、 をやめて、のみにすることで、うまくいくようになりました。 gcc -v -E -dM の出力結果で、adlint_cinit.hを書き換える gcc コマンドが抱え込んでいる内部関数/マクロを追記する 現在のadlint_cinit.hの内容です。 # cat adlint_cinit.h #define __const const #define __restrict restrict #define __inline inline #define __builtin_va_list void * #define __builtin_va_start(a, b) (0) #define __builtin_va_end(a) (0) #define __builtin_va_arg(ar, t) (0) #define __builtin_va_copy(d, s) (0) #define __builtin_offsetof(type, member) (0) #define __alignof__(type) (0) また、なにかありましたらよろしくお願いします。 以上です。 (2013/10/15 13:16), Yutaka Yanoh wrote: > 矢野尾です。 > > 返信が遅れまして申し訳ありません。 > > こちらで現象を再現できていないので、対象ソース、各種設定ファイル一式を > ya...@us... > 宛に送信いただけますか? > > 今、手元に CentOS 5.9 環境が無いので少し時間がかかるかもしれませんが、 > 是非調査させてください。 > > 以上、よろしくお願いいたします。 > > -- > 矢野尾 裕 <ya...@us...> > >> さたけです。 >> >> アドバイスありがとうございます。 >> >> adlint_traits.ymlのfile_search_paths:の編集などを >> 実施しましたが、結果は同じでした。 >> 引き続きアドバイスいただけますでしょうか。 >> >> また、対象ソースやadlint_traits.ymlなどを >> 添付させていただいてよろしいでしょうか? >> サイズは、tar.gzにして、10Kバイト程度です。 >> >> [環境、対処内容など] >> ・環境は、CentOS5.9です。 >> ・ダミーのstdio.hなどは配置していません。 >> ・gcc -H xx.cの出力結果(本メール下部に記載)から、 >> >> file_search_paths: >> - "/usr/include" >> - "/usr/lib/gcc/i386-redhat-linux/4.1.2/include" >> >> としました。 >> >> ・gcc -v -E -dM 1.c 1>1.h 2>1.log >> cp 1.h adlint_cinit.h >> を実行し、adlint_cinit.h を書き換えました。 >> >> [結果] >> $ make verbose-all >> adlint -t adlint_traits.yml -o . -p 1 -v ./1.c >> ./1.c [prs] |========== | >> 0.349s! >> An error was occurred while processing `./1.c'. >> See `1.c.msg.csv' and `1.c.log' for more details. >> 1.900s user, 0.050s system, 00:00:01.95 total >> make: *** [adlint_verbose-all] エラー 4 >> >> $ cat 1.c.msg.csv >> V,3.0.10,2013-10-11 08:11:32 +0900,/home/adlinttest/tmp/adlint/FILE2 >> E,./1.c,3,8,core,E0008,ERR,X99,トークン `FILE *' で構文エラーを検知しま >> した。 >> X,./1.c,3,8,core,X0003,ERR,X99,回復不能なエラーにより解析処理を中断しま >> した。詳 細は `1.c.msg.csv' 及び `1.c.log' を確認して下さい。 >> >> $ cat 1.log >> Using built-in specs. >> Target: i386-redhat-linux >> コンフィグオプション: ../configure --prefix=/usr --mandir=/usr/share/man >> --infodir=/usr/share/info --enable-shared --enable-threads=posix >> --enable-checking=release --with-system-zlib --enable-__cxa_atexit >> --disable-libunwind-exceptions --enable-libgcj-multifile >> --enable-languages=c,c++,objc,obj-c++,java,fortran,ada >> --enable-java-awt=gtk --disable-dssi --disable-plugin >> --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre >> --with-cpu=generic --host=i386-redhat-linux >> スレッドモデル: posix >> gcc バージョン 4.1.2 20080704 (Red Hat 4.1.2-54) >> /usr/libexec/gcc/i386-redhat-linux/4.1.2/cc1 -E -quiet -v 1.c >> -mtune=generic -dM >> 存在しないディレクトリ >> "/usr/lib/gcc/i386-redhat-linux/4.1.2/../../../../i386-redhat-linux/include" >> を無視します >> #include "..." の探索はここから始まります: >> #include <...> の探索はここから始まります: >> /usr/local/include >> /usr/lib/gcc/i386-redhat-linux/4.1.2/include >> /usr/include >> 探索リストの終わり >> >> [補足情報] >> gcc -H 1.c >> . /usr/include/stdio.h >> .. /usr/include/features.h >> ... /usr/include/sys/cdefs.h >> .... /usr/include/bits/wordsize.h >> ... /usr/include/gnu/stubs.h >> .... /usr/include/bits/wordsize.h >> .... /usr/include/gnu/stubs-32.h >> .. /usr/lib/gcc/i386-redhat-linux/4.1.2/include/stddef.h >> .. /usr/include/bits/types.h >> ... /usr/include/bits/wordsize.h >> ... /usr/lib/gcc/i386-redhat-linux/4.1.2/include/stddef.h >> ... /usr/include/bits/typesizes.h >> .. /usr/include/libio.h >> ... /usr/include/_G_config.h >> .... /usr/lib/gcc/i386-redhat-linux/4.1.2/include/stddef.h >> .... /usr/include/wchar.h >> ..... /usr/lib/gcc/i386-redhat-linux/4.1.2/include/stddef.h >> ..... /usr/include/bits/wchar.h >> .... /usr/include/gconv.h >> ..... /usr/include/wchar.h >> ...... /usr/lib/gcc/i386-redhat-linux/4.1.2/include/stddef.h >> ..... /usr/lib/gcc/i386-redhat-linux/4.1.2/include/stddef.h >> ... /usr/lib/gcc/i386-redhat-linux/4.1.2/include/stdarg.h >> .. /usr/include/bits/stdio_lim.h >> .. /usr/include/bits/sys_errlist.h >> >> 以上です。 > > > ------------------------------------------------------------------------------ > October Webinars: Code for Performance > Free Intel webinars can help you accelerate application performance. > Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from > the latest Intel processors and coprocessors. See abstracts and register > > http://pubads.g.doubleclick.net/gampad/clk?id=60135031&iu=/4140/ostg.clktrk > _______________________________________________ > adlint-user-ja mailing list > adl...@li... > https://lists.sourceforge.net/lists/listinfo/adlint-user-ja > > -- 佐武 和久 sat...@se... 06-4803-5971 / 8-914-22-3127 |