"component", "value")};
if (checked && *checked && GetRank(*componentShape) > 0 &&
GetRank(*valueShape) == 0 &&
- !IsExpandableScalar(*converted, GetFoldingContext(),
- *componentShape, true /*admit PURE call*/)) {
+ (IsDeferredShape(*symbol) ||
+ !IsExpandableScalar(*converted, GetFoldingContext(),
+ *componentShape, true /*admit PURE call*/))) {
AttachDeclaration(
Say(expr.source,
"Scalar value cannot be expanded to shape of array component '%s'"_err_en_US,
--- /dev/null
+! RUN: %python %S/test_errors.py %s %flang_fc1
+! Don't expand scalars for allocatable components.
+module m
+ type t
+ real, allocatable :: a(:)
+ end type
+ !ERROR: Scalar value cannot be expanded to shape of array component 'a'
+ type(t) :: x = t(0.)
+end module