diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2014-08-05 12:49:12 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2014-08-05 12:49:12 +0200 |
commit | f36d0a664debcd8697d5debca9d912512cac2480 (patch) | |
tree | 865d29baba0a9d7004d4b1e0d965c160d41737fc /xsd/cxx/tree/tree-source.cxx | |
parent | 674364d49216b6e7f3eaf9f0e21deabd6a26ec5a (diff) |
Make _clone() for polymorphic custom type base pure virtual
Diffstat (limited to 'xsd/cxx/tree/tree-source.cxx')
-rw-r--r-- | xsd/cxx/tree/tree-source.cxx | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/xsd/cxx/tree/tree-source.cxx b/xsd/cxx/tree/tree-source.cxx index 5720dbd..96a0286 100644 --- a/xsd/cxx/tree/tree-source.cxx +++ b/xsd/cxx/tree/tree-source.cxx @@ -2296,7 +2296,8 @@ namespace CXX // If renamed name is empty then we do not need to generate // anything for this type. // - if (renamed_type (c, name) && !name) + bool renamed (renamed_type (c, name)); + if (renamed && !name) return; SemanticGraph::Context& ctx (c.context ()); @@ -3317,7 +3318,8 @@ namespace CXX // _clone // - if (!c.abstract_p ()) + if (!(c.abstract_p () || + (renamed && polymorphic && polymorphic_p (c)))) os << name << "* " << name << "::" << endl << "_clone (" << flags_type << " f," << endl << container << "* c) const" |