diff options
author | boris <boris@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2004-03-15 16:09:39 +0000 |
---|---|---|
committer | boris <boris@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2004-03-15 16:09:39 +0000 |
commit | 6fd50701b197e414300b40b6fefd7c147bd2e420 (patch) | |
tree | e22d0f33896d5734b66fa7629f49b358ed135ae7 | |
parent | 6c0f88e0ea6a609cf79340fa943fb674f0881058 (diff) | |
download | ATCD-6fd50701b197e414300b40b6fefd7c147bd2e420.tar.gz |
ChangeLogTag: Mon Mar 15 10:14:16 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
-rw-r--r-- | TAO/CIAO/CIDLC/cidlc.cpp | 42 | ||||
-rw-r--r-- | TAO/CIAO/ChangeLog | 13 |
2 files changed, 52 insertions, 3 deletions
diff --git a/TAO/CIAO/CIDLC/cidlc.cpp b/TAO/CIAO/CIDLC/cidlc.cpp index 2b2a943dc45..3c4ff68f8c8 100644 --- a/TAO/CIAO/CIDLC/cidlc.cpp +++ b/TAO/CIAO/CIDLC/cidlc.cpp @@ -33,6 +33,39 @@ using std::cerr; using std::endl; +class ErrorDetector : public std::streambuf +{ +public: + ErrorDetector (std::streambuf* prev) + : error_ (false), + prev_ (*prev) + { + } + + virtual int_type + overflow (int_type c) + { + error_ = true; + return prev_.sputc (c); + } + + virtual int + sync () + { + return prev_.pubsync (); + } + + bool + error () const throw () + { + return error_; + } + +private: + bool error_; + std::streambuf& prev_; +}; + using namespace CCF::CompilerElements; using namespace CCF::CIDL; using namespace CCF::CIDL::SemanticGraph; @@ -160,6 +193,8 @@ main (int argc, char* argv[]) //} Diagnostic::Stream dout; + ErrorDetector detector (cerr.rdbuf ()); + cerr.rdbuf (&detector); LexicalAnalyzer lexer (pp); @@ -226,6 +261,13 @@ main (int argc, char* argv[]) if (dout.error_count () != 0) return 1; + // This is a little hack to make CIDL compiler signal + // error conditions by return value. Once I redesign + // diagnostic in CCF this should be removed. + + if (detector.error ()) return 1; + + // Generate executor mapping. { lem_gen.generate (cl, tu, file_path); diff --git a/TAO/CIAO/ChangeLog b/TAO/CIAO/ChangeLog index 56d49c3f833..2f1a653dc4b 100644 --- a/TAO/CIAO/ChangeLog +++ b/TAO/CIAO/ChangeLog @@ -1,8 +1,15 @@ +Mon Mar 15 10:14:16 2004 Boris Kolpackov <boris@dre.vanderbilt.edu> + + * CIDLC/cidlc.cpp: + + Temporary fix for the wrong return code in CIDL compiler. + Thanks to Gary Duzan <gduzan@bbn.com> for reporting this. + Fri Mar 12 11:03:38 2004 Jeff Parsons <j.parsons@vanderbilt.edu> * CIDLC/TypeNameEmitter.cpp: * CIDLC/TypeNameEmitter.hpp: - + Added missing operations to generate enum type names. Thanks to Jessica Pistole <Jessica.Pistole@jhuapl.edu> for reporting the missing type names in generated servant glue code. @@ -17,11 +24,11 @@ Thu Mar 11 16:30:45 2004 Boris Kolpackov <boris@dre.vanderbilt.edu> * CCF/CCF/IDL2/SemanticAction/Impl/Typedef.hpp: Added support for bounded string and wstring. - + * CCF/Documentation/TODO: Reflected new achievement. - + * CIDLC/cidlc.cpp: Cosmetic changes. |