From: Jakub Jelinek Date: Wed, 2 Jul 2014 09:43:08 +0000 (+0200) Subject: decl.c (variable_decl): Reject old style initialization for derived type components. X-Git-Tag: releases/gcc-5.1.0~6529 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b18f1efce09e8cab57d6141754db3456fab938f7;p=thirdparty%2Fgcc.git decl.c (variable_decl): Reject old style initialization for derived type components. * decl.c (variable_decl): Reject old style initialization for derived type components. * gfortran.dg/oldstyle_5.f: New test. Co-Authored-By: Fritz Reese From-SVN: r212227 --- diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index 5ebf40b3b2e6..46ddb8fcfeb5 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2014-07-02 Jakub Jelinek + Fritz Reese + + * decl.c (variable_decl): Reject old style initialization + for derived type components. + 2014-06-29 Francois-Xavier Coudert PR fortran/36275 diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c index 7f7428156e3e..25d92a46d3e9 100644 --- a/gcc/fortran/decl.c +++ b/gcc/fortran/decl.c @@ -1997,6 +1997,13 @@ variable_decl (int elem) if (!gfc_notify_std (GFC_STD_GNU, "Old-style " "initialization at %C")) return MATCH_ERROR; + else if (gfc_current_state () == COMP_DERIVED) + { + gfc_error ("Invalid old style initialization for derived type " + "component at %C"); + m = MATCH_ERROR; + goto cleanup; + } return match_old_style_init (name); } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index b364f407b46c..ad46526bad68 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2014-07-02 Jakub Jelinek + Fritz Reese + + * gfortran.dg/oldstyle_5.f: New test. + 2014-07-02 Uros Bizjak * gfortran.dg/ieee/ieee_1.F90 (dg-additional-options): Remove -O0. diff --git a/gcc/testsuite/gfortran.dg/oldstyle_5.f b/gcc/testsuite/gfortran.dg/oldstyle_5.f new file mode 100644 index 000000000000..8a0d3119fb48 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/oldstyle_5.f @@ -0,0 +1,8 @@ +C { dg-do compile } + TYPE T + INTEGER A(2)/1,2/ ! { dg-error "Invalid old style initialization for derived type component" } + END TYPE + TYPE S + INTEGER B/1/ ! { dg-error "Invalid old style initialization for derived type component" } + END TYPE + END