Author: aaronballman Date: Mon Oct 12 07:57:55 2015 New Revision: 250034 URL: http://llvm.org/viewvc/llvm-project?rev=250034&view=rev Log: Added documentation for misc-throw-by-value-catch-by-reference.
Patch by Tobias Langner. Added: clang-tools-extra/trunk/docs/clang-tidy/checks/misc-throw-by-value-catch-by-reference.rst Modified: clang-tools-extra/trunk/docs/clang-tidy/checks/list.rst Modified: clang-tools-extra/trunk/docs/clang-tidy/checks/list.rst URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/list.rst?rev=250034&r1=250033&r2=250034&view=diff ============================================================================== --- clang-tools-extra/trunk/docs/clang-tidy/checks/list.rst (original) +++ clang-tools-extra/trunk/docs/clang-tidy/checks/list.rst Mon Oct 12 07:57:55 2015 @@ -40,6 +40,7 @@ List of clang-tidy Checks misc-sizeof-container misc-static-assert misc-swapped-arguments + misc-throw-by-value-catch-by-reference misc-undelegated-constructor misc-uniqueptr-reset-release misc-unused-alias-decls Added: clang-tools-extra/trunk/docs/clang-tidy/checks/misc-throw-by-value-catch-by-reference.rst URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/docs/clang-tidy/checks/misc-throw-by-value-catch-by-reference.rst?rev=250034&view=auto ============================================================================== --- clang-tools-extra/trunk/docs/clang-tidy/checks/misc-throw-by-value-catch-by-reference.rst (added) +++ clang-tools-extra/trunk/docs/clang-tidy/checks/misc-throw-by-value-catch-by-reference.rst Mon Oct 12 07:57:55 2015 @@ -0,0 +1,11 @@ +misc-throw-by-value-catch-by-reference +====================================== + +Finds violations of the rule "Throw by value, catch by reference" presented for example in "C++ Coding Standards" by H. Sutter and A. Alexandrescu. This check also has the option to find violations of the rule "Throw anonymous temporaries" (https://www.securecoding.cert.org/confluence/display/cplusplus/ERR09-CPP.+Throw+anonymous+temporaries). The option is named "CheckThrowTemporaries" and it's on by default. + +Exceptions: +- throwing string literals will not be flagged despite being a pointer. They are not susceptible to slicing and the usage of string literals is idomatic. +- catching character pointers (char, wchar_t, unicode character types) will not be flagged to allow catching sting literals. +- moved named values will not be flagged as not throwing an anonymous temporary. In this case we can be sure that the user knows that the object can't be accessed outside catch blocks handling the error. +- throwing function parameters will not be flagged as not throwing an anonymous temporary. This allows helper functions for throwing. +- re-throwing caught exception variables will not be flragged as not throwing an anonymous temporary. Although this can usually be done by just writing "throw;" it happens often enough in real code. _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits