[llvm-bugs] [Bug 28087] New: Assertion 'Pack expansion without unexpanded packs?' failed
https://llvm.org/bugs/show_bug.cgi?id=28087 Bug ID: 28087 Summary: Assertion 'Pack expansion without unexpanded packs?' failed Product: clang Version: 3.8 Hardware: PC OS: Linux Status: NEW Severity: normal Priority: P Component: C++14 Assignee: unassignedclangb...@nondot.org Reporter: pipp...@exherbo.org CC: llvm-bugs@lists.llvm.org Classification: Unclassified Created attachment 16516 --> https://llvm.org/bugs/attachment.cgi?id=16516&action=edit invalid code that leads to the assertion failure % clang++ -w -std=c++14 secondorderassemblertest-57319f.ii clang-3.8: /tmp/tmp.M49CMLsFyB/llvm-3.8.0.src/tools/clang/lib/Sema/SemaTemplateDeduction.cpp:609: {anonymous}::PackDeductionScope::PackDeductionScope(clang::Sema&, clang::TemplateParameterList*, llvm::SmallVectorImpl&, clang::sema::TemplateDeductionInfo&, clang::TemplateArgument): Assertion `!Packs.empty() && "Pack expansion without unexpanded packs?"' failed. #0 0x01c014e5 llvm::sys::PrintStackTrace(llvm::raw_ostream&) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x1c014e5) #1 0x01bff4a6 llvm::sys::RunSignalHandlers() (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x1bff4a6) #2 0x01bff6c4 SignalHandler(int) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x1bff6c4) #3 0x7fbde23668d0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0xf8d0) #4 0x7fbde15a4067 gsignal /build/glibc-uPj9cH/glibc-2.19/signal/../nptl/sysdeps/unix/sysv/linux/raise.c:56:0 #5 0x7fbde15a5448 abort /build/glibc-uPj9cH/glibc-2.19/stdlib/abort.c:91:0 #6 0x7fbde159d266 __assert_fail_base /build/glibc-uPj9cH/glibc-2.19/assert/assert.c:92:0 #7 0x7fbde159d312 (/lib/x86_64-linux-gnu/libc.so.6+0x2e312) #8 0x02a796b3 (anonymous namespace)::PackDeductionScope::PackDeductionScope(clang::Sema&, clang::TemplateParameterList*, llvm::SmallVectorImpl&, clang::sema::TemplateDeductionInfo&, clang::TemplateArgument) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2a796b3) #9 0x02a8cf8e clang::Sema::DeduceTemplateArguments(clang::FunctionTemplateDecl*, clang::TemplateArgumentListInfo*, llvm::ArrayRef, clang::FunctionDecl*&, clang::sema::TemplateDeductionInfo&, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2a8cf8e) #10 0x029d9cea clang::Sema::AddMethodTemplateCandidate(clang::FunctionTemplateDecl*, clang::DeclAccessPair, clang::CXXRecordDecl*, clang::TemplateArgumentListInfo*, clang::QualType, clang::Expr::Classification, llvm::ArrayRef, clang::OverloadCandidateSet&, bool, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x29d9cea) #11 0x029d9f00 clang::Sema::AddMethodCandidate(clang::DeclAccessPair, clang::QualType, clang::Expr::Classification, llvm::ArrayRef, clang::OverloadCandidateSet&, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x29d9f00) #12 0x029eefb6 clang::Sema::BuildCallToObjectOfClassType(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef, clang::SourceLocation) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x29eefb6) #13 0x028b40db clang::Sema::ActOnCallExpr(clang::Scope*, clang::Expr*, clang::SourceLocation, llvm::MutableArrayRef, clang::SourceLocation, clang::Expr*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x28b40db) #14 0x02ab152f clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCallExpr(clang::CallExpr*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2ab152f) #15 0x02aac283 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformExpr(clang::Expr*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2aac283) #16 0x02aad848 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformInitializer(clang::Expr*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2aad848) #17 0x02aada91 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformReturnStmt(clang::ReturnStmt*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2aada91) #18 0x02abd625 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformStmt(clang::Stmt*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2abd625) #19 0x02abf51c clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*, bool) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2abf51c) #20 0x02abf62b clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/clang-3.8+0x2abf62b) #21 0x02abd983 clang::TreeTransform<(anonymous namespace)::TemplateInstantiator>::TransformStmt(clang::Stmt*) (/home/mi/pipping/dune/inst/clang-3.8.0/bin/cl
[llvm-bugs] [Bug 28088] New: compilation error when copy constructor for llvm::ilist is called
https://llvm.org/bugs/show_bug.cgi?id=28088 Bug ID: 28088 Summary: compilation error when copy constructor for llvm::ilist is called Product: new-bugs Version: 3.7 Hardware: PC OS: Linux Status: NEW Severity: normal Priority: P Component: new bugs Assignee: unassignedb...@nondot.org Reporter: other.nik...@mail.ru CC: llvm-bugs@lists.llvm.org Classification: Unclassified It is not possible to copy object of type llvm::ilist although copy constructor is available. When I try to use it a compilation error occures. There are some problem in the `iplist::insert()` method which is invoked by the copy constructor: ilist(const ilist &right) { insert(this->begin(), right.begin(), right.end()); } template void insert(iterator where, InIt first, InIt last) { for (; first != last; ++first) insert(where, *first); } This template `insert()` method try to invoke the following method iterator iplist::insert(iterator where, NodeTy *New) But type of the second argument is not a pointer it is a reference (`*first`) to `NodeTy`. So, there is no matching function for call. -- 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
[llvm-bugs] [Bug 27857] licm miscompile with noalias and call which exits program
https://llvm.org/bugs/show_bug.cgi?id=27857 Eli Friedman changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #1 from Eli Friedman --- http://reviews.llvm.org/rL272489 . -- 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
[llvm-bugs] [Bug 28089] New: Short 8.3 paths make clang++ run in C mode, linking without C++ libraries
https://llvm.org/bugs/show_bug.cgi?id=28089 Bug ID: 28089 Summary: Short 8.3 paths make clang++ run in C mode, linking without C++ libraries Product: clang Version: 3.8 Hardware: PC OS: Windows NT Status: NEW Severity: normal Priority: P Component: Driver Assignee: unassignedclangb...@nondot.org Reporter: jibz-llvmb...@stdip.com CC: llvm-bugs@lists.llvm.org Classification: Unclassified Clang decides if it is being invoked as a C or C++ compiler based on its filename. When installed as `C:\Program Files\LLVM\bin\clang++.exe` on Windows, the space in the path results in some build systems invoking it with the short 8.3 path `C:\PROGRA~1\LLVM\bin\CLANG_~1.EXE`, and failing to link because clang++ thinks it is clang and does not include the C++ libraries. One example is CMake: https://gitlab.kitware.com/cmake/cmake/issues/16138 -- 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
[llvm-bugs] [Bug 28090] New: LLVM generates terrible x86 code for trivial, fully unrolled loops
https://llvm.org/bugs/show_bug.cgi?id=28090 Bug ID: 28090 Summary: LLVM generates terrible x86 code for trivial, fully unrolled loops Product: libraries Version: trunk Hardware: PC OS: All Status: NEW Severity: normal Priority: P Component: Backend: X86 Assignee: unassignedb...@nondot.org Reporter: chandl...@gmail.com CC: llvm-bugs@lists.llvm.org Classification: Unclassified Consider this code: struct V { static constexpr int length = 32; unsigned short data[32]; }; int reduce(V &v) { int sum = 0; for (int i = 0; i < v.length; ++i) { sum += static_cast(v.data[i]); } return sum; } If the length weren't a constant, LLVM would do a delightful job of vectorizing the reduction loop. But because it happens to be a constant trip count, we fully unroll the loop and generate this mess: % ./bin/clang++ -std=c++1z -c -S -o - -O2 -march=haswell x.cpp .text .file "x.cpp" .globl _Z6reduceR1V .p2align4, 0x90 .type _Z6reduceR1V,@function _Z6reduceR1V: # @_Z6reduceR1V .cfi_startproc # BB#0: # %entry movzwl (%rdi), %eax movzwl 2(%rdi), %ecx addl%eax, %ecx movzwl 4(%rdi), %eax addl%ecx, %eax ; repeat OVER AND OVER AGAIN with minor variations in registers... movzwl 60(%rdi), %edx addl%ecx, %edx movzwl 62(%rdi), %eax addl%edx, %eax retq Ow. This hurts code size as well. =/ I figure we need reduction support in the SLP vectorizer or some such? -- 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
[llvm-bugs] [Bug 27953] -mldstmotion miscompile with call to exit
https://llvm.org/bugs/show_bug.cgi?id=27953 Eli Friedman changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #1 from Eli Friedman --- r272495. -- 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
[llvm-bugs] [Bug 27559] Generate conjunction or disjunction condition to reduce ISL Ast duplication
https://llvm.org/bugs/show_bug.cgi?id=27559 Tobias Grosser changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #2 from Tobias Grosser --- Fixed in r272500. -- 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