[flang-commits] [flang] [flang] Fix crash in structure constructor lowering (PR #160769)

Peter Klausler via flang-commits flang-commits at lists.llvm.org
Fri Sep 26 09:25:27 PDT 2025


================
@@ -389,7 +389,49 @@ std::size_t Constant<SomeDerived>::CopyFrom(const Constant<SomeDerived> &source,
   return Base::CopyFrom(source, count, resultSubscripts, dimOrder);
 }
 
+static std::optional<int> DerivedTypeDepth(const semantics::Scope &scope) {
+  if (scope.IsDerivedType()) {
+    for (auto iter{scope.cbegin()}; iter != scope.cend(); ++iter) {
+      const Symbol &symbol{*iter->second};
+      if (symbol.test(Symbol::Flag::ParentComp)) {
+        if (const semantics::DeclTypeSpec *type{symbol.GetType()}) {
+          if (const semantics::DerivedTypeSpec *derived{type->AsDerived()}) {
+            const semantics::Scope *parent{derived->scope()};
+            if (!parent) {
----------------
klausler wrote:

Error recovery situations can leave pointers null; our design goal in semantics is to proceed with analysis even after fatal errors.

https://github.com/llvm/llvm-project/pull/160769


More information about the flang-commits mailing list