clang  6.0.0svn
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 ObjCMethodDeclLookupMethodInReceiverType (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 ExprstripOpaqueValuesFromPseudoObjectRef (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

◆ 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 543 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::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::Stmt::getLocStart(), 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::LookupMethodInObjectType(), clang::sema::FunctionScopeInfo::markSafeWeakUse(), clang::ObjCPropertyDecl::OBJC_PR_weak, clang::Qualifiers::OCL_Weak, clang::Parameter, clang::Sema::PP, clang::Sema::recordUseOfEvaluatedWeak(), clang::ObjCMessageExpr::setArg(), clang::QualType::substObjCMemberType(), clang::T, 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 1618 of file SemaPseudoObject.cpp.

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