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

178 Коммитов

Автор SHA1 Сообщение Дата
Ting-Yu Chou a008dced39 Bug 1316545 part 5 - Make misuseX() concrete such that the AST is computed even if it is unused. r=mystor
MozReview-Commit-ID: 4kkWJjvATzC

--HG--
extra : histedit_source : dedc8935c4dfe513f2a266e31c34eab03f897c71
2016-11-24 11:48:33 +08:00
Ting-Yu Chou 9786194bf9 Bug 1316545 part 3 - Remove LLVM_EXPORT_REGISTRY which has been dropped in r277806. r=ehsan
MozReview-Commit-ID: 1VlIu3FQOhH

--HG--
extra : histedit_source : 42c12bbcdadc99908bf0a5b32dbac1103e2881e2
2016-11-16 15:25:24 +08:00
Nathan Froyd 2ebbd09068 Bug 1320752 - remove mozilla/Function.h; r=gerald
We have std::function available now, which is likely to be somewhat more
efficient.
2016-11-28 11:03:53 -05:00
Ehsan Akhgari 718b18d849 Bug 1319903 - Part 3: Revert to using Expr::IgnoreImplicit, pushed on a CLOSED TREE 2016-11-23 18:14:33 -05:00
Ehsan Akhgari 88121ac8dd Bug 1319903 - Part 2: Rename IgnoreImplicit to IgnoreTrivials 2016-11-23 18:00:01 -05:00
Ehsan Akhgari bc354ecd55 Bug 1319903 - Part 1: Ignore ParenExpr's when ignoring trivial expressions; r=mystor 2016-11-23 18:00:00 -05:00
Ehsan Akhgari c7a9a38938 Bug 1319330 - Ignore system headers for the implicit constructor check; r=mystor 2016-11-23 13:25:25 -05:00
André Bargull fb59f826a3 Bug 1299615 - Part 2: Skip ICU source directory in Clang build plugin when searching for implicit conversion constructors. r=Waldo, r=mystor 2016-11-03 05:45:39 -07:00
Tooru Fujisawa 6a21d20cc6 Bug 1290337 - Part 22.1: Do not check deleted function parameter. r=ehsan 2016-10-18 16:45:58 +09:00
Tooru Fujisawa 19d7f7bb03 Bug 1290337 - Part 22: Add moz_non_param annotation. r=ehsan,jwalden 2016-09-11 18:23:11 +09:00
Gabriele Svelto 14c508ef9b Bug 1280477 - Import jsoncpp into the source tree and integrate it into the build r=ted 2016-10-13 11:19:05 +02:00
Andi-Bogdan Postelnicu e0d7fa5720 Bug 1307702 - clang-plugin - static analysis to reject ussage of MOZ_REQUIRED_BASE_METHOD on non-virtual base methods. r=mystor
MozReview-Commit-ID: 9G79Wm5fbHc
2016-10-06 14:02:20 +03:00
Andi-Bogdan Postelnicu d447f00057 Bug 1230311 - clang-plugin - static analysis to enforce that if a method is overridden also base method is called. r=mystor
MozReview-Commit-ID: 1JYzYZZOh3W
2016-10-06 13:49:00 +03:00
Tom Schuster 3cc61134b1 Bug 1302163 - Show an error for [v]snprintf with literals using the clang plugin. r=ehsan 2016-10-04 17:57:50 +02:00
Michael Layzell 9c75f35e6a Bug 1018486 - Part 10: Add an analysis to reject the kungFuDeathGrip pattern on function results and member variables, r=ehsan
MozReview-Commit-ID: K8rehjAxIA6
2016-09-07 10:50:48 -04:00
Bob Owen fe52c7727a Bug 1287426 Part 1: Ignore clang warnings for implicit conversions in Chromium sandbox code. r=ehsan
MozReview-Commit-ID: Bq0PocdYdm9
2016-09-06 08:57:20 +01:00
Paul Bignier 31295dc155 Bug 1287458 - clang-plugin - style consistency with LLVM. r=mystor
MozReview-Commit-ID: 41uSgifPWRw

--HG--
extra : amend_source : 2eaaf8d04d4d69cee0fd8234508811545b505ecd
2016-08-29 17:17:13 +02:00
Michael Layzell 7bd5ff6f30 Bug 1232038 - Fix assertion errors in the clang plugin, r=ehsan 2016-08-05 13:54:09 -04:00
Michael Layzell 44ec98cd05 Bug 1244825 - Detect classes with two superclasses with mRefCnt members, r=ehsan 2016-08-05 13:51:35 -04:00
Michael Layzell 652e9475bc Bug 1281935 - Part 1: Relax raw pointer inside lambda analysis, r=ehsan 2016-08-02 15:27:43 -04:00
Tom Tromey 5538d692d3 Bug 1286877 - do not set c-basic-offset for python-mode; r=gps
This removes the unnecessary setting of c-basic-offset from all
python-mode files.

This was automatically generated using

    perl -pi -e 's/; *c-basic-offset: *[0-9]+//'

... on the affected files.

The bulk of these files are moz.build files but there a few others as
well.

MozReview-Commit-ID: 2pPf3DEiZqx

--HG--
extra : rebase_source : 0a7dcac80b924174a2c429b093791148ea6ac204
2016-07-14 10:16:42 -06:00
Andi-Bogdan Postelnicu de0b1d9c7a Bug 1283395 - clang-plugin - add an error if we encounter in MOZ_ASSERT assignment instead of logical expression. r=mystor
MozReview-Commit-ID: AybStmi6MIH

--HG--
extra : rebase_source : 6379599db347975436181c3807893f939f624b24
2016-07-19 09:59:22 +03:00
Michael Layzell 6dd5afa601 Bug 1209227 - Part 1: Make the MOZ_INHERIT_TYPE_ANNOTATIONS_FROM_TEMPLATE_ARGS analysis handle packs more correctly, r=ehsan 2016-05-19 09:34:01 -04:00
Nicholas Nethercote a5c843fe5f Bug 1267550 (part 1) - Rename MOZ_MUST_USE as MOZ_MUST_USE_TYPE. r=ehsan.
This will allow MOZ_MUST_USE to be used for a different and more common case.

MozReview-Commit-ID: 4dQsdWjJfc6

--HG--
extra : rebase_source : 390ab56ef83d71eb6d28759a0195a79a78b153bd
2016-04-27 08:22:10 +10:00
Ehsan Akhgari 09ce2152c7 Bug 1264827 - Part 2: Add a static analysis to help check Rust wrapped C++ classes for members which are unsafe to memmove; r=mystor 2016-04-18 15:43:46 -04:00
Ehsan Akhgari 18c66f1103 Bug 1264827 - Part 1: Rename the existing code to make it clear it's checking for template args; r=mystor 2016-04-18 15:43:44 -04:00
Michael Layzell c4c75e9287 Bug 1254247 - Ignore implicit Expr wrappers due to temporary cleanup in MUST_USE analysis, r=ehsan 2016-03-11 18:29:47 -05:00
Mike Hommey cbb8f056e6 Bug 1255540 - Properly run the clang-plugin tests. r=gps 2016-03-11 12:22:24 +09:00
Ehsan Akhgari fca32e35f3 Bug 1254807 - Disambiguate ArrayType for clang trunk static analysis builds; r=jrmuizel 2016-03-09 08:36:15 -05:00
Andrea Marchesini 856342a4be Bug 1253187 - Remove some warnings in clang-plugin tests, r=ehsan 2016-03-03 18:31:12 +01:00
Ehsan Akhgari 2218f47481 Bug 1251587 - Add Windows support to the clang plugin; r=jrmuizel 2016-02-26 16:14:12 -05:00
Ehsan Akhgari b7dad904d3 Bug 1246334 - Add support for building the clang plugin using clang-cl; r=glandium 2016-02-26 07:29:48 -05:00
Ehsan Akhgari b49b986147 Reformat clang-plugin.cpp using clang-format, no bug 2016-02-05 10:29:39 -05:00
Ehsan Akhgari ef18719332 Bug 1245269 - Part 2: Add a configure check for the existence of the new AST Matcher API names; r=glandium 2016-02-05 10:29:39 -05:00
Ehsan Akhgari e20df1a14b Bug 1245269 - Part 1: Make clang-plugin build with clang 3.8 and newer; r=mystor 2016-02-05 10:29:39 -05:00
Carsten "Tomcat" Book 41a734ee6d Backed out changeset b542e3e8bb79 (bug 1245269) for bustage on a CLOSED TREE 2016-02-03 15:47:02 +01:00
Carsten "Tomcat" Book f3a1230220 Backed out changeset ad3e81d12128 (bug 1245275) 2016-02-03 15:46:47 +01:00
Carsten "Tomcat" Book ad9044964a Backed out changeset 70ca2c2cb7d9 2016-02-03 15:46:46 +01:00
Ehsan Akhgari 0c9cd58411 Reformat clang-plugin.cpp using clang-format, no bug 2016-02-03 09:19:18 -05:00
Ehsan Akhgari e04c60ccf0 Bug 1245275 - Fix "Name is not a simple identifier" assertions in clang-plugin; r=mystor
Some methods may not have names.  NamedDecl::getName() already returns
an empty string for those, but it also asserts the consumer is asking
for something that makes sense.
2016-02-03 09:19:18 -05:00
Ehsan Akhgari fc3fe4e32e Bug 1245269 - Make clang-plugin build with clang 3.8 and newer; r=mystor 2016-02-03 09:19:18 -05:00
Michael Layzell 299ac653c2 Bug 1242789 - Allow lambdas to capture raw pointers to refcounted objects by reference, r=ehsan 2016-01-26 13:32:41 -05:00
Michael Layzell 2b12d59585 Bug 1226376 - Part 1: Allow non-trivial constexpr constructors in MOZ_TRIVIAL_CTOR_DTOR classes, r=ehsan 2016-01-08 15:34:24 -05:00
Randell Jesup 9c83bc8f96 Bug 1198458: Rollup of changes previously applied to media/webrtc/trunk/webrtc and fixes to those rs=jesup r=froyd,jib,bwc,jesup,gcp,sotaro,pkerr,pehrsons
Landing as one rolled-up patch to avoid breaking regression tests, and in
keeping with previous WebRTC imports.  Broken out parts that needed review
are on the bug.
2015-11-18 15:03:25 -05:00
Jed Davis f377ca14ea Bug 1201314 - Make most of std:: non-memmovable for static analysis purposes. r=mystor r=ehsan
For simplicity, the exceptions are hard-coded in the plugin: currently
std::pair and std::atomic.
2015-10-14 18:13:00 +02:00
Michael Layzell 24a4505d6d Bug 1214037 - Don't consider the result of an assignment expression MOZ_MUST_USE, r=ehsan 2015-10-14 16:06:36 -04:00
Michael Layzell 977f9a33ea Bug 1208814 - Part 1: Add an analysis to prevent default copy constructors from being called on refcounted objects, r=ehsan 2015-10-03 11:23:52 -04:00
Ehsan Akhgari f8824f7e03 Bug 1182727 - Part 15: Build the clang-plugin C test in C11 mode; r=mystor
For some mysterious reason, the plugin crashes when loaded under
the -std=gnu89 that we use by default for C.
2015-10-02 11:09:23 -04:00
Botond Ballo 3538b31b78 Bug 1209330 - Get the clang plugin to compile with clang 3.7 and warnings-as-errors. r=mystor
--HG--
extra : rebase_source : 72788f51cda5a8383cb2e286c92b307e3baab007
extra : source : 233c50497b6115de816b989f4f4398cb0a57baa7
2015-09-28 18:52:44 -04:00
Ehsan Akhgari 132b75b223 Bug 1205242 - Part 2: Require libc++ for building the clang plugin on OSX; r=ted 2015-09-28 22:40:49 -04:00
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