[all-commits] [llvm/llvm-project] 943839: [flang] simplify derived type info table format

jeanPerier via All-commits all-commits at lists.llvm.org
Thu May 20 09:28:40 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 943839870a0be356c40629c75d4583976cb9e812
      https://github.com/llvm/llvm-project/commit/943839870a0be356c40629c75d4583976cb9e812
  Author: Jean Perier <jperier at nvidia.com>
  Date:   2021-05-20 (Thu, 20 May 2021)

  Changed paths:
    M flang/include/flang/Semantics/tools.h
    M flang/include/flang/Semantics/type.h
    M flang/module/__fortran_type_info.f90
    M flang/test/Semantics/typeinfo01.f90

  Log Message:
  -----------
  [flang] simplify derived type info table format

- Replace class(*) member by a c_ptr member to avoid having to handle
  polymorphic components in the type info table generation. Polymorphic
  entity handling will require these very tables to be lowered properly.
  Note: keep the init as NullPointer/Designators. This is technically
  invalid Fortran, the init should have c_ptr type. But wrapping this
  in a C_LOC intrinsic call would make runtime generation and lowering
  more complex with no real benefits.

- ComponentIterator is crashing when used on the generated derived
  types in GetScope. This patch makes GetScope more robust, but it
  is not entirely clear to me why this is only happening with the
  generated derived types.

- The type of generated character globals was incorrect because
  Scope::FindType was matching character types with different
  length. Add a CharacterTypeSpec == operator to fix this.

Differential Revision: https://reviews.llvm.org/D102768




More information about the All-commits mailing list