| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
[compiler-rt] Add CMake option to enable execute-only code generation on AArch64 (#140555) For a full toolchain supporting execute-only code generation the runtime libraries also need to be pre-compiled with it enabled. The generic RUNTIMES_EXECUTE_ONLY_CODE CMake option can now be used during build configuration to enable execute-only code generation in compiler-rt. The build option can only be enabled for a runtimes build of compiler-rt, because a recent version of Clang is needed to correctly compile assembly files with execute-only code support. Related RFC: https://discourse.llvm.org/t/rfc-execute-only-code-support-for-runtime-libraries-on-aarch64/86180 | 8 个月前 | |
Revert "sanitizers: increase .clang-format columns to 100" This reverts commit 5d1df6d220f1d6f726d9643848679d781750db64. There is a strong objection to this change: https://reviews.llvm.org/D106436#2905618 Reviewed By: dblaikie Differential Revision: https://reviews.llvm.org/D106847 | 4 年前 | |
| 1 年前 | ||
Reapply "[msan] Automatically print shadow for failing outlined checks" (#145611) (#145615) This reverts commit 5eb5f0d8760c6b757c1da22682b5cf722efee489 i.e., relands 1b71ea411a9d36705663b1724ececbdfec7cc98c. Test case was failing on aarch64 because the long double type is implemented differently on x86 vs aarch64. This reland restricts the test to x86. ---- Original CL description: A commonly used aid for debugging MSan reports is __msan_print_shadow(), which requires manual app code annotations (typically of the variable in the UUM report or nearby). This is in contrast to ASan, which automatically prints out the shadow map when a check fails. This patch changes MSan to print the shadow that failed an outlined check (checks are outlined per function after the -msan-instrumentation-with-call-threshold is exceeded) if verbosity >= 1. Note that we do not print out the shadow map of "neighboring" variables because this is technically infeasible; see "Caveat" below. This patch can be easier to use than __msan_print_shadow() because this does not require manual app code annotations. Additionally, due to optimizations, __msan_print_shadow() calls can sometimes spuriously affect whether a variable is initialized. As a side effect, this patch also enables outlined checks for arbitrary-sized shadows (vs. the current hardcoded handlers for {1,2,4,8}-byte shadows). Caveat: the shadow does not necessarily correspond to an individual user variable, because MSan instrumentation may combine and/or truncate multiple shadows prior to emitting a check that the mangled shadow is zero (e.g., convertShadowToScalar(), handleSSEVectorConvertIntrinsic(), materializeInstructionChecks()). OTOH it is arguably a strength that this feature emit the shadow that directly matters for the MSan check, but which cannot be obtained using the MSan API. | 1 年前 | |
[msan] Mark allocator padding as uninitialized, with new origin tag (#157187) This is follow-up work per discussion in https://github.com/llvm/llvm-project/pull/155944#discussion_r2311688571. If the allocator reserves more space than the user requested (e.g., malloc(7) and calloc(7,1) actually have 16 bytes reserved), the padding bytes will now be marked as uninitialized. Padding poisoning is controlled by the existing flag poison_in_malloc (which applies to all allocation functions, not only malloc). Origin tag: - For calloc or with track-origins > 1, the origin will be set as a new tag, ALLOC_PADDING - Otherwise, the existing ALLOC tag will be used. - In the case of ambiguity caused by origin granularity, ALLOC will take precedence. | 9 个月前 | |
Export __ubsan_* symbols from MSan and TSan runtimes. llvm-svn: 235958 | 11 年前 | |
[msan] Mark allocator padding as uninitialized, with new origin tag (#157187) This is follow-up work per discussion in https://github.com/llvm/llvm-project/pull/155944#discussion_r2311688571. If the allocator reserves more space than the user requested (e.g., malloc(7) and calloc(7,1) actually have 16 bytes reserved), the padding bytes will now be marked as uninitialized. Padding poisoning is controlled by the existing flag poison_in_malloc (which applies to all allocation functions, not only malloc). Origin tag: - For calloc or with track-origins > 1, the origin will be set as a new tag, ALLOC_PADDING - Otherwise, the existing ALLOC tag will be used. - In the case of ambiguity caused by origin granularity, ALLOC will take precedence. | 9 个月前 | |
[sanitizer] Replace ALIGNED with alignas C++11 alignas is already used extensively. alignas must precede static, so adjust the ordering accordingly. msan.cpp: Clang 15 doesn't allow __attribute__((visibility("default"))) alignas(16). Use the order alignas(16) SANITIZER_INTERFACE_ATTRIBUTE. Tested with Clang 7. Pull Request: https://github.com/llvm/llvm-project/pull/98958 | 2 年前 | |
| 2 年前 | ||
[NFC][sanitizer] Rename Lock{Before,After}Fork suffixes locking StackDepotBase (#76279) This is preparation for performance optimization. We need to highlight that this is very specific lock, and should not be used for other purposes. Add fork_child parameter to distinguish processes after fork. | 2 年前 | |
[msan] Fix -Wcast-qual error in msan_dl.cpp Fix build breakage from https://reviews.llvm.org/D154272. (I accidentally dropped the fix when I relanded the patch.) | 3 年前 | |
Reland '[msan] Intercept dladdr1, and refactor dladdr' Relanding with #if SANITIZER_GLIBC to avoid breaking FreeBSD. Also incorporates Arthur's BUILD.gn fix (thanks!) from https://reviews.llvm.org/rGc1e283851772ba494113311405d48cfb883751d1 Original commit message: This patch adds an msan interceptor for dladdr1 (with support for RTLD_DL_LINKMAP and RTLD_DL_SYMENT) and an accompanying test. It also adds a helper file, msan_dl.cpp, that contains UnpoisonDllAddrInfo (refactored out of the dladdr interceptor) and UnpoisonDllAddr1ExtraInfo. Reviewed By: vitalybuka Differential Revision: https://reviews.llvm.org/D154272 | 3 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
[msan] Set poison_in_dtor=1 by default It's still disabled by default at compile time. Reviewed By: kstoimenov Differential Revision: https://reviews.llvm.org/D123875 | 4 年前 | |
[clang] accept -fsanitize-ignorelist= in addition to -fsanitize-blacklist= Use that for internal names (including the default ignorelists of the sanitizers). Differential Revision: https://reviews.llvm.org/D101832 | 5 年前 | |
msan: Support free_sized and free_aligned_sized from C23 (#144529) Adds support to MSan for free_sized and free_aligned_sized from C23. Other sanitizers will be handled with their own separate PRs. For https://github.com/llvm/llvm-project/issues/144435 Signed-off-by: Justin King <jcking@google.com> | 1 年前 | |
Reapply "[msan] Automatically print shadow for failing outlined checks" (#145611) (#145615) This reverts commit 5eb5f0d8760c6b757c1da22682b5cf722efee489 i.e., relands 1b71ea411a9d36705663b1724ececbdfec7cc98c. Test case was failing on aarch64 because the long double type is implemented differently on x86 vs aarch64. This reland restricts the test to x86. ---- Original CL description: A commonly used aid for debugging MSan reports is __msan_print_shadow(), which requires manual app code annotations (typically of the variable in the UUM report or nearby). This is in contrast to ASan, which automatically prints out the shadow map when a check fails. This patch changes MSan to print the shadow that failed an outlined check (checks are outlined per function after the -msan-instrumentation-with-call-threshold is exceeded) if verbosity >= 1. Note that we do not print out the shadow map of "neighboring" variables because this is technically infeasible; see "Caveat" below. This patch can be easier to use than __msan_print_shadow() because this does not require manual app code annotations. Additionally, due to optimizations, __msan_print_shadow() calls can sometimes spuriously affect whether a variable is initialized. As a side effect, this patch also enables outlined checks for arbitrary-sized shadows (vs. the current hardcoded handlers for {1,2,4,8}-byte shadows). Caveat: the shadow does not necessarily correspond to an individual user variable, because MSan instrumentation may combine and/or truncate multiple shadows prior to emitting a check that the mangled shadow is zero (e.g., convertShadowToScalar(), handleSSEVectorConvertIntrinsic(), materializeInstructionChecks()). OTOH it is arguably a strength that this feature emit the shadow that directly matters for the MSan check, but which cannot be obtained using the MSan API. | 1 年前 | |
[msan] Change personality CHECK to Printf() + Die() (#160626) This ports https://github.com/llvm/llvm-project/pull/142821 from TSan. Although MSan doesn't segfault the way TSan did, the failure message was nonetheless cryptic. The improved error message will prepare MSan for the upcoming AppArmorpocalypse. | 10 个月前 | |
[msan] Unwind stack before fatal reports (#77168) Msan does not unwind stack in malloc without origins, but we still need trace for fatal errors. | 2 年前 | |
[msan] Fix comment of __msan::Origin::isHeapOrigin | 6 年前 | |
[sanitizer] Replace uptr by usize/SIZE_T in interfaces For some targets uptr is mapped to unsigned int and size_t to unsigned long and sizeof(int)==sizeof(long) holds. Still, these are distinct types and type checking may fail. Therefore, replace uptr by usize/SIZE_T wherever a size_t is expected. Part of #116957 | 1 年前 | |
Update the file headers across all of the LLVM projects in the monorepo to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636 | 7 年前 | |
[msan] Mark allocator padding as uninitialized, with new origin tag (#157187) This is follow-up work per discussion in https://github.com/llvm/llvm-project/pull/155944#discussion_r2311688571. If the allocator reserves more space than the user requested (e.g., malloc(7) and calloc(7,1) actually have 16 bytes reserved), the padding bytes will now be marked as uninitialized. Padding poisoning is controlled by the existing flag poison_in_malloc (which applies to all allocation functions, not only malloc). Origin tag: - For calloc or with track-origins > 1, the origin will be set as a new tag, ALLOC_PADDING - Otherwise, the existing ALLOC tag will be used. - In the case of ambiguity caused by origin granularity, ALLOC will take precedence. | 9 个月前 | |
[msan] Strip __interceptor_ from reports Showing __interceptor_ as part of the function name in reports does not make sense and is distracting. Strip the interceptor function name before printing. Reviewed By: dvyukov, vitalybuka Differential Revision: https://reviews.llvm.org/D151343 | 3 年前 | |
| 1 年前 | ||
[msan] Block signals in MsanThread::Init If async signal handler called when we MsanThread::Init signal handler may trigger false reports. I failed to reproduce this locally for a test. Differential Revision: https://reviews.llvm.org/D113328 | 4 年前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 8 个月前 | ||
| 4 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 9 个月前 | ||
| 11 年前 | ||
| 9 个月前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 2 年前 | ||
| 3 年前 | ||
| 3 年前 | ||
| 7 年前 | ||
| 4 年前 | ||
| 5 年前 | ||
| 1 年前 | ||
| 1 年前 | ||
| 10 个月前 | ||
| 2 年前 | ||
| 6 年前 | ||
| 1 年前 | ||
| 7 年前 | ||
| 9 个月前 | ||
| 3 年前 | ||
| 1 年前 | ||
| 4 年前 |