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

13 Коммитов

Автор SHA1 Сообщение Дата
Nika Layzell 2e21209147 Bug 1744604 - Part 2: Be less restrictive with the non-memmovable static analysis, r=andi
This change adds an exception for stl types which implement
`std::is_trivially_move_constructible` and `std::is_trivially_destructible`, as
these are generally stable parts of the standard library type definition which
may be relied on by downstream code.

Differential Revision: https://phabricator.services.mozilla.com/D132996
2021-12-14 16:49:17 +00:00
Nika Layzell ab7c298175 Bug 1744604 - Part 1: Make CustomTypeAnnotation more flexible, r=andi
This allows CustomTypeAnnotation to customize the type traversal behaviour to
allow things like opting library types out of static analysis easier. It will
be used in parts 2 and 3 to improve the non-memmoveable and non-param trait
analysis.

Differential Revision: https://phabricator.services.mozilla.com/D132995
2021-12-14 16:49:17 +00:00
Sandor Molnar c0474edcdf Backed out 3 changesets (bug 1744604) for causing build bustages in TestNonParameterChecker. CLOSED TREE
Backed out changeset 31d7633b2826 (bug 1744604)
Backed out changeset 3fc47ff6a295 (bug 1744604)
Backed out changeset 051767551298 (bug 1744604)
2021-12-08 03:51:39 +02:00
Nika Layzell 0047d8c90a Bug 1744604 - Part 2: Be less restrictive with the non-memmovable static analysis, r=andi
This change adds an exception for stl types which implement
`std::is_trivially_move_constructible` and `std::is_trivially_destructible`, as
these are generally stable parts of the standard library type definition which
may be relied on by downstream code.

Depends on D132995

Differential Revision: https://phabricator.services.mozilla.com/D132996
2021-12-07 20:38:15 +00:00
Nika Layzell 19478cb9ed Bug 1744604 - Part 1: Make CustomTypeAnnotation more flexible, r=andi
This allows CustomTypeAnnotation to customize the type traversal behaviour to
allow things like opting library types out of static analysis easier. It will
be used in parts 2 and 3 to improve the non-memmoveable and non-param trait
analysis.

Differential Revision: https://phabricator.services.mozilla.com/D132995
2021-12-07 20:38:15 +00:00
Andi-Bogdan Postelnicu 5fbdc1ea98 Bug 1579351 - Add constant complexity for MemMoveAnnotation when looking for specific `std::atomic`. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D45027

--HG--
extra : moz-landing-system : lando
2019-09-09 13:30:16 +00:00
Andi-Bogdan Postelnicu ef2739a418 Bug 1569350 - Added more primitives to our static-analysis from MSVC 2019. r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D44827

--HG--
extra : moz-landing-system : lando
2019-09-05 12:57:18 +00:00
David Major 0db5cad5ae Bug 1574565 - Whitelist __cxx_atomic for memmove static analysis r=Ehsan
In some libstdc++ these appear in the inheritance hierarchy of __atomic_base, which is already whitelisted.

Differential Revision: https://phabricator.services.mozilla.com/D42348

--HG--
extra : moz-landing-system : lando
2019-08-16 23:01:03 +00:00
Boris Zbarsky 135d0b832e Bug 1535651. Whitelist std::__pair_base as memmovable for static analysis purposes. r=emilio
In at least some libstdc++ versions, std::pair (which we want to be
memmovable) inherits from __pair_base.  We have a similar setup
already for __atomic_base.

Differential Revision: https://phabricator.services.mozilla.com/D23698

--HG--
extra : moz-landing-system : lando
2019-03-15 16:17:52 +00:00
Mike Hommey f8798bbeb2 Bug 1487622 - Refactor the clang plugin wrt attributes r=andi
- We forcefully remove annotations from the AST so that they don't end
up impacting codegen.
- We change the API such that we use identifiers instead of strings,
reducing the chances of typo errors.

Differential Revision: https://phabricator.services.mozilla.com/D5493

--HG--
extra : moz-landing-system : lando
2018-09-18 13:03:33 +00:00
Sylvestre Ledru 0d4a611a04 Bug 1410472 - clang-plugin follows the LLVM coding style for real r=mystor
MozReview-Commit-ID: AXrQEjWzxvg

--HG--
extra : rebase_source : bf972fbb22648af2edbb756eb899ebddf8444dbc
2017-10-20 19:11:50 +02:00
Michael Layzell 2372ce0fc1 Bug 1339537 - Part 5: Produce better annotation reason diagnostics for implicit annotations, r=ehsan
This allows for the alignas(_) case to be distinguished from the
MOZ_NON_PARAM case through notes.

MozReview-Commit-ID: 4KIbzEKnmNU
2017-04-27 12:44:55 -04:00
Ehsan Akhgari 3ddb346120 Bug 1324239 - Refactor the clang plugin; r=mystor
This patch mostly just splits up clang-plugin.cpp into separate files for
different classes or helpers.
2016-12-28 20:17:48 -05:00