Skip to content

Assertion `MI->getOpcode() == TargetOpcode::COPY && "start of copy chain MUST be COPY"' failed #790

@heshamelmatary

Description

@heshamelmatary
clang: /local/scratch/hmka2/cheri/llvm-project/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:11978: llvm::Register FollowCopyChain(llvm::MachineRegisterInfo &, llvm::Register): Assertion `MI->getOpcode() == TargetOpcode::COPY && "start of copy chain MUST be COPY"' failed.
PLEASE submit a bug report to https://github.com/CTSRD-CHERI/llvm-project/issues and include the crash backtrace, preprocessed source, and associated run script.
If you built clang from source, please provide a reduced test case by running:
        $LLVM_BUILD_DIR/bin/creduce_crash_testcase.py <reproducer>.sh
Stack dump:
0.      Program arguments: clang -Wp,-MMD,drivers/usb/core/.devio.o.d -nostdinc -I./arch/riscv/include -I./arch/riscv/include/generated -I./include -I./include -I./arch/riscv/include/uapi -I./arch/riscv/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/compiler-version.h -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ --target=riscv64-linux-gnu -fintegrated-as -Werror=unknown-warning-option -Werror=ignored-optimization-argument -Werror=option-ignored -Werror=unused-command-line-argument -std=gnu11 -fshort-wchar -funsigned-char -fno-common -fno-PIE -fno-strict-aliasing -mabi=lp64 -march=rv64imac -mno-save-restore -mcmodel=medany -fno-asynchronous-unwind-tables -fno-unwind-tables -fno-delete-null-pointer-checks -O2 -fstack-protector-strong -fno-omit-frame-pointer -fno-optimize-sibling-calls -ftrivial-auto-var-init=zero -falign-functions=4 -fstrict-flex-arrays=3 -fno-strict-overflow -fno-stack-check -fno-builtin-wcslen -Wall -Wextra -Wundef -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Werror=strict-prototypes -Wno-format-security -Wno-trigraphs -Wno-frame-address -Wno-address-of-packed-member -Wmissing-declarations -Wmissing-prototypes -Wframe-larger-than=2048 -Wno-gnu -Wno-pointer-sign -Wcast-function-type -Wimplicit-fallthrough -Werror=date-time -Werror=incompatible-pointer-types -Wenum-conversion -Wunused -Wno-unused-but-set-variable -Wno-unused-const-variable -Wno-override-init -Wno-pointer-to-enum-cast -Wno-tautological-constant-out-of-range-compare -Wno-unaligned-access -Wno-enum-compare-conditional -Wno-missing-field-initializers -Wno-type-limits -Wno-shift-negative-value -Wno-enum-enum-conversion -Wno-sign-compare -Wno-unused-parameter -DKBUILD_MODFILE=\"drivers/usb/core/usbcore\" -DKBUILD_BASENAME=\"devio\" -DKBUILD_MODNAME=\"usbcore\" -D__KBUILD_MODNAME=kmod_usbcore -c -o drivers/usb/core/devio.o drivers/usb/core/devio.c
1.      <eof> parser at end of file
2.      Code generation
3.      Running pass 'Function Pass Manager' on module 'drivers/usb/core/devio.c'.
4.      Running pass 'RISC-V DAG->DAG Pattern Instruction Selection' on function '@parse_usbdevfs_streams'
 #0 0x000055ddc50a4187 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/local/scratch/hmka2/cheri/output/sdk/bin/clang-17+0x52d9187)
 #1 0x000055ddc50a1f3e llvm::sys::RunSignalHandlers() (/local/scratch/hmka2/cheri/output/sdk/bin/clang-17+0x52d6f3e)
 #2 0x000055ddc5012d58 CrashRecoverySignalHandler(int) CrashRecoveryContext.cpp:0:0
 #3 0x00007ecd02a42520 (/lib/x86_64-linux-gnu/libc.so.6+0x42520)
 #4 0x00007ecd02a969fc __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
 #5 0x00007ecd02a969fc __pthread_kill_internal ./nptl/pthread_kill.c:78:10
 #6 0x00007ecd02a969fc pthread_kill ./nptl/pthread_kill.c:89:10
 #7 0x00007ecd02a42476 gsignal ./signal/../sysdeps/posix/raise.c:27:6
 #8 0x00007ecd02a287f3 abort ./stdlib/abort.c:81:7
 #9 0x00007ecd02a2871b _nl_load_domain ./intl/loadmsgcat.c:1177:9
#10 0x00007ecd02a39e96 (/lib/x86_64-linux-gnu/libc.so.6+0x39e96)
#11 0x000055ddc619c794 llvm::SelectionDAGBuilder::visitCallBrLandingPad(llvm::CallInst const&) (/local/scratch/hmka2/cheri/output/sdk/bin/clang-17+0x63d1794)
#12 0x000055ddc618c888 llvm::SelectionDAGBuilder::visitIntrinsicCall(llvm::CallInst const&, unsigned int) (/local/scratch/hmka2/cheri/output/sdk/bin/clang-17+0x63c1888)
#13 0x000055ddc615e8f6 llvm::SelectionDAGBuilder::visit(llvm::Instruction const&) (/local/scratch/hmka2/cheri/output/sdk/bin/clang-17+0x63938f6)
#14 0x000055ddc62113d0 llvm::SelectionDAGISel::SelectBasicBlock(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, false, true>, llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Instruction, true, false, void>, false, true>, bool&) (/local/scratch/hmka2/cheri/output/sdk/bin/clang-17+0x64463d0)
#15 0x000055ddc621070b llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/local/scratch/hmka2/cheri/output/sdk/bin/clang-17+0x644570b)
#16 0x000055ddc620d515 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/local/scratch/hmka2/cheri/output/sdk/bin/clang-17+0x6442515)
#17 0x000055ddc45d12f5 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/local/scratch/hmka2/cheri/output/sdk/bin/clang-17+0x48062f5)
#18 0x000055ddc4b6ce6b llvm::FPPassManager::runOnFunction(llvm::Function&) (/local/scratch/hmka2/cheri/output/sdk/bin/clang-17+0x4da1e6b)
#19 0x000055ddc4b752b1 llvm::FPPassManager::runOnModule(llvm::Module&) (/local/scratch/hmka2/cheri/output/sdk/bin/clang-17+0x4daa2b1)
#20 0x000055ddc4b6d8f5 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/local/scratch/hmka2/cheri/output/sdk/bin/clang-17+0x4da28f5)
#21 0x000055ddc58501f2 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>>) (/local/scratch/hmka2/cheri/output/sdk/bin/clang-17+0x5a851f2)
#22 0x000055ddc5d4d759 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) CodeGenAction.cpp:0:0
#23 0x000055ddc6b4fac4 clang::ParseAST(clang::Sema&, bool, bool) (/local/scratch/hmka2/cheri/output/sdk/bin/clang-17+0x6d84ac4)
#24 0x000055ddc5c627d0 clang::FrontendAction::Execute() (/local/scratch/hmka2/cheri/output/sdk/bin/clang-17+0x5e977d0)
#25 0x000055ddc5bd00ff clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/local/scratch/hmka2/cheri/output/sdk/bin/clang-17+0x5e050ff)
#26 0x000055ddc5d459b2 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/local/scratch/hmka2/cheri/output/sdk/bin/clang-17+0x5f7a9b2)
#27 0x000055ddc3719a33 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/local/scratch/hmka2/cheri/output/sdk/bin/clang-17+0x394ea33)
#28 0x000055ddc371692d ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&, llvm::ToolContext const&) driver.cpp:0:0
#29 0x000055ddc5a35f79 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::$_1>(long) Job.cpp:0:0
#30 0x000055ddc5012a9c llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (/local/scratch/hmka2/cheri/output/sdk/bin/clang-17+0x5247a9c)
#31 0x000055ddc5a3569f clang::driver::CC1Command::Execute(llvm::ArrayRef<std::optional<llvm::StringRef>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>*, bool*) const (/local/scratch/hmka2/cheri/output/sdk/bin/clang-17+0x5c6a69f)
#32 0x000055ddc59ef7e9 clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&, clang::driver::Command const*&, bool) const (/local/scratch/hmka2/cheri/output/sdk/bin/clang-17+0x5c247e9)
#33 0x000055ddc59efaa7 clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&, bool) const (/local/scratch/hmka2/cheri/output/sdk/bin/clang-17+0x5c24aa7)
#34 0x000055ddc5a0fc3a clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&, llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*>>&) (/local/scratch/hmka2/cheri/output/sdk/bin/clang-17+0x5c44c3a)
#35 0x000055ddc3715e37 clang_main(int, char**, llvm::ToolContext const&) (/local/scratch/hmka2/cheri/output/sdk/bin/clang-17+0x394ae37)
#36 0x000055ddc3726f11 main (/local/scratch/hmka2/cheri/output/sdk/bin/clang-17+0x395bf11)
#37 0x00007ecd02a29d90 __libc_start_call_main ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
#38 0x00007ecd02a29e40 call_init ./csu/../csu/libc-start.c:128:20
#39 0x00007ecd02a29e40 __libc_start_main ./csu/../csu/libc-start.c:379:5
#40 0x000055ddc3712de5 _start (/local/scratch/hmka2/cheri/output/sdk/bin/clang-17+0x3947de5)
clang: error: clang frontend command failed with exit code 134 (use -v to see invocation)
clang version 17.0.0 (https://github.com/CTSRD-CHERI/llvm-project.git 05c88511ae7c60ec12fc2e15dce91eba6783db04)
Target: riscv64-unknown-linux-gnu
Thread model: posix
InstalledDir: /local/scratch/hmka2/cheri/output/sdk/bin
clang: note: diagnostic msg: 
********************

devio-fa00fd.c
devio-fa00fd.c

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions