diff options
-rw-r--r-- | clang-tools-extra/clangd/Function.h | 4 | ||||
-rw-r--r-- | clang-tools-extra/clangd/unittests/Matchers.h | 4 | ||||
-rw-r--r-- | clang/include/clang/ASTMatchers/ASTMatchersInternal.h | 4 | ||||
-rw-r--r-- | clang/include/clang/Sema/Sema.h | 4 | ||||
-rw-r--r-- | clang/include/clang/Tooling/Refactoring/RefactoringActionRulesInternal.h | 8 | ||||
-rw-r--r-- | clang/lib/CodeGen/EHScopeStack.h | 4 | ||||
-rw-r--r-- | llvm/include/llvm/ADT/STLExtras.h | 107 | ||||
-rw-r--r-- | llvm/include/llvm/ExecutionEngine/Orc/RPCSerialization.h | 8 | ||||
-rw-r--r-- | llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h | 15 | ||||
-rw-r--r-- | llvm/include/llvm/IR/PassManager.h | 4 | ||||
-rw-r--r-- | llvm/include/llvm/Support/Format.h | 5 |
11 files changed, 75 insertions, 92 deletions
diff --git a/clang-tools-extra/clangd/Function.h b/clang-tools-extra/clangd/Function.h index 6d91136bf99..91aaa48a9ff 100644 --- a/clang-tools-extra/clangd/Function.h +++ b/clang-tools-extra/clangd/Function.h @@ -59,14 +59,14 @@ private: public: template <class... RestArgs> auto operator()(RestArgs &&... Rest) - -> decltype(this->CallImpl(llvm::index_sequence_for<Args...>(), + -> decltype(this->CallImpl(std::index_sequence_for<Args...>(), std::forward<RestArgs>(Rest)...)) { #ifndef NDEBUG assert(!WasCalled && "Can only call result of Bind once."); WasCalled = true; #endif - return CallImpl(llvm::index_sequence_for<Args...>(), + return CallImpl(std::index_sequence_for<Args...>(), std::forward<RestArgs>(Rest)...); } }; diff --git a/clang-tools-extra/clangd/unittests/Matchers.h b/clang-tools-extra/clangd/unittests/Matchers.h index 0946398d814..d477cf75e72 100644 --- a/clang-tools-extra/clangd/unittests/Matchers.h +++ b/clang-tools-extra/clangd/unittests/Matchers.h @@ -89,12 +89,12 @@ public: template <typename T> operator Matcher<const std::vector<T> &>() const { return ::testing::MakeMatcher(new SubsequenceMatcher<T>( - TypedMatchers<T>(llvm::index_sequence_for<M...>{}))); + TypedMatchers<T>(std::index_sequence_for<M...>{}))); } private: template <typename T, size_t... I> - std::vector<Matcher<T>> TypedMatchers(llvm::index_sequence<I...>) const { + std::vector<Matcher<T>> TypedMatchers(std::index_sequence<I...>) const { return {std::get<I>(Matchers)...}; } }; diff --git a/clang/include/clang/ASTMatchers/ASTMatchersInternal.h b/clang/include/clang/ASTMatchers/ASTMatchersInternal.h index 46e47a3100b..ae7b9e7c3ee 100644 --- a/clang/include/clang/ASTMatchers/ASTMatchersInternal.h +++ b/clang/include/clang/ASTMatchers/ASTMatchersInternal.h @@ -1334,14 +1334,14 @@ public: template <typename T> operator Matcher<T>() const { return DynTypedMatcher::constructVariadic( Op, ast_type_traits::ASTNodeKind::getFromNodeKind<T>(), - getMatchers<T>(llvm::index_sequence_for<Ps...>())) + getMatchers<T>(std::index_sequence_for<Ps...>())) .template unconditionalConvertTo<T>(); } private: // Helper method to unpack the tuple into a vector. template <typename T, std::size_t... Is> - std::vector<DynTypedMatcher> getMatchers(llvm::index_sequence<Is...>) const { + std::vector<DynTypedMatcher> getMatchers(std::index_sequence<Is...>) const { return {Matcher<T>(std::get<Is>(Params))...}; } diff --git a/clang/include/clang/Sema/Sema.h b/clang/include/clang/Sema/Sema.h index 4be2e5cdb96..2dbb045be25 100644 --- a/clang/include/clang/Sema/Sema.h +++ b/clang/include/clang/Sema/Sema.h @@ -1621,7 +1621,7 @@ public: template <std::size_t... Is> void emit(const SemaDiagnosticBuilder &DB, - llvm::index_sequence<Is...>) const { + std::index_sequence<Is...>) const { // Apply all tuple elements to the builder in order. bool Dummy[] = {false, (DB << getPrintable(std::get<Is>(Args)))...}; (void)Dummy; @@ -1635,7 +1635,7 @@ public: void diagnose(Sema &S, SourceLocation Loc, QualType T) override { const SemaDiagnosticBuilder &DB = S.Diag(Loc, DiagID); - emit(DB, llvm::index_sequence_for<Ts...>()); + emit(DB, std::index_sequence_for<Ts...>()); DB << T; } }; diff --git a/clang/include/clang/Tooling/Refactoring/RefactoringActionRulesInternal.h b/clang/include/clang/Tooling/Refactoring/RefactoringActionRulesInternal.h index aaa9e50faa9..fb373fcf502 100644 --- a/clang/include/clang/Tooling/Refactoring/RefactoringActionRulesInternal.h +++ b/clang/include/clang/Tooling/Refactoring/RefactoringActionRulesInternal.h @@ -47,7 +47,7 @@ template <typename RuleType, typename... RequirementTypes, size_t... Is> void invokeRuleAfterValidatingRequirements( RefactoringResultConsumer &Consumer, RefactoringRuleContext &Context, const std::tuple<RequirementTypes...> &Requirements, - llvm::index_sequence<Is...>) { + std::index_sequence<Is...>) { // Check if the requirements we're interested in can be evaluated. auto Values = std::make_tuple(std::get<Is>(Requirements).evaluate(Context)...); @@ -87,7 +87,7 @@ template <typename... RequirementTypes, size_t... Is> void visitRefactoringOptions( RefactoringOptionVisitor &Visitor, const std::tuple<RequirementTypes...> &Requirements, - llvm::index_sequence<Is...>) { + std::index_sequence<Is...>) { visitRefactoringOptionsImpl(Visitor, std::get<Is>(Requirements)...); } @@ -131,7 +131,7 @@ createRefactoringActionRule(const RequirementTypes &... Requirements) { RefactoringRuleContext &Context) override { internal::invokeRuleAfterValidatingRequirements<RuleType>( Consumer, Context, Requirements, - llvm::index_sequence_for<RequirementTypes...>()); + std::index_sequence_for<RequirementTypes...>()); } bool hasSelectionRequirement() override { @@ -142,7 +142,7 @@ createRefactoringActionRule(const RequirementTypes &... Requirements) { void visitRefactoringOptions(RefactoringOptionVisitor &Visitor) override { internal::visitRefactoringOptions( Visitor, Requirements, - llvm::index_sequence_for<RequirementTypes...>()); + std::index_sequence_for<RequirementTypes...>()); } private: std::tuple<RequirementTypes...> Requirements; diff --git a/clang/lib/CodeGen/EHScopeStack.h b/clang/lib/CodeGen/EHScopeStack.h index 3b0db35d982..0ed67aabcd6 100644 --- a/clang/lib/CodeGen/EHScopeStack.h +++ b/clang/lib/CodeGen/EHScopeStack.h @@ -199,14 +199,14 @@ public: SavedTuple Saved; template <std::size_t... Is> - T restore(CodeGenFunction &CGF, llvm::index_sequence<Is...>) { + T restore(CodeGenFunction &CGF, std::index_sequence<Is...>) { // It's important that the restores are emitted in order. The braced init // list guarantees that. return T{DominatingValue<As>::restore(CGF, std::get<Is>(Saved))...}; } void Emit(CodeGenFunction &CGF, Flags flags) override { - restore(CGF, llvm::index_sequence_for<As...>()).Emit(CGF, flags); + restore(CGF, std::index_sequence_for<As...>()).Emit(CGF, flags); } public: diff --git a/llvm/include/llvm/ADT/STLExtras.h b/llvm/include/llvm/ADT/STLExtras.h index 81dce0168c7..0e3911424a6 100644 --- a/llvm/include/llvm/ADT/STLExtras.h +++ b/llvm/include/llvm/ADT/STLExtras.h @@ -530,10 +530,6 @@ bool all_of(R &&range, UnaryPredicate P); template <typename R, typename UnaryPredicate> bool any_of(R &&range, UnaryPredicate P); -template <size_t... I> struct index_sequence; - -template <class... Ts> struct index_sequence_for; - namespace detail { using std::declval; @@ -568,38 +564,38 @@ struct zip_common : public zip_traits<ZipType, Iters...> { std::tuple<Iters...> iterators; protected: - template <size_t... Ns> value_type deref(index_sequence<Ns...>) const { + template <size_t... Ns> value_type deref(std::index_sequence<Ns...>) const { return value_type(*std::get<Ns>(iterators)...); } template <size_t... Ns> - decltype(iterators) tup_inc(index_sequence<Ns...>) const { + decltype(iterators) tup_inc(std::index_sequence<Ns...>) const { return std::tuple<Iters...>(std::next(std::get<Ns>(iterators))...); } template <size_t... Ns> - decltype(iterators) tup_dec(index_sequence<Ns...>) const { + decltype(iterators) tup_dec(std::index_sequence<Ns...>) const { return std::tuple<Iters...>(std::prev(std::get<Ns>(iterators))...); } public: zip_common(Iters &&... ts) : iterators(std::forward<Iters>(ts)...) {} - value_type operator*() { return deref(index_sequence_for<Iters...>{}); } + value_type operator*() { return deref(std::index_sequence_for<Iters...>{}); } const value_type operator*() const { - return deref(index_sequence_for<Iters...>{}); + return deref(std::index_sequence_for<Iters...>{}); } ZipType &operator++() { - iterators = tup_inc(index_sequence_for<Iters...>{}); + iterators = tup_inc(std::index_sequence_for<Iters...>{}); return *reinterpret_cast<ZipType *>(this); } ZipType &operator--() { static_assert(Base::IsBidirectional, "All inner iterators must be at least bidirectional."); - iterators = tup_dec(index_sequence_for<Iters...>{}); + iterators = tup_dec(std::index_sequence_for<Iters...>{}); return *reinterpret_cast<ZipType *>(this); } }; @@ -618,7 +614,8 @@ struct zip_first : public zip_common<zip_first<Iters...>, Iters...> { template <typename... Iters> class zip_shortest : public zip_common<zip_shortest<Iters...>, Iters...> { template <size_t... Ns> - bool test(const zip_shortest<Iters...> &other, index_sequence<Ns...>) const { + bool test(const zip_shortest<Iters...> &other, + std::index_sequence<Ns...>) const { return all_of(std::initializer_list<bool>{std::get<Ns>(this->iterators) != std::get<Ns>(other.iterators)...}, identity<bool>{}); @@ -630,7 +627,7 @@ public: zip_shortest(Iters &&... ts) : Base(std::forward<Iters>(ts)...) {} bool operator==(const zip_shortest<Iters...> &other) const { - return !test(other, index_sequence_for<Iters...>{}); + return !test(other, std::index_sequence_for<Iters...>{}); } }; @@ -646,18 +643,21 @@ public: private: std::tuple<Args...> ts; - template <size_t... Ns> iterator begin_impl(index_sequence<Ns...>) const { + template <size_t... Ns> + iterator begin_impl(std::index_sequence<Ns...>) const { return iterator(std::begin(std::get<Ns>(ts))...); } - template <size_t... Ns> iterator end_impl(index_sequence<Ns...>) const { + template <size_t... Ns> iterator end_impl(std::index_sequence<Ns...>) const { return iterator(std::end(std::get<Ns>(ts))...); } public: zippy(Args &&... ts_) : ts(std::forward<Args>(ts_)...) {} - iterator begin() const { return begin_impl(index_sequence_for<Args...>{}); } - iterator end() const { return end_impl(index_sequence_for<Args...>{}); } + iterator begin() const { + return begin_impl(std::index_sequence_for<Args...>{}); + } + iterator end() const { return end_impl(std::index_sequence_for<Args...>{}); } }; } // end namespace detail @@ -727,20 +727,20 @@ private: template <size_t... Ns> bool test(const zip_longest_iterator<Iters...> &other, - index_sequence<Ns...>) const { + std::index_sequence<Ns...>) const { return llvm::any_of( std::initializer_list<bool>{std::get<Ns>(this->iterators) != std::get<Ns>(other.iterators)...}, identity<bool>{}); } - template <size_t... Ns> value_type deref(index_sequence<Ns...>) const { + template <size_t... Ns> value_type deref(std::index_sequence<Ns...>) const { return value_type( deref_or_none(std::get<Ns>(iterators), std::get<Ns>(end_iterators))...); } template <size_t... Ns> - decltype(iterators) tup_inc(index_sequence<Ns...>) const { + decltype(iterators) tup_inc(std::index_sequence<Ns...>) const { return std::tuple<Iters...>( next_or_end(std::get<Ns>(iterators), std::get<Ns>(end_iterators))...); } @@ -750,17 +750,19 @@ public: : iterators(std::forward<Iters>(ts.first)...), end_iterators(std::forward<Iters>(ts.second)...) {} - value_type operator*() { return deref(index_sequence_for<Iters...>{}); } + value_type operator*() { return deref(std::index_sequence_for<Iters...>{}); } - value_type operator*() const { return deref(index_sequence_for<Iters...>{}); } + value_type operator*() const { + return deref(std::index_sequence_for<Iters...>{}); + } zip_longest_iterator<Iters...> &operator++() { - iterators = tup_inc(index_sequence_for<Iters...>{}); + iterators = tup_inc(std::index_sequence_for<Iters...>{}); return *this; } bool operator==(const zip_longest_iterator<Iters...> &other) const { - return !test(other, index_sequence_for<Iters...>{}); + return !test(other, std::index_sequence_for<Iters...>{}); } }; @@ -777,12 +779,13 @@ public: private: std::tuple<Args...> ts; - template <size_t... Ns> iterator begin_impl(index_sequence<Ns...>) const { + template <size_t... Ns> + iterator begin_impl(std::index_sequence<Ns...>) const { return iterator(std::make_pair(adl_begin(std::get<Ns>(ts)), adl_end(std::get<Ns>(ts)))...); } - template <size_t... Ns> iterator end_impl(index_sequence<Ns...>) const { + template <size_t... Ns> iterator end_impl(std::index_sequence<Ns...>) const { return iterator(std::make_pair(adl_end(std::get<Ns>(ts)), adl_end(std::get<Ns>(ts)))...); } @@ -790,8 +793,10 @@ private: public: zip_longest_range(Args &&... ts_) : ts(std::forward<Args>(ts_)...) {} - iterator begin() const { return begin_impl(index_sequence_for<Args...>{}); } - iterator end() const { return end_impl(index_sequence_for<Args...>{}); } + iterator begin() const { + return begin_impl(std::index_sequence_for<Args...>{}); + } + iterator end() const { return end_impl(std::index_sequence_for<Args...>{}); } }; } // namespace detail @@ -847,7 +852,7 @@ class concat_iterator /// Increments the first non-end iterator. /// /// It is an error to call this with all iterators at the end. - template <size_t... Ns> void increment(index_sequence<Ns...>) { + template <size_t... Ns> void increment(std::index_sequence<Ns...>) { // Build a sequence of functions to increment each iterator if possible. bool (concat_iterator::*IncrementHelperFns[])() = { &concat_iterator::incrementHelper<Ns>...}; @@ -876,7 +881,7 @@ class concat_iterator /// reference. /// /// It is an error to call this with all iterators at the end. - template <size_t... Ns> ValueT &get(index_sequence<Ns...>) const { + template <size_t... Ns> ValueT &get(std::index_sequence<Ns...>) const { // Build a sequence of functions to get from iterator if possible. ValueT *(concat_iterator::*GetHelperFns[])() const = { &concat_iterator::getHelper<Ns>...}; @@ -901,11 +906,13 @@ public: using BaseT::operator++; concat_iterator &operator++() { - increment(index_sequence_for<IterTs...>()); + increment(std::index_sequence_for<IterTs...>()); return *this; } - ValueT &operator*() const { return get(index_sequence_for<IterTs...>()); } + ValueT &operator*() const { + return get(std::index_sequence_for<IterTs...>()); + } bool operator==(const concat_iterator &RHS) const { return Begins == RHS.Begins && Ends == RHS.Ends; @@ -928,10 +935,10 @@ public: private: std::tuple<RangeTs...> Ranges; - template <size_t... Ns> iterator begin_impl(index_sequence<Ns...>) { + template <size_t... Ns> iterator begin_impl(std::index_sequence<Ns...>) { return iterator(std::get<Ns>(Ranges)...); } - template <size_t... Ns> iterator end_impl(index_sequence<Ns...>) { + template <size_t... Ns> iterator end_impl(std::index_sequence<Ns...>) { return iterator(make_range(std::end(std::get<Ns>(Ranges)), std::end(std::get<Ns>(Ranges)))...); } @@ -940,8 +947,8 @@ public: concat_range(RangeTs &&... Ranges) : Ranges(std::forward<RangeTs>(Ranges)...) {} - iterator begin() { return begin_impl(index_sequence_for<RangeTs...>{}); } - iterator end() { return end_impl(index_sequence_for<RangeTs...>{}); } + iterator begin() { return begin_impl(std::index_sequence_for<RangeTs...>{}); } + iterator end() { return end_impl(std::index_sequence_for<RangeTs...>{}); } }; } // end namespace detail @@ -990,28 +997,6 @@ struct on_first { } }; -// A subset of N3658. More stuff can be added as-needed. - -/// Represents a compile-time sequence of integers. -template <class T, T... I> struct integer_sequence { - using value_type = T; - - static constexpr size_t size() { return sizeof...(I); } -}; - -/// Alias for the common case of a sequence of size_ts. -template <size_t... I> -struct index_sequence : integer_sequence<std::size_t, I...> {}; - -template <std::size_t N, std::size_t... I> -struct build_index_impl : build_index_impl<N - 1, N - 1, I...> {}; -template <std::size_t... I> -struct build_index_impl<0, I...> : index_sequence<I...> {}; - -/// Creates a compile-time integer sequence for a parameter pack. -template <class... Ts> -struct index_sequence_for : build_index_impl<sizeof...(Ts)> {}; - /// Utility type to build an inheritance chain that makes it easy to rank /// overload candidates. template <int N> struct rank : rank<N - 1> {}; @@ -1580,7 +1565,7 @@ template <typename R> detail::enumerator<R> enumerate(R &&TheRange) { namespace detail { template <typename F, typename Tuple, std::size_t... I> -auto apply_tuple_impl(F &&f, Tuple &&t, index_sequence<I...>) +auto apply_tuple_impl(F &&f, Tuple &&t, std::index_sequence<I...>) -> decltype(std::forward<F>(f)(std::get<I>(std::forward<Tuple>(t))...)) { return std::forward<F>(f)(std::get<I>(std::forward<Tuple>(t))...); } @@ -1593,9 +1578,9 @@ auto apply_tuple_impl(F &&f, Tuple &&t, index_sequence<I...>) template <typename F, typename Tuple> auto apply_tuple(F &&f, Tuple &&t) -> decltype(detail::apply_tuple_impl( std::forward<F>(f), std::forward<Tuple>(t), - build_index_impl< + std::make_index_sequence< std::tuple_size<typename std::decay<Tuple>::type>::value>{})) { - using Indices = build_index_impl< + using Indices = std::make_index_sequence< std::tuple_size<typename std::decay<Tuple>::type>::value>; return detail::apply_tuple_impl(std::forward<F>(f), std::forward<Tuple>(t), diff --git a/llvm/include/llvm/ExecutionEngine/Orc/RPCSerialization.h b/llvm/include/llvm/ExecutionEngine/Orc/RPCSerialization.h index 07c7471afc6..1892bf48825 100644 --- a/llvm/include/llvm/ExecutionEngine/Orc/RPCSerialization.h +++ b/llvm/include/llvm/ExecutionEngine/Orc/RPCSerialization.h @@ -551,26 +551,26 @@ public: /// RPC channel serialization for std::tuple. static Error serialize(ChannelT &C, const std::tuple<ArgTs...> &V) { - return serializeTupleHelper(C, V, llvm::index_sequence_for<ArgTs...>()); + return serializeTupleHelper(C, V, std::index_sequence_for<ArgTs...>()); } /// RPC channel deserialization for std::tuple. static Error deserialize(ChannelT &C, std::tuple<ArgTs...> &V) { - return deserializeTupleHelper(C, V, llvm::index_sequence_for<ArgTs...>()); + return deserializeTupleHelper(C, V, std::index_sequence_for<ArgTs...>()); } private: // Serialization helper for std::tuple. template <size_t... Is> static Error serializeTupleHelper(ChannelT &C, const std::tuple<ArgTs...> &V, - llvm::index_sequence<Is...> _) { + std::index_sequence<Is...> _) { return serializeSeq(C, std::get<Is>(V)...); } // Serialization helper for std::tuple. template <size_t... Is> static Error deserializeTupleHelper(ChannelT &C, std::tuple<ArgTs...> &V, - llvm::index_sequence<Is...> _) { + std::index_sequence<Is...> _) { return deserializeSeq(C, std::get<Is>(V)...); } }; diff --git a/llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h b/llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h index 3b11e1b283d..1a8b2d14486 100644 --- a/llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h +++ b/llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h @@ -502,7 +502,7 @@ public: static typename WrappedHandlerReturn<RetT>::Type unpackAndRun(HandlerT &Handler, std::tuple<TArgTs...> &Args) { return unpackAndRunHelper(Handler, Args, - llvm::index_sequence_for<TArgTs...>()); + std::index_sequence_for<TArgTs...>()); } // Call the given handler with the given arguments. @@ -510,7 +510,7 @@ public: static Error unpackAndRunAsync(HandlerT &Handler, ResponderT &Responder, std::tuple<TArgTs...> &Args) { return unpackAndRunAsyncHelper(Handler, Responder, Args, - llvm::index_sequence_for<TArgTs...>()); + std::index_sequence_for<TArgTs...>()); } // Call the given handler with the given arguments. @@ -540,14 +540,13 @@ public: // Deserialize arguments from the channel. template <typename ChannelT, typename... CArgTs> static Error deserializeArgs(ChannelT &C, std::tuple<CArgTs...> &Args) { - return deserializeArgsHelper(C, Args, - llvm::index_sequence_for<CArgTs...>()); + return deserializeArgsHelper(C, Args, std::index_sequence_for<CArgTs...>()); } private: template <typename ChannelT, typename... CArgTs, size_t... Indexes> static Error deserializeArgsHelper(ChannelT &C, std::tuple<CArgTs...> &Args, - llvm::index_sequence<Indexes...> _) { + std::index_sequence<Indexes...> _) { return SequenceSerialization<ChannelT, ArgTs...>::deserialize( C, std::get<Indexes>(Args)...); } @@ -556,18 +555,16 @@ private: static typename WrappedHandlerReturn< typename HandlerTraits<HandlerT>::ReturnType>::Type unpackAndRunHelper(HandlerT &Handler, ArgTuple &Args, - llvm::index_sequence<Indexes...>) { + std::index_sequence<Indexes...>) { return run(Handler, std::move(std::get<Indexes>(Args))...); } - template <typename HandlerT, typename ResponderT, typename ArgTuple, size_t... Indexes> static typename WrappedHandlerReturn< typename HandlerTraits<HandlerT>::ReturnType>::Type unpackAndRunAsyncHelper(HandlerT &Handler, ResponderT &Responder, - ArgTuple &Args, - llvm::index_sequence<Indexes...>) { + ArgTuple &Args, std::index_sequence<Indexes...>) { return run(Handler, Responder, std::move(std::get<Indexes>(Args))...); } }; diff --git a/llvm/include/llvm/IR/PassManager.h b/llvm/include/llvm/IR/PassManager.h index 37fe2a5b01a..965c01b167c 100644 --- a/llvm/include/llvm/IR/PassManager.h +++ b/llvm/include/llvm/IR/PassManager.h @@ -418,7 +418,7 @@ template <typename PassT, typename IRUnitT, typename AnalysisManagerT, typename PassT::Result getAnalysisResultUnpackTuple(AnalysisManagerT &AM, IRUnitT &IR, std::tuple<ArgTs...> Args, - llvm::index_sequence<Ns...>) { + std::index_sequence<Ns...>) { (void)Args; return AM.template getResult<PassT>(IR, std::get<Ns>(Args)...); } @@ -435,7 +435,7 @@ getAnalysisResult(AnalysisManager<IRUnitT, AnalysisArgTs...> &AM, IRUnitT &IR, std::tuple<MainArgTs...> Args) { return (getAnalysisResultUnpackTuple< PassT, IRUnitT>)(AM, IR, Args, - llvm::index_sequence_for<AnalysisArgTs...>{}); + std::index_sequence_for<AnalysisArgTs...>{}); } } // namespace detail diff --git a/llvm/include/llvm/Support/Format.h b/llvm/include/llvm/Support/Format.h index 77dcbaebf1a..9dd7b401b46 100644 --- a/llvm/include/llvm/Support/Format.h +++ b/llvm/include/llvm/Support/Format.h @@ -29,6 +29,7 @@ #include <cassert> #include <cstdio> #include <tuple> +#include <utility> namespace llvm { @@ -91,7 +92,7 @@ class format_object final : public format_object_base { template <std::size_t... Is> int snprint_tuple(char *Buffer, unsigned BufferSize, - index_sequence<Is...>) const { + std::index_sequence<Is...>) const { #ifdef _MSC_VER return _snprintf(Buffer, BufferSize, Fmt, std::get<Is>(Vals)...); #else @@ -106,7 +107,7 @@ public: } int snprint(char *Buffer, unsigned BufferSize) const override { - return snprint_tuple(Buffer, BufferSize, index_sequence_for<Ts...>()); + return snprint_tuple(Buffer, BufferSize, std::index_sequence_for<Ts...>()); } }; |