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

References

include/llvm/ADT/BitmaskEnum.h
   80 template <typename E> typename std::underlying_type<E>::type Mask() {
   84              E::LLVM_BITMASK_LARGEST_ENUMERATOR)) -
   90 template <typename E> typename std::underlying_type<E>::type Underlying(E Val) {
   99 E operator~(E Val) {
   99 E operator~(E Val) {
  100   return static_cast<E>(~Underlying(Val) & Mask<E>());
  105 E operator|(E LHS, E RHS) {
  105 E operator|(E LHS, E RHS) {
  105 E operator|(E LHS, E RHS) {
  111 E operator&(E LHS, E RHS) {
  111 E operator&(E LHS, E RHS) {
  111 E operator&(E LHS, E RHS) {
  126 E &operator|=(E &LHS, E RHS) {
  126 E &operator|=(E &LHS, E RHS) {
  126 E &operator|=(E &LHS, E RHS) {
  133 E &operator&=(E &LHS, E RHS) {
  133 E &operator&=(E &LHS, E RHS) {
  133 E &operator&=(E &LHS, E RHS) {
include/llvm/ADT/StringMap.h
  129   ValueTy second;
  134   StringMapEntryStorage(size_t strLen, InitTy &&... InitVals)
  135       : StringMapEntryBase(strLen), second(std::forward<InitTy>(InitVals)...) {}
  138   const ValueTy &getValue() const { return second; }
  139   ValueTy &getValue() { return second; }
  141   void setValue(const ValueTy &V) { second = V; }
  158 class StringMapEntry final : public StringMapEntryStorage<ValueTy> {
  160   using StringMapEntryStorage<ValueTy>::StringMapEntryStorage;
  179                                 InitTy &&... InitVals) {
  192     new (NewItem) StringMapEntry(KeyLength, std::forward<InitTy>(InitVals)...);
  204   static StringMapEntry *Create(StringRef Key, InitType &&... InitVal) {
  246   using MapEntryTy = StringMapEntry<ValueTy>;
  260   StringMap(std::initializer_list<std::pair<StringRef, ValueTy>> List)
  330   using mapped_type = ValueTy;
  331   using value_type = StringMapEntry<ValueTy>;
  334   using const_iterator = StringMapConstIterator<ValueTy>;
  335   using iterator = StringMapIterator<ValueTy>;
  350   iterator_range<StringMapKeyIterator<ValueTy>> keys() const {
  369   ValueTy lookup(StringRef Key) const {
  378   ValueTy &operator[](StringRef Key) { return try_emplace(Key).first->second; }
  413   std::pair<iterator, bool> insert(std::pair<StringRef, ValueTy> KV) {
  432   std::pair<iterator, bool> try_emplace(StringRef Key, ArgsTy &&... Args) {
  441     Bucket = MapEntryTy::Create(Key, Allocator, std::forward<ArgsTy>(Args)...);
  531     : public StringMapIterBase<StringMapConstIterator<ValueTy>,
  532                                const StringMapEntry<ValueTy>> {
  533   using base = StringMapIterBase<StringMapConstIterator<ValueTy>,
  534                                  const StringMapEntry<ValueTy>>;
  542   const StringMapEntry<ValueTy> &operator*() const {
  548 class StringMapIterator : public StringMapIterBase<StringMapIterator<ValueTy>,
  549                                                    StringMapEntry<ValueTy>> {
  551       StringMapIterBase<StringMapIterator<ValueTy>, StringMapEntry<ValueTy>>;
  551       StringMapIterBase<StringMapIterator<ValueTy>, StringMapEntry<ValueTy>>;
  559   StringMapEntry<ValueTy> &operator*() const {
  563   operator StringMapConstIterator<ValueTy>() const {
include/llvm/CodeGen/MIRParser/MIParser.h
   76   StringMap<MachineMemOperand::Flags> Names2MMOTargetFlags;
  136   bool getMMOTargetFlag(StringRef Name, MachineMemOperand::Flags &Flag);
include/llvm/CodeGen/MachineFunction.h
  755       MachinePointerInfo PtrInfo, MachineMemOperand::Flags f, uint64_t s,
  779                                           MachineMemOperand::Flags Flags);
include/llvm/CodeGen/MachineMemOperand.h
  171   Flags FlagVals;
  183   MachineMemOperand(MachinePointerInfo PtrInfo, Flags flags, uint64_t s,
  209   Flags getFlags() const { return FlagVals; }
  212   void setFlags(Flags f) { FlagVals |= f; }
include/llvm/CodeGen/SelectionDAG.h
 1056     MachineMemOperand::Flags Flags
 1081                   MachineMemOperand::Flags MMOFlags = MachineMemOperand::MONone,
 1090              MachineMemOperand::Flags MMOFlags = MachineMemOperand::MONone,
 1100                   MachineMemOperand::Flags MMOFlags = MachineMemOperand::MONone,
 1114            MachineMemOperand::Flags MMOFlags = MachineMemOperand::MONone,
 1121                 MachineMemOperand::Flags MMOFlags = MachineMemOperand::MONone,
include/llvm/CodeGen/TargetInstrInfo.h
 1681   virtual ArrayRef<std::pair<MachineMemOperand::Flags, const char *>>
include/llvm/CodeGen/TargetLowering.h
  845     MachineMemOperand::Flags flags = MachineMemOperand::MONone;
 1466       MachineMemOperand::Flags Flags = MachineMemOperand::MONone,
 1474       MachineMemOperand::Flags Flags = MachineMemOperand::MONone,
 1486       MachineMemOperand::Flags Flags = MachineMemOperand::MONone,
 1505                      MachineMemOperand::Flags Flags = MachineMemOperand::MONone,
 3755   virtual MachineMemOperand::Flags getMMOFlags(const Instruction &I) const {
lib/CodeGen/GlobalISel/IRTranslator.cpp
  862   auto Flags = LI.isVolatile() ? MachineMemOperand::MOVolatile
  904   auto Flags = SI.isVolatile() ? MachineMemOperand::MOVolatile
 1153   auto VolFlag = IsVol ? MachineMemOperand::MOVolatile : MachineMemOperand::MONone;
 1178   auto Flags = MachineMemOperand::MOLoad | MachineMemOperand::MOInvariant |
 1947   auto Flags = I.isVolatile() ? MachineMemOperand::MOVolatile
 1975   auto Flags = I.isVolatile() ? MachineMemOperand::MOVolatile
lib/CodeGen/MIRParser/MIParser.cpp
  265                                                MachineMemOperand::Flags &Flag) {
  467   bool parseMemoryOperandFlag(MachineMemOperand::Flags &Flags);
 2667 bool MIParser::parseMemoryOperandFlag(MachineMemOperand::Flags &Flags) {
 2668   const auto OldFlags = Flags;
 2683     MachineMemOperand::Flags TF;
 2835   MachineMemOperand::Flags Flags = MachineMemOperand::MONone;
lib/CodeGen/MachineFunction.cpp
  401     MachinePointerInfo PtrInfo, MachineMemOperand::Flags f, uint64_t s,
  443                                       MachineMemOperand::Flags Flags) {
lib/CodeGen/MachineOperand.cpp
 1016 MachineMemOperand::MachineMemOperand(MachinePointerInfo ptrinfo, Flags f,
lib/CodeGen/SelectionDAG/DAGCombiner.cpp
15961       MachineMemOperand::Flags LdMMOFlags =
15967       MachineMemOperand::Flags StMMOFlags =
16104       MachineMemOperand::Flags MMOFlags = ST->getMemOperand()->getFlags();
16472   MachineMemOperand::Flags MMOFlags = ST->getMemOperand()->getFlags();
19871     MachineMemOperand::Flags MMOFlags = LLD->getMemOperand()->getFlags();
lib/CodeGen/SelectionDAG/FastISel.cpp
 2393   MachineMemOperand::Flags Flags;
lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
  435   MachineMemOperand::Flags MMOFlags = ST->getMemOperand()->getFlags();
  489   MachineMemOperand::Flags MMOFlags = ST->getMemOperand()->getFlags();
  725   MachineMemOperand::Flags MMOFlags = LD->getMemOperand()->getFlags();
lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
  723   auto MMOFlags =
lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
 2658   MachineMemOperand::Flags MMOFlags = N->getMemOperand()->getFlags();
 3902   MachineMemOperand::Flags MMOFlags = N->getMemOperand()->getFlags();
lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
 1548   MachineMemOperand::Flags MMOFlags = LD->getMemOperand()->getFlags();
 2489   MachineMemOperand::Flags MMOFlags = N->getMemOperand()->getFlags();
 4777   MachineMemOperand::Flags MMOFlags = LD->getMemOperand()->getFlags();
 4927   MachineMemOperand::Flags MMOFlags = LD->getMemOperand()->getFlags();
 4967   MachineMemOperand::Flags MMOFlags = ST->getMemOperand()->getFlags();
 5035   MachineMemOperand::Flags MMOFlags = ST->getMemOperand()->getFlags();
lib/CodeGen/SelectionDAG/SelectionDAG.cpp
 5831   MachineMemOperand::Flags MMOFlags =
 5888       MachineMemOperand::Flags SrcMMOFlags = MMOFlags;
 6004   MachineMemOperand::Flags MMOFlags =
 6018     MachineMemOperand::Flags SrcMMOFlags = MMOFlags;
 6567     MachineMemOperand::Flags Flags, uint64_t Size, const AAMDNodes &AAInfo) {
 6698                               MachineMemOperand::Flags MMOFlags,
 6770                               MachineMemOperand::Flags MMOFlags,
 6788                                  MachineMemOperand::Flags MMOFlags,
 6809   auto MMOFlags =
 6821                                MachineMemOperand::Flags MMOFlags,
 6872                                     MachineMemOperand::Flags MMOFlags,
lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
 2485     auto Flags = MachineMemOperand::MOLoad | MachineMemOperand::MOInvariant |
 4091     auto MMOFlags = MachineMemOperand::MONone;
 4228   auto MMOFlags = MachineMemOperand::MONone;
 4563   auto Flags = MachineMemOperand::MOLoad | MachineMemOperand::MOStore;
 4614   auto Flags = MachineMemOperand::MOLoad |  MachineMemOperand::MOStore;
 4663   auto Flags = MachineMemOperand::MOLoad;
 4728   auto Flags = MachineMemOperand::MOStore;
 6546     auto Flags = rw == 0 ? MachineMemOperand::MOLoad :MachineMemOperand::MOStore;
lib/CodeGen/SelectionDAG/StatepointLowering.cpp
  353   auto MMOFlags = MachineMemOperand::MOStore |
lib/CodeGen/TargetInstrInfo.cpp
  535   auto Flags = MachineMemOperand::MONone;
lib/CodeGen/TargetLoweringBase.cpp
 1083       auto Flags = MachineMemOperand::MOLoad;
 1522     unsigned Alignment, MachineMemOperand::Flags Flags, bool *Fast) const {
 1550     unsigned Alignment, MachineMemOperand::Flags Flags, bool *Fast) const {
lib/Target/AArch64/AArch64FastISel.cpp
  189                             MachineMemOperand::Flags Flags,
 1122                                            MachineMemOperand::Flags Flags,
lib/Target/AArch64/AArch64ISelLowering.cpp
 1126     EVT VT, unsigned AddrSpace, unsigned Align, MachineMemOperand::Flags Flags,
 1151     LLT Ty, unsigned AddrSpace, unsigned Align, MachineMemOperand::Flags Flags,
 8745 MachineMemOperand::Flags
lib/Target/AArch64/AArch64ISelLowering.h
  286       MachineMemOperand::Flags Flags = MachineMemOperand::MONone,
  290     LLT Ty, unsigned AddrSpace, unsigned Align, MachineMemOperand::Flags Flags,
  565   MachineMemOperand::Flags getMMOFlags(const Instruction &I) const override;
lib/Target/AArch64/AArch64InstrInfo.cpp
 4916 ArrayRef<std::pair<MachineMemOperand::Flags, const char *>>
 4918   static const std::pair<MachineMemOperand::Flags, const char *> TargetFlags[] =
lib/Target/AArch64/AArch64InstrInfo.h
   31 static const MachineMemOperand::Flags MOSuppressPair =
   33 static const MachineMemOperand::Flags MOStridedAccess =
  243   ArrayRef<std::pair<MachineMemOperand::Flags, const char *>>
lib/Target/AMDGPU/R600ISelLowering.cpp
 1669     EVT VT, unsigned AddrSpace, unsigned Align, MachineMemOperand::Flags Flags,
lib/Target/AMDGPU/R600ISelLowering.h
   54       MachineMemOperand::Flags Flags = MachineMemOperand::MONone,
lib/Target/AMDGPU/SIISelLowering.cpp
 1237     MachineMemOperand::Flags Flags, bool *IsFast) const {
 1292     EVT VT, unsigned AddrSpace, unsigned Align, MachineMemOperand::Flags Flags,
lib/Target/AMDGPU/SIISelLowering.h
  247       MachineMemOperand::Flags Flags = MachineMemOperand::MONone,
  252       MachineMemOperand::Flags Flags = MachineMemOperand::MONone,
lib/Target/ARM/ARMBaseInstrInfo.cpp
 4786     auto Flags = MachineMemOperand::MOLoad |
lib/Target/ARM/ARMFastISel.cpp
  242                               MachineMemOperand::Flags Flags, bool useAM3);
  872                                        MachineMemOperand::Flags Flags,
lib/Target/ARM/ARMISelLowering.cpp
13367   MachineMemOperand::Flags MMOFlags = St->getMemOperand()->getFlags();
13861   MachineMemOperand::Flags MMOFlags = LD->getMemOperand()->getFlags();
14570                                                        MachineMemOperand::Flags,
lib/Target/ARM/ARMISelLowering.h
  343                                         MachineMemOperand::Flags Flags,
lib/Target/ARM/ARMInstrInfo.cpp
  125   auto Flags = MachineMemOperand::MOLoad |
lib/Target/Hexagon/HexagonISelLowering.cpp
 3195     EVT VT, unsigned AS, unsigned Align, MachineMemOperand::Flags Flags,
lib/Target/Hexagon/HexagonISelLowering.h
  308         unsigned Align, MachineMemOperand::Flags Flags, bool *Fast)
lib/Target/Hexagon/HexagonSplitDouble.cpp
  690     MachineMemOperand::Flags F = MO->getFlags();
lib/Target/Mips/Mips16ISelLowering.cpp
  159     EVT VT, unsigned, unsigned, MachineMemOperand::Flags, bool *Fast) const {
lib/Target/Mips/Mips16ISelLowering.h
   26                                         MachineMemOperand::Flags Flags,
lib/Target/Mips/MipsInstrInfo.cpp
   66                              MachineMemOperand::Flags Flags) const {
lib/Target/Mips/MipsInstrInfo.h
  168                                    MachineMemOperand::Flags Flags) const;
lib/Target/Mips/MipsSEISelLowering.cpp
  424     EVT VT, unsigned, unsigned, MachineMemOperand::Flags, bool *Fast) const {
lib/Target/Mips/MipsSEISelLowering.h
   45         MachineMemOperand::Flags Flags = MachineMemOperand::MONone,
lib/Target/PowerPC/PPCISelLowering.cpp
 5060       auto MMOFlags = Subtarget.hasInvariantFunctionDescriptors()
13590       auto MMOFlags =
14913                                                        MachineMemOperand::Flags,
lib/Target/PowerPC/PPCISelLowering.h
  899         MachineMemOperand::Flags Flags = MachineMemOperand::MONone,
  973       MachineMemOperand::Flags MMOFlags() const {
  974         MachineMemOperand::Flags F = MachineMemOperand::MONone;
lib/Target/SystemZ/SystemZISelLowering.cpp
  799     EVT VT, unsigned, unsigned, MachineMemOperand::Flags, bool *Fast) const {
 3839 MachineMemOperand::Flags
lib/Target/SystemZ/SystemZISelLowering.h
  417                                       MachineMemOperand::Flags Flags,
  657   MachineMemOperand::Flags getMMOFlags(const Instruction &I) const override;
lib/Target/SystemZ/SystemZInstrBuilder.h
   31   auto Flags = MachineMemOperand::MONone;
lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
  532     MachineMemOperand::Flags /*Flags*/, bool *Fast) const {
lib/Target/WebAssembly/WebAssemblyISelLowering.h
   63                                       MachineMemOperand::Flags Flags,
lib/Target/X86/X86ISelLowering.cpp
 2142     EVT VT, unsigned, unsigned Align, MachineMemOperand::Flags Flags,
 7899     auto MMOFlags = LDBase->getMemOperand()->getFlags();
lib/Target/X86/X86ISelLowering.h
  757                                         MachineMemOperand::Flags Flags,
lib/Target/X86/X86InstrBuilder.h
  203   auto Flags = MachineMemOperand::MONone;
lib/Target/X86/X86InstrInfo.cpp
 3989   auto Flags = MachineMemOperand::MOLoad |
lib/Target/XCore/XCoreFrameLowering.cpp
  177                                            MachineMemOperand::Flags flags) {
lib/Target/XCore/XCoreISelLowering.cpp
  997 MachineMemOperand::Flags
lib/Target/XCore/XCoreISelLowering.h
  191     MachineMemOperand::Flags getMMOFlags(const Instruction &I) const override;
usr/include/c++/7.4.0/bits/move.h
   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
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>;
  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)
  332        explicit pair(const _T1& __x, _U2&& __y)
  341 	constexpr pair(_U1&& __x, _U2&& __y)
  341 	constexpr pair(_U1&& __x, _U2&& __y)
  379 		__and_<is_copy_assignable<_T1>,
  380 		       is_copy_assignable<_T2>>::value,
  390 		__and_<is_move_assignable<_T1>,
  391 		       is_move_assignable<_T2>>::value,
  524     make_pair(_T1&& __x, _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
  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
  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>>>
  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
 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; };
 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; };
 2131       typedef _Tp __type;