aboutsummaryrefslogtreecommitdiff
path: root/gold/options.h
diff options
context:
space:
mode:
authorDoug Kwan <dougkwan@google.com>2010-01-11 07:39:36 +0000
committerDoug Kwan <dougkwan@google.com>2010-01-11 07:39:36 +0000
commite96c574bdc02a1bda4fc708ae5d2233e3385f0af (patch)
tree4c5a23eba1b8df66da346bd853cb302b7dbfa86c /gold/options.h
parentba4d53bf2b70e0c5adf55bd3e4f815651d372c14 (diff)
downloadfsf-binutils-gdb-e96c574bdc02a1bda4fc708ae5d2233e3385f0af.zip
fsf-binutils-gdb-e96c574bdc02a1bda4fc708ae5d2233e3385f0af.tar.gz
fsf-binutils-gdb-e96c574bdc02a1bda4fc708ae5d2233e3385f0af.tar.bz2
2010-01-10 Doug Kwan <dougkwan@google.com>
* options.h (DEFINE_var): Use parentheses around argument varname__ in macro body to avoid any unintended subsequent substitutions.
Diffstat (limited to 'gold/options.h')
-rw-r--r--gold/options.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/gold/options.h b/gold/options.h
index b22060a..ab4a9e6 100644
--- a/gold/options.h
+++ b/gold/options.h
@@ -244,12 +244,18 @@ struct Struct_special : public Struct_var
// var() and set_var() as General_options methods. Arguments as are
// for the constructor for One_option. param_type__ is the same as
// type__ for built-in types, and "const type__ &" otherwise.
+//
+// When we define the linker command option "assert", the macro argument
+// varname__ of DEFINE_var below will be replaced by "assert". On Mac OSX
+// assert.h is included implicitly by one of the library headers we use. To
+// avoid unintended macro substitution of "assert()", we need to enclose
+// varname__ with parenthese.
#define DEFINE_var(varname__, dashes__, shortname__, default_value__, \
default_value_as_string__, helpstring__, helparg__, \
optional_arg__, type__, param_type__, parse_fn__) \
public: \
param_type__ \
- varname__() const \
+ (varname__)() const \
{ return this->varname__##_.value; } \
\
bool \