-
Notifications
You must be signed in to change notification settings - Fork 15.2k
Open
Labels
clang:frontendLanguage frontend issues, e.g. anything involving "Sema"Language frontend issues, e.g. anything involving "Sema"hangCompiler hang (infinite loop)Compiler hang (infinite loop)
Description
https://godbolt.org/z/fG5ooW4z7
template<typename _Tp, _Tp __v>
struct integral_constant {
static constexpr _Tp value = __v;
};
template<typename _Tp> struct remove_reference {
typedef _Tp type;
};
typedef int size_t;
template<typename> struct tuple_size;
template<typename _Tp, _Tp...> struct integer_sequence;
template<typename T> using _t = T;
enum indices_strategy_ { repeat, };
constexpr indices_strategy_ strategy_(size_t cur, size_t) { return repeat; }
template<size_t, typename, indices_strategy_> struct make_indices_;
template<size_t... Is> using index_sequence = integer_sequence<size_t, Is...>;
template<size_t N>
using make_index_sequence = _t<make_indices_<N, index_sequence<0>, strategy_(1, N)>>;
template<size_t End, size_t... Values>
struct make_indices_<End, index_sequence<Values...>, repeat>
: make_indices_<End, index_sequence<Values..., Values...>, strategy_(2, End)> {
};
template<typename Tup>
using tuple_indices_t = make_index_sequence<tuple_size<typename remove_reference<Tup>::type>::value>;
struct {
template<typename Fun, typename Tup>
auto operator()(Fun, Tup) -> decltype(tuple_indices_t<Tup>{});
} tuple_apply;
template<typename...> class tuple {};
template<typename... _Elements>
struct tuple_size<tuple<_Elements...>>: integral_constant<size_t, sizeof...(_Elements)> {};
struct view_closure_base {
template<typename Rng, typename ViewFn>
friend auto operator|(Rng rng, ViewFn vw) {
vw(rng);
}
};
template<typename ViewFn> struct view_closure: view_closure_base, ViewFn {};
template<typename Fun>
struct iter_zip_with_view {
template<int>
struct cursor {
Fun fun_;
tuple<> its_;
auto read() -> decltype(tuple_apply(fun_, its_));
};
cursor<false> begin_cursor;
};
template<typename... Rngs>
struct zip_view: iter_zip_with_view<Rngs...> {};
struct {
template<typename... Rngs>
zip_view<Rngs...> operator()(Rngs...);
} zip;
template<typename, typename>
struct index_view {};
struct enumerate_fn {
template<typename Rng> auto operator()(Rng) {
using D = Rng;
zip(index_view<int, D>());
}
};
view_closure<enumerate_fn> enumerate;
void determineInlinableBlocks(int _items) { _items | enumerate; }Metadata
Metadata
Assignees
Labels
clang:frontendLanguage frontend issues, e.g. anything involving "Sema"Language frontend issues, e.g. anything involving "Sema"hangCompiler hang (infinite loop)Compiler hang (infinite loop)