Issue 131967
Summary [AVR] clang crashed with simple cpp code
Labels backend:AVR
Assignees benshi001
Reporter benshi001
    ```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: 

********************
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to