kda updated this revision to Diff 352287. kda marked 2 inline comments as done. kda added a comment.
- more beauty, added UsersManual changes. Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D104155/new/ https://reviews.llvm.org/D104155 Files: clang/docs/AddressSanitizer.rst clang/docs/ClangCommandLineReference.rst clang/docs/UsersManual.rst Index: clang/docs/UsersManual.rst =================================================================== --- clang/docs/UsersManual.rst +++ clang/docs/UsersManual.rst @@ -1848,6 +1848,16 @@ link-time optimizations like whole program inter-procedural basic block reordering. +.. option:: -fsanitize-address-use-after-return=<mode> + + When paired with ``-fsanitize=address``, this changes how detection of stack use-after-return (UAR) behaves. + + * ``never``: Completely disables detection of UAR errors (reduces code size). + * ``runtime``: Adds the code for detection, but must be enabled via the runtime environment (``ASAN_OPTIONS=detect_stack_use_after_return=1``). + * ``always``: Enables detection of UAR errors in all cases. (reduces code size, but not as much as ``never``). + + The default is ``-fsanitize-address-use-after-return=runtime``. + Profile Guided Optimization --------------------------- @@ -3724,6 +3734,8 @@ Enable linker dead stripping of globals in AddressSanitizer -fsanitize-address-poison-custom-array-cookie Enable poisoning array cookies when using custom operator new[] in AddressSanitizer + -fsanitize-address-use-after-return=<mode> + Select the mode of detecting stack use-after-return in AddressSanitizer -fsanitize-address-use-after-scope Enable use-after-scope detection in AddressSanitizer -fsanitize-address-use-odr-indicator Index: clang/docs/ClangCommandLineReference.rst =================================================================== --- clang/docs/ClangCommandLineReference.rst +++ clang/docs/ClangCommandLineReference.rst @@ -881,6 +881,15 @@ * ``global`` - Emit module destructors that are called via a platform specific array (see `llvm.global_dtors`). * ``none`` - Do not emit module destructors. +.. option:: -fsanitize-address-use-after-return=<arg> + +Select the enabling method of detecting stack use-after-return in AddressSanitizer. + +Valid options are: +* ``never`` - Do not detect use-after-return. +* ``runtime`` - Detect use-after-return with runtime ON/OFF switch (environment variable `ASAN_OPTIONS=detect_stack_use_after_return=1`, default: 0) +* ``always`` - Detect use-after-return. + .. option:: -fsanitize-ignorelist=<arg> Path to ignorelist file for sanitizers Index: clang/docs/AddressSanitizer.rst =================================================================== --- clang/docs/AddressSanitizer.rst +++ clang/docs/AddressSanitizer.rst @@ -14,8 +14,9 @@ * Out-of-bounds accesses to heap, stack and globals * Use-after-free -* Use-after-return (runtime flag `ASAN_OPTIONS=detect_stack_use_after_return=1`) -* Use-after-scope (clang flag `-fsanitize-address-use-after-scope`) +* Use-after-return (clang flag ``-fsanitize-address-use-after-return=(always|runtime|never)`` default: ``runtime``) + * Enable ``runtime`` with: ``ASAN_OPTIONS=detect_stack_use_after_return=1`` +* Use-after-scope (clang flag ``-fsanitize-address-use-after-scope``) * Double-free, invalid free * Memory leaks (experimental)
Index: clang/docs/UsersManual.rst =================================================================== --- clang/docs/UsersManual.rst +++ clang/docs/UsersManual.rst @@ -1848,6 +1848,16 @@ link-time optimizations like whole program inter-procedural basic block reordering. +.. option:: -fsanitize-address-use-after-return=<mode> + + When paired with ``-fsanitize=address``, this changes how detection of stack use-after-return (UAR) behaves. + + * ``never``: Completely disables detection of UAR errors (reduces code size). + * ``runtime``: Adds the code for detection, but must be enabled via the runtime environment (``ASAN_OPTIONS=detect_stack_use_after_return=1``). + * ``always``: Enables detection of UAR errors in all cases. (reduces code size, but not as much as ``never``). + + The default is ``-fsanitize-address-use-after-return=runtime``. + Profile Guided Optimization --------------------------- @@ -3724,6 +3734,8 @@ Enable linker dead stripping of globals in AddressSanitizer -fsanitize-address-poison-custom-array-cookie Enable poisoning array cookies when using custom operator new[] in AddressSanitizer + -fsanitize-address-use-after-return=<mode> + Select the mode of detecting stack use-after-return in AddressSanitizer -fsanitize-address-use-after-scope Enable use-after-scope detection in AddressSanitizer -fsanitize-address-use-odr-indicator Index: clang/docs/ClangCommandLineReference.rst =================================================================== --- clang/docs/ClangCommandLineReference.rst +++ clang/docs/ClangCommandLineReference.rst @@ -881,6 +881,15 @@ * ``global`` - Emit module destructors that are called via a platform specific array (see `llvm.global_dtors`). * ``none`` - Do not emit module destructors. +.. option:: -fsanitize-address-use-after-return=<arg> + +Select the enabling method of detecting stack use-after-return in AddressSanitizer. + +Valid options are: +* ``never`` - Do not detect use-after-return. +* ``runtime`` - Detect use-after-return with runtime ON/OFF switch (environment variable `ASAN_OPTIONS=detect_stack_use_after_return=1`, default: 0) +* ``always`` - Detect use-after-return. + .. option:: -fsanitize-ignorelist=<arg> Path to ignorelist file for sanitizers Index: clang/docs/AddressSanitizer.rst =================================================================== --- clang/docs/AddressSanitizer.rst +++ clang/docs/AddressSanitizer.rst @@ -14,8 +14,9 @@ * Out-of-bounds accesses to heap, stack and globals * Use-after-free -* Use-after-return (runtime flag `ASAN_OPTIONS=detect_stack_use_after_return=1`) -* Use-after-scope (clang flag `-fsanitize-address-use-after-scope`) +* Use-after-return (clang flag ``-fsanitize-address-use-after-return=(always|runtime|never)`` default: ``runtime``) + * Enable ``runtime`` with: ``ASAN_OPTIONS=detect_stack_use_after_return=1`` +* Use-after-scope (clang flag ``-fsanitize-address-use-after-scope``) * Double-free, invalid free * Memory leaks (experimental)
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits