[all-commits] [llvm/llvm-project] 99a54b: [flang] Lower PRIVATE component names safely (#66076)

jeanPerier via All-commits all-commits at lists.llvm.org
Mon Sep 18 06:00:09 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 99a54b839a441a6e9dd9106c5fd9e547cf1309e5
      https://github.com/llvm/llvm-project/commit/99a54b839a441a6e9dd9106c5fd9e547cf1309e5
  Author: jeanPerier <jperier at nvidia.com>
  Date:   2023-09-18 (Mon, 18 Sep 2023)

  Changed paths:
    M flang/include/flang/Lower/AbstractConverter.h
    M flang/include/flang/Lower/Mangler.h
    M flang/lib/Lower/Bridge.cpp
    M flang/lib/Lower/ConvertConstant.cpp
    M flang/lib/Lower/ConvertExpr.cpp
    M flang/lib/Lower/ConvertExprToHLFIR.cpp
    M flang/lib/Lower/ConvertType.cpp
    M flang/lib/Lower/ConvertVariable.cpp
    M flang/lib/Lower/Mangler.cpp
    A flang/test/Lower/HLFIR/private-components.f90
    M flang/test/Lower/Intrinsics/ieee_class.f90
    M flang/test/Lower/Intrinsics/ieee_operator_eq.f90
    M flang/test/Lower/Intrinsics/ieee_rounding.f90
    M flang/test/Lower/Intrinsics/ieee_unordered.f90

  Log Message:
  -----------
  [flang] Lower PRIVATE component names safely (#66076)

It is possible for a derived type extending a type with private
components to define components with the same name as the private
components.

This was not properly handled by lowering where several fir.record type
component names could end-up being the same, leading to bad generated
code (only the first component was accessed via fir.field_index, leading
to bad generated code).

This patch handles the situation by adding the derived type mangled name
to private component.




More information about the All-commits mailing list