diff options
author | doko <doko@6ca36cf4-e1d1-0310-8c6f-e303bb2178ca> | 2015-09-11 01:20:36 +0000 |
---|---|---|
committer | doko <doko@6ca36cf4-e1d1-0310-8c6f-e303bb2178ca> | 2015-09-11 01:20:36 +0000 |
commit | a804e32be177f2dbe6416db78e5af92e1af825ce (patch) | |
tree | 35603f5207a79ee4228df33f0d8e33d23363b1ce | |
parent | b5da5ccf5f3aa4d69108ea7253b42ee294a82b6b (diff) | |
download | gcc-5-a804e32be177f2dbe6416db78e5af92e1af825ce.tar.gz |
* Update to SVN 20150911 (r227671, 5.2.1) from the gcc-5-branch.
git-svn-id: svn://anonscm.debian.org/gcccvs/branches/sid/gcc-5@8223 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca
-rw-r--r-- | debian/changelog | 4 | ||||
-rw-r--r-- | debian/patches/svn-updates.diff | 725 | ||||
-rw-r--r-- | debian/rules.defs | 2 |
3 files changed, 714 insertions, 17 deletions
diff --git a/debian/changelog b/debian/changelog index b8bf444..8b7b916 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,6 @@ gcc-5 (5.2.1-17) UNRELEASED; urgency=medium - * Update to SVN 20150909 (r227597, 5.2.1) from the gcc-5-branch. + * Update to SVN 20150911 (r227671, 5.2.1) from the gcc-5-branch. - Fix PR c++/67369, ICE on valid code. LP: #1489173. [ Matthias Klose ] @@ -21,7 +21,7 @@ gcc-5 (5.2.1-17) UNRELEASED; urgency=medium [ YunQiang Su ] * Fix running the acats tests. Closes: #798531. - -- Matthias Klose <doko@debian.org> Wed, 09 Sep 2015 19:38:13 +0200 + -- Matthias Klose <doko@debian.org> Fri, 11 Sep 2015 03:17:20 +0200 gcc-5 (5.2.1-16) unstable; urgency=medium diff --git a/debian/patches/svn-updates.diff b/debian/patches/svn-updates.diff index 80f0c37..0378934 100644 --- a/debian/patches/svn-updates.diff +++ b/debian/patches/svn-updates.diff @@ -1,10 +1,10 @@ -# DP: updates from the 5 branch upto 20150909 (r227597). +# DP: updates from the 5 branch upto 20150911 (r227671). last_update() { cat > ${dir}LAST_UPDATED <EOF -Wed Sep 9 19:35:03 CEST 2015 -Wed Sep 9 17:35:03 UTC 2015 (revision 227597) +Fri Sep 11 03:15:28 CEST 2015 +Fri Sep 11 01:15:28 UTC 2015 (revision 227671) EOF } @@ -11894,6 +11894,43 @@ Index: libstdc++-v3/aclocal.m4 [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) +Index: boehm-gc/ChangeLog +=================================================================== +--- a/src/boehm-gc/ChangeLog (.../tags/gcc_5_2_0_release) ++++ b/src/boehm-gc/ChangeLog (.../branches/gcc-5-branch) +@@ -1,3 +1,11 @@ ++2015-09-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> ++ ++ Backport from mainline ++ 2015-08-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> ++ ++ * os_dep.c [GC_SOLARIS_THREADS] (GC_dirty_init): Use ++ /proc/<pid>/pagedata instead of PIOCOPENPD. ++ + 2015-07-16 Release Manager + + * GCC 5.2.0 released. +Index: boehm-gc/os_dep.c +=================================================================== +--- a/src/boehm-gc/os_dep.c (.../tags/gcc_5_2_0_release) ++++ b/src/boehm-gc/os_dep.c (.../branches/gcc-5-branch) +@@ -3184,13 +3184,11 @@ + (GC_words_allocd + GC_words_allocd_before_gc)); + # endif + } +- sprintf(buf, "/proc/%d", getpid()); +- fd = open(buf, O_RDONLY); +- if (fd < 0) { ++ sprintf(buf, "/proc/%d/pagedata", getpid()); ++ GC_proc_fd = open(buf, O_RDONLY); ++ if (GC_proc_fd < 0) { + ABORT("/proc open failed"); + } +- GC_proc_fd = syscall(SYS_ioctl, fd, PIOCOPENPD, 0); +- close(fd); + syscall(SYS_fcntl, GC_proc_fd, F_SETFD, FD_CLOEXEC); + if (GC_proc_fd < 0) { + ABORT("/proc ioctl failed"); Index: libgcc/ChangeLog =================================================================== --- a/src/libgcc/ChangeLog (.../tags/gcc_5_2_0_release) @@ -12285,7 +12322,13 @@ Index: gcc/c/ChangeLog =================================================================== --- a/src/gcc/c/ChangeLog (.../tags/gcc_5_2_0_release) +++ b/src/gcc/c/ChangeLog (.../branches/gcc-5-branch) -@@ -1,3 +1,22 @@ +@@ -1,3 +1,28 @@ ++2015-09-10 Jakub Jelinek <jakub@redhat.com> ++ ++ PR c/67502 ++ * c-parser.c (c_parser_omp_for_loop): Emit DECL_EXPR stmts ++ into OMP_FOR_PRE_BODY rather than before the loop. ++ +2015-09-09 Jakub Jelinek <jakub@redhat.com> + + PR c/67501 @@ -12479,6 +12522,49 @@ Index: gcc/c/c-parser.c } if (structured_block) { +@@ -12802,7 +12826,8 @@ + tree clauses, tree *cclauses) + { + tree decl, cond, incr, save_break, save_cont, body, init, stmt, cl; +- tree declv, condv, incrv, initv, ret = NULL; ++ tree declv, condv, incrv, initv, ret = NULL_TREE; ++ tree pre_body = NULL_TREE, this_pre_body; + bool fail = false, open_brace_parsed = false; + int i, collapse = 1, nbraces = 0; + location_t for_loc; +@@ -12846,8 +12871,23 @@ + { + if (i > 0) + vec_safe_push (for_block, c_begin_compound_stmt (true)); ++ this_pre_body = push_stmt_list (); + c_parser_declaration_or_fndef (parser, true, true, true, true, true, + NULL, vNULL); ++ if (this_pre_body) ++ { ++ this_pre_body = pop_stmt_list (this_pre_body); ++ if (pre_body) ++ { ++ tree t = pre_body; ++ pre_body = push_stmt_list (); ++ add_stmt (t); ++ add_stmt (this_pre_body); ++ pre_body = pop_stmt_list (pre_body); ++ } ++ else ++ pre_body = this_pre_body; ++ } + decl = check_for_loop_decls (for_loc, flag_isoc99); + if (decl == NULL) + goto error_init; +@@ -13042,7 +13082,7 @@ + if (!fail) + { + stmt = c_finish_omp_for (loc, code, declv, initv, condv, +- incrv, body, NULL); ++ incrv, body, pre_body); + if (stmt) + { + if (cclauses != NULL Index: gcc/c/c-decl.c =================================================================== --- a/src/gcc/c/c-decl.c (.../tags/gcc_5_2_0_release) @@ -12607,7 +12693,7 @@ Index: gcc/DATESTAMP +++ b/src/gcc/DATESTAMP (.../branches/gcc-5-branch) @@ -1 +1 @@ -20150716 -+20150909 ++20150911 Index: gcc/postreload.c =================================================================== --- a/src/gcc/postreload.c (.../tags/gcc_5_2_0_release) @@ -13072,7 +13158,45 @@ Index: gcc/ChangeLog =================================================================== --- a/src/gcc/ChangeLog (.../tags/gcc_5_2_0_release) +++ b/src/gcc/ChangeLog (.../branches/gcc-5-branch) -@@ -1,3 +1,636 @@ +@@ -1,3 +1,674 @@ ++2015-09-10 Oleg Endo <olegendo@gcc.gnu.org> ++ ++ Backport from mainline ++ 2015-09-10 Oleg Endo <olegendo@gcc.gnu.org> ++ ++ PR target/67506 ++ * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Add ++ missing simplify_gen_subreg. ++ ++2015-09-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> ++ ++ Backport from mainline ++ 2015-08-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> ++ ++ * config.gcc (*-*-solaris2*): Enable default_use_cxa_atexit on ++ Solaris 12+. ++ ++2015-09-10 Jakub Jelinek <jakub@redhat.com> ++ ++ PR c++/67523 ++ * gimplify.c (gimplify_omp_for): If inner stmt is not found ++ for combined loop, assert seen_error () and return GS_ERROR. ++ ++ PR middle-end/67521 ++ * gimplify.c (gimplify_omp_for): Don't call omp_add_variable ++ if decl is already in outer->variables. ++ ++ PR middle-end/67517 ++ * gimplify.c (gimplify_scan_omp_clauses): Instead of ++ asserting that decl is not specified in octx->variables, ++ break out of the loop if it is. ++ ++ PR c++/67514 ++ * gimplify.c (gimplify_omp_for): For loop SIMD construct, if ++ iterator is not explicitly determined, but is defined inside ++ of the combined workshare region, handle it like if it has ++ DECL_EXPR in OMP_FOR_PRE_BODY. ++ +2015-09-09 Marek Polacek <polacek@redhat.com> + + Backport from mainline: @@ -13709,7 +13833,7 @@ Index: gcc/ChangeLog 2015-07-16 Release Manager * GCC 5.2.0 released. -@@ -119,8 +752,8 @@ +@@ -119,8 +790,8 @@ 2015-07-09 Iain Sandoe <iain@codesourcery.com> PR target/66523 @@ -14881,6 +15005,20 @@ Index: gcc/testsuite/gcc.target/s390/zvector/vec-load_bndry-1.c + + vec_load_bndry (p + 96, 4096)[0]; + /* { dg-final { scan-assembler-times "\tvlbb\t%v..?,0\\(%r..?\\),6" 7 } } */ +} +Index: gcc/testsuite/gfortran.dg/pr67526.f90 +=================================================================== +--- a/src/gcc/testsuite/gfortran.dg/pr67526.f90 (.../tags/gcc_5_2_0_release) ++++ b/src/gcc/testsuite/gfortran.dg/pr67526.f90 (.../branches/gcc-5-branch) +@@ -0,0 +1,9 @@ ++! { dg-do compile } ++! Original code from gerhard dot steinmetz dot fortran at t-online dot de ++! PR fortran/67526 ++program p ++ character :: c1 = 'abc'(: ! { dg-error "error in SUBSTRING" } ++ character :: c2 = 'abc'(3: ! { dg-error "error in SUBSTRING" } ++ character :: c3 = 'abc'(:1 ! { dg-error "error in SUBSTRING" } ++ character :: c4 = 'abc'(2:2 ! { dg-error "error in SUBSTRING" } ++end Index: gcc/testsuite/gfortran.dg/pr66864.f90 =================================================================== --- a/src/gcc/testsuite/gfortran.dg/pr66864.f90 (.../tags/gcc_5_2_0_release) @@ -15264,6 +15402,64 @@ Index: gcc/testsuite/gfortran.dg/structure_constructor_13.f03 + end select + end subroutine +end program +Index: gcc/testsuite/gcc.c-torture/compile/pr67506.c +=================================================================== +--- a/src/gcc/testsuite/gcc.c-torture/compile/pr67506.c (.../tags/gcc_5_2_0_release) ++++ b/src/gcc/testsuite/gcc.c-torture/compile/pr67506.c (.../branches/gcc-5-branch) +@@ -0,0 +1,53 @@ ++extern struct _IO_FILE *stderr; ++typedef long integer; ++typedef unsigned char byte; ++short nl; ++byte * tfmfilearray; ++integer charbase, ligkernbase; ++unsigned char charsonline; ++short c; ++unsigned short r; ++struct { ++ short cc; ++ integer rr; ++} labeltable[259]; ++short sortptr; ++unsigned char activity[(32510) + 1]; ++integer ai, acti; ++extern void _IO_putc (char, struct _IO_FILE *); ++ ++void ++mainbody (void) ++{ ++ register integer for_end; ++ if (c <= for_end) ++ do { ++ if (((tfmfilearray + 1001)[4 * (charbase + c) + 2] % 4) == 1) ++ { ++ if ( r < nl ) ++ ; ++ else ++ { ++ while (labeltable[sortptr ].rr > r) ++ labeltable[sortptr + 1 ]= labeltable[sortptr]; ++ } ++ } ++ } while (c++ < for_end); ++ ++ if (ai <= for_end) ++ do { ++ if (activity[ai]== 2) ++ { ++ r = (tfmfilearray + 1001)[4 * (ligkernbase + (ai))]; ++ if (r < 128) ++ { ++ r = r + ai + 1 ; ++ if (r >= nl) ++ { ++ if (charsonline > 0) ++ _IO_putc ('\n', stderr); ++ } ++ } ++ } ++ } while (ai++ < for_end); ++} Index: gcc/testsuite/gcc.dg/gomp/pr67500.c =================================================================== --- a/src/gcc/testsuite/gcc.dg/gomp/pr67500.c (.../tags/gcc_5_2_0_release) @@ -15961,7 +16157,41 @@ Index: gcc/testsuite/ChangeLog =================================================================== --- a/src/gcc/testsuite/ChangeLog (.../tags/gcc_5_2_0_release) +++ b/src/gcc/testsuite/ChangeLog (.../branches/gcc-5-branch) -@@ -1,3 +1,442 @@ +@@ -1,3 +1,476 @@ ++2015-09-10 Steven G. Kargl <kargl@gcc.gnu.org> ++ ++ PR fortran/67526 ++ * gfortran.dg/pr67526.f90: New test. ++ ++2015-09-10 Oleg Endo <olegendo@gcc.gnu.org> ++ ++ Backport from mainline ++ PR target/67506 ++ * gcc.c-torture/compile/pr67506.c: New test. ++ ++2015-09-10 Jakub Jelinek <jakub@redhat.com> ++ ++ PR c++/67523 ++ * g++.dg/gomp/pr67523.C: New test. ++ ++ PR c++/67522 ++ * g++.dg/gomp/pr67522.C: New test. ++ ++ PR middle-end/67521 ++ * c-c++-common/gomp/pr67521.c: New test. ++ ++ PR middle-end/67517 ++ * c-c++-common/gomp/pr67517.c: New test. ++ ++ PR c++/67514 ++ * g++.dg/gomp/pr67514.C: New test. ++ ++ PR c++/67511 ++ * g++.dg/gomp/pr67511.C: New test. ++ ++ PR c/67502 ++ * c-c++-common/gomp/pr67502.c: New test. ++ +2015-09-09 Marek Polacek <polacek@redhat.com> + + Backport from mainline: @@ -16404,7 +16634,7 @@ Index: gcc/testsuite/ChangeLog 2015-07-16 Release Manager * GCC 5.2.0 released. -@@ -792,7 +1231,7 @@ +@@ -792,7 +1265,7 @@ Add missing ChangeLog entry for r222341. Backport from trunk r222273 @@ -16960,6 +17190,131 @@ Index: gcc/testsuite/g++.dg/gomp/pr67504.C + for (int i = 0; i < 10; i++) + ; +} +Index: gcc/testsuite/g++.dg/gomp/pr67522.C +=================================================================== +--- a/src/gcc/testsuite/g++.dg/gomp/pr67522.C (.../tags/gcc_5_2_0_release) ++++ b/src/gcc/testsuite/g++.dg/gomp/pr67522.C (.../branches/gcc-5-branch) +@@ -0,0 +1,26 @@ ++// PR c++/67522 ++// { dg-do compile } ++// { dg-options "-fopenmp" } ++ ++struct S; ++ ++template <int N> ++void ++foo (void) ++{ ++ #pragma omp simd linear (S) // { dg-error "is not a variable in clause" } ++ for (int i = 0; i < 16; i++) ++ ; ++ ++ #pragma omp target map (S[0:10]) // { dg-error "is not a variable in" } ++ ; ++ ++ #pragma omp task depend (inout: S[0:10]) // { dg-error "is not a variable in" } ++ ; ++} ++ ++void ++bar () ++{ ++ foo <0> (); ++} +Index: gcc/testsuite/g++.dg/gomp/pr67514.C +=================================================================== +--- a/src/gcc/testsuite/g++.dg/gomp/pr67514.C (.../tags/gcc_5_2_0_release) ++++ b/src/gcc/testsuite/g++.dg/gomp/pr67514.C (.../branches/gcc-5-branch) +@@ -0,0 +1,30 @@ ++// PR c++/67514 ++// { dg-do compile } ++// { dg-options "-fopenmp" } ++ ++template <class T> ++void ++foo (T x, T y) ++{ ++ #pragma omp parallel ++ #pragma omp for simd ++ for (T i = x; i < y; ++i) ++ ; ++ #pragma omp parallel ++ #pragma omp for simd collapse (2) ++ for (T i = x; i < y; ++i) ++ for (T j = x; j < y; j++) ++ ; ++} ++ ++void ++bar (int *x, int *y) ++{ ++ foo (x, y); ++} ++ ++void ++baz (int x, int y) ++{ ++ foo (x, y); ++} +Index: gcc/testsuite/g++.dg/gomp/pr67523.C +=================================================================== +--- a/src/gcc/testsuite/g++.dg/gomp/pr67523.C (.../tags/gcc_5_2_0_release) ++++ b/src/gcc/testsuite/g++.dg/gomp/pr67523.C (.../branches/gcc-5-branch) +@@ -0,0 +1,29 @@ ++// PR c++/67523 ++// { dg-do compile } ++// { dg-options "-fopenmp" } ++ ++struct S { int s; }; ++ ++template <typename T> ++void foo (T &x, T &y) ++{ ++#pragma omp for simd ++ for (T i = x; i < y; i++) // { dg-error "used with class iteration variable" } ++ ; ++#pragma omp parallel for simd ++ for (T i = x; i < y; i++) // { dg-error "used with class iteration variable" } ++ ; ++#pragma omp target teams distribute parallel for simd ++ for (T i = x; i < y; i++) // { dg-error "used with class iteration variable" } ++ ; ++#pragma omp target teams distribute simd ++ for (T i = x; i < y; i++) // { dg-error "used with class iteration variable" } ++ ; ++} ++ ++void ++bar () ++{ ++ S x, y; ++ foo <S> (x, y); ++} +Index: gcc/testsuite/g++.dg/gomp/pr67511.C +=================================================================== +--- a/src/gcc/testsuite/g++.dg/gomp/pr67511.C (.../tags/gcc_5_2_0_release) ++++ b/src/gcc/testsuite/g++.dg/gomp/pr67511.C (.../branches/gcc-5-branch) +@@ -0,0 +1,20 @@ ++// PR c++/67511 ++// { dg-do compile } ++// { dg-options "-fopenmp" } ++ ++struct I ++{ ++ I (); ++ I (const I &); ++ I &operator++ (); ++ bool operator< (const I &) const; ++}; ++__PTRDIFF_TYPE__ operator- (const I &, const I &); ++ ++void ++foo (I &x, I &y) ++{ ++#pragma omp for ++ for (I i = x; i < y; ++i) // { dg-error "no match for" } ++ ; ++} Index: gcc/testsuite/g++.dg/init/pr66857.C =================================================================== --- a/src/gcc/testsuite/g++.dg/init/pr66857.C (.../tags/gcc_5_2_0_release) @@ -17128,6 +17483,70 @@ Index: gcc/testsuite/c-c++-common/gomp/pr67501.c + for (i = 0; i < 16; ++i) /* { dg-error "is not valid for" "" { target *-*-* } 9 } */ + ; +} +Index: gcc/testsuite/c-c++-common/gomp/pr67502.c +=================================================================== +--- a/src/gcc/testsuite/c-c++-common/gomp/pr67502.c (.../tags/gcc_5_2_0_release) ++++ b/src/gcc/testsuite/c-c++-common/gomp/pr67502.c (.../branches/gcc-5-branch) +@@ -0,0 +1,16 @@ ++/* PR c/67502 */ ++/* { dg-do compile } */ ++/* { dg-options "-fopenmp" } */ ++/* { dg-additional-options "-std=c99" { target c } } */ ++ ++void bar (int, int); ++ ++void ++foo (void) ++{ ++#pragma omp parallel ++#pragma omp for simd collapse(2) ++ for (int i = 0; i < 16; ++i) ++ for (int j = 0; j < 16; ++j) ++ bar (i, j); ++} +Index: gcc/testsuite/c-c++-common/gomp/pr67521.c +=================================================================== +--- a/src/gcc/testsuite/c-c++-common/gomp/pr67521.c (.../tags/gcc_5_2_0_release) ++++ b/src/gcc/testsuite/c-c++-common/gomp/pr67521.c (.../branches/gcc-5-branch) +@@ -0,0 +1,20 @@ ++/* PR middle-end/67521 */ ++/* { dg-do compile } */ ++/* { dg-options "-fopenmp" } */ ++ ++void ++foo (int x) ++{ ++ int i = 0; ++ #pragma omp parallel for simd ++ for (i = (i & x); i < 10; i = i + 2) ++ ; ++ i = 0; ++ #pragma omp parallel for simd ++ for (i = 0; i < (i & x) + 10; i = i + 2) ++ ; ++ i = 0; ++ #pragma omp parallel for simd ++ for (i = 0; i < 10; i = i + ((i & x) + 2)) ++ ; ++} +Index: gcc/testsuite/c-c++-common/gomp/pr67517.c +=================================================================== +--- a/src/gcc/testsuite/c-c++-common/gomp/pr67517.c (.../tags/gcc_5_2_0_release) ++++ b/src/gcc/testsuite/c-c++-common/gomp/pr67517.c (.../branches/gcc-5-branch) +@@ -0,0 +1,13 @@ ++/* PR middle-end/67517 */ ++/* { dg-do compile } */ ++/* { dg-options "-fopenmp" } */ ++ ++int ++foo (int x, int y, int z) ++{ ++ int i; ++ #pragma omp parallel for simd linear (y : x & 15) linear (x : 16) linear (z : x & 15) ++ for (i = 0; i < 256; ++i) ++ x += 16, y += x & 15, z += x & 15; ++ return x + y + z; ++} Index: gcc/cp/class.c =================================================================== --- a/src/gcc/cp/class.c (.../tags/gcc_5_2_0_release) @@ -17262,7 +17681,20 @@ Index: gcc/cp/ChangeLog =================================================================== --- a/src/gcc/cp/ChangeLog (.../tags/gcc_5_2_0_release) +++ b/src/gcc/cp/ChangeLog (.../branches/gcc-5-branch) -@@ -1,3 +1,106 @@ +@@ -1,3 +1,119 @@ ++2015-09-10 Jakub Jelinek <jakub@redhat.com> ++ ++ PR c++/67522 ++ * semantics.c (handle_omp_array_sections_1): Only run ++ type_dependent_expression_p on VAR_DECL/PARM_DECLs. ++ (finish_omp_clauses) <case OMP_CLAUSE_LINEAR>: Likewise. ++ Don't adjust OMP_CLAUSE_LINEAR_STEP if OMP_CLAUSE_DECL ++ is not a VAR_DECL/PARM_DECL. ++ ++ PR c++/67511 ++ * semantics.c (handle_omp_for_class_iterator): Don't wrap ++ error_mark_node into a NOP_EXPR to void_type_node. ++ +2015-09-09 Jakub Jelinek <jakub@redhat.com> + + PR c++/67504 @@ -17515,6 +17947,55 @@ Index: gcc/cp/semantics.c } else if (scope) { +@@ -4294,8 +4295,6 @@ + { + if (error_operand_p (t)) + return error_mark_node; +- if (type_dependent_expression_p (t)) +- return NULL_TREE; + if (TREE_CODE (t) != VAR_DECL && TREE_CODE (t) != PARM_DECL) + { + if (processing_template_decl) +@@ -4318,6 +4317,8 @@ + omp_clause_code_name[OMP_CLAUSE_CODE (c)]); + return error_mark_node; + } ++ if (type_dependent_expression_p (t)) ++ return NULL_TREE; + t = convert_from_reference (t); + return t; + } +@@ -5332,7 +5333,8 @@ + goto check_dup_generic; + case OMP_CLAUSE_LINEAR: + t = OMP_CLAUSE_DECL (c); +- if (!type_dependent_expression_p (t) ++ if ((VAR_P (t) || TREE_CODE (t) == PARM_DECL) ++ && !type_dependent_expression_p (t) + && !INTEGRAL_TYPE_P (TREE_TYPE (t)) + && TREE_CODE (TREE_TYPE (t)) != POINTER_TYPE) + { +@@ -5359,7 +5361,9 @@ + else + { + t = mark_rvalue_use (t); +- if (!processing_template_decl) ++ if (!processing_template_decl ++ && (VAR_P (OMP_CLAUSE_DECL (c)) ++ || TREE_CODE (OMP_CLAUSE_DECL (c)) == PARM_DECL)) + { + if (TREE_CODE (OMP_CLAUSE_DECL (c)) == PARM_DECL) + t = maybe_constant_value (t); +@@ -6452,7 +6456,8 @@ + iter_init = build_x_modify_expr (elocus, + iter, PLUS_EXPR, iter_init, + tf_warning_or_error); +- iter_init = build1 (NOP_EXPR, void_type_node, iter_init); ++ if (iter_init != error_mark_node) ++ iter_init = build1 (NOP_EXPR, void_type_node, iter_init); + finish_expr_stmt (iter_init); + finish_expr_stmt (build_x_modify_expr (elocus, + last, NOP_EXPR, decl, Index: gcc/cp/decl2.c =================================================================== --- a/src/gcc/cp/decl2.c (.../tags/gcc_5_2_0_release) @@ -17823,7 +18304,12 @@ Index: gcc/fortran/ChangeLog =================================================================== --- a/src/gcc/fortran/ChangeLog (.../tags/gcc_5_2_0_release) +++ b/src/gcc/fortran/ChangeLog (.../branches/gcc-5-branch) -@@ -1,3 +1,85 @@ +@@ -1,3 +1,90 @@ ++2015-09-10 Steven G. Kargl <kargl@gcc.gnu.org> ++ ++ PR fortran/67526 ++ * expr.c (gfc_check_init_expr): Do not dereference a NULL pointer. ++ +2015-09-04 Manuel López-Ibáñez <manu@gcc.gnu.org> + + PR fortran/67429 @@ -17909,7 +18395,7 @@ Index: gcc/fortran/ChangeLog 2015-07-16 Release Manager * GCC 5.2.0 released. -@@ -94,7 +176,7 @@ +@@ -94,7 +181,7 @@ 2015-05-19 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/66052 @@ -17918,7 +18404,7 @@ Index: gcc/fortran/ChangeLog 2015-05-19 Steven G. Kargl <kargl@gcc.gnu.org> -@@ -106,7 +188,7 @@ +@@ -106,7 +193,7 @@ PR fortran/66044 * decl.c(gfc_match_entry): Change a gfc_internal_error() into @@ -17927,6 +18413,36 @@ Index: gcc/fortran/ChangeLog 2015-05-19 Steven G. Kargl <kargl@gcc.gnu.org> +Index: gcc/fortran/expr.c +=================================================================== +--- a/src/gcc/fortran/expr.c (.../tags/gcc_5_2_0_release) ++++ b/src/gcc/fortran/expr.c (.../branches/gcc-5-branch) +@@ -2599,14 +2599,18 @@ + break; + + case EXPR_SUBSTRING: +- t = gfc_check_init_expr (e->ref->u.ss.start); +- if (!t) +- break; ++ if (e->ref) ++ { ++ t = gfc_check_init_expr (e->ref->u.ss.start); ++ if (!t) ++ break; + +- t = gfc_check_init_expr (e->ref->u.ss.end); +- if (t) +- t = gfc_simplify_expr (e, 0); +- ++ t = gfc_check_init_expr (e->ref->u.ss.end); ++ if (t) ++ t = gfc_simplify_expr (e, 0); ++ } ++ else ++ t = false; + break; + + case EXPR_STRUCTURE: Index: gcc/fortran/io.c =================================================================== --- a/src/gcc/fortran/io.c (.../tags/gcc_5_2_0_release) @@ -18829,6 +19345,160 @@ Index: gcc/ipa-inline-analysis.c struct inline_edge_summary *es = inline_edge_summary (e); if (!es->predicate || evaluate_predicate (es->predicate, possible_truths)) +Index: gcc/gimplify.c +=================================================================== +--- a/src/gcc/gimplify.c (.../tags/gcc_5_2_0_release) ++++ b/src/gcc/gimplify.c (.../branches/gcc-5-branch) +@@ -6195,9 +6195,12 @@ + } + else + break; +- gcc_checking_assert (splay_tree_lookup (octx->variables, +- (splay_tree_key) +- decl) == NULL); ++ if (splay_tree_lookup (octx->variables, ++ (splay_tree_key) decl) != NULL) ++ { ++ octx = NULL; ++ break; ++ } + flags = GOVD_SEEN; + if (!OMP_CLAUSE_LINEAR_NO_COPYIN (c)) + flags |= GOVD_FIRSTPRIVATE; +@@ -6979,7 +6982,7 @@ + static enum gimplify_status + gimplify_omp_for (tree *expr_p, gimple_seq *pre_p) + { +- tree for_stmt, orig_for_stmt, decl, var, t; ++ tree for_stmt, orig_for_stmt, inner_for_stmt = NULL_TREE, decl, var, t; + enum gimplify_status ret = GS_ALL_DONE; + enum gimplify_status tret; + gomp_for *gfor; +@@ -7022,6 +7025,19 @@ + } + } + ++ if (OMP_FOR_INIT (for_stmt) == NULL_TREE) ++ { ++ gcc_assert (TREE_CODE (for_stmt) != OACC_LOOP); ++ inner_for_stmt = walk_tree (&OMP_FOR_BODY (for_stmt), ++ find_combined_omp_for, NULL, NULL); ++ if (inner_for_stmt == NULL_TREE) ++ { ++ gcc_assert (seen_error ()); ++ *expr_p = NULL_TREE; ++ return GS_ERROR; ++ } ++ } ++ + gimplify_scan_omp_clauses (&OMP_FOR_CLAUSES (for_stmt), pre_p, + simd ? ORT_SIMD : ORT_WORKSHARE); + if (TREE_CODE (for_stmt) == OMP_DISTRIBUTE) +@@ -7057,10 +7073,7 @@ + + if (OMP_FOR_INIT (for_stmt) == NULL_TREE) + { +- gcc_assert (TREE_CODE (for_stmt) != OACC_LOOP); +- for_stmt = walk_tree (&OMP_FOR_BODY (for_stmt), find_combined_omp_for, +- NULL, NULL); +- gcc_assert (for_stmt != NULL_TREE); ++ for_stmt = inner_for_stmt; + gimplify_omp_ctxp->combined_loop = true; + } + +@@ -7104,13 +7117,27 @@ + OMP_CLAUSE_LINEAR_NO_COPYOUT (c) = 1; + flags |= GOVD_LINEAR_LASTPRIVATE_NO_OUTER; + } ++ struct gimplify_omp_ctx *outer ++ = gimplify_omp_ctxp->outer_context; ++ if (outer && !OMP_CLAUSE_LINEAR_NO_COPYOUT (c)) ++ { ++ if (outer->region_type == ORT_WORKSHARE ++ && outer->combined_loop) ++ { ++ n = splay_tree_lookup (outer->variables, ++ (splay_tree_key)decl); ++ if (n != NULL && (n->value & GOVD_LOCAL) != 0) ++ { ++ OMP_CLAUSE_LINEAR_NO_COPYOUT (c) = 1; ++ flags |= GOVD_LINEAR_LASTPRIVATE_NO_OUTER; ++ } ++ } ++ } ++ + OMP_CLAUSE_DECL (c) = decl; + OMP_CLAUSE_CHAIN (c) = OMP_FOR_CLAUSES (for_stmt); + OMP_FOR_CLAUSES (for_stmt) = c; +- + omp_add_variable (gimplify_omp_ctxp, decl, flags); +- struct gimplify_omp_ctx *outer +- = gimplify_omp_ctxp->outer_context; + if (outer && !OMP_CLAUSE_LINEAR_NO_COPYOUT (c)) + { + if (outer->region_type == ORT_WORKSHARE +@@ -7127,10 +7154,16 @@ + outer = NULL; + if (outer) + { +- omp_add_variable (outer, decl, +- GOVD_LASTPRIVATE | GOVD_SEEN); +- if (outer->outer_context) +- omp_notice_variable (outer->outer_context, decl, true); ++ n = splay_tree_lookup (outer->variables, ++ (splay_tree_key)decl); ++ if (n == NULL || (n->value & GOVD_DATA_SHARE_CLASS) == 0) ++ { ++ omp_add_variable (outer, decl, ++ GOVD_LASTPRIVATE | GOVD_SEEN); ++ if (outer->outer_context) ++ omp_notice_variable (outer->outer_context, decl, ++ true); ++ } + } + } + } +@@ -7147,9 +7180,16 @@ + if (outer->region_type == ORT_WORKSHARE + && outer->combined_loop) + { +- if (outer->outer_context +- && (outer->outer_context->region_type +- == ORT_COMBINED_PARALLEL)) ++ n = splay_tree_lookup (outer->variables, ++ (splay_tree_key)decl); ++ if (n != NULL && (n->value & GOVD_LOCAL) != 0) ++ { ++ lastprivate = false; ++ outer = NULL; ++ } ++ else if (outer->outer_context ++ && (outer->outer_context->region_type ++ == ORT_COMBINED_PARALLEL)) + outer = outer->outer_context; + else if (omp_check_private (outer, decl, false)) + outer = NULL; +@@ -7158,10 +7198,16 @@ + outer = NULL; + if (outer) + { +- omp_add_variable (outer, decl, +- GOVD_LASTPRIVATE | GOVD_SEEN); +- if (outer->outer_context) +- omp_notice_variable (outer->outer_context, decl, true); ++ n = splay_tree_lookup (outer->variables, ++ (splay_tree_key)decl); ++ if (n == NULL || (n->value & GOVD_DATA_SHARE_CLASS) == 0) ++ { ++ omp_add_variable (outer, decl, ++ GOVD_LASTPRIVATE | GOVD_SEEN); ++ if (outer->outer_context) ++ omp_notice_variable (outer->outer_context, decl, ++ true); ++ } + } + } + Index: gcc/coretypes.h =================================================================== --- a/src/gcc/coretypes.h (.../tags/gcc_5_2_0_release) @@ -534755,6 +535425,23 @@ Index: gcc/combine.c && (c1 & ~GET_MODE_MASK (tmode)) == 0 && c1 != mask && c1 != GET_MODE_MASK (tmode)) +Index: gcc/config.gcc +=================================================================== +--- a/src/gcc/config.gcc (.../tags/gcc_5_2_0_release) ++++ b/src/gcc/config.gcc (.../branches/gcc-5-branch) +@@ -819,6 +819,12 @@ + sol2_tm_file_head="dbxelf.h elfos.h ${cpu_type}/sysv4.h" + sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h" + sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}" ++ case ${target} in ++ *-*-solaris2.1[2-9]*) ++ # __cxa_atexit was introduced in Solaris 12. ++ default_use_cxa_atexit=yes ++ ;; ++ esac + use_gcc_stdint=wrap + if test x$gnu_ld = xyes; then + tm_file="usegld.h ${tm_file}" Index: gcc/tree-ssa-structalias.c =================================================================== --- a/src/gcc/tree-ssa-structalias.c (.../tags/gcc_5_2_0_release) @@ -535746,7 +536433,17 @@ Index: gcc/config/sh/sh.c && !sh_unspec_insn_p (t_after_negc.insn) && !volatile_insn_p (PATTERN (t_after_negc.insn)) && !side_effects_p (PATTERN (t_after_negc.insn)) -@@ -14162,6 +14163,12 @@ +@@ -13992,6 +13993,9 @@ + else + { + rtx extension_dst = XEXP (set_rtx, 0); ++ if (GET_MODE (extension_dst) != SImode) ++ extension_dst = simplify_gen_subreg (SImode, extension_dst, ++ GET_MODE (extension_dst), 0); + if (modified_between_p (extension_dst, insn, use_at_insn)) + { + if (dump_file) +@@ -14162,6 +14166,12 @@ if (!can_create_pseudo_p ()) return false; diff --git a/debian/rules.defs b/debian/rules.defs index 9ffdc63..9c6861b 100644 --- a/debian/rules.defs +++ b/debian/rules.defs @@ -1416,7 +1416,7 @@ ifneq (,$(filter $(DEB_HOST_ARCH), hppa mips)) with_check := disabled for $(DEB_HOST_ARCH), testsuite timeouts with expect endif endif -with_check := disabled for this upload +#with_check := disabled for this upload # not a dependency on all archs, but if available, use it for the testsuite ifneq (,$(wildcard /usr/bin/localedef)) |