reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

Derived Classes

unittests/Support/YAMLIOTest.cpp
 2795 struct Scalar : Poly {
 2816 struct Seq : Poly, std::vector<std::unique_ptr<Poly>> {
 2822 struct Map : Poly, llvm::StringMap<std::unique_ptr<Poly>> {

References

include/llvm/Support/Casting.h
   34   using SimpleType = From; // The real type this represents...
   37   static SimpleType &getSimplifiedValue(From &Val) { return Val; }
   41   using NonConstSimpleType = typename simplify_type<From>::SimpleType;
   47   static RetType getSimplifiedValue(const From& Val) {
   57   static inline bool doit(const From &Val) {
   71     return isa_impl<To, From>::doit(Val);
   76   static inline bool doit(const From &Val) {
   77     return isa_impl<To, From>::doit(Val);
   85     return isa_impl_cl<To, From>::doit(*Val);
  104   static inline bool doit(const From *Val) {
  106     return isa_impl<To, From>::doit(*Val);
  106     return isa_impl<To, From>::doit(*Val);
  122     return isa_impl_wrap<To, SimpleFrom,
  132     return isa_impl_cl<To,FromTy>::doit(Val);
  141 template <class X, class Y> LLVM_NODISCARD inline bool isa(const Y &Val) {
  142   return isa_impl_wrap<X, const Y,
  142   return isa_impl_wrap<X, const Y,
  143                        typename simplify_type<const Y>::SimpleType>::doit(Val);
  168   using ret_type = const To &; // Normal case, return Ty&
  172   using ret_type = To *;       // Pointer arg case, return Ty*
  186   using PointerType = typename cast_retty_impl<To, From *>::ret_type;
  204   using ret_type = typename cast_retty_impl<To,FromTy>::ret_type;
  210       To, From, typename simplify_type<From>::SimpleType>::ret_type;
  227   static typename cast_retty<To, FromTy>::ret_type doit(const FromTy &Val) {
  228     typename cast_retty<To, FromTy>::ret_type Res2
  256 inline typename cast_retty<X, Y>::ret_type cast(Y &Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  263 inline typename cast_retty<X, Y *>::ret_type cast(Y *Val) {
  265   return cast_convert_val<X, Y*,
  266                           typename simplify_type<Y*>::SimpleType>::doit(Val);
  270 inline typename cast_retty<X, std::unique_ptr<Y>>::ret_type
  273   using ret_type = typename cast_retty<X, std::unique_ptr<Y>>::ret_type;
  275       cast_convert_val<X, Y *, typename simplify_type<Y *>::SimpleType>::doit(
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  342 LLVM_NODISCARD inline typename cast_retty<X, Y *>::ret_type dyn_cast(Y *Val) {
  378     -> decltype(cast<X>(Val)) {
  379   if (!isa<X>(Val))
  381   return cast<X>(std::move(Val));
  386     -> decltype(cast<X>(Val)) {
include/llvm/Support/type_traits.h
   55 struct add_const_past_pointer { using type = const T; };
unittests/Support/YAMLIOTest.cpp
 2795 struct Scalar : Poly {
 2813   static bool classof(const Poly *N) { return N->getKind() == NK_Scalar; }
 2816 struct Seq : Poly, std::vector<std::unique_ptr<Poly>> {
 2816 struct Seq : Poly, std::vector<std::unique_ptr<Poly>> {
 2819   static bool classof(const Poly *N) { return N->getKind() == NK_Seq; }
 2822 struct Map : Poly, llvm::StringMap<std::unique_ptr<Poly>> {
 2822 struct Map : Poly, llvm::StringMap<std::unique_ptr<Poly>> {
 2825   static bool classof(const Poly *N) { return N->getKind() == NK_Map; }
 2832   static NodeKind getKind(const std::unique_ptr<Poly> &N) {
 2842   static Scalar &getAsScalar(std::unique_ptr<Poly> &N) {
 2848   static Seq &getAsSequence(std::unique_ptr<Poly> &N) {
 2854   static Map &getAsMap(std::unique_ptr<Poly> &N) {
 2923   static std::unique_ptr<Poly> &element(IO &IO, Seq &A, size_t Index) {
 2935   std::unique_ptr<Poly> node = std::make_unique<Scalar>(true);
 2952     auto node = llvm::unique_dyn_cast<Poly>(seq);
 2960     std::unique_ptr<Poly> node;
 2984     std::unique_ptr<Poly> node = llvm::unique_dyn_cast<Poly>(map);
 2984     std::unique_ptr<Poly> node = llvm::unique_dyn_cast<Poly>(map);
 2992     std::unique_ptr<Poly> node;
usr/include/c++/7.4.0/bits/unique_ptr.h
   68         default_delete(const default_delete<_Up>&) noexcept { }
   72       operator()(_Tp* __ptr) const
   74 	static_assert(!is_void<_Tp>::value,
   76 	static_assert(sizeof(_Tp)>0,
  122 	  using type = _Up*;
  137       using pointer = typename _Ptr<_Tp, _Dp>::type;
  161 	typename __uniq_ptr_impl<_Tp, _Up>::_DeleterConstraint::type;
  163       __uniq_ptr_impl<_Tp, _Dp> _M_t;
  166       using pointer	  = typename __uniq_ptr_impl<_Tp, _Dp>::pointer;
  167       using element_type  = _Tp;
  252 	unique_ptr(unique_ptr<_Up, _Ep>&& __u) noexcept
  297           __safe_conversion_up<_Up, _Ep>,
  301 	operator=(unique_ptr<_Up, _Ep>&& __u) noexcept
usr/include/c++/7.4.0/type_traits
  215     : public __is_void_helper<typename remove_cv<_Tp>::type>::type
  381     : public __is_pointer_helper<typename remove_cv<_Tp>::type>::type
  581     : public __or_<is_lvalue_reference<_Tp>,
  582                    is_rvalue_reference<_Tp>>::type
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  602                           is_void<_Tp>>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
 1554     { typedef _Tp     type; };
 1558     { typedef _Tp     type; };
 1563     { typedef _Tp     type; };
 1574       remove_const<typename remove_volatile<_Tp>::type>::type     type;
 1645     { typedef _Tp&   type; };
 1650     : public __add_lvalue_reference_helper<_Tp>
 1983     { typedef _Up     type; };