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

References

gen/tools/clang/include/clang/AST/Attrs.inc
 7956     SanitizerMask getMask() const {
 7957       SanitizerMask Mask;
 7959         SanitizerMask ParsedMask =
include/llvm/ADT/Hashing.h
  371 typename std::enable_if<!is_hashable_data<T>::value, size_t>::type
  372 get_hashable_data(const T &value) {
  554                     const T &arg, const Ts &...args) {
  554                     const T &arg, const Ts &...args) {
  600 template <typename ...Ts> hash_code hash_combine(const Ts &...args) {
include/llvm/ADT/Optional.h
  144     T value;
  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/ADT/SmallVector.h
  641   template <typename... ArgTypes> reference emplace_back(ArgTypes &&... Args) {
include/llvm/ADT/StringSwitch.h
   48   Optional<T> Result;
   67   StringSwitch &Case(StringLiteral S, T Value) {
   74   StringSwitch& EndsWith(StringLiteral S, T Value) {
   81   StringSwitch& StartsWith(StringLiteral S, T Value) {
   88   StringSwitch &Cases(StringLiteral S0, StringLiteral S1, T Value) {
   93                       T Value) {
   98                       StringLiteral S3, T Value) {
  103                       StringLiteral S3, StringLiteral S4, T Value) {
  109                       T Value) {
  115                       StringLiteral S6, T Value) {
  121                       StringLiteral S6, StringLiteral S7, T Value) {
  128                       T Value) {
  135                       StringLiteral S9, T Value) {
  140   StringSwitch &CaseLower(StringLiteral S, T Value) {
  147   StringSwitch &EndsWithLower(StringLiteral S, T Value) {
  154   StringSwitch &StartsWithLower(StringLiteral S, T Value) {
  161   StringSwitch &CasesLower(StringLiteral S0, StringLiteral S1, T Value) {
  166                            T Value) {
  171                            StringLiteral S3, T Value) {
  176                            StringLiteral S3, StringLiteral S4, T Value) {
  181   R Default(T Value) {
  181   R Default(T Value) {
  188   operator R() {
include/llvm/Support/type_traits.h
   31   using UnderlyingT = typename std::remove_reference<T>::type;
   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/Basic/SanitizerBlacklist.h
   33   bool isBlacklistedGlobal(SanitizerMask Mask, StringRef GlobalName,
   35   bool isBlacklistedType(SanitizerMask Mask, StringRef MangledTypeName,
   37   bool isBlacklistedFunction(SanitizerMask Mask, StringRef FunctionName) const;
   38   bool isBlacklistedFile(SanitizerMask Mask, StringRef FileName,
   40   bool isBlacklistedLocation(SanitizerMask Mask, SourceLocation Loc,
tools/clang/include/clang/Basic/SanitizerSpecialCaseList.h
   33   bool inSection(SanitizerMask Mask, StringRef Prefix, StringRef Query,
   41     SanitizerSection(SanitizerMask SM, SectionEntries &E)
   44     SanitizerMask Mask;
tools/clang/include/clang/Basic/Sanitizers.h
   54   static constexpr SanitizerMask bitPosToMask(const unsigned Pos) {
   83   constexpr bool operator==(const SanitizerMask &V) const {
   88   SanitizerMask &operator&=(const SanitizerMask &RHS) {
   88   SanitizerMask &operator&=(const SanitizerMask &RHS) {
   94   SanitizerMask &operator|=(const SanitizerMask &RHS) {
   94   SanitizerMask &operator|=(const SanitizerMask &RHS) {
  102   constexpr bool operator!=(const SanitizerMask &RHS) const {
  106   friend constexpr inline SanitizerMask operator~(SanitizerMask v) {
  106   friend constexpr inline SanitizerMask operator~(SanitizerMask v) {
  110   friend constexpr inline SanitizerMask operator&(SanitizerMask a,
  110   friend constexpr inline SanitizerMask operator&(SanitizerMask a,
  111                                                   const SanitizerMask &b) {
  116   friend constexpr inline SanitizerMask operator|(SanitizerMask a,
  116   friend constexpr inline SanitizerMask operator|(SanitizerMask a,
  117                                                   const SanitizerMask &b) {
  124 llvm::hash_code hash_value(const clang::SanitizerMask &Arg);
  152   bool has(SanitizerMask K) const {
  158   bool hasOneOf(SanitizerMask K) const { return static_cast<bool>(Mask & K); }
  161   void set(SanitizerMask K, bool Value) {
  167   void clear(SanitizerMask K = SanitizerKind::All) { Mask &= ~K; }
  173   SanitizerMask Mask;
  178 SanitizerMask parseSanitizerValue(StringRef Value, bool AllowGroups);
  182 SanitizerMask expandSanitizerGroups(SanitizerMask Kinds);
  182 SanitizerMask expandSanitizerGroups(SanitizerMask Kinds);
  185 inline SanitizerMask getPPTransparentSanitizers() {
tools/clang/include/clang/Driver/ToolChain.h
  597   virtual SanitizerMask getSupportedSanitizers() const;
  600   virtual SanitizerMask getDefaultSanitizers() const {
tools/clang/lib/AST/Decl.cpp
 4395   const SanitizerMask EnabledAsanMask = Context.getLangOpts().Sanitize.Mask &
tools/clang/lib/Basic/SanitizerBlacklist.cpp
   21 bool SanitizerBlacklist::isBlacklistedGlobal(SanitizerMask Mask,
   27 bool SanitizerBlacklist::isBlacklistedType(SanitizerMask Mask,
   33 bool SanitizerBlacklist::isBlacklistedFunction(SanitizerMask Mask,
   38 bool SanitizerBlacklist::isBlacklistedFile(SanitizerMask Mask,
   44 bool SanitizerBlacklist::isBlacklistedLocation(SanitizerMask Mask,
tools/clang/lib/Basic/SanitizerSpecialCaseList.cpp
   39     SanitizerMask Mask;
   54 bool SanitizerSpecialCaseList::inSection(SanitizerMask Mask, StringRef Prefix,
tools/clang/lib/Basic/Sanitizers.cpp
   27 SanitizerMask clang::parseSanitizerValue(StringRef Value, bool AllowGroups) {
   28   SanitizerMask ParsedKind = llvm::StringSwitch<SanitizerMask>(Value)
   37 SanitizerMask clang::expandSanitizerGroups(SanitizerMask Kinds) {
   37 SanitizerMask clang::expandSanitizerGroups(SanitizerMask Kinds) {
   51 llvm::hash_code hash_value(const clang::SanitizerMask &Arg) {
tools/clang/lib/CodeGen/CGCall.cpp
 2983   SanitizerMask CheckKind;
 3379   SanitizerMask CheckKind;
tools/clang/lib/CodeGen/CGClass.cpp
 2722   SanitizerMask M;
tools/clang/lib/CodeGen/CGExpr.cpp
  674   SmallVector<std::pair<llvm::Value *, SanitizerMask>, 3> Checks;
 1627   SanitizerMask Kind =
 2934 static CheckRecoverableKind getRecoverableKind(SanitizerMask Kind) {
 3006     ArrayRef<std::pair<llvm::Value *, SanitizerMask>> Checked,
 3116     SanitizerMask Kind, llvm::Value *Cond, llvm::ConstantInt *TypeId,
 3245   const std::pair<int, SanitizerMask> CheckKinds[] = {
 3252   SmallVector<std::pair<llvm::Value *, SanitizerMask>, 5> Checks;
 3255     SanitizerMask Mask = CheckKindMaskPair.second;
tools/clang/lib/CodeGen/CGExprScalar.cpp
  258   void EmitBinOpCheck(ArrayRef<std::pair<Value *, SanitizerMask>> Checks,
  942                  std::pair<llvm::Value *, SanitizerMask>>
  961   SanitizerMask Mask;
 1010             std::pair<llvm::Value *, SanitizerMask>>
 1030                  std::pair<llvm::Value *, SanitizerMask>>
 1134             std::pair<llvm::Value *, SanitizerMask>>
 1139   llvm::SmallVector<std::pair<llvm::Value *, SanitizerMask>, 2> Checks;
 1533     ArrayRef<std::pair<Value *, SanitizerMask>> Checks, const BinOpInfo &Info) {
 2964   SmallVector<std::pair<llvm::Value *, SanitizerMask>, 2> Checks;
 3100       SanitizerMask Kind = isSigned ? SanitizerKind::SignedIntegerOverflow
 3609     SmallVector<std::pair<Value *, SanitizerMask>, 2> Checks;
 4699   llvm::SmallVector<std::pair<llvm::Value *, SanitizerMask>, 2> Checks;
tools/clang/lib/CodeGen/CodeGenFunction.cpp
  678       SanitizerMask mask = Attr->getMask();
tools/clang/lib/CodeGen/CodeGenFunction.h
 4111   void EmitCheck(ArrayRef<std::pair<llvm::Value *, SanitizerMask>> Checked,
 4117   void EmitCfiSlowPathCheck(SanitizerMask Kind, llvm::Value *Cond,
tools/clang/lib/CodeGen/CodeGenModule.cpp
 2231 bool CodeGenModule::isInSanitizerBlacklist(SanitizerMask Kind,
 2254   const SanitizerMask EnabledAsanMask =
tools/clang/lib/CodeGen/CodeGenModule.h
 1229   bool isInSanitizerBlacklist(SanitizerMask Kind, llvm::Function *Fn,
tools/clang/lib/Driver/SanitizerArgs.cpp
   27 static const SanitizerMask NeedsUbsanRt =
   31 static const SanitizerMask NeedsUbsanCxxRt =
   33 static const SanitizerMask NotAllowedWithTrap = SanitizerKind::Vptr;
   34 static const SanitizerMask NotAllowedWithMinimalRuntime =
   36 static const SanitizerMask RequiresPIE =
   38 static const SanitizerMask NeedsUnwindTables =
   41 static const SanitizerMask SupportsCoverage =
   51 static const SanitizerMask RecoverableByDefault =
   55 static const SanitizerMask Unrecoverable =
   57 static const SanitizerMask AlwaysRecoverable =
   59 static const SanitizerMask LegacyFsanitizeRecoverMask =
   61 static const SanitizerMask NeedsLTO = SanitizerKind::CFI;
   62 static const SanitizerMask TrappingSupported =
   67 static const SanitizerMask TrappingDefault = SanitizerKind::CFI;
   68 static const SanitizerMask CFIClasses =
   72 static const SanitizerMask CompatibleWithMinimalRuntime =
   95 static SanitizerMask parseArgValues(const Driver &D, const llvm::opt::Arg *A,
  108                                        SanitizerMask Mask);
  115                                        SanitizerMask Mask);
  121 static void addDefaultBlacklists(const Driver &D, SanitizerMask Kinds,
  125     SanitizerMask Mask;
  155 static SanitizerMask setGroupBits(SanitizerMask Kinds) {
  155 static SanitizerMask setGroupBits(SanitizerMask Kinds) {
  164 static SanitizerMask parseSanitizeTrapArgs(const Driver &D,
  166   SanitizerMask TrapRemove;     // During the loop below, the accumulated set of
  169   SanitizerMask TrappingKinds;
  170   SanitizerMask TrappingSupportedWithGroups = setGroupBits(TrappingSupported);
  177       SanitizerMask Add = parseArgValues(D, Arg, true);
  179       if (SanitizerMask InvalidValues = Add & ~TrappingSupportedWithGroups) {
  243   SanitizerMask AllRemove;      // During the loop below, the accumulated set of
  246   SanitizerMask AllAddedKinds;      // Mask of all sanitizers ever enabled by
  251   SanitizerMask DiagnosedKinds;      // All Kinds we have diagnosed up to now.
  253   SanitizerMask Kinds;
  254   const SanitizerMask Supported = setGroupBits(TC.getSupportedSanitizers());
  262   SanitizerMask TrappingKinds = parseSanitizeTrapArgs(D, Args);
  263   SanitizerMask InvalidTrappingKinds = TrappingKinds & NotAllowedWithTrap;
  279       SanitizerMask Add = parseArgValues(D, Arg, /*AllowGroups=*/true);
  298       if (SanitizerMask KindsToDiagnose =
  308         if (SanitizerMask KindsToDiagnose =
  336       if (SanitizerMask KindsToDiagnose = Add & ~Supported & ~DiagnosedKinds) {
  393       SanitizerMask Remove = parseArgValues(D, Arg, true);
  398   std::pair<SanitizerMask, SanitizerMask> IncompatibleGroups[] = {
  398   std::pair<SanitizerMask, SanitizerMask> IncompatibleGroups[] = {
  433   SanitizerMask Default = TC.getDefaultSanitizers() & ~AllRemove;
  438     SanitizerMask Group = G.first;
  471     SanitizerMask KindsToDiagnose = Kinds & ~TrappingKinds & NeedsUbsanCxxRt;
  487     SanitizerMask Group = G.first;
  489       if (SanitizerMask Incompatible = Kinds & G.second) {
  503   SanitizerMask RecoverableKinds = RecoverableByDefault | AlwaysRecoverable;
  504   SanitizerMask DiagnosedUnrecoverableKinds;
  505   SanitizerMask DiagnosedAlwaysRecoverableKinds;
  519       SanitizerMask Add = parseArgValues(D, Arg, true);
  522       if (SanitizerMask KindsToDiagnose =
  533       SanitizerMask Remove = parseArgValues(D, Arg, true);
  536       if (SanitizerMask KindsToDiagnose =
  649     SanitizerMask IncompatibleMask =
  656     SanitizerMask NonTrappingCfi = Kinds & SanitizerKind::CFI & ~TrappingKinds;
  804     SanitizerMask DetectInvalidPointerPairs =
 1063 SanitizerMask parseArgValues(const Driver &D, const llvm::opt::Arg *A,
 1072   SanitizerMask Kinds;
 1075     SanitizerMask Kind;
 1124                                 SanitizerMask Mask) {
 1130       SanitizerMask AddKinds =
 1135       SanitizerMask RemoveKinds =
 1143 std::string describeSanitizeArg(const llvm::opt::Arg *A, SanitizerMask Mask) {
tools/clang/lib/Driver/ToolChain.cpp
  923 SanitizerMask ToolChain::getSupportedSanitizers() const {
  927   SanitizerMask Res = (SanitizerKind::Undefined & ~SanitizerKind::Vptr &
tools/clang/lib/Driver/ToolChains/CloudABI.cpp
  139 SanitizerMask CloudABI::getSupportedSanitizers() const {
  140   SanitizerMask Res = ToolChain::getSupportedSanitizers();
  145 SanitizerMask CloudABI::getDefaultSanitizers() const {
tools/clang/lib/Driver/ToolChains/CloudABI.h
   59   SanitizerMask getSupportedSanitizers() const override;
   60   SanitizerMask getDefaultSanitizers() const override;
tools/clang/lib/Driver/ToolChains/Contiki.cpp
   21 SanitizerMask Contiki::getSupportedSanitizers() const {
   23   SanitizerMask Res = ToolChain::getSupportedSanitizers();
tools/clang/lib/Driver/ToolChains/Contiki.h
   32   SanitizerMask getSupportedSanitizers() const override;
tools/clang/lib/Driver/ToolChains/CrossWindows.cpp
  277 clang::SanitizerMask CrossWindowsToolChain::getSupportedSanitizers() const {
  278   SanitizerMask Res = ToolChain::getSupportedSanitizers();
tools/clang/lib/Driver/ToolChains/CrossWindows.h
   76   SanitizerMask getSupportedSanitizers() const override;
tools/clang/lib/Driver/ToolChains/Cuda.cpp
  869 SanitizerMask CudaToolChain::getSupportedSanitizers() const {
tools/clang/lib/Driver/ToolChains/Cuda.h
  179   SanitizerMask getSupportedSanitizers() const override;
tools/clang/lib/Driver/ToolChains/Darwin.cpp
 2585 SanitizerMask Darwin::getSupportedSanitizers() const {
 2587   SanitizerMask Res = ToolChain::getSupportedSanitizers();
tools/clang/lib/Driver/ToolChains/Darwin.h
  485   SanitizerMask getSupportedSanitizers() const override;
tools/clang/lib/Driver/ToolChains/FreeBSD.cpp
  425 SanitizerMask FreeBSD::getSupportedSanitizers() const {
  429   SanitizerMask Res = ToolChain::getSupportedSanitizers();
tools/clang/lib/Driver/ToolChains/FreeBSD.h
   71   SanitizerMask getSupportedSanitizers() const override;
tools/clang/lib/Driver/ToolChains/Fuchsia.cpp
  333 SanitizerMask Fuchsia::getSupportedSanitizers() const {
  334   SanitizerMask Res = ToolChain::getSupportedSanitizers();
  345 SanitizerMask Fuchsia::getDefaultSanitizers() const {
  346   SanitizerMask Res;
tools/clang/lib/Driver/ToolChains/Fuchsia.h
   69   SanitizerMask getSupportedSanitizers() const override;
   70   SanitizerMask getDefaultSanitizers() const override;
tools/clang/lib/Driver/ToolChains/HIP.cpp
  439 SanitizerMask HIPToolChain::getSupportedSanitizers() const {
tools/clang/lib/Driver/ToolChains/HIP.h
  110   SanitizerMask getSupportedSanitizers() const override;
tools/clang/lib/Driver/ToolChains/Linux.cpp
  992 SanitizerMask Linux::getSupportedSanitizers() const {
 1005   SanitizerMask Res = ToolChain::getSupportedSanitizers();
tools/clang/lib/Driver/ToolChains/Linux.h
   43   SanitizerMask getSupportedSanitizers() const override;
tools/clang/lib/Driver/ToolChains/MSVC.cpp
 1360 SanitizerMask MSVCToolChain::getSupportedSanitizers() const {
 1361   SanitizerMask Res = ToolChain::getSupportedSanitizers();
tools/clang/lib/Driver/ToolChains/MSVC.h
  138   SanitizerMask getSupportedSanitizers() const override;
tools/clang/lib/Driver/ToolChains/MinGW.cpp
  460 SanitizerMask toolchains::MinGW::getSupportedSanitizers() const {
  461   SanitizerMask Res = ToolChain::getSupportedSanitizers();
tools/clang/lib/Driver/ToolChains/MinGW.h
   70   SanitizerMask getSupportedSanitizers() const override;
tools/clang/lib/Driver/ToolChains/Myriad.cpp
  288 SanitizerMask MyriadToolChain::getSupportedSanitizers() const {
tools/clang/lib/Driver/ToolChains/Myriad.h
   86   SanitizerMask getSupportedSanitizers() const override;
tools/clang/lib/Driver/ToolChains/NetBSD.cpp
  464 SanitizerMask NetBSD::getSupportedSanitizers() const {
  467   SanitizerMask Res = ToolChain::getSupportedSanitizers();
tools/clang/lib/Driver/ToolChains/NetBSD.h
   76   SanitizerMask getSupportedSanitizers() const override;
tools/clang/lib/Driver/ToolChains/OpenBSD.cpp
  233 SanitizerMask OpenBSD::getSupportedSanitizers() const {
  238   SanitizerMask Res = ToolChain::getSupportedSanitizers();
tools/clang/lib/Driver/ToolChains/OpenBSD.h
   76   SanitizerMask getSupportedSanitizers() const override;
tools/clang/lib/Driver/ToolChains/PS4CPU.cpp
  425 SanitizerMask toolchains::PS4CPU::getSupportedSanitizers() const {
  426   SanitizerMask Res = ToolChain::getSupportedSanitizers();
tools/clang/lib/Driver/ToolChains/PS4CPU.h
   85   SanitizerMask getSupportedSanitizers() const override;
tools/clang/lib/Driver/ToolChains/Solaris.cpp
  199 SanitizerMask Solaris::getSupportedSanitizers() const {
  202   SanitizerMask Res = ToolChain::getSupportedSanitizers();
tools/clang/lib/Driver/ToolChains/Solaris.h
   65   SanitizerMask getSupportedSanitizers() const override;
tools/clang/lib/Driver/ToolChains/WebAssembly.cpp
  279 SanitizerMask WebAssembly::getSupportedSanitizers() const {
  280   SanitizerMask Res = ToolChain::getSupportedSanitizers();
tools/clang/lib/Driver/ToolChains/WebAssembly.h
   69   SanitizerMask getSupportedSanitizers() const override;
tools/clang/lib/Frontend/CompilerInvocation.cpp
  597     SanitizerMask K = parseSanitizerValue(Sanitizer, /*AllowGroups=*/false);
tools/clang/lib/Serialization/ASTReader.cpp
  338     SanitizerMask ModularSanitizers = getPPTransparentSanitizers();
usr/include/c++/7.4.0/bits/alloc_traits.h
  474 	construct(allocator_type& __a, _Up* __p, _Args&&... __args)
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&>,
  101 		      is_constructible<_T2, const _U2&>>::value;
  101 		      is_constructible<_T2, const _U2&>>::value;
  107 	return __and_<is_convertible<const _U1&, _T1>,
  107 	return __and_<is_convertible<const _U1&, _T1>,
  108 		      is_convertible<const _U2&, _T2>>::value;
  108 		      is_convertible<const _U2&, _T2>>::value;
  114 	return __and_<is_constructible<_T1, _U1&&>,
  114 	return __and_<is_constructible<_T1, _U1&&>,
  115 		      is_constructible<_T2, _U2&&>>::value;
  115 		      is_constructible<_T2, _U2&&>>::value;
  121 	return __and_<is_convertible<_U1&&, _T1>,
  121 	return __and_<is_convertible<_U1&&, _T1>,
  122 		      is_convertible<_U2&&, _T2>>::value;
  122 		      is_convertible<_U2&&, _T2>>::value;
  128 	using __do_converts = __and_<is_convertible<const _U1&, _T1>,
  128 	using __do_converts = __and_<is_convertible<const _U1&, _T1>,
  129 				  is_convertible<_U2&&, _T2>>;
  129 				  is_convertible<_U2&&, _T2>>;
  133 	return __and_<is_constructible<_T1, const _U1&>,
  133 	return __and_<is_constructible<_T1, const _U1&>,
  134 		      is_constructible<_T2, _U2&&>,
  134 		      is_constructible<_T2, _U2&&>,
  142 	using __do_converts = __and_<is_convertible<_U1&&, _T1>,
  142 	using __do_converts = __and_<is_convertible<_U1&&, _T1>,
  143 				  is_convertible<const _U2&, _T2>>;
  143 				  is_convertible<const _U2&, _T2>>;
  147 	return __and_<is_constructible<_T1, _U1&&>,
  147 	return __and_<is_constructible<_T1, _U1&&>,
  148 		      is_constructible<_T2, const _U2&&>,
  148 		      is_constructible<_T2, const _U2&&>,
  209     : private __pair_base<_T1, _T2>
  209     : private __pair_base<_T1, _T2>
  211       typedef _T1 first_type;    /// @c first_type is the first bound type
  212       typedef _T2 second_type;   /// @c second_type is the second bound type
  214       _T1 first;                 /// @c first is a copy of the first object
  215       _T2 second;                /// @c second is a copy of the second object
  252       using _PCCP = _PCC<true, _T1, _T2>;
  252       using _PCCP = _PCC<true, _T1, _T2>;
  260       constexpr pair(const _T1& __a, const _T2& __b)
  260       constexpr pair(const _T1& __a, const _T2& __b)
  269       explicit constexpr pair(const _T1& __a, const _T2& __b)
  269       explicit constexpr pair(const _T1& __a, const _T2& __b)
  283 			    _T1, _T2>;
  283 			    _T1, _T2>;
  291         constexpr pair(const pair<_U1, _U2>& __p)
  311        constexpr pair(_U1&& __x, const _T2& __y)
  311        constexpr pair(_U1&& __x, const _T2& __y)
  318        explicit constexpr pair(_U1&& __x, const _T2& __y)
  325        constexpr pair(const _T1& __x, _U2&& __y)
  325        constexpr pair(const _T1& __x, _U2&& __y)
  326        : first(__x), second(std::forward<_U2>(__y)) { }
  332        explicit pair(const _T1& __x, _U2&& __y)
  341 	constexpr pair(_U1&& __x, _U2&& __y)
  341 	constexpr pair(_U1&& __x, _U2&& __y)
  360 	constexpr pair(pair<_U1, _U2>&& __p)
  362 	  second(std::forward<_U2>(__p.second)) { }
  379 		__and_<is_copy_assignable<_T1>,
  380 		       is_copy_assignable<_T2>>::value,
  390 		__and_<is_move_assignable<_T1>,
  391 		       is_move_assignable<_T2>>::value,
  403 				is_assignable<_T2&, const _U2&>>::value,
  403 				is_assignable<_T2&, const _U2&>>::value,
  405 	operator=(const pair<_U1, _U2>& __p)
  414 				is_assignable<_T2&, _U2&&>>::value,
  414 				is_assignable<_T2&, _U2&&>>::value,
  416 	operator=(pair<_U1, _U2>&& __p)
  523                    typename __decay_and_strip<_T2>::__type>
  524     make_pair(_T1&& __x, _T2&& __y)
  524     make_pair(_T1&& __x, _T2&& __y)
  527       typedef typename __decay_and_strip<_T2>::__type __ds_type2;
  529       return __pair_type(std::forward<_T1>(__x), std::forward<_T2>(__y));
usr/include/c++/7.4.0/bits/stl_vector.h
  962 	emplace_back(_Args&&... __args);
 1483 	_M_realloc_insert(iterator __position, _Args&&... __args);
usr/include/c++/7.4.0/ext/new_allocator.h
  135 	construct(_Up* __p, _Args&&... __args)
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
  762     typename add_rvalue_reference<_Tp>::type declval() noexcept;
  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
  889       typedef decltype(__test<_Tp>(0)) type;
  894     : public __and_<__not_<is_void<_Tp>>,
  895                     __is_default_constructible_impl<_Tp>>
  915     : public __is_default_constructible_atom<_Tp>::type
  921     : public __is_default_constructible_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>
 1352     : public is_nothrow_assignable<_Tp&, _Tp&&>
 1352     : public is_nothrow_assignable<_Tp&, _Tp&&>
 1358     : public __is_nt_move_assignable_impl<_Tp>
 1377     static void __helper(const _Tp&);
 1380     static true_type __test(const _Tp&,
 1381                             decltype(__helper<const _Tp&>({}))* = 0);
 1390     typedef decltype(__test(declval<_Tp>())) type;
 1395       : public __is_implicitly_default_constructible_impl<_Tp>::type
 1400       : public __and_<is_default_constructible<_Tp>,
 1401                       __is_implicitly_default_constructible_safe<_Tp>>
 1526 	static void __test_aux(_To1);
 1538       typedef decltype(__test<_From, _To>(0)) type;
 1538       typedef decltype(__test<_From, _To>(0)) type;
 1545     : public __is_convertible_helper<_From, _To>::type
 1545     : public __is_convertible_helper<_From, _To>::type
 1554     { typedef _Tp     type; };
 1558     { 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; };
 1664     : public __add_rvalue_reference_helper<_Tp>
 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;