cpp/MISRA_inspections.cpp (57 lines of code) (raw):
// To enable MISRA Check
// go to Settings/Preferences | Editor | Inspections | C/C++ | General | MISRA Checks
// note that clang-tidy is built one and calngd via clang-tidy is enabled
// MISRA checks: https://confluence.jetbrains.com/display/CLION/MISRA+checks+supported+in+CLion
#include <cstdint>
template<typename T> void f(T);
template<> void f<uint16_t>(uint16_t);
template <> void f<int16_t>(int16_t);
void b() {
uint16_t u16a = 0U;
f(u16a);
u16a = u16a + 0x8000;
f(u16a);
}
#define SHIFT_8 8
unsigned char func(unsigned char num) {
return num;
}
void discarded(unsigned char counter) {
int32_t code[5];
code[0] = 109;
code[1] = 100;
code[2] = 052;
code[3] = 071;
code[4] = '\100';
unsigned char foo = 1;
foo <<= SHIFT_8;
func(counter * foo);
}
struct S {
signed int a : 1;
signed int : 1;
signed int : 0;
signed int b : 2;
signed int : 2;
};
void process_ptr(int32_t *int_ptr) {}
void operate() {
process_ptr(0);
}
class OpClass {
public:
OpClass *operator&() {};
};
class MySingleCLass {
public:
MySingleCLass(int32_t a) {}
};
int inc_func() { return 100; }
void check_loop() {
for (int x = 0; x < 10; x += inc_func()) {}
int y = 0;
for (int x = 0; x < y; x = y++) {}
}
bool modify(int32_t *pX) {
*pX++;
return *pX < 10;
}
void check_modify_loop() {
for (int x = 0; modify(&x);) {}
}