[all-commits] [llvm/llvm-project] 8320bc: [flang][semantic] Implement semantic checks and ne...

ivanrodriguez3753 via All-commits all-commits at lists.llvm.org
Fri Aug 7 14:40:49 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 8320bcbb3b17dd46d461a18fddd556608fb17b66
      https://github.com/llvm/llvm-project/commit/8320bcbb3b17dd46d461a18fddd556608fb17b66
  Author: ivanrodriguez3753 <48269053+ivanrodriguez3753 at users.noreply.github.com>
  Date:   2026-08-07 (Fri, 07 Aug 2026)

  Changed paths:
    M flang/include/flang/Evaluate/expression.h
    M flang/include/flang/Evaluate/shape.h
    M flang/include/flang/Evaluate/traverse.h
    M flang/include/flang/Evaluate/variable.h
    M flang/include/flang/Semantics/dump-expr.h
    M flang/include/flang/Semantics/symbol.h
    M flang/lib/Evaluate/check-expression.cpp
    M flang/lib/Evaluate/fold-implementation.h
    M flang/lib/Evaluate/fold-integer.cpp
    M flang/lib/Evaluate/formatting.cpp
    M flang/lib/Evaluate/variable.cpp
    M flang/lib/Lower/ConvertExprToHLFIR.cpp
    M flang/lib/Lower/Support/Utils.cpp
    M flang/lib/Parser/unparse.cpp
    M flang/lib/Semantics/check-declarations.cpp
    M flang/lib/Semantics/dump-expr.cpp
    M flang/lib/Semantics/mod-file.cpp
    M flang/lib/Semantics/resolve-names-utils.cpp
    M flang/lib/Semantics/resolve-names-utils.h
    M flang/lib/Semantics/resolve-names.cpp
    M flang/test/Semantics/declaration-explicit-array-bounds.f90
    A flang/test/Semantics/modfile-explicit-shape-bounds.f90
    A flang/test/Semantics/rank1-bound-element-symbols.f90
    M flang/test/Semantics/resolve89.f90
    A flang/test/Semantics/unparse-explicit-array-bounds.f90

  Log Message:
  -----------
  [flang][semantic] Implement semantic checks and new data structure for explicit-shape-bounds-spec (#203030)

Since Lower and large parts of Semantics depend on ShapeSpec being a scalar bound, implement a class RankOneBoundElement that does just this. Since there is no syntactic representation for this node kind, have both unparse.cpp and mod-file.cpp emit the original rank-1 integer array expression instead of scalarized versions.

Analyze does semantic checks, then repackages into an array of scalarized ShapeSpec pairs instead of a pair of arrays.

Lower implementation in follow-up stack PR.

Also, fix pre-existing bug where overriding dimension spec in entity-decl throws away and fails to type check the array-spec provided in dimension spec.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list