summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorboris <boris@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2004-03-15 16:09:39 +0000
committerboris <boris@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2004-03-15 16:09:39 +0000
commit6fd50701b197e414300b40b6fefd7c147bd2e420 (patch)
treee22d0f33896d5734b66fa7629f49b358ed135ae7
parent6c0f88e0ea6a609cf79340fa943fb674f0881058 (diff)
downloadATCD-6fd50701b197e414300b40b6fefd7c147bd2e420.tar.gz
ChangeLogTag: Mon Mar 15 10:14:16 2004 Boris Kolpackov <boris@dre.vanderbilt.edu>
-rw-r--r--TAO/CIAO/CIDLC/cidlc.cpp42
-rw-r--r--TAO/CIAO/ChangeLog13
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.