[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