diff options
Diffstat (limited to 'TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Struct.cpp')
-rw-r--r-- | TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Struct.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Struct.cpp b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Struct.cpp index 463dec37f23..46fd9b9ef3a 100644 --- a/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Struct.cpp +++ b/TAO/CIAO/CCF/CCF/IDL2/SemanticGraph/Struct.cpp @@ -36,18 +36,28 @@ namespace CCF { if (defined ()) { + CompilerElements::Context& ctx ( + const_cast<CompilerElements::Context&> (context ())); + + if (ctx.count ("struct-complete-test")) + return true; + + ctx.set ("struct-complete-test", true); + bool c (true); + for (Scope::NamesIterator i (names_begin ()); - i != names_end (); + c && i != names_end (); ++i) { Member const& m (dynamic_cast<Member&> ((*i)->named ())); Type const& t (m.belongs ().type ()); if (!t.complete ()) - return false; + c = false; } - return true; + ctx.remove ("struct-complete-test"); + return c; } return false; |