From 334d7b6f33ff4660c8805218f9b444589c595bf2 Mon Sep 17 00:00:00 2001 From: Paul Koning Date: Wed, 29 Jun 2022 16:58:12 -0400 Subject: [PATCH] Fix references to blank section Its name is empty, not ". BLK." --- assemble.c | 41 ++++++++++++++++++----------------------- 1 file changed, 18 insertions(+), 23 deletions(-) diff --git a/assemble.c b/assemble.c index e2610da..6d5bf59 100644 --- a/assemble.c +++ b/assemble.c @@ -1059,34 +1059,29 @@ do_mcalled_macro: SYMBOL *sectsym; SECTION *sect; unsigned int old_flags = ~0u; - int unnamed_csect = 0; label = get_symbol(cp, &cp, NULL); if (label == NULL) { - label = memcheck(strdup(". BLK.")); - unnamed_csect = 1; + sect = &blank_section; } + else { + sectsym = lookup_sym(label, §ion_st); + if (sectsym) { + sect = sectsym->section; + free(label); + old_flags = sect->flags; + } else { + sect = new_section(); + sect->label = label; + sect->flags = 0; + sect->pc = 0; + sect->size = 0; + sect->type = SECTION_USER; + sections[sector++] = sect; + sectsym = add_sym(label, 0, SYMBOLFLAG_DEFINITION, sect, §ion_st); - sectsym = lookup_sym(label, §ion_st); - if (sectsym) { - sect = sectsym->section; - free(label); - old_flags = sect->flags; - } else { - sect = new_section(); - sect->label = label; - sect->flags = 0; - sect->pc = 0; - sect->size = 0; - sect->type = SECTION_USER; - sections[sector++] = sect; - sectsym = add_sym(label, 0, SYMBOLFLAG_DEFINITION, sect, §ion_st); - - /* page 6-41 table 6-5 */ - if (op->value == P_PSECT) { - sect->flags |= PSECT_REL; - } else if (op->value == P_CSECT) { - if (unnamed_csect) { + /* page 6-41 table 6-5 */ + if (op->value == P_PSECT) { sect->flags |= PSECT_REL; } else { sect->flags |= PSECT_REL | PSECT_COM | PSECT_GBL;