やってきました。
gcc(gnu) clang(llvm)コンパイルエラー比較
長らくごぶさたしていました。
MISRA の解説書は有料ですが、Codeは無償であげてくれています。
MISRA C:2012 Example-Suite
https://gitlab.com/MISRA/MISRA-C/MISRA-C-2012/Example-Suite
<この項は書きかけです。順次追記します。>
This article is not completed. I will add some words in order.
全体の記録
Misra Example Suite at docker コンパイル完了までの道のり
https://qiita.com/kaizen_nagoya/items/71f04a0204d5a1114577
順にコンパイルエラーが出たものを比較し、
エラーを取るのなら取ってみます。
-Wall でコンパイルしています。
R_02_02.c
$ clang
R_02_02.c:48:4: warning: expression result unused [-Wunused-value]
( int64_t ) v; /* Non-compliant - the cast operator is dead */
^ ~
R_02_02.c:50:6: warning: expression result unused [-Wunused-value]
v >> 3; /* Non-compliant - the >> operator is dead */
~ ^ ~
R_02_02.c:55:4: warning: expression result unused [-Wunused-value]
*p1++; /* Non-compliant - result of * operator is not used */
^~~~~
3 warnings generated.
R_02_03.c:23:20: warning: unused typedef 'local_Type' [-Wunused-local-typedef]
typedef int16_t local_Type; /* Non-compliant */
^
1 warning generated.
R_02_06.c:23:1: warning: unused label 'label1' [-Wunused-label]
label1: /* Non Compliant */
^~~~~~~~~~
1 warning generated.
$ gcc
R_02_02.c: In function 'R_2_2':
R_02_02.c:50:6: warning: value computed is not used [-Wunused-value]
50 | v >> 3; /* Non-compliant - the >> operator is dead */
| ~~^~~~
R_02_02.c:55:4: warning: value computed is not used [-Wunused-value]
55 | *p1++; /* Non-compliant - result of * operator is not used */
| ^~~~~
R_02_02.c:42:13: warning: variable 'x' set but not used [-Wunused-but-set-variable]
42 | uint16_t x;
| ^
R_02_03.c: In function 'unusedtype':
R_02_03.c:23:20: warning: typedef 'local_Type' locally defined but not used [-Wunused-local-typedefs]
23 | typedef int16_t local_Type; /* Non-compliant */
| ^~~~~~~~~~
R_02_06.c: In function 'R_2_6':
R_02_06.c:23:1: warning: label 'label1' defined but not used [-Wunused-label]
23 | label1: /* Non Compliant */
| ^~~~~~
clangの方が警告が一個多い。
ソースコードは、URLにもdockerにもあります。
docker hubでの作業
docker hubからの起動はこちら。
$ docker run -it kaizenjapan/misra_c_2012_example /bin/bash
#参考資料
仮説・検証(173)C言語(C++)に対する誤解、曲解、無理解、爽快。
[C][C++]の国際規格案の例題をコンパイルするときの課題7つ。
https://qiita.com/kaizen_nagoya/items/5f4b155030259497c4de
C Puzzle Bookの有り難み5つ、C言語規格及びCコンパイラの特性を認識
https://qiita.com/kaizen_nagoya/items/d89a48c1536a02ecdec9
MISRA C まとめ #include
https://qiita.com/kaizen_nagoya/items/f1a79a7cbd281607c7c9
どうやって MISRA Example Suiteをコンパイルするか
https://qiita.com/kaizen_nagoya/items/fbdbff5ff696e2ca7f00
ISO/IEC TS 17961:2013 C Secure Coding Rules(1) All list(to be confirmed)
https://qiita.com/kaizen_nagoya/items/54e056195c4f11b850a1
Autosar Guidelines C++14 example code compile list
https://qiita.com/kaizen_nagoya/items/8ccbf6675c3494d57a76
C++ N4741, N4606, N3242 Source Compile Error List
https://qiita.com/kaizen_nagoya/items/2e736e04339b340ffb4d
自己参照
Error一覧 error(0)
https://qiita.com/kaizen_nagoya/items/48b6cbc8d68eae2c42b8
プログラマが知っていると良い「公序良俗」
https://qiita.com/kaizen_nagoya/items/9fe7c0dfac2fbd77a945
Ethernet 記事一覧 Ethernet(0)
https://qiita.com/kaizen_nagoya/items/88d35e99f74aefc98794
Wireshark 一覧 wireshark(0)、Ethernet(48)
https://qiita.com/kaizen_nagoya/items/fbed841f61875c4731d0
線網(Wi-Fi)空中線(antenna)(0) 記事一覧(118/300目標)
https://qiita.com/kaizen_nagoya/items/5e5464ac2b24bd4cd001
通信記事100
https://qiita.com/kaizen_nagoya/items/1d67de5e1cd207b05ef7
一覧の一覧( The directory of directories of mine.) Qiita(100)
https://qiita.com/kaizen_nagoya/items/7eb0e006543886138f39
<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>
This article is an individual impression based on the individual's experience. It has nothing to do with the organization or business to which I currently belong.
文書履歴(document history)
ver. 0.01 add URL 20240510
最後までおよみいただきありがとう4ざいました。
いいね 💚、フォローをお願いします。
Thank you very much for reading to the last sentence.
Please press the like icon 💚 and follow me for your happy life.