diff options
author | doko <doko@6ca36cf4-e1d1-0310-8c6f-e303bb2178ca> | 2013-10-20 22:41:10 +0000 |
---|---|---|
committer | doko <doko@6ca36cf4-e1d1-0310-8c6f-e303bb2178ca> | 2013-10-20 22:41:10 +0000 |
commit | c083cb4b48d50ca7247ac56c459f51f9ffb608b7 (patch) | |
tree | 58bc63173f9fa89cc442b4267f7ee7320f06219d | |
parent | 3b9da3ee7a83bf8ff748cad92ab4cb2205006281 (diff) | |
download | gcc-47-c083cb4b48d50ca7247ac56c459f51f9ffb608b7.tar.gz |
* Update to SVN 20131020 (r203880) from the gcc-4_7-branch.
git-svn-id: svn://svn.debian.org/svn/gcccvs/branches/sid/gcc-4.7@6986 6ca36cf4-e1d1-0310-8c6f-e303bb2178ca
-rw-r--r-- | debian/changelog | 4 | ||||
-rw-r--r-- | debian/patches/svn-updates.diff | 701 |
2 files changed, 680 insertions, 25 deletions
diff --git a/debian/changelog b/debian/changelog index de79136..b444176 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,9 +1,9 @@ gcc-4.7 (4.7.3-7ubuntu1) UNRELEASED; urgency=low - * Update to SVN 20130920 (r202771) from the gcc-4_7-branch. + * Update to SVN 20131020 (r203880) from the gcc-4_7-branch. * Fix bootstrap of native aarch64 build. - -- Matthias Klose <doko@debian.org> Fri, 20 Sep 2013 11:23:55 +0200 + -- Matthias Klose <doko@debian.org> Sun, 20 Oct 2013 23:08:56 +0200 gcc-4.7 (4.7.3-7) unstable; urgency=low diff --git a/debian/patches/svn-updates.diff b/debian/patches/svn-updates.diff index d5e0ba9..6afa483 100644 --- a/debian/patches/svn-updates.diff +++ b/debian/patches/svn-updates.diff @@ -1,10 +1,10 @@ -# DP: updates from the 4.7 branch upto 20130920 (r202771). +# DP: updates from the 4.7 branch upto 20131020 (r203880). last_updated() { cat > ${dir}LAST_UPDATED <<EOF -Fri Sep 20 11:18:33 CEST 2013 -Fri Sep 20 09:18:33 UTC 2013 (revision 202771) +Sun Oct 20 22:56:37 CEST 2013 +Sun Oct 20 20:56:37 UTC 2013 (revision 203880) EOF } @@ -72,6 +72,27 @@ Index: libstdc++-v3/src/c++11/future.cc return __fec; } } +Index: libstdc++-v3/include/std/future +=================================================================== +--- a/src/libstdc++-v3/include/std/future (.../tags/gcc_4_7_3_release) ++++ b/src/libstdc++-v3/include/std/future (.../branches/gcc-4_7-branch) +@@ -1,6 +1,6 @@ + // <future> -*- C++ -*- + +-// Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation, Inc. ++// Copyright (C) 2009, 2010, 2011, 2012, 2013 Free Software Foundation, Inc. + // + // This file is part of the GNU ISO C++ Library. This library is free + // software; you can redistribute it and/or modify it under the +@@ -456,7 +456,7 @@ + __setter(promise<void>* __prom); + + template<typename _Tp> +- static bool ++ static void + _S_check(const shared_ptr<_Tp>& __p) + { + if (!static_cast<bool>(__p)) Index: libstdc++-v3/include/bits/basic_string.h =================================================================== --- a/src/libstdc++-v3/include/bits/basic_string.h (.../tags/gcc_4_7_3_release) @@ -104,6 +125,102 @@ Index: libstdc++-v3/include/bits/basic_string.h */ template<typename _CharT, typename _Traits, typename _Alloc> inline basic_istream<_CharT, _Traits>& +Index: libstdc++-v3/include/bits/stl_algo.h +=================================================================== +--- a/src/libstdc++-v3/include/bits/stl_algo.h (.../tags/gcc_4_7_3_release) ++++ b/src/libstdc++-v3/include/bits/stl_algo.h (.../branches/gcc-4_7-branch) +@@ -74,10 +74,11 @@ + { + _GLIBCXX_BEGIN_NAMESPACE_VERSION + +- /// Swaps the median value of *__a, *__b and *__c to *__a ++ /// Swaps the median value of *__a, *__b and *__c to *__result + template<typename _Iterator> + void +- __move_median_first(_Iterator __a, _Iterator __b, _Iterator __c) ++ __move_median_to_first(_Iterator __result, _Iterator __a, ++ _Iterator __b, _Iterator __c) + { + // concept requirements + __glibcxx_function_requires(_LessThanComparableConcept< +@@ -86,23 +87,26 @@ + if (*__a < *__b) + { + if (*__b < *__c) +- std::iter_swap(__a, __b); ++ std::iter_swap(__result, __b); + else if (*__a < *__c) +- std::iter_swap(__a, __c); ++ std::iter_swap(__result, __c); ++ else ++ std::iter_swap(__result, __a); + } + else if (*__a < *__c) +- return; ++ std::iter_swap(__result, __a); + else if (*__b < *__c) +- std::iter_swap(__a, __c); ++ std::iter_swap(__result, __c); + else +- std::iter_swap(__a, __b); ++ std::iter_swap(__result, __b); + } + +- /// Swaps the median value of *__a, *__b and *__c under __comp to *__a ++ /// Swaps the median value of *__a, *__b and *__c under __comp to *__result + template<typename _Iterator, typename _Compare> + void +- __move_median_first(_Iterator __a, _Iterator __b, _Iterator __c, +- _Compare __comp) ++ __move_median_to_first(_Iterator __result, _Iterator __a, ++ _Iterator __b, _Iterator __c, ++ _Compare __comp) + { + // concept requirements + __glibcxx_function_requires(_BinaryFunctionConcept<_Compare, bool, +@@ -112,16 +116,18 @@ + if (__comp(*__a, *__b)) + { + if (__comp(*__b, *__c)) +- std::iter_swap(__a, __b); ++ std::iter_swap(__result, __b); + else if (__comp(*__a, *__c)) +- std::iter_swap(__a, __c); ++ std::iter_swap(__result, __c); ++ else ++ std::iter_swap(__result, __a); + } + else if (__comp(*__a, *__c)) +- return; ++ std::iter_swap(__result, __a); + else if (__comp(*__b, *__c)) +- std::iter_swap(__a, __c); ++ std::iter_swap(__result, __c); + else +- std::iter_swap(__a, __b); ++ std::iter_swap(__result, __b); + } + + // for_each +@@ -2305,7 +2311,7 @@ + _RandomAccessIterator __last) + { + _RandomAccessIterator __mid = __first + (__last - __first) / 2; +- std::__move_median_first(__first, __mid, (__last - 1)); ++ std::__move_median_to_first(__first, __first + 1, __mid, __last - 1); + return std::__unguarded_partition(__first + 1, __last, *__first); + } + +@@ -2317,7 +2323,8 @@ + _RandomAccessIterator __last, _Compare __comp) + { + _RandomAccessIterator __mid = __first + (__last - __first) / 2; +- std::__move_median_first(__first, __mid, (__last - 1), __comp); ++ std::__move_median_to_first(__first, __first + 1, __mid, __last - 1, ++ __comp); + return std::__unguarded_partition(__first + 1, __last, *__first, __comp); + } + Index: libstdc++-v3/include/bits/random.tcc =================================================================== --- a/src/libstdc++-v3/include/bits/random.tcc (.../tags/gcc_4_7_3_release) @@ -121,7 +238,35 @@ Index: libstdc++-v3/ChangeLog =================================================================== --- a/src/libstdc++-v3/ChangeLog (.../tags/gcc_4_7_3_release) +++ b/src/libstdc++-v3/ChangeLog (.../branches/gcc-4_7-branch) -@@ -1,3 +1,47 @@ +@@ -1,3 +1,75 @@ ++2013-10-20 Chris Jefferson <chris@bubblescope.net> ++ Paolo Carlini <paolo.carlini@oracle.com> ++ ++ PR libstdc++/58800 ++ * include/bits/stl_algo.h (__unguarded_partition_pivot): Change ++ __last - 2 to __last - 1. ++ * testsuite/25_algorithms/nth_element/58800.cc: New ++ ++2013-09-30 Chris Jefferson <chris@bubblescope.net> ++ ++ PR libstdc++/58437 ++ * include/bits/stl_algo.h (__move_median_first): Rename to ++ __move_median_to_first, change to take an addition argument. ++ (__unguarded_partition_pivot): Adjust. ++ * testsuite/performance/25_algorithms/sort.cc: New. ++ * testsuite/performance/25_algorithms/sort_heap.cc: Likewise. ++ * testsuite/performance/25_algorithms/stable_sort.cc: Likewise. ++ ++2013-09-26 Jonathan Wakely <jwakely.gcc@gmail.com> ++ ++ Backport from mainline ++ ++ 2013-01-19 Jonathan Wakely <jwakely.gcc@gmail.com> ++ ++ PR libstdc++/55861 ++ * include/std/future (_State_base::_S_check(const shared_ptr<T>&)): ++ Fix return type. ++ +2013-09-03 Paolo Carlini <paolo.carlini@oracle.com> + + PR libstdc++/58302 @@ -169,6 +314,63 @@ Index: libstdc++-v3/ChangeLog 2013-04-11 Release Manager * GCC 4.7.3 released. +Index: libstdc++-v3/testsuite/25_algorithms/nth_element/58800.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/25_algorithms/nth_element/58800.cc (.../tags/gcc_4_7_3_release) ++++ b/src/libstdc++-v3/testsuite/25_algorithms/nth_element/58800.cc (.../branches/gcc-4_7-branch) +@@ -0,0 +1,52 @@ ++// Copyright (C) 2013 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 3, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING3. If not see ++// <http://www.gnu.org/licenses/>. ++ ++// 25.3.2 [lib.alg.nth.element] ++ ++// { dg-options "-std=gnu++11" } ++ ++#include <algorithm> ++#include <testsuite_hooks.h> ++#include <testsuite_iterators.h> ++ ++using __gnu_test::test_container; ++using __gnu_test::random_access_iterator_wrapper; ++ ++typedef test_container<int, random_access_iterator_wrapper> Container; ++ ++void test01() ++{ ++ std::vector<int> v = { ++ 207089, ++ 202585, ++ 180067, ++ 157549, ++ 211592, ++ 216096, ++ 207089 ++ }; ++ ++ Container con(v.data(), v.data() + 7); ++ ++ std::nth_element(con.begin(), con.begin() + 3, con.end()); ++} ++ ++int main() ++{ ++ test01(); ++ return 0; ++} Index: libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/58302.cc =================================================================== --- a/src/libstdc++-v3/testsuite/26_numerics/random/negative_binomial_distribution/operators/58302.cc (.../tags/gcc_4_7_3_release) @@ -219,6 +421,224 @@ Index: libstdc++-v3/testsuite/30_threads/condition_variable/members/53841.cc // { dg-options " -std=gnu++0x -pthreads" { target *-*-solaris* } } // { dg-options " -std=gnu++0x " { target *-*-cygwin *-*-darwin* } } // { dg-require-cstdint "" } +Index: libstdc++-v3/testsuite/performance/25_algorithms/stable_sort.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/performance/25_algorithms/stable_sort.cc (.../tags/gcc_4_7_3_release) ++++ b/src/libstdc++-v3/testsuite/performance/25_algorithms/stable_sort.cc (.../branches/gcc-4_7-branch) +@@ -0,0 +1,65 @@ ++// Copyright (C) 2013 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 3, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING3. If not see ++// <http://www.gnu.org/licenses/>. ++ ++#include <vector> ++#include <algorithm> ++#include <testsuite_performance.h> ++ ++int main() ++{ ++ using namespace __gnu_test; ++ ++ time_counter time; ++ resource_counter resource; ++ ++ const int max_size = 10000000; ++ ++ std::vector<int> v(max_size); ++ ++ for (int i = 0; i < max_size; ++i) ++ v[i] = -i; ++ ++ start_counters(time, resource); ++ std::stable_sort(v.begin(), v.end()); ++ stop_counters(time, resource); ++ ++ report_performance(__FILE__, "reverse", time, resource); ++ clear_counters(time, resource); ++ ++ for (int i = 0; i < max_size; ++i) ++ v[i] = i; ++ ++ start_counters(time, resource); ++ std::stable_sort(v.begin(), v.end()); ++ stop_counters(time, resource); ++ ++ report_performance(__FILE__, "forwards", time, resource); ++ clear_counters(time, resource); ++ ++ // a simple psuedo-random series which does not rely on rand() and friends ++ v[0] = 0; ++ for (int i = 1; i < max_size; ++i) ++ v[i] = (v[i-1] + 110211473) * 745988807; ++ ++ start_counters(time, resource); ++ std::stable_sort(v.begin(), v.end()); ++ stop_counters(time, resource); ++ ++ report_performance(__FILE__, "random", time, resource); ++ ++ return 0; ++} +Index: libstdc++-v3/testsuite/performance/25_algorithms/sort_heap.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/performance/25_algorithms/sort_heap.cc (.../tags/gcc_4_7_3_release) ++++ b/src/libstdc++-v3/testsuite/performance/25_algorithms/sort_heap.cc (.../branches/gcc-4_7-branch) +@@ -0,0 +1,73 @@ ++// Copyright (C) 2013 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 3, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING3. If not see ++// <http://www.gnu.org/licenses/>. ++ ++#include <vector> ++#include <algorithm> ++#include <testsuite_performance.h> ++ ++int main() ++{ ++ using namespace __gnu_test; ++ ++ time_counter time; ++ resource_counter resource; ++ ++ const int max_size = 10000000; ++ ++ std::vector<int> v(max_size); ++ ++ for (int i = 0; i < max_size; ++i) ++ v[i] = -i; ++ ++ start_counters(time, resource); ++ std::make_heap(v.begin(), v.end()); ++ stop_counters(time, resource); ++ ++ report_performance(__FILE__, "make_heap_reverse", time, resource); ++ clear_counters(time, resource); ++ ++ for (int i = 0; i < max_size; ++i) ++ v[i] = i; ++ ++ start_counters(time, resource); ++ std::make_heap(v.begin(), v.end()); ++ stop_counters(time, resource); ++ ++ report_performance(__FILE__, "make_heap_forwards", time, resource); ++ clear_counters(time, resource); ++ ++ // a simple psuedo-random series which does not rely on rand() and friends ++ v[0] = 0; ++ for (int i = 1; i < max_size; ++i) ++ v[i] = (v[i-1] + 110211473) * 745988807; ++ ++ start_counters(time, resource); ++ std::make_heap(v.begin(), v.end()); ++ stop_counters(time, resource); ++ ++ report_performance(__FILE__, "make_heap_random", time, resource); ++ ++ ++ start_counters(time, resource); ++ std::sort_heap(v.begin(), v.end()); ++ stop_counters(time, resource); ++ ++ report_performance(__FILE__, "sort_heap", time, resource); ++ clear_counters(time, resource); ++ ++ return 0; ++} +Index: libstdc++-v3/testsuite/performance/25_algorithms/sort.cc +=================================================================== +--- a/src/libstdc++-v3/testsuite/performance/25_algorithms/sort.cc (.../tags/gcc_4_7_3_release) ++++ b/src/libstdc++-v3/testsuite/performance/25_algorithms/sort.cc (.../branches/gcc-4_7-branch) +@@ -0,0 +1,65 @@ ++// Copyright (C) 2013 Free Software Foundation, Inc. ++// ++// This file is part of the GNU ISO C++ Library. This library is free ++// software; you can redistribute it and/or modify it under the ++// terms of the GNU General Public License as published by the ++// Free Software Foundation; either version 3, or (at your option) ++// any later version. ++ ++// This library is distributed in the hope that it will be useful, ++// but WITHOUT ANY WARRANTY; without even the implied warranty of ++// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++// GNU General Public License for more details. ++ ++// You should have received a copy of the GNU General Public License along ++// with this library; see the file COPYING3. If not see ++// <http://www.gnu.org/licenses/>. ++ ++#include <vector> ++#include <algorithm> ++#include <testsuite_performance.h> ++ ++int main() ++{ ++ using namespace __gnu_test; ++ ++ time_counter time; ++ resource_counter resource; ++ ++ const int max_size = 10000000; ++ ++ std::vector<int> v(max_size); ++ ++ for (int i = 0; i < max_size; ++i) ++ v[i] = -i; ++ ++ start_counters(time, resource); ++ std::sort(v.begin(), v.end()); ++ stop_counters(time, resource); ++ ++ report_performance(__FILE__, "reverse", time, resource); ++ clear_counters(time, resource); ++ ++ for (int i = 0; i < max_size; ++i) ++ v[i] = i; ++ ++ start_counters(time, resource); ++ std::sort(v.begin(), v.end()); ++ stop_counters(time, resource); ++ ++ report_performance(__FILE__, "forwards", time, resource); ++ clear_counters(time, resource); ++ ++ // a simple psuedo-random series which does not rely on rand() and friends ++ v[0] = 0; ++ for (int i = 1; i < max_size; ++i) ++ v[i] = (v[i-1] + 110211473) * 745988807; ++ ++ start_counters(time, resource); ++ std::sort(v.begin(), v.end()); ++ stop_counters(time, resource); ++ ++ report_performance(__FILE__, "random", time, resource); ++ ++ return 0; ++} Index: libstdc++-v3/config/os/bsd/darwin/os_defines.h =================================================================== --- a/src/libstdc++-v3/config/os/bsd/darwin/os_defines.h (.../tags/gcc_4_7_3_release) @@ -698,7 +1118,7 @@ Index: gcc/DATESTAMP +++ b/src/gcc/DATESTAMP (.../branches/gcc-4_7-branch) @@ -1 +1 @@ -20130411 -+20130920 ++20131020 Index: gcc/tree-tailcall.c =================================================================== --- a/src/gcc/tree-tailcall.c (.../tags/gcc_4_7_3_release) @@ -899,7 +1319,21 @@ Index: gcc/ChangeLog =================================================================== --- a/src/gcc/ChangeLog (.../tags/gcc_4_7_3_release) +++ b/src/gcc/ChangeLog (.../branches/gcc-4_7-branch) -@@ -1,3 +1,442 @@ +@@ -1,3 +1,456 @@ ++2013-10-02 John David Anglin <danglin@gcc.gnu.org> ++ ++ * config.gcc (hppa*64*-*-linux*): Don't add pa/t-linux to tmake_file. ++ ++2013-09-23 Eric Botcazou <ebotcazou@adacore.com> ++ ++ * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Recurse on copy ++ assignment statements. ++ ++2013-09-20 John David Anglin <danglin@gcc.gnu.org> ++ ++ * config/pa/pa.md: In "scc" insn patterns, change output template to ++ handle const0_rtx in reg_or_0_operand operands. ++ +2013-09-18 Daniel Morris <danielm@ecoscentric.com> + Paolo Carlini <paolo.carlini@oracle.com> + @@ -2066,6 +2500,55 @@ Index: gcc/testsuite/gcc.c-torture/execute/pr56866.c +#endif + return 0; +} +Index: gcc/testsuite/gnat.dg/opt28.adb +=================================================================== +--- a/src/gcc/testsuite/gnat.dg/opt28.adb (.../tags/gcc_4_7_3_release) ++++ b/src/gcc/testsuite/gnat.dg/opt28.adb (.../branches/gcc-4_7-branch) +@@ -0,0 +1,31 @@ ++with Opt28_Pkg; use Opt28_Pkg; ++ ++package body Opt28 is ++ ++ function Full_Filename (Filename : String) return String is ++ Path : constant String := "PATH"; ++ Posix_Path : constant Posix_String := To_Posix (Path); ++ begin ++ ++ declare ++ M : constant Posix_String := Value_Of (Posix_Path); ++ N : constant Posix_String (1 .. M'Length) := M; ++ Var : constant String := To_String (Str => N); ++ Start_Pos : Natural := 1; ++ End_Pos : Natural := 1; ++ begin ++ while Start_Pos <= Var'Length loop ++ End_Pos := Position (Var (Start_Pos .. Var'Length)); ++ ++ if Is_File (To_Posix (Var (Start_Pos .. End_Pos - 1) & Filename)) then ++ return Var (Start_Pos .. End_Pos - 1) & Filename; ++ else ++ Start_Pos := End_Pos + 1; ++ end if; ++ end loop; ++ end; ++ ++ return ""; ++ end; ++ ++end Opt28; +Index: gcc/testsuite/gnat.dg/opt28.ads +=================================================================== +--- a/src/gcc/testsuite/gnat.dg/opt28.ads (.../tags/gcc_4_7_3_release) ++++ b/src/gcc/testsuite/gnat.dg/opt28.ads (.../branches/gcc-4_7-branch) +@@ -0,0 +1,8 @@ ++-- { dg-do compile } ++-- { dg-options "-O2" } ++ ++package Opt28 is ++ ++ function Full_Filename (Filename : String) return String; ++ ++end Opt28; Index: gcc/testsuite/gnat.dg/loop_optimization16_pkg.adb =================================================================== --- a/src/gcc/testsuite/gnat.dg/loop_optimization16_pkg.adb (.../tags/gcc_4_7_3_release) @@ -2126,6 +2609,22 @@ Index: gcc/testsuite/gnat.dg/in_out_parameter4.adb +begin + S := Recurse (Val); +end; +Index: gcc/testsuite/gnat.dg/opt28_pkg.ads +=================================================================== +--- a/src/gcc/testsuite/gnat.dg/opt28_pkg.ads (.../tags/gcc_4_7_3_release) ++++ b/src/gcc/testsuite/gnat.dg/opt28_pkg.ads (.../branches/gcc-4_7-branch) +@@ -0,0 +1,11 @@ ++package Opt28_Pkg is ++ ++ type Posix_String is array (Positive range <>) of aliased Character; ++ ++ function To_Posix (Str : String) return Posix_String; ++ function To_String (Str : Posix_String) return String; ++ function Is_File (Str : Posix_String) return Boolean; ++ function Value_Of (Name : Posix_String) return Posix_String; ++ function Position (In_Line : String) return Natural; ++ ++end Opt28_Pkg; Index: gcc/testsuite/gnat.dg/loop_optimization16.adb =================================================================== --- a/src/gcc/testsuite/gnat.dg/loop_optimization16.adb (.../tags/gcc_4_7_3_release) @@ -2343,7 +2842,18 @@ Index: gcc/testsuite/ChangeLog =================================================================== --- a/src/gcc/testsuite/ChangeLog (.../tags/gcc_4_7_3_release) +++ b/src/gcc/testsuite/ChangeLog (.../branches/gcc-4_7-branch) -@@ -1,3 +1,214 @@ +@@ -1,3 +1,225 @@ ++2013-10-16 Paolo Carlini <paolo.carlini@oracle.com> ++ ++ PR c++/58633 ++ * g++.dg/cpp0x/decltype57.C: New. ++ * g++.dg/cpp0x/enum18.C: Revert r174385 changes. ++ ++2013-09-23 Eric Botcazou <ebotcazou@adacore.com> ++ ++ * gnat.dg/opt28.ad[sb]: New test. ++ * gnat.dg/opt28_pkg.ads: New helper. ++ +2013-09-18 Eric Botcazou <ebotcazou@adacore.com> + + * gnat.dg/in_out_parameter4.adb: New test. @@ -2693,6 +3203,17 @@ Index: gcc/testsuite/g++.dg/cpp0x/lambda/lambda-nullptr.C + test<pdm>(); + test<pmf>(); +} +Index: gcc/testsuite/g++.dg/cpp0x/enum18.C +=================================================================== +--- a/src/gcc/testsuite/g++.dg/cpp0x/enum18.C (.../tags/gcc_4_7_3_release) ++++ b/src/gcc/testsuite/g++.dg/cpp0x/enum18.C (.../branches/gcc-4_7-branch) +@@ -4,5 +4,5 @@ + int main(void) { + enum e {}; + e ev; +- ev.e::~e_u(); // { dg-error "e_u. has not been declared" } ++ ev.e::~e_u(); // { dg-error "" } + } Index: gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr8.C =================================================================== --- a/src/gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr8.C (.../tags/gcc_4_7_3_release) @@ -2752,6 +3273,19 @@ Index: gcc/testsuite/g++.dg/cpp0x/constexpr-array-ptr8.C + unsigned c; +}; +B <C, C> p ("a", "b"); +Index: gcc/testsuite/g++.dg/cpp0x/decltype57.C +=================================================================== +--- a/src/gcc/testsuite/g++.dg/cpp0x/decltype57.C (.../tags/gcc_4_7_3_release) ++++ b/src/gcc/testsuite/g++.dg/cpp0x/decltype57.C (.../branches/gcc-4_7-branch) +@@ -0,0 +1,8 @@ ++// PR c++/58633 ++// { dg-do compile { target c++11 } } ++ ++void foo(int i) ++{ ++ typedef int I; ++ decltype(i.I::~I())* p; ++} Index: gcc/testsuite/g++.dg/template/array26.C =================================================================== --- a/src/gcc/testsuite/g++.dg/template/array26.C (.../tags/gcc_4_7_3_release) @@ -3733,7 +4267,12 @@ Index: gcc/cp/ChangeLog =================================================================== --- a/src/gcc/cp/ChangeLog (.../tags/gcc_4_7_3_release) +++ b/src/gcc/cp/ChangeLog (.../branches/gcc-4_7-branch) -@@ -1,3 +1,62 @@ +@@ -1,3 +1,67 @@ ++2013-10-16 Paolo Carlini <paolo.carlini@oracle.com> ++ ++ PR c++/58633 ++ * parser.c (cp_parser_pseudo_destructor_name): Revert r174385 changes. ++ +2013-09-13 Jason Merrill <jason@redhat.com> + + PR c++/58273 @@ -3896,7 +4435,18 @@ Index: gcc/cp/parser.c =================================================================== --- a/src/gcc/cp/parser.c (.../tags/gcc_4_7_3_release) +++ b/src/gcc/cp/parser.c (.../branches/gcc-4_7-branch) -@@ -16691,7 +16691,7 @@ +@@ -6317,10 +6317,6 @@ + /* Look for the `~'. */ + cp_parser_require (parser, CPP_COMPL, RT_COMPL); + +- /* Once we see the ~, this has to be a pseudo-destructor. */ +- if (!processing_template_decl && !cp_parser_error_occurred (parser)) +- cp_parser_commit_to_tentative_parse (parser); +- + /* Look for the type-name again. We are not responsible for + checking that it matches the first type-name. */ + *type = cp_parser_nonclass_name (parser); +@@ -16691,7 +16687,7 @@ cp_parser_late_return_type_opt (cp_parser* parser, cp_cv_quals quals) { cp_token *token; @@ -3905,7 +4455,7 @@ Index: gcc/cp/parser.c /* Peek at the next token. */ token = cp_lexer_peek_token (parser->lexer); -@@ -16702,8 +16702,8 @@ +@@ -16702,8 +16698,8 @@ /* Consume the ->. */ cp_lexer_consume_token (parser->lexer); @@ -4028,6 +4578,20 @@ Index: gcc/cp/cp-tree.h /* Set CLASS_TYPE_P for T to VAL. T must be a class, struct, or union type. */ #define SET_CLASS_TYPE_P(T, VAL) \ +Index: gcc/tree-ssa-ccp.c +=================================================================== +--- a/src/gcc/tree-ssa-ccp.c (.../tags/gcc_4_7_3_release) ++++ b/src/gcc/tree-ssa-ccp.c (.../branches/gcc-4_7-branch) +@@ -1744,6 +1744,9 @@ + insert_clobber_before_stack_restore (gimple_phi_result (stmt), var, + visited); + } ++ else if (gimple_assign_ssa_name_copy_p (stmt)) ++ insert_clobber_before_stack_restore (gimple_assign_lhs (stmt), var, ++ visited); + else + gcc_assert (is_gimple_debug (stmt)); + } Index: gcc/dwarf2out.c =================================================================== --- a/src/gcc/dwarf2out.c (.../tags/gcc_4_7_3_release) @@ -4071,7 +4635,12 @@ Index: gcc/ada/ChangeLog =================================================================== --- a/src/gcc/ada/ChangeLog (.../tags/gcc_4_7_3_release) +++ b/src/gcc/ada/ChangeLog (.../branches/gcc-4_7-branch) -@@ -1,3 +1,18 @@ +@@ -1,3 +1,23 @@ ++2013-10-19 Eric Botcazou <ebotcazou@adacore.com> ++ ++ * gcc-interface/utils.c (gnat_set_type_context): New function. ++ (gnat_pushdecl): Use it to set the context of the type. ++ +2013-09-18 Eric Botcazou <ebotcazou@adacore.com> + + * gcc-interface/trans.c (Subprogram_Body_to_gnu): Pop the stack of @@ -4090,6 +4659,60 @@ Index: gcc/ada/ChangeLog 2013-04-11 Release Manager * GCC 4.7.3 released. +Index: gcc/ada/gcc-interface/utils.c +=================================================================== +--- a/src/gcc/ada/gcc-interface/utils.c (.../tags/gcc_4_7_3_release) ++++ b/src/gcc/ada/gcc-interface/utils.c (.../branches/gcc-4_7-branch) +@@ -500,6 +500,22 @@ + free_binding_level = level; + } + ++/* Set the context of TYPE and its parallel types (if any) to CONTEXT. */ ++ ++static void ++gnat_set_type_context (tree type, tree context) ++{ ++ tree decl = TYPE_STUB_DECL (type); ++ ++ TYPE_CONTEXT (type) = context; ++ ++ while (decl && DECL_PARALLEL_TYPE (decl)) ++ { ++ TYPE_CONTEXT (DECL_PARALLEL_TYPE (decl)) = context; ++ decl = TYPE_STUB_DECL (DECL_PARALLEL_TYPE (decl)); ++ } ++} ++ + /* Record DECL as belonging to the current lexical scope and use GNAT_NODE + for location information and flag propagation. */ + +@@ -581,7 +597,7 @@ + if (TREE_CODE (t) == POINTER_TYPE) + TYPE_NEXT_PTR_TO (t) = tt; + TYPE_NAME (tt) = DECL_NAME (decl); +- TYPE_CONTEXT (tt) = DECL_CONTEXT (decl); ++ gnat_set_type_context (tt, DECL_CONTEXT (decl)); + TYPE_STUB_DECL (tt) = TYPE_STUB_DECL (t); + DECL_ORIGINAL_TYPE (decl) = tt; + } +@@ -591,7 +607,7 @@ + /* We need a variant for the placeholder machinery to work. */ + tree tt = build_variant_type_copy (t); + TYPE_NAME (tt) = decl; +- TYPE_CONTEXT (tt) = DECL_CONTEXT (decl); ++ gnat_set_type_context (tt, DECL_CONTEXT (decl)); + TREE_USED (tt) = TREE_USED (t); + TREE_TYPE (decl) = tt; + if (DECL_ORIGINAL_TYPE (TYPE_NAME (t))) +@@ -613,7 +629,7 @@ + if (!(TYPE_NAME (t) && TREE_CODE (TYPE_NAME (t)) == TYPE_DECL)) + { + TYPE_NAME (t) = decl; +- TYPE_CONTEXT (t) = DECL_CONTEXT (decl); ++ gnat_set_type_context (t, DECL_CONTEXT (decl)); + } + } + } Index: gcc/ada/gcc-interface/trans.c =================================================================== --- a/src/gcc/ada/gcc-interface/trans.c (.../tags/gcc_4_7_3_release) @@ -4833,6 +5456,18 @@ Index: gcc/collect2-aix.h #define N_UNDEF ((short) 0) #define N_TMASK 060 +Index: gcc/config.gcc +=================================================================== +--- a/src/gcc/config.gcc (.../tags/gcc_4_7_3_release) ++++ b/src/gcc/config.gcc (.../branches/gcc-4_7-branch) +@@ -1064,7 +1064,6 @@ + tm_file="pa/pa64-start.h ${tm_file} dbxelf.h elfos.h gnu-user.h linux.h \ + glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \ + pa/pa64-linux.h" +- tmake_file="${tmake_file} pa/t-linux" + gas=yes gnu_ld=yes + need_64bit_hwint=yes + ;; Index: gcc/tlink.c =================================================================== --- a/src/gcc/tlink.c (.../tags/gcc_4_7_3_release) @@ -6191,7 +6826,7 @@ Index: gcc/config/pa/pa.md =================================================================== --- a/src/gcc/config/pa/pa.md (.../tags/gcc_4_7_3_release) +++ b/src/gcc/config/pa/pa.md (.../branches/gcc-4_7-branch) -@@ -730,7 +730,7 @@ +@@ -730,46 +730,46 @@ (define_insn "scc" [(set (match_operand:SI 0 "register_operand" "=r") (match_operator:SI 3 "comparison_operator" @@ -6199,8 +6834,11 @@ Index: gcc/config/pa/pa.md + [(match_operand:SI 1 "reg_or_0_operand" "rM") (match_operand:SI 2 "arith11_operand" "rI")]))] "" - "{com%I2clr|cmp%I2clr},%B3 %2,%1,%0\;ldi 1,%0" -@@ -740,7 +740,7 @@ +- "{com%I2clr|cmp%I2clr},%B3 %2,%1,%0\;ldi 1,%0" ++ "{com%I2clr|cmp%I2clr},%B3 %2,%r1,%0\;ldi 1,%0" + [(set_attr "type" "binary") + (set_attr "length" "8")]) + (define_insn "" [(set (match_operand:DI 0 "register_operand" "=r") (match_operator:DI 3 "comparison_operator" @@ -6208,8 +6846,11 @@ Index: gcc/config/pa/pa.md + [(match_operand:DI 1 "reg_or_0_operand" "rM") (match_operand:DI 2 "arith11_operand" "rI")]))] "TARGET_64BIT" - "cmp%I2clr,*%B3 %2,%1,%0\;ldi 1,%0" -@@ -750,10 +750,10 @@ +- "cmp%I2clr,*%B3 %2,%1,%0\;ldi 1,%0" ++ "cmp%I2clr,*%B3 %2,%r1,%0\;ldi 1,%0" + [(set_attr "type" "binary") + (set_attr "length" "8")]) + (define_insn "iorscc" [(set (match_operand:SI 0 "register_operand" "=r") (ior:SI (match_operator:SI 3 "comparison_operator" @@ -6221,8 +6862,11 @@ Index: gcc/config/pa/pa.md + [(match_operand:SI 4 "reg_or_0_operand" "rM") (match_operand:SI 5 "arith11_operand" "rI")])))] "" - "{com%I2clr|cmp%I2clr},%S3 %2,%1,%%r0\;{com%I5clr|cmp%I5clr},%B6 %5,%4,%0\;ldi 1,%0" -@@ -763,10 +763,10 @@ +- "{com%I2clr|cmp%I2clr},%S3 %2,%1,%%r0\;{com%I5clr|cmp%I5clr},%B6 %5,%4,%0\;ldi 1,%0" ++ "{com%I2clr|cmp%I2clr},%S3 %2,%r1,%%r0\;{com%I5clr|cmp%I5clr},%B6 %5,%r4,%0\;ldi 1,%0" + [(set_attr "type" "binary") + (set_attr "length" "12")]) + (define_insn "" [(set (match_operand:DI 0 "register_operand" "=r") (ior:DI (match_operator:DI 3 "comparison_operator" @@ -6234,8 +6878,12 @@ Index: gcc/config/pa/pa.md + [(match_operand:DI 4 "reg_or_0_operand" "rM") (match_operand:DI 5 "arith11_operand" "rI")])))] "TARGET_64BIT" - "cmp%I2clr,*%S3 %2,%1,%%r0\;cmp%I5clr,*%B6 %5,%4,%0\;ldi 1,%0" -@@ -778,7 +778,7 @@ +- "cmp%I2clr,*%S3 %2,%1,%%r0\;cmp%I5clr,*%B6 %5,%4,%0\;ldi 1,%0" ++ "cmp%I2clr,*%S3 %2,%r1,%%r0\;cmp%I5clr,*%B6 %5,%r4,%0\;ldi 1,%0" + [(set_attr "type" "binary") + (set_attr "length" "12")]) + +@@ -778,20 +778,20 @@ (define_insn "negscc" [(set (match_operand:SI 0 "register_operand" "=r") (neg:SI (match_operator:SI 3 "comparison_operator" @@ -6243,8 +6891,11 @@ Index: gcc/config/pa/pa.md + [(match_operand:SI 1 "reg_or_0_operand" "rM") (match_operand:SI 2 "arith11_operand" "rI")])))] "" - "{com%I2clr|cmp%I2clr},%B3 %2,%1,%0\;ldi -1,%0" -@@ -788,7 +788,7 @@ +- "{com%I2clr|cmp%I2clr},%B3 %2,%1,%0\;ldi -1,%0" ++ "{com%I2clr|cmp%I2clr},%B3 %2,%r1,%0\;ldi -1,%0" + [(set_attr "type" "binary") + (set_attr "length" "8")]) + (define_insn "" [(set (match_operand:DI 0 "register_operand" "=r") (neg:DI (match_operator:DI 3 "comparison_operator" @@ -6252,7 +6903,11 @@ Index: gcc/config/pa/pa.md + [(match_operand:DI 1 "reg_or_0_operand" "rM") (match_operand:DI 2 "arith11_operand" "rI")])))] "TARGET_64BIT" - "cmp%I2clr,*%B3 %2,%1,%0\;ldi -1,%0" +- "cmp%I2clr,*%B3 %2,%1,%0\;ldi -1,%0" ++ "cmp%I2clr,*%B3 %2,%r1,%0\;ldi -1,%0" + [(set_attr "type" "binary") + (set_attr "length" "8")]) + Index: gcc/config/pa/pa.c =================================================================== --- a/src/gcc/config/pa/pa.c (.../tags/gcc_4_7_3_release) |