Stephen Kelly
2dfd8132cf
Port getLocEnd -> getEndLoc
...
Reviewers: teemperor!
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D50351
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@339386 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-09 21:09:38 +00:00
Stephen Kelly
d7b659b592
Port getLocStart -> getBeginLoc
...
Reviewers: teemperor!
Subscribers: jholewinski, whisperity, jfb, cfe-commits
Differential Revision: https://reviews.llvm.org/D50350
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@339385 91177308-0d34-0410-b5e6-96231b3b80d8
2018-08-09 21:08:08 +00:00
Fangrui Song
abdbb605f2
Remove trailing space
...
sed -Ei 's/[[:space:]]+$//' include/**/*.{def,h,td} lib/**/*.{cpp,h}
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@338291 91177308-0d34-0410-b5e6-96231b3b80d8
2018-07-30 19:24:48 +00:00
Eugene Zelenko
79bbdd4289
[Analysis] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC).
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@327453 91177308-0d34-0410-b5e6-96231b3b80d8
2018-03-13 21:32:01 +00:00
Nico Weber
9ecb2a6660
Consolidate std::move() detection code. No behavior change.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@314427 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-28 16:16:39 +00:00
George Karpenkov
3e4f379cb6
[CSA] [NFC] Move AnalysisContext.h to AnalysisDeclContext.h
...
The implementation is in AnalysisDeclContext.cpp and the class is called
AnalysisDeclContext.
Making those match up has numerous benefits, including:
- Easier jump from header to/from implementation.
- Easily identify filename from class.
Differential Revision: https://reviews.llvm.org/D37500
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@312671 91177308-0d34-0410-b5e6-96231b3b80d8
2017-09-06 21:45:03 +00:00
Mehdi Amini
2e23251d3e
[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
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@275882 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-18 19:02:11 +00:00
David Majnemer
ba5c7ce848
Use more ArrayRefs
...
No functional change is intended, just a small refactoring.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273647 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-24 04:05:48 +00:00
Tim Shen
a0640f4d99
Re-commit "[Temporary] Add an ExprWithCleanups for each C++ MaterializeTemporaryExpr."
...
Since D21243 fixes relative clang-tidy tests.
This reverts commit a71d9fbd41
.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@273312 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-21 20:29:17 +00:00
Tim Shen
a71d9fbd41
Revert "[Temporary] Add an ExprWithCleanups for each C++ MaterializeTemporaryExpr."
...
This reverts r272296, since there are clang-tidy failures that appear to
be caused by this change.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@272310 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-09 21:13:39 +00:00
Tim Shen
e1fab5f946
[Temporary] Add an ExprWithCleanups for each C++ MaterializeTemporaryExpr.
...
These ExprWithCleanups are added for holding a RunCleanupsScope not
for destructor calls; rather, they are for lifetime marks. This requires
ExprWithCleanups to keep a bit to indicate whether it have cleanups with
side effects (e.g. dtor calls).
Differential Revision: http://reviews.llvm.org/D20498
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@272296 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-09 19:54:46 +00:00
Angel Garcia Gomez
d162035b9b
Roll-back r250822.
...
Summary: It breaks the build for the ASTMatchers
Subscribers: klimek, cfe-commits
Differential Revision: http://reviews.llvm.org/D13893
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@250827 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-20 13:23:58 +00:00
Angel Garcia Gomez
e83bf34da9
Apply modernize-use-default to clang.
...
Summary: Replace empty bodies of default constructors and destructors with '= default'.
Reviewers: bkramer, klimek
Subscribers: klimek, alexfh, cfe-commits
Differential Revision: http://reviews.llvm.org/D13890
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@250822 91177308-0d34-0410-b5e6-96231b3b80d8
2015-10-20 12:52:55 +00:00
David Blaikie
dbe3712f62
unique_ptrify ConsumedBlockInfo analysis to make it move assignable
...
ConsumedBlockInfo objects were move assigned, but only in a state where
the dtor was a no-op anyway. Subtle and easily could've happened in ways
that wouldn't've been safe - so this change makes it safe no matter what
state the ConsumedBlockInfo object is in.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@244998 91177308-0d34-0410-b5e6-96231b3b80d8
2015-08-14 01:26:19 +00:00
Alexander Kornienko
8ca7705aa3
Revert r240270 ("Fixed/added namespace ending comments using clang-tidy").
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@240353 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-22 23:07:51 +00:00
Alexander Kornienko
ac58acc7f2
Fixed/added namespace ending comments using clang-tidy. NFC
...
The patch is generated using this command:
$ tools/extra/clang-tidy/tool/run-clang-tidy.py -fix \
-checks=-*,llvm-namespace-comment -header-filter='llvm/.*|clang/.*' \
work/llvm/tools/clang
To reduce churn, not touching namespaces spanning less than 10 lines.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@240270 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-22 09:47:44 +00:00
DeLesley Hutchins
b01e0c6191
Fix for PR20402 in -Wconsumed.
...
https://llvm.org/bugs/show_bug.cgi?id=20402
Patch by Chris Wailes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@235051 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-15 22:32:44 +00:00
Benjamin Kramer
97b013b9e9
Make helper functions static
...
NFC.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@231657 91177308-0d34-0410-b5e6-96231b3b80d8
2015-03-09 15:03:32 +00:00
Artyom Skrobov
ef0ecd47b3
Reverting r214064 and r215650 while investigating a pesky performance regression
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@218296 91177308-0d34-0410-b5e6-96231b3b80d8
2014-09-23 08:34:41 +00:00
Artyom Skrobov
8e28c5794a
Use the proper post-order traversal in LiveVariables analysis,
...
to recover the performance after r214064.
Also sorts out the naming for PostOrderCFGView, ReversePostOrderCFGView,
BackwardDataflowWorklist and ForwardDataflowWorklist, to match the accepted
terminology.
Also unifies BackwardDataflowWorklist and ForwardDataflowWorklist to share
the "worklist for prioritization, post-order traversal for fallback" logic,
and to avoid repetitive sorting.
Also cleans up comments in the affected area.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@215650 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-14 16:04:47 +00:00
Richard Trieu
62c949d481
Move the logic for testing for namespace std into one location. This check can
...
be performed by using Decl::isInStdNamespace or DeclContext::isStdNamespace
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209708 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-28 02:16:01 +00:00
Craig Topper
fa361696b1
[C++11] Use 'nullptr'. Analysis edition.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209191 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-20 04:30:07 +00:00
Manuel Klimek
f439181e7c
Explicitly keep track of temporaries during the consumed analysis.
...
This makes the consumed analysis less dependent on the CFG layout and fixes
a bug where we wouldn't warn on an unconsumed value.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@208300 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-08 11:50:00 +00:00
Aaron Ballman
03ebcc8297
Updated the attribute tablegen emitter for variadic arguments to emit a range accessor in addition to the iterators. Updated code using iterators to use range-based for loops.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207837 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-02 13:35:42 +00:00
Aaron Ballman
f977428a85
Renaming the CallableState variadic attribute argument to be CallableStates. No functional changes intended.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207836 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-02 13:17:57 +00:00
Aaron Ballman
986027020e
Renaming range-based for loop variables so they don't appear iterator-like.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207422 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-28 14:56:59 +00:00
Aaron Ballman
78beaaae9d
[C++11] Converting to range-based for loops. No functional changes intended.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@207416 91177308-0d34-0410-b5e6-96231b3b80d8
2014-04-28 13:01:32 +00:00
DeLesley Hutchins
b3efa4b347
Consumed Analysis: IgnoreParens bugfix.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204395 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-20 20:39:20 +00:00
Aaron Ballman
47aa3ca54b
[C++11] Replacing DeclStmt iterators decl_begin() and decl_end() with iterator_range decls(). Updating all of the usages of the iterators with range-based for loops.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203947 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-14 17:01:24 +00:00
Ahmed Charles
f8b74ee5f0
[C++11] Replace OwningPtr include with <memory>.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203389 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-09 11:36:40 +00:00
Ahmed Charles
70639e8de3
Replace OwningPtr with std::unique_ptr.
...
This compiles cleanly with lldb/lld/clang-tools-extra/llvm.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203279 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-07 20:03:18 +00:00
Ahmed Charles
789a4f820d
Change OwningPtr::take() to OwningPtr::release().
...
This is a precursor to moving to std::unique_ptr.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203275 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-07 19:33:25 +00:00
Aaron Ballman
126b7b996c
[C++11] Replacing FunctionDecl iterators param_begin() and param_end() with iterator_range params(). Updating all of the usages of the iterators with range-based for loops.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203248 91177308-0d34-0410-b5e6-96231b3b80d8
2014-03-07 15:12:56 +00:00
DeLesley Hutchins
31d021721b
Consumed analysis: bugfix for operator calls. Also fixes some formatting
...
issues, a few testcases, and kills fish.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199436 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-16 23:07:16 +00:00
DeLesley Hutchins
95c2c29065
Consumed analysis: add two new attributes which fine-tune the behavior of
...
consumable objects. These are useful for implementing error codes that
must be checked. Patch also includes some significant refactoring, which was
necesary to implement the new behavior.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199169 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-14 00:36:53 +00:00
Chandler Carruth
4b9be6e25f
Sort all the #include lines with LLVM's utils/sort_includes.py which
...
encodes the canonical rules for LLVM's style. I noticed this had drifted
quite a bit when cleaning up LLVM, so wanted to clean up Clang as well.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198686 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-07 11:51:46 +00:00
Aaron Ballman
5d3df2ffb9
Switched code from using hasAttr followed by getAttr to simply call getAttr directly and check the resulting value. Also fixes some minor formatting issues surrounding the getAttr code.
...
No functional changes intended.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197649 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-19 02:58:51 +00:00
Richard Trieu
ea8113b35a
For -Wconsumed, walk the namespaces to find if the top most namespace is "std"
...
to determine if a move function is the std::move function. This allows functions
like std::__1::move to also be treated a the move function.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197445 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-17 00:40:40 +00:00
Richard Trieu
ae7040c165
Fix PR18260 - Make std::move handling in -Wconsumed only trigger on std::move
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197428 91177308-0d34-0410-b5e6-96231b3b80d8
2013-12-16 21:41:30 +00:00
DeLesley Hutchins
4c3e0bc785
Consumed analysis: track state of temporary objects.
...
Earlier versions discarded the state too soon, and did not track state changes,
e.g. when passing a temporary to a move constructor. Patch by
chris.wailes@gmail.com ; review and minor fixes by delesley.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194900 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-16 00:22:43 +00:00
Chris Wailes
1aa89697dc
Fixed bug with checking the kind of types.
...
The isLValueReferenceType function checks to see if the QualType's
canonical type is an LValue reference, and not if the QualType
itself is an LValue reference. This caused a segfault when trying
to cast the QualType's Type to a LValueReference. This is now
fixed by casting the result of getCanonicalType().
In addition, a test was added to isConsumableType to prevent
segfaults when a type being tested by the analysis is a reference
to a pointer or a pointer to a reference.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193751 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-31 15:38:12 +00:00
Chris Wailes
0e429f1f48
Changed tests_typestate to test_typestate for consistency.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193648 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-29 20:28:41 +00:00
Chris Wailes
a0cbcabb1b
Used OwningPtr to clean up some memory management in Consumed.cpp.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193414 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-25 15:33:28 +00:00
Chris Wailes
de2204b560
Replaced duplicate code with calls to forwardInfo.
...
Also made move constructor handling safer.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193347 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-24 14:28:17 +00:00
DeLesley Hutchins
13be03222f
Consumed analysis: fix assert failure.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193010 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-18 23:11:49 +00:00
DeLesley Hutchins
be63ab6612
Consumed analysis: assume that non-const reference parameters are initially
...
in the "uknown" state. Patch by chris.wailes@gmail.com . Reviewed by delesley.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192995 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-18 19:25:18 +00:00
DeLesley Hutchins
c5cdafcdb8
Consumed analysis: All the return_typestate parameter to be attached to the
...
default constructor. Patch by chris.wailes@gmail.com , reviewed by delesley.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192991 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-18 18:36:21 +00:00
DeLesley Hutchins
d4f0e1991f
Consumed analysis: Add param_typestate attribute, which specifies that
...
function parameters must be in a particular state. Patch by
chris.wailes@gmail.com . Reviewed by delesley@google.com .
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192934 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-17 23:23:53 +00:00
DeLesley Hutchins
cd0f6d7600
Consumed Analysis: Allow parameters that are passed by non-const reference
...
to be treated as return values, and marked with the "returned_typestate"
attribute. Patch by chris.wailes@gmail.com ; reviewed by delesley@google.com .
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192932 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-17 22:53:04 +00:00
DeLesley Hutchins
52f717eba7
Consumed analysis: fix ICE in handling of loop source locations.
...
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192911 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-17 18:19:31 +00:00