From 76088fe3dfdf541281942b43cb72b021b6fd2ee3 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 17 Sep 2012 08:17:06 +0200 Subject: Convert integer and floating default values immediately It appears that GCC 4.8 reuses token tree nodes that are returned during pragma parsing. So saving such nodes for later no longer works. --- odb/context.hxx | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'odb/context.hxx') diff --git a/odb/context.hxx b/odb/context.hxx index 8ae110a..4503e7f 100644 --- a/odb/context.hxx +++ b/odb/context.hxx @@ -117,15 +117,22 @@ struct default_value { reset, // Default value reset. null, - boolean, - number, // Integer of floating-point number. Value contains sign. - string, - enumerator // Value is the name, node is the tree node. + boolean, // Literal contains value (true or false). + integer, // Integer number. Literal contains sign. + floating, // Floating-point number. + string, // Literal contains value. + enumerator // Literal is the name, enum_value is the tree node. }; kind_type kind; - std::string value; - tree node; + std::string literal; + + union + { + tree enum_value; + unsigned long long int_value; + double float_value; + }; }; // Database potentially-qualified name. -- cgit v1.1