Abstract derived-type components can have default value so perform
the default value initialization if necessary.
```
type, abstract :: a
integer :: b = 10
end type
type, extends(a) :: b
integer :: d
end type
```
Reviewed By: klausler
Differential Revision: https://reviews.llvm.org/D144668
// instances without any initialized components, analyze the type
// and set a flag if there's nothing to do for it at run time.
AddValue(dtValues, derivedTypeSchema_, "noinitializationneeded"s,
- IntExpr<1>(isAbstractType ||
- (derivedTypeSpec && !derivedTypeSpec->HasDefaultInitialization())));
+ IntExpr<1>(
+ derivedTypeSpec && !derivedTypeSpec->HasDefaultInitialization()));
// Similarly, a flag to short-circuit destruction when not needed.
AddValue(dtValues, derivedTypeSchema_, "nodestructionneeded"s,
IntExpr<1>(isAbstractType ||