Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
Welcome to the Intel Community. If you get an answer you like, please mark it as an Accepted Solution to help others. Thank you!
26733 Discussions

error #6227: This symbol has multiple POINTER statement/attribute declarations which is not allowed

Andrew_Smith
New Contributor III
99 Views

This used to coumple but XE2017 update 2 breaks it. I cannot find a workaround.

Simplest example. The submodule would normally be in a sepeeate file but it makes no difference to the bug:

module A
   implicit none
   interface
      module function getItem(id)
         integer, intent(in) :: id
         real, pointer :: getItem
      end
   end interface
   real, target :: items(10)
end module

submodule(A) A1
   implicit none
contains
   module function getItem(id)
      integer, intent(in) :: id
      real, pointer :: getItem
      getItem => items(id)
   end
end submodule

 

0 Kudos
2 Replies
Andrew_Smith
New Contributor III
99 Views

I found a workaround if I make the interface declaration and and implementer use a "result" type of return.

I had re-written most of my functions similar to this already because of similar bugs in earlier compiler handling of submodule functions.

module function getItem(id) result(foo)
   real, pointer :: foo

 

Devorah_H_Intel
Moderator
99 Views

Hi Andrew,

Thank you for the report, I will escalate this to our Fortran Engineering team. There shouldn't be an error.

Regards,

 

Reply