[llvm-bugs] [Bug 48518] New: clang crashes at -O1 and above: Assertion `isa<PHINode>(User) && "All external users must be PHI's."' failed

via llvm-bugs llvm-bugs at lists.llvm.org
Tue Dec 15 09:23:02 PST 2020


https://bugs.llvm.org/show_bug.cgi?id=48518

            Bug ID: 48518
           Summary: clang crashes at -O1 and above: Assertion
                    `isa<PHINode>(User) && "All external users must be
                    PHI's."' failed
           Product: new-bugs
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: zhendong.su at inf.ethz.ch
                CC: htmldeveloper at gmail.com, llvm-bugs at lists.llvm.org

[510] % clangtk -v
clang version 12.0.0 (https://github.com/llvm/llvm-project.git
db48a6de7702570083c9b88f4721701b0f2dbfe1)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /local/suz-local/opfuzz/bin
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/8
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.5.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7.5.0
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/8
Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/7.5.0
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Candidate multilib: x32;@mx32
Selected multilib: .;@m64
[511] % 
[511] % clangtk -O1 -c small.c
clangtk:
/local/suz-local/software/clangbuild/llvm-project/llvm/lib/Transforms/Utils/SimplifyCFG.cpp:2952:
llvm::FoldBranchToCommonDest(llvm::BranchInst*, llvm::MemorySSAUpdater*, const
llvm::TargetTransformInfo*, unsigned int)::<lambda(llvm::Use&)>: Assertion
`isa<PHINode>(User) && "All external users must be PHI's."' failed.
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: clangtk -I/usr/local/include/csmith -O1 -c small.c
1.      <eof> parser at end of file
2.      Per-module optimization passes
3.      Running pass 'Function Pass Manager' on module 'small.c'.
4.      Running pass 'Simplify the CFG' on function '@d'
 #0 0x000055b23b65087c llvm::sys::PrintStackTrace(llvm::raw_ostream&, int)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x32f987c)
 #1 0x000055b23b64e434 llvm::sys::RunSignalHandlers()
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x32f7434)
 #2 0x000055b23b64e6c5 llvm::sys::CleanupOnSignal(unsigned long)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x32f76c5)
 #3 0x000055b23b5b2b08 CrashRecoverySignalHandler(int)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x325bb08)
 #4 0x00007f3a385b98a0 __restore_rt
(/lib/x86_64-linux-gnu/libpthread.so.0+0x128a0)
 #5 0x00007f3a3726af47 raise
/build/glibc-2ORdQG/glibc-2.27/signal/../sysdeps/unix/sysv/linux/raise.c:51:0
 #6 0x00007f3a3726c8b1 abort /build/glibc-2ORdQG/glibc-2.27/stdlib/abort.c:81:0
 #7 0x00007f3a3725c42a __assert_fail_base
/build/glibc-2ORdQG/glibc-2.27/assert/assert.c:89:0
 #8 0x00007f3a3725c4a2 (/lib/x86_64-linux-gnu/libc.so.6+0x304a2)
 #9 0x000055b23b793e85 bool llvm::function_ref<bool
(llvm::Use&)>::callback_fn<llvm::FoldBranchToCommonDest(llvm::BranchInst*,
llvm::MemorySSAUpdater*, llvm::TargetTransformInfo const*, unsigned
int)::'lambda1'(llvm::Use&)>(long, llvm::Use&)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x343ce85)
#10 0x000055b23b79d98d llvm::FoldBranchToCommonDest(llvm::BranchInst*,
llvm::MemorySSAUpdater*, llvm::TargetTransformInfo const*, unsigned int)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x344698d)
#11 0x000055b23b7a69ea llvm::simplifyCFG(llvm::BasicBlock*,
llvm::TargetTransformInfo const&, llvm::SimplifyCFGOptions const&,
llvm::SmallPtrSetImpl<llvm::BasicBlock*>*)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x344f9ea)
#12 0x000055b23b5554b7 iterativelySimplifyCFG(llvm::Function&,
llvm::TargetTransformInfo const&, llvm::SimplifyCFGOptions const&)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x31fe4b7)
#13 0x000055b23b556319 (anonymous
namespace)::CFGSimplifyPass::runOnFunction(llvm::Function&)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x31ff319)
#14 0x000055b23aeed698 llvm::FPPassManager::runOnFunction(llvm::Function&)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x2b96698)
#15 0x000055b23aeee199 llvm::FPPassManager::runOnModule(llvm::Module&)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x2b97199)
#16 0x000055b23aeecf16 llvm::legacy::PassManagerImpl::run(llvm::Module&)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x2b95f16)
#17 0x000055b23b8fa53c (anonymous
namespace)::EmitAssemblyHelper::EmitAssembly(clang::BackendAction,
std::unique_ptr<llvm::raw_pwrite_stream,
std::default_delete<llvm::raw_pwrite_stream> >)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x35a353c)
#18 0x000055b23b8fc1e5 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_ptr<llvm::raw_pwrite_stream,
std::default_delete<llvm::raw_pwrite_stream> >)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x35a51e5)
#19 0x000055b23c5361c6
clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x41df1c6)
#20 0x000055b23d3a3019 clang::ParseAST(clang::Sema&, bool, bool)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x504c019)
#21 0x000055b23c534de0 clang::CodeGenAction::ExecuteAction()
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x41ddde0)
#22 0x000055b23bed30b1 clang::FrontendAction::Execute()
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x3b7c0b1)
#23 0x000055b23be88ef2
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x3b31ef2)
#24 0x000055b23bf9ec3a
clang::ExecuteCompilerInvocation(clang::CompilerInstance*)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x3c47c3a)
#25 0x000055b23945d9ec cc1_main(llvm::ArrayRef<char const*>, char const*,
void*) (/local/suz-local/software/local/clang-trunk/bin/clang-12+0x11069ec)
#26 0x000055b239457d09 ExecuteCC1Tool(llvm::SmallVectorImpl<char const*>&)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x1100d09)
#27 0x000055b23bd454d5 void llvm::function_ref<void
()>::callback_fn<clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>
>, std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >*, bool*) const::'lambda'()>(long)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x39ee4d5)
#28 0x000055b23b5b2be3
llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x325bbe3)
#29 0x000055b23bd460bf
clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>
>, std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >*, bool*) const (.part.164)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x39ef0bf)
#30 0x000055b23bd1f07a
clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&,
clang::driver::Command const*&) const
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x39c807a)
#31 0x000055b23bd1fd1f
clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&,
llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) const
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x39c8d1f)
#32 0x000055b23bd287ca
clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&,
llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&)
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x39d17ca)
#33 0x000055b239388135 main
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x1031135)
#34 0x00007f3a3724db97 __libc_start_main
/build/glibc-2ORdQG/glibc-2.27/csu/../csu/libc-start.c:344:0
#35 0x000055b23945786a _start
(/local/suz-local/software/local/clang-trunk/bin/clang-12+0x110086a)
clang-12: error: clang frontend command failed with exit code 134 (use -v to
see invocation)
clang version 12.0.0 (https://github.com/llvm/llvm-project.git
db48a6de7702570083c9b88f4721701b0f2dbfe1)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /local/suz-local/opfuzz/bin
clang-12: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-12: note: diagnostic msg: /tmp/small-2beed6.c
clang-12: note: diagnostic msg: /tmp/small-2beed6.sh
clang-12: note: diagnostic msg: 

********************
[512] % 
[512] % cat small.c
static int *a, **b = &a;
int *c;

extern void f (int);

void d () {
  b = 0;
  if (c) {
    int e = 0;
    for (; e < 1; e++) {
      f(*a);
      for (; e < 1; e++)
        ;
    }
    for (; e < 3; e++)
      if (*c)
        break;
  }
}

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20201215/952a1909/attachment-0001.html>


More information about the llvm-bugs mailing list