]> granicus.if.org Git - clang/commitdiff
[objcmt] Don't add an #import of Foundation unnecessarily, if the NS_ENUM macro is...
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Fri, 15 Jul 2016 18:11:27 +0000 (18:11 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Fri, 15 Jul 2016 18:11:27 +0000 (18:11 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@275589 91177308-0d34-0410-b5e6-96231b3b80d8

lib/ARCMigrate/ObjCMT.cpp
test/ARCMT/objcmt-ns-macros.m.result

index f29adb612c233ef31d0a9f89224f48d5135c9e22..940a9c95f28627bce110dc5ce19a2e3156c80601 100644 (file)
@@ -1737,6 +1737,11 @@ bool ObjCMigrateASTConsumer::InsertFoundation(ASTContext &Ctx,
     return true;
   if (Loc.isInvalid())
     return false;
+  auto *nsEnumId = &Ctx.Idents.get("NS_ENUM");
+  if (PP.getMacroDefinitionAtLoc(nsEnumId, Loc)) {
+    FoundationIncluded = true;
+    return true;
+  }
   edit::Commit commit(*Editor);
   if (Ctx.getLangOpts().Modules)
     commit.insert(Loc, "#ifndef NS_ENUM\n@import Foundation;\n#endif\n");
index bcc865ce0f667957b4ad38cab8caf5af0142a6ca..c4c40300ee684b052a796c340bee969f51871ec6 100644 (file)
@@ -19,9 +19,6 @@ typedef unsigned long long uint64_t;
 #define NS_OPTIONS(_type, _name) enum _name : _type _name; enum _name : _type
 #define DEPRECATED  __attribute__((deprecated))
 
-#ifndef NS_ENUM
-#import <Foundation/Foundation.h>
-#endif
 typedef NS_ENUM(NSInteger, wibble) {
   blah,
   blarg