From: Fariborz Jahanian Date: Wed, 8 Sep 2010 21:36:35 +0000 (+0000) Subject: Reverse r113397 until we decide what to do with X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=56a965c0f77c9e6bffd65cc8f8796442a8527381;p=clang Reverse r113397 until we decide what to do with use of 'struct objc_object*' for 'is' (and others) in clang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113414 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/AST/Type.h b/include/clang/AST/Type.h index e643843a20..92e62a58d4 100644 --- a/include/clang/AST/Type.h +++ b/include/clang/AST/Type.h @@ -932,9 +932,7 @@ public: bool isObjCQualifiedClassType() const; // Class bool isObjCObjectOrInterfaceType() const; bool isObjCIdType() const; // id - bool isLegacyObjCIdType(ASTContext &) const; // struct_object * bool isObjCClassType() const; // Class - bool isLegacyObjCClassType(ASTContext &) const; // struct_class * bool isObjCSelType() const; // Class bool isObjCBuiltinType() const; // 'id' or 'Class' bool isTemplateTypeParmType() const; // C++ template type parameter diff --git a/lib/AST/Type.cpp b/lib/AST/Type.cpp index 114c9ac7df..8e6aa23618 100644 --- a/lib/AST/Type.cpp +++ b/lib/AST/Type.cpp @@ -470,24 +470,6 @@ bool Type::isIntegralOrEnumerationType() const { return false; } -bool Type::isLegacyObjCIdType(ASTContext &Ctx) const { - if (const PointerType *PTTo = getAs()) { - QualType PointeeTy = PTTo->getPointeeType(); - if (const RecordType *RTy = PointeeTy->getAs()) - return RTy->getDecl()->getIdentifier() == &Ctx.Idents.get("objc_object"); - } - return false; -} - -bool Type::isLegacyObjCClassType(ASTContext &Ctx) const { - if (const PointerType *PTTo = getAs()) { - QualType PointeeTy = PTTo->getPointeeType(); - if (const RecordType *RTy = PointeeTy->getAs()) - return RTy->getDecl()->getIdentifier() == &Ctx.Idents.get("objc_class"); - } - return false; -} - bool Type::isEnumeralType() const { if (const TagType *TT = dyn_cast(CanonicalType)) return TT->getDecl()->isEnum(); diff --git a/lib/Sema/SemaType.cpp b/lib/Sema/SemaType.cpp index 06d8b3d4f6..aa30b5c2da 100644 --- a/lib/Sema/SemaType.cpp +++ b/lib/Sema/SemaType.cpp @@ -1274,12 +1274,8 @@ TypeSourceInfo *Sema::GetTypeForDeclarator(Declarator &D, Scope *S, if (BTy->getKind() == BuiltinType::Float) ArgTy = Context.DoubleTy; } - } else if (getLangOptions().ObjC1) { - if (ArgTy->isLegacyObjCIdType(Context)) - ArgTy = Context.getObjCIdType(); - else if (ArgTy->isLegacyObjCClassType(Context)) - ArgTy = Context.getObjCClassType(); } + ArgTys.push_back(ArgTy); } diff --git a/test/SemaObjCXX/legacy-objc-types.mm b/test/SemaObjCXX/legacy-objc-types.mm index 56ee97fca2..e69de29bb2 100644 --- a/test/SemaObjCXX/legacy-objc-types.mm +++ b/test/SemaObjCXX/legacy-objc-types.mm @@ -1,20 +0,0 @@ -// RUN: %clang_cc1 -fsyntax-only -verify %s -// rdar:// 8400356 - -struct objc_object; - -void f(id ptr) { } // expected-note {{previous definition is here}} -void f(objc_object* ptr) { } // expected-error {{redefinition of 'f'}} - -struct objc_class; - -void g(Class ptr) {} // expected-note {{previous definition is here}} -void g(objc_class* ptr) { } // expected-error {{redefinition of 'g'}} - -void h(Class ptr, objc_object* ptr1) {} // expected-note {{previous definition is here}} -void h(objc_class* ptr, id ptr1) {} // expected-error {{redefinition of 'h'}} - -void i(Class ptr, objc_object* ptr1); -void i(objc_class* ptr, id ptr1) {} -void i(objc_class* ptr, objc_object* ptr1); -