forked from OSchip/llvm-project
6ccc1c342a
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 |
||
---|---|---|
.. | ||
clang-tidy | ||
CMakeLists.txt | ||
Doxyfile | ||
ModularizeUsage.rst | ||
README.txt | ||
ReleaseNotes.rst | ||
clang-modernize.rst | ||
clang-rename.rst | ||
clang-tidy.rst | ||
clangd.rst | ||
conf.py | ||
cpp11-migrate.rst | ||
doxygen-mainpage.dox | ||
doxygen.cfg.in | ||
include-fixer.rst | ||
index.rst | ||
make.bat | ||
modularize.rst | ||
pp-trace.rst |
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.