Граф коммитов

178 Коммитов

Автор SHA1 Сообщение Дата
Ehsan Akhgari 55a9d754c2 Bug 1204763 follow-up: Fix the comments, DONTBUILD 2015-09-28 22:18:56 -04:00
Ehsan Akhgari 3dffc9c59e Bug 1204763 - Enable cross compiling the clang plugin for OS X on Linux; r=glandium 2015-09-28 22:14:53 -04:00
Michael Layzell ee6e600d85 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 da3af84697 Bug 1156802 - Part 1: Add an analysis which prohibits explicit move constructors, r=ehsan 2015-09-12 12:34:44 -04:00
Jed Davis 3a2bfc48d5 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 6811428930 Bug 1170388 - Removed an outdated workaround for old clang versions in the static analysis plugin. r=mystor
--HG--
extra : source : c3993efa33510e1fbd3c16d4b4cf25f838a2d308
2015-09-04 12:37:33 -04:00
Michael Layzell 5cb124397c 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 bdd686cb19 Run clang-format on clang-plugin.cpp, no bug 2015-08-18 23:09:24 -04:00
Michael Layzell e67c2f600e Bug 1195960 - Correct naming of CustomTypeAnnotation::reportErrorIfAbsent, r=me 2015-08-18 20:24:30 -04:00
Michael Layzell 40e60e8a8e 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 be3d67125a Bug 1192271 - Add helper method CustomTypeAnnotation::reportErrorIfAbsent to clang-plugin, r=ehsan 2015-08-14 17:33:50 -04:00
Michael Layzell 535f5ff710 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 256c460c0c 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 a2853f82dd Fix some bad variable names, no bug 2015-08-04 19:11:16 -04:00
Michael Layzell fd765fa5fa Bug 1187073 - Add the MOZ_INHERIT_TYPE_ANNOTATIONS_FROM_TEMPLATE_ARGS annotation to clang-plugin. r=ehsan
--HG--
extra : rebase_source : ecdbc00b315c36420b066792ee3664addecb9812
2015-07-24 12:52:00 -04:00
Michael Layzell bd071c9515 Bug 1187486 - Update the clang plugin to detect templated implicit constructors; r=ehsan 2015-07-30 20:31:11 -04:00
Ryan VanderMeulen 2ab90188e0 Backed out changeset 3e78fb4512a6 (bug 1187486) for static analysis failures. 2015-07-30 14:47:52 -04:00
Michael Layzell 5644f5a00c Bug 1187486 - Update the clang plugin to detect templated implicit constructors; r=ehsan 2015-07-30 14:03:18 -04:00
Michael Layzell 4fffaa9e34 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 d0799d6f5c Back out revision 6d94504b602d (bug 602122). 2015-07-28 17:19:46 -04:00
Michael Layzell 259a9c490b 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 4209f5efcd Bug 1187982 - Fix building clang-plugin with clang 3.5; r=mystor 2015-07-27 14:06:03 -04:00
Michael Layzell bf91a08bcc 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 91c1e847d6 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 7e6901b7fd 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 2021b2998c Bug 1185188 - Support multiple clang-plugin annotations; r=ehsan 2015-07-24 19:12:54 -04:00
Jed Davis 2db77cc224 Bug 1183485 - Exempt security/sandbox/chromium from MOZ_IMPLICIT enforcement. r=ehsan 2015-07-17 14:57:00 -04:00
Ehsan Akhgari 765caec60c 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 f3caaba03f 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 fb1d09e511 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 6b56a248ba Bug 1180506 - Fix building the clang-plugin with ToT clang; r=mystor 2015-07-06 14:48:35 -04:00
Ehsan Akhgari b55ee8ea8e 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 63b921afe7 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
--HG--
extra : rebase_source : 28cd2aa684abf505edbcdbc449c8cf056d3b0ee6
extra : source : 28c2862d29b8a2cb0d03cf38430f17abc269225b
2015-06-03 16:51:36 -04:00
Botond Ballo b197e46728 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 f03fd8179e 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
--HG--
extra : rebase_source : c76a1dbb2942a07788ec1e87bc5edab79bfee3f5
extra : source : 4abfbfd822789a609c5a7c8c7eef499c776ba489
2015-06-03 16:51:36 -04:00
Ehsan Akhgari 6532f9f013 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 03b012b21e Bug 1163029 - Use NamedDecl::getName instead of expensive NamedDecl::getNameAsString. r=ehsan 2015-05-08 09:29:11 -07:00
Ehsan Akhgari 399276d5fc 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 638b28b8e0 Backed out changeset 02e6a50741a9 (bug 1153348) to hopefully fix the static bustage CLOSED TREE 2015-04-21 15:47:40 -07:00
Wes Kocher 78060d2f53 Backed out changeset 8b99d282cd87 (bug 1156084) for static bustage CLOSED TREE 2015-04-21 14:23:56 -07:00
Ehsan Akhgari 3d21a05904 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 3f4737e49a 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 be34868969 Bug 1153304 follow-up: Fix the build bustage 2015-04-14 21:15:53 -04:00
Ehsan Akhgari ac6176637b 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 68ebc60aef Backed out changeset 5f48890c23c1 (bug 1153304) 2015-04-14 16:32:42 -07:00
Ehsan Akhgari b98cfc5a8e 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 a84e5979ce 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 464d8fa62a 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.

--HG--
extra : rebase_source : 9f663aad5c939af6798cb9a080d25256c3d105fe
2015-01-15 22:16:38 -08:00
Ehsan Akhgari b2262a1e39 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 a402464ce0 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 7afb1a818c Bug 927430 - Add a static analysis to detect is-NaN testing using |x == x| or |x != x|; r=jrmuizel
--HG--
extra : rebase_source : d80c866ecc7e5f415c83db757e82bd4bac299b67
2014-12-21 12:33:25 -05:00
Ehsan Akhgari fb8a584ff5 Backed out changeset fae8ad41a604 (bug 927430) because of build bustage on a CLOSED TREE 2015-01-18 19:04:23 -05:00
Ehsan Akhgari c63941d33e 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 3474c1cff3 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 3b65f212d1 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 4f72aaa22b 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 ec1321f90b 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 3d7d4af71d Backed out changesets acb4dd16755c and 40768f723990 (bug 867348) for static analysis bustage.
CLOSED TREE
2014-12-18 15:59:51 -05:00
Ehsan Akhgari b791aba21c Bug 867348 - Part 1: Add an analysis that catches calls to certain functions involving arithmetic expressions; r=jrmuizel
--HG--
extra : rebase_source : d89b16b9ab591479400a3e5e89b217a67319669d
2014-12-18 15:25:15 -05:00
Ehsan Akhgari c4df1e993f Bug 1111266 - Optimize the clang plugin a bit; r=jrmuizel
--HG--
extra : rebase_source : a716418dc06db34fe62ee08bcf33e99c41400c32
2014-12-16 12:54:06 -05:00
Ehsan Akhgari 828c32884e Bug 1111425 - Silence the warning about operator new returning null in TestNonHeapClass.cpp; r=jrmuizel
clang issues the following warning on this:
'operator new' should not return a null pointer unless it is declared 'throw()' or 'noexcept'
2014-12-16 00:38:21 -05:00
Ehsan Akhgari 39ece9769c 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 6a31450ee5 Bug 1109246 - Support the ToT clang in the clang-plugin; r=jrmuizel 2014-12-10 10:46:10 -05:00
Ehsan Akhgari f783eeaa1c Bug 1108595 - Enable using libc++ in clang-plugin on OSX 10.10; r=glandium 2014-12-09 08:51:15 -05:00
Mike Hommey 47c853314f Bug 1077148 part 4 - Add and use new moz.build templates for Gecko programs and libraries. r=gps
There are, sadly, many combinations of linkage in use throughout the tree.
The main differentiator, though, is between program/libraries related to
Gecko or not. Kind of. Some need mozglue, some don't. Some need dependent
linkage, some standalone.

Anyways, these new templates remove the need to manually define the
right dependencies against xpcomglue, nspr, mozalloc and mozglue
in most cases.

Places that build programs and were resetting MOZ_GLUE_PROGRAM_LDFLAGS
or that build libraries and were resetting MOZ_GLUE_LDFLAGS can now
just not use those Gecko-specific templates.
2014-10-30 13:06:12 +09:00
Mike Hommey 51f6cc88c1 Bug 1062219 - Don't build build/clang-plugin as an external directory. r=jcranmer 2014-09-04 17:44:01 +09:00
Mike Hommey 7af6fcdf75 Bug 1046533 - Completely wrap subconfigures. r=mshal
While bug 903369 added some kind of wrapping, msys mangling on Windows made
it hard to make the python wrapper invoke subconfigures itself. This change
overcomes this, allowing to run subconfigures entirely independently of
the main configure if necessary, or to do more fancy checks without having
to resort to m4 and shell.
2014-08-02 08:02:30 +09:00
Ehsan Akhgari 9b39a7c476 Bug 861425 - Build the clang plugin on Mac; r=jcranmer 2014-05-31 09:13:32 -04:00
Joshua Cranmer f39213113a Bug 929200, part 1: Add MOZ_HEAP_ALLOCATOR to stack-only/non-heap analyses, r=Waldo.
--HG--
extra : rebase_source : 1ea94cf7a8ab7207d238c65877001549f3f828be
2013-12-06 21:23:06 -06:00
Mike Hommey 3e15abf063 Bug 926010 - Create 'binaries' stamp when recursing build/clang-plugin; r=jcranmer 2013-10-12 10:07:13 +09:00
Mike Hommey d398942c75 Bug 923862 - Add binaries rule in build/clang-plugin. r=jcranmer 2013-10-09 11:03:42 +09:00
Mike Hommey 4e3b648898 Another fixup for static analysis builds after bug 912832. r=jcranmer 2013-09-06 13:30:47 +09:00
Mike Hommey fe5eb8643c Fixup for bug 912832 busting static analysis builds. r=me 2013-09-06 10:09:52 +09:00
Joshua Cranmer f9295075bf Bug 868285 - Fix static checking builds, part 2: Add MOZ_NONHEAP_CLASS. r=ehsan
--HG--
rename : build/clang-plugin/tests/TestStackClass.cpp => build/clang-plugin/tests/TestNonHeapClass.cpp
2013-05-27 16:05:02 -05:00
Joshua Cranmer 6a948c71c1 Bug 868285 - Fix static checking builds, part 1: infer MOZ_STACK_CLASS. r=bsmedberg 2013-05-27 16:04:18 -05:00
Joshua Cranmer be07522e81 Bug 856108 - Port static analyses to clang, part 1: stack-class. r=ehsan 2013-04-11 22:20:02 -05:00
Joshua Cranmer 557e5bbac0 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 6d03959b48 Bug 767563 - Add a clang static checker, part 1: add the plugin shell. r=glandium 2013-03-23 21:12:25 -05:00