Commit Graph

42 Commits

Author SHA1 Message Date
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
Ryan VanderMeulen
c51c7d8b9a Backed out changesets acb4dd16755c and 40768f723990 (bug 867348) for static analysis bustage.
CLOSED TREE
2014-12-18 15:59:51 -05:00
Ehsan Akhgari
2597a6ad45 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
77d779a1be 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
f0a7070626 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
7875241457 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
9746c43713 Bug 1109246 - Support the ToT clang in the clang-plugin; r=jrmuizel 2014-12-10 10:46:10 -05:00
Ehsan Akhgari
69c805ef64 Bug 1108595 - Enable using libc++ in clang-plugin on OSX 10.10; r=glandium 2014-12-09 08:51:15 -05:00
Mike Hommey
21ec48314e 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
4353f43090 Bug 1062219 - Don't build build/clang-plugin as an external directory. r=jcranmer 2014-09-04 17:44:01 +09:00
Mike Hommey
e064a5f449 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
4baec832de Bug 861425 - Build the clang plugin on Mac; r=jcranmer 2014-05-31 09:13:32 -04:00
Joshua Cranmer
9d123c923b 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
db7f4d0874 Bug 926010 - Create 'binaries' stamp when recursing build/clang-plugin; r=jcranmer 2013-10-12 10:07:13 +09:00
Mike Hommey
9c68d4602f Bug 923862 - Add binaries rule in build/clang-plugin. r=jcranmer 2013-10-09 11:03:42 +09:00
Mike Hommey
a6745dc190 Another fixup for static analysis builds after bug 912832. r=jcranmer 2013-09-06 13:30:47 +09:00
Mike Hommey
41f08e0e36 Fixup for bug 912832 busting static analysis builds. r=me 2013-09-06 10:09:52 +09:00
Joshua Cranmer
68fd63a1cb 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
7c881418dd Bug 868285 - Fix static checking builds, part 1: infer MOZ_STACK_CLASS. r=bsmedberg 2013-05-27 16:04:18 -05:00
Joshua Cranmer
22bf0bbc1c Bug 856108 - Port static analyses to clang, part 1: stack-class. r=ehsan 2013-04-11 22:20:02 -05:00
Joshua Cranmer
04f24207a8 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
5e96de0421 Bug 767563 - Add a clang static checker, part 1: add the plugin shell. r=glandium 2013-03-23 21:12:25 -05:00