Skip to content

clang crash in llvm::SelectionDAG::Combine on -O0 #33484

@dbabokin

Description

@dbabokin
Bugzilla Link 34137
Resolution FIXED
Resolved on Aug 24, 2017 09:27
Version trunk
OS All
Blocks #33196
CC @dbabokin,@filcab,@zmodem,@RKSimon,@Vsevolod-Livinskij

Extended Description

clang version 6.0.0 (trunk 310534)
Target: x86_64-unknown-linux-gnu

cat f.cpp
extern unsigned short var_3;
extern unsigned short var_13;
extern bool var_85;
extern unsigned long long int var_212;
void foo() {
int a(var_3 & (var_3 & var_13));
var_212 = (!(var_3 & (var_3 & var_13))) & var_3;
short b = var_85;
}
clang++ -O0 -c f.cpp
clang-6.0: /llvm/llvm-trunk-20170809/lib/CodeGen/SelectionDAG/DAGCombiner.cpp:1433: void (anonymous namespace)::DAGCombiner::Run(llvm::CombineLevel): Assertion `N->getOpcode() != ISD::DELETED_NODE && RV.getOpcode() != ISD::DELETED_NODE && "Node was deleted b
ut visit returned new node!"' failed.
#​0 0x000000000131329f llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/llvm/bin-trunk-20170809/bin/clang-6.0+0x131329f)
#​1 0x00000000013135a6 SignalHandler(int) (/llvm/bin-trunk-20170809/bin/clang-6.0+0x13135a6)
#​2 0x00007f17b8a33370 __restore_rt (/lib64/libpthread.so.0+0xf370)
#​3 0x00007f17b75af1d7 __GI_raise (/lib64/libc.so.6+0x351d7)
#​4 0x00007f17b75b08c8 __GI_abort (/lib64/libc.so.6+0x368c8)
#​5 0x00007f17b75a8146 __assert_fail_base (/lib64/libc.so.6+0x2e146)
#​6 0x00007f17b75a81f2 (/lib64/libc.so.6+0x2e1f2)
#​7 0x000000000192802b llvm::SelectionDAG::Combine(llvm::CombineLevel, llvm::AAResults*, llvm::CodeGenOpt::Level) (/llvm/bin-trunk-20170809/bin/clang-6.0+0x192802b)
#​8 0x0000000001a5bda0 llvm::SelectionDAGISel::CodeGenAndEmitDAG() (/llvm/bin-trunk-20170809/bin/clang-6.0+0x1a5bda0)
#​9 0x0000000001a597ad llvm::SelectionDAGISel::SelectAllBasicBlocks(llvm::Function const&) (/llvm/bin-trunk-20170809/bin/clang-6.0+0x1a597ad)
#​10 0x0000000001a56244 llvm::SelectionDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/llvm/bin-trunk-20170809/bin/clang-6.0+0x1a56244)
#​11 0x00000000008221d1 (anonymous namespace)::X86DAGToDAGISel::runOnMachineFunction(llvm::MachineFunction&) (/llvm/bin-trunk-20170809/bin/clang-6.0+0x8221d1)
#​12 0x0000000000bbaf84 llvm::MachineFunctionPass::runOnFunction(llvm::Function&) (/llvm/bin-trunk-20170809/bin/clang-6.0+0xbbaf84)
#​13 0x0000000000ebcbaf llvm::FPPassManager::runOnFunction(llvm::Function&) (/llvm/bin-trunk-20170809/bin/clang-6.0+0xebcbaf)
#​14 0x0000000000ebce03 llvm::FPPassManager::runOnModule(llvm::Module&) (/llvm/bin-trunk-20170809/bin/clang-6.0+0xebce03)
#​15 0x0000000000ebd2e6 llvm::legacy::PassManagerImpl::run(llvm::Module&) (/llvm/bin-trunk-20170809/bin/clang-6.0+0xebd2e6)
#​16 0x000000000148873f clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::DataLayout const&, llvm::Module*, clang::BackendAction, std::unique_pt
r<llvm::raw_pwrite_stream, std::default_deletellvm::raw_pwrite_stream >) (/llvm/bin-trunk-20170809/bin/clang-6.0+0x148873f)
#​17 0x0000000001b455f2 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/llvm/bin-trunk-20170809/bin/clang-6.0+0x1b455f2)
#​18 0x0000000001fbdde6 clang::ParseAST(clang::Sema&, bool, bool) (/llvm/bin-trunk-20170809/bin/clang-6.0+0x1fbdde6)
#​19 0x00000000018147e8 clang::FrontendAction::Execute() (/llvm/bin-trunk-20170809/bin/clang-6.0+0x18147e8)
#​20 0x00000000017d8111 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/llvm/bin-trunk-20170809/bin/clang-6.0+0x17d8111)
#​21 0x000000000189c9c7 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/llvm/bin-trunk-20170809/bin/clang-6.0+0x189c9c7)
#​22 0x000000000077864f cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/llvm/bin-trunk-20170809/bin/clang-6.0+0x77864f)
#​23 0x0000000000776391 main (/llvm/bin-trunk-20170809/bin/clang-6.0+0x776391)
#​24 0x00007f17b759bb35 __libc_start_main (/lib64/libc.so.6+0x21b35)
#​25 0x0000000000773547 _start (/llvm/bin-trunk-20170809/bin/clang-6.0+0x773547)
Stack dump:

  1.  Program arguments: /llvm/bin-trunk-20170809/bin/clang-6.0 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -main-file-name f.cpp -mrelocation-model static -mthread-model posix -mdisable-fp-elim -fmath-errno -masm-verbose -mco
    

nstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info -debugger-tuning=gdb -coverage-notes-file /yarpgen/yarpgen/test_run_aug8_reduce/result/clang/compfail/S_3504450031/f.gcno -resource-dir /llvm/bin-trunk-201
70809/lib/clang/6.0.0 -internal-isystem /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../include/c++/4.8.5 -internal-isystem /usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../include/c++/4.8.5/x86_64-redhat-linux -internal-isystem /usr/lib/gcc/x86_64-redhat-linux/4.8.5
/../../../../include/c++/4.8.5/backward -internal-isystem /usr/local/include -internal-isystem /llvm/bin-trunk-20170809/lib/clang/6.0.0/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -O0 -fdeprecated-macro -fdebug-compilati
on-dir /yarpgen/yarpgen/test_run_aug8_reduce/result/clang/compfail/S_3504450031 -ferror-limit 19 -fmessage-length 272 -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-diagnostics -o f.o -x c++ f.cpp

  1.  <eof> parser at end of file
    
  2.  Code generation
    
  3.  Running pass 'Function Pass Manager' on module 'f.cpp'.
    
  4.  Running pass 'X86 DAG->DAG Instruction Selection' on function '@_Z3foov'
    

clang-6.0: error: unable to execute command: Aborted
clang-6.0: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 6.0.0 (trunk 310534)
Target: x86_64-unknown-linux-gnu

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions