-
Notifications
You must be signed in to change notification settings - Fork 37
Description
Specifying multiple sanitizers seems to cause some weird behavior.
I was not able to make that small of an example, but you can find the code I am using at https://github.com/wheatman/ConcurrentHashMap
If I compile with the following I get a crash that did not in version 1.1 but did in the first release candidate, I just didn't find it until now.
/home/ubuntu/opencilkv2rc2_build/bin/clang++ -Wall -Wextra -O3 -g -std=c++17 -fno-omit-frame-pointer -fopencilk -fsanitize=cilk,undefined,thread -fno-omit-frame-pointer -fno-signed-zeros -freciprocal-math -ffp-contract=fast -fno-trapping-math -ffinite-math-only -DOPENMP=0 -DCILK=1 -DENABLE_TRACE_TIMER=1 -DVERIFY=0 -DPARALLEL=1 -DNDEBUG main.cpp -lrt -lm -lm -ldl -Lx86_64/ -lopencilk -o basic
/home/ubuntu/opencilkv2rc2_build/bin/clang++ --version
clang version 14.0.6 (https://github.com/OpenCilk/opencilk-project 1c9214219d07376247d9c89803cb005abfc60ab8)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/ubuntu/opencilkv2rc2_build/bin
The error backtrace is
clang-14: /home/ubuntu/opencilk/llvm/lib/Transforms/Tapir/LoweringUtils.cpp:193: llvm::TaskValueSetMap llvm::findAllTaskInputs(llvm::Function &, const llvm::DominatorTree &, const llvm::TaskInfo &): Assertion `Outputs.empty() && "Task should have no outputs."' failed.
PLEASE submit a bug report to https://github.com/OpenCilk/opencilk-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: /home/ubuntu/opencilkv2rc2_build/bin/clang-14 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj --mrelax-relocations -disable-free -clear-ast-before-backend -main-file-name main.cpp -mrelocation-model static -mframe-pointer=all -menable-no-infs -menable-no-nans -fmath-errno -fno-signed-zeros -freciprocal-math -ffp-contract=fast -fno-rounding-math -ffp-exception-behavior=ignore -ffinite-math-only -mconstructor-aliases -funwind-tables=2 -target-cpu x86-64 -tune-cpu generic -mllvm -treat-scalable-fixed-error-as-warning -debug-info-kind=constructor -dwarf-version=5 -debugger-tuning=gdb -fcoverage-compilation-dir=/home/ubuntu/ConcurrentHashMap -fprofile-update=atomic -resource-dir /home/ubuntu/opencilkv2rc2_build/lib/clang/14.0.6 -D OPENMP=0 -D CILK=1 -D ENABLE_TRACE_TIMER=1 -D VERIFY=0 -D PARALLEL=1 -D NDEBUG -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/x86_64-linux-gnu/c++/11 -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/11/../../../../include/c++/11/backward -internal-isystem /home/ubuntu/opencilkv2rc2_build/lib/clang/14.0.6/include -internal-isystem /usr/local/include -internal-isystem /usr/lib/gcc/x86_64-linux-gnu/11/../../../../x86_64-linux-gnu/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -O3 -Wall -Wextra -std=c++17 -fdeprecated-macro -fdebug-compilation-dir=/home/ubuntu/ConcurrentHashMap -ferror-limit 19 -fopencilk --opencilk-abi-bitcode=/home/ubuntu/opencilkv2rc2_build/lib/clang/14.0.6/lib/x86_64-unknown-linux-gnu/libopencilk-abi.bc -fsanitize=thread,cilk,alignment,array-bounds,bool,builtin,enum,float-cast-overflow,function,integer-divide-by-zero,nonnull-attribute,null,object-size,pointer-overflow,return,returns-nonnull-attribute,shift-base,shift-exponent,signed-integer-overflow,unreachable,vla-bound,vptr -fsanitize-recover=alignment,array-bounds,bool,builtin,enum,float-cast-overflow,function,integer-divide-by-zero,nonnull-attribute,null,object-size,pointer-overflow,returns-nonnull-attribute,shift-base,shift-exponent,signed-integer-overflow,vla-bound,vptr -fgnuc-version=4.2.1 -fcxx-exceptions -fexceptions -fcolor-diagnostics -vectorize-loops -vectorize-slp -stripmine-loops -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /tmp/main-92f99c.o -x c++ main.cpp
-
<eof> parser at end of file -
Optimizer
#0 0x0000000002005e43 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/ubuntu/opencilkv2rc2_build/bin/clang-14+0x2005e43)
#1 0x0000000002003b6e llvm::sys::RunSignalHandlers() (/home/ubuntu/opencilkv2rc2_build/bin/clang-14+0x2003b6e)
#2 0x00000000020062ff SignalHandler(int) Signals.cpp:0:0
#3 0x00007fda8dd533c0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x143c0)
#4 0x00007fda8d7ae03b raise /build/glibc-sMfBJT/glibc-2.31/signal/../sysdeps/unix/sysv/linux/raise.c:51:1
#5 0x00007fda8d78d859 abort /build/glibc-sMfBJT/glibc-2.31/stdlib/abort.c:81:7
#6 0x00007fda8d78d729 get_sysdep_segment_value /build/glibc-sMfBJT/glibc-2.31/intl/loadmsgcat.c:509:8
#7 0x00007fda8d78d729 _nl_load_domain /build/glibc-sMfBJT/glibc-2.31/intl/loadmsgcat.c:970:34
#8 0x00007fda8d79f006 (/lib/x86_64-linux-gnu/libc.so.6+0x34006)
#9 0x000000000202d7c0 llvm::findAllTaskInputs(llvm::Function&, llvm::DominatorTree const&, llvm::TaskInfo const&) (/home/ubuntu/opencilkv2rc2_build/bin/clang-14+0x202d7c0)
#10 0x000000000201aef2 (anonymous namespace)::LoopSpawningImpl::outlineAllTapirLoops() LoopSpawningTI.cpp:0:0
#11 0x0000000002018e62 (anonymous namespace)::LoopSpawningImpl::run() LoopSpawningTI.cpp:0:0
#12 0x0000000002017d9c llvm::LoopSpawningPass::run(llvm::Module&, llvm::AnalysisManagerllvm::Module&) (/home/ubuntu/opencilkv2rc2_build/bin/clang-14+0x2017d9c)
#13 0x000000000318417d llvm::detail::PassModel<llvm::Module, llvm::LoopSpawningPass, llvm::PreservedAnalyses, llvm::AnalysisManagerllvm::Module >::run(llvm::Module&, llvm::AnalysisManagerllvm::Module&) (/home/ubuntu/opencilkv2rc2_build/bin/clang-14+0x318417d)
#14 0x000000000185bc84 llvm::PassManager<llvm::Module, llvm::AnalysisManagerllvm::Module >::run(llvm::Module&, llvm::AnalysisManagerllvm::Module&) (/home/ubuntu/opencilkv2rc2_build/bin/clang-14+0x185bc84)
#15 0x000000000235349a (anonymous namespace)::EmitAssemblyHelper::RunOptimizationPipeline(clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_deletellvm::raw_pwrite_stream >&, std::unique_ptr<llvm::ToolOutputFile, std::default_deletellvm::ToolOutputFile >&) BackendUtil.cpp:0:0
#16 0x0000000002346d61 clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::HeaderSearchOptions const&, clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::StringRef, llvm::Module*, clang::BackendAction, std::unique_ptr<llvm::raw_pwrite_stream, std::default_deletellvm::raw_pwrite_stream >) (/home/ubuntu/opencilkv2rc2_build/bin/clang-14+0x2346d61)
#17 0x00000000030804ef clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/home/ubuntu/opencilkv2rc2_build/bin/clang-14+0x30804ef)
#18 0x0000000003b7f854 clang::ParseAST(clang::Sema&, bool, bool) (/home/ubuntu/opencilkv2rc2_build/bin/clang-14+0x3b7f854)
#19 0x0000000002a1d1a0 clang::FrontendAction::Execute() (/home/ubuntu/opencilkv2rc2_build/bin/clang-14+0x2a1d1a0)
#20 0x000000000299922f clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/home/ubuntu/opencilkv2rc2_build/bin/clang-14+0x299922f)
#21 0x0000000002ad4873 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/home/ubuntu/opencilkv2rc2_build/bin/clang-14+0x2ad4873)
#22 0x00000000009eb097 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/home/ubuntu/opencilkv2rc2_build/bin/clang-14+0x9eb097)
#23 0x00000000009e8da0 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&) driver.cpp:0:0
#24 0x00000000009e8b34 main (/home/ubuntu/opencilkv2rc2_build/bin/clang-14+0x9e8b34)
#25 0x00007fda8d78f0b3 __libc_start_main /build/glibc-sMfBJT/glibc-2.31/csu/../csu/libc-start.c:342:3
#26 0x00000000009e5c6e _start (/home/ubuntu/opencilkv2rc2_build/bin/clang-14+0x9e5c6e)
clang-14: error: unable to execute command: Aborted (core dumped)
clang-14: error: clang frontend command failed due to signal (use -v to see invocation)
clang version 14.0.6 (https://github.com/OpenCilk/opencilk-project 1c92142)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /home/ubuntu/opencilkv2rc2_build/bin
clang-14: note: diagnostic msg:
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-14: note: diagnostic msg: /tmp/main-8df80f.cpp
clang-14: note: diagnostic msg: /tmp/main-8df80f.sh
clang-14: note: diagnostic msg: