diff options
| author | Chris Lattner <sabre@nondot.org> | 2007-07-31 16:53:04 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2007-07-31 16:53:04 +0000 |
| commit | c996b176e8dcc9a578f2efc6817945da4ec27db0 (patch) | |
| tree | b621f3ad6bade81d756d523ff8e989544f132a35 | |
| parent | d8b1ceb5b49ac584097e9b781cc102bac1de566d (diff) | |
| download | bcm5719-llvm-c996b176e8dcc9a578f2efc6817945da4ec27db0.tar.gz bcm5719-llvm-c996b176e8dcc9a578f2efc6817945da4ec27db0.zip | |
make isPointerType() a pure predicate, rename the
existing one to getAsPointerType()
llvm-svn: 40639
| -rw-r--r-- | clang/AST/Type.cpp | 5 | ||||
| -rw-r--r-- | clang/Sema/SemaExpr.cpp | 8 | ||||
| -rw-r--r-- | clang/clang.xcodeproj/project.pbxproj | 2 | ||||
| -rw-r--r-- | clang/include/clang/AST/Type.h | 3 |
4 files changed, 11 insertions, 7 deletions
diff --git a/clang/AST/Type.cpp b/clang/AST/Type.cpp index ecade56706f..ae04c4effdc 100644 --- a/clang/AST/Type.cpp +++ b/clang/AST/Type.cpp @@ -68,7 +68,10 @@ const FunctionType *Type::isFunctionType() const { return 0; } -const PointerType *Type::isPointerType() const { +// FIXME: move inline +bool Type::isPointerType() const { return isa<PointerType>(CanonicalType); } + +const PointerType *Type::getAsPointerType() const { // If this is directly a pointer type, return it. if (const PointerType *PTy = dyn_cast<PointerType>(this)) return PTy; diff --git a/clang/Sema/SemaExpr.cpp b/clang/Sema/SemaExpr.cpp index a14482b4541..89aef4ec594 100644 --- a/clang/Sema/SemaExpr.cpp +++ b/clang/Sema/SemaExpr.cpp @@ -303,12 +303,12 @@ ParseArraySubscriptExpr(ExprTy *Base, SourceLocation LLoc, // and index from the expression types. Expr *BaseExpr, *IndexExpr; QualType ResultType; - if (const PointerType *PTy = LHSTy->isPointerType()) { + if (const PointerType *PTy = LHSTy->getAsPointerType()) { BaseExpr = LHSExp; IndexExpr = RHSExp; // FIXME: need to deal with const... ResultType = PTy->getPointeeType(); - } else if (const PointerType *PTy = RHSTy->isPointerType()) { + } else if (const PointerType *PTy = RHSTy->getAsPointerType()) { // Handle the uncommon case of "123[Ptr]". BaseExpr = RHSExp; IndexExpr = LHSExp; @@ -409,7 +409,7 @@ ParseMemberReferenceExpr(ExprTy *Base, SourceLocation OpLoc, assert(!BaseType.isNull() && "no type for member expression"); if (OpKind == tok::arrow) { - if (const PointerType *PT = BaseType->isPointerType()) + if (const PointerType *PT = BaseType->getAsPointerType()) BaseType = PT->getPointeeType(); else return Diag(OpLoc, diag::err_typecheck_member_reference_arrow, @@ -1290,7 +1290,7 @@ QualType Sema::CheckIndirectionOperand(Expr *op, SourceLocation OpLoc) { UsualUnaryConversions(op); QualType qType = op->getType(); - if (const PointerType *PT = qType->isPointerType()) { + if (const PointerType *PT = qType->getAsPointerType()) { QualType ptype = PT->getPointeeType(); // C99 6.5.3.2p4. "if it points to an object,...". if (ptype->isIncompleteType()) { // An incomplete type is not an object diff --git a/clang/clang.xcodeproj/project.pbxproj b/clang/clang.xcodeproj/project.pbxproj index ff84ac7c231..bb772fa1827 100644 --- a/clang/clang.xcodeproj/project.pbxproj +++ b/clang/clang.xcodeproj/project.pbxproj @@ -191,7 +191,7 @@ 1A869AA70BA21ABA008DA07A /* LiteralSupport.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = LiteralSupport.cpp; sourceTree = "<group>"; }; 84D9A8870C1A57E100AC7ABC /* AttributeList.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = AttributeList.cpp; path = Parse/AttributeList.cpp; sourceTree = "<group>"; }; 84D9A88B0C1A581300AC7ABC /* AttributeList.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = AttributeList.h; path = clang/Parse/AttributeList.h; sourceTree = "<group>"; }; - 8DD76F6C0486A84900D96B5E /* clang */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = clang; sourceTree = BUILT_PRODUCTS_DIR; }; + 8DD76F6C0486A84900D96B5E /* clang */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = clang; sourceTree = BUILT_PRODUCTS_DIR; }; DE01DA480B12ADA300AC22CE /* PPCallbacks.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PPCallbacks.h; sourceTree = "<group>"; }; DE06756B0C051CFE00EBBFD8 /* ParseExprCXX.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = ParseExprCXX.cpp; path = Parse/ParseExprCXX.cpp; sourceTree = "<group>"; }; DE06B73D0A8307640050E87E /* LangOptions.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = LangOptions.h; sourceTree = "<group>"; }; diff --git a/clang/include/clang/AST/Type.h b/clang/include/clang/AST/Type.h index fa6490364db..b35e19facc5 100644 --- a/clang/include/clang/AST/Type.h +++ b/clang/include/clang/AST/Type.h @@ -240,7 +240,8 @@ public: /// Derived types (C99 6.2.5p20). bool isDerivedType() const; const FunctionType *isFunctionType() const; - const PointerType *isPointerType() const; + bool isPointerType() const; + const PointerType *getAsPointerType() const; const ReferenceType *isReferenceType() const; const ArrayType *isArrayType() const; const RecordType *isRecordType() const; |

