Lines Matching refs:source
146 RT_API_ATTRS int CFI_section(CFI_cdesc_t *result, const CFI_cdesc_t *source, in CFI_section() argument
153 if (!result || !source) { in CFI_section()
156 if (source->rank == 0) { in CFI_section()
159 if (IsAssumedSize(source) && !upper_bounds) { in CFI_section()
162 if (runtime::TypeCode{result->type} != runtime::TypeCode{source->type}) { in CFI_section()
165 if (source->elem_len != result->elem_len) { in CFI_section()
171 if (!source->base_addr) { in CFI_section()
175 char *shiftedBaseAddr{static_cast<char *>(source->base_addr)}; in CFI_section()
177 for (int j{0}; j < source->rank; ++j) { in CFI_section()
178 const CFI_dim_t &dim{source->dim[j]}; in CFI_section()
207 result->base_addr = isZeroSized ? source->base_addr : shiftedBaseAddr; in CFI_section()
209 for (int j{0}; j < source->rank; ++j) { in CFI_section()
214 : source->dim[j].lower_bound; in CFI_section()
215 result->dim[resRank].sm = actualStride[j] * source->dim[j].sm; in CFI_section()
222 RT_API_ATTRS int CFI_select_part(CFI_cdesc_t *result, const CFI_cdesc_t *source, in CFI_select_part() argument
224 if (!result || !source) { in CFI_select_part()
227 if (result->rank != source->rank) { in CFI_select_part()
233 if (!source->base_addr) { in CFI_select_part()
236 if (IsAssumedSize(source)) { in CFI_select_part()
243 if (displacement + elem_len > source->elem_len) { in CFI_select_part()
247 result->base_addr = displacement + static_cast<char *>(source->base_addr); in CFI_select_part()
249 for (int j{0}; j < source->rank; ++j) { in CFI_select_part()
251 result->dim[j].extent = source->dim[j].extent; in CFI_select_part()
252 result->dim[j].sm = source->dim[j].sm; in CFI_select_part()
257 RT_API_ATTRS int CFI_setpointer(CFI_cdesc_t *result, const CFI_cdesc_t *source, in CFI_setpointer() argument
265 if (!source) { in CFI_setpointer()
269 if (source->rank != result->rank) { in CFI_setpointer()
272 if (runtime::TypeCode{source->type} != runtime::TypeCode{result->type}) { in CFI_setpointer()
275 if (source->elem_len != result->elem_len) { in CFI_setpointer()
278 if (!source->base_addr && source->attribute != CFI_attribute_pointer) { in CFI_setpointer()
281 if (IsAssumedSize(source)) { in CFI_setpointer()
286 result->base_addr = source->base_addr; in CFI_setpointer()
287 if (source->base_addr) { in CFI_setpointer()
289 CFI_index_t extent{source->dim[j].extent}; in CFI_setpointer()
291 result->dim[j].sm = source->dim[j].sm; in CFI_setpointer()
293 : copySrcLB ? source->dim[j].lower_bound in CFI_setpointer()