[flang-commits] [flang] [flang] Fix crash in fuzzer-generated error test. (PR #122199)
Peter Klausler via flang-commits
flang-commits at lists.llvm.org
Wed Jan 8 16:12:57 PST 2025
https://github.com/klausler created https://github.com/llvm/llvm-project/pull/122199
Fixes https://github.com/llvm/llvm-project/issues/121973.
>From 9eaf06b185c18bd89bb687ecbed11c7b6c87c681 Mon Sep 17 00:00:00 2001
From: Peter Klausler <pklausler at nvidia.com>
Date: Wed, 8 Jan 2025 15:59:23 -0800
Subject: [PATCH] [flang] Fix crash in fuzzer-generated error test.
Fixes https://github.com/llvm/llvm-project/issues/121973.
---
flang/lib/Semantics/resolve-names.cpp | 3 +++
flang/test/Semantics/bug121973.f90 | 9 +++++++++
2 files changed, 12 insertions(+)
create mode 100644 flang/test/Semantics/bug121973.f90
diff --git a/flang/lib/Semantics/resolve-names.cpp b/flang/lib/Semantics/resolve-names.cpp
index 724f1b28078356..09355675ff5d55 100644
--- a/flang/lib/Semantics/resolve-names.cpp
+++ b/flang/lib/Semantics/resolve-names.cpp
@@ -8213,6 +8213,9 @@ bool DeclarationVisitor::CheckForHostAssociatedImplicit(
}
bool DeclarationVisitor::IsUplevelReference(const Symbol &symbol) {
+ if (symbol.owner().IsTopLevel()) {
+ return false;
+ }
const Scope &symbolUnit{GetProgramUnitContaining(symbol)};
if (symbolUnit == GetProgramUnitContaining(currScope())) {
return false;
diff --git a/flang/test/Semantics/bug121973.f90 b/flang/test/Semantics/bug121973.f90
new file mode 100644
index 00000000000000..0ae04c808e416b
--- /dev/null
+++ b/flang/test/Semantics/bug121973.f90
@@ -0,0 +1,9 @@
+! RUN: %python %S/test_errors.py %s %flang_fc1
+subroutine s()
+ real(8) :: a
+ !ERROR: COMPLEX(KIND=128) is not a supported type
+ complex(128) :: x
+ a(i)=a + ((i)+1) + 3.14
+ !ERROR: 'a' has not been declared as an array or pointer-valued function
+ a()=z(a * a + n-1 - x) + i((/0,0,0,0,0,0,0,0,0,0/)) + 8
+end
More information about the flang-commits
mailing list