Lines Matching defs:comp

20 // Fill "extents" array with the extents of component "comp" from derived type
23 const typeInfo::Component &comp, const Descriptor &derivedInstance) {
24 const typeInfo::Value *bounds{comp.bounds()};
25 for (int dim{0}; dim < comp.rank(); ++dim) {
42 const auto &comp{
46 if (comp.genre() == typeInfo::Component::Genre::Allocatable ||
47 comp.genre() == typeInfo::Component::Genre::Automatic) {
50 *instance.ElementComponent<Descriptor>(at, comp.offset())};
51 comp.EstablishDescriptor(allocDesc, instance, terminator);
53 if (comp.genre() == typeInfo::Component::Genre::Automatic) {
70 } else if (const void *init{comp.initialization()}) {
73 std::size_t bytes{comp.SizeInBytes(instance)};
75 char *ptr{instance.ElementComponent<char>(at, comp.offset())};
78 } else if (comp.genre() == typeInfo::Component::Genre::Pointer) {
84 *instance.ElementComponent<Descriptor>(at, comp.offset())};
85 comp.EstablishDescriptor(ptrDesc, instance, terminator);
88 } else if (comp.genre() == typeInfo::Component::Genre::Data &&
89 comp.derivedType() && !comp.derivedType()->noInitializationNeeded()) {
93 GetComponentExtents(extents, comp, instance);
96 const typeInfo::DerivedType &compType{*comp.derivedType()};
99 instance.ElementComponent<char>(at, comp.offset()), comp.rank(),
112 const auto &comp{
118 at, comp.offset)};
119 pptr = comp.procInitialization;
139 const typeInfo::Component &comp{
145 if (comp.genre() == typeInfo::Component::Genre::Allocatable) {
149 *orig.ElementComponent<Descriptor>(at, comp.offset())};
151 *clone.ElementComponent<Descriptor>(at, comp.offset())};
177 } else if (comp.genre() == typeInfo::Component::Genre::Data &&
178 comp.derivedType()) {
180 const typeInfo::DerivedType &compType{*comp.derivedType()};
182 GetComponentExtents(extents, comp, orig);
191 orig.ElementComponent<char>(at, comp.offset()), comp.rank(),
194 clone.ElementComponent<char>(at, comp.offset()), comp.rank(),
304 const auto &comp{
308 if (comp.genre() == typeInfo::Component::Genre::Allocatable &&
309 comp.category() == TypeCategory::Derived) {
315 *descriptor.ElementComponent<Descriptor>(at, comp.offset())};
327 } else if (comp.genre() == typeInfo::Component::Genre::Allocatable ||
328 comp.genre() == typeInfo::Component::Genre::Automatic) {
329 if (const typeInfo::DerivedType * compType{comp.derivedType()}) {
334 *descriptor.ElementComponent<Descriptor>(at, comp.offset())};
341 } else if (comp.genre() == typeInfo::Component::Genre::Data &&
342 comp.derivedType() && !comp.derivedType()->noFinalizationNeeded()) {
344 GetComponentExtents(extents, comp, descriptor);
347 const typeInfo::DerivedType &compType{*comp.derivedType()};
351 descriptor.ElementComponent<char>(at, comp.offset()), comp.rank(),
388 const auto &comp{
391 comp.derivedType() && !comp.derivedType()->noDestructionNeeded()};
392 if (comp.genre() == typeInfo::Component::Genre::Allocatable ||
393 comp.genre() == typeInfo::Component::Genre::Automatic) {
396 descriptor.ElementComponent<Descriptor>(at, comp.offset())};
398 Destroy(*d, /*finalize=*/false, *comp.derivedType(), terminator);
404 comp.genre() == typeInfo::Component::Genre::Data) {
406 GetComponentExtents(extents, comp, descriptor);
409 const typeInfo::DerivedType &compType{*comp.derivedType()};
413 descriptor.ElementComponent<char>(at, comp.offset()), comp.rank(),
415 Destroy(compDesc, /*finalize=*/false, *comp.derivedType(), terminator);