clang 8.0.0

Functions
SemaPseudoObject.cpp File Reference
`#include "clang/Sema/SemaInternal.h"`
`#include "clang/AST/ExprCXX.h"`
`#include "clang/AST/ExprObjC.h"`
`#include "clang/Basic/CharInfo.h"`
`#include "clang/Lex/Preprocessor.h"`
`#include "clang/Sema/Initialization.h"`
`#include "clang/Sema/ScopeInfo.h"`
`#include "llvm/ADT/SmallString.h"`
Include dependency graph for SemaPseudoObject.cpp:

Go to the source code of this file.

## Functions
static ObjCMethodDecl * | LookupMethodInReceiverType (Sema &S, Selector sel, const ObjCPropertyRefExpr *PRE)
| Look up a method in the receiver type of an Objective-C property reference. More...
static void | CheckKeyForObjCARCConversion (Sema &S, QualType ContainerT, Expr *Key)
| CheckKeyForObjCARCConversion - This routine suggests bridge casting of CF objects used as dictionary subscript key objects. More...
static Expr * | stripOpaqueValuesFromPseudoObjectRef (Sema &S, Expr *E)
| Given a pseudo-object reference, rebuild it without the opaque values. More...

## Function Documentation

## ◆ CheckKeyForObjCARCConversion()

static void CheckKeyForObjCARCConversion | ( | Sema & | S,
|  | QualType | ContainerT,
|  | Expr * | Key
| ) |  |
| static

CheckKeyForObjCARCConversion - This routine suggests bridge casting of CF objects used as dictionary subscript key objects.

Definition at line 1128 of file SemaPseudoObject.cpp.

References clang::Sema::CCK_ImplicitConversion, clang::Sema::CheckObjCConversion(), clang::Sema::CheckSubscriptingKind(), clang::Sema::Context, clang::ObjCMethodDecl::Create(), clang::ParmVarDecl::Create(), clang::Sema::Diag(), clang::ExprError(), clang::IdentifierTable::get(), clang::Type::getAs(), clang::Expr::getExprLoc(), clang::Sema::getLangOpts(), clang::ASTContext::getObjCIdType(), clang::Type::getPointeeType(), clang::SelectorTable::getSelector(), clang::Stmt::getSourceRange(), clang::ASTContext::getTranslationUnitDecl(), clang::Expr::getType(), clang::ASTContext::Idents, clang::Type::isIntegralOrEnumerationType(), clang::QualType::isNull(), clang::Type::isObjCIdType(), clang::Type::isObjCObjectPointerType(), clang::Sema::LookupInstanceMethodInGlobalPool(), clang::Sema::LookupMethodInObjectType(), clang::Sema::OS_Array, clang::Sema::OS_Error, clang::ObjCMethodDecl::parameters(), clang::ObjCMethodDecl::Required, clang::SC_None, clang::ASTContext::Selectors, clang::ASTContext::UnsignedLongTy, and clang::ASTContext::VoidTy.

## ◆ LookupMethodInReceiverType()

static ObjCMethodDecl* LookupMethodInReceiverType | ( | Sema & | S,
|  | Selector | sel,
|  | const ObjCPropertyRefExpr * | PRE
| ) |  |
| static

Look up a method in the receiver type of an Objective-C property reference.

Definition at line 557 of file SemaPseudoObject.cpp.

References clang::Sema::AA_Assigning, clang::Sema::BuildBinOp(), clang::Sema::BuildClassMessageImplicit(), clang::Sema::BuildInstanceMessageImplicit(), clang::Sema::BuildUnaryOp(), clang::Type::castAs(), clang::Sema::checkRetainCycles(), clang::Sema::CheckSingleAssignmentConstraints(), clang::Sema::checkUnsafeExprAssigns(), clang::SelectorTable::constructSetterSelector(), clang::Sema::Context, clang::Sema::CurContext, clang::Sema::Diag(), clang::Sema::DiagnoseAssignmentResult(), clang::Sema::DiagnosePropertyAccessorMismatch(), clang::Sema::DiagnoseUseOfDecl(), clang::Sema::Diags, clang::ExprError(), clang::ActionResult< PtrTy, CompressInvalid >::get(), clang::IdentifierTable::get(), clang::ObjCMessageExpr::getArg(), clang::Type::getAs(), clang::ObjCPropertyRefExpr::getBase(), clang::Stmt::getBeginLoc(), clang::ObjCMethodDecl::getClassInterface(), clang::ObjCPropertyRefExpr::getClassReceiver(), clang::Sema::getCurFunction(), clang::Sema::getCurLexicalContext(), clang::DeclContext::getDeclKind(), clang::ObjCPropertyDecl::getGetterName(), clang::Selector::getIdentifierInfoForSlot(), clang::Preprocessor::getIdentifierTable(), clang::Sema::getLangOpts(), clang::Decl::getLocation(), clang::IdentifierInfo::getName(), clang::NamedDecl::getName(), clang::DeclContext::getNonClosureAncestor(), clang::SelectorTable::getNullarySelector(), clang::ASTContext::getObjCInterfaceType(), clang::QualType::getObjCLifetime(), clang::ObjCObjectPointerType::getPointeeType(), clang::ObjCPropertyDecl::getPropertyAttributes(), clang::ObjCPropertyDecl::getQueryKind(), clang::ObjCMethodDecl::getSelector(), clang::Preprocessor::getSelectorTable(), clang::ObjCPropertyDecl::getSetterName(), clang::Stmt::getSourceRange(), clang::ObjCPropertyRefExpr::getSuperReceiverType(), clang::Expr::getType(), clang::ObjCPropertyDecl::getType(), clang::ASTContext::Idents, clang::Expr::IgnoreParens(), clang::Sema::ImpCastExprToType(), clang::BinaryOperator::isAssignmentOp(), clang::ObjCPropertyRefExpr::isClassReceiver(), clang::UnaryOperator::isDecrementOp(), clang::DiagnosticsEngine::isIgnored(), clang::ActionResult< PtrTy, CompressInvalid >::isInvalid(), clang::isLowercase(), clang::Type::isLValueReferenceType(), clang::ObjCObjectPointerType::isObjCClassType(), clang::DeclContext::isObjCContainer(), clang::ObjCPropertyRefExpr::isObjectReceiver(), clang::Type::isRecordType(), clang::Sema::isSelfExpr(), clang::ObjCPropertyRefExpr::isSuperReceiver(), clang::Sema::isUnevaluatedContext(), clang::Sema::LookupMethodInObjectType(), clang::sema::FunctionScopeInfo::markSafeWeakUse(), clang::ObjCPropertyDecl::OBJC_PR_weak, clang::Qualifiers::OCL_Weak, clang::Parameter, clang::Sema::PP, clang::sema::FunctionScopeInfo::recordUseOfWeak(), clang::ObjCMessageExpr::setArg(), clang::QualType::substObjCMemberType(), clang::toLowercase(), and clang::toUppercase().

## ◆ stripOpaqueValuesFromPseudoObjectRef()

static Expr* stripOpaqueValuesFromPseudoObjectRef | ( | Sema & | S,
|  | Expr * | E
| ) |  |
| static

Given a pseudo-object reference, rebuild it without the opaque values.

Basically, undo the behavior of rebuildAndCaptureObject. This should never operate in-place.

Definition at line 1633 of file SemaPseudoObject.cpp.

Referenced by clang::Sema::recreateSyntacticForm().