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

Derived Classes

tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h
  574 class GotoLabel : public Loc {
  598 class MemRegionVal : public Loc {
  640 class ConcreteInt : public Loc {

References

include/llvm/ADT/Optional.h
  144     T value;
  160   explicit OptionalStorage(in_place_t, Args &&... args)
  172   T &getValue() LLVM_LVALUE_FUNCTION noexcept {
  176   T const &getValue() const LLVM_LVALUE_FUNCTION noexcept {
  181   T &&getValue() && noexcept {
  206       ::new ((void *)std::addressof(value)) T(std::move(y));
  216   optional_detail::OptionalStorage<T> Storage;
  219   using value_type = T;
  224   Optional(const T &y) : Storage(optional_detail::in_place_t{}, y) {}
  227   Optional(T &&y) : Storage(optional_detail::in_place_t{}, std::move(y)) {}
  230   Optional &operator=(T &&y) {
  241   static inline Optional create(const T *y) {
  245   Optional &operator=(const T &y) {
  253   const T *getPointer() const { return &Storage.getValue(); }
  254   T *getPointer() { return &Storage.getValue(); }
  255   const T &getValue() const LLVM_LVALUE_FUNCTION { return Storage.getValue(); }
  256   T &getValue() LLVM_LVALUE_FUNCTION { return Storage.getValue(); }
  260   const T *operator->() const { return getPointer(); }
  261   T *operator->() { return getPointer(); }
  262   const T &operator*() const LLVM_LVALUE_FUNCTION { return getValue(); }
  263   T &operator*() LLVM_LVALUE_FUNCTION { return getValue(); }
  266   constexpr T getValueOr(U &&value) const LLVM_LVALUE_FUNCTION {
  271   T &&getValue() && { return std::move(Storage.getValue()); }
  272   T &&operator*() && { return std::move(Storage.getValue()); }
  275   T getValueOr(U &&value) && {
include/llvm/Support/type_traits.h
   91     T t;
  122     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
  122     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
  122     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<const F &>(), std::true_type{});
  130     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
  130     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
  130     static auto get(F*) -> decltype(std::declval<F &>() = std::declval<F &&>(), std::true_type{});
  145       std::is_copy_constructible<detail::trivial_helper<T>>::value;
  147       !std::is_copy_constructible<T>::value;
  151       std::is_move_constructible<detail::trivial_helper<T>>::value;
  153       !std::is_move_constructible<T>::value;
  157       is_copy_assignable<detail::trivial_helper<T>>::value;
  159       !is_copy_assignable<T>::value;
  163       is_move_assignable<detail::trivial_helper<T>>::value;
  165       !is_move_assignable<T>::value;
  169       std::is_destructible<detail::trivial_helper<T>>::value;
tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h
  177         IsZeroCheck(!Assumption && Constraint.getAs<Loc>()) {}
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h
  241   LLVM_NODISCARD ProgramStateRef bindLoc(Loc location, SVal V,
  262   LLVM_NODISCARD ProgramStateRef killBinding(Loc LV) const;
  302   Loc getLValue(const CXXBaseSpecifier &BaseSpec, const SubRegion *Super) const;
  305   Loc getLValue(const CXXRecordDecl *BaseClass, const SubRegion *Super,
  309   Loc getLValue(const VarDecl *D, const LocationContext *LC) const;
  311   Loc getLValue(const CompoundLiteralExpr *literal,
  333   SVal getSVal(Loc LV, QualType T = QualType()) const;
  336   SVal getRawSVal(Loc LV, QualType T= QualType()) const;
  542   SVal ArrayToPointer(Loc Array, QualType ElementTy) {
  702   if (Optional<Loc> L = LV.getAs<Loc>())
  702   if (Optional<Loc> L = LV.getAs<Loc>())
  707 inline Loc ProgramState::getLValue(const CXXBaseSpecifier &BaseSpec,
  715 inline Loc ProgramState::getLValue(const CXXRecordDecl *BaseClass,
  723 inline Loc ProgramState::getLValue(const VarDecl *VD,
  728 inline Loc ProgramState::getLValue(const CompoundLiteralExpr *literal,
  768     if (Ex->isGLValue() || Loc::isLocType(T) ||
  776 inline SVal ProgramState::getRawSVal(Loc LV, QualType T) const {
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h
   76   virtual SVal evalCastFromLoc(Loc val, QualType castTy) = 0;
  123                            Loc lhs, Loc rhs, QualType resultTy) = 0;
  123                            Loc lhs, Loc rhs, QualType resultTy) = 0;
  129                            Loc lhs, NonLoc rhs, QualType resultTy) = 0;
  303     if (Loc::isLocType(type))
  318   NonLoc makeLocAsInteger(Loc loc, unsigned bits) {
  345   Loc makeNullWithType(QualType type) {
  349   Loc makeNull() {
  353   Loc makeLoc(SymbolRef sym) {
  357   Loc makeLoc(const MemRegion* region) {
  361   Loc makeLoc(const AddrLabelExpr *expr) {
  365   Loc makeLoc(const llvm::APSInt& integer) {
  373     if (Loc::isLocType(Sym->getType()))
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h
  103   T castAs() const {
  111   Optional<T> getAs() const {
  112     if (!T::isKind(*this))
  423   Loc getLoc() const {
  426     return D->first.castAs<Loc>();
  429   Loc getPersistentLoc() const {
  433     return V.castAs<Loc>();
  574 class GotoLabel : public Loc {
  593   static bool isKind(const Loc& V) {
  598 class MemRegionVal : public Loc {
  635   static bool isKind(const Loc& V) {
  640 class ConcreteInt : public Loc {
  662   static bool isKind(const Loc& V) {
tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h
   74   virtual SVal getBinding(Store store, Loc loc, QualType T = QualType()) = 0;
  107   virtual StoreRef Bind(Store store, Loc loc, SVal val) = 0;
  122   virtual StoreRef killBinding(Store ST, Loc L) = 0;
  134   virtual Loc getLValueVar(const VarDecl *VD, const LocationContext *LC) {
  138   Loc getLValueCompoundLiteral(const CompoundLiteralExpr *CL,
  161   virtual SVal ArrayToPointer(Loc Array, QualType ElementTy) = 0;
tools/clang/lib/StaticAnalyzer/Checkers/BasicObjCFoundationChecks.cpp
  894   Optional<Loc> ElementLoc;
  900     ElementLoc = State->getSVal(Element, LCtx).getAs<Loc>();
tools/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp
  416   if (Optional<Loc> BufLoc = BufStart.getAs<Loc>()) {
  416   if (Optional<Loc> BufLoc = BufStart.getAs<Loc>()) {
  436     if (Optional<Loc> BufLoc = BufStart.getAs<Loc>()) {
  436     if (Optional<Loc> BufLoc = BufStart.getAs<Loc>()) {
  472   Optional<Loc> firstLoc = firstVal.getAs<Loc>();
  472   Optional<Loc> firstLoc = firstVal.getAs<Loc>();
  476   Optional<Loc> secondLoc = secondVal.getAs<Loc>();
  476   Optional<Loc> secondLoc = secondVal.getAs<Loc>();
  530   Optional<Loc> FirstStartLoc = FirstStart.getAs<Loc>();
  530   Optional<Loc> FirstStartLoc = FirstStart.getAs<Loc>();
  537   Optional<Loc> FirstEndLoc = FirstEnd.getAs<Loc>();
  537   Optional<Loc> FirstEndLoc = FirstEnd.getAs<Loc>();
  917   Optional<Loc> BufLoc = BufStart.getAs<Loc>();
  917   Optional<Loc> BufLoc = BufStart.getAs<Loc>();
  957   Optional<Loc> L = V.getAs<Loc>();
  957   Optional<Loc> L = V.getAs<Loc>();
 2060   if (Optional<Loc> SearchStrLoc = SearchStrVal.getAs<Loc>()) {
 2060   if (Optional<Loc> SearchStrLoc = SearchStrVal.getAs<Loc>()) {
 2294     Loc VarLoc = state->getLValue(D, C.getLocationContext());
tools/clang/lib/StaticAnalyzer/Checkers/CXXSelfAssignmentChecker.cpp
   51   auto Param = SVB.makeLoc(State->getRegion(MD->getParamDecl(0), LCtx));
tools/clang/lib/StaticAnalyzer/Checkers/CheckObjCDealloc.cpp
  285     Optional<Loc> LValLoc = LVal.getAs<Loc>();
  285     Optional<Loc> LValLoc = LVal.getAs<Loc>();
  956   Optional<Loc> LValLoc = LVal.getAs<Loc>();
  956   Optional<Loc> LValLoc = LVal.getAs<Loc>();
tools/clang/lib/StaticAnalyzer/Checkers/DereferenceChecker.cpp
  214   if (!location.getAs<Loc>())
tools/clang/lib/StaticAnalyzer/Checkers/GTestChecker.cpp
  138     if (!BooleanArgVal.getAs<Loc>())
  140     BooleanArgVal = C.getState()->getSVal(BooleanArgVal.castAs<Loc>());
  261   Optional<Loc> FieldLoc =
  262       State->getLValue(SuccessField, Instance).getAs<Loc>();
tools/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp
  565   Optional<Loc> AddrLoc = AddrVal.getAs<Loc>();
  565   Optional<Loc> AddrLoc = AddrVal.getAs<Loc>();
tools/clang/lib/StaticAnalyzer/Checkers/IteratorChecker.cpp
  998   if (auto loc = RHS.getAs<Loc>()) {
 1035   if (auto ValAsLoc = RHS.getAs<Loc>()) {
tools/clang/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
 1519   if (!Loc::isLocType(CE->getType()))
 1566   if (!RetVal->getAs<Loc>())
 1763   if (!location.getAs<Loc>())
 2712     if (ArgSVal.getAs<Loc>()) {
tools/clang/lib/StaticAnalyzer/Checkers/NSErrorChecker.cpp
  206   if (loc.isUndef() || !loc.getAs<Loc>())
  228     setFlag<NSErrorOut>(state, state->getSVal(loc.castAs<Loc>()), C);
  233     setFlag<CFErrorOut>(state, state->getSVal(loc.castAs<Loc>()), C);
tools/clang/lib/StaticAnalyzer/Checkers/NonNullParamChecker.cpp
  106     if (haveAttrNonNull && !DV->getAs<Loc>()) {
  128       if (!V.getAs<Loc>())
tools/clang/lib/StaticAnalyzer/Checkers/NonnullGlobalConstantsChecker.cpp
   77     SVal V = State->getSVal(location.castAs<Loc>());
tools/clang/lib/StaticAnalyzer/Checkers/ObjCSelfInitChecker.cpp
  254       unsigned selfFlags = getSelfFlags(state->getSVal(argV.castAs<Loc>()), C);
  285       addSelfFlag(state, state->getSVal(argV.castAs<Loc>()), prevFlags, C);
  311     addSelfFlag(state, state->getSVal(location.castAs<Loc>()), SelfFlag_Self,
tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker/RetainCountChecker.cpp
  287   Optional<Loc> IVarLoc = C.getSVal(IRE).getAs<Loc>();
  287   Optional<Loc> IVarLoc = C.getSVal(IRE).getAs<Loc>();
tools/clang/lib/StaticAnalyzer/Checkers/TrustNonnullChecker.cpp
   89       if (auto L = Call.getReturnValue().getAs<Loc>())
  108       if (auto L = Msg.getArgSVal(1).getAs<Loc>())
tools/clang/lib/StaticAnalyzer/Checkers/UninitializedObject/UninitializedObjectChecker.cpp
  461   Loc ThisLoc =
tools/clang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp
  178       Reg = C.getState()->getSVal(SV.castAs<Loc>()).getAsRegion();
tools/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
  201       if (auto FieldL = State->getSVal(ME, LCtx).getAs<Loc>())
  835         Options.ShouldSuppressNullReturnPaths && V.getAs<Loc>())
  986       if (Optional<Loc> LValue = RetVal.getAs<Loc>())
  986       if (Optional<Loc> LValue = RetVal.getAs<Loc>())
  995       if (Optional<Loc> RetLoc = RetVal.getAs<Loc>())
  995       if (Optional<Loc> RetLoc = RetVal.getAs<Loc>())
 1032     Optional<Loc> LValue;
 1034       if ((LValue = V.getAs<Loc>())) {
 1059       if (V.getAs<Loc>()) {
 1089         if (V.getAs<Loc>())
 1154       Optional<Loc> ArgV = Call->getArgSVal(I).getAs<Loc>();
 1154       Optional<Loc> ArgV = Call->getArgSVal(I).getAs<Loc>();
 1575     if (Constraint.getAs<Loc>()) {
tools/clang/lib/StaticAnalyzer/Core/CallEvent.cpp
  530       Loc ParamLoc = SVB.makeLoc(MRMgr.getVarRegion(ParamDecl, CalleeCtx));
  799     Loc ThisLoc = SVB.getCXXThis(MD, CalleeCtx);
  881     Loc ThisLoc = SVB.getCXXThis(LambdaOperatorDecl, CalleeCtx);
  917     Loc ThisLoc = SVB.getCXXThis(MD, CalleeCtx);
 1353     Loc SelfLoc = SVB.makeLoc(MRMgr.getVarRegion(SelfD, CalleeCtx));
 1398     Loc ThisPtr = SVB.getCXXThis(Ctor, CalleeCtx);
 1414   Loc ThisPtr = SVB.getCXXThis(Dtor, CalleeCtx);
tools/clang/lib/StaticAnalyzer/Core/CheckerContext.cpp
  108                                               LHSVal.castAs<Loc>());
tools/clang/lib/StaticAnalyzer/Core/ConstraintManager.cpp
   35   DefinedSVal V = Loc::isLocType(Ty) ? getLocFromSymbol(State, Sym)
tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp
  282     if (Optional<Loc> LV = V.getAs<Loc>()) {
  282     if (Optional<Loc> LV = V.getAs<Loc>()) {
  298         if (Optional<Loc> LV = V.getAs<Loc>()) {
  298         if (Optional<Loc> LV = V.getAs<Loc>()) {
  426     State = State->bindLoc(BaseReg.castAs<Loc>(), InitVal, LC, false);
  438         State->bindLoc(Reg.castAs<Loc>(), InitValWithAdjustments, LC, false);
  440     State = State->bindLoc(BaseReg.castAs<Loc>(), InitVal, LC, false);
  867           if (Optional<Loc> LValueLoc = LValue.getAs<Loc>())
  867           if (Optional<Loc> LValueLoc = LValue.getAs<Loc>())
 1029   Loc ThisPtr = getSValBuilder().getCXXThis(CurDtor,
 1052   Loc ThisStorageLoc =
 1054   Loc ThisLoc = State->getSVal(ThisStorageLoc).castAs<Loc>();
 1054   Loc ThisLoc = State->getSVal(ThisStorageLoc).castAs<Loc>();
 2449         Loc CXXThis =
 2777   if (!location.getAs<Loc>()) {
 2794     state = state->bindLoc(location.castAs<Loc>(),
 2869       V = state->getSVal(location.castAs<Loc>(), LoadTy);
 2980     if (Optional<Loc> LV = X.getAs<Loc>())
 2980     if (Optional<Loc> LV = X.getAs<Loc>())
tools/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp
   32   if (Other.getAs<Loc>() &&
  564     Loc CLLoc = State->getLValue(CL, LCtx);
 1036           if (Optional<Loc> LV = V.getAs<Loc>()) {
 1036           if (Optional<Loc> LV = V.getAs<Loc>()) {
 1037             Loc X = svalBuilder.makeNullWithType(Ex->getType());
 1132       if (Loc::isLocType(U->getType())) {
tools/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp
   77   if (Optional<Loc> L = V.getAs<Loc>())
   77   if (Optional<Loc> L = V.getAs<Loc>())
  142       Loc ThisPtr =
  411     if (auto L = Target.getAs<Loc>())
  467     Loc ThisPtr = getSValBuilder().getCXXThis(CurCtor,
tools/clang/lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp
  128   if (!V.getAs<Loc>())
  252       ThisV = state->getSVal(ThisV.castAs<Loc>());
  621     ThisV = State->getSVal(ThisV.castAs<Loc>());
  650     R = State->getSVal(Target.castAs<Loc>(), E->getType());
tools/clang/lib/StaticAnalyzer/Core/ProgramState.cpp
  119 ProgramStateRef ProgramState::bindLoc(Loc LV,
  224 ProgramStateRef ProgramState::killBinding(Loc LV) const {
  254     if (Loc::isLocType(T) || T->isIntegralOrEnumerationType())
  261 SVal ProgramState::getSVal(Loc location, QualType T) const {
  270   if (!T.isNull() && (T->isIntegralOrEnumerationType() || Loc::isLocType(T))) {
  291         if (V.getAs<Loc>())
tools/clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp
  370         if (Loc::isLocType(SSE->getLHS()->getType())) {
  371           return Loc::isLocType(SSE->getRHS()->getType());
tools/clang/lib/StaticAnalyzer/Core/RangedConstraintManager.cpp
   54     if (Loc::isLocType(SSE->getLHS()->getType()) &&
   55         Loc::isLocType(SSE->getRHS()->getType())) {
tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp
  402   SVal ArrayToPointer(Loc Array, QualType ElementTy) override;
  443   StoreRef Bind(Store store, Loc LV, SVal V) override {
  447   RegionBindingsRef bind(RegionBindingsConstRef B, Loc LV, SVal V);
  521   StoreRef killBinding(Store ST, Loc L) override;
  549   SVal getBinding(Store S, Loc L, QualType T) override {
  561   SVal getBinding(RegionBindingsConstRef B, Loc L, QualType T = QualType());
 1119       else if (Loc::isLocType(VR->getValueType())) {
 1126         if (Optional<Loc> L = V.getAs<Loc>()) {
 1126         if (Optional<Loc> L = V.getAs<Loc>()) {
 1430 SVal RegionStoreManager::ArrayToPointer(Loc Array, QualType T) {
 1447 SVal RegionStoreManager::getBinding(RegionBindingsConstRef B, Loc L, QualType T) {
 2154 StoreRef RegionStoreManager::killBinding(Store ST, Loc L) {
 2166 RegionStoreManager::bind(RegionBindingsConstRef B, Loc L, SVal V) {
 2210   if (Loc::isLocType(T))
tools/clang/lib/StaticAnalyzer/Core/SValBuilder.cpp
   53   if (Loc::isLocType(type))
  129   if (Loc::isLocType(T))
  166   if (Loc::isLocType(type))
  184   if (Loc::isLocType(type))
  214   if (Loc::isLocType(type))
  233   if (Loc::isLocType(T))
  368     if (Loc::isLocType(E->getType()))
  417   if (Optional<Loc> LV = lhs.getAs<Loc>()) {
  417   if (Optional<Loc> LV = lhs.getAs<Loc>()) {
  418     if (Optional<Loc> RV = rhs.getAs<Loc>())
  418     if (Optional<Loc> RV = rhs.getAs<Loc>())
  424   if (Optional<Loc> RV = rhs.getAs<Loc>()) {
  424   if (Optional<Loc> RV = rhs.getAs<Loc>()) {
  536     if (!Loc::isLocType(originalTy) &&
  547     if (Optional<Loc> L = val.getAs<Loc>())
  547     if (Optional<Loc> L = val.getAs<Loc>())
  550     Loc L = val.castAs<nonloc::LocAsInteger>().getLoc();
  561   if (castTy->isIntegralOrEnumerationType() && Loc::isLocType(originalTy))
  562     return evalCastFromLoc(val.castAs<Loc>(), castTy);
  565   if (Loc::isLocType(castTy) && originalTy->isIntegralOrEnumerationType()) {
  588     val = StateMgr.ArrayToPointer(val.castAs<Loc>(), elemTy);
  603     return evalCastFromLoc(val.castAs<Loc>(), castTy);
  614     if (!Loc::isLocType(castTy)) {
tools/clang/lib/StaticAnalyzer/Core/SVals.cpp
  305       castAs<Loc>().dumpToStream(os);
tools/clang/lib/StaticAnalyzer/Core/SimpleConstraintManager.cpp
   29   if (Optional<Loc> LV = Cond.getAs<Loc>()) {
   29   if (Optional<Loc> LV = Cond.getAs<Loc>()) {
tools/clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp
   28   SVal evalCastFromLoc(Loc val, QualType castTy) override;
   41                    Loc lhs, Loc rhs, QualType resultTy) override;
   41                    Loc lhs, Loc rhs, QualType resultTy) override;
   43                    Loc lhs, NonLoc rhs, QualType resultTy) override;
   70   return Val.getAs<Loc>() ? evalCastFromLoc(Val.castAs<Loc>(), CastTy)
   70   return Val.getAs<Loc>() ? evalCastFromLoc(Val.castAs<Loc>(), CastTy)
   75   bool isLocType = Loc::isLocType(castTy);
  130 SVal SimpleSValBuilder::evalCastFromLoc(Loc val, QualType castTy) {
  138   if (Loc::isLocType(castTy) || castTy->isReferenceType())
  554       Loc lhsL = lhs.castAs<nonloc::LocAsInteger>().getLoc();
  823                                   Loc lhs, Loc rhs,
  823                                   Loc lhs, Loc rhs,
 1105                                   Loc lhs, NonLoc rhs, QualType resultTy) {
 1265         return Loc::isLocType(S->getType()) ? (SVal)SVB.makeIntLocVal(*I)
 1287       if (Loc::isLocType(S->getLHS()->getType()) &&
 1314       if (Loc::isLocType(S->getLHS()->getType()) !=
 1315           Loc::isLocType(S->getRHS()->getType()))
tools/clang/lib/StaticAnalyzer/Core/Store.cpp
   55     Store = Bind(Store.getStore(), I.first.castAs<Loc>(), I.second);
  436   Loc BaseL = Base.castAs<Loc>();
  436   Loc BaseL = Base.castAs<Loc>();
tools/clang/lib/StaticAnalyzer/Core/SymbolManager.cpp
  351   if (Loc::isLocType(T))
tools/clang/unittests/StaticAnalyzer/StoreTest.cpp
   37     Loc LX0 = loc::MemRegionVal(MRMgr.getVarRegion(VDX0, SFC));
   38     Loc LY0 = loc::MemRegionVal(MRMgr.getVarRegion(VDY0, SFC));
   39     Loc LZ0 = loc::MemRegionVal(MRMgr.getVarRegion(VDZ0, SFC));
   40     Loc LX1 = loc::MemRegionVal(MRMgr.getVarRegion(VDX1, SFC));
   41     Loc LY1 = loc::MemRegionVal(MRMgr.getVarRegion(VDY1, SFC));
usr/include/c++/7.4.0/bits/move.h
   46     inline _GLIBCXX_CONSTEXPR _Tp*
   47     __addressof(_Tp& __r) _GLIBCXX_NOEXCEPT
   72     constexpr _Tp&&
   73     forward(typename std::remove_reference<_Tp>::type& __t) noexcept
   83     constexpr _Tp&&
   84     forward(typename std::remove_reference<_Tp>::type&& __t) noexcept
   98     move(_Tp&& __t) noexcept
  136     inline _GLIBCXX17_CONSTEXPR _Tp*
  137     addressof(_Tp& __r) noexcept
  143     const _Tp* addressof(const _Tp&&) = delete;
  143     const _Tp* addressof(const _Tp&&) = delete;
usr/include/c++/7.4.0/bits/stl_pair.h
  100 	return __and_<is_constructible<_T1, const _U1&>,
  100 	return __and_<is_constructible<_T1, const _U1&>,
  107 	return __and_<is_convertible<const _U1&, _T1>,
  107 	return __and_<is_convertible<const _U1&, _T1>,
  114 	return __and_<is_constructible<_T1, _U1&&>,
  114 	return __and_<is_constructible<_T1, _U1&&>,
  121 	return __and_<is_convertible<_U1&&, _T1>,
  121 	return __and_<is_convertible<_U1&&, _T1>,
  128 	using __do_converts = __and_<is_convertible<const _U1&, _T1>,
  128 	using __do_converts = __and_<is_convertible<const _U1&, _T1>,
  133 	return __and_<is_constructible<_T1, const _U1&>,
  133 	return __and_<is_constructible<_T1, const _U1&>,
  142 	using __do_converts = __and_<is_convertible<_U1&&, _T1>,
  142 	using __do_converts = __and_<is_convertible<_U1&&, _T1>,
  147 	return __and_<is_constructible<_T1, _U1&&>,
  147 	return __and_<is_constructible<_T1, _U1&&>,
  209     : private __pair_base<_T1, _T2>
  211       typedef _T1 first_type;    /// @c first_type is the first bound type
  214       _T1 first;                 /// @c first is a copy of the first object
  252       using _PCCP = _PCC<true, _T1, _T2>;
  260       constexpr pair(const _T1& __a, const _T2& __b)
  269       explicit constexpr pair(const _T1& __a, const _T2& __b)
  283 			    _T1, _T2>;
  291         constexpr pair(const pair<_U1, _U2>& __p)
  311        constexpr pair(_U1&& __x, const _T2& __y)
  325        constexpr pair(const _T1& __x, _U2&& __y)
  332        explicit pair(const _T1& __x, _U2&& __y)
  341 	constexpr pair(_U1&& __x, _U2&& __y)
  342 	: first(std::forward<_U1>(__x)), second(std::forward<_U2>(__y)) { }
  360 	constexpr pair(pair<_U1, _U2>&& __p)
  361 	: first(std::forward<_U1>(__p.first)),
  379 		__and_<is_copy_assignable<_T1>,
  390 		__and_<is_move_assignable<_T1>,
  522     constexpr pair<typename __decay_and_strip<_T1>::__type,
  524     make_pair(_T1&& __x, _T2&& __y)
  526       typedef typename __decay_and_strip<_T1>::__type __ds_type1;
  529       return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y));
usr/include/c++/7.4.0/type_traits
  215     : public __is_void_helper<typename remove_cv<_Tp>::type>::type
  326     : public __is_integral_helper<typename remove_cv<_Tp>::type>::type
  354     : public __is_floating_point_helper<typename remove_cv<_Tp>::type>::type
  381     : public __is_pointer_helper<typename remove_cv<_Tp>::type>::type
  567     : public __is_null_pointer_helper<typename remove_cv<_Tp>::type>::type
  581     : public __or_<is_lvalue_reference<_Tp>,
  582                    is_rvalue_reference<_Tp>>::type
  588     : public __or_<is_integral<_Tp>, is_floating_point<_Tp>>::type
  588     : public __or_<is_integral<_Tp>, is_floating_point<_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
  611     : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
  611     : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
  611     : public __or_<is_arithmetic<_Tp>, is_enum<_Tp>, is_pointer<_Tp>,
  612                    is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
  612                    is_member_pointer<_Tp>, is_null_pointer<_Tp>>::type
  631     : public __is_member_pointer_helper<typename remove_cv<_Tp>::type>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  777     : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
  777     : public __and_<is_array<_Tp>, __not_<extent<_Tp>>>
  798       typedef decltype(__test<_Tp>(0)) type;
  811                remove_all_extents<_Tp>::type>::type
  825     : public __is_destructible_safe<_Tp>::type
  984       typedef decltype(__test<_Tp, _Arg>(0)) type;
  989     : public __and_<is_destructible<_Tp>,
  990                     __is_direct_constructible_impl<_Tp, _Arg>>
 1072 			 __is_direct_constructible_ref_cast<_Tp, _Arg>,
 1073 			 __is_direct_constructible_new_safe<_Tp, _Arg>
 1079     : public __is_direct_constructible_new<_Tp, _Arg>::type
 1119     : public __is_direct_constructible<_Tp, _Arg>
 1130     : public __is_constructible_impl<_Tp, _Args...>::type
 1142     : public is_constructible<_Tp, const _Tp&>
 1142     : public is_constructible<_Tp, const _Tp&>
 1148     : public __is_copy_constructible_impl<_Tp>
 1160     : public is_constructible<_Tp, _Tp&&>
 1160     : public is_constructible<_Tp, _Tp&&>
 1166     : public __is_move_constructible_impl<_Tp>
 1286     : public is_assignable<_Tp&, const _Tp&>
 1286     : public is_assignable<_Tp&, const _Tp&>
 1292     : public __is_copy_assignable_impl<_Tp>
 1304     : public is_assignable<_Tp&, _Tp&&>
 1304     : public is_assignable<_Tp&, _Tp&&>
 1310     : public __is_move_assignable_impl<_Tp>
 1526 	static void __test_aux(_To1);
 1538       typedef decltype(__test<_From, _To>(0)) type;
 1545     : public __is_convertible_helper<_From, _To>::type
 1554     { typedef _Tp     type; };
 1563     { typedef _Tp     type; };
 1574       remove_const<typename remove_volatile<_Tp>::type>::type     type;
 1629     { typedef _Tp   type; };
 1633     { typedef _Tp   type; };
 1659     { typedef _Tp&&   type; };
 1955     { typedef _Tp     type; };
 2104     { typedef typename remove_cv<_Up>::type __type; };
 2118       typedef typename remove_reference<_Tp>::type __remove_type;
 2131       typedef _Tp __type;
 2144 	typename decay<_Tp>::type>::__type __type;