Michael Layzell
e7bb823efa
Bug 1201190 - Part 1: Add an analysis to prevent a type from being allocated in a temporary, r=ehsan
2015-09-12 16:53:31 -04:00
Michael Layzell
7c2b524757
Bug 1156802 - Part 1: Add an analysis which prohibits explicit move constructors, r=ehsan
2015-09-12 12:34:44 -04:00
Jed Davis
3779e46161
Bug 1201309 - Make MOZ_INHERIT_TYPE_ANNOTATIONS_FROM_TEMPLATE_ARGS work with MOZ_NON_MEMMOVABLE. r=ehsan f=mystor
...
This patch migrates moz_non_memmovable into the CustomTypeAnnotation
framework; bonus side-effects are more helpful error messages and less
code duplication.
2015-09-10 08:23:53 -07:00
Botond Ballo
f4dbd60c8b
Bug 1170388 - Removed an outdated workaround for old clang versions in the static analysis plugin. r=mystor
2015-09-04 12:37:33 -04:00
Michael Layzell
12d36559e8
Bug 1200413 - Part 1: Re-write RefCountedInsideLambdaChecker to use captures instead of checking for DeclRef instances, r=ehsan
2015-09-01 18:20:46 -04:00
Ehsan Akhgari
b59512272b
Run clang-format on clang-plugin.cpp, no bug
2015-08-18 23:09:24 -04:00
Michael Layzell
6067c848fe
Bug 1195960 - Correct naming of CustomTypeAnnotation::reportErrorIfAbsent, r=me
2015-08-18 20:24:30 -04:00
Michael Layzell
5df97f1256
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
ebe65f6d1b
Bug 1192271 - Add helper method CustomTypeAnnotation::reportErrorIfAbsent to clang-plugin, r=ehsan
2015-08-14 17:33:50 -04:00
Michael Layzell
ac1c4dbac1
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
4c04d1c2fe
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
Michael Layzell
d973b18d3b
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
cd50a9e8b9
Bug 1187486 - Update the clang plugin to detect templated implicit constructors; r=ehsan
2015-07-30 20:31:11 -04:00
Ryan VanderMeulen
8488d9d076
Backed out changeset 3e78fb4512a6 (bug 1187486) for static analysis failures.
2015-07-30 14:47:52 -04:00
Michael Layzell
394ce7a14b
Bug 1187486 - Update the clang plugin to detect templated implicit constructors; r=ehsan
2015-07-30 14:03:18 -04:00
Michael Layzell
31bdacbfe6
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
408d216981
Back out revision 6d94504b602d (bug 602122).
2015-07-28 17:19:46 -04:00
Michael Layzell
aba103c7e0
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
c201665a62
Bug 1187982 - Fix building clang-plugin with clang 3.5; r=mystor
2015-07-27 14:06:03 -04:00
Michael Layzell
087c00626b
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
5514d85f22
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
173df8ce64
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
8ac2f91124
Bug 1185188 - Support multiple clang-plugin annotations; r=ehsan
2015-07-24 19:12:54 -04:00
Jed Davis
bc551a663a
Bug 1183485 - Exempt security/sandbox/chromium from MOZ_IMPLICIT enforcement. r=ehsan
2015-07-17 14:57:00 -04:00
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