Don't call CheckCommonBlockDerivedType() recursively if the
derived type symbol is the same symbol that is already being
processed. This can happen when a component is a pointer of the
same type as its parent component, for instance.
Fixes #60230
Differential D143211
[flang] Avoid infinite recursion in common block check luporl on Feb 2 2023, 12:43 PM. Authored by
Details Don't call CheckCommonBlockDerivedType() recursively if the Fixes #60230
Diff Detail
Event TimelineComment Actions Looks great to me; thanks for digging into this bug and coming up with a good fix. If you're feeling really ambitious, consider moving this whole common block checking task out of name resolution and into declaration checking (Semantics/check-declarations.cpp) which would be a more natural home for this code.
Comment Actions Thanks for the quick review. It seems that moving the common block checking task out of name resolution would require quite some work. Anyway, I guess it's better to leave that for a future patch. |
s/method/member function/