From 19448e1460e93da6b91d2e58f39ed61ab66f10f9 Mon Sep 17 00:00:00 2001 From: "James K. Lowden" <jklowden@symas.com> Date: Wed, 3 Jan 2024 10:29:55 -0500 Subject: [PATCH] remove record-size adjustment for REDEFINED tables --- gcc/cobol/symbols.cc | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/gcc/cobol/symbols.cc b/gcc/cobol/symbols.cc index dbb56bc54a59..12adfda716bf 100644 --- a/gcc/cobol/symbols.cc +++ b/gcc/cobol/symbols.cc @@ -1312,14 +1312,9 @@ static struct symbol_elem_t * if( redefined ) { assert( group == redefined ); max_memsize = std::max(max_memsize, field_memsize(field)); - field->data.capacity = redefined->data.capacity; - if( is_table(field) ) { // reduce capacity by occurs, if any - if( field->data.digits == field->data.capacity ) { - field->data.digits /= field->occurs.ntimes(); - } - field->data.capacity /= field->occurs.ntimes(); + if( redefined->data.memsize == redefined->data.capacity ) { + redefined->data.memsize = 0; } - field->data.memsize = 0; continue; } group->data.capacity += field_size(field); @@ -1335,7 +1330,9 @@ static struct symbol_elem_t * if( group->data.memsize == group->data.capacity ) group->data.memsize = 0; if( 0 < group->data.memsize && group->data.memsize < group->data.capacity ) { - warnx( "%s:%d: small capacity?\n\t%s", __func__, __LINE__, field_str(group) ); + if( yydebug ) { + warnx( "%s:%d: small capacity?\n\t%s", __func__, __LINE__, field_str(group) ); + } group->data.memsize = group->data.capacity; } -- GitLab