From e5af3b3eef8dd3b2b9516f89825d0f0b4d09c0cf Mon Sep 17 00:00:00 2001 From: Daniel Dunbar Date: Wed, 9 Jun 2010 19:27:07 +0000 Subject: [PATCH] Revert "Driver: Change Option parsing to always create arguments referring to unaliased", this isn't quite right yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105747 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/clang/Driver/Options.td | 2 +- lib/Driver/Option.cpp | 18 +++++++++--------- test/Driver/option-aliases.c | 11 ----------- 3 files changed, 10 insertions(+), 21 deletions(-) delete mode 100644 test/Driver/option-aliases.c diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td index d15be8ad4a..2000d403ab 100644 --- a/include/clang/Driver/Options.td +++ b/include/clang/Driver/Options.td @@ -713,4 +713,4 @@ def _warn__EQ : Joined<"--warn-=">, Alias, Flags<[Unsupported]>; def _warn_ : Joined<"--warn-">, Alias, Flags<[Unsupported]>; def _write_dependencies : Flag<"--write-dependencies">, Alias; def _write_user_dependencies : Flag<"--write-user-dependencies">, Alias; -def _ : Joined<"--">, Flags<[Unsupported]>; +def _ : Joined<"--">, Alias, Flags<[Unsupported]>; diff --git a/lib/Driver/Option.cpp b/lib/Driver/Option.cpp index d438c30b53..5a967ea3df 100644 --- a/lib/Driver/Option.cpp +++ b/lib/Driver/Option.cpp @@ -123,7 +123,7 @@ Arg *FlagOption::accept(const InputArgList &Args, unsigned &Index) const { if (strlen(getName()) != strlen(Args.getArgString(Index))) return 0; - return new FlagArg(getUnaliasedOption(), Index++); + return new FlagArg(this, Index++); } JoinedOption::JoinedOption(OptSpecifier ID, const char *Name, @@ -133,7 +133,7 @@ JoinedOption::JoinedOption(OptSpecifier ID, const char *Name, Arg *JoinedOption::accept(const InputArgList &Args, unsigned &Index) const { // Always matches. - return new JoinedArg(getUnaliasedOption(), Index++, strlen(getName())); + return new JoinedArg(this, Index++, strlen(getName())); } CommaJoinedOption::CommaJoinedOption(OptSpecifier ID, const char *Name, @@ -150,7 +150,7 @@ Arg *CommaJoinedOption::accept(const InputArgList &Args, // Get the suffix string. // FIXME: Avoid strlen, and move to helper method? const char *Suffix = Args.getArgString(Index) + strlen(getName()); - return new CommaJoinedArg(getUnaliasedOption(), Index++, Suffix); + return new CommaJoinedArg(this, Index++, Suffix); } SeparateOption::SeparateOption(OptSpecifier ID, const char *Name, @@ -168,7 +168,7 @@ Arg *SeparateOption::accept(const InputArgList &Args, unsigned &Index) const { if (Index > Args.getNumInputArgStrings()) return 0; - return new SeparateArg(getUnaliasedOption(), Index - 2, 1); + return new SeparateArg(this, Index - 2, 1); } MultiArgOption::MultiArgOption(OptSpecifier ID, const char *Name, @@ -188,7 +188,7 @@ Arg *MultiArgOption::accept(const InputArgList &Args, unsigned &Index) const { if (Index > Args.getNumInputArgStrings()) return 0; - return new SeparateArg(getUnaliasedOption(), Index - 1 - NumArgs, NumArgs); + return new SeparateArg(this, Index - 1 - NumArgs, NumArgs); } JoinedOrSeparateOption::JoinedOrSeparateOption(OptSpecifier ID, @@ -203,14 +203,14 @@ Arg *JoinedOrSeparateOption::accept(const InputArgList &Args, // If this is not an exact match, it is a joined arg. // FIXME: Avoid strlen. if (strlen(getName()) != strlen(Args.getArgString(Index))) - return new JoinedArg(getUnaliasedOption(), Index++, strlen(getName())); + return new JoinedArg(this, Index++, strlen(getName())); // Otherwise it must be separate. Index += 2; if (Index > Args.getNumInputArgStrings()) return 0; - return new SeparateArg(getUnaliasedOption(), Index - 2, 1); + return new SeparateArg(this, Index - 2, 1); } JoinedAndSeparateOption::JoinedAndSeparateOption(OptSpecifier ID, @@ -228,6 +228,6 @@ Arg *JoinedAndSeparateOption::accept(const InputArgList &Args, if (Index > Args.getNumInputArgStrings()) return 0; - return new JoinedAndSeparateArg(getUnaliasedOption(), Index - 2, - strlen(getName())); + return new JoinedAndSeparateArg(this, Index - 2, strlen(getName())); } + diff --git a/test/Driver/option-aliases.c b/test/Driver/option-aliases.c deleted file mode 100644 index 38bf4b1a57..0000000000 --- a/test/Driver/option-aliases.c +++ /dev/null @@ -1,11 +0,0 @@ -// RUN: %clang -ccc-print-options \ -// RUN: --save-temps --undefine-macro=FOO --undefine-macro FOO \ -// RUN: --param=FOO --output=FOO 2> %t -// RUN: FileCheck --check-prefix=CHECK-OPTIONS < %t %s - -// CHECK-OPTIONS: Option 0 - Name: "-ccc-print-options", Values: {} -// CHECK-OPTIONS: Option 1 - Name: "-save-temps", Values: {} -// CHECK-OPTIONS: Option 2 - Name: "-U", Values: {"FOO"} -// CHECK-OPTIONS: Option 3 - Name: "-U", Values: {"FOO"} -// CHECK-OPTIONS: Option 4 - Name: "--param", Values: {"FOO"} -// CHECK-OPTIONS: Option 5 - Name: "-o", Values: {"FOO"} -- 2.40.0