https://llvm.org/bugs/show_bug.cgi?id=31718
Bug ID: 31718 Summary: clang crashes on valid code at -O2 on x86_64-linux-gnu while running pass 'Induction Variable Simplification': Assertion `L->isRecursivelyLCSSAForm(*DT, *LI) && "LCSSA required to run indvars!"' failed Product: clang Version: unspecified Hardware: PC OS: All Status: NEW Severity: normal Priority: P Component: -New Bugs Assignee: unassignedclangb...@nondot.org Reporter: s...@cs.ucdavis.edu CC: llvm-bugs@lists.llvm.org Classification: Unclassified $ clang -v clang version 5.0.0 (trunk 292714) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /usr/local/clang-trunk/bin Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.4 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.4.7 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.6 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.6.4 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.7 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.7.4 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8.5 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9.3 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.4.0 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6 Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/6.0.0 Selected GCC installation: /usr/lib/gcc/x86_64-linux-gnu/5.4.0 Candidate multilib: .;@m64 Candidate multilib: 32;@m32 Candidate multilib: x32;@mx32 Selected multilib: .;@m64 $ $ clang -Os small.c $ $ clang -O2 small.c clang-5.0: /tmp/llvm-builder/llvm-source-trunk/lib/Transforms/Scalar/IndVarSimplify.cpp:2369: bool {anonymous}::IndVarSimplify::run(llvm::Loop*): Assertion `L->isRecursivelyLCSSAForm(*DT, *LI) && "LCSSA required to run indvars!"' failed. #0 0x0000000001e1a2d8 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/usr/local/clang-trunk/bin/clang-5.0+0x1e1a2d8) #1 0x0000000001e17f6e llvm::sys::RunSignalHandlers() (/usr/local/clang-trunk/bin/clang-5.0+0x1e17f6e) #2 0x0000000001e180e2 SignalHandler(int) (/usr/local/clang-trunk/bin/clang-5.0+0x1e180e2) #3 0x00007f45a22a5390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390) #4 0x00007f45a1018428 gsignal /build/glibc-t3gR2i/glibc-2.23/signal/../sysdeps/unix/sysv/linux/raise.c:54:0 #5 0x00007f45a101a02a abort /build/glibc-t3gR2i/glibc-2.23/stdlib/abort.c:91:0 #6 0x00007f45a1010bd7 __assert_fail_base /build/glibc-t3gR2i/glibc-2.23/assert/assert.c:92:0 #7 0x00007f45a1010c82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82) #8 0x0000000001c8447b (anonymous namespace)::IndVarSimplifyLegacyPass::runOnLoop(llvm::Loop*, llvm::LPPassManager&) [clone .part.440] [clone .constprop.452] (/usr/local/clang-trunk/bin/clang-5.0+0x1c8447b) #9 0x000000000281930b llvm::LPPassManager::runOnFunction(llvm::Function&) (/usr/local/clang-trunk/bin/clang-5.0+0x281930b) #10 0x00000000019f3173 llvm::FPPassManager::runOnFunction(llvm::Function&) (/usr/local/clang-trunk/bin/clang-5.0+0x19f3173) #11 0x00000000027dbbcf (anonymous namespace)::CGPassManager::runOnModule(llvm::Module&) (/usr/local/clang-trunk/bin/clang-5.0+0x27dbbcf) #12 0x00000000019f2cdd llvm::legacy::PassManagerImpl::run(llvm::Module&) (/usr/local/clang-trunk/bin/clang-5.0+0x19f2cdd) #13 0x0000000001fbc8c2 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> >) (/usr/local/clang-trunk/bin/clang-5.0+0x1fbc8c2) #14 0x0000000002625d00 clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) (/usr/local/clang-trunk/bin/clang-5.0+0x2625d00) #15 0x0000000002a0d4d8 clang::ParseAST(clang::Sema&, bool, bool) (/usr/local/clang-trunk/bin/clang-5.0+0x2a0d4d8) #16 0x0000000002620739 clang::CodeGenAction::ExecuteAction() (/usr/local/clang-trunk/bin/clang-5.0+0x2620739) #17 0x0000000002317f16 clang::FrontendAction::Execute() (/usr/local/clang-trunk/bin/clang-5.0+0x2317f16) #18 0x00000000022ea856 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) (/usr/local/clang-trunk/bin/clang-5.0+0x22ea856) #19 0x000000000239f63a clang::ExecuteCompilerInvocation(clang::CompilerInstance*) (/usr/local/clang-trunk/bin/clang-5.0+0x239f63a) #20 0x0000000000a49ac8 cc1_main(llvm::ArrayRef<char const*>, char const*, void*) (/usr/local/clang-trunk/bin/clang-5.0+0xa49ac8) #21 0x00000000009dbd9c main (/usr/local/clang-trunk/bin/clang-5.0+0x9dbd9c) #22 0x00007f45a1003830 __libc_start_main /build/glibc-t3gR2i/glibc-2.23/csu/../csu/libc-start.c:325:0 #23 0x0000000000a46169 _start (/usr/local/clang-trunk/bin/clang-5.0+0xa46169) Stack dump: 0. Program arguments: /usr/local/clang-trunk/bin/clang-5.0 -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -disable-free -main-file-name small.c -mrelocation-model static -mthread-model posix -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -momit-leaf-frame-pointer -dwarf-column-info -debugger-tuning=gdb -resource-dir /usr/local/clang-trunk/bin/../lib/clang/5.0.0 -internal-isystem /usr/local/include -internal-isystem /usr/local/clang-trunk/bin/../lib/clang/5.0.0/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -O2 -fdebug-compilation-dir /home/su/specres/good/20170121-clang-trunk-m32-O1-build-181226 -ferror-limit 19 -fmessage-length 259 -fobjc-runtime=gcc -fdiagnostics-show-option -fcolor-diagnostics -vectorize-loops -vectorize-slp -o /tmp/small-5d19a2.o -x c small.c 1. <eof> parser at end of file 2. Per-module optimization passes 3. Running pass 'CallGraph Pass Manager' on module 'small.c'. 4. Running pass 'Loop Pass Manager' on function '@main' 5. Running pass 'Induction Variable Simplification' on basic block '%while.cond' clang-5.0: error: unable to execute command: Aborted (core dumped) clang-5.0: error: clang frontend command failed due to signal (use -v to see invocation) clang version 5.0.0 (trunk 292714) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /usr/local/clang-trunk/bin clang-5.0: note: diagnostic msg: PLEASE submit a bug report to http://llvm.org/bugs/ and include the crash backtrace, preprocessed source, and associated run script. clang-5.0: note: diagnostic msg: ******************** PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT: Preprocessed source(s) and associated run script(s) are located at: clang-5.0: note: diagnostic msg: /tmp/small-db0361.c clang-5.0: note: diagnostic msg: /tmp/small-db0361.sh clang-5.0: note: diagnostic msg: ******************** $ ----------------------------------------- int a, b, c; int main () { int d; if (a) while (1) { while (a) for (c = 0; c < 2; c++) while (a) { if (b) return d; b = 0; } d = b; } return 0; } -- You are receiving this mail because: You are on the CC list for the bug.
_______________________________________________ llvm-bugs mailing list llvm-bugs@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs