From: Dave Korn Date: Thu, 30 Jul 2009 07:22:28 +0000 (+0000) Subject: opt-functions.awk (opt_args): Allow argument to be enclosed in curly braces. X-Git-Tag: releases/gcc-4.5.0~4274 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=88c2fd3d625c9a0536d72f07fd969ef535b90c52;p=thirdparty%2Fgcc.git opt-functions.awk (opt_args): Allow argument to be enclosed in curly braces. * opt-functions.awk (opt_args): Allow argument to be enclosed in curly braces. * doc/options.texi (Option properties): Mention new quoting syntax. From-SVN: r150248 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0b69427eb63c..d945d5034dbf 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 53ad66bb7f67..2041de973537 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 ae1e1cb38c6e..98414dae9a95 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 }