Commit Graph

71 Commits

Author SHA1 Message Date
Ehsan Akhgari
78fdf87fa4 Run clang-format on clang-plugin.cpp, no bug 2015-08-18 23:09:24 -04:00
Michael Layzell
2ffea2bfd7 Bug 1195960 - Correct naming of CustomTypeAnnotation::reportErrorIfAbsent, r=me 2015-08-18 20:24:30 -04:00
Michael Layzell
8de4ef2721 Bug 1192130 - Part 1: Add MOZ_NON_AUTOABLE to restrict using auto in place of certain types, r=ehsan 2015-08-14 17:33:52 -04:00
Michael Layzell
fc32758878 Bug 1192271 - Add helper method CustomTypeAnnotation::reportErrorIfAbsent to clang-plugin, r=ehsan 2015-08-14 17:33:50 -04:00
Michael Layzell
a19237a067 Bug 885515 - Part 1: Add an analysis for detecting non-heap allocations of MOZ_HEAP_CLASS, r=ehsan 2015-08-09 12:42:10 -04:00
Michael Layzell
cf8d2169e5 Bug 1192015 - Refactor allocation analysis in clang plugin to better allow adding new analyses, and support detecting temporary value allocations, r=ehsan 2015-08-09 12:42:09 -04:00
Ehsan Akhgari
41ccf85272 Fix some bad variable names, no bug 2015-08-04 19:11:16 -04:00
Michael Layzell
ae763d5318 Bug 1187073 - Add the MOZ_INHERIT_TYPE_ANNOTATIONS_FROM_TEMPLATE_ARGS annotation to clang-plugin. r=ehsan 2015-07-24 12:52:00 -04:00
Michael Layzell
aed2b64cc2 Bug 1187486 - Update the clang plugin to detect templated implicit constructors; r=ehsan 2015-07-30 20:31:11 -04:00
Ryan VanderMeulen
5a336f34d0 Backed out changeset 3e78fb4512a6 (bug 1187486) for static analysis failures. 2015-07-30 14:47:52 -04:00
Michael Layzell
367814b92d Bug 1187486 - Update the clang plugin to detect templated implicit constructors; r=ehsan 2015-07-30 14:03:18 -04:00
Michael Layzell
6389115c4d Bug 602122 - Add a static analysis to find XPCOM classes with duplicate mRefCnt members; r=ehsan 2015-07-30 01:05:06 -04:00
Boris Zbarsky
3e70a7ec26 Back out revision 6d94504b602d (bug 602122). 2015-07-28 17:19:46 -04:00
Michael Layzell
63663e0bb6 Bug 602122 - Add a static analysis to find XPCOM classes with duplicate mRefCnt members; r=ehsan 2015-07-28 16:55:20 -04:00
Ehsan Akhgari
96dd813af5 Bug 1187982 - Fix building clang-plugin with clang 3.5; r=mystor 2015-07-27 14:06:03 -04:00
Michael Layzell
10dd826b58 Bug 1159433 - Part 1: Add an analysis to ensure that some template arguments cannot be non-memmovable types; r=ehsan 2015-07-24 19:14:37 -04:00
Michael Layzell
9d46061b4d Bug 1123907 - Part 1: Add an analysis to ensure that a class marked MOZ_NEEDS_NO_VTABLE_TYPE cannot be instantiated by a class with a VTable; r=ehsan 2015-07-24 19:13:52 -04:00
Michael Layzell
ffe699b5dc Bug 1185044 - Unify type annotation logic between MOZ_*_CLASS and MOZ_MUST_USE; r=ehsan 2015-07-24 19:13:15 -04:00
Michael Layzell
b2987686b9 Bug 1185188 - Support multiple clang-plugin annotations; r=ehsan 2015-07-24 19:12:54 -04:00
Jed Davis
d732870d2e Bug 1183485 - Exempt security/sandbox/chromium from MOZ_IMPLICIT enforcement. r=ehsan 2015-07-17 14:57:00 -04:00
Ehsan Akhgari
20a6030350 Bug 1123386 - Part 2: Temporarily relax the libstdc++ symbol version requirements for Linux static analysis builds; r=glandium 2015-07-13 22:42:14 -04:00
Michael Layzell
0eb57dfbb4 Bug 1180993 - Part 1: Add an analysis to help catch unused return values of specific types. r=ehsan 2015-07-10 09:46:00 -04:00
Ehsan Akhgari
7505da2c29 Bug 1180549 - Fix a startup crash when using the clang-plugin with clang>3.5; r=mystor
We were de-referencing the checker variable after having moved it into
the array, which was causing a null pointer crash.

With this fixed, the plugin can be built with more recent versions of
clang.
2015-07-06 14:48:36 -04:00
Ehsan Akhgari
fa44aad141 Bug 1180506 - Fix building the clang-plugin with ToT clang; r=mystor 2015-07-06 14:48:35 -04:00
Ehsan Akhgari
dc533a8281 Bug 1075758 - Do not look at the ICU version number when whitelisting the ICU namespace in the clang plugin; r=Waldo 2015-06-15 14:29:28 -04:00
Botond Ballo
77d3b666a0 Bug 1170388 - Restrict the static analysis error given about raw pointers to refcounted objects inside a lambda, to the case where the raw pointer is captured. r=ehsan 2015-06-03 16:51:36 -04:00
Botond Ballo
9cbfb04730 Backed out d952a7d6bfb4 (bug 1170388) on a CLOSED TREE for static analysis bustage. r=bustage 2015-06-05 00:14:14 -04:00
Botond Ballo
75fa4313c2 Bug 1170388 - Restrict the static analysis error given about raw pointers to refcounted objects inside a lambda, to the case where the raw pointer is captured. r=ehsan 2015-06-03 16:51:36 -04:00
Ehsan Akhgari
aee7f7274a Bug 1156084 - Disallow AddRef() and Release() calls on the return value of methods returning XPCOM objects; r=jrmuizel
When a method returns type D derived from RefCounted type B, there is an
ImplicitCastExpr (or an ExplicitCastExpr, if there is an explicit cast
to the base type in the code) in the AST between the CallExpr and
MemberExpr, which we didn't take into account before.  This caused the
analysis to not work on common patterns such as
nsCOMPtr<nsIXPCOMInterface>.
2015-05-15 08:39:55 -04:00
Birunthan Mohanathas
e0adbad231 Bug 1163029 - Use NamedDecl::getName instead of expensive NamedDecl::getNameAsString. r=ehsan 2015-05-08 09:29:11 -07:00
Ehsan Akhgari
0915a15420 Bug 1153348 - Add an analysis to prohibit operator bools which aren't marked as either explicit or MOZ_IMPLICIT; r=jrmuizel
This is the counterpart to the existing analysis to catch
constructors which aren't marked as either explicit or
MOZ_IMPLICIT.
2015-04-21 21:40:49 -04:00
Wes Kocher
5c13924153 Backed out changeset 02e6a50741a9 (bug 1153348) to hopefully fix the static bustage CLOSED TREE 2015-04-21 15:47:40 -07:00
Wes Kocher
6fdfd8574e Backed out changeset 8b99d282cd87 (bug 1156084) for static bustage CLOSED TREE 2015-04-21 14:23:56 -07:00
Ehsan Akhgari
783d64de67 Bug 1153348 - Add an analysis to prohibit operator bools which aren't marked as either explicit or MOZ_IMPLICIT; r=jrmuizel
This is the counterpart to the existing analysis to catch
constructors which aren't marked as either explicit or
MOZ_IMPLICIT.
2015-04-21 16:31:58 -04:00
Ehsan Akhgari
e1d91cf3c6 Bug 1156084 - Disallow AddRef() and Release() calls on the return value of methods returning XPCOM objects; r=jrmuizel
When a method returns type D derived from RefCounted type B, there is an
ImplicitCastExpr (or an ExplicitCastExpr, if there is an explicit cast
to the base type in the code) in the AST between the CallExpr and
MemberExpr, which we didn't take into account before.  This caused the
analysis to not work on common patterns such as
nsCOMPtr<nsIXPCOMInterface>.
2015-04-21 16:24:41 -04:00
Ehsan Akhgari
b0b0910942 Bug 1153304 follow-up: Fix the build bustage 2015-04-14 21:15:53 -04:00
Ehsan Akhgari
9802480ddd Bug 1153304 - Add an analysis to prohibit the usage of pointers to refcounted types inside C++ lambdas; r=jrmuizel 2015-04-14 20:55:05 -04:00
Wes Kocher
1865543dc8 Backed out changeset 5f48890c23c1 (bug 1153304) 2015-04-14 16:32:42 -07:00
Ehsan Akhgari
cd486ddb02 Bug 1153304 - Add an analysis to prohibit the usage of pointers to refcounted types inside C++ lambdas; r=jrmuizel 2015-04-14 18:34:46 -04:00
Ehsan Akhgari
c8068bb9d7 Bug 1114999 - Part 1: Create an analysis for disallowing calling AddRef and Release on the return value of functions; r=jrmuizel 2015-01-22 17:54:54 -05:00
Nicholas Nethercote
b074ee16ce Bug 1123527 - Initialized some locals in TestNoArithmeticExprInArgument.cpp. r=ehsan.
I think these undefined variables don't matter because it's a static analysis
input, but defining them does stop cppcheck from complaining.
2015-01-15 22:16:38 -08:00
Ehsan Akhgari
739a4dfd9f Bug 1123459 - Add an informational note to the diagnostic explaining to use the explicit keyword; r=jrmuizel 2015-01-19 16:39:29 -05:00
Ehsan Akhgari
2d9e6659e7 Bug 1123429: Allow implicit conversions on abstract C++ classes; r=jrmuizel
Such classes cannot be constructed at all, so worrying about how their
constructors can be invoked is pointless.
2015-01-19 16:38:38 -05:00
Ehsan Akhgari
f953a65232 Bug 927430 - Add a static analysis to detect is-NaN testing using |x == x| or |x != x|; r=jrmuizel 2014-12-21 12:33:25 -05:00
Ehsan Akhgari
0734bfeaa1 Backed out changeset fae8ad41a604 (bug 927430) because of build bustage on a CLOSED TREE 2015-01-18 19:04:23 -05:00
Ehsan Akhgari
ff8e044dd6 Bug 927430 - Add a static analysis to detect is-NaN testing using |x == x| or |x != x|; r=jrmuizel 2015-01-18 18:44:43 -05:00
Ehsan Akhgari
a8da901150 Bug 1111269 - Enable running the clang-plugin tests as part of the build; r=glandium 2014-12-24 12:13:36 -05:00
Ehsan Akhgari
036fef1fb9 Bug 1114267 - Part 1: Add an analysis to force some classes to have trivial ctors and dtors; r=jrmuizel 2014-12-22 18:15:42 -05:00
Ehsan Akhgari
7a5e73ebd7 Bug 773014 - Part 1: Add an analysis for marking classes as global-only; r=jrmuizel 2014-12-22 18:10:32 -05:00
Ehsan Akhgari
2e3abb5b81 Bug 867348 - Part 1: Add an analysis that catches calls to certain functions involving arithmetic expressions; r=jrmuizel 2014-12-18 15:25:15 -05:00