Closed
Description
For target x86_64-none-linux
struct A {
long double y;
};
void foo() {
A x;
}
Failed assert from clangir/mlir/include/mlir/IR/StorageUniquerSupport.h:180
https://godbolt.org/z/5McnErs65
stacktrace
error: IntType only supports widths from 1up to 64
clang: /home/ladisgin/git_proj/clangir/llvm/../mlir/include/mlir/IR/StorageUniquerSupport.h:180: static ConcreteT mlir::detail::StorageUserBase<ConcreteT, BaseT, StorageT, UniquerT, Traits>::get(mlir::MLIRContext*, Args&& ...) [with Args = {unsigned int, bool}; ConcreteT = mlir::cir::IntType; BaseT = mlir::Type; StorageT = mlir::cir::detail::IntTypeStorage; UniquerT = mlir::detail::TypeUniquer; Traits = {mlir::DataLayoutTypeInterface::Trait}]: Assertion `succeeded(ConcreteT::verify(getDefaultDiagnosticEmitFn(ctx), args...))' failed.
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: /home/ladisgin/git_proj/clangir/build/bin/clang -c -S -Xclang -emit-cir misaligned-param.c
1. <eof> parser at end of file
2. misaligned-param.c:7:13: LLVM IR generation of declaration 'foo'
#0 0x000000000b236a1e llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /home/ladisgin/git_proj/clangir/llvm/lib/Support/Unix/Signals.inc:723:22
#1 0x000000000b236e5c PrintStackTraceSignalHandler(void*) /home/ladisgin/git_proj/clangir/llvm/lib/Support/Unix/Signals.inc:798:1
#2 0x000000000b23465e llvm::sys::RunSignalHandlers() /home/ladisgin/git_proj/clangir/llvm/lib/Support/Signals.cpp:105:20
#3 0x000000000b2362fe llvm::sys::CleanupOnSignal(unsigned long) /home/ladisgin/git_proj/clangir/llvm/lib/Support/Unix/Signals.inc:367:31
#4 0x000000000b167656 (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) /home/ladisgin/git_proj/clangir/llvm/lib/Support/CrashRecoveryContext.cpp:73:5
#5 0x000000000b167ae5 CrashRecoverySignalHandler(int) /home/ladisgin/git_proj/clangir/llvm/lib/Support/CrashRecoveryContext.cpp:391:1
#6 0x00007f31ea64fd00 __restore_rt (/lib64/libc.so.6+0x40d00)
#7 0x00007f31ea6a8664 __pthread_kill_implementation (/lib64/libc.so.6+0x99664)
#8 0x00007f31ea64fc4e gsignal (/lib64/libc.so.6+0x40c4e)
#9 0x00007f31ea637902 abort (/lib64/libc.so.6+0x28902)
#10 0x00007f31ea63781e _nl_load_domain.cold (/lib64/libc.so.6+0x2881e)
#11 0x00007f31ea647d87 (/lib64/libc.so.6+0x38d87)
#12 0x000000000f0dbdc3 mlir::cir::IntType mlir::detail::StorageUserBase<mlir::cir::IntType, mlir::Type, mlir::cir::detail::IntTypeStorage, mlir::detail::TypeUniquer, mlir::DataLayoutTypeInterface::Trait>::get<unsigned int, bool>(mlir::MLIRContext*, unsigned int&&, bool&&) /home/ladisgin/git_proj/clangir/llvm/../mlir/include/mlir/IR/StorageUniquerSupport.h:180:5
#13 0x000000000f0d0383 mlir::cir::IntType::get(mlir::MLIRContext*, unsigned int, bool) /home/ladisgin/git_proj/clangir/build/tools/clang/include/clang/CIR/Dialect/IR/CIROpsTypes.cpp.inc:224:1
#14 0x000000000d751e6a (anonymous namespace)::CIRRecordLowering::getUIntNType(unsigned long) /home/ladisgin/git_proj/clangir/clang/lib/CIR/CodeGen/CIRRecordLayoutBuilder.cpp:146:35
#15 0x000000000d754072 (anonymous namespace)::CIRRecordLowering::determinePacked(bool) /home/ladisgin/git_proj/clangir/clang/lib/CIR/CodeGen/CIRRecordLayoutBuilder.cpp:660:39
#16 0x000000000d75269a (anonymous namespace)::CIRRecordLowering::lower(bool) /home/ladisgin/git_proj/clangir/clang/lib/CIR/CodeGen/CIRRecordLayoutBuilder.cpp:299:16
#17 0x000000000d754557 cir::CIRGenTypes::computeRecordLayout(clang::RecordDecl const*, mlir::cir::StructType*) /home/ladisgin/git_proj/clangir/clang/lib/CIR/CodeGen/CIRRecordLayoutBuilder.cpp:698:25
#18 0x000000000d6771ae cir::CIRGenTypes::convertRecordDeclType(clang::RecordDecl const*) /home/ladisgin/git_proj/clangir/clang/lib/CIR/CodeGen/CIRGenTypes.cpp:225:22
#19 0x000000000d677929 cir::CIRGenTypes::ConvertType(clang::QualType) /home/ladisgin/git_proj/clangir/clang/lib/CIR/CodeGen/CIRGenTypes.cpp:367:55
#20 0x000000000d75d274 (anonymous namespace)::X86_64ABIInfo::computeInfo(cir::CIRGenFunctionInfo&) const /home/ladisgin/git_proj/clangir/clang/lib/CIR/CodeGen/TargetInfo.cpp:331:39
#21 0x000000000d678cb3 cir::CIRGenTypes::arrangeCIRFunctionInfo(clang::CanQual<clang::Type>, cir::FnInfoOpts, llvm::ArrayRef<clang::CanQual<clang::Type>>, clang::FunctionType::ExtInfo, llvm::ArrayRef<clang::FunctionType::ExtParameterInfo>, cir::RequiredArgs) /home/ladisgin/git_proj/clangir/clang/lib/CIR/CodeGen/CIRGenTypes.cpp:805:42
#22 0x000000000d685df3 arrangeCIRFunctionInfo(cir::CIRGenTypes&, cir::FnInfoOpts, llvm::SmallVectorImpl<clang::CanQual<clang::Type>>&, clang::CanQual<clang::FunctionProtoType>) /home/ladisgin/git_proj/clangir/clang/lib/CIR/CodeGen/CIRGenCall.cpp:1225:36
#23 0x000000000d685e5b cir::CIRGenTypes::arrangeFreeFunctionType(clang::CanQual<clang::FunctionProtoType>) /home/ladisgin/git_proj/clangir/clang/lib/CIR/CodeGen/CIRGenCall.cpp:1234:34
#24 0x000000000d687268 cir::CIRGenTypes::arrangeFunctionDeclaration(clang::FunctionDecl const*) /home/ladisgin/git_proj/clangir/clang/lib/CIR/CodeGen/CIRGenCall.cpp:1530:65
#25 0x000000000d678fbc cir::CIRGenTypes::arrangeGlobalDeclaration(clang::GlobalDecl) /home/ladisgin/git_proj/clangir/clang/lib/CIR/CodeGen/CIRGenTypes.cpp:829:39
#26 0x000000000d60c5f0 cir::CIRGenModule::buildGlobalFunctionDefinition(clang::GlobalDecl, mlir::Operation*) /home/ladisgin/git_proj/clangir/clang/lib/CIR/CodeGen/CIRGenModule.cpp:569:69
#27 0x000000000d60fb5b cir::CIRGenModule::buildGlobalDefinition(clang::GlobalDecl, mlir::Operation*) /home/ladisgin/git_proj/clangir/clang/lib/CIR/CodeGen/CIRGenModule.cpp:1374:5
#28 0x000000000d60c37a cir::CIRGenModule::buildGlobal(clang::GlobalDecl) /home/ladisgin/git_proj/clangir/clang/lib/CIR/CodeGen/CIRGenModule.cpp:538:5
#29 0x000000000d611551 cir::CIRGenModule::buildTopLevelDecl(clang::Decl*) /home/ladisgin/git_proj/clangir/clang/lib/CIR/CodeGen/CIRGenModule.cpp:1728:5
#30 0x000000000d608334 cir::CIRGenerator::HandleTopLevelDecl(clang::DeclGroupRef) /home/ladisgin/git_proj/clangir/clang/lib/CIR/CodeGen/CIRGenerator.cpp:84:3
#31 0x000000000d36fe5d cir::CIRGenConsumer::HandleTopLevelDecl(clang::DeclGroupRef) /home/ladisgin/git_proj/clangir/clang/lib/CIR/FrontendAction/CIRGenAction.cpp:156:12
#32 0x00000000113b6230 clang::ParseAST(clang::Sema&, bool, bool) /home/ladisgin/git_proj/clangir/clang/lib/Parse/ParseAST.cpp:167:20
#33 0x000000000c6a1ba4 clang::ASTFrontendAction::ExecuteAction() /home/ladisgin/git_proj/clangir/clang/lib/Frontend/FrontendAction.cpp:1212:11
#34 0x000000000d36e2a7 cir::CIRGenAction::ExecuteAction() /home/ladisgin/git_proj/clangir/clang/lib/CIR/FrontendAction/CIRGenAction.cpp:405:5
#35 0x000000000c6a1501 clang::FrontendAction::Execute() /home/ladisgin/git_proj/clangir/clang/lib/Frontend/FrontendAction.cpp:1102:38
#36 0x000000000c5c4048 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /home/ladisgin/git_proj/clangir/clang/lib/Frontend/CompilerInstance.cpp:1061:42
#37 0x000000000c849e1d clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /home/ladisgin/git_proj/clangir/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:369:38
#38 0x00000000094772cf cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /home/ladisgin/git_proj/clangir/clang/tools/driver/cc1_main.cpp:232:40
#39 0x0000000009469746 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) /home/ladisgin/git_proj/clangir/clang/tools/driver/driver.cpp:215:20
#40 0x0000000009469929 clang_main(int, char**, llvm::ToolContext const&)::'lambda'(llvm::SmallVectorImpl<char const*>&)::operator()(llvm::SmallVectorImpl<char const*>&) const /home/ladisgin/git_proj/clangir/clang/tools/driver/driver.cpp:356:5
#41 0x000000000946aec7 int llvm::function_ref<int (llvm::SmallVectorImpl<char const*>&)>::callback_fn<clang_main(int, char**, llvm::ToolContext const&)::'lambda'(llvm::SmallVectorImpl<char const*>&)>(long, llvm::SmallVectorImpl<char const*>&) /home/ladisgin/git_proj/clangir/llvm/include/llvm/ADT/STLFunctionalExtras.h:47:3
#42 0x000000000c41c299 llvm::function_ref<int (llvm::SmallVectorImpl<char const*>&)>::operator()(llvm::SmallVectorImpl<char const*>&) const /home/ladisgin/git_proj/clangir/llvm/include/llvm/ADT/STLFunctionalExtras.h:69:3
#43 0x000000000c41b008 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::'lambda'()::operator()() const /home/ladisgin/git_proj/clangir/clang/lib/Driver/Job.cpp:440:32
#44 0x000000000c41b42d void llvm::function_ref<void ()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const::'lambda'()>(long) /home/ladisgin/git_proj/clangir/llvm/include/llvm/ADT/STLFunctionalExtras.h:46:40
#45 0x0000000009e7d46c llvm::function_ref<void ()>::operator()() const /home/ladisgin/git_proj/clangir/llvm/include/llvm/ADT/STLFunctionalExtras.h:68:62
#46 0x000000000b167cb2 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) /home/ladisgin/git_proj/clangir/llvm/lib/Support/CrashRecoveryContext.cpp:427:10
#47 0x000000000c41b1fc clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const /home/ladisgin/git_proj/clangir/clang/lib/Driver/Job.cpp:440:7
#48 0x000000000c3b9f61 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const /home/ladisgin/git_proj/clangir/clang/lib/Driver/Compilation.cpp:199:22
#49 0x000000000c3ba28d clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const /home/ladisgin/git_proj/clangir/clang/lib/Driver/Compilation.cpp:253:62
#50 0x000000000c3ccb10 clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) /home/ladisgin/git_proj/clangir/clang/lib/Driver/Driver.cpp:1951:28
#51 0x000000000946aa83 clang_main(int, char**, llvm::ToolContext const&) /home/ladisgin/git_proj/clangir/clang/tools/driver/driver.cpp:391:39
#52 0x000000000949fe7f main /home/ladisgin/git_proj/clangir/build/tools/clang/tools/driver/clang-driver.cpp:17:20
#53 0x00007f31ea639088 __libc_start_call_main (/lib64/libc.so.6+0x2a088)
#54 0x00007f31ea63914b __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x2a14b)
#55 0x0000000009468ba5 _start (/home/ladisgin/git_proj/clangir/build/bin/clang+0x9468ba5)
clang: error: clang frontend command failed with exit code 134 (use -v to see invocation)
clang version 19.0.0git ([email protected]:llvm/clangir.git 52323c17c6a3708b3eb72651465f7d4b82f057e7)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/ladisgin/git_proj/clangir/build/bin
Build config: +unoptimized, +assertions
clang: error: unable to execute command: Aborted (core dumped)
clang: note: diagnostic msg: Error generating preprocessed source(s).
@smeenai also gave another example in the discord for aarch64-none-linux-android21
. https://godbolt.org/z/8Y85148EY