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

--- Comment #6 from David Kredba <nheghathivhistha at gmail dot com> ---
For the record only, git version of c-reduce returned

namespace std {
template <typename> struct less;
template <typename> struct add_rvalue_reference;
template <typename _Tp> typename add_rvalue_reference<_Tp>::type declval();
template <typename _Tp> struct __add_rvalue_reference_helper {
  typedef _Tp type;
};
template <typename _Tp>
struct add_rvalue_reference : __add_rvalue_reference_helper<_Tp> {};
}
typedef int intptr_t;
namespace std {
template <typename> class allocator;
template <typename _Tp, typename = allocator<_Tp> > class vector {};
}

typedef intptr_t cl_context_properties;
namespace clover {
class device;
}
namespace std {
template <typename _Key, typename = less<_Key> > class map;
}
namespace clover {
template <typename> class intrusive_ref;
struct derefs;
namespace detail {
template <typename, typename...> class iterator_adaptor;
template <typename, typename, typename> class basic_range {
public:
  template <typename V> operator V() const {}
};
template <typename T> using preferred_iterator_type =
decltype(std::declval<T>);
}
template <typename F, typename... Os>
class adaptor_range : public detail::basic_range<
                          adaptor_range<F>, detail::iterator_adaptor<F>,
                          detail::iterator_adaptor<
                              F, detail::preferred_iterator_type<Os>...> > {};
template <typename T>
class ref_vector : public adaptor_range<derefs, std::vector<T> > {};
template <typename> class property_element;
template <typename D> using property_list = std::map<property_element<D> >;
class context {
  typedef clover::property_list<cl_context_properties> property_list;
  context(const property_list &, const ref_vector<device> &);
  std::vector<intrusive_ref<device> > devs;
};
}

using namespace clover;
context::context(const property_list &, const ref_vector<device> &devs)
    : devs(devs) {}

Reply via email to