From 65441c28b0617a1611b3225fa635deb4f149bb5f Mon Sep 17 00:00:00 2001 From: davek Date: Thu, 30 Jul 2009 07:22:28 +0000 Subject: [PATCH] * opt-functions.awk (opt_args): Allow argument to be enclosed in curly braces. * doc/options.texi (Option properties): Mention new quoting syntax. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@150248 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 6 ++++++ gcc/doc/options.texi | 11 ++++++++++- gcc/opt-functions.awk | 8 +++++++- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0b69427..d945d50 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2009-07-30 Dave Korn + + * opt-functions.awk (opt_args): Allow argument to be enclosed in + curly braces. + * doc/options.texi (Option properties): Mention new quoting syntax. + 2009-07-29 Douglas B Rupp * config/alpha/alpha.c (alpha_start_function): diff --git a/gcc/doc/options.texi b/gcc/doc/options.texi index 53ad66b..2041de9 100644 --- a/gcc/doc/options.texi +++ b/gcc/doc/options.texi @@ -84,7 +84,16 @@ configurations and yet the masks always need to be defined. @node Option properties @section Option properties -The second field of an option record can specify the following properties: +The second field of an option record can specify any of the following +properties. When an option takes an argument, it is enlosed in parentheses +following the option property name. The parser that handles option files +is quite simplistic, and will be tricked by any nested parentheses within +the argument text itself; in this case, the entire option argument can +be wrapped in curly braces within the parentheses to demarcate it, e.g.: + +@smallexample +Condition(@{defined (USE_CYGWIN_LIBSTDCXX_WRAPPERS)@}) +@end smallexample @table @code @item Common diff --git a/gcc/opt-functions.awk b/gcc/opt-functions.awk index ae1e1cb..98414da 100644 --- a/gcc/opt-functions.awk +++ b/gcc/opt-functions.awk @@ -41,7 +41,13 @@ function opt_args(name, flags) if (flags !~ " " name "\\(") return "" sub(".* " name "\\(", "", flags) - sub("\\).*", "", flags) + if (flags ~ "^{") + { + sub ("^{", "", flags) + sub("}\\).*", "", flags) + } + else + sub("\\).*", "", flags) return flags } -- 2.7.4