From 19ebac118fbdb6758d4e55be246d72945b8d21b1 Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Fri, 16 Mar 2012 00:21:22 +0000 Subject: [PATCH] [arcmt] The hard-coded list of weak-incompatible classes is no longer necessary. rdar://10673816 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152879 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/ARCMigrate/Transforms.cpp | 38 ----------------------------------- 1 file changed, 38 deletions(-) diff --git a/lib/ARCMigrate/Transforms.cpp b/lib/ARCMigrate/Transforms.cpp index 170b7c8e15..70ef6216d6 100644 --- a/lib/ARCMigrate/Transforms.cpp +++ b/lib/ARCMigrate/Transforms.cpp @@ -29,42 +29,6 @@ ASTTraverser::~ASTTraverser() { } // Helpers. //===----------------------------------------------------------------------===// -/// \brief True if the class is one that does not support weak. -static bool isClassInWeakBlacklist(ObjCInterfaceDecl *cls) { - if (!cls) - return false; - - bool inList = llvm::StringSwitch(cls->getName()) - .Case("NSColorSpace", true) - .Case("NSFont", true) - .Case("NSFontPanel", true) - .Case("NSImage", true) - .Case("NSLazyBrowserCell", true) - .Case("NSWindow", true) - .Case("NSWindowController", true) - .Case("NSViewController", true) - .Case("NSMenuView", true) - .Case("NSPersistentUIWindowInfo", true) - .Case("NSTableCellView", true) - .Case("NSATSTypeSetter", true) - .Case("NSATSGlyphStorage", true) - .Case("NSLineFragmentRenderingContext", true) - .Case("NSAttributeDictionary", true) - .Case("NSParagraphStyle", true) - .Case("NSTextTab", true) - .Case("NSSimpleHorizontalTypesetter", true) - .Case("_NSCachedAttributedString", true) - .Case("NSStringDrawingTextStorage", true) - .Case("NSTextView", true) - .Case("NSSubTextStorage", true) - .Default(false); - - if (inList) - return true; - - return isClassInWeakBlacklist(cls->getSuperClass()); -} - bool trans::canApplyWeak(ASTContext &Ctx, QualType type, bool AllowOnUnknownClass) { if (!Ctx.getLangOpts().ObjCRuntimeHasWeak) @@ -88,8 +52,6 @@ bool trans::canApplyWeak(ASTContext &Ctx, QualType type, return false; // forward classes are not verifiable, therefore not safe. if (Class->isArcWeakrefUnavailable()) return false; - if (isClassInWeakBlacklist(Class)) - return false; } return true; -- 2.40.0