<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/89987>89987</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Assertion `I.isArrayAllocation()' failed with SVE-AES
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
same-denik
</td>
</tr>
</table>
<pre>
The following program triggers the compiler crash with the error "fatal error: error in backend: Invalid size request on a scalable vector.":
```
$ cat test.ii
typedef __SVInt64_t s_t;
void bar(s_t a);
void foo() {
s_t a;
bar(a);
}
$ clang -cc1 -triple aarch64-grtev4-linux-gnu -emit-obj -fsanitize=local-bounds -target-feature +sve2-aes test.ii
fatal error: error in backend: Invalid size request on a scalable vector.
```
Backtrace:
```
clang: /home/denik/storage/llvm-project/llvm/lib/Analysis/MemoryBuiltins.cpp:1142: llvm::SizeOffsetValue llvm::ObjectSizeOffsetEvaluator::visitAllocaInst(llvm::AllocaInst&): Assertion `I.isArrayAllocation()' failed.
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: /home/denik/storage/llvm_build/bin/clang -cc1 -triple aarch64-grtev4-linux-gnu -emit-obj -fsanitize=local-bounds -target-feature +sve2-aes test.ii
1. <eof> parser at end of file
2. Optimizer
#0 0x00007fb376068e81 __interceptor_backtrace.part.0 /build/gcc-13-Hz7jz6/gcc-13-13.2.0/build/x86_64-linux-gnu/libsanitizer/asan/../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:4434:28
#1 0x000055ea2bc465c9 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/denik/storage/llvm-project/llvm/lib/Support/Unix/Signals.inc:723:22
#2 0x000055ea2bc46928 PrintStackTraceSignalHandler(void*) /home/denik/storage/llvm-project/llvm/lib/Support/Unix/Signals.inc:798:1
#3 0x000055ea2bc3ce7c llvm::sys::RunSignalHandlers() /home/denik/storage/llvm-project/llvm/lib/Support/Signals.cpp:105:20
#4 0x000055ea2bc3f55d SignalHandler(int) /home/denik/storage/llvm-project/llvm/lib/Support/Unix/Signals.inc:403:31
#5 0x00007fb37597b510 (/lib/x86_64-linux-gnu/libc.so.6+0x3c510)
#6 0x00007fb3759c916c __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
#7 0x00007fb37597b472 raise ./signal/../sysdeps/posix/raise.c:27:6
#8 0x00007fb3759654b2 abort ./stdlib/abort.c:81:7
#9 0x00007fb3759653d5 _nl_load_domain ./intl/loadmsgcat.c:1177:9
#10 0x00007fb3759743a2 (/lib/x86_64-linux-gnu/libc.so.6+0x353a2)
#11 0x000055ea27ed6b61 llvm::ObjectSizeOffsetEvaluator::visitAllocaInst(llvm::AllocaInst&) /home/denik/storage/llvm-project/llvm/lib/Analysis/MemoryBuiltins.cpp:1148:7
#12 0x000055ea27ef6f0c llvm::InstVisitor<llvm::ObjectSizeOffsetEvaluator, llvm::SizeOffsetValue>::visitAlloca(llvm::AllocaInst&) /home/denik/storage/llvm-project/llvm/include/llvm/IR/Instruction.def:171:1
#13 0x000055ea27ef6f0c llvm::InstVisitor<llvm::ObjectSizeOffsetEvaluator, llvm::SizeOffsetValue>::visit(llvm::Instruction&) /home/denik/storage/llvm-project/llvm/include/llvm/IR/Instruction.def:171:1
#14 0x000055ea27ee615f llvm::ObjectSizeOffsetEvaluator::compute_(llvm::Value*) /home/denik/storage/llvm-project/llvm/lib/Analysis/MemoryBuiltins.cpp:1117:19
#15 0x000055ea27eeac75 llvm::ObjectSizeOffsetEvaluator::compute(llvm::Value*) /home/denik/storage/llvm-project/llvm/lib/Analysis/MemoryBuiltins.cpp:1061:36
#16 0x000055ea3176b19a getBoundsCheckCond(llvm::Value*, llvm::Value*, llvm::DataLayout const&, llvm::TargetLibraryInfo&, llvm::ObjectSizeOffsetEvaluator&, llvm::IRBuilder<llvm::TargetFolder, llvm::IRBuilderDefau
ltInserter>&, llvm::ScalarEvolution&) /home/denik/storage/llvm-project/llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp:64:51
#17 0x000055ea31772ae4 addBoundsChecking(llvm::Function&, llvm::TargetLibraryInfo&, llvm::ScalarEvolution&) /home/denik/storage/llvm-project/llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp:161:32
#18 0x000055ea317756e5 llvm::BoundsCheckingPass::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) /home/denik/storage/llvm-project/llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp:229:3
#19 0x000055ea2c6578c7 llvm::detail::PassModel<llvm::Function, llvm::BoundsCheckingPass, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) /hom
e/denik/storage/llvm-project/llvm/include/llvm/IR/PassManagerInternal.h:91:3
#20 0x000055ea2a4ba20c llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) /home/denik/storage/llvm-project/llvm/include/llvm/IR/PassManager.h:228:20
#21 0x000055ea21ad9651 llvm::detail::PassModel<llvm::Function, llvm::PassManager<llvm::Function, llvm::AnalysisManager<llvm::Function>>, llvm::AnalysisManager<llvm::Function>>::run(llvm::Function&, llvm::AnalysisManager<llvm::Function>&) /home/denik/storage/llvm-project/llvm/include/llvm/IR/PassManagerInternal.h:91:0
#22 0x000055ea2a49b0ba llvm::ModuleToFunctionPassAdaptor::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /home/denik/storage/llvm-project/llvm/lib/IR/PassManager.cpp:128:19
#23 0x000055ea21adafcb llvm::detail::PassModel<llvm::Module, llvm::ModuleToFunctionPassAdaptor, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /home/denik/storage/llvm-project/llvm/include/llvm/IR/PassManagerInternal.h:91:0
#24 0x000055ea2a4b6bae llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module>>::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /home/denik/storage/llvm-project/llvm/include/llvm/IR/PassManager.h:228:20
#25 0x000055ea2c647c14 llvm::SmallPtrSetImplBase::isSmall() const /home/denik/storage/llvm-project/llvm/include/llvm/ADT/SmallPtrSet.h:196:33
#26 0x000055ea2c647c14 llvm::SmallPtrSetImplBase::~SmallPtrSetImplBase() /home/denik/storage/llvm-project/llvm/include/llvm/ADT/SmallPtrSet.h:84:17
#27 0x000055ea2c647c14 llvm::SmallPtrSetImpl<llvm::AnalysisKey*>::~SmallPtrSetImpl() /home/denik/storage/llvm-project/llvm/include/llvm/ADT/SmallPtrSet.h:321:7
#28 0x000055ea2c647c14 llvm::SmallPtrSet<llvm::AnalysisKey*, 2u>::~SmallPtrSet() /home/denik/storage/llvm-project/llvm/include/llvm/ADT/SmallPtrSet.h:427:7
#29 0x000055ea2c647c14 llvm::PreservedAnalyses::~PreservedAnalyses() /home/denik/storage/llvm-project/llvm/include/llvm/IR/Analysis.h:109:7
#30 0x000055ea2c647c14 (anonymous namespace)::EmitAssemblyHelper::RunOptimizationPipeline(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>&, std::unique_ptr<llvm::ToolOutputFile, std::default_delete<llvm::ToolOutputFile>>&, clang::BackendConsumer*) /home/denik/storage/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1133:12
#31 0x000055ea2c64ce37 RunCodegenPipeline /home/denik/storage/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1143:23
#32 0x000055ea2c64ce37 EmitAssembly /home/denik/storage/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1199:21
#33 0x000055ea2c64ce37 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, llvm::IntrusiveRefCntPtr<llvm::vfs::FileSystem>, std::unique_ptr<llvm::raw_pwrite_stream, std::default_delete<llvm::raw_pwrite_stream>>, clang::BackendConsumer*) /home/denik/storage/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1360:25
#34 0x000055ea2de8ff90 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) /home/denik/storage/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:391:20
#35 0x000055ea353a5c7a void clang::finalize<std::vector<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>, std::allocator<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>>>>(std::vector<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>, std::allocator<std::unique_ptr<clang::TemplateInstantiationCallback, std::default_delete<clang::TemplateInstantiationCallback>>>>&, clang::Sema const&) /home/denik/storage/llvm-project/clang/include/clang/Sema/TemplateInstCallback.h:54:3
#36 0x000055ea353a5c7a clang::ParseAST(clang::Sema&, bool, bool) /home/denik/storage/llvm-project/clang/lib/Parse/ParseAST.cpp:183:11
#37 0x000055ea2e974b13 clang::ASTFrontendAction::ExecuteAction() /home/denik/storage/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1191:1
#38 0x000055ea2de8ad4c clang::CodeGenAction::ExecuteAction() /home/denik/storage/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:1180:37
#39 0x000055ea2e97d4e7 clang::FrontendAction::Execute() /home/denik/storage/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1075:21
#40 0x000055ea2e70ddce llvm::Error::getPtr() const /home/denik/storage/llvm-project/llvm/include/llvm/Support/Error.h:276:42
#41 0x000055ea2e70ddce llvm::Error::operator bool() /home/denik/storage/llvm-project/llvm/include/llvm/Support/Error.h:239:22
#42 0x000055ea2e70ddce clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /home/denik/storage/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:1062:42
#43 0x000055ea2ed3804f clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /home/denik/storage/llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:278:38
#44 0x000055ea20af7188 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /home/denik/storage/llvm-project/clang/tools/driver/cc1_main.cpp:232:40
#45 0x000055ea20ad7620 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) /home/denik/storage/llvm-project/clang/tools/driver/driver.cpp:215:20
#46 0x000055ea20aded50 clang_main(int, char**, llvm::ToolContext const&) /home/denik/storage/llvm-project/clang/tools/driver/driver.cpp:256:26
#47 0x000055ea20b32e0b main /home/denik/storage/llvm_build/tools/clang/tools/driver/clang-driver.cpp:17:20
#48 0x00007fb3759666ca __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:74:3
#49 0x00007fb375966785 call_init ./csu/../csu/libc-start.c:128:20
#50 0x00007fb375966785 __libc_start_main ./csu/../csu/libc-start.c:347:5
#51 0x000055ea20ad65a1 _start (/home/denik/storage/llvm_build/bin/clang+++0x3fc95a1)
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzsW0tv2zoW_jXKhrAhkXousnCceBpMiwZNbrcGJR05vKUoXZJKky7ubx-QkqxHnDTP9mJmgsAPijr8zncePKRoqhTbCYBjJzhxgtMj2ujrSh4rWsIiB8G-HaVVfnd8dQ2oqDivvjOxQ7WsdpKWSEu224FUSF8DyqqyZhwkyiRV1-g709e2HaSsJHIwLqimvP3qkFXXzgRKafYNRG7azsUN5SxHiv0AJOGvBpRGlUAUqYxymnJAN5DpSi4djB2yctxTx-1fQ7f7b79iH2VUIw1KLxlrG_VdDTkUaLu9_HoudOhvNVJb7ZCTsaSbiuUopdLBsdpqRB2cHOpRVJWDYwcnyIm6qwi1N_S9OylTCdHpBLbByanYoUWWeWihJas5IEpldh36i53UcOMvOBPN7WInGrSAkulFlf6JFoWigmn2AxxyyquM8kVaNSJXaKGp3IFeFEB1IwE5-ETdAF5QUFM-2te3NcxBY9jXE5p905JmMFhu2s3yYIZz8Oa6KsHBG-uDDt4oXUm6My2c35SLWlZ_Qqa7r-aNpQ7erATld4opB28-QVnJu5OGcc2EWmZ17ZCV5_nGbZC9iawcsrpkP-BzUSjQXylvYHTlc2pGGK6f3VDeUG05csjqhimmV9zwfi6UdnA83DpuDq3tV2ilFEjNKoGc0D1fMrWSkt61PU1z60oOjlBBGYe8I_Li49nq8gypJi2ZRhSlzQ5JqCupka7Qtda1MmPijYM3abNTS4NiWcmdgzeIihwxkfEmhzZEbWSmezPgNaol1LLKQCnIkaoa2TabO6lSVcaohhzJRiCVSVbrDtalptk3lDdlvbelu0T276JLDlTumhKEVk8x6DZtGM-NDkw4ePPbAsLrlHDIGqrCIWeoplKBRFQjEDmqClQwDm1nvESfa81K9gNkF-8OJi5yb13XdaMiJVHohjHEHtpumdAgM6h1Jbd7CyxrKvXSRdZ4LQG7LFt4ZPHhR_Tnj3D47pElXrqjfrdxuA1HPLQx0BMgHbyhihoul8v7L0pm9_vvP2-zqiyNR95rGmuhlkxkDln5PvEdssLxQIHXURAEQHGa-WGQJaPIUneq_XAhmdDWla5afxzFkKTft5XSEmhpg2iNmNA22b4wN1w2tQkbB2_-EOzWNLCdoLxXI8LEaIEHLfBciwTHaAa5lfGBipwbDmMzMTh49Z44k9gksgEmmcIkGUTZIbK_NGKCVvWT16tx9gC7HOsGhkh3QOjPEBZBkKM5c-9rXd811iUj2oJxmAZJlAaeicN4L_FwgGVLVS1DB5-4tyQLPNfk7L3McCozS7wwQ9ttra8l0Hz7jXG-ZWXNweRFm_WRiUZRa-7gzbjbso0sY-9wkB_NMfsRRpIyBVaOsirvY_xO5VCbqbCulKXE9rSSceSQ1UhwPBUcBn6KEU3NLGNF6bzlxDZZCbFnsA0SkrkEkgdoK_iWVzTf5lVJWassE1ZZ01yqXUZbcZ4XGUhJXxMRz53p6hOKn2mfgFC8t4-ROclLEeRhGnrvM-O_ZwUTD8wbpfBUqSIs3HH8G0xfDXKjxvopyuL1w_WRQ87ukfHWRHQVy9Bw_sW8CKVlk5mgWeZQGCoib8iEhgny-5iYcDCC-utJ8KckQOgFxdN93CziGg3biT6tvq-b1X7u155JAN4oWoOZJjSLgmdr8usVcUNjERIOioQjRYgXhamXULQDfWKL0_U1ZN_WlcgfgDr2wcOtp1TTj_SuajTKqj7yxh2ubPX7kaWSyrtzUVT3ejwSA7Oe51-MwjlMY6gdYVPZC4f7n0JBm5YUrs-FWQ0ZIWf3Rrg0K0p5dlPx5lUh1NrrSlKhikqWah8_-9nXwZuRDZjYdTYMzcQbjIIqmlowwhR8RPN8evfEgJtGDBngecb4_QR4rQ_jgYF4xkAQwjgYp1IuqOqKTtmIp7HSh9UnKuhu5lz7mzpn-bVcYLt-JwMVyTgvZWEQxVk00iQHTRnvFjhUqU9VDvywPhMGDlD4Iob6eeldqW_ZeP2EZglqxz03S0tB-fLaFILehHPsjjmnfkrxZGofiXkC0_8oJt-UQ8sdxvFoAWbYm9S9Hs2TMPDewGPfjfX_EWvd9_iRzfDU45PUTekI_KcqbzhcVT1QI3aV03pf_8xpaG94FgndLa_Ouve8tJtkrJ-OKj5MZn5Kiyx9lp_2Sq6fyNQLqHjIzX4Lv69zMX-WVMOUwhPC-xDJ_43cPZBMg-n070eZ54-Lt5JyfqHlJejzsuYnVEF7gSl7qdt1s4X6W6BenV45eDMa1cL2ktBMoKMZNHwh7L8PXXnpzuET0ce-XdkO4KNngZ84Su9E_4Y7s3DqXXCu1nurRLA32bbB8ZNVekwdvEa4OajUeyvk2z3EkULJ4wpdSFAgbyBvNYBugfD3_fY3A24DuiesDQs3mYAm7iHQDo6pqMRdWTUKCVqCqu3TiaSFfFYyvVIKypTffQBeg9xvsHePg-x64oLVwJkwwdI_1zRVfvtMdbUvkJTO2yuNYH81sK31NNFJ-n1bf5dMw7Z_GjK6KTeLaq63OXDQ8JMbu-IqfMqwV1XFPze6bvSGtcn-KWPO7hoPeJ-DdSVUU4J8_oZMK6svL9ZVDv8Cu35rBf-hGd9vKxFiS43B5N7M5BmQCH1phBGzg73Z3guPbx8zDYl5-pipxzP2sfdCkhh_xsMux_RJUo9kZDcDqhPUGnnq2qeM7kSlNMvUmdhZz59b_gPQHOQlUJldm1iphJpsWY26dth_0qvdTPlJp49U7A51GWVbLZnYfYHiUOnY5dnHgni896tlo9gNfIFiLfTFLKxuii7vmfi4vFMaym7B8-vzwG-LSRK6xvOCwfMmlWgOcVEk7mPoWmeyzw7tlg63GfcPwWYuubq8WldCw-0LnkY8pFD3qTV-pxKxpfWoSiTjKpEEhAZZRJE9NjSCVzBBuT2usN5bsj1GM26ZOMTY96GsOdVwLpSmQjPLwZpyntLs2-Pe8WQpe1fZy6LtiZV_GsT9P47_T-VbUHkvi15CSUfp80WxNJRofYuR6uDNGFcPx1ZsgT_ZCCThobgaobygUsHq8mqaB9pRrEZpVfHh_RUZwY7Uv68ur_rsFtuCYzStThYvkER-6hE0TVIbabLUfkZpZ9tbyBoN_STz3KJ4CrYfYPRxksA8L5k-RyTxLCXT3M8OzM_vhvjxhOt5sZlDyKiUT2Y05z5MqpdHOH53dt0omNZa_mThAZGb59l47-WsO4zpkNUObBXxxtsGw3kZO1S71xGFdmE3oPSejLKqQZpU1sXVWy3hDsIkyeikloGJD8Gc-Gp7NLnNehkcdteHfeWVtcPIPeZIhofGeEb9pBiHnMSuX0yK8Rb9IPBmOEj6mOqvLOx6Xa6smTcPougfnkWxCdN40GtS6rm0iLw4RlnmbUvKpruC9oCsqcnJOrumsp97Vn3xOmnDa_Sys3e9erqquDI3SHZjj0P2mHpNiLXQUOL5wVSTPAqxi3pC1l7LUDzb0vlqa5Jul-q-WvNnxVXFuwL2tVPvPf3aD712XjAtYP1wph3kQVeS95ayJ_ZaO1jaV78Le2DSFh4OXPiTGddNCQY3RfYE2pPPIfdDPuwe5sJiAsSeYBlzOD9WF4YZRdstZ2m2VZpKvc0o59v92bhMNfdP73WnAw_dZNNhNK2Q_PlJvDCKA2RvYYLp-TjtRyN8YYW3p_Hmm96Be0joRJNDShwUTnxD07D4C7yZp4UB9VArtTvw9-yj4w4-af_dW1JkSUC94RzgoV8mHOXHJE9IQo_g2Is8kiSYRMHR9XGeRpEHseuT0KMpyQFnRZK6SRaEhVek8RE7xi72XR_72A0SEixxlBRBkMQJ5ATHJHF8F0rK-P5g_hFTqoHjOEni6IjTFLiyP77BWMB3ZC86GDvB6ZE8tvGQNjvl-C5nSg_H-4800xyOn_urgvZnOZdfzxars8ujRvLj6U8IdkxfN-kyq8rRQ7xpUFqExjGtBv8JAAD__863YTg">