From 8ff5b28d6efcffe2251e77634c7edf83a4763344 Mon Sep 17 00:00:00 2001
From: Daniel Dunbar <daniel@zuster.org>
Date: Fri, 11 Dec 2009 23:00:49 +0000
Subject: [PATCH] Driver: Switch to using "clang" "-cc1" instead of "clang-cc".

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91174 91177308-0d34-0410-b5e6-96231b3b80d8
---
 include/clang/Driver/CC1Options.td | 4 ++++
 lib/Driver/Tools.cpp               | 9 +++++++--
 test/Driver/clang-translation.c    | 9 ++++++---
 test/Driver/cxx-pth.cpp            | 4 ++--
 test/Driver/dragonfly.c            | 2 +-
 test/Driver/freebsd.c              | 2 +-
 test/Driver/hello.c                | 2 +-
 test/Driver/openbsd.c              | 2 +-
 test/Driver/pth.c                  | 4 ++--
 9 files changed, 25 insertions(+), 13 deletions(-)

diff --git a/include/clang/Driver/CC1Options.td b/include/clang/Driver/CC1Options.td
index 9bf67d4c39d..a024a7c0403 100644
--- a/include/clang/Driver/CC1Options.td
+++ b/include/clang/Driver/CC1Options.td
@@ -187,6 +187,10 @@ def verify : Flag<"-verify">,
 // Frontend Options
 //===----------------------------------------------------------------------===//
 
+// This isn't normally used, it is just here so we can parse a
+// CompilerInvocation out of a driver-derived argument vector.
+def cc1 : Flag<"-cc1">;
+
 def code_completion_at : Separate<"-code-completion-at">,
   MetaVarName<"<file>:<line>:<column>">,
   HelpText<"Dump code-completion information at a location">;
diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp
index 983018b4a60..724a3b4a611 100644
--- a/lib/Driver/Tools.cpp
+++ b/lib/Driver/Tools.cpp
@@ -593,6 +593,11 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
 
   assert(Inputs.size() == 1 && "Unable to handle multiple inputs.");
 
+  // Invoke ourselves in -cc1 mode.
+  //
+  // FIXME: Implement custom jobs for internal actions.
+  CmdArgs.push_back("-cc1");
+
   // Add the "effective" target triple.
   CmdArgs.push_back("-triple");
   std::string TripleStr = getEffectiveClangTriple(D, getToolChain(), Args);
@@ -1037,7 +1042,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
 
   // Default to -fno-builtin-str{cat,cpy} on Darwin for ARM.
   //
-  // FIXME: This is disabled until clang-cc supports -fno-builtin-foo. PR4941.
+  // FIXME: This is disabled until clang -cc1 supports -fno-builtin-foo. PR4941.
 #if 0
   if (getToolChain().getTriple().getOS() == llvm::Triple::Darwin &&
       (getToolChain().getTriple().getArch() == llvm::Triple::arm ||
@@ -1087,7 +1092,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
   Args.AddAllArgs(CmdArgs, options::OPT_undef);
 
   const char *Exec =
-    Args.MakeArgString(getToolChain().GetProgramPath(C, "clang-cc"));
+    Args.MakeArgString(getToolChain().GetProgramPath(C, "clang"));
   Dest.addCommand(new Command(JA, *this, Exec, CmdArgs));
 
   // Explicitly warn that these options are unsupported, even though
diff --git a/test/Driver/clang-translation.c b/test/Driver/clang-translation.c
index f4f0f9f0213..762ebb7944b 100644
--- a/test/Driver/clang-translation.c
+++ b/test/Driver/clang-translation.c
@@ -17,7 +17,8 @@
 // RUN: clang -ccc-host-triple x86_64-apple-darwin10 -### -S %s 2> %t.log \
 // RUN:   -arch armv7
 // RUN: FileCheck -check-prefix=ARMV7_DEFAULT %s < %t.log
-// ARMV7_DEFAULT: clang-cc
+// ARMV7_DEFAULT: clang
+// ARMV7_DEFAULT: "-cc1"
 // ARMV7_DEFAULT-NOT: "-msoft-float"
 // ARMV7_DEFAULT: "-mfloat-abi" "soft"
 // ARMV7_DEFAULT-NOT: "-msoft-float"
@@ -26,7 +27,8 @@
 // RUN: clang -ccc-host-triple x86_64-apple-darwin10 -### -S %s 2> %t.log \
 // RUN:   -arch armv7 -msoft-float
 // RUN: FileCheck -check-prefix=ARMV7_SOFTFLOAT %s < %t.log
-// ARMV7_SOFTFLOAT: clang-cc
+// ARMV7_SOFTFLOAT: clang
+// ARMV7_SOFTFLOAT: "-cc1"
 // ARMV7_SOFTFLOAT: "-msoft-float"
 // ARMV7_SOFTFLOAT: "-mfloat-abi" "soft"
 // ARMV7_SOFTFLOAT: "-x" "c"
@@ -34,7 +36,8 @@
 // RUN: clang -ccc-host-triple x86_64-apple-darwin10 -### -S %s 2> %t.log \
 // RUN:   -arch armv7 -mhard-float
 // RUN: FileCheck -check-prefix=ARMV7_HARDFLOAT %s < %t.log
-// ARMV7_HARDFLOAT: clang-cc
+// ARMV7_HARDFLOAT: clang
+// ARMV7_HARDFLOAT: "-cc1"
 // ARMV7_HARDFLOAT-NOT: "-msoft-float"
 // ARMV7_HARDFLOAT: "-mfloat-abi" "hard"
 // ARMV7_HARDFLOAT-NOT: "-msoft-float"
diff --git a/test/Driver/cxx-pth.cpp b/test/Driver/cxx-pth.cpp
index 508696ade88..e5b69c118fb 100644
--- a/test/Driver/cxx-pth.cpp
+++ b/test/Driver/cxx-pth.cpp
@@ -3,10 +3,10 @@
 // RUN: clang -x c++-header %s -### 2> %t.log
 // RUN: FileCheck -check-prefix EMIT -input-file %t.log %s
 
-// EMIT: "{{.*}}/clang-cc{{.*}}" {{.*}} "-emit-pth" "{{.*}}.cpp.gch" "-x" "c++-header" "{{.*}}.cpp"
+// EMIT: "{{.*}}/clang{{.*}}" {{.*}} "-emit-pth" "{{.*}}.cpp.gch" "-x" "c++-header" "{{.*}}.cpp"
 
 // RUN: touch %t.h.gch
 // RUN: clang -E -include %t.h %s -### 2> %t.log
 // RUN: FileCheck -check-prefix USE -input-file %t.log %s
 
-// USE: "{{.*}}/clang-cc{{.*}}" {{.*}}"-include-pth" "{{.*}}.h.gch" {{.*}}"-x" "c++" "{{.*}}.cpp"
+// USE: "{{.*}}/clang{{.*}}" {{.*}}"-include-pth" "{{.*}}.h.gch" {{.*}}"-x" "c++" "{{.*}}.cpp"
diff --git a/test/Driver/dragonfly.c b/test/Driver/dragonfly.c
index 40f12e4d7f8..2eb3b1808ee 100644
--- a/test/Driver/dragonfly.c
+++ b/test/Driver/dragonfly.c
@@ -1,7 +1,7 @@
 // RUN: clang -ccc-host-triple amd64-pc-dragonfly %s -### 2> %t.log
 // RUN: FileCheck -input-file %t.log %s
 
-// CHECK: clang-cc{{.*}}" "-triple" "amd64-pc-dragonfly"
+// CHECK: clang{{.*}}" "-cc1" "-triple" "amd64-pc-dragonfly"
 // CHECK: as{{.*}}" "-o" "{{.*}}.o" "{{.*}}.s
 // CHECK: ld{{.*}}" "-dynamic-linker" "{{.*}}ld-elf.{{.*}}" "-o" "a.out" "{{.*}}crt1.o" "{{.*}}crti.o" "{{.*}}crtbegin.o" "{{.*}}.o" "-L{{.*}}/gcc{{.*}}" {{.*}} "-lc" "-lgcc" "{{.*}}crtend.o" "{{.*}}crtn.o"
 
diff --git a/test/Driver/freebsd.c b/test/Driver/freebsd.c
index 8c03bbcfe3d..9700540f46b 100644
--- a/test/Driver/freebsd.c
+++ b/test/Driver/freebsd.c
@@ -2,6 +2,6 @@
 // RUN: cat %t.log
 // RUN: FileCheck -input-file %t.log %s
 
-// CHECK: clang-cc{{.*}}" "-triple" "powerpc64-pc-freebsd8"
+// CHECK: clang{{.*}}" "-cc1" "-triple" "powerpc64-pc-freebsd8"
 // CHECK: as{{.*}}" "-o" "{{.*}}.o" "{{.*}}.s
 // CHECK: ld{{.*}}" "--eh-frame-hdr" "-dynamic-linker" "{{.*}}ld-elf{{.*}}" "-o" "a.out" "{{.*}}crt1.o" "{{.*}}crti.o" "{{.*}}crtbegin.o" "{{.*}}.o" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "-lc" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "{{.*}}crtend.o" "{{.*}}crtn.o"
diff --git a/test/Driver/hello.c b/test/Driver/hello.c
index 0df1341e4ea..e1b6f1a0fd7 100644
--- a/test/Driver/hello.c
+++ b/test/Driver/hello.c
@@ -1,7 +1,7 @@
 // RUN: clang -ccc-echo -o %t %s 2> %t.log
 
 // Make sure we used clang.
-// RUN: grep 'clang-cc" .*hello.c' %t.log
+// RUN: grep 'clang" -cc1 .*hello.c' %t.log
 
 // RUN: %t > %t.out
 // RUN: grep "I'm a little driver, short and stout." %t.out
diff --git a/test/Driver/openbsd.c b/test/Driver/openbsd.c
index 8b0706b28fd..97ba30bb69c 100644
--- a/test/Driver/openbsd.c
+++ b/test/Driver/openbsd.c
@@ -1,6 +1,6 @@
 // RUN: clang -ccc-clang-archs "" -ccc-host-triple i686-pc-openbsd %s -### 2> %t.log
 // RUN: FileCheck -input-file %t.log %s
 
-// CHECK: clang-cc{{.*}}" "-triple" "i686-pc-openbsd"
+// CHECK: clang{{.*}}" "-cc1" "-triple" "i686-pc-openbsd"
 // CHECK: as{{.*}}" "-o" "{{.*}}.o" "{{.*}}.s
 // CHECK: ld{{.*}}" "-e" "__start" "--eh-frame-hdr" "-Bdynamic" "-dynamic-linker" "{{.*}}ld.so" "-o" "a.out" "{{.*}}crt0.o" "{{.*}}crtbegin.o" "{{.*}}.o" "-lgcc" "-lc" "-lgcc" "{{.*}}crtend.o"
diff --git a/test/Driver/pth.c b/test/Driver/pth.c
index 8e8b2dda32b..938675a900d 100644
--- a/test/Driver/pth.c
+++ b/test/Driver/pth.c
@@ -3,10 +3,10 @@
 // RUN: clang -ccc-pch-is-pth -x c-header %s -o %t.h.pth -### 2> %t.log
 // RUN: FileCheck -check-prefix CHECK1 -input-file %t.log %s
 
-// CHECK1: "{{.*}}/clang-cc{{.*}}" {{.*}} "-o" "{{.*}}.h.pth" "-x" "c-header" "{{.*}}pth.c"
+// CHECK1: "{{.*}}/clang{{.*}}" "-cc1" {{.*}} "-o" "{{.*}}.h.pth" "-x" "c-header" "{{.*}}pth.c"
 
 // RUN: touch %t.h.pth
 // RUN: clang -ccc-pch-is-pth -E -include %t.h %s -### 2> %t.log
 // RUN: FileCheck -check-prefix CHECK2 -input-file %t.log %s
 
-// CHECK2: "{{.*}}/clang-cc{{.*}}" {{.*}}"-include-pth" "{{.*}}.h.pth" {{.*}}"-x" "c" "{{.*}}pth.c"
+// CHECK2: "{{.*}}/clang{{.*}}" "-cc1" {{.*}}"-include-pth" "{{.*}}.h.pth" {{.*}}"-x" "c" "{{.*}}pth.c"
-- 
GitLab