eolian-cxx: Fix compilation error on clang with const UDT initialization
authorFelipe Magno de Almeida <felipe@expertisesolutions.com.br>
Mon, 6 Jun 2016 06:49:16 +0000 (03:49 -0300)
committerFelipe Magno de Almeida <felipe@expertisesolutions.com.br>
Mon, 6 Jun 2016 06:49:16 +0000 (03:49 -0300)
22 files changed:
src/lib/eolian_cxx/grammar/address_of.hpp
src/lib/eolian_cxx/grammar/attribute_conditional.hpp
src/lib/eolian_cxx/grammar/attribute_replace.hpp
src/lib/eolian_cxx/grammar/attributes.hpp
src/lib/eolian_cxx/grammar/base_class_definition.hpp
src/lib/eolian_cxx/grammar/c_type.hpp
src/lib/eolian_cxx/grammar/case.hpp
src/lib/eolian_cxx/grammar/class_declaration.hpp
src/lib/eolian_cxx/grammar/class_definition.hpp
src/lib/eolian_cxx/grammar/class_implementation.hpp
src/lib/eolian_cxx/grammar/converting_argument.hpp
src/lib/eolian_cxx/grammar/eps.hpp
src/lib/eolian_cxx/grammar/function_declaration.hpp
src/lib/eolian_cxx/grammar/function_definition.hpp
src/lib/eolian_cxx/grammar/header_guards.hpp
src/lib/eolian_cxx/grammar/header_include_directive.hpp
src/lib/eolian_cxx/grammar/implementation_include_directive.hpp
src/lib/eolian_cxx/grammar/indentation.hpp
src/lib/eolian_cxx/grammar/namespace.hpp
src/lib/eolian_cxx/grammar/parameter.hpp
src/lib/eolian_cxx/grammar/string.hpp
src/lib/eolian_cxx/grammar/type.hpp

index 41a0276..3fa48b0 100644 (file)
@@ -67,7 +67,7 @@ template <>
 struct attributes_needed<address_of_generator> : std::integral_constant<int, 1> {};
 }
       
-address_of_generator const address_of;
+address_of_generator const address_of = {};
       
 } } }
 
index 1fab57d..8bf107a 100644 (file)
@@ -52,7 +52,7 @@ struct attribute_conditional_terminal
   {
     return {f};
   }
-} const attribute_conditional;
+} const attribute_conditional = {};
 
 namespace type_traits {
 template <typename F, typename G>
index 448abc2..e45fb9f 100644 (file)
@@ -49,7 +49,7 @@ struct attribute_replace_terminal
   {
     return {f};
   }
-} const attribute_replace;
+} const attribute_replace = {};
 
 namespace type_traits {
 template <typename F, typename G>
index 4e63676..d33fcf2 100644 (file)
@@ -10,7 +10,7 @@ namespace efl { namespace eolian { namespace grammar {
 namespace attributes {
 
 struct unused_type {};
-unused_type const unused;
+unused_type const unused = {};
         
 template <int N, typename Tuple, typename Enable = void>
 struct tuple_element;
index 29b6813..99e7d19 100644 (file)
@@ -105,7 +105,7 @@ template <>
 struct attributes_needed<base_class_definition_generator> : std::integral_constant<int, 1> {};
 }
       
-base_class_definition_generator const base_class_definition;
+base_class_definition_generator const base_class_definition = {};
       
 } } }
 
index b963a77..e6a72fd 100644 (file)
@@ -67,7 +67,7 @@ template <>
 struct attributes_needed<c_type_generator> : std::integral_constant<int, 1> {};
 }
       
-c_type_generator const c_type;
+c_type_generator const c_type = {};
       
 } } }
 
index e659991..8642136 100644 (file)
@@ -70,7 +70,7 @@ struct lower_case_directive
   {
     return lower_case_generator<G>{g};
   }
-} const lower_case;
+} const lower_case = {};
 
 struct upper_case_directive
 {
@@ -79,7 +79,7 @@ struct upper_case_directive
   {
     return upper_case_generator<G>{g};
   }
-} const upper_case;
+} const upper_case = {};
       
 } } }
 
index f117f13..6f23641 100644 (file)
@@ -49,7 +49,7 @@ template <>
 struct attributes_needed<class_declaration_generator> : std::integral_constant<int, 1> {};
 }
       
-class_declaration_generator const class_declaration;
+class_declaration_generator const class_declaration = {};
       
 } } }
 
index 7473ae8..b5ec2a9 100644 (file)
@@ -169,7 +169,7 @@ template <>
 struct attributes_needed<class_definition_generator> : std::integral_constant<int, 1> {};
 }
       
-class_definition_generator const class_definition;
+class_definition_generator const class_definition = {};
       
 } } }
 
index a3c1d01..de4341f 100644 (file)
@@ -49,7 +49,7 @@ template <>
 struct attributes_needed<class_implementation_generator> : std::integral_constant<int, 1> {};
 }
       
-class_implementation_generator const class_implementation;
+class_implementation_generator const class_implementation = {};
       
 } } }
 
index 0f512ca..4a2d959 100644 (file)
@@ -40,7 +40,7 @@ template <>
 struct attributes_needed<converting_argument_generator> : std::integral_constant<int, 1> {};
 }
       
-converting_argument_generator const converting_argument;
+converting_argument_generator const converting_argument = {};
       
 } } }
 
index e47d5f5..900df90 100644 (file)
@@ -17,7 +17,7 @@ struct eps_generator
 template <>
 struct is_eager_generator<eps_generator> : std::true_type {};
 
-eps_generator const eps;
+eps_generator const eps = {};
 
 } } }
 
index aabf8a2..a6aa439 100644 (file)
@@ -32,7 +32,7 @@ template <>
 struct attributes_needed<function_declaration_generator> : std::integral_constant<int, 1> {};
 }
       
-function_declaration_generator const function_declaration;
+function_declaration_generator const function_declaration = {};
       
 } } }
 
index 8be8bba..170fa98 100644 (file)
@@ -148,7 +148,7 @@ struct function_definition_terminal
   {
     return function_definition_generator{name};
   }
-} const function_definition;
+} const function_definition = {};
       
 } } }
 
index 6ab743a..eab596d 100644 (file)
@@ -72,7 +72,7 @@ struct header_guards_directive
    }
 };
       
-header_guards_directive const header_guards;
+header_guards_directive const header_guards = {};
       
 } } }
 
index 6049491..8fbc0eb 100644 (file)
@@ -27,7 +27,7 @@ template <>
 struct attributes_needed<header_include_directive_generator> : std::integral_constant<int, 1> {};
 }
 
-header_include_directive_generator const header_include_directive;
+header_include_directive_generator const header_include_directive = {};
 
 } } }
 
index 01f89cf..dab1e0a 100644 (file)
@@ -32,7 +32,7 @@ template <>
 struct attributes_needed<implementation_include_directive_generator> : std::integral_constant<int, 1> {};
 }
       
-implementation_include_directive_generator const implementation_include_directive;
+implementation_include_directive_generator const implementation_include_directive = {};
       
 } } }
 
index 7a64511..615842e 100644 (file)
@@ -35,7 +35,7 @@ struct scope_tab_terminal
   {
      return scope_tab_generator(n);
   }
-} const scope_tab;
+} const scope_tab = {};
 
 template <>
 struct is_generator<scope_tab_terminal> : std::true_type {};
index db5871c..5cef9ec 100644 (file)
@@ -50,7 +50,7 @@ struct namespaces_directive
   {
     return namespaces_generator<G>{g};
   }
-} const namespaces;
+} const namespaces = {};
 
 template <typename G>
 struct is_eager_generator<namespaces_generator<G>> : std::true_type {};
index cd30464..c1fb1bc 100644 (file)
@@ -54,7 +54,7 @@ template <>
 struct attributes_needed<parameter_type_generator> : std::integral_constant<int, 1> {};  
 }
 
-parameter_type_generator const parameter_type;
+parameter_type_generator const parameter_type = {};
 
 struct parameter_generator
 {
@@ -71,7 +71,7 @@ namespace type_traits {
 template <>
 struct attributes_needed<parameter_generator> : std::integral_constant<int, 1> {};  
 }
-parameter_generator const parameter;
+parameter_generator const parameter = {};
       
 } } }
 
index a8a00a8..77507ce 100644 (file)
@@ -42,7 +42,7 @@ struct {
   {
     return literal_generator(literal);
   }
-} const lit;
+} const lit = {};
 
 // string
 struct string_generator
@@ -143,7 +143,7 @@ struct string_generator_terminal
   {
     return specific_string_generator{string};
   }
-} const string;
+} const string = {};
 
 struct string_replace_terminal
 {
@@ -151,7 +151,7 @@ struct string_replace_terminal
   {
     return string_replace_generator{from, to};
   }
-} const string_replace;
+} const string_replace = {};
       
 template <>
 struct is_generator<string_generator_terminal> : std::true_type {};
index 2ba3744..c2719c3 100644 (file)
@@ -33,7 +33,7 @@ template <>
 struct attributes_needed<type_generator> : std::integral_constant<int, 1> {};  
 }
 
-type_generator const type;
+type_generator const type = {};
 
 } } }