]> granicus.if.org Git - clang/commitdiff
ccc: Add -Xclang option, rename -WA, to -Xanalyzer.
authorDaniel Dunbar <daniel@zuster.org>
Fri, 30 Jan 2009 00:24:16 +0000 (00:24 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Fri, 30 Jan 2009 00:24:16 +0000 (00:24 +0000)
 - -Xclang always forwards to clang

 - -Xanalyzer replaces -WA,; it seems like the cleaner mechanism and
    is more readable.

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

tools/ccc/ccclib/Arguments.py
tools/ccc/ccclib/Tools.py
tools/ccc/test/ccc/Xclang.c [new file with mode: 0644]
tools/ccc/test/ccc/analyze.c

index bb259137f5945f045c27f40f4fc11fb00211e94f..1ff76eccd9f31fc63bf84b19c8250d2f33f1178d 100644 (file)
@@ -549,7 +549,8 @@ class OptionParser:
 
         # Blanket pass-through options.
 
-        self.WAOption = self.addOption(CommaJoinedOption('-WA,'))        
+        self.XanalyzerOption = self.addOption(SeparateOption('-Xanalyzer'))
+        self.XclangOption = self.addOption(SeparateOption('-Xclang'))
 
         self.WaOption = self.addOption(CommaJoinedOption('-Wa,'))
         self.XassemblerOption = self.addOption(SeparateOption('-Xassembler'))
index 61d6a24d34296c7725df1892963eb57fa12714d6..ed138141b26a14b1a513b6f5918fd1f95caec127 100644 (file)
@@ -225,9 +225,9 @@ class Clang_CompileTool(Tool):
             
             cmd_args.append('-analyzer-output-plist')
 
-            # Add -WA, arguments when running as analyzer.
-            for arg in arglist.getArgs(arglist.parser.WAOption):
-                cmd_args.extend(arglist.renderAsInput(arg))
+            # Add -Xanalyzer arguments when running as analyzer.
+            for arg in arglist.getArgs(arglist.parser.XanalyzerOption):
+                cmd_args.extend(arglist.getValues(arg))
         else:
             # Perform argument translation for LLVM backend. This
             # takes some care in reconciling with llvm-gcc. The
@@ -325,6 +325,9 @@ class Clang_CompileTool(Tool):
         arglist.addLastArg(cmd_args, arglist.parser.f_pascalStringsOption)
         arglist.addLastArg(cmd_args, arglist.parser.f_writableStringsOption)
 
+        for arg in arglist.getArgs(arglist.parser.XclangOption):
+            cmd_args.extend(arglist.getValues(arg))
+
         if arch is not None:
             cmd_args.extend(arglist.render(arch))
 
diff --git a/tools/ccc/test/ccc/Xclang.c b/tools/ccc/test/ccc/Xclang.c
new file mode 100644 (file)
index 0000000..39da6a8
--- /dev/null
@@ -0,0 +1 @@
+// RUN: xcc -fsyntax-only -Xclang --help %s | grep 'OVERVIEW:  llvm clang cfe'
index b03c6af9c1c8740f16c9c8701423ff08a1b71467..6693c7666760905b4469aab9ae10f9ace33e0fa1 100644 (file)
@@ -1,5 +1,8 @@
 // RUN: xcc --analyze %s -o %t &&
-// RUN: grep '<string>Dereference of null pointer.</string>' %t
+// RUN: grep '<string>Dereference of null pointer.</string>' %t &&
+
+// RUN: xcc -### --analyze %s -Xanalyzer -check-that-program-halts &> %t &&
+// RUN: grep 'check-that-program-halts' %t
 
 void f(int *p) {
   if (!p)