- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
(This feels a bit familiar, so maybe I've seen or reported it before.)
ifort complains when the target of a pointer component of a base object with the INTENT(IN) attribute is used as the selector in an associate construct and the associate name is then is defined by argument association with an INTENT([IN]OUT) dummy argument.
PROGRAM p
IMPLICIT NONE
TYPE t
INTEGER, POINTER :: ptr_comp
END TYPE t
INTEGER, TARGET :: a_pointer_target
TYPE(t) :: a
a%ptr_comp => a_pointer_target
CALL proc(a)
CONTAINS
SUBROUTINE proc(arg)
TYPE(t), INTENT(IN) :: arg
! 6.4.2p5 A /data-ref/ with more than one /part-ref/ is a subobject of
! its base object if non of the /part-name/s, except for possibly the
! rightmost, are pointers. If the rightmost /part-name/ is the only
! pointer, then the /data-ref/ is a subobject of its base object in
! context that pertain to its pointer association status but not in
! any other contexts.
!
! 16.5.1.6p3: The associate name is associated with the target of the
! pointer...
!
! See also note 5.16.
!
! As x is associated with the target of the pointer, it is associated
! with something that is not a subobject of arg, and hence that thing
! does not have the INTENT(IN) attribute.
ASSOCIATE(x => arg%ptr_comp)
CALL define(x) ! ifort 15.0.0 - error #6780: A dummy argument
! with the INTENT(IN) attribute shall not be
! defined nor become undefined.
END ASSOCIATE
END SUBROUTINE proc
SUBROUTINE define(i)
INTEGER, INTENT(OUT) :: i
i = 6
END SUBROUTINE define
END PROGRAM p
>ifort /check:all /warn:all /standard-semantics "2014-10-13 associate-intent.f90" Intel(R) Visual Fortran Intel(R) 64 Compiler XE for applications running on Intel(R) 64, Version 15.0.0.108 Build 20140726 Copyright (C) 1985-2014 Intel Corporation. All rights reserved. 2014-10-13 associate-intent.f90(34): error #6780: A dummy argument with the INTENT(IN) attribute shall not be defined nor become undefined.CALL define(x) ! ifort 15.0.0 - error #6780: A dummy argument ------------------^ compilation aborted for 2014-10-13 associate-intent.f90 (code 1)
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This is the same as https://software.intel.com/en-us/forums/topic/516612 and should be fixed in Update 1.
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page