<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/131967>131967</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[AVR] clang crashed with simple cpp code
</td>
</tr>
<tr>
<th>Labels</th>
<td>
backend:AVR
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
benshi001
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
benshi001
</td>
</tr>
</table>
<pre>
```c++
// a.c
struct foo {
char a;
};
char func(struct foo t) {
return t.a + 1;
}
```
build it with `clang a.c --target=avr -mmcu=atmega328 -c`, then clang crashed with
```bash
Assertion failed: (Ty->isIntegralOrEnumerationType() && "Unexpected QualType"), function getExtend, file CGFunctionInfo.h, line 185.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: clang++ a.cc --target=avr -mmcu=atmega328 -c
1. <eof> parser at end of file
2. a.cc:5:6: LLVM IR generation of declaration 'func'
3. a.cc:5:6: Generating code for declaration 'func'
#0 0x000000010d15ca3d llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/Users/benshi/work/llvm-project/build/bin/clang-21+0x102feca3d)
#1 0x000000010d15cffb PrintStackTraceSignalHandler(void*) (/Users/benshi/work/llvm-project/build/bin/clang-21+0x102fecffb)
#2 0x000000010d15ac26 llvm::sys::RunSignalHandlers() (/Users/benshi/work/llvm-project/build/bin/clang-21+0x102feac26)
#3 0x000000010d15c2be llvm::sys::CleanupOnSignal(unsigned long) (/Users/benshi/work/llvm-project/build/bin/clang-21+0x102fec2be)
#4 0x000000010d0190e7 (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) (/Users/benshi/work/llvm-project/build/bin/clang-21+0x102ea90e7)
#5 0x000000010d0194db CrashRecoverySignalHandler(int) (/Users/benshi/work/llvm-project/build/bin/clang-21+0x102ea94db)
#6 0x00007ff813f76e1d (/usr/lib/system/libsystem_platform.dylib+0x7ff800482e1d)
#7 0x01000001121a4a86
#8 0x00007ff813e60b19 (/usr/lib/system/libsystem_c.dylib+0x7ff80036cb19)
#9 0x00007ff813e5fddc (/usr/lib/system/libsystem_c.dylib+0x7ff80036bddc)
#10 0x000000010dac715e clang::CodeGen::ABIArgInfo::getExtend(clang::QualType, llvm::Type*) (/Users/benshi/work/llvm-project/build/bin/clang-21+0x10395715e)
#11 0x000000010e880f75 (anonymous namespace)::AVRABIInfo::classifyArgumentType(clang::QualType, unsigned int&) const (/Users/benshi/work/llvm-project/build/bin/clang-21+0x104710f75)
#12 0x000000010e880c8e (anonymous namespace)::AVRABIInfo::computeInfo(clang::CodeGen::CGFunctionInfo&) const (/Users/benshi/work/llvm-project/build/bin/clang-21+0x104710c8e)
#13 0x000000010de74a30 clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo(clang::CanQual<clang::Type>, clang::CodeGen::FnInfoOpts, llvm::ArrayRef<clang::CanQual<clang::Type>>, clang::FunctionType::ExtInfo, llvm::ArrayRef<clang::FunctionType::ExtParameterInfo>, clang::CodeGen::RequiredArgs) (/Users/benshi/work/llvm-project/build/bin/clang-21+0x103d04a30)
#14 0x000000010de75117 arrangeLLVMFunctionInfo(clang::CodeGen::CodeGenTypes&, bool, llvm::SmallVectorImpl<clang::CanQual<clang::Type>>&, clang::CanQual<clang::FunctionProtoType>) (/Users/benshi/work/llvm-project/build/bin/clang-21+0x103d05117)
#15 0x000000010de74f25 clang::CodeGen::CodeGenTypes::arrangeFreeFunctionType(clang::CanQual<clang::FunctionProtoType>) (/Users/benshi/work/llvm-project/build/bin/clang-21+0x103d04f25)
#16 0x000000010de773fb clang::CodeGen::CodeGenTypes::arrangeFunctionDeclaration(clang::FunctionDecl const*) (/Users/benshi/work/llvm-project/build/bin/clang-21+0x103d073fb)
#17 0x000000010de78803 clang::CodeGen::CodeGenTypes::arrangeGlobalDeclaration(clang::GlobalDecl) (/Users/benshi/work/llvm-project/build/bin/clang-21+0x103d08803)
#18 0x000000010e5b4b55 clang::CodeGen::CodeGenModule::EmitGlobalFunctionDefinition(clang::GlobalDecl, llvm::GlobalValue*) (/Users/benshi/work/llvm-project/build/bin/clang-21+0x104444b55)
#19 0x000000010e5a963d clang::CodeGen::CodeGenModule::EmitGlobalDefinition(clang::GlobalDecl, llvm::GlobalValue*) (/Users/benshi/work/llvm-project/build/bin/clang-21+0x10443963d)
#20 0x000000010e5af9dd clang::CodeGen::CodeGenModule::EmitGlobal(clang::GlobalDecl) (/Users/benshi/work/llvm-project/build/bin/clang-21+0x10443f9dd)
#21 0x000000010e5a76fc clang::CodeGen::CodeGenModule::EmitTopLevelDecl(clang::Decl*) (/Users/benshi/work/llvm-project/build/bin/clang-21+0x1044376fc)
#22 0x000000010e7c704d (anonymous namespace)::CodeGeneratorImpl::HandleTopLevelDecl(clang::DeclGroupRef) (/Users/benshi/work/llvm-project/build/bin/clang-21+0x10465704d)
#23 0x000000010e556ee9 clang::BackendConsumer::HandleTopLevelDecl(clang::DeclGroupRef) (/Users/benshi/work/llvm-project/build/bin/clang-21+0x1043e6ee9)
#24 0x00000001108d9db9 clang::ParseAST(clang::Sema&, bool, bool) (/Users/benshi/work/llvm-project/build/bin/clang-21+0x106769db9)
#25 0x000000010ed5ca31 clang::ASTFrontendAction::ExecuteAction() (/Users/benshi/work/llvm-project/build/bin/clang-21+0x104beca31)
#26 0x000000010e55deba clang::CodeGenAction::ExecuteAction() (/Users/benshi/work/llvm-project/build/bin/clang-21+0x1043edeba)
#27 0x000000010ed5c266 clang::FrontendAction::Execute() (/Users/benshi/work/llvm-project/build/bin/clang-21+0x104bec266)
#28 0x000000010ec6bb1f clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/Users/benshi/work/llvm-project/build/bin/clang-21+0x104afbb1f)
#29 0x000000010ee8f417 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/Users/benshi/work/llvm-project/build/bin/clang-21+0x104d1f417)
#30 0x000000010a18195b cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/Users/benshi/work/llvm-project/build/bin/clang-21+0x10001195b)
#31 0x000000010a174220 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) (/Users/benshi/work/llvm-project/build/bin/clang-21+0x100004220)
#32 0x000000010a180230 clang_main(int, char**, llvm::ToolContext const&)::$_0::operator()(llvm::SmallVectorImpl<char const*>&) const (/Users/benshi/work/llvm-project/build/bin/clang-21+0x100010230)
#33 0x000000010a1801fd int llvm::function_ref<int (llvm::SmallVectorImpl<char const*>&)>::callback_fn<clang_main(int, char**, llvm::ToolContext const&)::$_0>(long, llvm::SmallVectorImpl<char const*>&) (/Users/benshi/work/llvm-project/build/bin/clang-21+0x1000101fd)
#34 0x000000010e94ecd1 llvm::function_ref<int (llvm::SmallVectorImpl<char const*>&)>::operator()(llvm::SmallVectorImpl<char const*>&) const (/Users/benshi/work/llvm-project/build/bin/clang-21+0x1047decd1)
#35 0x000000010e94ec98 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__1::optional<llvm::StringRef>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, bool*) const::$_0::operator()() const (/Users/benshi/work/llvm-project/build/bin/clang-21+0x1047dec98)
#36 0x000000010e94ec65 void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__1::optional<llvm::StringRef>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, bool*) const::$_0>(long) (/Users/benshi/work/llvm-project/build/bin/clang-21+0x1047dec65)
#37 0x000000010b0e8ad9 llvm::function_ref<void ()>::operator()() const (/Users/benshi/work/llvm-project/build/bin/clang-21+0x100f78ad9)
#38 0x000000010d018f4c llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/Users/benshi/work/llvm-project/build/bin/clang-21+0x102ea8f4c)
#39 0x000000010e94b2bc clang::driver::CC1Command::Execute(llvm::ArrayRef<std::__1::optional<llvm::StringRef>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, bool*) const (/Users/benshi/work/llvm-project/build/bin/clang-21+0x1047db2bc)
#40 0x000000010e8dd063 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/Users/benshi/work/llvm-project/build/bin/clang-21+0x10476d063)
#41 0x000000010e8dd317 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::__1::pair<int, clang::driver::Command const*>>&, bool) const (/Users/benshi/work/llvm-project/build/bin/clang-21+0x10476d317)
#42 0x000000010e8ff6a2 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::__1::pair<int, clang::driver::Command const*>>&) (/Users/benshi/work/llvm-project/build/bin/clang-21+0x10478f6a2)
#43 0x000000010a173924 clang_main(int, char**, llvm::ToolContext const&) (/Users/benshi/work/llvm-project/build/bin/clang-21+0x100003924)
#44 0x000000010a1ab06b main (/Users/benshi/work/llvm-project/build/bin/clang-21+0x10003b06b)
#45 0x00007ff813bb12cd
clang++: error: clang frontend command failed with exit code 134 (use -v to see invocation)
clang version 21.0.0git (git@20.205.243.166:llvm/llvm-project.git a5107be0317af73a978431e9448f846974c51fca)
Target: avr
Thread model: posix
InstalledDir: /Users/benshi/work/llvm-project/build/bin
Build config: +unoptimized, +assertions, +expensive-checks
clang++: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang++: note: diagnostic msg: /var/folders/fw/ck1xv1ss5419r5bdckh68r900000gn/T/a-c8ac77.cpp
clang++: note: diagnostic msg: /var/folders/fw/ck1xv1ss5419r5bdckh68r900000gn/T/a-c8ac77.sh
clang++: note: diagnostic msg: Crash backtrace is located in
clang++: note: diagnostic msg: /Users/benshi/Library/Logs/DiagnosticReports/clang-21_<YYYY-MM-DD-HHMMSS>_<hostname>.crash
clang++: note: diagnostic msg: (choose the .crash file that corresponds to your crash)
clang++: note: diagnostic msg:
********************
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJzsW0tT47q2_jVioiIlS34OGJhAutlF3-YCu2_1iJKl5cQX28qRZBrOrz8l24njkPA6ofcebIqqOHp-33rp4RVuTDGvAU5QcIoozaA2i4IQD1GKgrMj3tiF0ifr4qNMyacTFJLuXyB66v5JiugM0RnmE4FIaqxuhMW5UhhFrhZjseAac8TattFZ_0DStjxvaoFovNHNIpqs-2qwja6xnXCM6Cn2hlFIuobSDZc1RSlxYfGvwi6wQ1jyeu5g4eNjy_UcLGJn_EHj46oSjXu2Fcw5ozE-Fm4YOsV2ATXuOgrNzQJkO1w3w3rCjBtXlBoD2haqxjkvSpCIpRjR-PbpGLHzwlzUFuaal9_1ed1UoLlrevu0BETjliMNEQ0xovTPGh6XICxI_L8NL7s2FNHEQXISaieZgz1_tFDLtrQoAU-_zPrKizpXk4WrKIsasBcHE0TSq8vz9OYcmyarCos5zpo51rBU2mKr8MLapUGs19-8sIsmmwhVITory4fVx_FSq_8HYRGdFcY0YFpd1xIXtSgbCU5knaxwxsW91VyAw7HUsNRKgDEgsVGN7opdT26MEgV3dHVTYyN0sbQO743l4h7Lplo6WCQlE0SSK63mmleY63lTQW0d5E5FnQU6Db9NxST13ICITUHliJ3jJdcGNOYWQy2xylupIpJS18wNi1gaIJaGbsrLyx_f8MU1nkPd69L1kCBK3n9FNOrMOUIkZbvG-NL3dealJOBc6f0jYEQZweSRdH8ekV4gOJO41Q5LEUvNk-kernRR21Z8t50C4qGR5r_ulLEaeNWa3BQXdedkzg5nfxrQTqmdoyM6-6X0_XPlt-7lPosa0Vkr_2PqIXpKHj1Cc3DInMV2uL1t3Hme4S2QN8W85uVXXssSNKLxgyokounhkeV5NiCjW8i4oOEuiV439QigWXvtAaG5yQdobFtoNINd0KYl8LpZfu8BIho3dRvKJS6Vc4tDC5BmMKD0RyiJlxCI3Hy8VvVTpRqDa16BWbZmmPSIXXy4BqEeQD9NVW3h0V5Uy7Kr7STctkE0bo1zij-TEnAHeqAUbFPyZYZHmLdt9fAeBNzNOmAKe0xRnscey6MQPNnP1xjtRi8yRGfmyViouq_d892y5DZXuprIp7bNKXl0gxDixxS8DSeN3BReR9ujHvd5HOK-Lh5NDyHJvORt04tn87JQZF4yzJuMxw5yKcXHx86kFN3YLu6MAyYXkRdAv1p0lqgkfIG6-5KeXqR67tbO7vvGChtv9BnW5OmGO3YlBw5XLAkc4oHPKJBCHJM8Cl7ztvTHdXp6MdASpdvq5U9pv4L2e5A9DNeO19q4C09YqNrYA7L0I8_xGFjSbZYihnezVNWysdAWjMiNVD7eMn0iPxFvaHEc2SHyOSN7rbL_4vTRB3yuNa_n4HYgY_Qjmrx2akRsulHYKpWdO73um27WjvV9ac3YvlOt-dM15OMBX5zl2UQrtF0DV3L-aDvor0-1s_MV17wCC7pT_IvMruFfTaFBpnpuDuymkjgVDgr2txQceF6E36a2varv9mqZUuVYWjcVL8sfIKzS3Rr6Lv2E2xLb1WEF90orq9Y2dGAJOhkNEgy2XSSnwftdZKYBRnbzuov8Fq6OzcA13OIasTz7ANce-NlwgBjT3WzQxbjDr1eSOPADtWiLWhwT9n5qX0qV8XIvsaH64Gwc3oFNPFqXgszPgleN8puSTbkKWFVhO7CDLvKiLl6mtOnsXfkPXjaH32z4vu8IDXSTMV2ehEx-jO7fiyZzRNY0KdmimSfygzR_j1n6PnMQBwLeFoEozMV7Cdyq5SU8QA93k0ZXcnglOJQDh_GWLxIR8eWrx8iOCmi-XvuG8-PLhL5o1SzdFuOwrMLA4R5YsbFmghAg2dTMKRf3UMupqk1Tgf7L8TNwCAf8m_sYj8QykdkI_xXXBtKb2zHAG6j41nal-zwk1jAKHZoB62jHADIQnHmbWNOb25lWtTvPpW3sXW0iQTQW-qJDX-r4GTgcA8pwyyIkZHyHr_5GhAwchgFhtC1HGoajTfx-IX6K-GgYDuDGK7AIs8zLx-KrlkXpjgPG8lrAbgnuZ9MdAA9IgOcO4kBgvKZCnPtetEmghzrweFBix5bnGc-DB2jpOWhr4OOrZ-7FXhJkWAjvruKuf7z7-Lbgethq9sezURmd4k-56HUBKwmGnej4Cpp7kU8pwStpT73bNkDFLx6rnpEJt66AlCr728xVuwObEyHE4R5Y0S2tELq6SVjppb8_deBbIadvwtxVIurfke5RLbtltnPxj0jq8PcqjjPdOHaPb8ydNLy8vbfa4Lt6fXanWwN1lR8i056f23smXpYZF_d3eb06SB5Q9OcOXHvj_cqRf7fEDytrLx-2NuN7f0h8ENL7TDn_HQ3Qj6SjPQgleCaUJN6M7lIXD6tt3nTqTVVV8Vpur6E7Q6mxfbu7O28lESfg9v5iQxZWF_W87bK6gHveM-OmEHembdpLa3dDV3NnNS-sWbXbNyYvS7dSKb3R0LVNh-1futbB6-Hl09SVxIO6wmfqCoN2OdpvyG1tj_KFEPCPuveqewhpB92vON2Gw-UFG21jMwIxl8n71PpbbJLkkUM24I63Xj7GuS82cO96ddpfbzf1Dc-hfBqZ1Ms8D_3O0oEdqCRb7pXRTPwTDZ-7x2HdwEl5rQN_fLkVS0lCtlcH7aGCPzvWrRQzOoFsdXQNNnYx0xfm2Gyaju4JPkMeoWM8yMPblgcbn7_eIo8_VGb2C-MPlV0Wxo6E8dJe5bnxLHmhuz3TewS5-ULnM8XJNk6F_tab2jwPOd2H-GzjeXTM3XG-3aeGv0Kch12mYieiQYBbR5aIJdQ_xAHusIdOh2rA7I8x84yEGXZoDzopc8MOkwajLJEs86iQGJF0I_UPsRSD1i7o9imBOO-vd7Do9dulZnZJofBY2C7xzmO-w94YwMcP2CpsAHCxcfeSrGbCD6BNoWpMvQmZkHnRute8sMgnlEwoCSbUZxMvDBFLd-RNTlwPHngkyoAwL-J5xHgSxT7zIPH9OI_9MIl8EXi56C_lbvtMxhTzB-2-LzRwiSsloXSlS2WKR0TS9i6oLEGeFbrLPf2IJkh62mbOClXnxbwb57Sp3fJaFf-GNtsU0VO-SnY1fQE8LqE2xQMciwWIe_NcNbWy4D5lwee1MrYQuDLdDCRdmfaH_tt03D67Nb29Tadf8e3Xczz7fnn5_f8u_ucLnl1cnt_g2-9t8emfX_D1-dX361vUppVe7UpNjdsUgb3pqesGGnC70oPE3HbjvZ02nT04p57lqpSdovJfzhXuvccHz5jA9xIdZFLcL8JYJ63DzZ2v3CI648ci5iKKJmK5_P2TtgnPb55zOs4HxoVZC621uPeAf2bSl0WmuX5yT2ruas7W3a7b5GazEV3uEJv-_Pnz5_G3b8dnZ8dfv377dnOD2LkrXyhja14BYueTNoP5fchisVDKdAnQXf8uK9suuIsyWoNZqloaF16eVKO7LOmN0PJWT_nvnWWVuH4kT5hMWMKP4MSLfMoCP_bjo8VJEkHoU-HThNEokJTlmaQiSChkCWF-clScUEIDwryEMBrRaJIwSETGAhA88gNCkE-g4kU5caFmovT8qE0XP_GYl4TRUckzKM3qpwbdW7Auiav_uYE-aWNU1swN8klZGGuGoWxhy_Z3Cq59cLYjQx-bolqWgMVy2Ub4o0aXJx_PcO9RP5zQ_wQAAP__ckzYaQ">