https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80064

            Bug ID: 80064
           Summary: [7 Regression] _Iter_cmp_iter instantiates bogus type
           Product: gcc
           Version: 7.0.1
            Status: UNCONFIRMED
          Keywords: rejects-valid
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: rguenth at gcc dot gnu.org
  Target Milestone: ---

The following testcase extracted from Cython is no longer accepted with G++7:

> g++-7 -c t.C
In file included from /usr/include/c++/7/bits/stl_algobase.h:71:0,
                 from /usr/include/c++/7/algorithm:61,
                 from t.C:1:
/usr/include/c++/7/bits/predefined_ops.h: In instantiation of ‘struct
__gnu_cxx::__ops::_Iter_comp_iter<bool(int, int)>’:
/usr/include/c++/7/bits/stl_heap.h:394:51:   required from ‘void
std::make_heap(_RAIter, _RAIter, _Compare) [with _RAIter =
__gnu_cxx::__normal_iterator<int*, std::vector<int> >; _Compare = bool(int,
int)]’
t.C:8:34:   required from here
/usr/include/c++/7/bits/predefined_ops.h:132:16: error: field
‘__gnu_cxx::__ops::_Iter_comp_iter<bool(int, int)>::_M_comp’ invalidly declared
function type
       _Compare _M_comp;
                ^~~~~~~

while it is just fine with g++6:

> g++-6 -c t.C
>

Reply via email to