From ed651bbd040456cd88797fce63f9c244838e90b3 Mon Sep 17 00:00:00 2001 From: ceriel Date: Thu, 20 Oct 1988 12:55:02 +0000 Subject: [PATCH] some fixes: - use Malloc, Realloc instead of malloc, realloc - generate common for un-initialized bss - removed null-reference --- util/ceg/EM_parser/common/action.c | 5 ++--- util/ceg/EM_parser/common/default.c | 5 ++--- util/ceg/EM_parser/common/pars.g | 2 +- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/util/ceg/EM_parser/common/action.c b/util/ceg/EM_parser/common/action.c index 628f7c6f9..59581a9c7 100644 --- a/util/ceg/EM_parser/common/action.c +++ b/util/ceg/EM_parser/common/action.c @@ -1,6 +1,5 @@ #include "decl.h" #include -extern char *malloc(), *realloc(), *Salloc(); /* This file contains some routines needed in "pars.g" to handle the action- * grammarrule. The assembler-instructions are handeld in blocks rather than @@ -24,7 +23,7 @@ init_as_block() if ( quantum == 0) { quantum = 16; - as_instructions = (char **)malloc( quantum*sizeof( char *)); + as_instructions = (char **)Malloc( quantum*sizeof( char *)); } } @@ -37,7 +36,7 @@ char *instr; { if ( nr_instr == quantum) { quantum *= 2; - as_instructions = (char **) realloc( as_instructions, + as_instructions = (char **) Realloc( as_instructions, quantum*sizeof( char *)); } diff --git a/util/ceg/EM_parser/common/default.c b/util/ceg/EM_parser/common/default.c index 689185f53..cc3a2663c 100644 --- a/util/ceg/EM_parser/common/default.c +++ b/util/ceg/EM_parser/common/default.c @@ -196,7 +196,7 @@ handle_defaults() * ponding C_con_xxx C_rom_xxx instruction * so set correct info. */ - set_C_instr_info( def_info[i-2].name); + set_C_instr_info( def_info[(i>>2)<<2].name); def_row(); out( "}\n\n"); } @@ -244,8 +244,7 @@ extnd_header() */ { out( "if ( %s == 0 ) {\n", C_instr_info->arg_id[3]); - set_segment( SEGBSS); - out( "bss( %s);\n", C_instr_info->arg_id[0]); + out( "common( %s);\n", C_instr_info->arg_id[0]); out( "}\nelse {\n"); set_segment( SEGCON); out( "for ( %s = 0; %s < %s/EM_WSIZE; %s++)\n", diff --git a/util/ceg/EM_parser/common/pars.g b/util/ceg/EM_parser/common/pars.g index 6aadb7a93..df6069f25 100644 --- a/util/ceg/EM_parser/common/pars.g +++ b/util/ceg/EM_parser/common/pars.g @@ -169,7 +169,7 @@ c_row : %if ( to_change && strcmp( yytext, to_change) == 0) | C_INSTR [ c_special | c_simple] - | %if ( strcmp( yytext, to_change) == 0) + | %if ( to_change && strcmp( yytext, to_change) == 0) DEF_C_INSTR { init_defaults( yytext);} [ Dspecial | Dsimple] { handle_defaults();} -- 2.34.1