re PR fortran/40728 (Bogus error "Error: Can't convert UNKNOWN to REAL(8) at (1)")
gcc/fortran/: 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. From-SVN: r159155
This commit is contained in:
parent
2cd5965fa3
commit
db7d7dc173
7 changed files with 50 additions and 14 deletions
|
@ -1,3 +1,9 @@
|
|||
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
|
||||
|
@ -17,6 +23,7 @@
|
|||
|
||||
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.
|
||||
|
||||
|
|
|
@ -956,17 +956,14 @@ gfc_is_intrinsic (gfc_symbol* sym, int subroutine_flag, locus loc)
|
|||
/* 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;
|
||||
}
|
||||
|
|
|
@ -1,3 +1,11 @@
|
|||
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.
|
||||
|
|
|
@ -13,6 +13,6 @@ sync memory ! { dg-error "Fortran 2008:" }
|
|||
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
|
||||
|
|
|
@ -20,7 +20,7 @@ SUBROUTINE no_implicit
|
|||
! 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
|
||||
|
|
24
gcc/testsuite/gfortran.dg/intrinsic_std_5.f03
Normal file
24
gcc/testsuite/gfortran.dg/intrinsic_std_5.f03
Normal file
|
@ -0,0 +1,24 @@
|
|||
! { 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
|
|
@ -4,7 +4,7 @@
|
|||
! 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
|
||||
|
|
Loading…
Add table
Reference in a new issue