jpeg pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=b4e3d4d8a4f1e0712dbbd309bf4b2f11e36acef1

commit b4e3d4d8a4f1e0712dbbd309bf4b2f11e36acef1
Author: Jean-Philippe Andre <jp.an...@samsung.com>
Date:   Wed Nov 22 20:50:11 2017 +0900

    cxx: Avoid pedantic warning with -Wold-style-cast
    
    This affects the generated headers.
---
 src/lib/eolian_cxx/grammar/base_class_definition.hpp | 9 +++++----
 src/lib/eolian_cxx/grammar/class_definition.hpp      | 9 +++++----
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/src/lib/eolian_cxx/grammar/base_class_definition.hpp 
b/src/lib/eolian_cxx/grammar/base_class_definition.hpp
index aa61334020..d5fa914b53 100644
--- a/src/lib/eolian_cxx/grammar/base_class_definition.hpp
+++ b/src/lib/eolian_cxx/grammar/base_class_definition.hpp
@@ -64,10 +64,11 @@ struct base_class_definition_generator
        return false;
      if(!as_generator(";\n" << scope_tab << "}\n").generate(sink, 
attributes::unused, context)) return false;
 
-     if(!as_generator
-        (
-         scope_tab << "Eo* _eo_ptr() const { return *(Eo**)this; }\n"
-        ).generate(sink, attributes::unused, context)) return false;
+     if(!as_generator(
+         scope_tab << "Eo* _eo_ptr() const { return *(reinterpret_cast<Eo **>"
+              << "(const_cast<" << string << " *>(this))); }\n"
+        ).generate(sink, cls.cxx_name, context))
+       return false;
 
      // operator ::ns::Class_Name() const;
      // operator ::ns::Class_Name&();
diff --git a/src/lib/eolian_cxx/grammar/class_definition.hpp 
b/src/lib/eolian_cxx/grammar/class_definition.hpp
index 1e21336d9f..30a9daf134 100644
--- a/src/lib/eolian_cxx/grammar/class_definition.hpp
+++ b/src/lib/eolian_cxx/grammar/class_definition.hpp
@@ -128,10 +128,11 @@ struct class_definition_generator
        return false;
      if(!as_generator(";\n" << scope_tab << "}\n").generate(sink, 
attributes::unused, context)) return false;
 
-     if(!as_generator
-        (
-         scope_tab << "Eo* _eo_ptr() const { return *(Eo**)this; }\n"
-        ).generate(sink, attributes::unused, context)) return false;
+     if(!as_generator(
+         scope_tab << "Eo* _eo_ptr() const { return *(reinterpret_cast<Eo **>"
+              << "(const_cast<" << string << " *>(this))); }\n"
+        ).generate(sink, cls.cxx_name, context))
+       return false;
      
      for (auto&& e : cls.events)
        {

-- 


Reply via email to