<html>
<head>
<base href="https://llvm.org/bugs/" />
</head>
<body><table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Bug ID</th>
<td><a class="bz_bug_link
bz_status_NEW "
title="NEW --- - std::bind(std::mem_fn(&ScalarEvolution::isKnownNonNegative), SE, _1) fails clang+mingw 5.1"
href="https://llvm.org/bugs/show_bug.cgi?id=24735">24735</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>std::bind(std::mem_fn(&ScalarEvolution::isKnownNonNegative), SE, _1) fails clang+mingw 5.1
</td>
</tr>
<tr>
<th>Product</th>
<td>new-bugs
</td>
</tr>
<tr>
<th>Version</th>
<td>unspecified
</td>
</tr>
<tr>
<th>Hardware</th>
<td>PC
</td>
</tr>
<tr>
<th>OS</th>
<td>Windows NT
</td>
</tr>
<tr>
<th>Status</th>
<td>NEW
</td>
</tr>
<tr>
<th>Severity</th>
<td>normal
</td>
</tr>
<tr>
<th>Priority</th>
<td>P
</td>
</tr>
<tr>
<th>Component</th>
<td>new bugs
</td>
</tr>
<tr>
<th>Assignee</th>
<td>unassignedbugs@nondot.org
</td>
</tr>
<tr>
<th>Reporter</th>
<td>yaron.keren@gmail.com
</td>
</tr>
<tr>
<th>CC</th>
<td>david.majnemer@gmail.com, llvm-bugs@lists.llvm.org, sanjoy@playingwithpointers.com
</td>
</tr>
<tr>
<th>Classification</th>
<td>Unclassified
</td>
</tr></table>
<p>
<div>
<pre>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.</pre>
</div>
</p>
<hr>
<span>You are receiving this mail because:</span>
<ul>
<li>You are on the CC list for the bug.</li>
</ul>
</body>
</html>