re PR fortran/57991 (Enhance "Same actual argument associated" warning (-Waliasing))
2013-07-27 Tobias Burnus <burnus@net-b.de> PR fortran/57991 * interface.c (check_some_aliasing): Also warn for intent * OUT/OUT. 2013-07-27 Tobias Burnus <burnus@net-b.de> PR fortran/57991 * gfortran.dg/warn_alias.f90: New. From-SVN: r201286
This commit is contained in:
parent
c970dc0459
commit
9f1930bea8
4 changed files with 45 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
|||
2013-07-27 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
PR fortran/57991
|
||||
* interface.c (check_some_aliasing): Also warn for intent OUT/OUT.
|
||||
|
||||
2013-07-27 Janus Weil <janus@gcc.gnu.org>
|
||||
|
||||
PR fortran/57285
|
||||
|
|
|
@ -3078,7 +3078,8 @@ check_some_aliasing (gfc_formal_arglist *f, gfc_actual_arglist *a)
|
|||
break;
|
||||
f2_intent = p[j].f->sym->attr.intent;
|
||||
if ((f1_intent == INTENT_IN && f2_intent == INTENT_OUT)
|
||||
|| (f1_intent == INTENT_OUT && f2_intent == INTENT_IN))
|
||||
|| (f1_intent == INTENT_OUT && f2_intent == INTENT_IN)
|
||||
|| (f1_intent == INTENT_OUT && f2_intent == INTENT_OUT))
|
||||
{
|
||||
gfc_warning ("Same actual argument associated with INTENT(%s) "
|
||||
"argument '%s' and INTENT(%s) argument '%s' at %L",
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2013-07-27 Tobias Burnus <burnus@net-b.de>
|
||||
|
||||
PR fortran/57991
|
||||
* gfortran.dg/warn_alias.f90: New.
|
||||
|
||||
2013-07-27 Janus Weil <janus@gcc.gnu.org>
|
||||
|
||||
PR fortran/57285
|
||||
|
|
33
gcc/testsuite/gfortran.dg/warn_alias.f90
Normal file
33
gcc/testsuite/gfortran.dg/warn_alias.f90
Normal file
|
@ -0,0 +1,33 @@
|
|||
! { dg-do compile }
|
||||
! { dg-options "-Waliasing" }
|
||||
!
|
||||
! PR fortran/57991
|
||||
!
|
||||
! Added check for OUT/OUT. IN/OUT and OUT/IN where already check
|
||||
! since GCC 4.0, but not being tested for.
|
||||
|
||||
Program q
|
||||
integer :: x
|
||||
x = 5
|
||||
Call test1(x, x) ! { dg-warning "Same actual argument associated with INTENT.OUT. argument 'a' and INTENT.OUT. argument 'b'" }
|
||||
Call test2(x, x) ! { dg-warning "Same actual argument associated with INTENT.IN. argument 'a' and INTENT.OUT. argument 'b'" }
|
||||
Call test3(x, x) ! { dg-warning "Same actual argument associated with INTENT.OUT. argument 'a' and INTENT.IN. argument 'b'" }
|
||||
Contains
|
||||
Subroutine test1(a,b)
|
||||
Integer, intent(out) :: a
|
||||
Integer, intent(out) :: b
|
||||
b = 5
|
||||
a = 5
|
||||
End Subroutine
|
||||
Subroutine test2(a,b)
|
||||
Integer, intent(in) :: a
|
||||
Integer, intent(out) :: b
|
||||
b = 5 + a
|
||||
End Subroutine
|
||||
Subroutine test3(a,b)
|
||||
Integer, intent(out) :: a
|
||||
Integer, intent(in) :: b
|
||||
a = 5 + b
|
||||
End Subroutine
|
||||
End Program
|
||||
|
Loading…
Add table
Reference in a new issue