Skip to content

Commit a2c22b7

Browse files
committed
fix: NATIONAL items INITIALIZE
* Fixed the following problems with INITIALIZE for NATIONAL items: * When included in a group item * When OCCURS is present
1 parent ff99e89 commit a2c22b7

File tree

1 file changed

+18
-9
lines changed

1 file changed

+18
-9
lines changed

cobc/codegen.c

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4685,8 +4685,9 @@ initialize_uniform_char (const struct cb_field *f,
46854685
case COB_TYPE_NUMERIC_DISPLAY:
46864686
return '0';
46874687
case COB_TYPE_ALPHANUMERIC:
4688-
case COB_TYPE_NATIONAL:
46894688
return ' ';
4689+
case COB_TYPE_NATIONAL:
4690+
return 0xFF;
46904691
default:
46914692
return -1;
46924693
}
@@ -4889,6 +4890,18 @@ output_initialize_uniform (cb_tree x, struct cb_field *f,
48894890
output ("*(cob_u8_ptr)(");
48904891
output_data (x);
48914892
output_char (") = ", cc, ";");
4893+
} else if (cc == 0xFF) {
4894+
int tmp_size;
4895+
tmp_size = f->size;
4896+
f->size = size;
4897+
4898+
output ("cob_move (");
4899+
output_param (cb_space, 1);
4900+
output (", ");
4901+
output_param (x, 2);
4902+
output (");");
4903+
4904+
f->size = tmp_size;
48924905
} else {
48934906
output ("memset (");
48944907
output_data (x);
@@ -5773,15 +5786,11 @@ output_initialize (struct cb_initialize *p)
57735786
case INITIALIZE_DEFAULT:
57745787
c = initialize_uniform_char (f, p);
57755788
if (c != -1) {
5776-
if ((cb_tree_type (CB_TREE (f), f) == COB_TYPE_NATIONAL) && (c == ' ')) {
5777-
output_move (cb_space, p->var);
5778-
} else {
5779-
if (p->statement == STMT_INIT_STORAGE) {
5780-
output_init_comment_and_source_ref (f);
5781-
}
5782-
output_initialize_uniform (p->var, f, (unsigned char)c, f->size);
5783-
output_initialize_chaining (f, p);
5789+
if (p->statement == STMT_INIT_STORAGE) {
5790+
output_init_comment_and_source_ref (f);
57845791
}
5792+
output_initialize_uniform (p->var, f, (unsigned char)c, f->size);
5793+
output_initialize_chaining (f, p);
57855794
return;
57865795
}
57875796
/* Fall through */

0 commit comments

Comments
 (0)