[PATCH] D119878: [FuncSpec] Remove definitions of fully specialized functions.

Alexandros Lamprineas via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 16 11:34:17 PST 2022


labrinea added a comment.

This patch makes clang crash when compiling ClamAV from the llvm-test-suite:

  0.	Program arguments: /data/oss-llvm/debug_build/bin/clang -DNDEBUG -O3 -w -Werror=date-time -DHAVE_CONFIG_H -I/data/oss-llvm/llvm-project/test-suite/CTMark/ClamAV -I/data/oss-llvm/llvm-project/test-suite/CTMark/ClamAV/zlib -DDONT_LOCK_DBDIRS -DC_LINUX -DFPU_WORDS_BIGENDIAN=0 -DWORDS_BIGENDIAN=0 -MD -MT CTMark/ClamAV/CMakeFiles/clamscan.dir/libclamav_message.c.o -MF CTMark/ClamAV/CMakeFiles/clamscan.dir/libclamav_message.c.o.d -o CTMark/ClamAV/CMakeFiles/clamscan.dir/libclamav_message.c.o -c /data/oss-llvm/llvm-project/test-suite/CTMark/ClamAV/libclamav_message.c
  1.	<eof> parser at end of file
  2.	Optimizer
   #0 0x0000000005860211 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /data/oss-llvm/llvm-project/llvm/lib/Support/Unix/Signals.inc:565:22
   #1 0x00000000058602c8 PrintStackTraceSignalHandler(void*) /data/oss-llvm/llvm-project/llvm/lib/Support/Unix/Signals.inc:632:1
   #2 0x000000000585e284 llvm::sys::RunSignalHandlers() /data/oss-llvm/llvm-project/llvm/lib/Support/Signals.cpp:97:20
   #3 0x000000000585fb70 llvm::sys::CleanupOnSignal(unsigned long) /data/oss-llvm/llvm-project/llvm/lib/Support/Unix/Signals.inc:361:31
   #4 0x00000000057894d6 (anonymous namespace)::CrashRecoveryContextImpl::HandleCrash(int, unsigned long) /data/oss-llvm/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:79:5
   #5 0x0000000005789982 CrashRecoverySignalHandler(int) /data/oss-llvm/llvm-project/llvm/lib/Support/CrashRecoveryContext.cpp:393:1
   #6 0x00007f3c4d908390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
   #7 0x00000000025ba226 llvm::PointerIntPair<llvm::ilist_node_base<true>*, 1u, unsigned int, llvm::PointerLikeTypeTraits<llvm::ilist_node_base<true>*>, llvm::PointerIntPairInfo<llvm::ilist_node_base<true>*, 1u, llvm::PointerLikeTypeTraits<llvm::ilist_node_base<true>*> > >::setPointer(llvm::ilist_node_base<true>*) & /data/oss-llvm/llvm-project/llvm/include/llvm/ADT/PointerIntPair.h:65:32
   #8 0x00000000025b8def llvm::ilist_node_base<true>::setPrev(llvm::ilist_node_base<true>*) /data/oss-llvm/llvm-project/llvm/include/llvm/ADT/ilist_node_base.h:40:75
   #9 0x00000000025bf15d llvm::ilist_base<true>::removeImpl(llvm::ilist_node_base<true>&) /data/oss-llvm/llvm-project/llvm/include/llvm/ADT/ilist_base.h:34:5
  #10 0x000000000417ceb3 void llvm::ilist_base<true>::remove<llvm::ilist_node_impl<llvm::ilist_detail::node_options<llvm::Function, true, false, void> > >(llvm::ilist_node_impl<llvm::ilist_detail::node_options<llvm::Function, true, false, void> >&) /data/oss-llvm/llvm-project/llvm/include/llvm/ADT/ilist_base.h:80:64
  #11 0x000000000417c86c llvm::simple_ilist<llvm::Function>::remove(llvm::Function&) /data/oss-llvm/llvm-project/llvm/include/llvm/ADT/simple_ilist.h:183:77
  #12 0x000000000417bc37 llvm::iplist_impl<llvm::simple_ilist<llvm::Function>, llvm::SymbolTableListTraits<llvm::Function> >::remove(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Function, true, false, void>, false, false>&) /data/oss-llvm/llvm-project/llvm/include/llvm/ADT/ilist.h:256:12
  #13 0x0000000004c672a1 llvm::iplist_impl<llvm::simple_ilist<llvm::Function>, llvm::SymbolTableListTraits<llvm::Function> >::erase(llvm::ilist_iterator<llvm::ilist_detail::node_options<llvm::Function, true, false, void>, false, false>) /data/oss-llvm/llvm-project/llvm/include/llvm/ADT/ilist.h:269:5
  #14 0x0000000004c4c6db llvm::Function::eraseFromParent() /data/oss-llvm/llvm-project/llvm/lib/IR/Function.cpp:366:1
  #15 0x0000000004ffcd0b (anonymous namespace)::FunctionSpecializer::removeDeadFunctions() /data/oss-llvm/llvm-project/llvm/lib/Transforms/IPO/FunctionSpecialization.cpp:336:5
  #16 0x0000000004fffe5a llvm::runFunctionSpecialization(llvm::Module&, llvm::DataLayout const&, std::function<llvm::TargetLibraryInfo& (llvm::Function&)>, std::function<llvm::TargetTransformInfo& (llvm::Function&)>, std::function<llvm::AssumptionCache& (llvm::Function&)>, llvm::function_ref<llvm::AnalysisResultsForFn (llvm::Function&)>) /data/oss-llvm/llvm-project/llvm/lib/Transforms/IPO/FunctionSpecialization.cpp:941:16
  #17 0x0000000004fbf1a8 llvm::FunctionSpecializationPass::run(llvm::Module&, llvm::AnalysisManager<llvm::Module>&) /data/oss-llvm/llvm-project/llvm/lib/Transforms/IPO/SCCP.cpp:128:33


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D119878/new/

https://reviews.llvm.org/D119878



More information about the llvm-commits mailing list