]> granicus.if.org Git - clang/commitdiff
make isPointerType() a pure predicate, rename the
authorChris Lattner <sabre@nondot.org>
Tue, 31 Jul 2007 16:53:04 +0000 (16:53 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 31 Jul 2007 16:53:04 +0000 (16:53 +0000)
existing one to getAsPointerType()

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40639 91177308-0d34-0410-b5e6-96231b3b80d8

AST/Type.cpp
Sema/SemaExpr.cpp
clang.xcodeproj/project.pbxproj
include/clang/AST/Type.h

index ecade56706fec8af5c397e368a79025111c45749..ae04c4effdc6f7a448e3d70f47cd2e25691f7c20 100644 (file)
@@ -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;
index a14482b45417b6e30f12e229543a35bc56037b51..89aef4ec5941c1e901f04b3ea857ed82dbe1d6d3 100644 (file)
@@ -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
index ff84ac7c23151c701bc56bf555be41593b7f68f5..bb772fa1827bfe2c9e25f8e9a3c44b87b16d0846 100644 (file)
                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>"; };
index fa6490364db1e90ceb8f0a96c22a7d2b5bb055bf..b35e19facc56f3279dd29890d7fa64e83f3bbfce 100644 (file)
@@ -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;