aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/clang/Driver/Option.h24
-rw-r--r--lib/Driver/Option.cpp20
2 files changed, 23 insertions, 21 deletions
diff --git a/include/clang/Driver/Option.h b/include/clang/Driver/Option.h
index dea44002db..47e249c57c 100644
--- a/include/clang/Driver/Option.h
+++ b/include/clang/Driver/Option.h
@@ -94,7 +94,7 @@ namespace driver {
/// argument.
///
/// May issue a missing argument error.
- virtual Arg *accept(ArgList &Args, unsigned Index) const = 0;
+ virtual Arg *accept(const ArgList &Args, unsigned &Index) const = 0;
void dump() const;
@@ -107,7 +107,7 @@ namespace driver {
public:
OptionGroup(const char *Name, const OptionGroup *Group);
- virtual Arg *accept(ArgList &Args, unsigned Index) const;
+ virtual Arg *accept(const ArgList &Args, unsigned &Index) const;
static bool classof(const Option *O) {
return O->getKind() == Option::GroupClass;
@@ -122,7 +122,7 @@ namespace driver {
public:
InputOption();
- virtual Arg *accept(ArgList &Args, unsigned Index) const;
+ virtual Arg *accept(const ArgList &Args, unsigned &Index) const;
static bool classof(const Option *O) {
return O->getKind() == Option::InputClass;
@@ -135,7 +135,7 @@ namespace driver {
public:
UnknownOption();
- virtual Arg *accept(ArgList &Args, unsigned Index) const;
+ virtual Arg *accept(const ArgList &Args, unsigned &Index) const;
static bool classof(const Option *O) {
return O->getKind() == Option::UnknownClass;
@@ -149,7 +149,7 @@ namespace driver {
public:
FlagOption(const char *Name, const OptionGroup *Group, const Option *Alias);
- virtual Arg *accept(ArgList &Args, unsigned Index) const;
+ virtual Arg *accept(const ArgList &Args, unsigned &Index) const;
static bool classof(const Option *O) {
return O->getKind() == Option::FlagClass;
@@ -162,7 +162,7 @@ namespace driver {
JoinedOption(const char *Name, const OptionGroup *Group,
const Option *Alias);
- virtual Arg *accept(ArgList &Args, unsigned Index) const;
+ virtual Arg *accept(const ArgList &Args, unsigned &Index) const;
static bool classof(const Option *O) {
return O->getKind() == Option::JoinedClass;
@@ -175,7 +175,7 @@ namespace driver {
SeparateOption(const char *Name, const OptionGroup *Group,
const Option *Alias);
- virtual Arg *accept(ArgList &Args, unsigned Index) const;
+ virtual Arg *accept(const ArgList &Args, unsigned &Index) const;
static bool classof(const Option *O) {
return O->getKind() == Option::SeparateClass;
@@ -188,7 +188,7 @@ namespace driver {
CommaJoinedOption(const char *Name, const OptionGroup *Group,
const Option *Alias);
- virtual Arg *accept(ArgList &Args, unsigned Index) const;
+ virtual Arg *accept(const ArgList &Args, unsigned &Index) const;
static bool classof(const Option *O) {
return O->getKind() == Option::CommaJoinedClass;
@@ -196,6 +196,8 @@ namespace driver {
static bool classof(const CommaJoinedOption *) { return true; }
};
+ // FIXME: Fold MultiArgOption into SeparateOption?
+
/// MultiArgOption - An option which takes multiple arguments (these
/// are always separate arguments).
class MultiArgOption : public Option {
@@ -207,7 +209,7 @@ namespace driver {
unsigned getNumArgs() const { return NumArgs; }
- virtual Arg *accept(ArgList &Args, unsigned Index) const;
+ virtual Arg *accept(const ArgList &Args, unsigned &Index) const;
static bool classof(const Option *O) {
return O->getKind() == Option::MultiArgClass;
@@ -222,7 +224,7 @@ namespace driver {
JoinedOrSeparateOption(const char *Name, const OptionGroup *Group,
const Option *Alias);
- virtual Arg *accept(ArgList &Args, unsigned Index) const;
+ virtual Arg *accept(const ArgList &Args, unsigned &Index) const;
static bool classof(const Option *O) {
return O->getKind() == Option::JoinedOrSeparateClass;
@@ -237,7 +239,7 @@ namespace driver {
JoinedAndSeparateOption(const char *Name, const OptionGroup *Group,
const Option *Alias);
- virtual Arg *accept(ArgList &Args, unsigned Index) const;
+ virtual Arg *accept(const ArgList &Args, unsigned &Index) const;
static bool classof(const Option *O) {
return O->getKind() == Option::JoinedAndSeparateClass;
diff --git a/lib/Driver/Option.cpp b/lib/Driver/Option.cpp
index ce31b8e694..cf5c3eb0fa 100644
--- a/lib/Driver/Option.cpp
+++ b/lib/Driver/Option.cpp
@@ -83,7 +83,7 @@ OptionGroup::OptionGroup(const char *Name, const OptionGroup *Group)
: Option(Option::GroupClass, Name, Group, 0) {
}
-Arg *OptionGroup::accept(ArgList &Args, unsigned Index) const {
+Arg *OptionGroup::accept(const ArgList &Args, unsigned &Index) const {
assert(0 && "FIXME");
return 0;
}
@@ -92,7 +92,7 @@ InputOption::InputOption()
: Option(Option::InputClass, "<input>", 0, 0) {
}
-Arg *InputOption::accept(ArgList &Args, unsigned Index) const {
+Arg *InputOption::accept(const ArgList &Args, unsigned &Index) const {
assert(0 && "FIXME");
return 0;
}
@@ -101,7 +101,7 @@ UnknownOption::UnknownOption()
: Option(Option::UnknownClass, "<unknown>", 0, 0) {
}
-Arg *UnknownOption::accept(ArgList &Args, unsigned Index) const {
+Arg *UnknownOption::accept(const ArgList &Args, unsigned &Index) const {
assert(0 && "FIXME");
return 0;
}
@@ -111,7 +111,7 @@ FlagOption::FlagOption(const char *Name, const OptionGroup *Group,
: Option(Option::FlagClass, Name, Group, Alias) {
}
-Arg *FlagOption::accept(ArgList &Args, unsigned Index) const {
+Arg *FlagOption::accept(const ArgList &Args, unsigned &Index) const {
assert(0 && "FIXME");
return 0;
}
@@ -121,7 +121,7 @@ JoinedOption::JoinedOption(const char *Name, const OptionGroup *Group,
: Option(Option::JoinedClass, Name, Group, Alias) {
}
-Arg *JoinedOption::accept(ArgList &Args, unsigned Index) const {
+Arg *JoinedOption::accept(const ArgList &Args, unsigned &Index) const {
assert(0 && "FIXME");
return 0;
}
@@ -131,7 +131,7 @@ CommaJoinedOption::CommaJoinedOption(const char *Name, const OptionGroup *Group,
: Option(Option::CommaJoinedClass, Name, Group, Alias) {
}
-Arg *CommaJoinedOption::accept(ArgList &Args, unsigned Index) const {
+Arg *CommaJoinedOption::accept(const ArgList &Args, unsigned &Index) const {
assert(0 && "FIXME");
return 0;
}
@@ -141,7 +141,7 @@ SeparateOption::SeparateOption(const char *Name, const OptionGroup *Group,
: Option(Option::SeparateClass, Name, Group, Alias) {
}
-Arg *SeparateOption::accept(ArgList &Args, unsigned Index) const {
+Arg *SeparateOption::accept(const ArgList &Args, unsigned &Index) const {
assert(0 && "FIXME");
return 0;
}
@@ -151,7 +151,7 @@ MultiArgOption::MultiArgOption(const char *Name, const OptionGroup *Group,
: Option(Option::MultiArgClass, Name, Group, Alias), NumArgs(_NumArgs) {
}
-Arg *MultiArgOption::accept(ArgList &Args, unsigned Index) const {
+Arg *MultiArgOption::accept(const ArgList &Args, unsigned &Index) const {
assert(0 && "FIXME");
return 0;
}
@@ -162,7 +162,7 @@ JoinedOrSeparateOption::JoinedOrSeparateOption(const char *Name,
: Option(Option::JoinedOrSeparateClass, Name, Group, Alias) {
}
-Arg *JoinedOrSeparateOption::accept(ArgList &Args, unsigned Index) const {
+Arg *JoinedOrSeparateOption::accept(const ArgList &Args, unsigned &Index) const {
assert(0 && "FIXME");
return 0;
}
@@ -173,7 +173,7 @@ JoinedAndSeparateOption::JoinedAndSeparateOption(const char *Name,
: Option(Option::JoinedAndSeparateClass, Name, Group, Alias) {
}
-Arg *JoinedAndSeparateOption::accept(ArgList &Args, unsigned Index) const {
+Arg *JoinedAndSeparateOption::accept(const ArgList &Args, unsigned &Index) const {
assert(0 && "FIXME");
return 0;
}