<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/74585>74585</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
AddressSanitizer-x86_64-windows :: TestCases/memcmp_test.cpp is flaky
</td>
</tr>
<tr>
<th>Labels</th>
<td>
compiler-rt:asan,
platform:windows
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
zmodem
</td>
</tr>
</table>
<pre>
(From https://crbug.com/1287118)
The test seems to fail every now and again, for example (from https://logs.chromium.org/logs/chromium/buildbucket/cr-buildbucket/8762644387542863073/+/u/package_clang/stdout):
```
Testing:
FAIL: AddressSanitizer-x86_64-windows :: TestCases/memcmp_test.cpp (451 of 76102)
******************** TEST 'AddressSanitizer-x86_64-windows :: TestCases/memcmp_test.cpp' FAILED ********************
Exit Code: 1
Command Output (stdout):
--
# RUN: at line 1
C:/b/s/w/ir/cache/builder/src/third_party/llvm-build/Release+Asserts/./bin/clang.exe -fsanitize=address -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only -gcodeview -gcolumn-info -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta -O0 C:\b\s\w\ir\cache\builder\src\third_party\llvm\compiler-rt\test\asan\TestCases\memcmp_test.cpp -o C:\b\s\w\ir\cache\builder\src\third_party\llvm-build\Release+Asserts\runtimes\runtimes-x86_64-pc-windows-msvc-bins\compiler-rt\test\asan\X86_64WindowsConfig\TestCases\Output\memcmp_test.cpp.tmp && not C:\b\s\w\ir\cache\builder\src\third_party\llvm-build\Release+Asserts\runtimes\runtimes-x86_64-pc-windows-msvc-bins\compiler-rt\test\asan\X86_64WindowsConfig\TestCases\Output\memcmp_test.cpp.tmp 2>&1 | FileCheck C:\b\s\w\ir\cache\builder\src\third_party\llvm\compiler-rt\test\asan\TestCases\memcmp_test.cpp
# executed command: C:/b/s/w/ir/cache/builder/src/third_party/llvm-build/Release+Asserts/./bin/clang.exe -fsanitize=address -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer -fno-optimize-sibling-calls -gline-tables-only -gcodeview -gcolumn-info -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta -O0 'C:\b\s\w\ir\cache\builder\src\third_party\llvm\compiler-rt\test\asan\TestCases\memcmp_test.cpp' -o 'C:\b\s\w\ir\cache\builder\src\third_party\llvm-build\Release+Asserts\runtimes\runtimes-x86_64-pc-windows-msvc-bins\compiler-rt\test\asan\X86_64WindowsConfig\TestCases\Output\memcmp_test.cpp.tmp'
# .---command stdout------------
# | Creating library C:\b\s\w\ir\cache\builder\src\third_party\llvm-build\Release+Asserts\runtimes\runtimes-x86_64-pc-windows-msvc-bins\compiler-rt\test\asan\X86_64WindowsConfig\TestCases\Output\memcmp_test.cpp.lib and object C:\b\s\w\ir\cache\builder\src\third_party\llvm-build\Release+Asserts\runtimes\runtimes-x86_64-pc-windows-msvc-bins\compiler-rt\test\asan\X86_64WindowsConfig\TestCases\Output\memcmp_test.cpp.exp
# `-----------------------------
# executed command: not 'C:\b\s\w\ir\cache\builder\src\third_party\llvm-build\Release+Asserts\runtimes\runtimes-x86_64-pc-windows-msvc-bins\compiler-rt\test\asan\X86_64WindowsConfig\TestCases\Output\memcmp_test.cpp.tmp'
# executed command: FileCheck 'C:\b\s\w\ir\cache\builder\src\third_party\llvm\compiler-rt\test\asan\TestCases\memcmp_test.cpp'
# .---command stderr------------
# | C:\b\s\w\ir\cache\builder\src\third_party\llvm\compiler-rt\test\asan\TestCases\memcmp_test.cpp:15:12: error: CHECK: expected string not found in input
# | // CHECK: {{#[0-9]+ .*main}}
# | ^
# | <stdin>:8:113: note: scanning from here
# | #0 0x7ff72b7f100f in main C:\b\s\w\ir\cache\builder\src\third_party\llvm\compiler-rt\test\asan\TestCases\memcmp_test.cpp:9
# | ^
# | <stdin>:15:191: note: possible intended match here
# | SUMMARY: AddressSanitizer: stack-buffer-overflow C:\b\s\w\ir\cache\builder\src\third_party\llvm\compiler-rt\lib\sanitizer_common\sanitizer_common_interceptors.inc:813 in MemcmpInterceptorCommon(void *, int (__cdecl *)(void const *, void const *, unsigned __int64), void const *, void const *, unsigned __int64)
# | ^
# |
# | Input file: <stdin>
# | Check file: C:\b\s\w\ir\cache\builder\src\third_party\llvm\compiler-rt\test\asan\TestCases\memcmp_test.cpp
# |
# | -dump-input=help explains the following input dump.
# |
# | Input was:
# | <<<<<<
# | 1: =================================================================
# | 2: ==6204==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x002a351df704 at pc 0x7ff72b8298e3 bp 0x002a351dedc0 sp 0x002a351dee00
# | 3: READ of size 5 at 0x002a351df704 thread T0
# | 4: #0 0x7ff72b8298e2 in MemcmpInterceptorCommon(void *, int (__cdecl *)(void const *, void const *, unsigned __int64), void const *, void const *, unsigned __int64) C:\b\s\w\ir\cache\builder\src\third_party\llvm\compiler-rt\lib\sanitizer_common\sanitizer_common_interceptors.inc:813
# | 5: #1 0x2a350dffff (<unknown module>)
# | 6:
# | 7: Address 0x002a351df704 is located in stack of thread T0 at offset 36 in frame
# | 8: #0 0x7ff72b7f100f in main C:\b\s\w\ir\cache\builder\src\third_party\llvm\compiler-rt\test\asan\TestCases\memcmp_test.cpp:9
# | check:15'0 X~~~~~~~~~~~ error: no match found
# | 9:
# | check:15'0 ~
# | 10: This frame has 2 object(s):
# | check:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 11: [32, 36) 'a1' (line 10) <== Memory access at offset 36 overflows this variable
# | check:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 12: [48, 52) 'a2' (line 11)
# | check:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~
# | 13: HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork
# | check:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 14: (longjmp, SEH and C++ exceptions *are* supported)
# | check:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 15: SUMMARY: AddressSanitizer: stack-buffer-overflow C:\b\s\w\ir\cache\builder\src\third_party\llvm\compiler-rt\lib\sanitizer_common\sanitizer_common_interceptors.inc:813 in MemcmpInterceptorCommon(void *, int (__cdecl *)(void const *, void const *, unsigned __int64), void const *, void const *, unsigned __int64)
# | check:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | check:15'1 ? possible intended match
# | 16: Shadow bytes around the buggy address:
# | check:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 17: 0x002a351df480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
# | check:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 18: 0x002a351df500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
# | check:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 19: 0x002a351df580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
# | check:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | 20: 0x002a351df600: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
# | check:15'0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | .
# | .
# | .
# | >>>>>>
# `-----------------------------
# error: command failed with exit status: 1
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWl9v2zgS_zTMy0CGRFmS_ZAHR4mxxV13gTSL3XsKKGlkcyORAknFdh_62Q9D2Y3jJE7bdC_NdQnCfyiKnPlx5scZSsJauVCIpyw5Y8n5iejdUpvTj62usD0pdLU5ZXwyN7qFpXOdZfGM8Tnj89IU_WJU6pbxecQnWRRNGJ-y8JyFs-Hzaong0DqwiK0Fp6EWsgG8RbMBpVcgVAViIaRiPIdaG8C1aLsGgfFJ_XDGRi_sqFwa3cq-HWmz2LaRMNtWxudFL5uq6MsbdF7K4H7DJEt5Oh7HkywZ80kah1nsRz9jfN4zPu9EeSMWeF02QtEE1lW6d6RZPNtXjqXhtg66onVSLVg8g6EB5rN3_6a_s6oyaO0HoaSTH9EE60l6nY6DlVSVXlmgceMZ0AC5sEjatNiWbXdN2I3KriM4xkkEuoYsjUL-GWZgfPbNFa4uPlwB49nLBWQ88-penL9Ioq1SF2vpINcV0qzRTtPhK9dtS1bzW--63hEwD9cHguAzPDFc_v4rjSMcNFLh5_HywaoKWmHG5yvG59KQvYhyiTsrQmqxpmR87pbSVNedMG5DVtfctoNdMT6_xAaFRcbPZtaicTTeiIYgu557OxrhGiGo7RZiFp-LAXQIWqUD3UoXNCjqoDaixaDTUjk0ENS7i4-1d0628iMGVhaNVIugFE1jIViQnoETRYM20KrZQLAodYW3Elf-Z9O3KpCq1hD84ZYGRRVYUaPbHP4PDNZoUJX44EqBTgBA8Fs4IJnkBUtyy5J8xZJcGpbkA5JJvkMyyQnJJN9HMskJSeqs2042aALjqAta-hJWKJbkd4aX5IeeEejvMP92JZP84UomuemVky3u_9w5SFfufCRo7W0ZFFLZZ3T509_5x3BXrlUtFwcaDpb9UNWRa4kIUsZTUNr9VGpzFl8wnkbAshzmssF8ieXNq1reHsPgGsveYQXlQE5EN__Qy8vphciF8exVV5lnRDHfRYo3426MZ3vWPQqCYGvYMOy1wV7Z60i-CQC5QUGREDSyMMJsfhqiamThA1pd_IXlz8PPuN7nQpaGwbHyDG3SxvYzO9tjmNztd69Phk_zAhpzhBdeVex4FiX0wQlNNEYbv0P_cpH_y7esOywJc-sM8RbZYK17VYFUIBWt3AHJDdno3QgsO6PKY5achcGUJeeMn8GI8VlLuW12TvUBUe4KSy4OLrI4t66SiqKeeDYh2aN46x4-KbKlUIpkHZJkNPhQxDiEcJ3VdcaLrI7CsCZ1SJ7XXozpobbP6D8s3jTaB6DTlsISBApYVIUVtMKVy8eg-PD7-_ezy_88lol7KJ0ob4Kir2s0gb5FUzd69XdA1Eg_2m7ua_IdrR5puvZBWImd08aOpCrJBqKYlu-9B_Pd3fV8GIRPbrWshtw7J0woMb6-Lissm6F1uutTamXdrufDll7506AKrkmMdOzvfKzjl9367Erf__uOvA1q2fhF3jeDAzrxdLjr94OkAY_oE1R92wUDh8TnS2w6YptGSGXBLRFq3TR6RY7s-wB1H30JRCth74479tzmsD5JOhANCJ-_9XqID7_TK-XhePh1cXn52-XXMYBWsMuhwnUYchEnUVVn4RiEg678zK0TPp1gDEW31w2rMgR7rwXD8FDS_eLZ_fJidg66Bis_IiQ0z8HMQ44EVw-GGtPt9znfy8XfImn8kOR7ZO2SHfgRhGtarbCq67omNFmc9-pG6ZWCVlc90dUFaXgwWjqM8PQU2Z7tHhqFtNDoUlAAI9VgzGREd7YiHOi6tuggTqmLz_WPzTZ5aE0_WARxKH1J-8EQKvAshD8_3ZW7gE_pbZDgg7sj-k8fW46DKah8OugShf7Gq6W0W5CXwgLfJoSMT-xwSv3M0J-OlafFjqJB7OQs5uRZceotjWciYjwjaxzOv0PfTNuDp8_32GqzAVGWZFv3bGXHhbRXSQu3wkhBMdcLxP-GckRjvtN4PCGNE77TmN_TOHrE5b5U6COze87-5d2vV_TtEWrFBgoEAbVoLFKQKp28RZA1bHRvoDN6YUQLvUULVrcIZW-dbrde2ytKPaHFcimUtC3pZFeiK7VyuHagDdzW2tz8jxfg2XIEo93GNGm0WvxF2W4OHy5-8eckuX_mdga4JrqVWlnaFIRBxmdg-67TxmH1_Np5V3yx1D7L-CdZeM19_wcz6_-PcgzUCFg8fyqXPuLVPl75sBSVXkGxcWhBGH9gQjlN0S8Wm13s_MLd7kk19qXxwdFeUDSe-H04DL-u_s3Wd0g3Q5C1J3YSvgWxpw_Efgto8_BQ7PQtoH14FLBfvuaaP0e7X7_txH4XSu_OfWshG6xgJd0ScC0dbZCut3vvbXx-S-akOo2raTwVJ3gaZWE0ScMomZwsT3GK4yKJi6LmcVykWZGIsEwigaLAFMfZiTzlIY8jHqZRmCTJZFQlyKNiWqdVFE3DqmDjEFshmxFtpSNtFifS2h5Ps3EySU4aUWBj_dtNnO_vsvHMJxucomXGedcIV2vTsni2fQJAl5LzE3O6faCwsGwcNtI6ezeTk67B0-_wig_lDI242Zz0pjm9_9rTQrplX2zftPLhwvYJcWf0kFnMvcI0rNf5vwEAAP__1tDpQg">