8.2
| 937 | #define MISRA_12_3_FN3_2_MSG(x) x, fflush(stderr) |
| 938 | static void misra_12_3(int, int, int); // 8.2 |
| 939 | void 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 } |
nothing calls this directly
no test coverage detected