gfortran.exp (gfortran_target_compile): Call dg-additional-files-options
authorDavid Billinghurst <billingd@gcc.gnu.org>
Sun, 5 Jun 2005 23:42:19 +0000 (23:42 +0000)
committerDavid Billinghurst <billingd@gcc.gnu.org>
Sun, 5 Jun 2005 23:42:19 +0000 (23:42 +0000)
2005-06-05  David Billinghurst  <David.Billinghurst@riotinto.com>

* lib/gfortran.exp (gfortran_target_compile): Call
dg-additional-files-options
* gfortran.dg/f2c_4.f90: New file
* gfortran.dg/f2c_4.c: New file
* gfortran.dg/f2c_5.f90: New file
* gfortran.dg/f2c_5.c: New file

From-SVN: r100641

gcc/testsuite/gfortran.dg/f2c_4.c [new file with mode: 0755]
gcc/testsuite/gfortran.dg/f2c_4.f90 [new file with mode: 0755]
gcc/testsuite/gfortran.dg/f2c_5.c [new file with mode: 0755]
gcc/testsuite/gfortran.dg/f2c_5.f90 [new file with mode: 0755]
gcc/testsuite/lib/gfortran.exp

diff --git a/gcc/testsuite/gfortran.dg/f2c_4.c b/gcc/testsuite/gfortran.dg/f2c_4.c
new file mode 100755 (executable)
index 0000000..0d64fc8
--- /dev/null
@@ -0,0 +1,9 @@
+extern double f2c_4b__(double *);
+extern void abort (void);
+
+void f2c_4a__(void) {
+  double a,b;
+  a = 1023.0;
+  b=f2c_4b__(&a);
+  if ( a != b ) abort();
+}
diff --git a/gcc/testsuite/gfortran.dg/f2c_4.f90 b/gcc/testsuite/gfortran.dg/f2c_4.f90
new file mode 100755 (executable)
index 0000000..a03b4f8
--- /dev/null
@@ -0,0 +1,14 @@
+! { dg-do run }
+! { dg-additional-sources f2c_4.c }
+! { dg-options "-ff2c -w" }
+
+! Check -ff2c calling conventions
+!   Return value of REAL function is promoted to C type double
+!   Addional underscore appended to function name  
+call f2c_4a()
+end
+
+real function f2c_4b(x)
+  double precision x
+  f2c_4b = x
+end
diff --git a/gcc/testsuite/gfortran.dg/f2c_5.c b/gcc/testsuite/gfortran.dg/f2c_5.c
new file mode 100755 (executable)
index 0000000..bb57556
--- /dev/null
@@ -0,0 +1,9 @@
+extern float f2c_5b_(double *);
+extern void abort (void);
+
+void f2c_5a_(void) {
+  double a,b;
+  a = 1023.0;
+  b=f2c_5b_(&a);
+  if ( a != b ) abort();
+}
diff --git a/gcc/testsuite/gfortran.dg/f2c_5.f90 b/gcc/testsuite/gfortran.dg/f2c_5.f90
new file mode 100755 (executable)
index 0000000..aa24684
--- /dev/null
@@ -0,0 +1,12 @@
+! { dg-do run }
+! { dg-additional-sources f2c_5.c }
+! { dg-options "-fno-f2c" }
+! Check calling conventions without -ff2c
+program f2c_5  
+  call f2c_5a()
+end
+
+real function f2c_5b(x)
+  double precision x
+  f2c_5b = x
+end
index 43a104e1f51301f2cf5cf5618163d1fa964021bb..850df4f0f03c40615c6924f37f8d1657f173729e 100644 (file)
@@ -188,6 +188,6 @@ proc gfortran_target_compile { source dest type options } {
     lappend options "compiler=$GFORTRAN_UNDER_TEST"
 
     set options [concat "$ALWAYS_GFORTRANFLAGS" $options]
-
+    set options [dg-additional-files-options $options $source]
     return [target_compile $source $dest $type $options]
 }