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

Declarations

tools/clang/include/clang/AST/ASTContext.h
   85 class APValue;
tools/clang/include/clang/AST/Expr.h
   40   class APValue;
tools/clang/include/clang/Sema/Initialization.h
   41 class APValue;
tools/clang/include/clang/Sema/Overload.h
   45 class APValue;

References

include/llvm/ADT/ArrayRef.h
   43     using iterator = const T *;
   44     using const_iterator = const T *;
   50     const T *Data = nullptr;
   66     /*implicit*/ ArrayRef(const T &OneElt)
   70     /*implicit*/ ArrayRef(const T *data, size_t length)
   74     ArrayRef(const T *begin, const T *end)
   74     ArrayRef(const T *begin, const T *end)
   81     /*implicit*/ ArrayRef(const SmallVectorTemplateCommon<T, U> &Vec)
   87     /*implicit*/ ArrayRef(const std::vector<T, A> &Vec)
   92     /*implicit*/ constexpr ArrayRef(const std::array<T, N> &Arr)
   97     /*implicit*/ constexpr ArrayRef(const T (&Arr)[N]) : Data(Arr), Length(N) {}
  100     /*implicit*/ ArrayRef(const std::initializer_list<T> &Vec)
  145     const T *data() const { return Data; }
  151     const T &front() const {
  157     const T &back() const {
  163     template <typename Allocator> ArrayRef<T> copy(Allocator &A) {
  178     ArrayRef<T> slice(size_t N, size_t M) const {
  184     ArrayRef<T> slice(size_t N) const { return slice(N, size() - N); }
  187     ArrayRef<T> drop_front(size_t N = 1) const {
  193     ArrayRef<T> drop_back(size_t N = 1) const {
  200     template <class PredicateT> ArrayRef<T> drop_while(PredicateT Pred) const {
  206     template <class PredicateT> ArrayRef<T> drop_until(PredicateT Pred) const {
  211     ArrayRef<T> take_front(size_t N = 1) const {
  218     ArrayRef<T> take_back(size_t N = 1) const {
  226     template <class PredicateT> ArrayRef<T> take_while(PredicateT Pred) const {
  232     template <class PredicateT> ArrayRef<T> take_until(PredicateT Pred) const {
  239     const T &operator[](size_t Index) const {
  249     typename std::enable_if<std::is_same<U, T>::value, ArrayRef<T>>::type &
  257     typename std::enable_if<std::is_same<U, T>::value, ArrayRef<T>>::type &
  263     std::vector<T> vec() const {
  270     operator std::vector<T>() const {
include/llvm/ADT/Optional.h
   39     T value;
   60   explicit OptionalStorage(in_place_t, Args &&... args)
   61       : value(std::forward<Args>(args)...), hasVal(true) {}
   72   T &getValue() LLVM_LVALUE_FUNCTION noexcept {
   76   T const &getValue() const LLVM_LVALUE_FUNCTION noexcept {
   81   T &&getValue() && noexcept {
   87   template <class... Args> void emplace(Args &&... args) {
   89     ::new ((void *)std::addressof(value)) T(std::forward<Args>(args)...);
   89     ::new ((void *)std::addressof(value)) T(std::forward<Args>(args)...);
  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
   75   AlignedCharArrayUnion<T> FirstEl;
  114   using value_type = T;
  115   using iterator = T *;
  116   using const_iterator = const T *;
  121   using reference = T &;
  122   using const_reference = const T &;
  123   using pointer = T *;
  124   using const_pointer = const T *;
  179 class SmallVectorTemplateBase : public SmallVectorTemplateCommon<T> {
  183   static void destroy_range(T *S, T *E) {
  183   static void destroy_range(T *S, T *E) {
  211   void push_back(const T &Elt) {
  214     ::new ((void*) this->end()) T(Elt);
  218   void push_back(T &&Elt) {
  221     ::new ((void*) this->end()) T(::std::move(Elt));
  240   T *NewElts = static_cast<T*>(llvm::safe_malloc(NewCapacity*sizeof(T)));
  240   T *NewElts = static_cast<T*>(llvm::safe_malloc(NewCapacity*sizeof(T)));
  315 class SmallVectorImpl : public SmallVectorTemplateBase<T> {
  316   using SuperClass = SmallVectorTemplateBase<T>;
  357   void resize(size_type N, const T &NV) {
  374   LLVM_NODISCARD T pop_back_val() {
  397   void append(size_type NumInputs, const T &Elt) {
  405   void append(std::initializer_list<T> IL) {
  412   void assign(size_type NumElts, const T &Elt) {
  429   void assign(std::initializer_list<T> IL) {
  467   iterator insert(iterator I, T &&Elt) {
  497   iterator insert(iterator I, const T &Elt) {
  526   iterator insert(iterator I, size_type NumToInsert, const T &Elt) {
  637   void insert(iterator I, std::initializer_list<T> IL) {
  820   AlignedCharArrayUnion<T> InlineElts[N];
  837 class SmallVector : public SmallVectorImpl<T>, SmallVectorStorage<T, N> {
  837 class SmallVector : public SmallVectorImpl<T>, SmallVectorStorage<T, N> {
  846   explicit SmallVector(size_t Size, const T &Value = T())
  865   SmallVector(std::initializer_list<T> IL) : SmallVectorImpl<T>(N) {
  884   SmallVector(SmallVectorImpl<T> &&RHS) : SmallVectorImpl<T>(N) {
include/llvm/Support/AlignOf.h
   30   T t;
   39 template <typename T> union SizerImpl<T> { char arr[sizeof(T)]; };
   50       llvm::detail::SizerImpl<T, Ts...>)];
include/llvm/Support/Alignment.h
  103     return Constant<std::alignment_of<T>::value>();
include/llvm/Support/PointerLikeTypeTraits.h
   56   static inline void *getAsVoidPointer(T *P) { return P; }
   57   static inline T *getFromVoidPointer(void *P) { return static_cast<T *>(P); }
   59   enum { NumLowBitsAvailable = detail::ConstantLog2<alignof(T)>::value };
include/llvm/Support/TrailingObjects.h
   65     FirstAlignment = alignof(First),
  134     : public TrailingObjectsImpl<Align, BaseTy, TopTrailingObj, NextTy,
  137   typedef TrailingObjectsImpl<Align, BaseTy, TopTrailingObj, NextTy, MoreTys...>
  141     static const bool value = alignof(PrevTy) < alignof(NextTy);
  141     static const bool value = alignof(PrevTy) < alignof(NextTy);
  161   static const NextTy *
  163                          TrailingObjectsBase::OverloadToken<NextTy>) {
  176   static NextTy *
  178                          TrailingObjectsBase::OverloadToken<NextTy>) {
  179     auto *Ptr = TopTrailingObj::getTrailingObjectsImpl(
  185       return reinterpret_cast<NextTy *>(alignAddr(Ptr, Align::Of<NextTy>()));
  197         (requiresRealignment() ? llvm::alignTo<alignof(NextTy)>(SizeSoFar)
  199             sizeof(NextTy) * Count1,
  231                                 TrailingTys...>::Alignment,
  232                             BaseTy, TrailingObjects<BaseTy, TrailingTys...>,
  233                             BaseTy, TrailingTys...> {
  241       trailing_objects_internal::AlignmentCalcHelper<TrailingTys...>::Alignment,
  242       BaseTy, TrailingObjects<BaseTy, TrailingTys...>, BaseTy, TrailingTys...>
  242       BaseTy, TrailingObjects<BaseTy, TrailingTys...>, BaseTy, TrailingTys...>
  284                                        TrailingObjectsBase::OverloadToken<T>) {
  302   template <typename T> const T *getTrailingObjects() const {
  314   template <typename T> T *getTrailingObjects() {
  332                         TrailingTys, size_t>::type... Counts) {
  342       std::is_same<Foo<TrailingTys...>, Foo<Tys...>>::value, size_t>::type
  342       std::is_same<Foo<TrailingTys...>, Foo<Tys...>>::value, size_t>::type
  344                    TrailingTys, size_t>::type... Counts) {
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/AST/APValue.h
  246     APValue *Elts;
  252     APValue *Elts;
  258     APValue *Elts;
  266     APValue *Value;
  295   explicit APValue(const APValue *E, unsigned N) : Kind(None) {
  304   APValue(const APValue &RHS);
  305   APValue(APValue &&RHS) : Kind(None) { swap(RHS); }
  322   explicit APValue(const FieldDecl *D, const APValue &V = APValue())
  334   static APValue IndeterminateValue() {
  335     APValue Result;
  353   void swap(APValue &RHS);
  454   APValue &getVectorElt(unsigned I) {
  459   const APValue &getVectorElt(unsigned I) const {
  467   APValue &getArrayInitializedElt(unsigned I) {
  472   const APValue &getArrayInitializedElt(unsigned I) const {
  478   APValue &getArrayFiller() {
  483   const APValue &getArrayFiller() const {
  503   APValue &getStructBase(unsigned i) {
  507   APValue &getStructField(unsigned i) {
  511   const APValue &getStructBase(unsigned i) const {
  514   const APValue &getStructField(unsigned i) const {
  522   APValue &getUnionValue() {
  526   const APValue &getUnionValue() const {
  555   void setVector(const APValue *E, unsigned N) {
  557     ((Vec*)(char*)Data.buffer)->Elts = new APValue[N];
  581   void setUnion(const FieldDecl *Field, const APValue &Value) {
  593   APValue &operator=(APValue RHS) {
  593   APValue &operator=(APValue RHS) {
  655   static clang::APValue::LValueBase getEmptyKey();
  656   static clang::APValue::LValueBase getTombstoneKey();
  657   static unsigned getHashValue(const clang::APValue::LValueBase &Base);
  658   static bool isEqual(const clang::APValue::LValueBase &LHS,
  659                       const clang::APValue::LValueBase &RHS);
tools/clang/include/clang/AST/ASTContext.h
  278   llvm::DenseMap<const MaterializeTemporaryExpr *, APValue *>
  282   mutable llvm::SmallVector<APValue *, 0> APValueCleanups;
 2769   template <typename T> void addDestruction(T *Ptr) const {
 2770     if (!std::is_trivially_destructible<T>::value) {
 2832   APValue *getMaterializedTemporaryValue(const MaterializeTemporaryExpr *E,
tools/clang/include/clang/AST/Decl.h
  820   APValue Evaluated;
 1270   APValue *evaluateValue() const;
 1271   APValue *evaluateValue(SmallVectorImpl<PartialDiagnosticAt> &Notes) const;
 1276   APValue *getEvaluatedValue() const;
tools/clang/include/clang/AST/Expr.h
  521   bool isCXX11ConstantExpr(const ASTContext &Ctx, APValue *Result = nullptr,
  582     APValue Val;
  672   bool EvaluateAsInitializer(APValue &Result, const ASTContext &Ctx,
  680   bool EvaluateWithSubstitution(APValue &Value, ASTContext &Ctx,
  955       private llvm::TrailingObjects<ConstantExpr, APValue, uint64_t> {
  965   size_t numTrailingObjects(OverloadToken<APValue>) const {
  981   APValue &APValueResult() {
  984     return *getTrailingObjects<APValue>();
  986   const APValue &APValueResult() const {
  998                               const APValue &Result);
 1005   static ResultStorageKind getStorageKind(const APValue &Value);
 1020   void SetResult(APValue Value, const ASTContext &Context) {
 1023   void MoveIntoResult(APValue &Value, const ASTContext &Context);
 1025   APValue::ValueKind getResultAPValueKind() const {
 1031   APValue getAPValueResult() const;
 1032   const APValue &getResultAsAPValue() const { return APValueResult(); }
 4282   APValue EvaluateInContext(const ASTContext &Ctx,
tools/clang/include/clang/Sema/Initialization.h
 1210                          APValue *ConstantValue) const;
tools/clang/include/clang/Sema/Overload.h
  361                      APValue &ConstantValue, QualType &ConstantType,
tools/clang/include/clang/Sema/Sema.h
 2967                                               APValue &Value, CCEKind CCE);
tools/clang/include/clang/Serialization/ASTReader.h
 2233   APValue ReadAPValue(const RecordData &Record, unsigned &Idx);
 2628   APValue readAPValue() { return Reader->ReadAPValue(Record, Idx); }
tools/clang/include/clang/Serialization/ASTWriter.h
  867   void AddAPValue(const APValue &Value);
tools/clang/lib/AST/APValue.cpp
   45 APValue::LValueBase APValue::LValueBase::getDynamicAlloc(DynamicAllocLValue LV,
   53 APValue::LValueBase APValue::LValueBase::getTypeInfo(TypeInfoLValue LV,
   81 bool operator==(const APValue::LValueBase &LHS,
   82                 const APValue::LValueBase &RHS) {
   94     APValue::LValueBase Base;
  114 clang::APValue::LValueBase
  120 clang::APValue::LValueBase
  127 llvm::hash_code hash_value(const APValue::LValueBase &Base) {
  136     const clang::APValue::LValueBase &Base) {
  141     const clang::APValue::LValueBase &LHS,
  142     const clang::APValue::LValueBase &RHS) {
  220   Elts(new APValue[NumElts + (NumElts != Size ? 1 : 0)]),
  225   Elts(new APValue[NumBases+NumFields]),
  231 APValue::UnionData::UnionData() : Field(nullptr), Value(new APValue) {}
  236 APValue::APValue(const APValue &RHS) : Kind(None) {
  373 void APValue::swap(APValue &RHS) {
  476   case APValue::None:
  479   case APValue::Indeterminate:
  482   case APValue::Int:
  488   case APValue::Float:
  491   case APValue::FixedPoint:
  494   case APValue::Vector: {
  505   case APValue::ComplexInt:
  508   case APValue::ComplexFloat:
  512   case APValue::LValue: {
  634   case APValue::Array: {
  653   case APValue::Struct: {
  679   case APValue::Union:
  687   case APValue::MemberPointer:
  696   case APValue::AddrLabelDiff:
  733 const APValue::LValueBase APValue::getLValueBase() const {
  753 ArrayRef<APValue::LValuePathEntry> APValue::getLValuePath() const {
tools/clang/lib/AST/ASTContext.cpp
  878   for (std::pair<const MaterializeTemporaryExpr *, APValue *> &MTVPair :
  885   for (APValue *Value : APValueCleanups)
10327 APValue *
10333     APValue *&MTVI = MaterializedTemporaryValues[E];
10335       MTVI = new (*this) APValue;
tools/clang/lib/AST/ASTImporter.cpp
 6471   APValue::ValueKind Kind = E->getResultAPValueKind();
 6472   if (Kind == APValue::Int || Kind == APValue::Float ||
 6472   if (Kind == APValue::Int || Kind == APValue::Float ||
 6473       Kind == APValue::FixedPoint || Kind == APValue::ComplexFloat ||
 6473       Kind == APValue::FixedPoint || Kind == APValue::ComplexFloat ||
 6474       Kind == APValue::ComplexInt)
tools/clang/lib/AST/Decl.cpp
 2341 APValue *VarDecl::evaluateValue() const {
 2346 APValue *VarDecl::evaluateValue(
 2392 APValue *VarDecl::getEvaluatedValue() const {
tools/clang/lib/AST/Expr.cpp
  245 ConstantExpr::getStorageKind(const APValue &Value) {
  247   case APValue::None:
  248   case APValue::Indeterminate:
  250   case APValue::Int:
  268   ConstantExprBits.APValueKind = APValue::None;
  271     ::new (getTrailingObjects<APValue>()) APValue();
  271     ::new (getTrailingObjects<APValue>()) APValue();
  283   unsigned Size = totalSizeToAlloc<APValue, uint64_t>(
  292                                    const APValue &Result) {
  308   unsigned Size = totalSizeToAlloc<APValue, uint64_t>(
  316 void ConstantExpr::MoveIntoResult(APValue &Value, const ASTContext &Context) {
  351 APValue ConstantExpr::getAPValueResult() const {
 2173 APValue SourceLocExpr::EvaluateInContext(const ASTContext &Ctx,
 2191     using LValuePathEntry = APValue::LValuePathEntry;
tools/clang/lib/AST/ExprConstant.cpp
   77   static QualType getType(APValue::LValueBase B) {
  124   static const FieldDecl *getAsField(APValue::LValuePathEntry E) {
  129   static const CXXRecordDecl *getAsBaseClass(APValue::LValuePathEntry E) {
  134   static bool isVirtualBaseClass(APValue::LValuePathEntry E) {
  177   static bool isBaseAnAllocSizeCall(APValue::LValueBase Base) {
  193   findMostDerivedSubobject(ASTContext &Ctx, APValue::LValueBase Base,
  194                            ArrayRef<APValue::LValuePathEntry> Path,
  270     typedef APValue::LValuePathEntry PathEntry;
  283     SubobjectDesignator(ASTContext &Ctx, const APValue &V)
  304     void truncate(ASTContext &Ctx, APValue::LValueBase Base,
  505     APValue *Arguments;
  514     typedef std::map<MapKeyTy, APValue> MapTy;
  551                    APValue *Arguments);
  555     APValue *getTemporary(const void *Key, unsigned Version) {
  569     APValue *getCurrentTemporary(const void *Key) {
  589     APValue &createTemporary(const KeyT *Key, QualType T,
  626                               APValue::LValueBase LVBase, APValue &Value,
  626                               APValue::LValueBase LVBase, APValue &Value,
  632     llvm::PointerIntPair<APValue*, 1, bool> Value;
  633     APValue::LValueBase Base;
  637     Cleanup(APValue *Val, APValue::LValueBase Base, QualType T,
  637     Cleanup(APValue *Val, APValue::LValueBase Base, QualType T,
  662     APValue::LValueBase Base;
  663     ArrayRef<APValue::LValuePathEntry> Path;
  683   using Base = DenseMapInfo<APValue::LValueBase>;
  703     APValue Value;
  783     APValue::LValueBase EvaluatingDecl;
  796     APValue *EvaluatingDeclValue;
  852     isEvaluatingCtorDtor(APValue::LValueBase Base,
  853                          ArrayRef<APValue::LValuePathEntry> Path) {
  938     void setEvaluatingDecl(APValue::LValueBase Base, APValue &Value,
  938     void setEvaluatingDecl(APValue::LValueBase Base, APValue &Value,
  987     APValue *createHeapAlloc(const Expr *E, QualType T, LValue &LV);
 1377                                APValue *Arguments)
 1442     void moveInto(APValue &v) const {
 1448     void setFrom(const APValue &v) {
 1463     APValue::LValueBase Base;
 1469     const APValue::LValueBase getLValueBase() const { return Base; }
 1479     void moveInto(APValue &V) const {
 1488     void setFrom(ASTContext &Ctx, const APValue &V) {
 1497     void set(APValue::LValueBase B, bool BInvalid = false) {
 1523     void setInvalid(APValue::LValueBase B, unsigned I = 0) {
 1528       APValue Printable;
 1644     void moveInto(APValue &V) const {
 1647     void setFrom(const APValue &V) {
 1723 static bool Evaluate(APValue &Result, EvalInfo &Info, const Expr *E);
 1724 static bool EvaluateInPlace(APValue &Result, EvalInfo &Info,
 1735 static bool EvaluateIntegerOrLValue(const Expr *E, APValue &Result,
 1739 static bool EvaluateAtomic(const Expr *E, const LValue *This, APValue &Result,
 1741 static bool EvaluateAsRValue(EvalInfo &Info, const Expr *E, APValue &Result);
 1766 APValue &CallStackFrame::createTemporary(const KeyT *Key, QualType T,
 1769   APValue::LValueBase Base(Key, Index, Version);
 1771   APValue &Result = Temporaries[MapKeyTy(Key, Version)];
 1787 APValue *EvalInfo::createHeapAlloc(const Expr *E, QualType T, LValue &LV) {
 1794   LV.set(APValue::LValueBase::getDynamicAlloc(DA, T));
 1813     APValue Val;
 1828     const APValue &Arg = Arguments[ArgIndex];
 1842   APValue Scratch;
 1856 static bool IsGlobalLValue(APValue::LValueBase B) {
 1964 static void NoteLValueLocation(EvalInfo &Info, APValue::LValueBase Base) {
 1992                                   QualType Type, const APValue &Value,
 2006   APValue::LValueBase Base = LVal.getLValueBase();
 2075       APValue *V = Info.Ctx.getMaterializedTemporaryValue(MTE, false);
 2112                                                  const APValue &Value,
 2156                                   QualType Type, const APValue &Value,
 2240                         const APValue &Value,
 2251                                   QualType Type, const APValue &Value) {
 2272 static bool EvalPointerValueAsBool(const APValue &Value, bool &Result) {
 2287 static bool HandleConversionToBool(const APValue &Val, bool &Result) {
 2289   case APValue::None:
 2290   case APValue::Indeterminate:
 2292   case APValue::Int:
 2295   case APValue::FixedPoint:
 2298   case APValue::Float:
 2301   case APValue::ComplexInt:
 2305   case APValue::ComplexFloat:
 2309   case APValue::LValue:
 2311   case APValue::MemberPointer:
 2314   case APValue::Vector:
 2315   case APValue::Array:
 2316   case APValue::Struct:
 2317   case APValue::Union:
 2318   case APValue::AddrLabelDiff:
 2328   APValue Val;
 2390                                   APValue &Value, const FieldDecl *FD) {
 2412   APValue SVal;
 2431       APValue &Elt = SVal.getVectorElt(i);
 2824                                 APValue *&Result, const LValue *LVal) {
 2963                                 APValue &Result,
 2985 static void expandArray(APValue &Array, unsigned Index) {
 2995   APValue NewValue(APValue::UninitArray(), NewElts, Size);
 3064                                         APValue::LValueBase Base,
 3117   APValue::LValueBase Base;
 3119   APValue *Value;
 3124   CompleteObject(APValue::LValueBase Base, APValue *Value, QualType Type)
 3124   CompleteObject(APValue::LValueBase Base, APValue *Value, QualType Type)
 3173   APValue *O = Obj.Value;
 3359   APValue &Result;
 3364   bool found(APValue &Subobj, QualType SubobjType) {
 3384                              const SubobjectDesignator &Sub, APValue &Result,
 3394   APValue &NewVal;
 3410   bool found(APValue &Subobj, QualType SubobjType) {
 3443                             APValue &NewVal) {
 3549   APValue *BaseVal = nullptr;
 3684         APValue Val;
 3728                                const LValue &LVal, APValue &RVal,
 3748       APValue Lit;
 3784                              QualType LValType, APValue &Val) {
 3803   const APValue &RHS;
 3819   bool found(APValue &Subobj, QualType SubobjType) {
 3821     case APValue::Int:
 3823     case APValue::Float:
 3825     case APValue::ComplexInt:
 3826     case APValue::ComplexFloat:
 3830     case APValue::LValue:
 3875   bool foundPointer(APValue &Subobj, QualType SubobjType) {
 3909     BinaryOperatorKind Opcode, const APValue &RVal) {
 3929   APValue *Old;
 3943   bool found(APValue &Subobj, QualType SubobjType) {
 3952     case APValue::Int:
 3954     case APValue::Float:
 3956     case APValue::ComplexInt:
 3960     case APValue::ComplexFloat:
 3964     case APValue::LValue:
 4028   bool foundPointer(APValue &Subobj, QualType SubobjType) {
 4053                          QualType LValType, bool IsIncrement, APValue *Old) {
 4234 static APValue getDefaultInitValue(QualType T) {
 4239     APValue Struct(APValue::UninitStruct(), RD->getNumBases(),
 4258     APValue Array(APValue::UninitArray(), 0, AT->getSize().getZExtValue());
 4264   return APValue::IndeterminateValue();
 4290   APValue &Val =
 4343   APValue &Value;
 4951   bool found(APValue &Subobj, QualType SubobjType) { return true; }
 4983       APValue Val;
 5051   ArrayRef<APValue::LValuePathEntry> Path = This.Designator.Entries;
 5146                                             APValue &Result,
 5288   bool found(APValue &Subobj, QualType SubobjType) {
 5428 typedef SmallVector<APValue, 8> ArgVector;
 5475                                EvalInfo &Info, APValue &Result,
 5500     APValue RHSValue;
 5536                                   APValue *ArgValues,
 5538                                   EvalInfo &Info, APValue &Result) {
 5557   APValue RetVal;
 5628     APValue *Value = &Result;
 5736                                   EvalInfo &Info, APValue &Result) {
 5746                                   const LValue &This, APValue &Value,
 5753     APValue Printable;
 5781       APValue &Elem = Value.getArrayInitializedElt(Size - 1);
 5858   APValue RetVal;
 5880     APValue *SubobjectValue = &Value.getStructField(FD->getFieldIndex());
 5899     APValue *SubobjectValue = &Value.getStructBase(BasesLeft);
 5920   bool found(APValue &Subobj, QualType SubobjType) {
 5946                               APValue::LValueBase LVBase, APValue &Value,
 5946                               APValue::LValueBase LVBase, APValue &Value,
 6016   APValue *Val = Info.createHeapAlloc(E, AllocType, Result);
 6186   bool visit(const APValue &Val, QualType Ty) {
 6191   bool visit(const APValue &Val, QualType Ty, CharUnits Offset) {
 6200     case APValue::Indeterminate:
 6201     case APValue::None:
 6204     case APValue::Int:
 6206     case APValue::Float:
 6208     case APValue::Array:
 6210     case APValue::Struct:
 6213     case APValue::ComplexInt:
 6214     case APValue::ComplexFloat:
 6215     case APValue::Vector:
 6216     case APValue::FixedPoint:
 6219     case APValue::Union:
 6220     case APValue::MemberPointer:
 6221     case APValue::AddrLabelDiff: {
 6228     case APValue::LValue:
 6234   bool visitRecord(const APValue &Val, QualType Ty, CharUnits Offset) {
 6274   bool visitArray(const APValue &Val, QualType Ty, CharUnits Offset) {
 6285       const APValue &SubObj = Val.getArrayInitializedElt(I);
 6292       const APValue &Filler = Val.getArrayFiller();
 6316   static Optional<BitCastBuffer> convert(EvalInfo &Info, const APValue &Src,
 6346   Optional<APValue> visit(const BuiltinType *T, CharUnits Offset,
 6372       return APValue::IndeterminateValue();
 6392   Optional<APValue> visit(const RecordType *RTy, CharUnits Offset) {
 6400     APValue ResultVal(APValue::UninitStruct(), NumBases,
 6412         Optional<APValue> SubObj = visitType(
 6438       Optional<APValue> SubObj = visitType(FieldTy, FieldOffset);
 6448   Optional<APValue> visit(const EnumType *Ty, CharUnits Offset) {
 6459   Optional<APValue> visit(const ConstantArrayType *Ty, CharUnits Offset) {
 6463     APValue ArrayValue(APValue::UninitArray(), Size, Size);
 6465       Optional<APValue> ElementValue =
 6475   Optional<APValue> visit(const Type *Ty, CharUnits Offset) {
 6479   Optional<APValue> visitType(QualType Ty, CharUnits Offset) {
 6504   static Optional<APValue> convert(EvalInfo &Info, BitCastBuffer &Buffer,
 6574 static bool handleLValueToRValueBitCast(EvalInfo &Info, APValue &DestValue,
 6575                                         APValue &SourceValue,
 6586   APValue SourceRValue;
 6600   Optional<APValue> MaybeDestValue =
 6614   bool DerivedSuccess(const APValue &V, const Expr *E) {
 6767       APValue Result;
 6821     if (APValue *Value = Info.CurrentCall->getCurrentTemporary(E))
 6835     APValue Result;
 6841   bool handleCallExpr(const CallExpr *E, APValue &Result,
 7030     APValue Val;
 7049     APValue Result;
 7060       APValue AtomicVal;
 7077       APValue RVal;
 7085       APValue DestValue, SourceValue;
 7110     APValue RVal;
 7141       APValue ReturnValue;
 7188   bool Success(APValue::LValueBase B) {
 7202   bool Success(const APValue &V, const Expr *E) {
 7243       APValue RefValue;
 7420         APValue RVal;
 7452   APValue *V;
 7481   APValue *Value;
 7564   return Success(APValue::LValueBase::getTypeInfo(TypeInfo, E->getType()));
 7649   APValue RHS;
 7671   APValue NewVal;
 7761 static bool evaluateLValueAsAllocSize(EvalInfo &Info, APValue::LValueBase Base,
 7819   bool Success(const APValue &V, const Expr *E) {
 7874         APValue RVal;
 7889     APValue LValResult = E->EvaluateInContext(
 8004     APValue Value;
 8029       APValue &Value = Info.CurrentCall->createTemporary(
 8051     APValue RVal;
 8296       APValue Char;
 8358       APValue Val;
 8439       APValue Val;
 8463                                      APValue &Result, const InitListExpr *ILE,
 8589   APValue *Val;
 8597       APValue *Value;
 8601       bool found(APValue &Subobj, QualType SubobjType) {
 8676   bool Success(const APValue &V, const Expr *E) {
 8754     APValue &Result;
 8757     RecordExprEvaluator(EvalInfo &info, const LValue &This, APValue &Result)
 8760     bool Success(const APValue &V, const Expr *E) {
 8794                                           const LValue &This, APValue &Result) {
 8873     APValue DerivedObject;
 8880     APValue *Value = &DerivedObject;
 8950       APValue &FieldVal = Result.getStructBase(ElementNo);
 8988     APValue &FieldVal = Result.getStructField(Field->getFieldIndex());
 9145     APValue &FieldVal = Result.getStructField(Field->getFieldIndex());
 9157                            APValue &Result, EvalInfo &Info) {
 9179     APValue &Value =
 9224     APValue &Result;
 9227     VectorExprEvaluator(EvalInfo &info, APValue &Result)
 9230     bool Success(ArrayRef<APValue> V, const Expr *E) {
 9236     bool Success(const APValue &V, const Expr *E) {
 9254 static bool EvaluateVector(const Expr* E, APValue& Result, EvalInfo &Info) {
 9268     APValue Val = APValue();
 9284     SmallVector<APValue, 4> Elts(NElts, Val);
 9296     SmallVector<APValue, 4> Elts;
 9336   SmallVector<APValue, 4> Elements;
 9347       APValue v;
 9382   APValue ZeroElement;
 9389   SmallVector<APValue, 4> Elements(VT->getNumElements(), ZeroElement);
 9406     APValue &Result;
 9409     ArrayExprEvaluator(EvalInfo &Info, const LValue &This, APValue &Result)
 9412     bool Success(const APValue &V, const Expr *E) {
 9444                                APValue *Value, QualType Type);
 9454                           APValue &Result, EvalInfo &Info) {
 9460                                      APValue &Result, const InitListExpr *ILE,
 9506   APValue Filler;
 9597                                                APValue *Value,
 9605     APValue Filler =
 9646   APValue &Result;
 9648   IntExprEvaluator(EvalInfo &info, APValue &result)
 9651   bool Success(const llvm::APSInt &SI, const Expr *E, APValue &Result) {
 9665   bool Success(const llvm::APInt &I, const Expr *E, APValue &Result) {
 9679   bool Success(uint64_t Value, const Expr *E, APValue &Result) {
 9693   bool Success(const APValue &V, const Expr *E) {
 9788   APValue &Result;
 9791   FixedPointExprEvaluator(EvalInfo &info, APValue &result)
 9804   bool Success(const APValue &V, const Expr *E) {
 9838 static bool EvaluateIntegerOrLValue(const Expr *E, APValue &Result,
 9845   APValue Val;
 9859   APValue Evaluated = E->EvaluateInContext(
 9867     APValue Val;
10106 static bool EvaluateBuiltinConstantPForLValue(const APValue &LV) {
10107   APValue::LValueBase Base = LV.getLValueBase();
10156     APValue V;
10163     if (V.getKind() == APValue::LValue)
10176 static QualType getObjectType(APValue::LValueBase B) {
10458       APValue RVal;
10489   if (E->getResultAPValueKind() != APValue::None)
10738       APValue Char;
10839         APValue Char1, Char2;
10884       APValue Char1, Char2;
11062     APValue APV{Result};
11106     APValue Val;
11138   APValue &FinalResult;
11141   DataRecursiveIntBinOpEvaluator(IntExprEvaluator &IntEval, APValue &Result)
11168   bool Success(uint64_t Value, const Expr *E, APValue &Result) {
11171   bool Success(const APSInt &Value, const Expr *E, APValue &Result) {
11190                   const BinaryOperator *E, APValue &Result);
11255 static void addOrSubLValueAsInteger(APValue &LVal, const APSInt &Index,
11270                   const BinaryOperator *E, APValue &Result) {
11308   const APValue &LHSVal = LHSResult.Val;
11309   const APValue &RHSVal = RHSResult.Val;
12153     APValue Val;
12200     APValue V;
12379   bool Success(const APValue &V, const Expr *e) {
12615   bool Success(const APValue &V, const Expr *e) {
13108   APValue &Result;
13110   AtomicExprEvaluator(EvalInfo &Info, const LValue *This, APValue &Result)
13113   bool Success(const APValue &V, const Expr *E) {
13139 static bool EvaluateAtomic(const Expr *E, const LValue *This, APValue &Result,
13156   bool Success(const APValue &V, const Expr *e) { return true; }
13273 static bool Evaluate(APValue &Result, EvalInfo &Info, const Expr *E) {
13313     APValue &Value =
13320     APValue &Value = Info.CurrentCall->createTemporary(E, T, false, LV);
13334       APValue &Value = Info.CurrentCall->createTemporary(E, Unqual, false, LV);
13355 static bool EvaluateInPlace(APValue &Result, EvalInfo &Info, const LValue &This,
13383 static bool EvaluateAsRValue(EvalInfo &Info, const Expr *E, APValue &Result) {
13595 bool Expr::EvaluateAsInitializer(APValue &Value, const ASTContext &Ctx,
13674   APValue DestroyedValue = *getEvaluatedValue();
14228   APValue Result;
14291 bool Expr::isCXX11ConstantExpr(const ASTContext &Ctx, APValue *Result,
14306   APValue Scratch;
14324 bool Expr::EvaluateWithSubstitution(APValue &Value, ASTContext &Ctx,
14406   APValue Scratch;
14445   APValue ResultScratch;
tools/clang/lib/AST/Interp/Boolean.h
   59   APValue toAPValue() const { return APValue(toAPSInt()); }
tools/clang/lib/AST/Interp/ByteCodeExprGen.h
   65   ByteCodeExprGen(Context &Ctx, Program &P, Tys &&... Args)
tools/clang/lib/AST/Interp/Context.cpp
   50   APValue Dummy;
   55                                        APValue &Result) {
   61                                             APValue &Result) {
  119 InterpResult Context::Run(State &Parent, Function *Func, APValue &Result) {
tools/clang/lib/AST/Interp/Context.h
   61   InterpResult evaluateAsRValue(State &Parent, const Expr *E, APValue &Result);
   65                                      APValue &Result);
   81   InterpResult Run(State &Parent, Function *Func, APValue &Result);
tools/clang/lib/AST/Interp/EvalEmitter.cpp
   23                          InterpStack &Stk, APValue &Result)
  109   std::function<bool(QualType, const Pointer &, APValue &)> Composite;
  121         APValue Value;
  146           APValue &Value = R.getStructField(I);
  178         APValue &Slot = R.getArrayInitializedElt(I);
tools/clang/lib/AST/Interp/EvalEmitter.h
   47               APValue &Result);
   91   APValue &Result;
tools/clang/lib/AST/Interp/Integral.h
  115   APValue toAPValue() const { return APValue(toAPSInt()); }
  115   APValue toAPValue() const { return APValue(toAPSInt()); }
tools/clang/lib/AST/Interp/Interp.cpp
   34 static bool Ret(InterpState &S, CodePtr &PC, APValue &Result) {
   56 static bool RetVoid(InterpState &S, CodePtr &PC, APValue &Result) {
   74 static bool RetValue(InterpState &S, CodePtr &Pt, APValue &Result) {
  401 bool Interpret(InterpState &S, APValue &Result) {
tools/clang/lib/AST/Interp/Interp.h
   41 template <typename T> bool ReturnValue(const T &V, APValue &R) {
  955 bool Interpret(InterpState &S, APValue &Result);
tools/clang/lib/AST/Interp/Pointer.cpp
   75 APValue Pointer::toAPValue() const {
   76   APValue::LValueBase Base;
   77   llvm::SmallVector<APValue::LValuePathEntry, 5> Path;
  111           Path.push_back(APValue::LValuePathEntry::ArrayIndex(Ptr.getIndex()));
tools/clang/lib/AST/Interp/Pointer.h
   55   APValue toAPValue() const;
tools/clang/lib/AST/JSONNodeDumper.cpp
 1274   if (CE->getResultAPValueKind() != APValue::None) {
tools/clang/lib/AST/TextNodeDumper.cpp
  687   if (Node->getResultAPValueKind() != APValue::None) {
tools/clang/lib/CodeGen/CGCXXABI.cpp
  112 llvm::Constant *CGCXXABI::EmitMemberPointer(const APValue &MP, QualType MPT) {
  251 CharUnits CGCXXABI::getMemberPointerPathAdjustment(const APValue &MP) {
tools/clang/lib/CodeGen/CGCXXABI.h
  196   virtual llvm::Constant *EmitMemberPointer(const APValue &MP, QualType MPT);
  224   CharUnits getMemberPointerPathAdjustment(const APValue &MP);
tools/clang/lib/CodeGen/CGDebugInfo.cpp
 1355     const APValue *Value = Var->evaluateValue();
 4443 void CGDebugInfo::EmitGlobalVariable(const ValueDecl *VD, const APValue &Init) {
tools/clang/lib/CodeGen/CGDebugInfo.h
  467   void EmitGlobalVariable(const ValueDecl *VD, const APValue &Init);
tools/clang/lib/CodeGen/CGExprConstant.cpp
  546                                      const APValue &Value, QualType ValTy);
  567   bool Build(const APValue &Val, const RecordDecl *RD, bool IsPrimaryBase,
  760 bool ConstStructBuilder::Build(const APValue &Val, const RecordDecl *RD,
  814     const APValue &FieldValue =
  860                                                 const APValue &Val,
 1357 ConstantEmitter::tryEmitAbstract(const APValue &value, QualType destType) {
 1377 ConstantEmitter::emitAbstract(SourceLocation loc, const APValue &value,
 1402 llvm::Constant *ConstantEmitter::emitForInitializer(const APValue &value,
 1646 ConstantEmitter::tryEmitAbstractForMemory(const APValue &value,
 1660 llvm::Constant *ConstantEmitter::tryEmitPrivateForMemory(const APValue &value,
 1742   const APValue &Value;
 1749   ConstantLValueEmitter(ConstantEmitter &emitter, const APValue &value,
 1757   ConstantLValue tryEmitBase(const APValue::LValueBase &base);
 1803   const APValue::LValueBase &base = Value.getLValueBase();
 1864 ConstantLValueEmitter::tryEmitBase(const APValue::LValueBase &base) {
 2011 llvm::Constant *ConstantEmitter::tryEmitPrivate(const APValue &Value,
 2014   case APValue::None:
 2015   case APValue::Indeterminate:
 2018   case APValue::LValue:
 2020   case APValue::Int:
 2022   case APValue::FixedPoint:
 2025   case APValue::ComplexInt: {
 2038   case APValue::Float: {
 2048   case APValue::ComplexFloat: {
 2061   case APValue::Vector: {
 2066       const APValue &Elt = Value.getVectorElt(I);
 2076   case APValue::AddrLabelDiff: {
 2094   case APValue::Struct:
 2095   case APValue::Union:
 2097   case APValue::Array: {
 2147   case APValue::MemberPointer:
tools/clang/lib/CodeGen/CGExprScalar.cpp
  645     APValue Evaluated =
tools/clang/lib/CodeGen/CodeGenFunction.cpp
 2011                                               const APValue &Init) {
tools/clang/lib/CodeGen/CodeGenFunction.h
 3590   void   EmitDeclRefExprDbgValue(const DeclRefExpr *E, const APValue &Init);
tools/clang/lib/CodeGen/CodeGenModule.cpp
 5027   APValue *Value = nullptr;
tools/clang/lib/CodeGen/ConstantEmitter.h
   75   llvm::Constant *emitForInitializer(const APValue &value, LangAS destAddrSpace,
  103   llvm::Constant *emitAbstract(SourceLocation loc, const APValue &value,
  110   llvm::Constant *tryEmitAbstract(const APValue &value, QualType T);
  111   llvm::Constant *tryEmitAbstractForMemory(const APValue &value, QualType T);
  133   llvm::Constant *tryEmitPrivate(const APValue &value, QualType T);
  134   llvm::Constant *tryEmitPrivateForMemory(const APValue &value, QualType T);
tools/clang/lib/CodeGen/ItaniumCXXABI.cpp
  144   llvm::Constant *EmitMemberPointer(const APValue &MP, QualType MPT) override;
 1018 llvm::Constant *ItaniumCXXABI::EmitMemberPointer(const APValue &MP,
tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp
  637   llvm::Constant *EmitMemberPointer(const APValue &MP, QualType MPT) override;
 2715 llvm::Constant *MicrosoftCXXABI::EmitMemberPointer(const APValue &MP,
tools/clang/lib/Sema/SemaChecking.cpp
10169 static IntRange GetValueRange(ASTContext &C, APValue &result, QualType Ty,
10458 static bool IsSameFloatAfterCast(const APValue &value,
tools/clang/lib/Sema/SemaDecl.cpp
12524           APValue Value;
tools/clang/lib/Sema/SemaExpr.cpp
10467   APValue PreNarrowingValue;
tools/clang/lib/Sema/SemaInit.cpp
 9509   APValue ConstantValue;
tools/clang/lib/Sema/SemaOverload.cpp
  304     ASTContext &Ctx, const Expr *Converted, APValue &ConstantValue,
 5481                                                    QualType T, APValue &Value,
 5556   APValue PreNarrowingValue;
 5622                                                   APValue &Value, CCEKind CCE) {
 5631   APValue V;
 6477     APValue Result;
 6538         APValue Result;
tools/clang/lib/Sema/SemaTemplate.cpp
 6450     APValue Value;
 6467     case APValue::None:
 6471     case APValue::Indeterminate:
 6474     case APValue::Int:
 6478     case APValue::MemberPointer: {
 6495     case APValue::LValue: {
 6504       APValue::LValueBase Base = Value.getLValueBase();
 6538     case APValue::AddrLabelDiff:
 6540     case APValue::FixedPoint:
 6541     case APValue::Float:
 6542     case APValue::ComplexInt:
 6543     case APValue::ComplexFloat:
 6544     case APValue::Vector:
 6545     case APValue::Array:
 6546     case APValue::Struct:
 6547     case APValue::Union:
tools/clang/lib/Serialization/ASTReader.cpp
 9601 APValue ASTReader::ReadAPValue(const RecordData &Record, unsigned &Idx) {
 9604   case APValue::None:
 9606   case APValue::Indeterminate:
 9607     return APValue::IndeterminateValue();
 9608   case APValue::Int:
 9610   case APValue::Float: {
 9615   case APValue::FixedPoint: {
 9619   case APValue::ComplexInt: {
 9623   case APValue::ComplexFloat: {
 9631   case APValue::LValue:
 9632   case APValue::Vector:
 9633   case APValue::Array:
 9634   case APValue::Struct:
 9635   case APValue::Union:
 9636   case APValue::MemberPointer:
 9637   case APValue::AddrLabelDiff:
tools/clang/lib/Serialization/ASTWriter.cpp
 5460 void ASTRecordWriter::AddAPValue(const APValue &Value) {
 5461   APValue::ValueKind Kind = Value.getKind();
 5464   case APValue::None:
 5465   case APValue::Indeterminate:
 5467   case APValue::Int:
 5470   case APValue::Float:
 5475   case APValue::FixedPoint: {
 5480   case APValue::ComplexInt: {
 5485   case APValue::ComplexFloat: {
 5494   case APValue::LValue:
 5495   case APValue::Vector:
 5496   case APValue::Array:
 5497   case APValue::Struct:
 5498   case APValue::Union:
 5499   case APValue::MemberPointer:
 5500   case APValue::AddrLabelDiff:
tools/clang/tools/extra/clang-tidy/cppcoreguidelines/NarrowingConversionsCheck.cpp
   72 static APValue getConstantExprValue(const ASTContext &Ctx, const Expr &E) {
   76   APValue Constant;
   84   APValue Constant = getConstantExprValue(Context, E);
   93   APValue Constant = getConstantExprValue(Context, E);
  227   APValue Constant = getConstantExprValue(Context, Rhs);
  331     APValue Constant = getConstantExprValue(Context, Rhs);
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/std_function.h
  299       _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args)
  628       using _Invoker_type = _Res (*)(const _Any_data&, _ArgTypes&&...);
usr/include/c++/7.4.0/bits/stl_construct.h
   74     _Construct(_T1* __p, _Args&&... __args)
   74     _Construct(_T1* __p, _Args&&... __args)
   75     { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
   75     { ::new(static_cast<void*>(__p)) _T1(std::forward<_Args>(__args)...); }
   97     _Destroy(_Tp* __pointer)
usr/include/c++/7.4.0/bits/stl_iterator_base_types.h
  181       typedef _Tp                         value_type;
  183       typedef _Tp*                        pointer;
  184       typedef _Tp&                        reference;
usr/include/c++/7.4.0/bits/stl_map.h
  103       typedef _Tp					mapped_type;
  104       typedef std::pair<const _Key, _Tp>		value_type;
usr/include/c++/7.4.0/bits/stl_pair.h
  209     : private __pair_base<_T1, _T2>
  212       typedef _T2 second_type;   /// @c second_type is the second bound type
  215       _T2 second;                /// @c second is a copy of the second 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>;
  311        constexpr pair(_U1&& __x, const _T2& __y)
  318        explicit constexpr pair(_U1&& __x, const _T2& __y)
  380 		       is_copy_assignable<_T2>>::value,
  391 		       is_move_assignable<_T2>>::value,
usr/include/c++/7.4.0/bits/stl_uninitialized.h
  144 		      const _Tp& __x)
  182 		       const _Tp& __x)
usr/include/c++/7.4.0/initializer_list
   50       typedef _E 		value_type;
   51       typedef const _E& 	reference;
   52       typedef const _E& 	const_reference;
   54       typedef const _E* 	iterator;
   55       typedef const _E* 	const_iterator;
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>
 1447     : public __and_<is_destructible<_Tp>, integral_constant<bool,
 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; };