From: Argyrios Kyrtzidis Date: Thu, 14 Nov 2013 16:33:20 +0000 (+0000) Subject: [objcmt] -objcmt-atomic-property & -objcmt-ns-nonatomic-iosonly are companion flags. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9887f260a8d59d47ed31b5fc689909b464ffc18f;p=clang [objcmt] -objcmt-atomic-property & -objcmt-ns-nonatomic-iosonly are companion flags. Ignore them when determining if some transformation was enabled. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194709 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/ARCMigrate/ObjCMT.cpp b/lib/ARCMigrate/ObjCMT.cpp index b10f060d5f..23d61cf27f 100644 --- a/lib/ARCMigrate/ObjCMT.cpp +++ b/lib/ARCMigrate/ObjCMT.cpp @@ -1710,11 +1710,15 @@ ASTConsumer *MigrateSourceAction::CreateASTConsumer(CompilerInstance &CI, PPConditionalDirectiveRecord * PPRec = new PPConditionalDirectiveRecord(CI.getSourceManager()); unsigned ObjCMTAction = CI.getFrontendOpts().ObjCMTAction; - if (ObjCMTAction == FrontendOptions::ObjCMT_None) { + unsigned ObjCMTOpts = ObjCMTAction; + // These are companion flags, they do not enable transformations. + ObjCMTOpts &= ~(FrontendOptions::ObjCMT_AtomicProperty | + FrontendOptions::ObjCMT_NsAtomicIOSOnlyProperty); + if (ObjCMTOpts == FrontendOptions::ObjCMT_None) { // If no specific option was given, enable literals+subscripting transforms // by default. - ObjCMTAction = FrontendOptions::ObjCMT_Literals | - FrontendOptions::ObjCMT_Subscripting; + ObjCMTAction |= FrontendOptions::ObjCMT_Literals | + FrontendOptions::ObjCMT_Subscripting; } CI.getPreprocessor().addPPCallbacks(PPRec); return new ObjCMigrateASTConsumer(CI.getFrontendOpts().OutputFile,