]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
re PR fortran/35770 (implicit character(s) hides type of internal function)
authorDaniel Kraft <d@domob.eu>
Sat, 13 Sep 2008 07:44:36 +0000 (09:44 +0200)
committerDaniel Kraft <domob@gcc.gnu.org>
Sat, 13 Sep 2008 07:44:36 +0000 (09:44 +0200)
2008-09-13  Daniel Kraft  <d@domob.eu>

PR fortran/35770
* primary.c (gfc_match_varspec): Added missing type-spec clearing
after wrong implicit character typing.

2008-09-13  Daniel Kraft  <d@domob.eu>

PR fortran/35770
* gfortran.dg/implicit_13.f90: New test.

From-SVN: r140336

gcc/fortran/ChangeLog
gcc/fortran/primary.c
gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/implicit_13.f90 [new file with mode: 0644]

index 796d36d07893c2dee7666973597ed572b8ecbf0f..6460957695d12c827d2c410f625ca4e2a57e2933 100644 (file)
@@ -1,3 +1,9 @@
+2008-09-13  Daniel Kraft  <d@domob.eu>
+
+       PR fortran/35770
+       * primary.c (gfc_match_varspec): Added missing type-spec clearing
+       after wrong implicit character typing.
+
 2008-09-12  Richard Guenther  <rguenther@suse.de>
 
        * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Use
index 04c24eb7fe9d1a880b2f80310cb3e453931028aa..f3e1b038918a76acbec3f1be028eded25b06ca3d 100644 (file)
@@ -1869,7 +1869,10 @@ check_substring:
 
        case MATCH_NO:
          if (unknown)
-           gfc_clear_ts (&primary->ts);
+           {
+             gfc_clear_ts (&primary->ts);
+             gfc_clear_ts (&sym->ts);
+           }
          break;
 
        case MATCH_ERROR:
index 37cff09e5b76f3032f9f353c13cf8dd306719f20..55513752a08c8b5b6b1588c5858abb9a2f5a1ac5 100644 (file)
@@ -1,3 +1,8 @@
+2008-09-13  Daniel Kraft  <d@domob.eu>
+
+       PR fortran/35770
+       * gfortran.dg/implicit_13.f90: New test.
+
 2008-09-11  Steve Ellcey  <sje@cup.hp.com>
 
        * gcc.c-torture/compile/pr11832.c: xfail on ia64-*-*.
diff --git a/gcc/testsuite/gfortran.dg/implicit_13.f90 b/gcc/testsuite/gfortran.dg/implicit_13.f90
new file mode 100644 (file)
index 0000000..9007259
--- /dev/null
@@ -0,0 +1,21 @@
+! { dg-do compile }
+
+! PR fortran/35770
+! Implicit declaration hides type of internal function.
+
+! Contributed by Dick Hendrickson <dick.hendrickson@gmail.com>
+
+IMPLICIT CHARACTER (s)
+REAL :: RDA
+
+RDA = S_REAL_SQRT_I(42) ! { dg-bogus "Can't convert" }
+
+CONTAINS
+
+REAL FUNCTION S_REAL_SQRT_I(I) RESULT (R)
+  IMPLICIT NONE
+  INTEGER :: I
+  R = 0.0
+END FUNCTION S_REAL_SQRT_I
+
+END