Commit Graph

38 Commits

Author SHA1 Message Date
Michael Layzell
482e59265e 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
9d153b216e 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
433e308f9d Bug 1180506 - Fix building the clang-plugin with ToT clang; r=mystor 2015-07-06 14:48:35 -04:00
Ehsan Akhgari
8938503c66 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
1422104224 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
dcf38fa62d 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
b9e0d1da02 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
8857726bbb 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
4d4ebae057 Bug 1163029 - Use NamedDecl::getName instead of expensive NamedDecl::getNameAsString. r=ehsan 2015-05-08 09:29:11 -07:00
Ehsan Akhgari
9aea0e3f0a 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
bcf61be505 Backed out changeset 02e6a50741a9 (bug 1153348) to hopefully fix the static bustage CLOSED TREE 2015-04-21 15:47:40 -07:00
Wes Kocher
e07ea79cbc Backed out changeset 8b99d282cd87 (bug 1156084) for static bustage CLOSED TREE 2015-04-21 14:23:56 -07:00
Ehsan Akhgari
e383d2c003 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
7a01febba5 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
edf805e81d Bug 1153304 follow-up: Fix the build bustage 2015-04-14 21:15:53 -04:00
Ehsan Akhgari
69adc54c93 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
6ff6d1d1e6 Backed out changeset 5f48890c23c1 (bug 1153304) 2015-04-14 16:32:42 -07:00
Ehsan Akhgari
826c56e117 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
78df1f8e1d 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
Ehsan Akhgari
e2df5467c3 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
0709e074f1 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
175f2ec053 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
4f76daead9 Backed out changeset fae8ad41a604 (bug 927430) because of build bustage on a CLOSED TREE 2015-01-18 19:04:23 -05:00
Ehsan Akhgari
e2c72bdf46 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
b5688a8e8a 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
2f1316746d 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
74611b8df9 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
Ryan VanderMeulen
58ed70696e Backed out changesets acb4dd16755c and 40768f723990 (bug 867348) for static analysis bustage.
CLOSED TREE
2014-12-18 15:59:51 -05:00
Ehsan Akhgari
78dfe72ef8 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
Ehsan Akhgari
b4ad5a7cc6 Bug 1111266 - Optimize the clang plugin a bit; r=jrmuizel 2014-12-16 12:54:06 -05:00
Ehsan Akhgari
0b28d5b54d Bug 1009631 - Add a static check to the clang plugin to detect bad implicit conversion constructors; r=jcranmer 2014-12-13 14:18:54 -05:00
Ehsan Akhgari
6795ed70da Bug 1109246 - Support the ToT clang in the clang-plugin; r=jrmuizel 2014-12-10 10:46:10 -05:00
Joshua Cranmer
8fc8c19186 Bug 929200, part 1: Add MOZ_HEAP_ALLOCATOR to stack-only/non-heap analyses, r=Waldo. 2013-12-06 21:23:06 -06:00
Joshua Cranmer
6bf22b7411 Bug 868285 - Fix static checking builds, part 2: Add MOZ_NONHEAP_CLASS. r=ehsan 2013-05-27 16:05:02 -05:00
Joshua Cranmer
7b3c8b5498 Bug 868285 - Fix static checking builds, part 1: infer MOZ_STACK_CLASS. r=bsmedberg 2013-05-27 16:04:18 -05:00
Joshua Cranmer
a71a69cd2b Bug 856108 - Port static analyses to clang, part 1: stack-class. r=ehsan 2013-04-11 22:20:02 -05:00
Joshua Cranmer
9d35cd9a22 Bug 767563 - Add a clang static checker, part 2: Implement the MOZ_MUST_OVERRIDE attribute. r=ehsan 2013-03-23 21:13:24 -05:00
Joshua Cranmer
3099cfa503 Bug 767563 - Add a clang static checker, part 1: add the plugin shell. r=glandium 2013-03-23 21:12:25 -05:00