[flang-commits] [PATCH] D140144: [flang] Catch attempts to initialize allocatable components with DATA statement
Peter Klausler via Phabricator via flang-commits
flang-commits at lists.llvm.org
Fri Dec 16 18:16:57 PST 2022
This revision was automatically updated to reflect the committed changes.
Closed by commit rG12ec5b20c2c1: [flang] Catch attempts to initialize allocatable components with DATA statement (authored by klausler).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D140144/new/
https://reviews.llvm.org/D140144
Files:
flang/lib/Evaluate/initial-image.cpp
flang/test/Semantics/data01.f90
Index: flang/test/Semantics/data01.f90
===================================================================
--- flang/test/Semantics/data01.f90
+++ flang/test/Semantics/data01.f90
@@ -11,6 +11,9 @@
integer, parameter :: repeat = -1
integer :: myAge = 2
type(person) associated
+ type hasAlloc
+ integer, allocatable :: a(:)
+ end type
end
subroutine CheckRepeat
@@ -63,4 +66,7 @@
data y / a(i) /
!ERROR: DATA statement value 'b(1_8)' for 'z' is not a constant
data z / b(1) /
+ type(hasAlloc) ha
+ !ERROR: DATA statement value 'hasalloc(a=0_4)' for 'ha' is not a constant
+ data ha / hasAlloc(0) /
end
Index: flang/lib/Evaluate/initial-image.cpp
===================================================================
--- flang/lib/Evaluate/initial-image.cpp
+++ flang/lib/Evaluate/initial-image.cpp
@@ -33,6 +33,8 @@
return SizeMismatch;
} else if (IsPointer(component)) {
AddPointer(offset + component.offset(), indExpr.value());
+ } else if (IsAllocatable(component) || IsAutomatic(component)) {
+ return NotAConstant;
} else {
Result added{Add(offset + component.offset(), component.size(),
indExpr.value(), context)};
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D140144.483700.patch
Type: text/x-patch
Size: 1247 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/flang-commits/attachments/20221217/f81e5429/attachment.bin>
More information about the flang-commits
mailing list