From bcf77dcb9aec09378423e38879487a58dbfe1077 Mon Sep 17 00:00:00 2001
From: Mikhail Glushenkov <foldr@codedgers.com>
Date: Tue, 25 Nov 2008 21:35:20 +0000
Subject: [PATCH] Make -fsyntax-only, -include and -emit-llvm work for C++ and
 Objective-C/C++.

llvm-svn: 60047
---
 include/llvm/CompilerDriver/Tools.td | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/include/llvm/CompilerDriver/Tools.td b/include/llvm/CompilerDriver/Tools.td
index fa2cd33ffbd..930092d8dfb 100644
--- a/include/llvm/CompilerDriver/Tools.td
+++ b/include/llvm/CompilerDriver/Tools.td
@@ -22,7 +22,7 @@ def llvm_gcc_c : Tool<
                     (default),
                     "llvm-gcc -E -x c++ $INFILE"),
             (switch_on "fsyntax-only"),
-              "llvm-gcc -c -x c $INFILE",
+              "llvm-gcc -fsyntax-only -x c $INFILE",
             (default),
               "llvm-gcc -c -x c $INFILE -o $OUTFILE -emit-llvm")),
  (switch_option "emit-llvm", (stop_compilation),
@@ -46,9 +46,14 @@ def llvm_gcc_cpp : Tool<
                     "llvm-g++ -E -x c++ $INFILE -o $OUTFILE",
                     (default),
                     "llvm-g++ -E -x c++ $INFILE"),
+            (switch_on "fsyntax-only"),
+              "llvm-g++ -fsyntax-only -x c++ $INFILE",
             (default),
               "llvm-g++ -c -x c++ $INFILE -o $OUTFILE -emit-llvm")),
+ (switch_option "emit-llvm", (stop_compilation)),
  (switch_option "E", (stop_compilation)),
+ (switch_option "fsyntax-only", (stop_compilation)),
+ (parameter_list_option "include", (forward)),
  (sink)
 ]>;
 
@@ -62,9 +67,14 @@ def llvm_gcc_m : Tool<
                     "llvm-gcc -E -x objective-c $INFILE -o $OUTFILE",
                     (default),
                     "llvm-gcc -E -x objective-c $INFILE"),
+            (switch_on "fsyntax-only"),
+              "llvm-gcc -fsyntax-only -x objective-c $INFILE",
             (default),
               "llvm-gcc -c -x objective-c $INFILE -o $OUTFILE -emit-llvm")),
+ (switch_option "emit-llvm", (stop_compilation)),
  (switch_option "E", (stop_compilation)),
+ (switch_option "fsyntax-only", (stop_compilation)),
+ (parameter_list_option "include", (forward)),
  (sink)
 ]>;
 
@@ -78,9 +88,14 @@ def llvm_gcc_mxx : Tool<
                     "llvm-gcc -E -x objective-c++ $INFILE -o $OUTFILE",
                     (default),
                     "llvm-gcc -E -x objective-c++ $INFILE"),
+            (switch_on "fsyntax-only"),
+              "llvm-gcc -fsyntax-only -x objective-c++ $INFILE",
             (default),
               "llvm-gcc -c -x objective-c++ $INFILE -o $OUTFILE -emit-llvm")),
+ (switch_option "emit-llvm", (stop_compilation)),
  (switch_option "E", (stop_compilation)),
+ (switch_option "fsyntax-only", (stop_compilation)),
+ (parameter_list_option "include", (forward)),
  (sink)
 ]>;