[cfe-commits] r63346 - in /cfe/trunk/tools/ccc: ccclib/Driver.py ccclib/ToolChain.py ccclib/Tools.py ccclib/Types.py test/ccc/Xarch.c test/ccc/aliases.c test/ccc/darwin-hello.m test/ccc/darwin-x86-cc1.m test/ccc/hello.c test/ccc/hello.m test/ccc/
Daniel Dunbar
daniel at zuster.org
Thu Jan 29 16:07:39 PST 2009
Also,
- Replaced CCC_* environment options with CCC_ADD_ARGS <args> which
prepends a comma separated list of arguments to the argument vector.
- Daniel
On Thu, Jan 29, 2009 at 3:54 PM, Daniel Dunbar <daniel at zuster.org> wrote:
> Author: ddunbar
> Date: Thu Jan 29 17:54:06 2009
> New Revision: 63346
>
> URL: http://llvm.org/viewvc/llvm-project?rev=63346&view=rev
> Log:
> ccc: Embrace destiny as a clang compiler driver.
>
> This redoes the default mode that ccc runs in w.r.t. using clang. Now
> ccc defaults to always using clang for any task clang can
> handle. However, the following options exist to tweak this behavior:
>
> -ccc-no-clang: Don't use clang at all for compilation (still used for
> static analysis).
>
> -ccc-no-clang-cxx: Don't use clang for C++ and Objective-C++ inputs.
>
> -ccc-no-clang-cpp: Don't use clang as a preprocessor.
>
> -ccc-clang-archs <archs>: If present, only use clang for the given
> comma separated list of architectures. This only works on Darwin for
> now.
>
> Note that all -ccc options must be first on the command line.
>
> Modified:
> cfe/trunk/tools/ccc/ccclib/Driver.py
> cfe/trunk/tools/ccc/ccclib/ToolChain.py
> cfe/trunk/tools/ccc/ccclib/Tools.py
> cfe/trunk/tools/ccc/ccclib/Types.py
> cfe/trunk/tools/ccc/test/ccc/Xarch.c
> cfe/trunk/tools/ccc/test/ccc/aliases.c
> cfe/trunk/tools/ccc/test/ccc/darwin-hello.m
> cfe/trunk/tools/ccc/test/ccc/darwin-x86-cc1.m
> cfe/trunk/tools/ccc/test/ccc/hello.c
> cfe/trunk/tools/ccc/test/ccc/hello.m
> cfe/trunk/tools/ccc/test/ccc/universal-hello.c
>
> Modified: cfe/trunk/tools/ccc/ccclib/Driver.py
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/ccc/ccclib/Driver.py?rev=63346&r1=63345&r2=63346&view=diff
>
> ==============================================================================
> --- cfe/trunk/tools/ccc/ccclib/Driver.py (original)
> +++ cfe/trunk/tools/ccc/ccclib/Driver.py Thu Jan 29 17:54:06 2009
> @@ -28,9 +28,10 @@
> self.cccHostBits = self.cccHostMachine = None
> self.cccHostSystem = self.cccHostRelease = None
> self.cccCXX = False
> - self.cccClang = False
> self.cccEcho = False
> self.cccFallback = False
> + self.cccNoClang = self.cccNoClangCXX = self.cccNoClangPreprocessor = False
> + self.cccClangArchs = None
>
> # Certain options suppress the 'no input files' warning.
> self.suppressMissingInputWarning = False
> @@ -115,12 +116,10 @@
>
> # FIXME: How to handle override of host? ccc specific options?
> # Abuse -b?
> - if self.getenvBool('CCC_CLANG'):
> - self.cccClang = True
> - if self.getenvBool('CCC_ECHO'):
> - self.cccEcho = True
> - if self.getenvBool('CCC_FALLBACK'):
> - self.cccFallback = True
> + arg = os.getenv('CCC_ADD_ARGS')
> + if arg:
> + args = filter(None, map(str.strip, arg.split(',')))
> + argv = args + argv
>
> while argv and argv[0].startswith('-ccc-'):
> fullOpt,argv = argv[0],argv[1:]
> @@ -132,12 +131,20 @@
> cccPrintPhases = True
> elif opt == 'cxx':
> self.cccCXX = True
> - elif opt == 'clang':
> - self.cccClang = True
> elif opt == 'echo':
> self.cccEcho = True
> elif opt == 'fallback':
> self.cccFallback = True
> +
> + elif opt == 'no-clang':
> + self.cccNoClang = True
> + elif opt == 'no-clang-cxx':
> + self.cccNoClangCXX = True
> + elif opt == 'no-clang-cpp':
> + self.cccNoClangPreprocessor = True
> + elif opt == 'clang-archs':
> + self.cccClangArchs,argv = argv[0].split(','),argv[1:]
> +
> elif opt == 'host-bits':
> self.cccHostBits,argv = argv[0],argv[1:]
> elif opt == 'host-machine':
>
> Modified: cfe/trunk/tools/ccc/ccclib/ToolChain.py
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/ccc/ccclib/ToolChain.py?rev=63346&r1=63345&r2=63346&view=diff
>
> ==============================================================================
> --- cfe/trunk/tools/ccc/ccclib/ToolChain.py (original)
> +++ cfe/trunk/tools/ccc/ccclib/ToolChain.py Thu Jan 29 17:54:06 2009
> @@ -54,6 +54,28 @@
> else:
> return args
>
> + def shouldUseClangCompiler(self, action):
> + # If user requested no clang, or this isn't a "compile" phase,
> + # or this isn't a C family option, then don't use clang.
> + if (self.driver.cccNoClang or
> + not isinstance(action.phase, (Phases.PreprocessPhase,
> + Phases.CompilePhase,
> + Phases.SyntaxOnlyPhase,
> + Phases.EmitLLVMPhase,
> + Phases.PrecompilePhase)) or
> + action.inputs[0].type not in Types.cTypesSet):
> + return False
> +
> + if self.driver.cccNoClangPreprocessor:
> + if isinstance(action.phase, Phases.PreprocessPhase):
> + return False
> +
> + if self.driver.cccNoClangCXX:
> + if action.inputs[0].type in Types.cxxTypesSet:
> + return False
> +
> + return True
> +
> class Darwin_X86_ToolChain(ToolChain):
> def __init__(self, driver, darwinVersion, gccVersion, archName):
> super(Darwin_X86_ToolChain, self).__init__(driver)
> @@ -106,20 +128,23 @@
> major,minor,minorminor = self.darwinVersion
> return '%d.%d.%d' % (10, major-4, minor)
>
> + def shouldUseClangCompiler(self, action):
> + if not super(Darwin_X86_ToolChain, self).shouldUseClangCompiler(action):
> + return False
> +
> + # Only use clang if user didn't override archs, or this is one
> + # of the ones they provided.
> + if (not self.driver.cccClangArchs or
> + self.archName in self.driver.cccClangArchs):
> + return True
> +
> + return False
> +
> def selectTool(self, action):
> assert isinstance(action, Phases.JobAction)
>
> - if self.driver.cccClang and self.archName == 'i386':
> - if (action.inputs[0].type in (Types.CType, Types.CTypeNoPP,
> - Types.ObjCType, Types.ObjCTypeNoPP) and
> - (isinstance(action.phase, Phases.CompilePhase) or
> - isinstance(action.phase, Phases.SyntaxOnlyPhase) or
> - isinstance(action.phase, Phases.EmitLLVMPhase))):
> - return self.clangTool
> - elif (action.inputs[0].type in (Types.CHeaderType, Types.CHeaderNoPPType,
> - Types.ObjCHeaderType, Types.ObjCHeaderNoPPType) and
> - isinstance(action.phase, Phases.PrecompilePhase)):
> - return self.clangTool
> + if self.shouldUseClangCompiler(action):
> + return self.clangTool
>
> return self.toolMap[action.phase.__class__]
>
> @@ -220,17 +245,7 @@
> def selectTool(self, action):
> assert isinstance(action, Phases.JobAction)
>
> - if self.driver.cccClang:
> - if (action.inputs[0].type in (Types.CType, Types.CTypeNoPP,
> - Types.ObjCType, Types.ObjCTypeNoPP) and
> - (isinstance(action.phase, Phases.PreprocessPhase) or
> - isinstance(action.phase, Phases.CompilePhase) or
> - isinstance(action.phase, Phases.SyntaxOnlyPhase) or
> - isinstance(action.phase, Phases.EmitLLVMPhase))):
> - return self.clangTool
> - elif (action.inputs[0].type in (Types.CHeaderType, Types.CHeaderNoPPType,
> - Types.ObjCHeaderType, Types.ObjCHeaderNoPPType) and
> - isinstance(action.phase, Phases.PrecompilePhase)):
> - return self.clangTool
> + if self.shouldUseClangCompiler(action):
> + return self.clangTool
>
> return self.toolMap[action.phase.__class__]
>
> Modified: cfe/trunk/tools/ccc/ccclib/Tools.py
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/ccc/ccclib/Tools.py?rev=63346&r1=63345&r2=63346&view=diff
>
> ==============================================================================
> --- cfe/trunk/tools/ccc/ccclib/Tools.py (original)
> +++ cfe/trunk/tools/ccc/ccclib/Tools.py Thu Jan 29 17:54:06 2009
> @@ -190,6 +190,9 @@
> cmd_args.append('-emit-llvm-bc')
> elif outputType is Types.AsmTypeNoPP:
> cmd_args.append('-S')
> + elif (inputs[0].type.preprocess and
> + outputType is inputs[0].type.preprocess):
> + cmd_args.append('-E')
> elif outputType is Types.PCHType:
> # No special option needed, driven by -x. However, we
> # patch the output name to try and not conflict with gcc.
>
> Modified: cfe/trunk/tools/ccc/ccclib/Types.py
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/ccc/ccclib/Types.py?rev=63346&r1=63345&r2=63346&view=diff
>
> ==============================================================================
> --- cfe/trunk/tools/ccc/ccclib/Types.py (original)
> +++ cfe/trunk/tools/ccc/ccclib/Types.py Thu Jan 29 17:54:06 2009
> @@ -146,6 +146,22 @@
> 'treelang' : TreelangType,
> }
>
> +# Set of C family types.
> +cTypesSet = set([CType, CTypeNoPP,
> + ObjCType, ObjCTypeNoPP,
> + CXXType, CXXTypeNoPP,
> + ObjCXXType, ObjCXXTypeNoPP,
> + CHeaderType, CHeaderNoPPType,
> + ObjCHeaderType, ObjCHeaderNoPPType,
> + CXXHeaderType, CXXHeaderNoPPType,
> + ObjCXXHeaderType, ObjCXXHeaderNoPPType])
> +
> +# Set of C++ family types.
> +cxxTypesSet = set([CXXType, CXXTypeNoPP,
> + ObjCXXType, ObjCXXTypeNoPP,
> + CXXHeaderType, CXXHeaderNoPPType,
> + ObjCXXHeaderType, ObjCXXHeaderNoPPType])
> +
> # Check that the type specifier map at least matches what the types
> # believe to be true.
> assert not [name for name,type in kTypeSpecifierMap.items()
>
> Modified: cfe/trunk/tools/ccc/test/ccc/Xarch.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/ccc/test/ccc/Xarch.c?rev=63346&r1=63345&r2=63346&view=diff
>
> ==============================================================================
> --- cfe/trunk/tools/ccc/test/ccc/Xarch.c (original)
> +++ cfe/trunk/tools/ccc/test/ccc/Xarch.c Thu Jan 29 17:54:06 2009
> @@ -1,4 +1,4 @@
> -// RUN: xcc -### -fsyntax-only -Xarch_i386 -Wall -Xarch_ppc -Wunused -arch i386 -arch ppc %s &> %t &&
> +// RUN: xcc -ccc-no-clang -### -fsyntax-only -Xarch_i386 -Wall -Xarch_ppc -Wunused -arch i386 -arch ppc %s &> %t &&
> // RUN: grep '"-Xarch"' %t | count 0 &&
> // RUN: grep '"-Wall"' %t | count 1 &&
> // RUN: grep 'i686-apple' %t | grep -v '"-m64"' | count 1 &&
>
> Modified: cfe/trunk/tools/ccc/test/ccc/aliases.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/ccc/test/ccc/aliases.c?rev=63346&r1=63345&r2=63346&view=diff
>
> ==============================================================================
> --- cfe/trunk/tools/ccc/test/ccc/aliases.c (original)
> +++ cfe/trunk/tools/ccc/test/ccc/aliases.c Thu Jan 29 17:54:06 2009
> @@ -1,13 +1,13 @@
> -// RUN: xcc -### -S --all-warnings %s &> %t &&
> +// RUN: xcc -ccc-no-clang -### -S --all-warnings %s &> %t &&
> // RUN: grep -- '"-Wall"' %t &&
>
> -// RUN: xcc -### -S --ansi %s &> %t &&
> +// RUN: xcc -ccc-no-clang -### -S --ansi %s &> %t &&
> // RUN: grep -- '"-ansi"' %t &&
>
> -// RUN: xcc -### -S --assert foo --assert=foo %s &> %t &&
> +// RUN: xcc -ccc-no-clang -### -S --assert foo --assert=foo %s &> %t &&
> // RUN: grep -- '"-A" "foo" "-A" "foo"' %t &&
>
> -// RUN: xcc -### -S --classpath foo --classpath=foo %s &> %t &&
> +// RUN: xcc -ccc-no-clang -### -S --classpath foo --classpath=foo %s &> %t &&
> // RUN: grep -- '"-fclasspath=foo" "-fclasspath=foo"' %t &&
>
> // RUN: true
>
> Modified: cfe/trunk/tools/ccc/test/ccc/darwin-hello.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/ccc/test/ccc/darwin-hello.m?rev=63346&r1=63345&r2=63346&view=diff
>
> ==============================================================================
> --- cfe/trunk/tools/ccc/test/ccc/darwin-hello.m (original)
> +++ cfe/trunk/tools/ccc/test/ccc/darwin-hello.m Thu Jan 29 17:54:06 2009
> @@ -1,11 +1,11 @@
> // Check that object files compiled with -mdynamic-no-pic can be
> // linked.
> //
> -// RUN: xcc -ccc-clang -m32 -mdynamic-no-pic %s -c -o %t.o &&
> -// RUN: xcc -ccc-clang -m32 %t.o -o %t &&
> +// RUN: xcc -m32 -mdynamic-no-pic %s -c -o %t.o &&
> +// RUN: xcc -m32 %t.o -o %t &&
> // RUN: %t | grep "Hello, World" &&
> -// RUN: xcc -ccc-clang -m64 -mdynamic-no-pic %s -c -o %t.o &&
> -// RUN: xcc -ccc-clang -m64 %t.o -o %t &&
> +// RUN: xcc -m64 -mdynamic-no-pic %s -c -o %t.o &&
> +// RUN: xcc -m64 %t.o -o %t &&
> // RUN: %t | grep "Hello, World" &&
> // RUN: true
>
>
> Modified: cfe/trunk/tools/ccc/test/ccc/darwin-x86-cc1.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/ccc/test/ccc/darwin-x86-cc1.m?rev=63346&r1=63345&r2=63346&view=diff
>
> ==============================================================================
> --- cfe/trunk/tools/ccc/test/ccc/darwin-x86-cc1.m (original)
> +++ cfe/trunk/tools/ccc/test/ccc/darwin-x86-cc1.m Thu Jan 29 17:54:06 2009
> @@ -1,14 +1,14 @@
> -// RUN: xcc -ccc-host-bits 32 -ccc-host-machine i386 -ccc-host-system darwin -ccc-host-release 10.5.0 -### -x objective-c -arch i386 -fmessage-length=0 -Wno-trigraphs -fpascal-strings -fasm-blocks -Os -mdynamic-no-pic -DUSER_DEFINE_0 -fvisibility=hidden -mmacosx-version-min=10.5 -gdwarf-2 -IINCLUDE_PATH_0 -Wall -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -Wno-four-char-constants -Wno-unknown-pragmas -Wno-format-y2k -Wpointer-arith -Wreturn-type -Wwrite-strings -Wswitch -Wcast-align -Wchar-subscripts -Winline -Wnested-externs -Wint-to-pointer-cast -Wpointer-to-int-cast -Wshorten-64-to-32 -FFRAMEWORK_0 -IINCLUDE_PATH_1 -FFRAMEWORK_1 -include USER_INCLUDE_0 -c %s -o %t.out &> %t.opts &&
> +// RUN: xcc -ccc-no-clang -ccc-host-bits 32 -ccc-host-machine i386 -ccc-host-system darwin -ccc-host-release 10.5.0 -### -x objective-c -arch i386 -fmessage-length=0 -Wno-trigraphs -fpascal-strings -fasm-blocks -Os -mdynamic-no-pic -DUSER_DEFINE_0 -fvisibility=hidden -mmacosx-version-min=10.5 -gdwarf-2 -IINCLUDE_PATH_0 -Wall -Wextra -Wno-missing-field-initializers -Wno-unused-parameter -Wno-four-char-constants -Wno-unknown-pragmas -Wno-format-y2k -Wpointer-arith -Wreturn-type -Wwrite-strings -Wswitch -Wcast-align -Wchar-subscripts -Winline -Wnested-externs -Wint-to-pointer-cast -Wpointer-to-int-cast -Wshorten-64-to-32 -FFRAMEWORK_0 -IINCLUDE_PATH_1 -FFRAMEWORK_1 -include USER_INCLUDE_0 -c %s -o %t.out &> %t.opts &&
> // RUN: grep ' "/usr/libexec/gcc/i686-apple-darwin10/4.2.1/cc1obj" "-quiet" "-IINCLUDE_PATH_0" "-FFRAMEWORK_0" "-IINCLUDE_PATH_1" "-FFRAMEWORK_1" "-D__DYNAMIC__" "-DUSER_DEFINE_0" "-include" "USER_INCLUDE_0" ".*" "-quiet" "-dumpbase" "darwin-x86-cc1.m" "-mpascal-strings" "-mdynamic-no-pic" "-mmacosx-version-min=10.5" "-mtune=core2" "-auxbase-strip" ".*" "-gdwarf-2" "-Os" "-Wno-trigraphs" "-Wall" "-Wextra" "-Wno-missing-field-initializers" "-Wno-unused-parameter" "-Wno-four-char-constants" "-Wno-unknown-pragmas" "-Wno-format-y2k" "-Wpointer-arith" "-Wreturn-type" "-Wwrite-strings" "-Wswitch" "-Wcast-align" "-Wchar-subscripts" "-Winline" "-Wnested-externs" "-Wint-to-pointer-cast" "-Wpointer-to-int-cast" "-Wshorten-64-to-32" "-fmessage-length=0" "-fasm-blocks" "-fvisibility=hidden" "-o"' %t.opts &&
> // RUN: grep ' "/usr/libexec/gcc/i686-apple-darwin10/4.2.1/as" "-arch" "i386" "-force_cpusubtype_ALL" "-o"' %t.opts &&
>
> -// RUN: xcc -ccc-host-bits 32 -ccc-host-machine i386 -ccc-host-system darwin -ccc-host-release 10.5.0 -### -v -E -dM -arch i386 -xobjective-c -c %s &> %t.opts &&
> +// RUN: xcc -ccc-no-clang -ccc-host-bits 32 -ccc-host-machine i386 -ccc-host-system darwin -ccc-host-release 10.5.0 -### -v -E -dM -arch i386 -xobjective-c -c %s &> %t.opts &&
> // RUN: grep ' "/usr/libexec/gcc/i686-apple-darwin10/4.2.1/cc1obj" "-E" "-quiet" "-v" "-D__DYNAMIC__" ".*" "-fPIC" "-mmacosx-version-min=10.6.5" "-mtune=core2" "-dM"' %t.opts &&
>
> -// RUN: xcc -ccc-host-bits 32 -ccc-host-machine i386 -ccc-host-system darwin -ccc-host-release 10.5.0 -### -m32 -S -x cpp-output %s &> %t.opts &&
> +// RUN: xcc -ccc-no-clang -ccc-host-bits 32 -ccc-host-machine i386 -ccc-host-system darwin -ccc-host-release 10.5.0 -### -m32 -S -x cpp-output %s &> %t.opts &&
> // RUN: grep ' "/usr/libexec/gcc/i686-apple-darwin10/4.2.1/cc1" "-fpreprocessed" ".*darwin-x86-cc1.m" "-fPIC" "-quiet" "-dumpbase" "darwin-x86-cc1.m" "-mmacosx-version-min=10.6.5" "-m32" "-mtune=core2" "-auxbase" "darwin-x86-cc1" "-o" ".*"' %t.opts &&
>
> -// RUN: xcc -ccc-host-bits 32 -ccc-host-machine i386 -ccc-host-system darwin -ccc-host-release 10.5.0 -### -x objective-c-header %s -o /tmp/x.gch &> %t.opts &&
> +// RUN: xcc -ccc-no-clang -ccc-host-bits 32 -ccc-host-machine i386 -ccc-host-system darwin -ccc-host-release 10.5.0 -### -x objective-c-header %s -o /tmp/x.gch &> %t.opts &&
> // RUN: grep ' "/usr/libexec/gcc/i686-apple-darwin10/4.2.1/cc1obj" "-quiet" "-D__DYNAMIC__" ".*darwin-x86-cc1.m" "-fPIC" "-quiet" "-dumpbase" "darwin-x86-cc1.m" "-mmacosx-version-min=10.6.5" "-mtune=core2" "-auxbase" ".*" "-o" "/dev/null" "--output-pch=" "/tmp/x.gch"' %t.opts &&
>
> // RUN: true
>
> Modified: cfe/trunk/tools/ccc/test/ccc/hello.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/ccc/test/ccc/hello.c?rev=63346&r1=63345&r2=63346&view=diff
>
> ==============================================================================
> --- cfe/trunk/tools/ccc/test/ccc/hello.c (original)
> +++ cfe/trunk/tools/ccc/test/ccc/hello.c Thu Jan 29 17:54:06 2009
> @@ -1,8 +1,8 @@
> -// RUN: xcc %s -o %t &&
> +// RUN: xcc -ccc-no-clang %s -o %t &&
> // RUN: %t | grep "Hello, World" &&
> -// RUN: xcc %s -o %t -pipe &&
> +// RUN: xcc -ccc-no-clang %s -o %t -pipe &&
> // RUN: %t | grep "Hello, World" &&
> -// RUN: xcc -ccc-clang %s -o %t &&
> +// RUN: xcc %s -o %t &&
> // RUN: %t | grep "Hello, World"
>
> int main() {
>
> Modified: cfe/trunk/tools/ccc/test/ccc/hello.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/ccc/test/ccc/hello.m?rev=63346&r1=63345&r2=63346&view=diff
>
> ==============================================================================
> --- cfe/trunk/tools/ccc/test/ccc/hello.m (original)
> +++ cfe/trunk/tools/ccc/test/ccc/hello.m Thu Jan 29 17:54:06 2009
> @@ -1,6 +1,6 @@
> -// RUN: xcc %s -o %t &&
> +// RUN: xcc -ccc-no-clang %s -o %t &&
> // RUN: %t | grep "Hello, World" &&
> -// RUN: xcc -ccc-clang %s -o %t &&
> +// RUN: xcc %s -o %t &&
> // RUN: %t | grep "Hello, World"
>
> int main() {
>
> Modified: cfe/trunk/tools/ccc/test/ccc/universal-hello.c
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/ccc/test/ccc/universal-hello.c?rev=63346&r1=63345&r2=63346&view=diff
>
> ==============================================================================
> --- cfe/trunk/tools/ccc/test/ccc/universal-hello.c (original)
> +++ cfe/trunk/tools/ccc/test/ccc/universal-hello.c Thu Jan 29 17:54:06 2009
> @@ -1,7 +1,7 @@
> -// RUN: xcc -arch ppc -arch i386 -arch x86_64 %s -o %t &&
> +// RUN: xcc -ccc-no-clang -arch ppc -arch i386 -arch x86_64 %s -o %t &&
> // RUN: %t | grep "Hello, World" &&
>
> -// RUN: xcc -pipe -arch ppc -arch i386 -arch x86_64 %s -o %t &&
> +// RUN: xcc -ccc-no-clang -pipe -arch ppc -arch i386 -arch x86_64 %s -o %t &&
> // RUN: %t | grep "Hello, World" &&
>
> // Check that multiple archs are handled properly.
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
More information about the cfe-commits
mailing list