summaryrefslogtreecommitdiffstats
path: root/clang/tools/ccc/ccclib/Arguments.py
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-01-12 07:40:25 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-01-12 07:40:25 +0000
commit17bbcfd5a0c9c615062288ee5d6cfc427fe0cec7 (patch)
treec005aa12bede3cc98c261dbab130bc7213495040 /clang/tools/ccc/ccclib/Arguments.py
parentc11d8d4a09222d62a154d31c935918c9e4a3ffc3 (diff)
downloadbcm5719-llvm-17bbcfd5a0c9c615062288ee5d6cfc427fe0cec7.tar.gz
bcm5719-llvm-17bbcfd5a0c9c615062288ee5d6cfc427fe0cec7.zip
ccc: Implement the rest of Darwin/Assembler argument translation.
llvm-svn: 62081
Diffstat (limited to 'clang/tools/ccc/ccclib/Arguments.py')
-rw-r--r--clang/tools/ccc/ccclib/Arguments.py24
1 files changed, 21 insertions, 3 deletions
diff --git a/clang/tools/ccc/ccclib/Arguments.py b/clang/tools/ccc/ccclib/Arguments.py
index 0e8d05350da..c563f3b1fc3 100644
--- a/clang/tools/ccc/ccclib/Arguments.py
+++ b/clang/tools/ccc/ccclib/Arguments.py
@@ -146,6 +146,9 @@ class ValueArg(Arg):
def getValue(self, args):
abstract
+ def getValues(self, args):
+ return [self.getValue(args)]
+
class PositionalArg(ValueArg):
"""PositionalArg - A simple positional argument."""
@@ -262,6 +265,16 @@ class ArgList:
if arg.opt is option:
yield arg
+ def getArgs2(self, optionA, optionB):
+ """getArgs2 - Iterate over all arguments for two options, in
+ the order they were specified."""
+ # As long as getArgs is efficient, we can easily make this
+ # efficient by iterating both at once and always taking the
+ # earlier arg.
+ for arg in self.args:
+ if arg.opt in (optionA, optionB):
+ yield arg
+
def getLastArg(self, option):
return self.lastArgs.get(option)
@@ -430,8 +443,8 @@ class OptionParser:
# Blanket pass-through options.
- self.addOption(CommaJoinedOption('-Wa,'))
- self.addOption(SeparateOption('-Xassembler'))
+ self.WaOption = self.addOption(CommaJoinedOption('-Wa,'))
+ self.XassemblerOption = self.addOption(SeparateOption('-Xassembler'))
self.addOption(CommaJoinedOption('-Wp,'))
self.addOption(SeparateOption('-Xpreprocessor'))
@@ -600,8 +613,12 @@ class OptionParser:
# FIXME: Naming convention.
self.dOption = self.addOption(FlagOption('-d'))
self.addOption(JoinedOption('-d'))
- self.addOption(JoinedOption('-g'))
+ # Take care on extension, the Darwin assembler wants to add a
+ # flag for any -g* option.
+ self.gOption = self.addOption(JoinedOption('-g'))
+
+ self.f_appleKextOption = self.addOption(FlagOption('-fapple-kext'))
self.f_exceptionsOption = self.addOption(FlagOption('-fexceptions'))
self.f_objcOption = self.addOption(FlagOption('-fobjc'))
self.f_openmpOption = self.addOption(FlagOption('-fopenmp'))
@@ -619,6 +636,7 @@ class OptionParser:
self.m_64Option = self.addOption(FlagOption('-m64'))
self.m_iphoneosVersionMinOption = self.addOption(JoinedOption('-miphoneos-version-min='))
self.m_macosxVersionMinOption = self.addOption(JoinedOption('-mmacosx-version-min='))
+ self.m_kernelOption = self.addOption(FlagOption('-mkernel'))
# Ugh. Need to disambiguate our naming convetion. -m x goes to
# the linker sometimes, wheres -mxxxx is used for a variety of
OpenPOWER on IntegriCloud