問題タブ [sal]
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.
c - SAL を使用している場合、NULL チェックと境界チェックを削除できますか?
SALはどこまで頼れる?する必要がありますか
または私はただすることができます
c++ - この typedef は LPWSTR を含むことを意味しますか?
プロジェクトを gcc に移植するための LPWSTR の代わりを見つけようとしています。
null 終端とは何ですか? 私がこのようなことをした場合、それは安全でしょうか:
c++ - コードから SAL 注釈を削除しても安全ですか?
Visual Studio から Mingw gcc にいくつかのコードを移植しています。そのコードには、次のような多くの注釈があることに気付きました
使用されています。SAL注釈について話しているこのスレッドに出くわしました。
私の質問は、コードからいくつかの SAL 注釈を削除するかどうかです。悪影響はありますか?コードはまだ機能しますか?
c++ - コード分析が _In_opt_ パラメータを理解できない 注釈?
SALバグのようです。コード:
そしてコード分析は私にC6102を与えます-失敗した関数呼び出しからの変数の使用
行でTraceProtectedFile(curFile)
; ただし、TraceProtectedFile にはプロトタイプがあります
_In_opt_ 意味"_In_opt_ is the same as _In_, except that the input parameter is allowed to be NULL and, therefore, the function should check for this."
.. CA がそのような単純なことを処理できない場合、それができることを理解しないでください :(
c - Visual Studio 2015 string.h の一貫性のない注釈
Visual Studio 2015 を使用しており、最新の SDK もインストール (および再インストール) しました。新しいプロジェクトを開始して警告レベルを設定し、「警告をエラーとして扱う」も設定し、ビルド時に静的コード分析を実行するように設定しました。次のコードを含む単純な main.c は、いくつかの興味深い SAL 注釈警告を出力します。
コード:
エラー出力:
補足事項:
- これはリリースビルドでのみ発生することがわかりました(デバッグでは問題なく動作します)
- また、ソースが .c の場合にのみ発生します ( .cpp を使用したリリース/デバッグの両方で正常に動作します)
これまでに試した解決策:
- Visual Studio 2015 + SDK の再インストール
- string.h ヘッダー内で #pragma warning(suppress:28253) しようとしましたが、そのヘッダーを変更できません
いくつかのバグ送信/チケットで、最新の SDK で修正されたと言ったマイクロソフトの男を見つけました。また、vs2015 コミュニティのダウンロード ページへのリンクを投稿しました (これを再ダウンロードして再インストールしました)。働くこと(少なくとも私にとっては
今のところ、「警告をエラーとして扱う」なしでプロジェクトを続行する予定ですが、小さなハック/回避策のないエレガントなソリューションを誰かが提供してくれれば幸いです。
前もってありがとう、乾杯!
更新 1 一時的な解決策: