diff --git a/gcc/cobol/parse_ante.h b/gcc/cobol/parse_ante.h index e1deeb6db0f1b5bb5b58c49b0f8693f917a4fff2..c798c928b308a6b21281561421c9506d4b1e5080 100644 --- a/gcc/cobol/parse_ante.h +++ b/gcc/cobol/parse_ante.h @@ -1837,6 +1837,7 @@ new_tempnumeric(void) { return new_temporary(FldNumericBin5); } static inline cbl_field_t * new_tempnumeric_float(void) { return new_temporary(FldFloat); } +#if 1 static inline cbl_field_t * new_temporary_clone( const cbl_field_t *orig) { cbl_field_type_t type = is_literal(orig)? FldAlphanumeric : orig->type; @@ -1853,6 +1854,24 @@ new_temporary_clone( const cbl_field_t *orig) { parser_symbol_add(f); return f; } +#else +static inline cbl_field_t * +new_temporary_clone( const cbl_field_t *orig) { + cbl_field_type_t type = is_literal(orig)? FldAlphanumeric : orig->type; + auto f = new_temporary_imply(type); + f->data = orig->data; + + if( orig->type == FldGroup ) { + namcpy(f->name, orig->name); + f->attr = temporary_e; + f->var_decl_node = NULL; + f->data_decl_node = NULL; + } + + parser_symbol_add(f); + return f; +} +#endif uint32_t type_capacity( enum cbl_field_type_t type, uint32_t digits );