You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
} elseif (const Symbol * pointer{FindPointerComponent(*symbol)};
2250
-
pointer && pureContext) { // C1594(4)
2251
-
if (const Symbol *
2252
-
visible{semantics::FindExternallyVisibleObject(
2253
-
*value, *pureContext)}) {
2254
-
Say(expr.source,
2255
-
"The externally visible object '%s' may not be used in a pure procedure as the value for component '%s' which has the pointer component '%s'"_err_en_US,
if (auto iter{FindPointerUltimateComponent(*derived)};
2252
+
iter && pureContext) { // F'2023 C15104(4)
2253
+
if (const Symbol *
2254
+
visible{semantics::FindExternallyVisibleObject(
2255
+
*value, *pureContext)}) {
2256
+
Say(expr.source,
2257
+
"The externally visible object '%s' may not be used in a pure procedure as the value for component '%s' which has the pointer component '%s'"_err_en_US,
2258
+
visible->name(), symbol->name(),
2259
+
iter.BuildResultDesignatorName());
2260
+
} elseif (ExtractCoarrayRef(*value)) {
2261
+
Say(expr.source,
2262
+
"A coindexed object may not be used in a pure procedure as the value for component '%s' which has the pointer component '%s'"_err_en_US,
!ERROR: The externally visible object 'modulevar2' may not be used in a pure procedure as the value for component 'hp1' which has the pointer component 'ptop'
88
+
!ERROR: The externally visible object 'modulevar2' may not be used in a pure procedure as the value for component 'hp1' which has the pointer component '%ptop'
86
89
x2 = t2(0)(modulevar2)
87
-
!ERROR: The externally visible object 'modulevar3' may not be used in a pure procedure as the value for component 'hp2' which has the pointer component 'ptop'
90
+
!ERROR: The externally visible object 'modulevar3' may not be used in a pure procedure as the value for component 'hp2' which has the pointer component '%pnested%ptop'
88
91
x3 = t3(0)(modulevar3)
89
-
!ERROR: The externally visible object 'modulevar4' may not be used in a pure procedure as the value for component 'hp3' which has the pointer component 'ptop'
92
+
!ERROR: The externally visible object 'modulevar4' may not be used in a pure procedure as the value for component 'hp3' which has the pointer component '%has_pointer2%pnested%ptop'
90
93
x4 = t4(0)(modulevar4)
94
+
!ERROR: A coindexed object may not be used in a pure procedure as the value for component 'hp1' which has the pointer component '%ptop'
95
+
x2 = t2(0)(co2[1])
96
+
!ERROR: A coindexed object may not be used in a pure procedure as the value for component 'hp2' which has the pointer component '%pnested%ptop'
97
+
x3 = t3(0)(co3[1])
98
+
!ERROR: A coindexed object may not be used in a pure procedure as the value for component 'hp3' which has the pointer component '%has_pointer2%pnested%ptop'
!ERROR: The externally visible object 'modulevar2' may not be used in a pure procedure as the value for component 'hp1' which has the pointer component 'ptop'
138
+
!ERROR: The externally visible object 'modulevar2' may not be used in a pure procedure as the value for component 'hp1' which has the pointer component '%ptop'
127
139
x2a = t2(0)(modulevar2)
128
-
!ERROR: The externally visible object 'modulevar3' may not be used in a pure procedure as the value for component 'hp2' which has the pointer component 'ptop'
140
+
!ERROR: The externally visible object 'modulevar3' may not be used in a pure procedure as the value for component 'hp2' which has the pointer component '%pnested%ptop'
129
141
x3a = t3(0)(modulevar3)
130
-
!ERROR: The externally visible object 'modulevar4' may not be used in a pure procedure as the value for component 'hp3' which has the pointer component 'ptop'
142
+
!ERROR: The externally visible object 'modulevar4' may not be used in a pure procedure as the value for component 'hp3' which has the pointer component '%has_pointer2%pnested%ptop'
131
143
x4a = t4(0)(modulevar4)
144
+
!ERROR: A coindexed object may not be used in a pure procedure as the value for component 'hp1' which has the pointer component '%ptop'
145
+
x2a = t2(0)(co2a[1])
146
+
!ERROR: A coindexed object may not be used in a pure procedure as the value for component 'hp2' which has the pointer component '%pnested%ptop'
147
+
x3a = t3(0)(co3a[1])
148
+
!ERROR: A coindexed object may not be used in a pure procedure as the value for component 'hp3' which has the pointer component '%has_pointer2%pnested%ptop'
0 commit comments