[llvm-bugs] [Bug 24735] New: std::bind(std::mem_fn(&ScalarEvolution::isKnownNonNegative), SE, _1) fails clang+mingw 5.1

via llvm-bugs llvm-bugs at lists.llvm.org
Mon Sep 7 02:39:41 PDT 2015


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

            Bug ID: 24735
           Summary: std::bind(std::mem_fn(&ScalarEvolution::isKnownNonNega
                    tive), SE, _1) fails clang+mingw 5.1
           Product: new-bugs
           Version: unspecified
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: yaron.keren at gmail.com
                CC: david.majnemer at gmail.com, llvm-bugs at lists.llvm.org,
                    sanjoy at playingwithpointers.com
    Classification: Unclassified

Compiling lib/Analysis/ScalarEvolution.cpp with clang r246954 and libstdc++
from mingw gcc 5.1 on Windows fails as below. 
With the 4.9.3 libstdc++ build is OK.



In file included from ScalarEvolution.cpp:61:
In file included from c:/llvm-clean/include\llvm/Analysis/ScalarEvolution.h:24:
In file included from c:/llvm-clean/include\llvm/ADT/DenseSet.h:17:
In file included from c:/llvm-clean/include\llvm/ADT/DenseMap.h:17:
In file included from c:/llvm-clean/include\llvm/ADT/DenseMapInfo.h:17:
In file included from c:/llvm-clean/include\llvm/ADT/Hashing.h:49:
In file included from c:/llvm-clean/include\llvm/Support/Host.h:17:
In file included from c:/llvm-clean/include\llvm/ADT/StringMap.h:17:
In file included from c:/llvm-clean/include\llvm/ADT/StringRef.h:13:
In file included from C:\mingw32\i686-w64-mingw32\include\c++\algorithm:61:
In file included from
C:\mingw32\i686-w64-mingw32\include\c++\bits/stl_algobase.h:71:
C:\mingw32\i686-w64-mingw32\include\c++\bits/predefined_ops.h:296:17: error: no
matching function for call to object of type
      'std::_Bind<std::_Mem_fn<bool (llvm::ScalarEvolution::*)(const llvm::SCEV
*) __attribute__((thiscall))> (llvm::ScalarEvolution *,
      std::_Placeholder<1>)>'
        { return !bool(_M_pred(*__it)); }
                       ^~~~~~~
C:\mingw32\i686-w64-mingw32\include\c++\bits/stl_algo.h:120:8: note: in
instantiation of function template specialization
      '__gnu_cxx::__ops::_Iter_negate<std::_Bind<std::_Mem_fn<bool
(llvm::ScalarEvolution::*)(const llvm::SCEV *)
      __attribute__((thiscall))> (llvm::ScalarEvolution *,
std::_Placeholder<1>)> >::operator()<const llvm::SCEV *const *>' requested
      here
          if (__pred(__first))
              ^
C:\mingw32\i686-w64-mingw32\include\c++\bits/stl_algo.h:171:19: note: in
instantiation of function template specialization
      'std::__find_if<const llvm::SCEV *const *,
__gnu_cxx::__ops::_Iter_negate<std::_Bind<std::_Mem_fn<bool
      (llvm::ScalarEvolution::*)(const llvm::SCEV *) __attribute__((thiscall))>
(llvm::ScalarEvolution *, std::_Placeholder<1>)> > >'
      requested here
      return std::__find_if(__first, __last,
                  ^
C:\mingw32\i686-w64-mingw32\include\c++\bits/stl_algo.h:566:19: note: in
instantiation of function template specialization
      'std::__find_if_not<const llvm::SCEV *const *,
__gnu_cxx::__ops::_Iter_pred<std::_Bind<std::_Mem_fn<bool
      (llvm::ScalarEvolution::*)(const llvm::SCEV *) __attribute__((thiscall))>
(llvm::ScalarEvolution *, std::_Placeholder<1>)> > >'
      requested here
      return std::__find_if_not(__first, __last,
                  ^
C:\mingw32\i686-w64-mingw32\include\c++\bits/stl_algo.h:509:29: note: in
instantiation of function template specialization
      'std::find_if_not<const llvm::SCEV *const *, std::_Bind<std::_Mem_fn<bool
(llvm::ScalarEvolution::*)(const llvm::SCEV *)
      __attribute__((thiscall))> (llvm::ScalarEvolution *,
std::_Placeholder<1>)> >' requested here
    { return __last == std::find_if_not(__first, __last, __pred); }
                            ^
ScalarEvolution.cpp:1951:12: note: in instantiation of function template
specialization 'std::all_of<const llvm::SCEV *const *,
      std::_Bind<std::_Mem_fn<bool (llvm::ScalarEvolution::*)(const llvm::SCEV
*) __attribute__((thiscall))> (llvm::ScalarEvolution *,
      std::_Placeholder<1>)> >' requested here
      std::all_of(Ops.begin(), Ops.end(), IsKnownNonNegative))
           ^
C:\mingw32\i686-w64-mingw32\include\c++\functional:1129:2: note: candidate
template ignored: substitution failure
      [with _Args = <const llvm::SCEV *const &>]: no matching function for call
to object of type 'std::_Mem_fn<bool
      (llvm::ScalarEvolution::*)(const llvm::SCEV *)
__attribute__((thiscall))>'
        operator()(_Args&&... __args)
        ^
C:\mingw32\i686-w64-mingw32\include\c++\functional:1143:2: note: candidate
template ignored: substitution failure
      [with _Args = <const llvm::SCEV *const &>]: no matching function for call
to object of type 'const std::_Mem_fn<bool
      (llvm::ScalarEvolution::*)(const llvm::SCEV *)
__attribute__((thiscall))>'
        operator()(_Args&&... __args) const
        ^
C:\mingw32\i686-w64-mingw32\include\c++\functional:1157:2: note: candidate
template ignored: substitution failure
      [with _Args = <const llvm::SCEV *const &>]: no matching function for call
to object of type 'volatile std::_Mem_fn<bool
      (llvm::ScalarEvolution::*)(const llvm::SCEV *)
__attribute__((thiscall))>'
        operator()(_Args&&... __args) volatile
        ^
C:\mingw32\i686-w64-mingw32\include\c++\functional:1171:2: note: candidate
template ignored: substitution failure
      [with _Args = <const llvm::SCEV *const &>]: no matching function for call
to object of type 'const volatile std::_Mem_fn<bool
      (llvm::ScalarEvolution::*)(const llvm::SCEV *)
__attribute__((thiscall))>'
        operator()(_Args&&... __args) const volatile
        ^
1 error generated.

-- 
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/20150907/0e67e05f/attachment.html>


More information about the llvm-bugs mailing list