MCPcopy Create free account
hub / github.com/cppcheck-opensource/cppcheck / misra_12_3

Function misra_12_3

addons/test/misra/misra-test.c:939–998  ·  view source on GitHub ↗

8.2

Source from the content-addressed store, hash-verified

937#define MISRA_12_3_FN3_2_MSG(x) x, fflush(stderr)
938static void misra_12_3(int, int, int); // 8.2
939void misra_12_3(int a, int b, int c) {
940 int a1, a2; // 12.3
941 int a3; int a4; // no warning
942 int a5 = 9, a6; // 12.3
943 int a7, a8 = 11; // 12.3
944 int a9 = foo(), a10; // 12.3
945 int a11 = a = b = c; // 17.8
946
947 struct s1 {int a, b;}; int a12, a13; // 12.3
948 int a14, a15; misra_12_3_fn3(a14, a15); // 12.3 17.7
949 ; int a16, a17; // 12.3
950 int a18; int a19, a20; // 12.3
951 int a21, a22; int a23; // 12.3
952 int a24, // 12.3
953 a25;
954 int a26
955 , a27; // 12.3
956 int a28
957 , // 12.3
958 a29;
959
960 struct misra_12_3_s2 a30 = {1, 2}, a31; // 12.3
961 struct misra_12_3_s2 a32, a33; // 12.3
962 struct misra_12_3_s2 a34, a35 = {1, 2}, a36; // 12.3
963
964 // cppcheck-suppress uninitStructMember
965 int a37 = MISRA_12_3_FN3_1(a34, a35), a38; // 12.3
966 int a39, a40 = MISRA_12_3_FN3_1(a34, a35); // 12.3
967 int a41 = MISRA_12_3_FN3_2(a34, a35), a42; // 12.3
968 int a43, a44 = MISRA_12_3_FN3_2(a34, a35); // 12.3
969
970 MISRA_12_3_FN3_2_MSG(fprintf(stderr, "test\n")); // 12.3 21.6
971 // TODO
972 f((1,2),3); // 17.3
973
974 // third clause: 2 persistent side effects instead of 1 (14.2)
975 for (i=0; i<10; i++, j++){} // 12.3 14.2
976 for (int i = 0, p = &a1; // 12.3 14.2
977 i < 42;
978 ++i, ++p ) // 12.3
979 {}
980
981 // No false positives in local and extern function calls
982 misra_12_3_fn4(misra_12_3_fn5(&a1, 32), &a1);
983 misra_12_3_fn4(misra_12_3_fn7(&a1, 32), &a1);
984 misra_12_3_fn6(misra_12_3_fn5(&a1, 32), &a1);
985 misra_12_3_fn6(misra_12_3_fn7(&a1, 32), &a1);
986 misra_12_3_fn7(maxlen, fn(va, unsigned long), false); // 17.3
987 misra_12_3_fn8(maxlen, (unsigned long)((uintptr_t)fn(va, void*)), false); // 17.3
988
989 const struct fun_t
990 {
991 int64_t x;
992 uint32_t y;
993 } moreFun[2U] =
994 {
995 { 900000000000000LL, 0x20000UL },
996 { 450000000000000LL, 0x10000UL }

Callers

nothing calls this directly

Calls 5

misra_12_3_fn3Function · 0.85
misra_12_3_fn4Function · 0.85
misra_12_3_fn5Function · 0.85
fooFunction · 0.70
fFunction · 0.50

Tested by

no test coverage detected