X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Foberon.c;h=251a7df597c9887a7d2d319940bc99d70a812c35;hb=5f233e3ecee9f82dcf0db94e525f1a70caa67e6f;hp=09a6b8850c988e64986859aa3f2a73e3cd17d2ae;hpb=351f950548241d4c4bd799acabbcd98a39b096cc;p=dsw-obn.git diff --git a/src/oberon.c b/src/oberon.c index 09a6b88..251a7df 100644 --- a/src/oberon.c +++ b/src/oberon.c @@ -64,7 +64,7 @@ enum { // UTILS // ======================================================================= -void +static void oberon_error(oberon_context_t * ctx, const char * fmt, ...) { va_list ptr; @@ -2201,7 +2201,8 @@ oberon_prevent_recursive_pointer(oberon_context_t * ctx, oberon_type_t * type) oberon_error(ctx, "recursive pointer declaration"); } - if(type -> base -> class == OBERON_TYPE_POINTER) + if(type -> class == OBERON_TYPE_POINTER + && type -> base -> class == OBERON_TYPE_POINTER) { oberon_error(ctx, "attempt to make pointer to pointer"); } @@ -2701,6 +2702,8 @@ oberon_parse_module(oberon_context_t * ctx) { oberon_error(ctx, "module name not matched"); } + + oberon_generator_fini_module(ctx -> mod); } // =======================================================================