]> granicus.if.org Git - clang/commitdiff
[arcmt] The hard-coded list of weak-incompatible classes is no longer necessary.
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Fri, 16 Mar 2012 00:21:22 +0000 (00:21 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Fri, 16 Mar 2012 00:21:22 +0000 (00:21 +0000)
rdar://10673816

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

lib/ARCMigrate/Transforms.cpp

index 170b7c8e15af84af8fb556cedb1050b322c7eaa5..70ef6216d66bc6a42e86f9345c58d68a9586ffad 100644 (file)
@@ -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<bool>(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;