summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/module_proc_external_dummy.f90
diff options
context:
space:
mode:
authorpault <pault@138bc75d-0d04-0410-961f-82ee72b054a4>2006-08-30 05:18:36 +0000
committerpault <pault@138bc75d-0d04-0410-961f-82ee72b054a4>2006-08-30 05:18:36 +0000
commite8325fb3c59a35082dd72425fd0f70c49bce96f0 (patch)
treed537dbcb1097607a1a3c621891ffa482aa77638d /gcc/testsuite/gfortran.dg/module_proc_external_dummy.f90
parentc73d53d51e30f626c550b731051ac76d75249b6d (diff)
downloadgcc-e8325fb3c59a35082dd72425fd0f70c49bce96f0.tar.gz
2006-08-30 Paul Thomas <pault@gcc.gnu.org>
PR fortran/28885 REGRESSION FIX * trans-expr.c (gfc_conv_aliased_arg): Ensure that the temp declaration is retained for INTENT(OUT) arguments. PR fortran/28873 REGRESSION FIX PR fortran/20067 * resolve.c (resolve_generic_f): Make error message more comprehensible. (resolve_generic_s): Restructure search for specific procedures to be similar to resolve_generic_f and change to similar error message. Ensure that symbol reference is refreshed, in case the search produces a NULL. (resolve_specific_s): Restructure search, as above and as resolve_specific_f. Ensure that symbol reference is refreshed, in case the search produces a NULL. PR fortran/25077 PR fortran/25102 * interface.c (check_operator_interface): Throw error if the interface assignment tries to change intrinsic type assigments or has less than two arguments. Also, it is an error if an interface operator contains an alternate return. PR fortran/24866 * parse.c (gfc_fixup_sibling_symbols): Do not modify the symbol if it is a dummy in the contained namespace. 2006-08-30 Paul Thomas <pault@gcc.gnu.org> PR fortran/28885 * gfortran.dg/aliasing_dummy_2.f90: New test. PR fortran/20067 * gfortran.dg/generic_5.f90: Change error message. PR fortran/28873 * gfortran.dg/generic_6.f90: New test. PR fortran/25077 * gfortran.dg/redefined_intrinsic_assignment.f90: New test. PR fortran/25102 * gfortran.dg/invalid_interface_assignment.f90: New test. PR fortran/24866 * gfortran.dg/module_proc_external_dummy.f90: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116578 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gfortran.dg/module_proc_external_dummy.f90')
-rw-r--r--gcc/testsuite/gfortran.dg/module_proc_external_dummy.f9029
1 files changed, 29 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/module_proc_external_dummy.f90 b/gcc/testsuite/gfortran.dg/module_proc_external_dummy.f90
new file mode 100644
index 00000000000..08f61b05f6f
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/module_proc_external_dummy.f90
@@ -0,0 +1,29 @@
+! { dg-do compile }
+! This tests the fix for PR24866 in which the reference to the external str, in
+! sub_module, would get mixed up with the module procedure, str, thus
+! causing an ICE. This is a completed version of the reporter's testcase; ie
+! it adds a main program and working subroutines to allow a check for
+! correct functioning.
+!
+! Contributed by Uttam Pawar <uttamp@us.ibm.com>
+!
+ subroutine sub()
+ print *, "external sub"
+ end subroutine sub
+
+module test_module
+ contains
+ subroutine sub_module(str)
+ external :: str
+ call str ()
+ end subroutine sub_module
+ subroutine str()
+ print *, "module str"
+ end subroutine str
+end module test_module
+
+ use test_module
+ external sub
+ call sub_module (sub)
+ call sub_module (str)
+end