Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[AVR] clang crashed with simple cpp code #131967

Closed
benshi001 opened this issue Mar 19, 2025 · 0 comments · Fixed by #131976
Closed

[AVR] clang crashed with simple cpp code #131967

benshi001 opened this issue Mar 19, 2025 · 0 comments · Fixed by #131976
Assignees
Labels
backend:AVR crash Prefer [crash-on-valid] or [crash-on-invalid]

Comments

@benshi001
Copy link
Member

// 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

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: 

********************
@benshi001 benshi001 self-assigned this Mar 19, 2025
@EugeneZelenko EugeneZelenko added the crash Prefer [crash-on-valid] or [crash-on-invalid] label Mar 19, 2025
benshi001 added a commit to benshi001/llvm-project that referenced this issue Mar 19, 2025
benshi001 added a commit to benshi001/llvm-project that referenced this issue Mar 20, 2025
benshi001 added a commit to benshi001/llvm-project that referenced this issue Mar 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend:AVR crash Prefer [crash-on-valid] or [crash-on-invalid]
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants