<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/61358>61358</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
CodeGen/AArch64/machine-outliner-remarks.ll global buffer overflow with ASAN on LLVM16.0.0rc4
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
RaitoBezarius
</td>
</tr>
</table>
<pre>
While recompiling LLVM16.0.0rc4 with ASAN support for #61350, I encountered this trace for another test:
```
FAIL: LLVM :: CodeGen/AArch64/machine-outliner-remarks.ll (3821 of 49638)
******************** TEST 'LLVM :: CodeGen/AArch64/machine-outliner-remarks.ll' FAILED ********************
Script:
--
: 'RUN: at line 1'; /run/user/2024/tmp.4X9omY51ws/llvm-src-16.0.0-rc4/llvm/build/bin/llc /run/user/2024/tmp.4X9omY51ws/llvm-src-16.0.0-rc4/llvm/test/CodeGen/AArch64/machine-outliner-remarks.ll -enable-machine-outliner -mtriple=aarch64-unknown-unknown -pass-remarks=machine-outliner -pass-remarks-missed=machine-outliner -o /dev/null 2>&1 | /run/user/2024/tmp.4X9omY51ws/llvm-src-16.0.0-rc4/llvm/build/bin/FileCheck /run/user/2024/tmp.4X9omY51ws/llvm-src-16.0.0-rc4/llvm/test/CodeGen/AArch64/machine-outliner-remarks.ll
: 'RUN: at line 10'; /run/user/2024/tmp.4X9omY51ws/llvm-src-16.0.0-rc4/llvm/build/bin/llc /run/user/2024/tmp.4X9omY51ws/llvm-src-16.0.0-rc4/llvm/test/CodeGen/AArch64/machine-outliner-remarks.ll -enable-machine-outliner -mtriple=aarch64-unknown-unknown -o /dev/null -pass-remarks-missed=machine-outliner -pass-remarks-output=/run/user/2024/tmp.4X9omY51ws/llvm-src-16.0.0-rc4/llvm/build/test/CodeGen/AArch64/Output/machine-outliner-remarks.ll.tmp.yaml
: 'RUN: at line 11'; cat /run/user/2024/tmp.4X9omY51ws/llvm-src-16.0.0-rc4/llvm/build/test/CodeGen/AArch64/Output/machine-outliner-remarks.ll.tmp.yaml | /run/user/2024/tmp.4X9omY51ws/llvm-src-16.0.0-rc4/llvm/build/bin/FileCheck /run/user/2024/tmp.4X9omY51ws/llvm-src-16.0.0-rc4/llvm/test/CodeGen/AArch64/machine-outliner-remarks.ll -check-prefix=YAML
--
Exit Code: 1
Command Output (stderr):
--
remark: <unknown>:0:0: Did not outline 2 instructions from 2 locations. Bytes from outlining all occurrences (16) >= Unoutlined instruction bytes (16) (Also found at: <UNKNOWN LOCATION>)
remark: <unknown>:0:0: Did not outline 2 instructions from 2 locations. Bytes from outlining all occurrences (16) >= Unoutlined instruction bytes (16) (Also found at: <UNKNOWN LOCATION>)
=================================================================
==122647==ERROR: AddressSanitizer: global-buffer-overflow on address 0x7faeec91949f at pc 0x7faef0dab141 bp 0x7ffcff3c2c60 sp 0x7ffcff3c2410
READ of size 1 at 0x7faeec91949f thread T0
#0 0x7faef0dab140 in __interceptor_strlen.part.0 (/nix/store/2w4k8nvdyiggz717ygbbxchpnxrqc6y9-gcc-12.2.0-lib/lib/libasan.so.8+0x4e140)
#1 0x7faedf6ac62b in (anonymous namespace)::MCAsmStreamer::getMnemonic(llvm::MCInst&) (/run/user/2024/tmp.4X9omY51ws/llvm-src-16.0.0-rc4/llvm/build/lib/libLLVM-16.so+0xb33462b)
#2 0x7faeda06faad in llvm::AsmPrinter::emitFunctionBody() [clone .localalias] (/run/user/2024/tmp.4X9omY51ws/llvm-src-16.0.0-rc4/llvm/build/lib/libLLVM-16.so+0x5cf7aad)
#3 0x7faee2807fb5 in (anonymous namespace)::AArch64AsmPrinter::runOnMachineFunction(llvm::MachineFunction&) (/run/user/2024/tmp.4X9omY51ws/llvm-src-16.0.0-rc4/llvm/build/lib/libLLVM-16.so+0xe48ffb5)
#4 0x7faed815a2c5 in llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/run/user/2024/tmp.4X9omY51ws/llvm-src-16.0.0-rc4/llvm/build/lib/libLLVM-16.so+0x3de22c5)
#5 0x7faed72046cd in llvm::FPPassManager::runOnFunction(llvm::Function&) [clone .localalias] (/run/user/2024/tmp.4X9omY51ws/llvm-src-16.0.0-rc4/llvm/build/lib/libLLVM-16.so+0x2e8c6cd)
#6 0x7faed72050af in llvm::FPPassManager::runOnModule(llvm::Module&) (/run/user/2024/tmp.4X9omY51ws/llvm-src-16.0.0-rc4/llvm/build/lib/libLLVM-16.so+0x2e8d0af)
#7 0x7faed7207788 in (anonymous namespace)::MPPassManager::runOnModule(llvm::Module&) (/run/user/2024/tmp.4X9omY51ws/llvm-src-16.0.0-rc4/llvm/build/lib/libLLVM-16.so+0x2e8f788)
#8 0x7faed7208bbb in llvm::legacy::PassManagerImpl::run(llvm::Module&) [clone .localalias] (/run/user/2024/tmp.4X9omY51ws/llvm-src-16.0.0-rc4/llvm/build/lib/libLLVM-16.so+0x2e90bbb)
#9 0x445de0 in compileModule(char**, llvm::LLVMContext&) (/run/user/2024/tmp.4X9omY51ws/llvm-src-16.0.0-rc4/llvm/build/bin/llc+0x445de0)
#10 0x41f9a8 in main (/run/user/2024/tmp.4X9omY51ws/llvm-src-16.0.0-rc4/llvm/build/bin/llc+0x41f9a8)
#11 0x7faed3e7624d in __libc_start_call_main (/nix/store/76l4v99sk83ylfwkz8wmwrm4s8h73rhd-glibc-2.35-224/lib/libc.so.6+0x2924d)
#12 0x7faed3e76308 in __libc_start_main_impl (/nix/store/76l4v99sk83ylfwkz8wmwrm4s8h73rhd-glibc-2.35-224/lib/libc.so.6+0x29308)
#13 0x422ca4 in _start (/run/user/2024/tmp.4X9omY51ws/llvm-src-16.0.0-rc4/llvm/build/bin/llc+0x422ca4)
0x7faeec91949f is located 1 bytes to the left of global variable 'AsmStrs' defined in '/run/user/2024/tmp.4X9omY51ws/llvm-src-16.0.0-rc4/llvm/build/lib/Target/AArch64/AArch64GenAsmWriter.inc:17:21' (0x7faeec9194a0) of size 9899
0x7faeec91949f is located 35 bytes to the right of global variable 'OpInfo0' defined in '/run/user/2024/tmp.4X9omY51ws/llvm-src-16.0.0-rc4/llvm/build/lib/Target/AArch64/AArch64GenAsmWriter.inc:1263:25' (0x7faeec911b20) of size 31068
SUMMARY: AddressSanitizer: global-buffer-overflow (/nix/store/2w4k8nvdyiggz717ygbbxchpnxrqc6y9-gcc-12.2.0-lib/lib/libasan.so.8+0x4e140) in __interceptor_strlen.part.0
Shadow bytes around the buggy address:
0x0ff65d91b240: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0ff65d91b250: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0ff65d91b260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0ff65d91b270: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0ff65d91b280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04
=>0x0ff65d91b290: f9 f9 f9[f9]00 00 00 00 00 00 00 00 00 00 00 00
0x0ff65d91b2a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0ff65d91b2b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0ff65d91b2c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0ff65d91b2d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0ff65d91b2e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
==122647==ABORTING
--
********************
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsWtty2zjSfhr4pksqEDxf-IK2rPyuP7ZTdrKzc-UCQVDCGgS4ABhbefotkJQsKp5MDnIye0gxMg22G9_X3ehugKLWipXi_BTFZyhenNDOrbU5vaXC6TP-iRrR2ZNSV5vT39ZCcjCc6aYVUqgVvH37t6sgmeM5NiyCR-HWUNwV12C7ttXGQa0NIBImQRhjRM7hErhiulOOG16BWwsLzlDGe0GqtFtzA45bh8IC4QXCBUrwePW_LovLtygs-onBC4UFnOuKv-EKkWVRGLZOIkSWDWVrofhMd04Kxc3M8IaaBzuXEhDJwowEoGuI8iTMEMnHucj3X_D-4u49IJL-ADJEUvAELxbwI1AGMnfMiPbZjrPZyDEsPMrbD9f-jjrwICBAJEXhGSCyNJ3H21luEFkSTDxm17Tz6O-5bn6Pg0eLyFLKj83MGjYbnD8zLBpHEVmWnZCV_ylUP8iOo7YPC7L8Vm_PuKKl5LNDGZg1zohWchQuKO01zTr1oPSj2v6EWUut3SpD4eJzHfsCs0ZYy6sX5bS3QcU_IrJUnZRAUHiBSBIASs9fw-pLIfn5mrOHX2n7L0Yc_l_IvRhyh5Hy1SE2kdOdazuHwsVRzfsFe9wME37RMHM_64Y2Xw6MbS4CYNQdNzyOhf8_etXCjHkIs9bwWjyhcPF7cfV2WkQunoTri5t3XDB6s_88101DVQWDOX2pta7ixvgae1iKhin7KAjPx_j3aTEs8PgfFqICpR2MMIGAUNaZjjmhlYXa6AYISM1oPzCHs43j4_jwN75LoVKCZqwzhivGrUcVJIjk0M-2gA9q1F_tq4ey1_UsTLJCWg217lQF1I3AP1z___XNb9fw9ua8eH95c90n9vy_haHPMP_u1x6RgJAkSof7i9vbm1tvgqKqDLf2jirhxCdu_NhK6pLKWdnVNTcz_ZGbWupH0AroIA34Ka0p5ywP8iivfXpr2ThY44qWQRRA2fYjNavrkBGWYLCTkSgY297bi2Lh-1UrPnEIvLID9W5tOK3g_SgPAL7vxtMJMQgF9_fCt9-Mt06be-uM5GreUuPm2AeALzviCZGlddpwn3keo4dMfaw2YrX6lAbpZlWWT2zdqifzT5Zs8tmKsVlA5mSOZ1KUPvtsP6mlam71PEPkDD9FPIjwLnA8vGCEV9UJZQkpPTxEMqq02jS6s6Bow21LGR_TR1hcnRe2uXOG06Z3BAqLFXdXijdaCYZI1qe-UfRS-fy3De2j5usdR9_ue0mre5JlGEYJKSc0yZYmxUlNqV-C8AyzsM0707tk-J03wi071S_QM11teuQ5oPiMSa04zH0ukFQKalG8-GnEYlanlFYTYuE2CkmG07qMv8J_YwU6JG06daOuhpq0JT915uGzn-pVHmV1XcYT8tHWq1kQU8LiqVcP8L6j1u4xfZHiL-IWVpwQNuUWb7mlBEcJO4jY5TtP54oqupr476tY_eIwJjxjCZuGcbLHNsa0_jq2V7rqJJ8G6Tj0U_1HeFZhWk8YpXuM0jTLviax_vVp1mmWTWhmezSzsiynjpN8RdlmuN_jdtm0csfvC7x-eaDmuCynhSQH_BRFccX7Qj6cwvGdg9iamu0Z0PmeHbzic60cf3qtYrjbdQ91vkc4LfS-EYmCOqd9KDZ0iMfXBNFPNgWxazdCniYkqoZuSIqS3VtHjbtnVMr7PXDTRihNZPQxz-1DFm5k_fjwKXtsHk0T2WydhmZdzVZe1YzMw3hGeiI73zLfBSWDX3MSTdNPQPZxhTj7DJeHdC-aVr4qrhAf2MuX94gQRqMeUY_ltd3WT_e8u-g_D1pdYYftEK8gGHcwToNbc5C8dr5LHppz-EiNoKXkgEg6dI0WkRQqXo8bIf_gFRbze2pW3E222-PdG64K2_xmhONmLhRDYRGkKCxI4IEhku1TpX4N7Zr-PMvzPzNHGE_tYcRq_UcGuWkvVa3xX9AgJAm9SeLPTBKUZGKSMMBJNh52f7i6Km5__8bd2k_Z7vzJnmvEv6aVfhy9R02___YeLLvVarPdUu4OUAA_4bpO4ioPShL1xwgYf9P1gp74SHqSI-lJj6Qn-w490d6ZwMW-srxXVufDheIz_7H4PmD0SATLI-lhR9JTHUkP_349e8sJJF9xVfm17rs5u_fE8NZwy5WzkAFtWymGQ7ZhGe6fWG6Tik-eHtTzvx1yeEeNE1TK3XLdCuMAMAEcAo4Ax4ATwCls_-r_OG2HumV49UmrPfU13QotDecVrL2o4Su_mXoWqrZCd46yh5dV1cFUqBHVC9ORqdBQPA7E6nAqRGvHDRjuOvMMqo6nQp3lo6Bluu111dlW5M1Qmj6D4_XkB0JCCQfaVENSH4WSUeidFlb7MlZuoC9dz6rqdKvI98G0f12yLQLPqNlWqDCGboBp_SAOvA10J3SpnKGgy39wdmilstxpuqMK-tSvqOx58-2jt95RVPrSfUie7Rx_2_vgcylW_tGhZXF2c_v-8vrNfv-0e_X7wy-5D17Jn1SnYZWHOT3hp0GSZgnJkzA9WZ_GaZbWJAhSHCSkZjip65xkPA7yGqdhVJ6IU4JJiMOABBHGYTqvah4ndYpZGWVlhDmKMG-okHPfUMy1WZ0Iazt-mgRhnJ1IWnJp-y8sEKL4I_QPESEoXpyY0741KbuVRRGWwjr7rMUJJ_npt74RGfunoX_Yhc7e9x20mn4V4qQz8nTtXNsXbbJEZLkSbt2Vc6ab5zapB9oa7YMIkWXPwvdWPct_BQAA___-Y8gD">