This commit is contained in:
Jakub Jelinek 2015-01-07 18:18:42 +01:00
parent 74b02e66d0
commit 6a4afb791a
4 changed files with 23 additions and 102 deletions

1
.gitignore vendored
View File

@ -29,3 +29,4 @@
/gcc-4.9.2-20141101.tar.bz2
/gcc-4.9.2-20141212.tar.bz2
/gcc-4.9.2-20141217.tar.bz2
/gcc-4.9.2-20150107.tar.bz2

View File

@ -1,9 +1,9 @@
%global DATE 20141217
%global SVNREV 218815
%global DATE 20150107
%global SVNREV 219315
%global gcc_version 4.9.2
# Note, gcc_release must be integer, if you want to add suffixes to
# %{release}, append them after %{gcc_release} on Release: line.
%global gcc_release 3
%global gcc_release 4
%global _unpackaged_files_terminate_build 0
%global _performance_build 1
%global multilib_64_archs sparc64 ppc64 ppc64p7 s390x x86_64
@ -199,8 +199,7 @@ Patch13: gcc49-color-auto.patch
Patch14: gcc49-libgo-p224.patch
Patch15: gcc49-aarch64-async-unw-tables.patch
Patch16: gcc49-aarch64-unwind-opt.patch
Patch17: gcc49-pr61669.patch
Patch18: gcc49-pr64336.patch
Patch17: gcc49-pr64336.patch
Patch1100: cloog-%{cloog_version}-ppc64le-config.patch
@ -728,8 +727,7 @@ package or when debugging this package.
rm -f libgo/go/crypto/elliptic/p224{,_test}.go
%patch15 -p0 -b .aarch64-async-unw-tables~
%patch16 -p0 -b .aarch64-unwind-opt~
%patch17 -p0 -b .pr61669~
%patch18 -p0 -b .pr64336~
%patch17 -p0 -b .pr64336~
%if 0%{?_enable_debug_packages}
cat > split-debuginfo.sh <<\EOF
@ -1200,6 +1198,9 @@ mv %{buildroot}%{_prefix}/%{_lib}/libitm.spec $FULLPATH/
%if %{build_libasan}
mv %{buildroot}%{_prefix}/%{_lib}/libsanitizer.spec $FULLPATH/
%endif
%if %{build_libcilkrts}
mv %{buildroot}%{_prefix}/%{_lib}/libcilkrts.spec $FULLPATH/
%endif
mkdir -p %{buildroot}/%{_lib}
mv -f %{buildroot}%{_prefix}/%{_lib}/libgcc_s.so.1 %{buildroot}/%{_lib}/libgcc_s-%{gcc_version}-%{DATE}.so.1
@ -2053,6 +2054,7 @@ fi
%endif
%if %{build_libcilkrts}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/cilk
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/libcilkrts.spec
%endif
%if %{build_libasan}
%{_prefix}/lib/gcc/%{gcc_target_platform}/%{gcc_version}/include/sanitizer
@ -2805,6 +2807,18 @@ fi
%{_prefix}/libexec/gcc/%{gcc_target_platform}/%{gcc_version}/plugin
%changelog
* Wed Jan 7 2015 Jakub Jelinek <jakub@redhat.com> 4.9.2-4
- update from the 4.9 branch
- PRs ada/64492, c++/38958, c++/60955, c++/63657, c++/63658, c++/64029,
c++/64251, c++/64297, c++/64352, c++/64487, fortran/64244,
libstdc++/64302, libstdc++/64303, rtl-optimization/64010,
target/64409, target/64507
- backport -mskip-rax-setup support from trunk
- fix -fsanitize=float-cast-overflow (PR sanitizer/64344)
- fix handling of fortran components vs. cray pointers (#1134560,
PR fortran/62174)
- package libcilkrts.spec (#1173905)
* Wed Dec 17 2014 Jakub Jelinek <jakub@redhat.com> 4.9.2-3
- update from the 4.9 branch
- PRs libstdc++/64239, sanitizer/64265, target/64200,

View File

@ -1,94 +0,0 @@
2014-12-15 Steven Bosscher <steven@gcc.gnu.org>
PR fortran/61669
* gfortran.h (struct gfc_namespace): Add OLD_DATA field.
* decl.c (gfc_reject_data): New function.
* parse.c *use_modules): Record roll-back point.
(next_statement): Likewise.
(reject_statement): Roll back to last accepted DATA.
2014-12-15 Steven Bosscher <steven@gcc.gnu.org>
Jakub Jelinek <jakub@redhat.com>
PR fortran/61669
* gfortran.dg/pr61669.f90: New test.
--- gcc/fortran/decl.c (revision 218756)
+++ gcc/fortran/decl.c (revision 218757)
@@ -178,6 +178,20 @@ gfc_free_data_all (gfc_namespace *ns)
}
}
+/* Reject data parsed since the last restore point was marked. */
+
+void
+gfc_reject_data (gfc_namespace *ns)
+{
+ gfc_data *d;
+
+ while (ns->data && ns->data != ns->old_data)
+ {
+ d = ns->data->next;
+ free (ns->data);
+ ns->data = d;
+ }
+}
static match var_element (gfc_data_variable *);
--- gcc/fortran/gfortran.h (revision 218756)
+++ gcc/fortran/gfortran.h (revision 218757)
@@ -1627,7 +1627,7 @@ typedef struct gfc_namespace
gfc_st_label *st_labels;
/* This list holds information about all the data initializers in
this namespace. */
- struct gfc_data *data;
+ struct gfc_data *data, *old_data;
gfc_charlen *cl_list, *old_cl_list;
@@ -2929,6 +2929,7 @@ void gfc_free_omp_namelist (gfc_omp_name
void gfc_free_equiv (gfc_equiv *);
void gfc_free_equiv_until (gfc_equiv *, gfc_equiv *);
void gfc_free_data (gfc_data *);
+void gfc_reject_data (gfc_namespace *);
void gfc_free_case_list (gfc_case *);
/* matchexp.c -- FIXME too? */
--- gcc/fortran/parse.c (revision 218756)
+++ gcc/fortran/parse.c (revision 218757)
@@ -119,6 +119,7 @@ use_modules (void)
gfc_warning_check ();
gfc_current_ns->old_cl_list = gfc_current_ns->cl_list;
gfc_current_ns->old_equiv = gfc_current_ns->equiv;
+ gfc_current_ns->old_data = gfc_current_ns->data;
last_was_use_stmt = false;
}
@@ -1098,6 +1099,7 @@ next_statement (void)
gfc_current_ns->old_cl_list = gfc_current_ns->cl_list;
gfc_current_ns->old_equiv = gfc_current_ns->equiv;
+ gfc_current_ns->old_data = gfc_current_ns->data;
for (;;)
{
gfc_statement_label = NULL;
@@ -2043,6 +2045,8 @@ reject_statement (void)
gfc_free_equiv_until (gfc_current_ns->equiv, gfc_current_ns->old_equiv);
gfc_current_ns->equiv = gfc_current_ns->old_equiv;
+ gfc_reject_data (gfc_current_ns);
+
gfc_new_block = NULL;
gfc_undo_symbols ();
gfc_clear_warning ();
--- gcc/testsuite/gfortran.dg/pr61669.f90 (revision 0)
+++ gcc/testsuite/gfortran.dg/pr61669.f90 (revision 218757)
@@ -0,0 +1,7 @@
+! { dg-do compile }
+ write (*,"(a)") char(12)
+ CHARACTER*80 A /"A"/ ! { dg-error "Unexpected data declaration statement" }
+ REAL*4 B ! { dg-error "Unexpected data declaration statement" }
+ write (*,"(a)") char(12)
+ DATA B / 0.02 / ! { dg-warning "Obsolescent feature: DATA statement" }
+ END

View File

@ -1,3 +1,3 @@
e34fca0540d840e5d0f6427e98c92252 cloog-0.18.1.tar.gz
d01e629438a639ebad16d0331cea2575 gcc-4.9.2-20141217.tar.bz2
689887cca4a28c1385169bc5d3a14c77 gcc-4.9.2-20150107.tar.bz2
e039bfcfb6c2ab039b8ee69bf883e824 isl-0.12.2.tar.bz2