[qfcc] Create vector component symbols for parameters

This got lost when the stack frame setup was converted for Ruamoko.
This commit is contained in:
Bill Currie 2022-02-06 20:13:59 +09:00
parent 211cd657e0
commit abe43584ff
3 changed files with 6 additions and 1 deletions

View file

@ -221,6 +221,9 @@ void free_temp_def (def_t *temp);
*/ */
void def_to_ddef (def_t *def, ddef_t *ddef, int aux); void def_to_ddef (def_t *def, ddef_t *ddef, int aux);
void init_vector_components (struct symbol_s *vector_sym, int is_field,
struct symtab_s *symtab);
/** Initialize a def referenced by the given symbol. /** Initialize a def referenced by the given symbol.
The symbol is checked for redefinition. A symbol is considered to be The symbol is checked for redefinition. A symbol is considered to be

View file

@ -412,7 +412,7 @@ init_elements (struct def_s *def, expr_t *eles)
free_element_chain (&element_chain); free_element_chain (&element_chain);
} }
static void void
init_vector_components (symbol_t *vector_sym, int is_field, symtab_t *symtab) init_vector_components (symbol_t *vector_sym, int is_field, symtab_t *symtab)
{ {
expr_t *vector_expr; expr_t *vector_expr;

View file

@ -542,6 +542,8 @@ create_param (symtab_t *parameters, symbol_t *param)
param->s.def = def; param->s.def = def;
param->sy_type = sy_var; param->sy_type = sy_var;
symtab_addsymbol (parameters, param); symtab_addsymbol (parameters, param);
if (is_vector(param->type) && options.code.vector_components)
init_vector_components (param, 0, parameters);
} }
static void static void