diff --git a/.clang-tidy b/.clang-tidy new file mode 100644 index 0000000..885af79 --- /dev/null +++ b/.clang-tidy @@ -0,0 +1,16 @@ +Checks: >- + -*, + clang-analyzer-*, + bugprone-*, + modernize-use-nullptr, + modernize-use-override, + cppcoreguidelines-owning-memory, + cppcoreguidelines-pro-type-member-init +WarningsAsErrors: >- + clang-analyzer-*, + bugprone-*, + modernize-use-nullptr, + modernize-use-override, + cppcoreguidelines-owning-memory, + cppcoreguidelines-pro-type-member-init +FormatStyle: none diff --git a/.coderabbit.yml b/.coderabbit.yml new file mode 100644 index 0000000..3c0ebad --- /dev/null +++ b/.coderabbit.yml @@ -0,0 +1,4 @@ +reviews: + tools: + clang: + enabled: true diff --git a/compile_commands.json b/compile_commands.json new file mode 100644 index 0000000..41cae0c --- /dev/null +++ b/compile_commands.json @@ -0,0 +1,7 @@ +[ + { + "directory": "/home/jailuser/git", + "file": "test.cpp", + "command": "clang++ -std=c++17 -I. -c test.cpp" + } +] diff --git a/test.cpp b/test.cpp new file mode 100644 index 0000000..235af8e --- /dev/null +++ b/test.cpp @@ -0,0 +1,48 @@ +#include +#include +#include +#include + +class Shape { +public: + Shape() {} + virtual void draw() {} + ~Shape() {} +private: + int size; + int color; +}; + +class Circle : public Shape { +public: + Circle() {} + void draw() { std::cout << "circle" << std::endl; } +}; + +void nullDeref(int* p) { + if (p == NULL) { + *p = 5; + } +} + +int divide(int numerator, int denominator) { + return numerator / denominator; +} + +int main() { + int uninitialized; + int result = uninitialized + 7; + + int x = divide(100, 0); + + int* p = NULL; + nullDeref(p); + + Shape* s = new Circle(); + s->draw(); + + const char* fmt = "%s"; + printf(fmt); + + return result + x; +}