mirror of
https://github.com/intel/llvm.git
synced 2026-01-16 21:55:39 +08:00
### Summary Reland: wcscpy/wcsncpy interceptors and stabilize wchar tests on Darwin/Android. Functional reland (runtime + tests). ### Context Reland of #160493 and #161624; previously reverted by #162021 and #162001 to restore green. ### Motivation - Restore wchar interceptors (wcscpy/wcsncpy), broaden ASan coverage, and improve Windows parity with narrow-string checks. - Make tests robust across Darwin/Android to keep bots green. ### Runtime (wcscpy/wcsncpy) - Add overlap checks; mark read/write ranges in bytes. - Use MaybeRealWcsnlen when available to bound reads. - Register Windows static runtime thunk where applicable. ### Tests (wcscpy/wcsncpy/wcscat/wcsncat) - Android: keep `%env_asan_opts=log_to_stderr=1` so the ASan header is on stderr. - Darwin: tolerate reordering by putting all four key lines in one DAG group: ```cpp // CHECK-DAG: Good so far. // CHECK-DAG: ERROR: AddressSanitizer: stack-buffer-overflow on address [[ADDR:...]] at pc {{...}} bp {{...}} sp {{...}} // CHECK-DAG: WRITE of size {{[0-9]+}} at [[ADDR]] thread T0 // CHECK-DAG: #0 {{0x[0-9a-f]+}} in <func> ``` ### Risk - Functional reland (runtime + tests), intended to restore functionality and maintain stability across platforms. --------- Signed-off-by: Yixuan Cao <caoyixuan2019@email.szu.edu.cn>
Compiler-RT ================================ This directory and its subdirectories contain source code for the compiler support routines. Compiler-RT is open source software. You may freely distribute it under the terms of the license agreement found in LICENSE.txt. ================================