ccc: Translate -O to -O1 for clang, and only pass last -O option.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63816 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Daniel Dunbar 2009-02-05 02:43:38 +00:00
Родитель a6f80ef997
Коммит c1212a39e0
2 изменённых файлов: 12 добавлений и 1 удалений

Просмотреть файл

@ -307,7 +307,14 @@ class Clang_CompileTool(Tool):
arglist.addAllArgs(cmd_args, arglist.parser.fblocksGroup)
arglist.addAllArgs(cmd_args, arglist.parser.OOption)
# Manually translate -O to -O1; let clang reject others.
arg = arglist.getLastArg(arglist.parser.OOption)
if arg:
if arglist.getValue(arg) == '':
cmd_args.append('-O1')
else:
cmd_args.extend(arglist.render(arg))
arglist.addAllArgs2(cmd_args, arglist.parser.ClangWGroup, arglist.parser.pedanticGroup)
arglist.addLastArg(cmd_args, arglist.parser.wOption)
arglist.addAllArgs3(cmd_args, arglist.parser.stdOption, arglist.parser.ansiOption, arglist.parser.trigraphsOption)

4
tools/ccc/test/ccc/O.c Normal file
Просмотреть файл

@ -0,0 +1,4 @@
// Just check that clang accepts these.
// RUN: xcc -fsyntax-only -O1 -O2 %s &&
// RUN: xcc -fsyntax-only -O %s