From 8b70028d42752bec785d67e595d2feffb3590b8d Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Fri, 15 Jul 2016 18:11:27 +0000 Subject: [PATCH] [objcmt] Don't add an #import of Foundation unnecessarily, if the NS_ENUM macro is already defined. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@275589 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/ARCMigrate/ObjCMT.cpp | 5 +++++ test/ARCMT/objcmt-ns-macros.m.result | 3 --- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/ARCMigrate/ObjCMT.cpp b/lib/ARCMigrate/ObjCMT.cpp index f29adb612c..940a9c95f2 100644 --- a/lib/ARCMigrate/ObjCMT.cpp +++ b/lib/ARCMigrate/ObjCMT.cpp @@ -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"); diff --git a/test/ARCMT/objcmt-ns-macros.m.result b/test/ARCMT/objcmt-ns-macros.m.result index bcc865ce0f..c4c40300ee 100644 --- a/test/ARCMT/objcmt-ns-macros.m.result +++ b/test/ARCMT/objcmt-ns-macros.m.result @@ -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 -#endif typedef NS_ENUM(NSInteger, wibble) { blah, blarg -- 2.40.0