Lines Matching refs:Self
5093 Sema &Self, SourceLocation KeyLoc, ASTContext &C, in HasNoThrowOperator() argument
5104 LookupResult Res(Self, NameInfo, Sema::LookupOrdinaryName); in HasNoThrowOperator()
5105 if (Self.LookupQualifiedName(Res, RD)) { in HasNoThrowOperator()
5117 CPT = Self.ResolveExceptionSpec(KeyLoc, CPT); in HasNoThrowOperator()
5205 static bool EvaluateUnaryTypeTrait(Sema &Self, TypeTrait UTT, in EvaluateUnaryTypeTrait() argument
5211 ASTContext &C = Self.Context; in EvaluateUnaryTypeTrait()
5229 if (DiagnoseVLAInCXXTypeTrait(Self, TInfo, tok::kw___is_bounded_array)) in EvaluateUnaryTypeTrait()
5237 if (DiagnoseVLAInCXXTypeTrait(Self, TInfo, tok::kw___is_unbounded_array)) in EvaluateUnaryTypeTrait()
5456 CXXDestructorDecl *Destructor = Self.LookupDestructor(RD); in EvaluateUnaryTypeTrait()
5468 CPT = Self.ResolveExceptionSpec(KeyLoc, CPT); in EvaluateUnaryTypeTrait()
5510 return HasNoThrowOperator(RT, OO_Equal, Self, KeyLoc, C, in EvaluateUnaryTypeTrait()
5523 return HasNoThrowOperator(RT, OO_Equal, Self, KeyLoc, C, in EvaluateUnaryTypeTrait()
5543 for (const auto *ND : Self.LookupConstructors(RD)) { in EvaluateUnaryTypeTrait()
5556 CPT = Self.ResolveExceptionSpec(KeyLoc, CPT); in EvaluateUnaryTypeTrait()
5583 for (const auto *ND : Self.LookupConstructors(RD)) { in EvaluateUnaryTypeTrait()
5594 CPT = Self.ResolveExceptionSpec(KeyLoc, CPT); in EvaluateUnaryTypeTrait()
5611 if (CXXDestructorDecl *Destructor = Self.LookupDestructor(RD)) in EvaluateUnaryTypeTrait()
5634 Self.Diag(KeyLoc, diag::err_builtin_pass_in_regs_non_class) << T; in EvaluateUnaryTypeTrait()
5637 return isTriviallyEqualityComparableType(Self, T, KeyLoc); in EvaluateUnaryTypeTrait()
5641 static bool EvaluateBinaryTypeTrait(Sema &Self, TypeTrait BTT, const TypeSourceInfo *Lhs,
5645 Sema &Self, const TypeSourceInfo *Lhs, const TypeSourceInfo *Rhs, in CheckConvertibilityForTypeTraits() argument
5681 if (!Self.isCompleteType(Rhs->getTypeLoc().getBeginLoc(), RhsT) || in CheckConvertibilityForTypeTraits()
5682 Self.isAbstractType(Rhs->getTypeLoc().getBeginLoc(), RhsT)) in CheckConvertibilityForTypeTraits()
5687 LhsT = Self.Context.getRValueReferenceType(LhsT); in CheckConvertibilityForTypeTraits()
5692 OpaqueValueExpr(KeyLoc, LhsT.getNonLValueExprType(Self.Context), in CheckConvertibilityForTypeTraits()
5700 Self, Sema::ExpressionEvaluationContext::Unevaluated); in CheckConvertibilityForTypeTraits()
5701 Sema::SFINAETrap SFINAE(Self, /*AccessCheckingSFINAE=*/true); in CheckConvertibilityForTypeTraits()
5702 Sema::ContextRAII TUContext(Self, Self.Context.getTranslationUnitDecl()); in CheckConvertibilityForTypeTraits()
5703 InitializationSequence Init(Self, To, Kind, From); in CheckConvertibilityForTypeTraits()
5707 ExprResult Result = Init.Perform(Self, To, Kind, From); in CheckConvertibilityForTypeTraits()
5970 static bool EvaluateBinaryTypeTrait(Sema &Self, TypeTrait BTT, const TypeSourceInfo *Lhs, in EvaluateBinaryTypeTrait() argument
5998 if (Self.RequireCompleteType( in EvaluateBinaryTypeTrait()
6006 assert(Self.Context.hasSameUnqualifiedType(LhsT, RhsT) in EvaluateBinaryTypeTrait()
6023 if (Self.RequireCompleteType( in EvaluateBinaryTypeTrait()
6032 return Self.Context.hasSameType(LhsT, RhsT); in EvaluateBinaryTypeTrait()
6036 QualType Lhs = Self.getASTContext().getUnqualifiedArrayType(LhsT, LhsQuals); in EvaluateBinaryTypeTrait()
6037 QualType Rhs = Self.getASTContext().getUnqualifiedArrayType(RhsT, RhsQuals); in EvaluateBinaryTypeTrait()
6038 return Self.Context.typesAreCompatible(Lhs, Rhs); in EvaluateBinaryTypeTrait()
6046 ExprResult Result = CheckConvertibilityForTypeTraits(Self, Lhs, Rhs, KeyLoc, in EvaluateBinaryTypeTrait()
6054 return Self.canThrow(Result.get()) == CT_Cannot; in EvaluateBinaryTypeTrait()
6072 Self.RequireCompleteType( in EvaluateBinaryTypeTrait()
6077 Self.RequireCompleteType( in EvaluateBinaryTypeTrait()
6089 LhsT = Self.Context.getRValueReferenceType(LhsT); in EvaluateBinaryTypeTrait()
6091 RhsT = Self.Context.getRValueReferenceType(RhsT); in EvaluateBinaryTypeTrait()
6092 OpaqueValueExpr Lhs(KeyLoc, LhsT.getNonLValueExprType(Self.Context), in EvaluateBinaryTypeTrait()
6094 OpaqueValueExpr Rhs(KeyLoc, RhsT.getNonLValueExprType(Self.Context), in EvaluateBinaryTypeTrait()
6100 Self, Sema::ExpressionEvaluationContext::Unevaluated); in EvaluateBinaryTypeTrait()
6101 Sema::SFINAETrap SFINAE(Self, /*AccessCheckingSFINAE=*/true); in EvaluateBinaryTypeTrait()
6102 Sema::ContextRAII TUContext(Self, Self.Context.getTranslationUnitDecl()); in EvaluateBinaryTypeTrait()
6103 ExprResult Result = Self.BuildBinOp(/*S=*/nullptr, KeyLoc, BO_Assign, &Lhs, in EvaluateBinaryTypeTrait()
6109 Self.CheckUnusedVolatileAssignment(Result.get()); in EvaluateBinaryTypeTrait()
6118 return Self.canThrow(Result.get()) == CT_Cannot; in EvaluateBinaryTypeTrait()
6126 return !Result.get()->hasNonTrivialCall(Self.Context); in EvaluateBinaryTypeTrait()
6134 Self.RequireCompleteType(Lhs->getTypeLoc().getBeginLoc(), LhsT, in EvaluateBinaryTypeTrait()
6137 Self.RequireCompleteType(Rhs->getTypeLoc().getBeginLoc(), RhsT, in EvaluateBinaryTypeTrait()
6140 DiagnoseVLAInCXXTypeTrait(Self, Lhs, tok::kw___is_layout_compatible); in EvaluateBinaryTypeTrait()
6141 DiagnoseVLAInCXXTypeTrait(Self, Rhs, tok::kw___is_layout_compatible); in EvaluateBinaryTypeTrait()
6143 return Self.IsLayoutCompatible(LhsT, RhsT); in EvaluateBinaryTypeTrait()
6147 !Self.getASTContext().hasSameUnqualifiedType(LhsT, RhsT)) { in EvaluateBinaryTypeTrait()
6148 Self.RequireCompleteType(Rhs->getTypeLoc().getBeginLoc(), RhsT, in EvaluateBinaryTypeTrait()
6152 DiagnoseVLAInCXXTypeTrait(Self, Lhs, in EvaluateBinaryTypeTrait()
6154 DiagnoseVLAInCXXTypeTrait(Self, Rhs, in EvaluateBinaryTypeTrait()
6157 return Self.IsPointerInterconvertibleBaseOf(Lhs, Rhs); in EvaluateBinaryTypeTrait()
6162 return Self.DeduceTemplateArgumentsFromType( in EvaluateBinaryTypeTrait()
6185 static uint64_t EvaluateArrayTypeTrait(Sema &Self, ArrayTypeTrait ATT, in EvaluateArrayTypeTrait() argument
6194 while (const ArrayType *AT = Self.Context.getAsArrayType(T)) { in EvaluateArrayTypeTrait()
6205 if (Self.VerifyIntegerConstantExpression( in EvaluateArrayTypeTrait()
6210 Self.Diag(KeyLoc, diag::err_dimension_expr_not_constant_integer) in EvaluateArrayTypeTrait()
6219 while (const ArrayType *AT = Self.Context.getAsArrayType(T)) { in EvaluateArrayTypeTrait()
6229 if (const ConstantArrayType *CAT = Self.Context.getAsConstantArrayType(T)) in EvaluateArrayTypeTrait()
6462 static bool TryClassUnification(Sema &Self, Expr *From, Expr *To, in TryClassUnification() argument
6483 QualType T = Self.Context.getReferenceQualifiedType(To); in TryClassUnification()
6486 InitializationSequence InitSeq(Self, Entity, Kind, From); in TryClassUnification()
6494 return InitSeq.Diagnose(Self, Entity, Kind, From); in TryClassUnification()
6505 Self.IsDerivedFrom(QuestionLoc, FTy, TTy); in TryClassUnification()
6507 Self.IsDerivedFrom(QuestionLoc, TTy, FTy))) { in TryClassUnification()
6514 InitializationSequence InitSeq(Self, Entity, Kind, From); in TryClassUnification()
6521 return InitSeq.Diagnose(Self, Entity, Kind, From); in TryClassUnification()
6535 TTy = TTy.getNonLValueExprType(Self.Context); in TryClassUnification()
6538 InitializationSequence InitSeq(Self, Entity, Kind, From); in TryClassUnification()
6542 return InitSeq.Diagnose(Self, Entity, Kind, From); in TryClassUnification()
6552 static bool FindConditionalOverload(Sema &Self, ExprResult &LHS, ExprResult &RHS, in FindConditionalOverload() argument
6557 Self.AddBuiltinOperatorCandidates(OO_Conditional, QuestionLoc, Args, in FindConditionalOverload()
6561 switch (CandidateSet.BestViableFunction(Self, QuestionLoc, Best)) { in FindConditionalOverload()
6564 ExprResult LHSRes = Self.PerformImplicitConversion( in FindConditionalOverload()
6571 ExprResult RHSRes = Self.PerformImplicitConversion( in FindConditionalOverload()
6578 Self.MarkFunctionReferenced(QuestionLoc, Best->Function); in FindConditionalOverload()
6587 if (Self.DiagnoseConditionalForNull(LHS.get(), RHS.get(), QuestionLoc)) in FindConditionalOverload()
6590 Self.Diag(QuestionLoc, diag::err_typecheck_cond_incompatible_operands) in FindConditionalOverload()
6596 Self.Diag(QuestionLoc, diag::err_conditional_ambiguous_ovl) in FindConditionalOverload()
6611 static bool ConvertForConditional(Sema &Self, ExprResult &E, QualType T) { in ConvertForConditional() argument
6616 InitializationSequence InitSeq(Self, Entity, Kind, Arg); in ConvertForConditional()
6617 ExprResult Result = InitSeq.Perform(Self, Entity, Kind, Arg); in ConvertForConditional()