1320957Sdim#ifndef LLVM_SUPPORT_REVERSEITERATION_H
2320957Sdim#define LLVM_SUPPORT_REVERSEITERATION_H
3320957Sdim
4320957Sdim#include "llvm/Config/abi-breaking.h"
5327952Sdim#include "llvm/Support/PointerLikeTypeTraits.h"
6320957Sdim
7320957Sdimnamespace llvm {
8327952Sdim
9327952Sdimtemplate<class T = void *>
10327952Sdimbool shouldReverseIterate() {
11320957Sdim#if LLVM_ENABLE_REVERSE_ITERATION
12327952Sdim  return detail::IsPointerLike<T>::value;
13320957Sdim#else
14327952Sdim  return false;
15320957Sdim#endif
16320957Sdim}
17320957Sdim
18327952Sdim}
19320957Sdim#endif
20