[PATCH] D83905: [flang] Don't use-associate intrinsics
Tim Keith via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Jul 15 15:08:27 PDT 2020
This revision was automatically updated to reflect the committed changes.
Closed by commit rGfa5e4482e01f: [flang] Don't use-associate intrinsics (authored by tskeith).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D83905/new/
https://reviews.llvm.org/D83905
Files:
flang/lib/Semantics/resolve-names.cpp
flang/test/Semantics/modfile30.f90
flang/test/Semantics/resolve14.f90
Index: flang/test/Semantics/resolve14.f90
===================================================================
--- flang/test/Semantics/resolve14.f90
+++ flang/test/Semantics/resolve14.f90
@@ -3,20 +3,30 @@
integer :: x
integer :: y
integer :: z
+ integer, parameter :: k1 = selected_int_kind(9)
end
module m2
real :: y
real :: z
real :: w
+ integer, parameter :: k2 = selected_int_kind(9)
end
-use m1, xx => x, y => z
-use m2
-volatile w
-!ERROR: Cannot change CONTIGUOUS attribute on use-associated 'w'
-contiguous w
-!ERROR: 'z' is use-associated from module 'm2' and cannot be re-declared
-integer z
-!ERROR: Reference to 'y' is ambiguous
-y = 1
+program p1
+ use m1
+ use m2
+ ! check that selected_int_kind is not use-associated
+ integer, parameter :: k = selected_int_kind(9)
+end
+
+program p2
+ use m1, xx => x, y => z
+ use m2
+ volatile w
+ !ERROR: Cannot change CONTIGUOUS attribute on use-associated 'w'
+ contiguous w
+ !ERROR: 'z' is use-associated from module 'm2' and cannot be re-declared
+ integer z
+ !ERROR: Reference to 'y' is ambiguous
+ y = 1
end
Index: flang/test/Semantics/modfile30.f90
===================================================================
--- flang/test/Semantics/modfile30.f90
+++ flang/test/Semantics/modfile30.f90
@@ -42,7 +42,6 @@
! type(t),parameter::a=t()
!end
-! Don't write out intrinsics
module m3a
integer, parameter :: i4 = selected_int_kind(9)
end
@@ -60,7 +59,6 @@
!Expect: m3b.mod
!module m3b
! use m3a,only:i4
-! use m3a,only:selected_int_kind
! integer(4)::j
!end
@@ -82,7 +80,6 @@
!Expect: m4b.mod
!module m4b
! use m4a,only:a
-! use m4a,only:achar
! character(1_4,1),parameter::b="\001"
!end
Index: flang/lib/Semantics/resolve-names.cpp
===================================================================
--- flang/lib/Semantics/resolve-names.cpp
+++ flang/lib/Semantics/resolve-names.cpp
@@ -2310,6 +2310,7 @@
}
for (const auto &[name, symbol] : *useModuleScope_) {
if (symbol->attrs().test(Attr::PUBLIC) &&
+ !symbol->attrs().test(Attr::INTRINSIC) &&
!symbol->detailsIf<MiscDetails>()) {
if (useNames.count(name) == 0) {
auto *localSymbol{FindInScope(currScope(), name)};
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D83905.278324.patch
Type: text/x-patch
Size: 2253 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200715/9b30ed11/attachment.bin>
More information about the llvm-commits
mailing list