Skip to content

Conversation

klausler
Copy link
Contributor

Allow for renaming in USE association of Cray pointers.

Fixes #148559.

Allow for renaming in USE association of Cray pointers.

Fixes llvm#148559.
@llvmbot llvmbot added flang Flang issues not falling into any other category flang:semantics labels Jul 14, 2025
@llvmbot
Copy link
Member

llvmbot commented Jul 14, 2025

@llvm/pr-subscribers-flang-semantics

Author: Peter Klausler (klausler)

Changes

Allow for renaming in USE association of Cray pointers.

Fixes #148559.


Full diff: https://github.com/llvm/llvm-project/pull/148706.diff

2 Files Affected:

  • (modified) flang/lib/Semantics/tools.cpp (+3-3)
  • (added) flang/test/Semantics/bug148559.f90 (+12)
diff --git a/flang/lib/Semantics/tools.cpp b/flang/lib/Semantics/tools.cpp
index 5e5b43f26c791..5a5b02e1ac3ce 100644
--- a/flang/lib/Semantics/tools.cpp
+++ b/flang/lib/Semantics/tools.cpp
@@ -348,9 +348,9 @@ const Symbol &BypassGeneric(const Symbol &symbol) {
 
 const Symbol &GetCrayPointer(const Symbol &crayPointee) {
   const Symbol *found{nullptr};
-  for (const auto &[pointee, pointer] :
-      crayPointee.GetUltimate().owner().crayPointers()) {
-    if (pointee == crayPointee.name()) {
+  const Symbol &ultimate{crayPointee.GetUltimate()};
+  for (const auto &[pointee, pointer] : ultimate.owner().crayPointers()) {
+    if (pointee == ultimate.name()) {
       found = &pointer.get();
       break;
     }
diff --git a/flang/test/Semantics/bug148559.f90 b/flang/test/Semantics/bug148559.f90
new file mode 100644
index 0000000000000..d7b959ac8f191
--- /dev/null
+++ b/flang/test/Semantics/bug148559.f90
@@ -0,0 +1,12 @@
+!RUN: %flang_fc1 -fsyntax-only %s
+!Regression test for crash in semantics on Cray pointers
+
+module m
+  pointer(ptr,pp)
+end module m
+
+program main
+  use m, only:renamea=>pp
+  use m, only:pp
+  print *, renamea
+end

@klausler klausler merged commit 6e0b0ec into llvm:main Jul 16, 2025
12 checks passed
@klausler klausler deleted the bug148559 branch July 16, 2025 16:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
flang:semantics flang Flang issues not falling into any other category
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Flang] A combination of CRAY POINTER and rename in USE statement results in an abnormal compilation termination
4 participants