gcc and clang have optional warnings for some of these issues, without needing to use clang-tidy.<p>For NULL, 0, and nullptr, gcc and clang already treat NULL as a magic __null value and -Wconversion-null (enabled by default) can warn about using NULL as a non-pointer value. gcc also can break 0-as-a-null-pointer with the -Wzero-as-null-pointer-constant flag. I had hoped to fix these warnings in Firefox (<a href="https:&#x2F;&#x2F;bugzilla.mozilla.org&#x2F;show_bug.cgi?id=777515" rel="nofollow">https:&#x2F;&#x2F;bugzilla.mozilla.org&#x2F;show_bug.cgi?id=777515</a>) bug there were thousands of warnings because gcc warns about using NULL, not just 0.<p>For override, gcc has -Wsuggest-override and -Woverloaded-virtual warnings that may help here. clang has -Winconsistent-missing-override.<p>For uninitialized variables, gcc and clang have -Wuninitialized. However, gcc -Wuninitialized has historically reported a lot of false positives. Fortunately, recent gcc version moved the flakier uninitialized warnings to a new -Wmaybe-uninitialized flag. In my experience with Firefox, -Wmaybe-uninitialized warnings are false positives about 90% of the time. On the other hand, clang has a -Wsometimes-uninitialized which is reliable.<p>For bool++, clang has -Wdeprecated-increment-bool.<p>btw, clang does not document its warning flags, but some resources I&#x27;ve used are the <a href="http:&#x2F;&#x2F;fuckingclangwarnings.com&#x2F;" rel="nofollow">http:&#x2F;&#x2F;fuckingclangwarnings.com&#x2F;</a> reference, searching through clang&#x27;s source code at <a href="https:&#x2F;&#x2F;github.com&#x2F;llvm-mirror&#x2F;clang&#x2F;blob&#x2F;master&#x2F;include&#x2F;clang&#x2F;Basic&#x2F;DiagnosticGroups.td" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;llvm-mirror&#x2F;clang&#x2F;blob&#x2F;master&#x2F;include&#x2F;cla...</a>, and clang&#x27;s -Weverything flag (which truly is <i>everything</i>, including contradictory warnings).