summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gfortran.dg/binding_label_tests_23.f90
diff options
context:
space:
mode:
authorburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>2013-05-20 20:05:40 +0000
committerburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>2013-05-20 20:05:40 +0000
commitda5c730d38bf663ef786ec2138bca9daa6607f61 (patch)
tree39687a43e4fe7d4930831b3a86e693cd333c6c40 /gcc/testsuite/gfortran.dg/binding_label_tests_23.f90
parent7a914593ca6c0be50165cad4fe5ae7909ab19827 (diff)
downloadgcc-da5c730d38bf663ef786ec2138bca9daa6607f61.tar.gz
2013-05-20 Tobias Burnus <burnus@net-b.de>
PR fortran/48858 * decl.c (add_global_entry): Use nonbinding name only for F2003 or if no binding label exists. (gfc_match_entry): Update calls. * parse.c (gfc_global_used): Improve error message. (add_global_procedure): Use nonbinding name only for F2003 or if no binding label exists. (gfc_parse_file): Update call. * resolve.c (resolve_global_procedure): Use binding name when available. * trans-decl.c (gfc_get_extern_function_decl): Ditto. 2013-05-20 Tobias Burnus <burnus@net-b.de> PR fortran/48858 * gfortran.dg/binding_label_tests_17.f90: New. * gfortran.dg/binding_label_tests_18.f90: New. * gfortran.dg/binding_label_tests_19.f90: New. * gfortran.dg/binding_label_tests_20.f90: New. * gfortran.dg/binding_label_tests_21.f90: New. * gfortran.dg/binding_label_tests_22.f90: New. * gfortran.dg/binding_label_tests_23.f90: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@199119 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gfortran.dg/binding_label_tests_23.f90')
-rw-r--r--gcc/testsuite/gfortran.dg/binding_label_tests_23.f9021
1 files changed, 21 insertions, 0 deletions
diff --git a/gcc/testsuite/gfortran.dg/binding_label_tests_23.f90 b/gcc/testsuite/gfortran.dg/binding_label_tests_23.f90
new file mode 100644
index 00000000000..ba9e61550f4
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/binding_label_tests_23.f90
@@ -0,0 +1,21 @@
+! { dg-do run }
+!
+! PR fortran/48858
+!
+integer function foo(x)
+ integer :: x
+ call abort()
+ foo = 99
+end function foo
+
+integer function other() bind(C, name="bar")
+ other = 42
+end function other
+
+program test
+ interface
+ integer function foo() bind(C, name="bar")
+ end function foo
+ end interface
+ if (foo() /= 42) call abort() ! Ensure that the binding name is all what counts
+end program test