diff -u gcc-8-8.2.0/debian/changelog gcc-8-8.2.0/debian/changelog --- gcc-8-8.2.0/debian/changelog +++ gcc-8-8.2.0/debian/changelog @@ -1,3 +1,18 @@ +gcc-8 (8.2.0-12ubuntu1) disco; urgency=medium + + * Merge with Debian; remaining changes: + - Build from upstream sources. + + -- Matthias Klose Sun, 09 Dec 2018 11:08:44 +0100 + +gcc-8 (8.2.0-12) unstable; urgency=medium + + * Update to SVN 20181209 (r266918) from the gcc-8-branch. + - Fix PR fortran/88048, PR fortran/88025. + * Back-out the fix for PR c++/87531. Closes: #915980. + + -- Matthias Klose Sun, 09 Dec 2018 11:02:40 +0100 + gcc-8 (8.2.0-11ubuntu1) disco; urgency=medium * Merge with Debian; remaining changes: diff -u gcc-8-8.2.0/debian/patches/svn-updates.diff gcc-8-8.2.0/debian/patches/svn-updates.diff --- gcc-8-8.2.0/debian/patches/svn-updates.diff +++ gcc-8-8.2.0/debian/patches/svn-updates.diff @@ -1,10 +1,10 @@ -# DP: updates from the 8 branch upto 20181206 (r266855). +# DP: updates from the 8 branch upto 20181209 (r266918). last_update() { cat > ${dir}LAST_UPDATED _vptr->_size" 1 "original" } } +Index: gcc/testsuite/gfortran.dg/pr88048.f90 +=================================================================== +--- a/src/gcc/testsuite/gfortran.dg/pr88048.f90 (.../tags/gcc_8_2_0_release) ++++ b/src/gcc/testsuite/gfortran.dg/pr88048.f90 (.../branches/gcc-8-branch) +@@ -0,0 +1,7 @@ ++! { dg-do compile } ++! PR fortran/88048 ++program p ++ integer, parameter :: a(2) = 1 ++ data a(2) /a(1)/ ! { dg-error "definable entity" } ++ print *, a ++end Index: gcc/testsuite/gfortran.dg/array_constructor_type_23.f90 =================================================================== --- a/src/gcc/testsuite/gfortran.dg/array_constructor_type_23.f90 (.../tags/gcc_8_2_0_release) @@ -9692,6 +9704,18 @@ + end do + if (j .ne. 64) stop 2 +end program pr86421 +Index: gcc/testsuite/gfortran.dg/pr88025.f90 +=================================================================== +--- a/src/gcc/testsuite/gfortran.dg/pr88025.f90 (.../tags/gcc_8_2_0_release) ++++ b/src/gcc/testsuite/gfortran.dg/pr88025.f90 (.../branches/gcc-8-branch) +@@ -0,0 +1,7 @@ ++! { dg-do compile } ++! PR fortran/88025 ++program p ++ type t ++ character(('')) :: c = 'c' ! { dg-error "must be of INTEGER type" } ++ end type ++end Index: gcc/testsuite/gfortran.dg/generic_34.f90 =================================================================== --- a/src/gcc/testsuite/gfortran.dg/generic_34.f90 (.../tags/gcc_8_2_0_release) @@ -11639,7 +11663,17 @@ =================================================================== --- a/src/gcc/testsuite/ChangeLog (.../tags/gcc_8_2_0_release) +++ b/src/gcc/testsuite/ChangeLog (.../branches/gcc-8-branch) -@@ -1,3 +1,735 @@ +@@ -1,3 +1,745 @@ ++2018-12-08 Steven G. Kargl ++ ++ PR fortran/88048 ++ * gfortran.dg/pr88048.f90: New test. ++ ++2018-12-08 Steven G. Kargl ++ ++ PR fortran/88025 ++ * gfortran.dg/pr88025.f90: New test. ++ +2018-12-06 Iain Sandoe + + Backport from mainline @@ -12375,7 +12409,7 @@ 2018-07-26 Release Manager * GCC 8.2.0 released. -@@ -8,10 +740,10 @@ +@@ -8,10 +750,10 @@ 2018-07-16 Carl Love PR target/86414 @@ -12388,7 +12422,7 @@ * gcc.target/powerpc/mulkc3-3.c: Ditto. * gcc.target/powerpc/fold-vec-mergehl-double.c: Update counts. * gcc.target/powerpc/pr85456.c: Make check Linux and AIX specific. -@@ -743,7 +1475,7 @@ +@@ -743,7 +1485,7 @@ Backport from mainline 2018-05-11 Martin Liska @@ -12397,7 +12431,7 @@ * c-c++-common/ubsan/attrib-6.c: New test. 2018-05-22 Martin Sebor -@@ -1443,11 +2175,11 @@ +@@ -1443,11 +2185,11 @@ 2018-04-13 Andreas Krebbel @@ -12414,7 +12448,7 @@ 2018-04-13 Jan Hubicka -@@ -2780,7 +3512,7 @@ +@@ -2780,7 +3522,7 @@ * g++.dg/cpp2a/desig7.C: New test. 2018-03-16 Mark Doffman @@ -12423,7 +12457,7 @@ * gfortran.dg/automatic_1.f90: New test. * gfortran.dg/automatic_repeat.f90: New test -@@ -4015,9 +4747,9 @@ +@@ -4015,9 +4757,9 @@ 2018-02-20 Jeff Law @@ -12436,7 +12470,7 @@ * gcc.dg/pr81592.c: New test. * gcc.dg/pr82123.c: New test. * gcc.dg/builtin-unreachable-6.c: Turn off VRP. -@@ -6741,7 +7473,7 @@ +@@ -6741,7 +7483,7 @@ 2018-02-14 Carl Love @@ -15982,7 +16016,19 @@ =================================================================== --- a/src/gcc/fortran/ChangeLog (.../tags/gcc_8_2_0_release) +++ b/src/gcc/fortran/ChangeLog (.../branches/gcc-8-branch) -@@ -1,3 +1,163 @@ +@@ -1,3 +1,175 @@ ++2018-12-08 Steven G. Kargl ++ ++ PR fortran/88048 ++ * resolve.c (check_data_variable): Named constant cannot be a ++ data object. ++ ++2018-12-08 Steven G. Kargl ++ ++ PR fortran/88025 ++ * expr.c (gfc_apply_init): Remove asserts that cannot trigger. ++ Check for a NULL pointer. ++ +2018-11-25 Thomas Koenig + + Backport from trunk @@ -16192,7 +16238,23 @@ if (!gfc_simplify_expr (ap->expr, type)) return false; -@@ -5360,16 +5374,13 @@ +@@ -4273,12 +4287,10 @@ + { + if (ts->type == BT_CHARACTER && !attr->pointer && init + && ts->u.cl +- && ts->u.cl->length && ts->u.cl->length->expr_type == EXPR_CONSTANT) ++ && ts->u.cl->length ++ && ts->u.cl->length->expr_type == EXPR_CONSTANT ++ && ts->u.cl->length->ts.type == BT_INTEGER) + { +- gcc_assert (ts->u.cl && ts->u.cl->length); +- gcc_assert (ts->u.cl->length->expr_type == EXPR_CONSTANT); +- gcc_assert (ts->u.cl->length->ts.type == BT_INTEGER); +- + HOST_WIDE_INT len = gfc_mpz_get_hwi (ts->u.cl->length->value.integer); + + if (init->expr_type == EXPR_CONSTANT) +@@ -5360,16 +5372,13 @@ return expr->value.function.esym->result->attr.contiguous; else { @@ -16395,6 +16457,26 @@ { gfc_error ("ELEMENTAL function %qs at %L must have a scalar " "result", sym->name, &sym->declared_at); +@@ -15350,7 +15360,10 @@ + e = e->value.function.actual->expr; + + if (e->expr_type != EXPR_VARIABLE) +- gfc_internal_error ("check_data_variable(): Bad expression"); ++ { ++ gfc_error ("Expecting definable entity near %L", where); ++ return false; ++ } + + sym = e->symtree->n.sym; + +@@ -15358,6 +15371,7 @@ + { + gfc_error ("BLOCK DATA element %qs at %L must be in COMMON", + sym->name, &sym->declared_at); ++ return false; + } + + if (e->ref == NULL && sym->as) Index: gcc/fortran/trans-decl.c =================================================================== --- a/src/gcc/fortran/trans-decl.c (.../tags/gcc_8_2_0_release) diff -u gcc-8-8.2.0/debian/rules.parameters gcc-8-8.2.0/debian/rules.parameters --- gcc-8-8.2.0/debian/rules.parameters +++ gcc-8-8.2.0/debian/rules.parameters @@ -2,14 +2,14 @@ GCC_VERSION := 8.2.0 NEXT_GCC_VERSION := 8.2.1 BASE_VERSION := 8 -SOURCE_VERSION := 8.2.0-11ubuntu1 -DEB_VERSION := 8.2.0-11ubuntu1 -DEB_EVERSION := 1:8.2.0-11ubuntu1 -DEB_GDC_VERSION := 8.2.0-11ubuntu1 +SOURCE_VERSION := 8.2.0-12ubuntu1 +DEB_VERSION := 8.2.0-12ubuntu1 +DEB_EVERSION := 1:8.2.0-12ubuntu1 +DEB_GDC_VERSION := 8.2.0-12ubuntu1 DEB_SOVERSION := 5 DEB_SOEVERSION := 1:5 DEB_LIBGCC_SOVERSION := -DEB_LIBGCC_VERSION := 1:8.2.0-11ubuntu1 +DEB_LIBGCC_VERSION := 1:8.2.0-12ubuntu1 DEB_STDCXX_SOVERSION := 5 DEB_GOMP_SOVERSION := 5 GCC_SONAME := 1 diff -u gcc-8-8.2.0/debian/rules.patch gcc-8-8.2.0/debian/rules.patch --- gcc-8-8.2.0/debian/rules.patch +++ gcc-8-8.2.0/debian/rules.patch @@ -75,6 +75,7 @@ gcc-force-cross-layout \ kfreebsd-decimal-float \ powerpcspe_remove_many \ + pr87531-revert \ # FIXME: see #915194 # gcc-search-prefixed-as-ld \ only in patch2: unchanged: --- gcc-8-8.2.0.orig/debian/patches/pr87531-revert.diff +++ gcc-8-8.2.0/debian/patches/pr87531-revert.diff @@ -0,0 +1,115 @@ +# DP: Revert the fix for PR c++/87531, causing rejects-valid + +gcc/cp/ + +2018-11-29 Nathan Sidwell + + PR c++/87531 + * class.c (finish_struct): In a template, add artificial using + decl for operator=. + +gcc/testsuite/ + +2018-11-29 Nathan Sidwell + + PR c++/87531 + * g++.dg/lookup/pr87531.C: New. + +--- a/src/gcc/testsuite/g++.dg/lookup/pr87531.C ++++ b/src/gcc/testsuite/g++.dg/lookup/pr87531.C +@@ -1,73 +0,0 @@ +-// PR c+/87531 lookup of operator= in templates +-// { dg-do run } +- +-struct Base { +- void operator= (Base const&); +-}; +- +-void Base::operator= (Base const &) +-{ +-} +- +-template +-struct Derived : Base +-{ +- T v; +- +- Derived() : v (0) {} +- Derived(T v_) : v (v_) {} +- +- T &assign1 (Derived const& rhs) +- { +- operator=(rhs); // erroneously bound to Base::operator= +- return v; +- } +- +- T &assign2 (Derived const& rhs) +- { +- this->operator=(rhs); // erroneously bound to Base::operator= +- return v; +- } +-}; +- +-template +-struct Single +-{ +- T v; +- +- Single () : v (0) {} +- Single (T v_) : v (v_) {} +- +- T &assign1 (Single const& rhs) +- { +- operator=(rhs); // lookup failed +- return v; +- } +- +- T &assign2 (Single const& rhs) +- { +- this->operator=(rhs); // Marked as dependent, happened to work +- return v; +- } +-}; +- +-int main() +-{ +- Derived a, b(123); +- +- if (a.assign1 (b) != 123) +- return 1; +- +- if (a.assign2 (b) != 123) +- return 2; +- +- Single c, d(123); +- +- if (c.assign1 (d) != 123) +- return 3; +- +- if (c.assign2 (d) != 123) +- return 4; +- +- return 0; +-} +--- a/src/gcc/cp/class.c ++++ b/src/gcc/cp/class.c +@@ -7035,19 +7035,6 @@ + else if (DECL_DECLARES_FUNCTION_P (x)) + DECL_IN_AGGR_P (x) = false; + +- /* Also add a USING_DECL for operator=. We know there'll be (at +- least) one, but we don't know the signature(s). We want name +- lookup not to fail or recurse into bases. This isn't added +- to the template decl list so we drop this at instantiation +- time. */ +- tree ass_op = build_lang_decl (USING_DECL, assign_op_identifier, +- NULL_TREE); +- USING_DECL_SCOPE (ass_op) = t; +- DECL_DEPENDENT_P (ass_op) = true; +- DECL_ARTIFICIAL (ass_op) = true; +- DECL_CHAIN (ass_op) = TYPE_FIELDS (t); +- TYPE_FIELDS (t) = ass_op; +- + TYPE_SIZE (t) = bitsize_zero_node; + TYPE_SIZE_UNIT (t) = size_zero_node; + /* COMPLETE_TYPE_P is now true. */