-
Notifications
You must be signed in to change notification settings - Fork 15.1k
Closed
Labels
Description
Bugzilla Link | 51724 |
Version | trunk |
OS | All |
Attachments | Clang crash reproducer |
Extended Description
We ran into this failure when trying to use -fmerge-functions.
Constant ValueID not recognized.
UNREACHABLE executed at /src/clang-llvm/llvm-project/llvm/lib/Transforms/Utils/FunctionComparator.cpp:399!
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: ../bin/clang++ -cc1 -triple x86_64-unknown-fuchsia -emit-obj -massembler-fatal-warnings --mrelax-relocations -disable-free -disable-llvm-verifier -discard-value-names -main-file-name zircon_platform_buffer.cc -mrelocation-model pic -pic-level 2 -pic-is-pie -mframe-pointer=none -fno-rounding-math -mconstructor-aliases -munwind-tables -target-cpu x86-64-v2 -mllvm -x86-branches-within-32B-boundaries -debug-info-kind=constructor -dwarf-version=5 -debugger-tuning=gdb -mllvm -crash-diagnostics-dir=clang-crashreports -ffunction-sections -fdata-sections -fcoverage-compilation-dir=. -sys-header-deps -D TOOLCHAIN_VERSION=dO8igrHyLDfgq8txd8Qx0mI9oJqFLswAMLcIBKLF6TYC -D _LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS -D NDEBUG=1 -D _LIBCPP_ENABLE_THREAD_SAFETY_ANNOTATIONS=1 -D MAGMA_DEBUG_INTERNAL_USE_ONLY=0 -D MAGMA_ENABLE_TRACING -O3 -Wall -Wextra -Wnewline-eof -Wconversion -Wimplicit-fallthrough -Wno-unused-parameter -Wno-sign-conversion -Wno-c99-designator -Werror -Wno-error=deprecated-declarations -Wthread-safety -Wno-deprecated-copy -Wno-suggest-override -std=c++17 -fdeprecated-macro -fdebug-compilation-dir=. -ferror-limit 19 -fvisibility hidden -fvisibility-inlines-hidden -fsanitize=safe-stack -stack-protector 2 -ftrivial-auto-var-init=pattern -fno-rtti -fgnuc-version=4.2.1 -fno-legacy-pass-manager -fcolor-diagnostics -vectorize-loops -vectorize-slp -debug-info-kind=constructor -fmerge-functions -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -x c++ zircon_platform_buffer-84a54b.cpp
1. <eof> parser at end of file
2. Optimizer
#​0 0x00000000092b3a5a llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /src/clang-llvm/llvm-project/llvm/lib/Support/Unix/Signals.inc:565:11
#​1 0x00000000092b3b6b PrintStackTraceSignalHandler(void*) /src/clang-llvm/llvm-project/llvm/lib/Support/Unix/Signals.inc:632:1
#​2 0x00000000092b2423 llvm::sys::RunSignalHandlers() /src/clang-llvm/llvm-project/llvm/lib/Support/Signals.cpp:97:5
#​3 0x00000000092b41a5 SignalHandler(int) /src/clang-llvm/llvm-project/llvm/lib/Support/Unix/Signals.inc:407:1
#​4 0x00007feff6aac140 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x14140)
#​5 0x00007feff67b9ce1 raise (/lib/x86_64-linux-gnu/libc.so.6+0x3bce1)
#​6 0x00007feff67a3537 abort (/lib/x86_64-linux-gnu/libc.so.6+0x25537)
#​7 0x00000000091daff0 llvm::install_out_of_memory_new_handler() /src/clang-llvm/llvm-project/llvm/lib/Support/ErrorHandling.cpp:194:0
#​8 0x0000000009332127 llvm::FunctionComparator::cmpConstants(llvm::Constant const*, llvm::Constant const*) const /src/clang-llvm/llvm-project/llvm/lib/Transforms/Utils/FunctionComparator.cpp:402:1
#​9 0x0000000009331d87 llvm::FunctionComparator::cmpConstants(llvm::Constant const*, llvm::Constant const*) const /src/clang-llvm/llvm-project/llvm/lib/Transforms/Utils/FunctionComparator.cpp:357:15
#​10 0x00000000093322a7 llvm::FunctionComparator::cmpValues(llvm::Value const*, llvm::Value const*) const /src/clang-llvm/llvm-project/llvm/lib/Transforms/Utils/FunctionComparator.cpp:767:5
#​11 0x0000000009333da1 llvm::FunctionComparator::cmpBasicBlocks(llvm::BasicBlock const*, llvm::BasicBlock const*) const /src/clang-llvm/llvm-project/llvm/lib/Transforms/Utils/FunctionComparator.cpp:807:17
#​12 0x0000000009334565 llvm::FunctionComparator::compare() /src/clang-llvm/llvm-project/llvm/lib/Transforms/Utils/FunctionComparator.cpp:896:13
#​13 0x0000000008894caa (anonymous namespace)::MergeFunctions::FunctionNodeCmp::operator()((anonymous namespace)::FunctionNode const&, (anonymous namespace)::FunctionNode const&) const /src/clang-llvm/llvm-project/llvm/lib/Transforms/IPO/MergeFunctions.cpp:220:29
#​14 0x00000000088947ef std::__2::__tree_node_base<void*>*& std::__2::__tree<(anonymous namespace)::FunctionNode, (anonymous namespace)::MergeFunctions::FunctionNodeCmp, std::__2::allocator<(anonymous namespace)::FunctionNode> >::__find_equal<(anonymous namespace)::FunctionNode>(std::__2::__tree_end_node<std::__2::__tree_node_base<void*>*>*&, (anonymous namespace)::FunctionNode const&) /usr/local/google/home/phosek/fuchsia/prebuilt/third_party/clang/linux-x64/bin/../include/c++/v1/__tree:1975:17
#​15 0x00000000088946bc std::__2::pair<std::__2::__tree_iterator<(anonymous namespace)::FunctionNode, std::__2::__tree_node<(anonymous namespace)::FunctionNode, void*>*, long>, bool> std::__2::__tree<(anonymous namespace)::FunctionNode, (anonymous namespace)::MergeFunctions::FunctionNodeCmp, std::__2::allocator<(anonymous namespace)::FunctionNode> >::__emplace_unique_key_args<(anonymous namespace)::FunctionNode, (anonymous namespace)::FunctionNode>((anonymous namespace)::FunctionNode const&, (anonymous namespace)::FunctionNode&&) /usr/local/google/home/phosek/fuchsia/prebuilt/third_party/clang/linux-x64/bin/../include/c++/v1/__tree:2091:26
#​16 0x00000000088945fe std::__2::__tree<(anonymous namespace)::FunctionNode, (anonymous namespace)::MergeFunctions::FunctionNodeCmp, std::__2::allocator<(anonymous namespace)::FunctionNode> >::__insert_unique((anonymous namespace)::FunctionNode&&) /usr/local/google/home/phosek/fuchsia/prebuilt/third_party/clang/linux-x64/bin/../include/c++/v1/__tree:1260:16
#​17 0x0000000008893c8d std::__2::set<(anonymous namespace)::FunctionNode, (anonymous namespace)::MergeFunctions::FunctionNodeCmp, std::__2::allocator<(anonymous namespace)::FunctionNode> >::insert((anonymous namespace)::FunctionNode&&) /usr/local/google/home/phosek/fuchsia/prebuilt/third_party/clang/linux-x64/bin/../include/c++/v1/set:687:25
#​18 0x00000000088937a6 (anonymous namespace)::MergeFunctions::insert(llvm::Function*) /src/clang-llvm/llvm-project/llvm/lib/Transforms/IPO/MergeFunctions.cpp:905:14
#​19 0x0000000008892378 (anonymous namespace)::MergeFunctions::runOnModule(llvm::Module&) /src/clang-llvm/llvm-project/llvm/lib/Transforms/IPO/MergeFunctions.cpp:450:20
#​20 0x0000000008891da8 llvm::MergeFunctionsPass::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /src/clang-llvm/llvm-project/llvm/lib/Transforms/IPO/MergeFunctions.cpp:327:7
#​21 0x000000000aecbbc7 llvm::detail::PassModel<llvm::Module, llvm::MergeFunctionsPass, llvm::PreservedAnalyses, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /src/clang-llvm/llvm-project/llvm/include/llvm/IR/PassManagerInternal.h:85:17
#​22 0x000000000869523d llvm::PassManager<llvm::Module, llvm::AnalysisManager<llvm::Module> >::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /src/clang-llvm/llvm-project/llvm/include/llvm/IR/PassManager.h:509:16
#​23 0x0000000009f5728e (anonymous namespace)::EmitAssemblyHelper::EmitAssemblyWithNewPassManager(clang::BackendAction, std::__2::unique_ptr<llvm::raw_pwrite_stream, std::__2::default_delete<llvm::raw_pwrite_stream> >) /src/clang-llvm/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1495:5
#​24 0x0000000009f54df9 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, std::__2::unique_ptr<llvm::raw_pwrite_stream, std::__2::default_delete<llvm::raw_pwrite_stream> >) /src/clang-llvm/llvm-project/clang/lib/CodeGen/BackendUtil.cpp:1661:5
#​25 0x000000000a3c2af7 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) /src/clang-llvm/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:338:7
#​26 0x000000000caa5ac1 clang::ParseAST(clang::Sema&, bool, bool) /src/clang-llvm/llvm-project/clang/lib/Parse/ParseAST.cpp:178:12
#​27 0x000000000a1f74cc clang::ASTFrontendAction::ExecuteAction() /src/clang-llvm/llvm-project/clang/lib/Frontend/FrontendAction.cpp:1060:1
#​28 0x000000000a3be6b2 clang::CodeGenAction::ExecuteAction() /src/clang-llvm/llvm-project/clang/lib/CodeGen/CodeGenAction.cpp:1072:5
#​29 0x000000000a1f6efc clang::FrontendAction::Execute() /src/clang-llvm/llvm-project/clang/lib/Frontend/FrontendAction.cpp:955:7
#​30 0x000000000a133a01 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) /src/clang-llvm/llvm-project/clang/lib/Frontend/CompilerInstance.cpp:974:23
#​31 0x000000000a3ad21e clang::ExecuteCompilerInvocation(clang::CompilerInstance*) /src/clang-llvm/llvm-project/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:278:8
#​32 0x0000000005c92384 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) /src/clang-llvm/llvm-project/clang/tools/driver/cc1_main.cpp:246:13
#​33 0x0000000005c84dab ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) /src/clang-llvm/llvm-project/clang/tools/driver/driver.cpp:338:5
#​34 0x0000000005c84015 main /src/clang-llvm/llvm-project/clang/tools/driver/driver.cpp:409:5
#​35 0x00007feff67a4d0a __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x26d0a)
#​36 0x0000000005c8385a _start (../bin/clang+++0x5c8385a)