]> granicus.if.org Git - clang/commitdiff
Add -fno-blocks support. This fixes block-no-block-def.c.
authorMike Stump <mrs@apple.com>
Fri, 30 Jan 2009 08:22:07 +0000 (08:22 +0000)
committerMike Stump <mrs@apple.com>
Fri, 30 Jan 2009 08:22:07 +0000 (08:22 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63385 91177308-0d34-0410-b5e6-96231b3b80d8

Driver/clang.cpp
tools/ccc/ccclib/Arguments.py
tools/ccc/ccclib/Tools.py

index 4e79733043f00c698c01695a0ee6cf7f31260c76..b16a8365718622799dc58a72027c77d0c8666a2a 100644 (file)
@@ -486,7 +486,10 @@ LaxVectorConversions("flax-vector-conversions",
                                     " with a different number of elements or "
                                     "different element types"));
 static llvm::cl::opt<bool>
-EnableBlocks("fblocks", llvm::cl::desc("enable the 'blocks' language feature"));
+EnableBlocks("fblocks", llvm::cl::desc("enable the 'blocks' language feature"), llvm::cl::ValueDisallowed);
+
+static llvm::cl::inverse_opt
+DisableBlocks("fno-blocks", llvm::cl::opposite_of(EnableBlocks), llvm::cl::ValueDisallowed);
 
 static llvm::cl::opt<bool>
 ObjCNonFragileABI("fobjc-nonfragile-abi", llvm::cl::desc("enable objective-c's nonfragile abi"));
@@ -614,7 +617,7 @@ static void InitializeLanguageStandard(LangOptions &Options, LangKind LK,
   Options.WritableStrings = WritableStrings;
   Options.LaxVectorConversions = LaxVectorConversions;
   Options.Exceptions = Exceptions;
-  if (EnableBlocks.getPosition())
+  if (EnableBlocks.getPosition() || DisableBlocks.getPosition())
     Options.Blocks = EnableBlocks;
 
   // Override the default runtime if the user requested it.
index 0f258cfda47f5fb71d8701c9c0c58b9eb74e5975..dcf1e70188f55bb30d1b235596acd465976cdbd1 100644 (file)
@@ -768,6 +768,11 @@ class OptionParser:
         # want to avoid passing them to gcc/cc1 (which will generally
         # not eat them), or should we let the user sort it out.
 
+        self.fblocksGroup = OptionGroup('-fblocks')
+        self.f_blocks = self.addOption(FlagOption('-fblocks', self.fblocksGroup))
+        self.f_noblocks = self.addOption(FlagOption('-fno-blocks', self.fblocksGroup))
+        # self.fblocksOption = self.addOption(JoinedOption('-fblocks', self.fblocksGroup))
+        
         self.fGroup = OptionGroup('-f')
         self.fastOption = self.addOption(FlagOption('-fast', self.fGroup))
         self.fastfOption = self.addOption(FlagOption('-fastf', self.fGroup))
index 6156684ca555ffd813239df16121092cbce8cce2..a86ab9ba9fcd5e623c9716c2cf832324ecdba3ef 100644 (file)
@@ -305,8 +305,7 @@ class Clang_CompileTool(Tool):
                 cmd_args.append('-token-cache')
                 cmd_args.append(pthPath)
 
-        # FIXME: Dehardcode this.
-        cmd_args.append('-fblocks')
+        arglist.addAllArgs(cmd_args, arglist.parser.fblocksGroup)
 
         arglist.addAllArgs(cmd_args, arglist.parser.OOption)
         arglist.addAllArgs2(cmd_args, arglist.parser.ClangWGroup, arglist.parser.pedanticGroup)
@@ -466,6 +465,7 @@ class Darwin_X86_CC1Tool(Tool):
         # ccc treats -fsyntax-only specially.
         arglist.addAllArgs2(cmd_args, arglist.parser.fGroup, 
                             arglist.parser.syntaxOnlyOption)
+        arglist.addAllArgs(cmd_args, arglist.parser.fblocksGroup)
 
         arglist.addAllArgs(cmd_args, arglist.parser.undefOption)
         if arglist.getLastArg(arglist.parser.QnOption):
@@ -538,6 +538,7 @@ class Darwin_X86_CC1Tool(Tool):
         # ccc treats -fsyntax-only specially.
         arglist.addAllArgs2(cmd_args, arglist.parser.fGroup, 
                             arglist.parser.syntaxOnlyOption)
+        arglist.addAllArgs(cmd_args, arglist.parser.fblocksGroup)
 
         if (arglist.getLastArg(arglist.parser.gGroup) and
             not arglist.getLastArg(arglist.parser.g0Option) and