問題タブ [splint]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
1696 参照

c - complex.hを含むコードでスプリントが失敗する

複雑な演算をサポートするために、標準Cライブラリをsplint含むCソースで実行しようとしています。complex.h

残念ながら、splint次のエラーで失敗します。

Splint 3.1.2---2009年5月3日

/usr/include/bits/cmathcalls.h:54:31:解析エラー:非関数宣言:_Complex:externdouble。(解析エラーのヘルプについては、splint -help parseerrorsを参照してください。)***続行できません。

問題をグーグルで検索すると、分割ディスカッションメーリングリストにこのメッセージのみが表示されました(未回答のままです)。

何か案は?

アップデート

失敗したソースの非常に簡単な例を次に示します。

_ComplexサポートされていないC99キーワードを再定義しようとすると、複素数の虚数部でエラーが発生します(これは驚くことではありません)。

0 投票する
5 に答える
10057 参照

c - C用スプリントコードアナライザー

CコードベースのコードアナライザーとしてSplintを使用することを計画しています。しかし、これまでSplintツールを試したことはなかったので、そのメリット、長所、短所について意見を求めています。

0 投票する
0 に答える
3418 参照

parsing - Splintで解析エラーを解決する方法

Splintは、解析エラーを見つけた後、チェックを続行していません。+ trytorecoverオプションも試してみましたが、変更はありません。

+ trytorecoverを使用して、解析エラーの後にSplintが続行を試行する方法を教えてください。

これが私が受け取っているものです、

0 投票する
2 に答える
617 参照

c - このスプリント警告の意味と、何が間違っている可能性がありますか?

これはコード行です:

splint 3.1.2 を実行すると、次の警告が生成されます。

パラメータに名前を付けても違いはありません。

0 投票する
2 に答える
587 参照

c - C99の一部である__threadのスプリントバーフ

ランニングスプリント

この行で停止します:

解析エラーの場合:

ドキュメントとうがいをチェックすると、の言及はありません__thread。ただし、これはSplintがサポートしているとされる__threadC99仕様の一部です(参照を挿入)。

何が起きてる?スプリントに認識させるにはどうすればよい__threadですか?

0 投票する
2 に答える
4267 参照

c - スプリントのデバッグ解析エラー

(Ubuntuリポジトリから)スプリントを使用するのはこれが初めてで、すぐにWTFに見舞われました。エラーメッセージ:

さて、どうやら16行目、6列目に何か問題があるようです。それをチェックしてみましょう(完全なコードを投稿してください):

このプログラムはエラーなしでコンパイルされ ( gcc -Wall -std=c99 brainfuck.c)、ランタイムは正常に動作することに注意してください。

注: ブレインファックという名前に気分を害する場合は、それを受け入れてください。作者がそのように命名したプログラミング言語であり、私はその名前を尊重して使用しています。

0 投票する
3 に答える
1964 参照

c - 関数ポインタが原因で、スプリントの警告「ステートメントは効果がありません」

Splint (厳密モード) で C プログラムをチェックしようとしています。Splintが私のプログラムを理解できるように、ソース コードにセマンティック コメントで注釈を付けました。すべて問題ありませんでしたが、警告を取り除くことができません:

ステートメントは効果がありません (制約のない関数 my_function_pointer への呼び出しにより、影響を受けない変更が行われる可能性があります)。

ステートメントには目に見える効果はありません --- 値は変更されません。制約のない関数への呼び出しを通じて何かを変更する場合があります。(-noeffectuncon を使用して警告を禁止します)

これは、関数ポインタを介した関数呼び出しが原因です。私はフラグを使用しないことを好みますが、no-effect-unconそれを修正するためにいくつかの注釈を書きます。typedefそのため、適切な句で装飾しました@modifiesが、Splint はそれを完全に無視しているようです。問題は次のように縮小できます。

マニュアルを読んだのですが、関数ポインタとそのセマンティックアノテーションに関する情報があまりなく、何か間違ったことをしているのか、それともバグなのかわかりません (ちなみに、ここにはまだ記載されていません)。 : http://www.splint.org/bugs.html )。

ストリクト モードで Splint を使用して、このようなプログラムを正常にチェックできた人はいますか? Splintを幸せにする方法を見つけるのを手伝ってください:)

前もって感謝します。

更新 #1: splint-3.1.2 (Windows バージョン) では警告が表示されますが、splint-3.1.1 (Linux x86 バージョン) では警告が表示されません。

更新 #2: Splint は、割り当てと呼び出しが短い長いかは気にしません。

更新 #3:警告を禁止することに興味はありません。簡単だ:

私が探しているのは、表現する正しい方法です:

「この関数ポインタは関数を指しているため@modifies、副作用があります」

0 投票する
2 に答える
431 参照

c - PTHREAD_COND_INITIALIZER vs スプリント

次のコードがあります

Splint を使用すると、次のエラー/警告が表示されます

静的な watchdogCond._データ。null 値に初期化された _mutex: watchdogCond._ data. _mutex = (void )0 null 注釈のない参照が割り当てられるか、NULL に初期化されます。/ @null@*/ を使用して、null ポインターの可能性がある参照を宣言します。(警告を禁止するには -nullassign を使用します)

これの問題は何ですか?それは本当の危険ですか?

0 投票する
1 に答える
361 参照

c - Splint 用に BoehmGC で収集されたコードに注釈を付けるにはどうすればよいですか?

Splintは、C コードのメモリ リークをうまく追跡します。すべてmalloc()に一致する が必要free()です。しかし、BoehmGC で収集されたコードはGC_MALLOC()、一致しないを使用しGC_FREE()ます。これにより、Splint は、実際には存在しないメモリ リークに関する大量のメッセージに夢中になります。

Splint が誤ったメモリ リーク メッセージを表示しないように、そのようなコードの適切な注釈を知っている人はいますか?

特に、誰かがウィキペディアのBoehmGC の例に注釈を付けることができますか?

0 投票する
1 に答える
648 参照

c - スプリントがcurl/curlbuild.hを解析しないのはなぜですか?

私はfornol.ccurlライブラリを使用するプログラムを作成したため、次のものが含まれています。

プログラムで実行したいのですsplintが、これは私が得るエラーです:

の疑わしい行はcurlbuild.h次のようになります。

どこCURL_TYPEOF_CURL_SOCKLEN_Tにいる#defineのかsocklen_t

私はここで何か間違ったことをしていますか?プログラムで機能させるには、スプリントにどのフラグを渡す必要がありますか?