---- gcc/config/rs6000/rs6000.c (.../tags/gcc_4_5_3_release) (wersja 173771)
-+++ gcc/config/rs6000/rs6000.c (.../branches/gcc-4_5-branch) (wersja 173771)
-@@ -5426,10 +5426,11 @@
-
- if (model == TLS_MODEL_GLOBAL_DYNAMIC)
- {
-- r3 = gen_rtx_REG (Pmode, 3);
- tga = rs6000_tls_get_addr ();
-- emit_library_call_value (tga, dest, LCT_CONST, Pmode, 1, r3, Pmode);
-+ emit_library_call_value (tga, dest, LCT_CONST, Pmode,
-+ 1, const0_rtx, Pmode);
-
-+ r3 = gen_rtx_REG (Pmode, 3);
- if (DEFAULT_ABI == ABI_AIX && TARGET_64BIT)
- insn = gen_tls_gd_aix64 (r3, got, addr, tga, const0_rtx);
- else if (DEFAULT_ABI == ABI_AIX && !TARGET_64BIT)
-@@ -5446,11 +5447,12 @@
- }
- else if (model == TLS_MODEL_LOCAL_DYNAMIC)
- {
-- r3 = gen_rtx_REG (Pmode, 3);
- tga = rs6000_tls_get_addr ();
- tmp1 = gen_reg_rtx (Pmode);
-- emit_library_call_value (tga, tmp1, LCT_CONST, Pmode, 1, r3, Pmode);
-+ emit_library_call_value (tga, tmp1, LCT_CONST, Pmode,
-+ 1, const0_rtx, Pmode);
-
-+ r3 = gen_rtx_REG (Pmode, 3);
- if (DEFAULT_ABI == ABI_AIX && TARGET_64BIT)
- insn = gen_tls_ld_aix64 (r3, got, tga, const0_rtx);
- else if (DEFAULT_ABI == ABI_AIX && !TARGET_64BIT)
-@@ -6694,7 +6696,7 @@
-
- /* Nonzero if we can use an AltiVec register to pass this arg. */
- #define USE_ALTIVEC_FOR_ARG_P(CUM,MODE,TYPE,NAMED) \
-- ((ALTIVEC_VECTOR_MODE (MODE) || VSX_VECTOR_MODE (MODE)) \
-+ (ALTIVEC_OR_VSX_VECTOR_MODE (MODE) \
- && (CUM)->vregno <= ALTIVEC_ARG_MAX_REG \
- && TARGET_ALTIVEC_ABI \
- && (NAMED))
-@@ -6920,7 +6922,7 @@
- existing library interfaces.
-
- Doubleword align SPE vectors.
-- Quadword align Altivec vectors.
-+ Quadword align Altivec/VSX vectors.
- Quadword align large synthetic vector types. */
-
- int
-@@ -6937,7 +6939,7 @@
- && int_size_in_bytes (type) >= 8
- && int_size_in_bytes (type) < 16))
- return 64;
-- else if ((ALTIVEC_VECTOR_MODE (mode) || VSX_VECTOR_MODE (mode))
-+ else if (ALTIVEC_OR_VSX_VECTOR_MODE (mode)
- || (type && TREE_CODE (type) == VECTOR_TYPE
- && int_size_in_bytes (type) >= 16))
- return 128;
-@@ -7082,8 +7084,7 @@
- cum->nargs_prototype--;
-
- if (TARGET_ALTIVEC_ABI
-- && (ALTIVEC_VECTOR_MODE (mode)
-- || VSX_VECTOR_MODE (mode)
-+ && (ALTIVEC_OR_VSX_VECTOR_MODE (mode)
- || (type && TREE_CODE (type) == VECTOR_TYPE
- && int_size_in_bytes (type) == 16)))
- {
-@@ -7677,8 +7678,7 @@
- else
- return gen_rtx_REG (mode, cum->vregno);
- else if (TARGET_ALTIVEC_ABI
-- && (ALTIVEC_VECTOR_MODE (mode)
-- || VSX_VECTOR_MODE (mode)
-+ && (ALTIVEC_OR_VSX_VECTOR_MODE (mode)
- || (type && TREE_CODE (type) == VECTOR_TYPE
- && int_size_in_bytes (type) == 16)))
- {
-@@ -18280,7 +18280,7 @@
-
- /* Some cases that need register indexed addressing. */
- if ((TARGET_ALTIVEC_ABI && ALTIVEC_VECTOR_MODE (mode))
-- || (TARGET_VSX && VSX_VECTOR_MODE (mode))
-+ || (TARGET_VSX && ALTIVEC_OR_VSX_VECTOR_MODE (mode))
- || (TARGET_E500_DOUBLE && mode == DFmode)
- || (TARGET_SPE_ABI
- && SPE_VECTOR_MODE (mode)
-@@ -25565,14 +25565,13 @@
- else if (TREE_CODE (valtype) == COMPLEX_TYPE
- && targetm.calls.split_complex_arg)
- return rs6000_complex_function_value (mode);
-+ /* VSX is a superset of Altivec and adds V2DImode/V2DFmode. Since the same
-+ return register is used in both cases, and we won't see V2DImode/V2DFmode
-+ for pure altivec, combine the two cases. */
- else if (TREE_CODE (valtype) == VECTOR_TYPE
- && TARGET_ALTIVEC && TARGET_ALTIVEC_ABI
-- && ALTIVEC_VECTOR_MODE (mode))
-+ && ALTIVEC_OR_VSX_VECTOR_MODE (mode))
- regno = ALTIVEC_ARG_RETURN;
-- else if (TREE_CODE (valtype) == VECTOR_TYPE
-- && TARGET_VSX && TARGET_ALTIVEC_ABI
-- && VSX_VECTOR_MODE (mode))
-- regno = ALTIVEC_ARG_RETURN;
- else if (TARGET_E500_DOUBLE && TARGET_HARD_FLOAT
- && (mode == DFmode || mode == DCmode
- || mode == TFmode || mode == TCmode))
-@@ -25611,12 +25610,12 @@
- && TARGET_HARD_FLOAT && TARGET_FPRS
- && ((TARGET_SINGLE_FLOAT && mode == SFmode) || TARGET_DOUBLE_FLOAT))
- regno = FP_ARG_RETURN;
-- else if (ALTIVEC_VECTOR_MODE (mode)
-+ /* VSX is a superset of Altivec and adds V2DImode/V2DFmode. Since the same
-+ return register is used in both cases, and we won't see V2DImode/V2DFmode
-+ for pure altivec, combine the two cases. */
-+ else if (ALTIVEC_OR_VSX_VECTOR_MODE (mode)
- && TARGET_ALTIVEC && TARGET_ALTIVEC_ABI)
- regno = ALTIVEC_ARG_RETURN;
-- else if (VSX_VECTOR_MODE (mode)
-- && TARGET_VSX && TARGET_ALTIVEC_ABI)
-- regno = ALTIVEC_ARG_RETURN;
- else if (COMPLEX_MODE_P (mode) && targetm.calls.split_complex_arg)
- return rs6000_complex_function_value (mode);
- else if (TARGET_E500_DOUBLE && TARGET_HARD_FLOAT
-
-Zmiany atrybutów dla: gcc/config/rs6000/rs6000.c
-___________________________________________________________________
-Dodane: svn:mergeinfo
- Połączono zmiany /trunk/gcc/config/rs6000/rs6000.c:r162404,173624
-
-Index: gcc/config/rs6000/rs6000.h
+--- libstdc++-v3/testsuite/23_containers/vector/debug/52433.cc (.../tags/gcc_4_6_3_release) (wersja 0)
++++ libstdc++-v3/testsuite/23_containers/vector/debug/52433.cc (.../branches/gcc-4_6-branch) (wersja 185440)
+@@ -0,0 +1,43 @@
++// Copyright (C) 2012 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/>.
++//
++// { dg-require-debug-mode "" }
++// { dg-options "-std=gnu++0x" }
++// { dg-do compile }
++
++// PR libstdc++/52433
++
++#include <vector>
++
++struct X
++{
++ std::vector<int>::iterator i;
++
++ X() = default;
++ X(const X&) = default;
++ X(X&&) = default;
++ X& operator=(const X&) = default;
++ X& operator=(X&&) = default;
++};
++
++X test01()
++{
++ X x;
++ x = X();
++ return x;
++}
++
+Index: boehm-gc/configure.ac