#
bbf64825 |
| 07-Mar-2018 |
Nico Weber <nicolasweber@gmx.de> |
Revert r326602, it caused PR36620.
llvm-svn: 326862
|
#
49254459 |
| 02-Mar-2018 |
Joel E. Denny <dennyje@ornl.gov> |
[Attr] Fix parameter indexing for several attributes
The patch fixes a number of bugs related to parameter indexing in attributes:
* Parameter indices in some attributes (argument_with_type_tag,
[Attr] Fix parameter indexing for several attributes
The patch fixes a number of bugs related to parameter indexing in attributes:
* Parameter indices in some attributes (argument_with_type_tag, pointer_with_type_tag, nonnull, ownership_takes, ownership_holds, and ownership_returns) are specified in source as one-origin including any C++ implicit this parameter, were stored as zero-origin excluding any this parameter, and were erroneously printing (-ast-print) and confusingly dumping (-ast-dump) as the stored values.
* For alloc_size, the C++ implicit this parameter was not subtracted correctly in Sema, leading to assert failures or to silent failures of __builtin_object_size to compute a value.
* For argument_with_type_tag, pointer_with_type_tag, and ownership_returns, the C++ implicit this parameter was not added back to parameter indices in some diagnostics.
This patch fixes the above bugs and aims to prevent similar bugs in the future by introducing careful mechanisms for handling parameter indices in attributes. ParamIdx stores a parameter index and is designed to hide the stored encoding while providing accessors that require each use (such as printing) to make explicit the encoding that is needed. Attribute declarations declare parameter index arguments as [Variadic]ParamIdxArgument, which are exposed as ParamIdx[*]. This patch rewrites all attribute arguments that are processed by checkFunctionOrMethodParameterIndex in SemaDeclAttr.cpp to be declared as [Variadic]ParamIdxArgument. The only exception is xray_log_args's argument, which is encoded as a count not an index.
Differential Revision: https://reviews.llvm.org/D43248
llvm-svn: 326602
show more ...
|
Revision tags: llvmorg-6.0.0 |
|
#
5337efc6 |
| 27-Feb-2018 |
Artem Dergachev <artem.dergachev@gmail.com> |
[analyzer] MallocChecker: Suppress false positives in shared pointers.
Throw away MallocChecker warnings that occur after releasing a pointer within a destructor (or its callees) after performing C1
[analyzer] MallocChecker: Suppress false positives in shared pointers.
Throw away MallocChecker warnings that occur after releasing a pointer within a destructor (or its callees) after performing C11 atomic fetch_add or fetch_sub within that destructor (or its callees).
This is an indication that the destructor's class is likely a reference-counting pointer. The analyzer is not able to understand that the original reference count is usually large enough to avoid most use-after-frees.
Even when the smart pointer is a local variable, we still have these false positives that this patch suppresses, because the analyzer doesn't currently support atomics well enough.
Differential Revision: https://reviews.llvm.org/D43791
llvm-svn: 326249
show more ...
|
Revision tags: llvmorg-6.0.0-rc3 |
|
#
9849f595 |
| 08-Feb-2018 |
Artem Dergachev <artem.dergachev@gmail.com> |
[analyzer] MallocChecker: Fix one more bug category.
Even though most of the inconsistencies in MallocChecker's bug categories were fixed in r302016, one more was introduced in r301913 which was lat
[analyzer] MallocChecker: Fix one more bug category.
Even though most of the inconsistencies in MallocChecker's bug categories were fixed in r302016, one more was introduced in r301913 which was later missed.
Patch by Henry Wong!
Differential Revision: https://reviews.llvm.org/D43074
llvm-svn: 324680
show more ...
|
Revision tags: llvmorg-6.0.0-rc2 |
|
#
13b2026b |
| 17-Jan-2018 |
Artem Dergachev <artem.dergachev@gmail.com> |
[analyzer] operator new: Add a new checker callback, check::NewAllocator.
The callback runs after operator new() and before the construction and allows the checker to access the casted return value
[analyzer] operator new: Add a new checker callback, check::NewAllocator.
The callback runs after operator new() and before the construction and allows the checker to access the casted return value of operator new() (in the sense of r322780) which is not available in the PostCall callback for the allocator call.
Update MallocChecker to use the new callback instead of PostStmt<CXXNewExpr>, which gets called after the constructor.
Differential Revision: https://reviews.llvm.org/D41406 rdar://problem/12180598
llvm-svn: 322787
show more ...
|
#
d703ec94 |
| 17-Jan-2018 |
George Karpenkov <ekarpenkov@apple.com> |
[analyzer] introduce getSVal(Stmt *) helper on ExplodedNode, make sure the helper is used consistently
In most cases using `N->getState()->getSVal(E, N->getLocationContext())` is ugly, verbose, and
[analyzer] introduce getSVal(Stmt *) helper on ExplodedNode, make sure the helper is used consistently
In most cases using `N->getState()->getSVal(E, N->getLocationContext())` is ugly, verbose, and also opens up more surface area for bugs if an inconsistent location context is used.
This patch introduces a helper on an exploded node, and ensures consistent usage of either `ExplodedNode::getSVal` or `CheckContext::getSVal` across the codebase. As a result, a large number of redundant lines is removed.
Differential Revision: https://reviews.llvm.org/D42155
llvm-svn: 322753
show more ...
|
Revision tags: llvmorg-6.0.0-rc1 |
|
#
b77bc6bb |
| 06-Jan-2018 |
Gabor Horvath <xazax.hun@gmail.com> |
[analyzer] Fix some check's output plist not containing the check name
Differential Revision: https://reviews.llvm.org/D41538
llvm-svn: 321933
|
Revision tags: llvmorg-5.0.1, llvmorg-5.0.1-rc3, llvmorg-5.0.1-rc2, llvmorg-5.0.1-rc1, llvmorg-5.0.0, llvmorg-5.0.0-rc5, llvmorg-5.0.0-rc4, llvmorg-5.0.0-rc3, llvmorg-5.0.0-rc2, llvmorg-5.0.0-rc1, llvmorg-4.0.1, llvmorg-4.0.1-rc3, llvmorg-4.0.1-rc2 |
|
#
b6a513d1 |
| 03-May-2017 |
Artem Dergachev <artem.dergachev@gmail.com> |
[analyzer] Fix memory error bug category capitalization.
It was written as "Memory Error" in most places and as "Memory error" in a few other places, however it is the latter that is more consistent
[analyzer] Fix memory error bug category capitalization.
It was written as "Memory Error" in most places and as "Memory error" in a few other places, however it is the latter that is more consistent with other categories (such as "Logic error").
rdar://problem/31718115
Differential Revision: https://reviews.llvm.org/D32702
llvm-svn: 302016
show more ...
|
#
a43a8f5c |
| 02-May-2017 |
Daniel Marjamaki <daniel.marjamaki@evidente.se> |
[analyzer] Detect bad free of function pointers
Differential Revision: https://reviews.llvm.org/D31650
llvm-svn: 301913
|
Revision tags: llvmorg-4.0.1-rc1 |
|
#
e3986c54 |
| 26-Apr-2017 |
Leslie Zhai <lesliezhai@llvm.org.cn> |
[analyzer] Teach the MallocChecker about Glib API for two arguments
Reviewers: zaks.anna, NoQ, danielmarjamaki
Reviewed By: zaks.anna, NoQ, danielmarjamaki
Subscribers: cfe-commits, kalev, pwithna
[analyzer] Teach the MallocChecker about Glib API for two arguments
Reviewers: zaks.anna, NoQ, danielmarjamaki
Reviewed By: zaks.anna, NoQ, danielmarjamaki
Subscribers: cfe-commits, kalev, pwithnall
Differential Revision: https://reviews.llvm.org/D30771
llvm-svn: 301384
show more ...
|
#
bbec97ca |
| 09-Mar-2017 |
Anna Zaks <ganna@apple.com> |
[analyzer] Teach the MallocChecker about about Glib API
A patch by Leslie Zhai!
Differential Revision: https://reviews.llvm.org/D28348
llvm-svn: 297323
|
Revision tags: llvmorg-4.0.0, llvmorg-4.0.0-rc4, llvmorg-4.0.0-rc3, llvmorg-4.0.0-rc2, llvmorg-4.0.0-rc1 |
|
#
b570195c |
| 13-Jan-2017 |
Anna Zaks <ganna@apple.com> |
[analyzer] Add LocationContext as a parameter to checkRegionChanges
This patch adds LocationContext to checkRegionChanges and removes wantsRegionChangeUpdate as it was unused.
A patch by Krzysztof
[analyzer] Add LocationContext as a parameter to checkRegionChanges
This patch adds LocationContext to checkRegionChanges and removes wantsRegionChangeUpdate as it was unused.
A patch by Krzysztof Wiśniewski!
Differential Revision: https://reviews.llvm.org/D27090
llvm-svn: 291869
show more ...
|
#
0a0c275f |
| 05-Jan-2017 |
David Blaikie <dblaikie@gmail.com> |
Migrate PathDiagnosticPiece to std::shared_ptr
Simplifies and makes explicit the memory ownership model rather than implicitly passing/acquiring ownership.
llvm-svn: 291143
|
#
e3b75ded |
| 16-Dec-2016 |
Devin Coughlin <dcoughlin@apple.com> |
[analyzer] Fix crash in MallocChecker.
Fix a crash in the MallocChecker when the extent size for the argument to new[] is not known.
A patch by Abramo Bagnara and Dániel Krupp!
https://reviews.llv
[analyzer] Fix crash in MallocChecker.
Fix a crash in the MallocChecker when the extent size for the argument to new[] is not known.
A patch by Abramo Bagnara and Dániel Krupp!
https://reviews.llvm.org/D27849
Differential Revision: https://reviews.llvm.org/D27849
llvm-svn: 289970
show more ...
|
#
85c92110 |
| 16-Dec-2016 |
Artem Dergachev <artem.dergachev@gmail.com> |
[analyzer] Add another exception for Qt in MallocChecker
Treat pointers passed to QObject::connectImpl() as escaping.
rdar://problem/29550440
Differential Revision: https://reviews.llvm.org/D27717
[analyzer] Add another exception for Qt in MallocChecker
Treat pointers passed to QObject::connectImpl() as escaping.
rdar://problem/29550440
Differential Revision: https://reviews.llvm.org/D27717
llvm-svn: 289939
show more ...
|
Revision tags: llvmorg-3.9.1, llvmorg-3.9.1-rc3, llvmorg-3.9.1-rc2, llvmorg-3.9.1-rc1 |
|
#
684d19d8 |
| 16-Oct-2016 |
Devin Coughlin <dcoughlin@apple.com> |
Revert "Revert "[analyzer] Make MallocChecker more robust against custom redeclarations""
This reverts commit r284340 to reapply r284335. The bot breakage was due to an unrelated change in the polyb
Revert "Revert "[analyzer] Make MallocChecker more robust against custom redeclarations""
This reverts commit r284340 to reapply r284335. The bot breakage was due to an unrelated change in the polybench test suite.
llvm-svn: 284351
show more ...
|
#
eeb8d20d |
| 16-Oct-2016 |
Devin Coughlin <dcoughlin@apple.com> |
Revert "[analyzer] Make MallocChecker more robust against custom redeclarations"
This reverts commit r284335.
It appears to be causing test-suite compile-time and execution-time performance measure
Revert "[analyzer] Make MallocChecker more robust against custom redeclarations"
This reverts commit r284335.
It appears to be causing test-suite compile-time and execution-time performance measurements to take longer than expected on several bots. This is surprising, because r284335 is a static-analyzer-only change.
llvm-svn: 284340
show more ...
|
#
62ce463a |
| 16-Oct-2016 |
Devin Coughlin <dcoughlin@apple.com> |
[analyzer] Make MallocChecker more robust against custom redeclarations
Add additional checking to MallocChecker to avoid crashing when memory routines have unexpected numbers of arguments. You woul
[analyzer] Make MallocChecker more robust against custom redeclarations
Add additional checking to MallocChecker to avoid crashing when memory routines have unexpected numbers of arguments. You wouldn't expect to see much of this in normal code (-Wincompatible-library-redeclaration warns on this), but, for example, CMake tests can generate these.
This is PR30616.
rdar://problem/28631974
llvm-svn: 284335
show more ...
|
#
7304027c |
| 19-Sep-2016 |
Gabor Horvath <xazax.hun@gmail.com> |
[analyzer] Calculate extent size for memory regions allocated by new expression.
ArrayBoundChecker did not detect out of bounds memory access errors in case an array was allocated by the new express
[analyzer] Calculate extent size for memory regions allocated by new expression.
ArrayBoundChecker did not detect out of bounds memory access errors in case an array was allocated by the new expression. This patch resolves this issue.
Patch by Daniel Krupp!
Differential Revision: https://reviews.llvm.org/D24307
llvm-svn: 281934
show more ...
|
Revision tags: llvmorg-3.9.0, llvmorg-3.9.0-rc3, llvmorg-3.9.0-rc2 |
|
#
6ee4f905 |
| 18-Aug-2016 |
Gabor Horvath <xazax.hun@gmail.com> |
[analyzer] Small cleanups when checkers retrieving statements from exploded nodes.
Differential Revision: https://reviews.llvm.org/D23550
llvm-svn: 279037
|
Revision tags: llvmorg-3.9.0-rc1 |
|
#
9670f847 |
| 18-Jul-2016 |
Mehdi Amini <mehdi.amini@apple.com> |
[NFC] Header cleanup
Summary: Removed unused headers, replaced some headers with forward class declarations
Patch by: Eugene <claprix@yandex.ru>
Differential Revision: https://reviews.llvm.org/D20
[NFC] Header cleanup
Summary: Removed unused headers, replaced some headers with forward class declarations
Patch by: Eugene <claprix@yandex.ru>
Differential Revision: https://reviews.llvm.org/D20100
llvm-svn: 275882
show more ...
|
#
59f77921 |
| 24-Jun-2016 |
David Majnemer <david.majnemer@gmail.com> |
Use more ArrayRefs
No functional change is intended, just a small refactoring.
llvm-svn: 273647
|
Revision tags: llvmorg-3.8.1, llvmorg-3.8.1-rc1 |
|
#
cfeacf56 |
| 27-May-2016 |
Benjamin Kramer <benny.kra@googlemail.com> |
Apply clang-tidy's misc-move-constructor-init throughout Clang.
No functionality change intended, maybe a tiny performance improvement.
llvm-svn: 270996
|
#
30d46687 |
| 08-Mar-2016 |
Anna Zaks <ganna@apple.com> |
[analyzer] Fix missed leak from MSVC specific allocation functions
Add the wide character strdup variants (wcsdup, _wcsdup) and the MSVC version of alloca (_alloca) and other differently named funct
[analyzer] Fix missed leak from MSVC specific allocation functions
Add the wide character strdup variants (wcsdup, _wcsdup) and the MSVC version of alloca (_alloca) and other differently named function used by the Malloc checker.
A patch by Alexander Riccio!
Differential Revision: http://reviews.llvm.org/D17688
llvm-svn: 262894
show more ...
|
Revision tags: llvmorg-3.8.0, llvmorg-3.8.0-rc3, llvmorg-3.8.0-rc2, llvmorg-3.8.0-rc1 |
|
#
73f018e3 |
| 13-Jan-2016 |
Artem Dergachev <artem.dergachev@gmail.com> |
[analyzer] Fix SVal/SymExpr/MemRegion class and enum names for consistency.
The purpose of these changes is to simplify introduction of definition files for the three hierarchies.
1. For every sub-
[analyzer] Fix SVal/SymExpr/MemRegion class and enum names for consistency.
The purpose of these changes is to simplify introduction of definition files for the three hierarchies.
1. For every sub-class C of these classes, its kind in the relevant enumeration is changed to "CKind" (or C##Kind in preprocessor-ish terms), eg:
MemRegionKind -> MemRegionValKind RegionValueKind -> SymbolRegionValueKind CastSymbolKind -> SymbolCastKind SymIntKind -> SymIntExprKind
2. MemSpaceRegion used to be inconsistently used as both an abstract base and a particular region. This region class is now an abstract base and no longer occupies GenericMemSpaceRegionKind. Instead, a new class, CodeSpaceRegion, is introduced for handling the unique use case for MemSpaceRegion as "the generic memory space" (when it represents a memory space that holds all executable code).
3. BEG_ prefixes in memory region kind ranges are renamed to BEGIN_ for consisitency with symbol kind ranges.
4. FunctionTextRegion and BlockTextRegion are renamed to FunctionCodeRegion and BlockCodeRegion, respectively. The term 'code' is less jargony than 'text' and we already refer to BlockTextRegion as a 'code region' in BlockDataRegion.
Differential Revision: http://reviews.llvm.org/D16062
llvm-svn: 257598
show more ...
|