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

            Bug ID: 65051
           Summary: [5 Regression] r210436 regression?
           Product: gcc
           Version: 5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: jakub at gcc dot gnu.org

template<typename T> struct wrap { typedef T type; };
template <class T> class rv: public wrap <T>::type {};

template <class value_type>
struct circular_buffer
{
    typedef const value_type& param_value_type;
    typedef rv< value_type >& rvalue_type;

    void push_back(param_value_type item) {}
    void push_back(rvalue_type item) {}
};

union U { int i; char c; };

void f(circular_buffer<U> b, const U& u) { b.push_back(u); }

used to be accepted until r210435, since r210436 it is rejected.  Jon said that
this is accepted by clang and EDG.

Reply via email to