2010-05-07 Daniel Franke <franke.daniel@gmail.com>
PR fortran/40728
* intrinc.c (gfc_is_intrinsic): Do not prematurely mark symbol
as external
gcc/testsuite/:
2010-05-07 Daniel Franke <franke.daniel@gmail.com>
PR fortran/40728
* gfortran.dg/coarray_1.f90: Fixed error message.
* gfortran.dg/selected_char_kind_3.f90: Fixed error message.
* gfortran.dg/intrinsic_std_1.f90: Fixed bogus message.
* gfortran.dg/intrinsic_std_5.f90: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159155
138bc75d-0d04-0410-961f-
82ee72b054a4
+2010-05-07 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/40728
+ * intrinc.c (gfc_is_intrinsic): Do not prematurely mark symbol
+ as external
+
2010-05-07 Jason Merrill <jason@redhat.com>
* trans-expr.c (gfc_conv_procedure_call): Rename nullptr to null_ptr
2010-05-05 Daniel Franke <franke.daniel@gmail.com>
+ PR fortran/32331
* resolve.c (traverse_data_list): Rephrase error message for
non-constant bounds in data-implied-do.
/* See if this intrinsic is allowed in the current standard. */
if (gfc_check_intrinsic_standard (isym, &symstd, false, loc) == FAILURE)
{
- if (sym->attr.proc == PROC_UNKNOWN)
- {
- if (gfc_option.warn_intrinsics_std)
- gfc_warning_now ("The intrinsic '%s' at %L is not included in the"
- " selected standard but %s and '%s' will be"
- " treated as if declared EXTERNAL. Use an"
- " appropriate -std=* option or define"
- " -fall-intrinsics to allow this intrinsic.",
- sym->name, &loc, symstd, sym->name);
- gfc_add_external (&sym->attr, &loc);
- }
+ if (sym->attr.proc == PROC_UNKNOWN
+ && gfc_option.warn_intrinsics_std)
+ gfc_warning_now ("The intrinsic '%s' at %L is not included in the"
+ " selected standard but %s and '%s' will be"
+ " treated as if declared EXTERNAL. Use an"
+ " appropriate -std=* option or define"
+ " -fall-intrinsics to allow this intrinsic.",
+ sym->name, &loc, symstd, sym->name);
return false;
}
+2010-05-07 Daniel Franke <franke.daniel@gmail.com>
+
+ PR fortran/40728
+ * gfortran.dg/coarray_1.f90: Fixed error message.
+ * gfortran.dg/selected_char_kind_3.f90: Fixed error message.
+ * gfortran.dg/intrinsic_std_1.f90: Fixed bogus message.
+ * gfortran.dg/intrinsic_std_5.f90: New.
+
2010-05-07 Jason Merrill <jason@redhat.com>
* g++.dg/cpp0x/nullptr20.C: Use sprintf.
sync images(*) ! { dg-error "Fortran 2008:" }
! num_images is implicitly defined:
-n = num_images() ! { dg-error "convert UNKNOWN to INTEGER" }
+n = num_images() ! { dg-error "has no IMPLICIT type" }
error stop 'stop' ! { dg-error "Fortran 2008:" }
end
! ASINH is an intrinsic of F2008
! The warning should be issued in the declaration above where it is declared
! EXTERNAL.
- WRITE (*,*) ASINH (1.) ! { dg-bogus "Fortran 2008" }
+ WRITE (*,*) ASINH (1.) ! { dg-warning "Fortran 2008" }
END SUBROUTINE no_implicit
SUBROUTINE implicit_type
--- /dev/null
+! { dg-do compile }
+! { dg-options "-std=f2003" }
+!
+! PR fortran/40728
+!
+
+! bogus error
+SUBROUTINE s1
+ IMPLICIT NONE
+ real(4), volatile :: r4
+
+ r4 = 0.0_4
+ r4 = asinh(r4) ! { dg-error "has no IMPLICIT type" }
+END SUBROUTINE
+
+
+
+! ICE on invalid (ATANH is defined by F2008 only)
+SUBROUTINE s2
+ IMPLICIT NONE
+ real :: r
+ r = 0.4
+ print *, atanh(r) ! { dg-error "has no IMPLICIT type" }
+END SUBROUTINE
! Check that SELECTED_CHAR_KIND is rejected with -std=f95
!
implicit none
- character(kind=selected_char_kind("ascii")) :: s ! { dg-error "must be an intrinsic function" }
+ character(kind=selected_char_kind("ascii")) :: s ! { dg-error "has no IMPLICIT type" }
s = "" ! { dg-error "has no IMPLICIT type" }
print *, s
end