* sim/ucsim/error.cc, sim/ucsim/errorcl.h,
[fw/sdcc] / sim / ucsim / sim.src / uc.cc
index 374b3af701af3313fa9cc45e6d5b17982c566985..8af862db2c2dcd06fb12ec7f9b84da287ac9b5e0 100644 (file)
@@ -56,6 +56,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 #include "simcl.h"
 #include "itsrccl.h"
 
+static class cl_uc_error_registry uc_error_registry;
 
 /*
  * Clock counter
@@ -1855,14 +1856,10 @@ cl_uc::check_events(void)
  *----------------------------------------------------------------------------
  */
 
-class cl_error_class *cl_error_unknown_code::error_unknown_code_class;
-
 cl_error_unknown_code::cl_error_unknown_code(class cl_uc *the_uc)
 {
   uc= the_uc;
-  if (NULL == error_unknown_code_class)
-    error_unknown_code_class= new cl_error_class(err_error, "unknown_code", classification, ERROR_OFF);
-  classification= error_unknown_code_class;
+  classification= uc_error_registry.find("unknown_code");
 }
 
 void
@@ -1882,5 +1879,11 @@ cl_error_unknown_code::print(class cl_commander *c)
   cmd_fprintf(f, "\n");
 }
 
+cl_uc_error_registry::cl_uc_error_registry(void)
+{
+  class cl_error_class *prev = uc_error_registry.find("non-classified");
+  prev = register_error(new cl_error_class(err_error, "unknown_code", prev, ERROR_OFF));
+}
+
 
 /* End of uc.cc */