-
Notifications
You must be signed in to change notification settings - Fork 14.5k
Open
Labels
crashPrefer [crash-on-valid] or [crash-on-invalid]Prefer [crash-on-valid] or [crash-on-invalid]llvm:asmparsermcMachine (object) codeMachine (object) code
Description
The code is:
asm(R"(
foo:
.size foo, FOO
)");
Clang 17.0.1 crashes with:
fatal error: error in backend: Size expression must be absolute.
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: /opt/compiler-explorer/clang-17.0.1/bin/clang++ -gdwarf-4 -g -o /app/output.s -c --gcc-toolchain=/opt/compiler-explorer/gcc-13.2.0 -fcolor-diagnostics -fno-crash-diagnostics -O3 <source>
1. <eof> parser at end of file
2. Code generation
#0 0x0000000003349f18 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x3349f18)
#1 0x0000000003348044 llvm::sys::CleanupOnSignal(unsigned long) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x3348044)
#2 0x000000000329c553 llvm::CrashRecoveryContext::HandleExit(int) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x329c553)
#3 0x000000000334007e llvm::sys::Process::Exit(int, bool) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x334007e)
#4 0x0000000000bd3b76 (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0xbd3b76)
#5 0x00000000032a5583 llvm::report_fatal_error(llvm::Twine const&, bool) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x32a5583)
#6 0x00000000032a56e8 (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x32a56e8)
#7 0x00000000030a3367 (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x30a3367)
#8 0x00000000030a53b6 (anonymous namespace)::ELFWriter::computeSymbolTable(llvm::MCAssembler&, llvm::MCAsmLayout const&, llvm::DenseMap<llvm::MCSectionELF const*, unsigned int, llvm::DenseMapInfo<llvm::MCSectionELF const*, void>, llvm::detail::DenseMapPair<llvm::MCSectionELF const*, unsigned int>> const&, llvm::DenseMap<llvm::MCSymbol const*, unsigned int, llvm::DenseMapInfo<llvm::MCSymbol const*, void>, llvm::detail::DenseMapPair<llvm::MCSymbol const*, unsigned int>> const&, std::map<llvm::MCSectionELF const*, std::pair<unsigned long, unsigned long>, std::less<llvm::MCSectionELF const*>, std::allocator<std::pair<llvm::MCSectionELF const* const, std::pair<unsigned long, unsigned long>>>>&) ELFObjectWriter.cpp:0:0
#9 0x00000000030a856c (anonymous namespace)::ELFWriter::writeObject(llvm::MCAssembler&, llvm::MCAsmLayout const&) (.constprop.0) ELFObjectWriter.cpp:0:0
#10 0x00000000030aab33 (anonymous namespace)::ELFSingleObjectWriter::writeObject(llvm::MCAssembler&, llvm::MCAsmLayout const&) ELFObjectWriter.cpp:0:0
#11 0x00000000030097a6 llvm::MCAssembler::Finish() (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x30097a6)
#12 0x000000000302d678 llvm::MCELFStreamer::finishImpl() (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x302d678)
#13 0x000000000305a627 llvm::MCStreamer::finish(llvm::SMLoc) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x305a627)
#14 0x000000000404084f llvm::AsmPrinter::doFinalization(llvm::Module&) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x404084f)
#15 0x0000000002cefdbd llvm::FPPassManager::doFinalization(llvm::Module&) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x2cefdbd)
#16 0x0000000002cfc7a8 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x2cfc7a8)
#17 0x00000000035b10d0 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>>) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x35b10d0)
#18 0x00000000044f947c clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x44f947c)
#19 0x00000000058beb69 clang::ParseAST(clang::Sema&, bool, bool) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x58beb69)
#20 0x00000000044f8b05 clang::CodeGenAction::ExecuteAction() (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x44f8b05)
#21 0x0000000003dd5f21 clang::FrontendAction::Execute() (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x3dd5f21)
#22 0x0000000003d5b9fb clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x3d5b9fb)
#23 0x0000000003eb5c23 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x3eb5c23)
#24 0x0000000000bd50c5 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0xbd50c5)
#25 0x0000000000bce42d ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#26 0x0000000003ba7489 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) Job.cpp:0:0
#27 0x000000000329c453 llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x329c453)
#28 0x0000000003ba76a9 clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (.part.0) Job.cpp:0:0
#29 0x0000000003b6f477 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x3b6f477)
#30 0x0000000003b6fe2d clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x3b6fe2d)
#31 0x0000000003b79d0c clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0x3b79d0c)
#32 0x0000000000bd2d31 clang_main(int, char**, llvm::ToolContext const&) (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0xbd2d31)
#33 0x0000000000acf511 main (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0xacf511)
#34 0x00007fc308c29d90 (/lib/x86_64-linux-gnu/libc.so.6+0x29d90)
#35 0x00007fc308c29e40 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x29e40)
#36 0x0000000000bcdc2e _start (/opt/compiler-explorer/clang-17.0.1/bin/clang+++0xbcdc2e)
clang++: error: clang frontend command failed with exit code 70 (use -v to see invocation)
Compiler returned: 70
https://godbolt.org/z/TvnehKqTa
It takes just a typo in macro name, or not including a right header.
Metadata
Metadata
Assignees
Labels
crashPrefer [crash-on-valid] or [crash-on-invalid]Prefer [crash-on-valid] or [crash-on-invalid]llvm:asmparsermcMachine (object) codeMachine (object) code