[all-commits] [llvm/llvm-project] 38763b: [flang] Do not traverse selectors in FindImpureCal...

jeanPerier via All-commits all-commits at lists.llvm.org
Wed Mar 6 05:29:39 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 38763be6ab706e5661e94b68c3aa2069f4c736d8
      https://github.com/llvm/llvm-project/commit/38763be6ab706e5661e94b68c3aa2069f4c736d8
  Author: jeanPerier <jperier at nvidia.com>
  Date:   2024-03-06 (Wed, 06 Mar 2024)

  Changed paths:
    M flang/include/flang/Evaluate/traverse.h
    M flang/lib/Evaluate/tools.cpp
    M flang/test/Semantics/forall01.f90
    M flang/test/Semantics/selecttype03.f90

  Log Message:
  -----------
  [flang] Do not traverse selectors in FindImpureCall and HasVectorSubscript (#84041)

In presence of symbols with AssocEntityDetails in an expression,
`Traverse`, `AnyTraverse`, `AllTraverse`, and `SetTraverse`
automatically visit the selector expression or variable.

This is most often the desired behavior but can be surprising, and was
not correct for FindImpureCall and HasVectorSubscript.

Add a default template option to flag the behavior to someone willing to
use the Traverse helper for a new utility, and set this template to
false for FindImpureCall and HasVectorSubscript.



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