summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/doc/options.texi11
-rw-r--r--gcc/opt-functions.awk8
3 files changed, 23 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0b69427eb63..d945d5034db 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2009-07-30 Dave Korn <dave.korn.cygwin@gmail.com>
+
+ * 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 <rupp@gnat.com>
* config/alpha/alpha.c (alpha_start_function):
diff --git a/gcc/doc/options.texi b/gcc/doc/options.texi
index 53ad66bb7f6..2041de97353 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 ae1e1cb38c6..98414dae9a9 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
}