packages: gcc/gcc-branch.diff, gcc/gcc.spec - rel 2; drop R python-gdb (it'...

arekm arekm at pld-linux.org
Fri Nov 11 14:50:15 CET 2011


Author: arekm                        Date: Fri Nov 11 13:50:15 2011 GMT
Module: packages                      Tag: HEAD
---- Log message:
- rel 2; drop R python-gdb (it's obsolete pkg); update branch diff

---- Files affected:
packages/gcc:
   gcc-branch.diff (1.53 -> 1.54) , gcc.spec (1.672 -> 1.673) 

---- Diffs:

================================================================
Index: packages/gcc/gcc-branch.diff
diff -u packages/gcc/gcc-branch.diff:1.53 packages/gcc/gcc-branch.diff:1.54
--- packages/gcc/gcc-branch.diff:1.53	Thu Oct 27 16:20:19 2011
+++ packages/gcc/gcc-branch.diff	Fri Nov 11 14:50:09 2011
@@ -1,21 +1,256 @@
+Index: gcc/c-family/ChangeLog
+===================================================================
+--- gcc/c-family/ChangeLog	(.../tags/gcc_4_6_2_release)	(wersja 181284)
++++ gcc/c-family/ChangeLog	(.../branches/gcc-4_6-branch)	(wersja 181284)
+@@ -1,3 +1,15 @@
++2011-11-04  Eric Botcazou  <ebotcazou at adacore.com>
++
++	PR c++/50608
++	* c-common.c (c_fully_fold_internal) <ADDR_EXPR>: Call fold_offsetof_1.
++	(fold_offsetof_1): Make global.  Remove STOP_REF argument and adjust.
++	<INDIRECT_REF>: Return the argument.
++	<ARRAY_REF>: Remove special code for negative offset.
++	Call fold_build_pointer_plus instead of size_binop.
++	(fold_offsetof): Remove STOP_REF argument and adjust.
++	* c-common.h (fold_offsetof_1): Declare.
++	(fold_offsetof): Remove STOP_REF argument.
++
+ 2011-10-26  Release Manager
+ 
+ 	* GCC 4.6.2 released.
+Index: gcc/c-family/c-common.c
+===================================================================
+--- gcc/c-family/c-common.c	(.../tags/gcc_4_6_2_release)	(wersja 181284)
++++ gcc/c-family/c-common.c	(.../branches/gcc-4_6-branch)	(wersja 181284)
+@@ -1236,13 +1236,7 @@
+ 	  && (op1 = get_base_address (op0)) != NULL_TREE
+ 	  && TREE_CODE (op1) == INDIRECT_REF
+ 	  && TREE_CONSTANT (TREE_OPERAND (op1, 0)))
+-	{
+-	  tree offset = fold_offsetof (op0, op1);
+-	  op1
+-	    = fold_convert_loc (loc, TREE_TYPE (expr), TREE_OPERAND (op1, 0));
+-	  ret = fold_build2_loc (loc, POINTER_PLUS_EXPR, TREE_TYPE (expr), op1,
+-				 offset);
+-	}
++	ret = fold_convert_loc (loc, TREE_TYPE (expr), fold_offsetof_1 (op0));
+       else if (op0 != orig_op0 || in_init)
+ 	ret = in_init
+ 	  ? fold_build1_initializer_loc (loc, code, TREE_TYPE (expr), op0)
+@@ -8459,20 +8453,15 @@
+     return uc;
+ }
+ 
+-/* Build the result of __builtin_offsetof.  EXPR is a nested sequence of
+-   component references, with STOP_REF, or alternatively an INDIRECT_REF of
+-   NULL, at the bottom; much like the traditional rendering of offsetof as a
+-   macro.  Returns the folded and properly cast result.  */
++/* Fold an offsetof-like expression.  EXPR is a nested sequence of component
++   references with an INDIRECT_REF of a constant at the bottom; much like the
++   traditional rendering of offsetof as a macro.  Return the folded result.  */
+ 
+-static tree
+-fold_offsetof_1 (tree expr, tree stop_ref)
++tree
++fold_offsetof_1 (tree expr)
+ {
+-  enum tree_code code = PLUS_EXPR;
+   tree base, off, t;
+ 
+-  if (expr == stop_ref && TREE_CODE (expr) != ERROR_MARK)
+-    return size_zero_node;
+-
+   switch (TREE_CODE (expr))
+     {
+     case ERROR_MARK:
+@@ -8489,15 +8478,15 @@
+ 
+     case NOP_EXPR:
+     case INDIRECT_REF:
+-      if (!integer_zerop (TREE_OPERAND (expr, 0)))
++      if (!TREE_CONSTANT (TREE_OPERAND (expr, 0)))
+ 	{
+ 	  error ("cannot apply %<offsetof%> to a non constant address");
+ 	  return error_mark_node;
+ 	}
+-      return size_zero_node;
++      return TREE_OPERAND (expr, 0);
+ 
+     case COMPONENT_REF:
+-      base = fold_offsetof_1 (TREE_OPERAND (expr, 0), stop_ref);
++      base = fold_offsetof_1 (TREE_OPERAND (expr, 0));
+       if (base == error_mark_node)
+ 	return base;
+ 
+@@ -8515,21 +8504,14 @@
+       break;
+ 
+     case ARRAY_REF:
+-      base = fold_offsetof_1 (TREE_OPERAND (expr, 0), stop_ref);
++      base = fold_offsetof_1 (TREE_OPERAND (expr, 0));
+       if (base == error_mark_node)
+ 	return base;
+ 
+       t = TREE_OPERAND (expr, 1);
+-      if (TREE_CODE (t) == INTEGER_CST && tree_int_cst_sgn (t) < 0)
+-	{
+-	  code = MINUS_EXPR;
+-	  t = fold_build1_loc (input_location, NEGATE_EXPR, TREE_TYPE (t), t);
+-	}
+-      t = convert (sizetype, t);
+-      off = size_binop (MULT_EXPR, TYPE_SIZE_UNIT (TREE_TYPE (expr)), t);
+ 
+       /* Check if the offset goes beyond the upper bound of the array.  */
+-      if (code == PLUS_EXPR && TREE_CODE (t) == INTEGER_CST)
++      if (TREE_CODE (t) == INTEGER_CST && tree_int_cst_sgn (t) >= 0)
+ 	{
+ 	  tree upbound = array_ref_up_bound (expr);
+ 	  if (upbound != NULL_TREE
+@@ -8569,26 +8551,30 @@
+ 		}
+ 	    }
+ 	}
++
++      t = convert (sizetype, t);
++      off = size_binop (MULT_EXPR, TYPE_SIZE_UNIT (TREE_TYPE (expr)), t);
+       break;
+ 
+     case COMPOUND_EXPR:
+       /* Handle static members of volatile structs.  */
+       t = TREE_OPERAND (expr, 1);
+       gcc_assert (TREE_CODE (t) == VAR_DECL);
+-      return fold_offsetof_1 (t, stop_ref);
++      return fold_offsetof_1 (t);
+ 
+     default:
+       gcc_unreachable ();
+     }
+ 
+-  return size_binop (code, base, off);
++  return fold_build2 (POINTER_PLUS_EXPR, TREE_TYPE (base), base, off);
+ }
+ 
++/* Likewise, but convert it to the return type of offsetof.  */
++
+ tree
+-fold_offsetof (tree expr, tree stop_ref)
++fold_offsetof (tree expr)
+ {
+-  /* Convert back from the internal sizetype to size_t.  */
+-  return convert (size_type_node, fold_offsetof_1 (expr, stop_ref));
++  return convert (size_type_node, fold_offsetof_1 (expr));
+ }
+ 
+ /* Warn for A ?: C expressions (with B omitted) where A is a boolean 
+Index: gcc/c-family/c-common.h
+===================================================================
+--- gcc/c-family/c-common.h	(.../tags/gcc_4_6_2_release)	(wersja 181284)
++++ gcc/c-family/c-common.h	(.../branches/gcc-4_6-branch)	(wersja 181284)
+@@ -916,7 +916,8 @@
+ 
+ extern void verify_sequence_points (tree);
+ 
+-extern tree fold_offsetof (tree, tree);
++extern tree fold_offsetof_1 (tree);
++extern tree fold_offsetof (tree);
+ 
+ /* Places where an lvalue, or modifiable lvalue, may be required.
+    Used to select diagnostic messages in lvalue_error and
 Index: gcc/DATESTAMP
 ===================================================================
---- gcc/DATESTAMP	(.../tags/gcc_4_6_2_release)	(wersja 180565)
-+++ gcc/DATESTAMP	(.../branches/gcc-4_6-branch)	(wersja 180565)
+--- gcc/DATESTAMP	(.../tags/gcc_4_6_2_release)	(wersja 181284)
++++ gcc/DATESTAMP	(.../branches/gcc-4_6-branch)	(wersja 181284)
 @@ -1 +1 @@
 -20111026
-+20111027
++20111111
 Index: gcc/DEV-PHASE
 ===================================================================
---- gcc/DEV-PHASE	(.../tags/gcc_4_6_2_release)	(wersja 180565)
-+++ gcc/DEV-PHASE	(.../branches/gcc-4_6-branch)	(wersja 180565)
+--- gcc/DEV-PHASE	(.../tags/gcc_4_6_2_release)	(wersja 181284)
++++ gcc/DEV-PHASE	(.../branches/gcc-4_6-branch)	(wersja 181284)
 @@ -0,0 +1 @@
 +prerelease
 Index: gcc/ChangeLog
 ===================================================================
---- gcc/ChangeLog	(.../tags/gcc_4_6_2_release)	(wersja 180565)
-+++ gcc/ChangeLog	(.../branches/gcc-4_6-branch)	(wersja 180565)
-@@ -1,3 +1,8 @@
+--- gcc/ChangeLog	(.../tags/gcc_4_6_2_release)	(wersja 181284)
++++ gcc/ChangeLog	(.../branches/gcc-4_6-branch)	(wersja 181284)
+@@ -1,3 +1,85 @@
++2011-11-10  Jakub Jelinek  <jakub at redhat.com>
++
++	PR middle-end/51077
++	* tree-object-size.c (addr_object_size): Check TREE_CODE of
++	MEM_REF's operand rather than code of the MEM_REF itself.
++
++2011-11-07  Alan Modra  <amodra at gmail.com>
++
++	PR target/30282
++	* config/rs6000/rs6000.c (rs6000_emit_stack_reset): Always emit
++	blockage for ABI_V4.
++
++2011-11-04  Eric Botcazou  <ebotcazou at adacore.com>
++
++	PR c++/50608
++	* c-parser.c (c_parser_postfix_expression) <RID_OFFSETOF>: Adjust call
++	to fold_offsetof.
++	* c-typeck.c (build_unary_op) <ADDR_EXPR>: Call fold_offsetof_1.
++
++2011-11-04  Eric Botcazou  <ebotcazou at adacore.com>
++
++	PR target/50979
++	* config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=v8.
++
++2011-11-03  Uros Bizjak  <ubizjak at gmail.com>
++
++	* config/i386/i386.md (lround<X87MODEF:mode><SWI248x:mode>2,
++	rint<mode>2, floor<mode>2, lfloor<MODEF:mode><SWI48:mode>2,
++	btrunc<mode>2, lwp_lwpval<mode>3): Use operands[N] instead of operandN.
++
++2011-11-02  Eric Botcazou  <ebotcazou at adacore.com>
++
++	PR target/50945
++	* config/sparc/sparc.md (movsf_insn): Reindent constraints.
++	(movsf_insn_no_fpu): Likewise.
++	(movdf_insn_sp32): Likewise.
++	(movdf_insn_sp32_no_fpu): Likewise.
++	(movdf_insn_sp32_v9): Likewise.  Remove redundant GY constraint.
++	(movdf_insn_sp32_v9_no_fpu): Likewise.
++	(movdf_insn_sp64): Likewise.
++	(movdf_insn_sp64_no_fpu): Likewise.
++	(movtf_insn_sp32): Likewise.
++	(movtf_insn_sp32_no_fpu): Likewise.
++	(movtf_insn_sp64): Likewise.
++	(movtf_insn_sp64_hq): Likewise.
++	(movtf_insn_sp64_no_fpu): Likewise.
++
++2011-11-02  Bernd Schmidt  <bernds at codesourcery.com>
++
++	* cfgcleanup.c (try_head_merge_bb): If get_condition returns
++	NULL for a jump that is a cc0 insn, pick the previous insn for
++	move_before.
++
++2011-11-01  Uros Bizjak  <ubizjak at gmail.com>
++
++	* config/i386/i386.md (splitters for int-float conversion): Use
++	SUBREG_REG on SUBREGs in splitter constraints.
++
++2011-11-01  Julian Brown  <julian at codesourcery.com>
++
++	PR rtl-optimization/47918
++	* reload1.c (set_initial_label_offsets): Use initial offsets
++	for labels on the nonlocal_goto_handler_labels chain.
++
++2011-10-29  John David Anglin  <dave.anglin at nrc-cnrc.gc.ca>
++
++	PR target/50691
++	* config/pa/pa.c (emit_move_sequence): Legitimize TLS symbol references.
++	* config/pa/pa.h (LEGITIMATE_CONSTANT_P): Return false for
++	TLS_MODEL_GLOBAL_DYNAMIC and TLS_MODEL_LOCAL_DYNAMIC symbol references.
++
++2011-10-27  Uros Bizjak  <ubizjak at gmail.com>
++
++	PR target/50875
++	* config/i386/sse.md (*avx_unpcklpd256): Remove extra insn
++	constraints.  Change alternative 1 to "x,m,1".
++
 +2011-10-26  Jakub Jelinek  <jakub at redhat.com>
 +
 +	* BASE-VER: Set to 4.6.3.
@@ -24,10 +259,2591 @@
  2011-10-26  Release Manager
  
  	* GCC 4.6.2 released.
+@@ -144,8 +226,8 @@
+ 
+ 2011-10-07  Bernd Schmidt  <bernds at codesourcery.com>
+ 
+- 	PR target/49049
+- 	* config/arm/arm.md (arm_subsi3_insn): Lose the last alternative.
++	PR target/49049
++	* config/arm/arm.md (arm_subsi3_insn): Lose the last alternative.
+ 
+ 2011-10-06  Jakub Jelinek  <jakub at redhat.com>
+ 
+Index: gcc/testsuite/gfortran.dg/pr50875.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/pr50875.f90	(.../tags/gcc_4_6_2_release)	(wersja 0)
++++ gcc/testsuite/gfortran.dg/pr50875.f90	(.../branches/gcc-4_6-branch)	(wersja 181284)
+@@ -0,0 +1,39 @@
++! { dg-do compile { target { i?86-*-* x86_64-*-* } } }
++! { dg-options "-O3 -mavx" }
++!
++! PR fortran/50875.f90
++
++module test
++
++  implicit none
++
++  integer, parameter :: dp=kind(1.d0)
++
++  integer :: P = 2
++
++  real(kind=dp), allocatable :: real_array_A(:),real_array_B(:,:)
++  complex(kind=dp), allocatable :: cmplx_array_A(:) 
++
++contains
++
++  subroutine routine_A
++
++    integer :: i
++
++    allocate(cmplx_array_A(P),real_array_B(P,P),real_array_A(P))
++
++    real_array_A = 1
++    real_array_B = 1
++
++    do i = 1, p
++       cmplx_array_A = cmplx(real_array_B(:,i),0.0_dp,dp)
++       cmplx_array_A = cmplx_array_A * exp(cmplx(0.0_dp,real_array_A+1))
++    end do
++
++    deallocate(cmplx_array_A,real_array_B,real_array_A)
++
++  end subroutine routine_A
++
++end module test
++
++! { dg-final { cleanup-modules "test" } }
+Index: gcc/testsuite/gcc.c-torture/compile/pr51077.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/compile/pr51077.c	(.../tags/gcc_4_6_2_release)	(wersja 0)
++++ gcc/testsuite/gcc.c-torture/compile/pr51077.c	(.../branches/gcc-4_6-branch)	(wersja 181284)
+@@ -0,0 +1,15 @@
++/* PR middle-end/51077 */
++
++struct S { unsigned char s, t[256]; };
++
++void
++foo (const struct S *x, struct S *y, int z)
++{
++  int i;
++  for (i = 0; i < 8; i++)
++    {
++      const struct S *a = &x[i];
++      __builtin___memcpy_chk (y->t, a->t, z, __builtin_object_size (y->t, 0));
++      y = (struct S *) &y->t[z];
++    }
++}
+Index: gcc/testsuite/gcc.c-torture/compile/20110913-1.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/compile/20110913-1.c	(.../tags/gcc_4_6_2_release)	(wersja 0)
++++ gcc/testsuite/gcc.c-torture/compile/20110913-1.c	(.../branches/gcc-4_6-branch)	(wersja 181284)
+@@ -0,0 +1,26 @@
++struct ieee754_double {
++  double d;
++};
++extern const float __exp_deltatable[178];
++float __ieee754_expf (float x)
++{
++  static const float himark = 88.72283935546875;
++  static const float lomark = -103.972084045410;
++  if (__builtin_isless(x, himark) && __builtin_isgreater(x, lomark))
++    {
++      int tval;
++      double x22, t, result, dx;
++      float delta;
++      struct ieee754_double ex2_u;
++      dx -= t;
++      tval = (int) (t * 512.0);
++      if (t >= 0)
++	delta = - __exp_deltatable[tval];
++      else
++	delta = __exp_deltatable[-tval];
++      x22 = (0.5000000496709180453 * dx + 1.0000001192102037084) * dx + delta;
++      result = x22 * ex2_u.d + ex2_u.d;
++      return (float) result;
++    }
++  return x;
++}
+Index: gcc/testsuite/ChangeLog
+===================================================================
+--- gcc/testsuite/ChangeLog	(.../tags/gcc_4_6_2_release)	(wersja 181284)
++++ gcc/testsuite/ChangeLog	(.../branches/gcc-4_6-branch)	(wersja 181284)
+@@ -1,3 +1,32 @@
++2011-11-10  Jakub Jelinek  <jakub at redhat.com>
++
++	PR middle-end/51077
++	* gcc.c-torture/compile/pr51077.c: New test.
++
++2011-11-07  Jason Merrill  <jason at redhat.com>
++
++	PR c++/50870
++	* g++.dg/cpp0x/decltype35.C: New.
++
++2011-11-04  Eric Botcazou  <ebotcazou at adacore.com>
++
++	* g++.dg/other/offsetof7.C: New test.
++
++2011-11-02  Bernd Schmidt  <bernds at codesourcery.com>
++
++	* gcc.c-torture/compile/20110907.c: New file.
++
++2011-10-29  Paolo Carlini  <paolo.carlini at oracle.com>
++
++	PR c++/50901
++	* g++.dg/cpp0x/pr50901.C: New.
++
++2011-10-27  Uros Bizjak  <ubizjak at gmail.com>
++	    Steven G. Kargl  <kargl at gcc.gnu.org>
++
++	PR target/50875
++	* gfortran.dg/pr50875.f90: New test.
++
+ 2011-10-26  Release Manager
+ 
+ 	* GCC 4.6.2 released.
+Index: gcc/testsuite/g++.dg/other/offsetof7.C
+===================================================================
+--- gcc/testsuite/g++.dg/other/offsetof7.C	(.../tags/gcc_4_6_2_release)	(wersja 0)
++++ gcc/testsuite/g++.dg/other/offsetof7.C	(.../branches/gcc-4_6-branch)	(wersja 181284)
+@@ -0,0 +1,17 @@
++// PR c++/50608
++// Testcase by <dberger at oubliette.org>
++// { dg-do compile }
++
++struct A {
++    int offset;
++};
++
++struct B: public A {
++};
++
++struct C {
++    A a;
++    B b;
++};
++
++int fails = __builtin_offsetof (C, b.offset);
+Index: gcc/testsuite/g++.dg/cpp0x/pr50901.C
+===================================================================
+--- gcc/testsuite/g++.dg/cpp0x/pr50901.C	(.../tags/gcc_4_6_2_release)	(wersja 0)
++++ gcc/testsuite/g++.dg/cpp0x/pr50901.C	(.../branches/gcc-4_6-branch)	(wersja 181284)
+@@ -0,0 +1,9 @@
++// { dg-options "-std=c++0x" }
++
++template<class T> int foo(int a)
++{
++  const unsigned b = a < 0 ? -a : a;
++  return 0;
++}
++
++int i = foo<float>(1);
+Index: gcc/testsuite/g++.dg/cpp0x/decltype35.C
+===================================================================
+--- gcc/testsuite/g++.dg/cpp0x/decltype35.C	(.../tags/gcc_4_6_2_release)	(wersja 0)
++++ gcc/testsuite/g++.dg/cpp0x/decltype35.C	(.../branches/gcc-4_6-branch)	(wersja 181284)
+@@ -0,0 +1,15 @@
++// PR c++/50870
++// { dg-options -std=c++0x }
++
++template <class V>
++  struct impl
++  {
++    template <class T> static T create();
++  };
++
++template <class T, class U, class V, class
++      = decltype(impl<V>::template create<T>()
++             -> impl<V>::template create<U>())>
++struct tester { };
++
++tester<impl<float>*, int, float> ti;
+Index: gcc/cp/typeck.c
+===================================================================
+--- gcc/cp/typeck.c	(.../tags/gcc_4_6_2_release)	(wersja 181284)
++++ gcc/cp/typeck.c	(.../branches/gcc-4_6-branch)	(wersja 181284)
+@@ -4835,9 +4835,7 @@
+       && TREE_CONSTANT (TREE_OPERAND (val, 0)))
+     {
+       tree type = build_pointer_type (argtype);
+-      tree op0 = fold_convert (type, TREE_OPERAND (val, 0));
+-      tree op1 = fold_convert (sizetype, fold_offsetof (arg, val));
+-      return fold_build2 (POINTER_PLUS_EXPR, type, op0, op1);
++      return fold_convert (type, fold_offsetof_1 (arg));
+     }
+ 
+   /* Handle complex lvalues (when permitted)
+Index: gcc/cp/ChangeLog
+===================================================================
+--- gcc/cp/ChangeLog	(.../tags/gcc_4_6_2_release)	(wersja 181284)
++++ gcc/cp/ChangeLog	(.../branches/gcc-4_6-branch)	(wersja 181284)
+@@ -1,3 +1,22 @@
++2011-11-07  Jason Merrill  <jason at redhat.com>
++
++	PR c++/50870
++	* pt.c (tsubst_copy): Handle NAMESPACE_DECL.
++	(tsubst_copy_and_build) [COMPONENT_REF]: Handle a still-dependent
++	object.
++
++2011-11-04  Eric Botcazou  <ebotcazou at adacore.com>
++
++	PR c++/50608
++	* semantics.c (finish_offsetof): Adjust call to fold_offsetof.
++	* typeck.c (cp_build_addr_expr_1): Call fold_offsetof_1.
++
++2011-10-29  Paolo Carlini  <paolo.carlini at oracle.com>
++
++	PR c++/50901
++	* call.c (build_new_op_1): Handle ABS_EXPR together with the
++	other unary EXPR.
++
+ 2011-10-26  Release Manager
+ 
+ 	* GCC 4.6.2 released.
+Index: gcc/cp/pt.c
+===================================================================
+--- gcc/cp/pt.c	(.../tags/gcc_4_6_2_release)	(wersja 181284)
++++ gcc/cp/pt.c	(.../branches/gcc-4_6-branch)	(wersja 181284)
+@@ -11439,6 +11439,9 @@
+       mark_used (t);
+       return t;
+ 
++    case NAMESPACE_DECL:
++      return t;
++
+     case OVERLOAD:
+       /* An OVERLOAD will always be a non-dependent overload set; an
+ 	 overload set from function scope will just be represented with an
+@@ -13179,7 +13182,9 @@
+ 	if (member == error_mark_node)
+ 	  return error_mark_node;
+ 
+-	if (object_type && !CLASS_TYPE_P (object_type))
++	if (type_dependent_expression_p (object))
++	  /* We can't do much here.  */;
++	else if (!CLASS_TYPE_P (object_type))
+ 	  {
+ 	    if (SCALAR_TYPE_P (object_type))
+ 	      {
+Index: gcc/cp/semantics.c
+===================================================================
+--- gcc/cp/semantics.c	(.../tags/gcc_4_6_2_release)	(wersja 181284)
++++ gcc/cp/semantics.c	(.../branches/gcc-4_6-branch)	(wersja 181284)
+@@ -3348,7 +3348,7 @@
+     }
+   if (TREE_CODE (expr) == INDIRECT_REF && REFERENCE_REF_P (expr))
+     expr = TREE_OPERAND (expr, 0);
+-  return fold_offsetof (expr, NULL_TREE);
++  return fold_offsetof (expr);
+ }
+ 
+ /* Replace the AGGR_INIT_EXPR at *TP with an equivalent CALL_EXPR.  This
+Index: gcc/cp/call.c
+===================================================================
+--- gcc/cp/call.c	(.../tags/gcc_4_6_2_release)	(wersja 181284)
++++ gcc/cp/call.c	(.../branches/gcc-4_6-branch)	(wersja 181284)
+@@ -4996,6 +4996,7 @@
+     case POSTDECREMENT_EXPR:
+     case REALPART_EXPR:
+     case IMAGPART_EXPR:
++    case ABS_EXPR:
+       return cp_build_unary_op (code, arg1, candidates != 0, complain);
+ 
+     case ARRAY_REF:
 Index: gcc/BASE-VER
 ===================================================================
---- gcc/BASE-VER	(.../tags/gcc_4_6_2_release)	(wersja 180565)
-+++ gcc/BASE-VER	(.../branches/gcc-4_6-branch)	(wersja 180565)
+--- gcc/BASE-VER	(.../tags/gcc_4_6_2_release)	(wersja 181284)
++++ gcc/BASE-VER	(.../branches/gcc-4_6-branch)	(wersja 181284)
 @@ -1 +1 @@
 -4.6.2
 +4.6.3
+Index: gcc/c-typeck.c
+===================================================================
+--- gcc/c-typeck.c	(.../tags/gcc_4_6_2_release)	(wersja 181284)
++++ gcc/c-typeck.c	(.../branches/gcc-4_6-branch)	(wersja 181284)
+@@ -3802,11 +3802,7 @@
+       if (val && TREE_CODE (val) == INDIRECT_REF
+           && TREE_CONSTANT (TREE_OPERAND (val, 0)))
+ 	{
+-	  tree op0 = fold_convert_loc (location, sizetype,
+-				       fold_offsetof (arg, val)), op1;
+-
+-	  op1 = fold_convert_loc (location, argtype, TREE_OPERAND (val, 0));
+-	  ret = fold_build2_loc (location, POINTER_PLUS_EXPR, argtype, op1, op0);
++	  ret = fold_convert_loc (location, argtype, fold_offsetof_1 (arg));
+ 	  goto return_build_unary_op;
+ 	}
+ 
+Index: gcc/cfgcleanup.c
+===================================================================
+--- gcc/cfgcleanup.c	(.../tags/gcc_4_6_2_release)	(wersja 181284)
++++ gcc/cfgcleanup.c	(.../branches/gcc-4_6-branch)	(wersja 181284)
+@@ -1969,7 +1969,14 @@
+ 
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/gcc/gcc-branch.diff?r1=1.53&r2=1.54&f=u
    http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/gcc/gcc.spec?r1=1.672&r2=1.673&f=u



More information about the pld-cvs-commit mailing list