From: Tobias Burnus Date: Sat, 27 Jul 2013 14:17:01 +0000 (+0200) Subject: re PR fortran/57991 (Enhance "Same actual argument associated" warning (-Waliasing)) X-Git-Tag: releases/gcc-4.9.0~4807 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9f1930bea87d274cefe24a19098e565c519ee464;p=thirdparty%2Fgcc.git re PR fortran/57991 (Enhance "Same actual argument associated" warning (-Waliasing)) 2013-07-27 Tobias Burnus PR fortran/57991 * interface.c (check_some_aliasing): Also warn for intent * OUT/OUT. 2013-07-27 Tobias Burnus PR fortran/57991 * gfortran.dg/warn_alias.f90: New. From-SVN: r201286 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 6b95a0dc22fd..559e688206e5 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,8 @@ +2013-07-27 Tobias Burnus + + PR fortran/57991 + * interface.c (check_some_aliasing): Also warn for intent OUT/OUT. + 2013-07-27 Janus Weil PR fortran/57285 diff --git a/gcc/fortran/interface.c b/gcc/fortran/interface.c index 3c794b23c0a0..339dd243c127 100644 --- a/gcc/fortran/interface.c +++ b/gcc/fortran/interface.c @@ -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", diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 0940a3934ce7..fe05cb856901 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2013-07-27 Tobias Burnus + + PR fortran/57991 + * gfortran.dg/warn_alias.f90: New. + 2013-07-27 Janus Weil PR fortran/57285 diff --git a/gcc/testsuite/gfortran.dg/warn_alias.f90 b/gcc/testsuite/gfortran.dg/warn_alias.f90 new file mode 100644 index 000000000000..99b97a61a480 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/warn_alias.f90 @@ -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 +