return "%s_length%d".printf (array_cname, dim);
}
- public override string get_parameter_array_length_cname (Parameter param, int dim) {
- if (get_ccode_array_length_name (param) != null) {
- return get_ccode_array_length_name (param);
- } else {
- return get_array_length_cname (get_ccode_name (param), dim);
+ public override string get_variable_array_length_cname (Variable variable, int dim) {
+ string? length_cname = get_ccode_array_length_name (variable);
+ if (length_cname == null) {
+ length_cname = get_array_length_cname (get_ccode_name (variable), dim);
}
+ return (!) length_cname;
}
public override CCodeExpression get_array_length_cexpression (Expression array_expr, int dim = -1) {
}
for (int dim = 1; dim <= array_type.rank; dim++) {
- var cparam = new CCodeParameter (get_parameter_array_length_cname (param, dim), length_ctype);
+ var cparam = new CCodeParameter (get_variable_array_length_cname (param, dim), length_ctype);
cparam_map.set (get_param_pos (get_ccode_array_length_pos (param) + 0.01 * dim), cparam);
if (carg_map != null) {
carg_map.set (get_param_pos (get_ccode_array_length_pos (param) + 0.01 * dim), get_cexpression (cparam.name));
if (array_type != null && get_ccode_array_length (param)) {
var length_ctype = get_ccode_array_length_type (array_type);
for (int dim = 1; dim <= array_type.rank; dim++) {
- data.add_field (length_ctype, get_parameter_array_length_cname (param, dim));
+ data.add_field (length_ctype, get_variable_array_length_cname (param, dim));
}
} else if (deleg_type != null && deleg_type.delegate_symbol.has_target) {
data.add_field (get_ccode_name (delegate_target_type), get_ccode_delegate_target_name (param));
var array_type = param.variable_type as ArrayType;
if (array_type != null && !array_type.fixed_length && get_ccode_array_length (param)) {
for (int dim = 1; dim <= array_type.rank; dim++) {
- ccode.open_if (get_cexpression (get_parameter_array_length_cname (param, dim)));
- ccode.add_assignment (new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, get_cexpression (get_parameter_array_length_cname (param, dim))), get_array_length_cvalue (value, dim));
+ string length_cname = get_variable_array_length_cname (param, dim);
+ ccode.open_if (get_cexpression (length_cname));
+ ccode.add_assignment (new CCodeUnaryExpression (CCodeUnaryOperator.POINTER_INDIRECTION, get_cexpression (length_cname)), get_array_length_cvalue (value, dim));
ccode.close ();
}
}
return "";
}
- public virtual string get_parameter_array_length_cname (Parameter param, int dim) {
+ public virtual string get_variable_array_length_cname (Variable variable, int dim) {
return "";
}
} else if (!get_ccode_array_length (d_params.get (i))) {
clength = new CCodeConstant ("-1");
} else {
- clength = new CCodeIdentifier (get_parameter_array_length_cname (d_params.get (i), dim));
+ clength = new CCodeIdentifier (get_variable_array_length_cname (d_params.get (i), dim));
}
carg_map.set (get_param_pos (get_ccode_array_length_pos (param) + 0.01 * dim), clength);
}
result.cvalue = new CCodeMemberAccess.pointer (get_variable_cexpression ("_data%d_".printf (get_block_id (block))), get_ccode_name (param));
if (array_type != null && get_ccode_array_length (param)) {
for (int dim = 1; dim <= array_type.rank; dim++) {
- result.append_array_length_cvalue (new CCodeMemberAccess.pointer (get_variable_cexpression ("_data%d_".printf (get_block_id (block))), get_parameter_array_length_cname (param, dim)));
+ result.append_array_length_cvalue (new CCodeMemberAccess.pointer (get_variable_cexpression ("_data%d_".printf (get_block_id (block))), get_variable_array_length_cname (param, dim)));
}
} else if (delegate_type != null && delegate_type.delegate_symbol.has_target) {
result.delegate_target_cvalue = new CCodeMemberAccess.pointer (get_variable_cexpression ("_data%d_".printf (get_block_id (block))), get_ccode_delegate_target_name (param));
if (!param.captured && array_type != null) {
if (get_ccode_array_length (param) && !get_ccode_array_null_terminated (param)) {
for (int dim = 1; dim <= array_type.rank; dim++) {
- CCodeExpression length_expr = get_cexpression (get_parameter_array_length_cname (param, dim));
+ CCodeExpression length_expr = get_cexpression (get_variable_array_length_cname (param, dim));
if (param.direction == ParameterDirection.OUT) {
length_expr = get_cexpression (get_array_length_cname (name, dim));
} else if (param.direction == ParameterDirection.REF) {
if (array_type != null && get_ccode_array_length (field)) {
for (int dim = 1; dim <= array_type.rank; dim++) {
CCodeExpression length_expr = null;
-
- string length_cname;
- if (get_ccode_array_length_name (field) != null) {
- length_cname = get_ccode_array_length_name (field);
- } else {
- length_cname = get_array_length_cname (get_ccode_name (field), dim);
- }
+ string length_cname = get_variable_array_length_cname (field, dim);
if (((TypeSymbol) field.parent_symbol).is_reference_type ()) {
length_expr = new CCodeMemberAccess.pointer (inst, length_cname);
if (array_type != null && get_ccode_array_length (field)) {
for (int dim = 1; dim <= array_type.rank; dim++) {
- string length_cname;
- if (get_ccode_array_length_name (field) != null) {
- length_cname = get_ccode_array_length_name (field);
- } else {
- length_cname = get_array_length_cname (get_ccode_name (field), dim);
- }
-
+ string length_cname = get_variable_array_length_cname (field, dim);
result.append_array_length_cvalue (new CCodeIdentifier (length_cname));
}
if (array_type.rank == 1 && field.is_internal_symbol ()) {
var length_ctype = get_ccode_array_length_type (array_type);
for (int dim = 1; dim <= array_type.rank; dim++) {
- string length_cname;
- if (get_ccode_array_length_name (f) != null) {
- length_cname = get_ccode_array_length_name (f);
- } else {
- length_cname = get_array_length_cname (get_ccode_name (f), dim);
- }
+ string length_cname = get_variable_array_length_cname (f, dim);
instance_struct.add_field (length_ctype, length_cname);
}
if (get_ccode_array_length (param)) {
var length_ctype = get_ccode_array_length_type (array_type);
for (int dim = 1; dim <= array_type.rank; dim++) {
- data.add_field (length_ctype, get_parameter_array_length_cname (param, dim));
+ data.add_field (length_ctype, get_variable_array_length_cname (param, dim));
}
}
} else if (param.variable_type is DelegateType) {
var length_ctype = get_ccode_array_length_type (array_type);
for (int dim = 1; dim <= array_type.rank; dim++) {
- string length_cname = get_parameter_array_length_cname (param, dim);
+ string length_cname = get_variable_array_length_cname (param, dim);
ccode.add_declaration (length_ctype, new CCodeVariableDeclarator (length_cname, new CCodeConstant ("0")));
ccall.add_argument (new CCodeIdentifier (length_cname));
if (array_type != null) {
var length_ctype = get_ccode_array_length_type (array_type);
for (int dim = 1; dim <= array_type.rank; dim++) {
- string length_cname = get_parameter_array_length_cname (param, dim);
+ string length_cname = get_variable_array_length_cname (param, dim);
if (ready_data_struct != null) {
ready_data_struct.add_field (length_ctype, length_cname);
var array_type = param.variable_type as ArrayType;
if (array_type != null) {
for (int dim = 1; dim <= array_type.rank; dim++) {
- string length_cname = get_parameter_array_length_cname (param, dim);
+ string length_cname = get_variable_array_length_cname (param, dim);
CCodeExpression length_expr;
if (ready_data_expr != null && param.direction == ParameterDirection.IN)
if (array_type != null) {
var length_ctype = get_ccode_array_length_type (array_type);
for (int dim = 1; dim <= array_type.rank; dim++) {
- string length_cname = get_parameter_array_length_cname (param, dim);
+ string length_cname = get_variable_array_length_cname (param, dim);
ccode.add_declaration (length_ctype, new CCodeVariableDeclarator.zero (length_cname, new CCodeConstant ("0")));
}
var array_type = owned_type as ArrayType;
if (array_type != null) {
for (int dim = 1; dim <= array_type.rank; dim++) {
- string length_cname = get_parameter_array_length_cname (param, dim);
+ string length_cname = get_variable_array_length_cname (param, dim);
target.append_array_length_cvalue (new CCodeMemberAccess.pointer (ready_data_expr, length_cname));
}
var array_type = (ArrayType) param.variable_type;
var length_ctype = get_ccode_array_length_type (array_type);
for (int dim = 1; dim <= array_type.rank; dim++) {
- function.add_parameter (new CCodeParameter (get_parameter_array_length_cname (param, dim), length_ctype));
+ function.add_parameter (new CCodeParameter (get_variable_array_length_cname (param, dim), length_ctype));
}
}
}
var length_ctype = get_ccode_array_length_type (array_type);
for (int dim = 1; dim <= array_type.rank; dim++) {
- string length_cname;
- if (get_ccode_array_length_name (f) != null) {
- length_cname = get_ccode_array_length_name (f);
- } else {
- length_cname = get_array_length_cname (get_ccode_name (f), dim);
- }
+ string length_cname = get_variable_array_length_cname (f, dim);
instance_struct.add_field (length_ctype, length_cname);
}
var length_ctype = get_ccode_array_length_type (array_type);
for (int dim = 1; dim <= array_type.rank; dim++) {
- string length_cname;
- if (get_ccode_array_length_name (f) != null) {
- length_cname = get_ccode_array_length_name (f);
- } else {
- length_cname = get_array_length_cname (get_ccode_name (f), dim);
- }
+ string length_cname = get_variable_array_length_cname (f, dim);
instance_priv_struct.add_field (length_ctype, length_cname);
}