llvm-project/clang-tools-extra/docs
Jonas Toth 6ccc1c342a [clang-tidy] Implement type-based check for `gsl::owner`
This check implements the typebased semantic of `gsl::owner`.
Meaning, that 
- only `gsl::owner` is allowed to get `delete`d
- `new` expression must be assigned to `gsl::owner`
- function calls that expect `gsl::owner` as argument, must get either an owner
  or a newly created and recognized resource (in the moment only `new`ed memory)
- assignment to `gsl::owner` must be either a resource or another owner
- functions returning an `gsl::owner` are considered as factories, and their result
  must be assigned to an `gsl::owner`
- classes that have an `gsl::owner`-member must declare a non-default destructor

There are some problems that occur when typededuction is in place.
For example `auto Var = function_that_returns_owner();` the type of `Var` will not be
an `gsl::owner`. This case is catched, and explicitly noted.

But cases like fully templated functions
```
template <typename T> 
void f(T t) { delete t; }
// ...
f(gsl::owner<int*>(new int(42)));
```
Will created false positive (the deletion is problematic), since the type deduction
removes the wrapping `typeAlias`.

Codereview in D36354

llvm-svn: 313067
2017-09-12 20:00:42 +00:00
..
clang-tidy [clang-tidy] Implement type-based check for `gsl::owner` 2017-09-12 20:00:42 +00:00
CMakeLists.txt docs: Fix Sphinx detection with out-of-tree builds 2017-05-09 11:11:52 +00:00
Doxyfile [clang-tidy] Move clang-tidy docs to a separate directory. Create doc files for checks 2015-08-27 18:10:07 +00:00
ModularizeUsage.rst Remove trailing whitespace in docs and clang-tidy sources. 2016-12-13 16:38:45 +00:00
README.txt cpp11-migrate: Add Replace-AutoPtr Transform 2013-07-03 13:21:24 +00:00
ReleaseNotes.rst [clang-tidy] Implement type-based check for `gsl::owner` 2017-09-12 20:00:42 +00:00
clang-modernize.rst Orphaning these RST files; each one is retained only for link backwards compatibility. 2015-12-28 19:59:15 +00:00
clang-rename.rst clang-rename: add new -force option 2017-06-02 09:32:28 +00:00
clang-tidy.rst [clang-tidy] Use relative URL for redirection. 2016-01-27 11:37:12 +00:00
clangd.rst [clangd] Cleanup ClangdUnit.cpp, update docs; NFC 2017-06-28 20:57:28 +00:00
conf.py Bump docs version to 6.0 2017-07-19 13:51:07 +00:00
cpp11-migrate.rst Orphaning these RST files; each one is retained only for link backwards compatibility. 2015-12-28 19:59:15 +00:00
doxygen-mainpage.dox [docs] Fix docs to work with doxygen 1.8.11 2016-03-03 10:45:59 +00:00
doxygen.cfg.in [docs] Tell Doxygen to expand LLVM_ALIGNAS to nothing 2017-01-19 13:38:19 +00:00
include-fixer.rst [docs] Remove doubled spaces 2016-11-17 14:26:45 +00:00
index.rst [clangd] Add documentation page 2017-05-04 19:57:53 +00:00
make.bat
modularize.rst [docs] Remove doubled spaces 2016-11-17 14:26:45 +00:00
pp-trace.rst [docs] Remove doubled spaces 2016-11-17 14:26:45 +00:00

README.txt

-------------------------------------------------------------
Documentation for the tools of clang-tools-extra repo project
-------------------------------------------------------------

Sphinx and doxygen documentation is generated by executing make.

Sphinx html files can be generated separately using make html.

Doxygen html files can also be generated using make doxygen.

The generated documentation will be placed in _build/html.