SOURCES: gcc-branch.diff - fixes
arekm
arekm at pld-linux.org
Fri Apr 24 15:18:02 CEST 2009
Author: arekm Date: Fri Apr 24 13:18:02 2009 GMT
Module: SOURCES Tag: HEAD
---- Log message:
- fixes
---- Files affected:
SOURCES:
gcc-branch.diff (1.10 -> 1.11)
---- Diffs:
================================================================
Index: SOURCES/gcc-branch.diff
diff -u /dev/null SOURCES/gcc-branch.diff:1.11
--- /dev/null Fri Apr 24 15:18:02 2009
+++ SOURCES/gcc-branch.diff Fri Apr 24 15:17:55 2009
@@ -0,0 +1,101588 @@
+Index: gcc/ira-conflicts.c
+===================================================================
+--- gcc/ira-conflicts.c (.../tags/gcc_4_4_0_release) (wersja 146715)
++++ gcc/ira-conflicts.c (.../branches/gcc-4_4-branch) (wersja 146715)
+@@ -411,9 +411,9 @@
+ /* Can not be tied. It is not in the cover class. */
+ return false;
+ if (HARD_REGISTER_P (reg1))
+- cost = ira_register_move_cost[mode][cover_class][rclass] * freq;
++ cost = ira_get_register_move_cost (mode, cover_class, rclass) * freq;
+ else
+- cost = ira_register_move_cost[mode][rclass][cover_class] * freq;
++ cost = ira_get_register_move_cost (mode, rclass, cover_class) * freq;
+ for (;;)
+ {
+ ira_allocate_and_set_costs
+Index: gcc/DATESTAMP
+===================================================================
+--- gcc/DATESTAMP (.../tags/gcc_4_4_0_release) (wersja 146715)
++++ gcc/DATESTAMP (.../branches/gcc-4_4-branch) (wersja 146715)
+@@ -1 +1 @@
+-20090421
++20090424
+Index: gcc/fold-const.c
+===================================================================
+--- gcc/fold-const.c (.../tags/gcc_4_4_0_release) (wersja 146715)
++++ gcc/fold-const.c (.../branches/gcc-4_4-branch) (wersja 146715)
+@@ -5293,31 +5293,34 @@
+ break;
+
+ case GT_EXPR:
+- /* If C1 is C2 - 1, this is max(A, C2). */
++ /* If C1 is C2 - 1, this is max(A, C2), but use ARG00's type for
++ MAX_EXPR, to preserve the signedness of the comparison. */
+ if (! operand_equal_p (arg2, TYPE_MIN_VALUE (type),
+ OEP_ONLY_CONST)
+ && operand_equal_p (arg01,
+ const_binop (MINUS_EXPR, arg2,
+ build_int_cst (type, 1), 0),
+ OEP_ONLY_CONST))
+- return pedantic_non_lvalue (fold_build2 (MAX_EXPR,
+- type,
+- fold_convert (type, arg1),
+- arg2));
++ return pedantic_non_lvalue (fold_convert (type,
++ fold_build2 (MAX_EXPR, TREE_TYPE (arg00),
++ arg00,
++ fold_convert (TREE_TYPE (arg00),
++ arg2))));
+ break;
+
+ case GE_EXPR:
+- /* If C1 is C2 + 1, this is max(A, C2). */
++ /* If C1 is C2 + 1, this is max(A, C2), with the same care as above. */
+ if (! operand_equal_p (arg2, TYPE_MAX_VALUE (type),
+ OEP_ONLY_CONST)
+ && operand_equal_p (arg01,
+ const_binop (PLUS_EXPR, arg2,
+ build_int_cst (type, 1), 0),
+ OEP_ONLY_CONST))
+- return pedantic_non_lvalue (fold_build2 (MAX_EXPR,
+- type,
+- fold_convert (type, arg1),
+- arg2));
++ return pedantic_non_lvalue (fold_convert (type,
++ fold_build2 (MAX_EXPR, TREE_TYPE (arg00),
++ arg00,
++ fold_convert (TREE_TYPE (arg00),
++ arg2))));
+ break;
+ case NE_EXPR:
+ break;
+@@ -11861,7 +11864,8 @@
+ if (code == LROTATE_EXPR || code == RROTATE_EXPR)
+ low = low % TYPE_PRECISION (type);
+ else if (TYPE_UNSIGNED (type) || code == LSHIFT_EXPR)
+- return build_int_cst (type, 0);
++ return omit_one_operand (type, build_int_cst (type, 0),
++ TREE_OPERAND (arg0, 0));
+ else
+ low = TYPE_PRECISION (type) - 1;
+ }
+Index: gcc/DEV-PHASE
+===================================================================
+--- gcc/DEV-PHASE (.../tags/gcc_4_4_0_release) (wersja 146715)
++++ gcc/DEV-PHASE (.../branches/gcc-4_4-branch) (wersja 146715)
+@@ -0,0 +1 @@
++prerelease
+Index: gcc/ChangeLog
+===================================================================
+--- gcc/ChangeLog (.../tags/gcc_4_4_0_release) (wersja 146715)
++++ gcc/ChangeLog (.../branches/gcc-4_4-branch) (wersja 146715)
+@@ -1,3 +1,98 @@
++2009-04-24 Paolo Bonzini <bonzini at gnu.org>
++
++ PR middle-end/39867
++ * fold-const.c (fold_cond_expr_with_comparison): When folding
++ > and >= to MAX, make sure the MAX uses the same type as the
++ comparison's operands.
++
++2009-04-23 Ulrich Weigand <Ulrich.Weigand at de.ibm.com>
++
++ * config/spu/spu-builtins.h: Delete file.
++
++ * config/spu/spu.h (enum spu_builtin_type): Move here from
++ spu-builtins.h.
++ (struct spu_builtin_description): Likewise. Add GTY marker.
++ Do not use enum spu_function_code or enum insn_code.
++ (spu_builtins): Add extern declaration.
++
++ * config/spu/spu.c: Do not include "spu-builtins.h".
++ (enum spu_function_code, enum spu_builtin_type_index,
++ V16QI_type_node, V8HI_type_node, V4SI_type_node, V2DI_type_node,
++ V4SF_type_node, V2DF_type_node, unsigned_V16QI_type_node,
++ unsigned_V8HI_type_node, unsigned_V4SI_type_node,
++ unsigned_V2DI_type_node): Move here from spu-builtins.h.
++ (spu_builtin_types): Make static. Add GTY marker.
++ (spu_builtins): Add extern declaration with GTY marker.
++ Include "gt-spu.h".
++
++ * config/spu/spu-c.c: Do not include "spu-builtins.h".
++ (spu_resolve_overloaded_builtin): Do not use spu_function_code.
++ Check programmatically whether all parameters are scalar.
++
++ * config/spu/t-spu-elf (spu.o, spu-c.o): Update dependencies.
++
++2009-04-22 Jing Yu <jingyu at google.com>
++
++ PR testsuite/39781
++ * config/arm/arm.h: Define HANDLE_PRAGMA_PACK_PUSH_POP.
++
++2009-04-22 Eric Botcazou <ebotcazou at adacore.com>
++
++ Backport from mainline:
++ 2009-04-17 Eric Botcazou <ebotcazou at adacore.com>
++ * dbxout.c (dbxout_block): Reinstate test on TREE_USED.
++ * tree-ssa-live.c (remove_unused_scope_block_p): Update TREE_USED bit.
++
++2009-04-22 Jakub Jelinek <jakub at redhat.com>
++
++ * alias.c (find_base_term): Move around LO_SUM case, so that
++ CONST falls through into PLUS/MINUS handling.
++
++ PR c/39855
++ * fold-const.c (fold_binary) <case LSHIFT_EXPR>: When optimizing
++ into 0, use omit_one_operand.
++
++2009-04-22 Vladimir Makarov <vmakarov at redhat.com>
++
++ PR rtl-optimization/39762
++ * ira-int.h (ira_register_move_cost, ira_may_move_in_cost,
++ ira_may_move_out_cost): Add comments about way of their usage.
++ (ira_get_register_move_cost, ira_get_may_move_cost): New functions.
++
++ * ira-conflicts.c (process_regs_for_copy): Use function
++ ira_get_register_move_cost instead of global
++ ira_register_move_cost.
++
++ * ira-color.c (update_copy_costs, calculate_allocno_spill_cost,
++ color_pass, move_spill_restore, update_curr_costs): Ditto.
++
++ * ira-lives.c (process_single_reg_class_operands): Ditto.
++
++ * ira-emit.c (emit_move_list): Ditto.
++
++ * ira-costs.c (copy_cost): Don't call ira_init_register_move_cost.
++ (record_reg_classes): Ditto. Use functions
++ ira_get_register_move_cost and ira_get_may_move_cost instead of
++ global vars ira_register_move_cost, ira_may_move_out_cost and
++ ira_may_move_in_cost.
++ (record_address_regs): Don't call ira_init_register_move_cost.
++ Use function ira_get_may_move_cost instead of global
++ ira_may_move_in_cost.
++ (process_bb_node_for_hard_reg_moves): Use function
++ ira_get_register_move_cost instead of global ira_register_move_cost.
++ (ira_costs): Don't call ira_init_register_move_cost.
++
++2009-04-22 Richard Guenther <rguenther at suse.de>
++
++ PR tree-optimization/39824
++ * tree-ssa-ccp.c (fold_const_aggregate_ref): For INDIRECT_REFs
++ make sure the types are compatible.
++
++2009-04-21 Jakub Jelinek <jakub at redhat.com>
++
++ * BASE-VER: Set to 4.4.1.
++ * DEV-PHASE: Set to prerelease.
++
+ 2009-04-21 Release Manager
+
+ * GCC 4.4.0 released.
+Index: gcc/testsuite/gcc.c-torture/compile/pr39824.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/compile/pr39824.c (.../tags/gcc_4_4_0_release) (wersja 0)
++++ gcc/testsuite/gcc.c-torture/compile/pr39824.c (.../branches/gcc-4_4-branch) (wersja 146715)
+@@ -0,0 +1,26 @@
++static const double internalEndianMagic = 7.949928895127363e-275;
++static const unsigned char ieee_754_mantissa_mask[] = { 0x00, 0x0F, 0xFF, 0xFF,
++ 0xFF, 0xFF, 0xFF, 0xFF };
++static inline int
++trio_isnan (double number)
++{
++ int has_mantissa = 0;
++ unsigned int i;
++ unsigned char current;
++ for (i = 0; i < (unsigned int)sizeof(double); i++)
++ {
++ current = ((unsigned char *)&number)[(((unsigned char
++ *)&internalEndianMagic)[7-(i)])];
++ has_mantissa |= (current & ieee_754_mantissa_mask[i]);
++ }
++ return has_mantissa;
++}
++void
++xmlXPathEqualNodeSetFloat(int nodeNr, double v)
++{
++ int i;
++ for (i=0; i<nodeNr; i++)
++ if (!trio_isnan(v))
++ break;
++}
++
+Index: gcc/testsuite/gcc.c-torture/compile/pr39845.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/compile/pr39845.c (.../tags/gcc_4_4_0_release) (wersja 0)
++++ gcc/testsuite/gcc.c-torture/compile/pr39845.c (.../branches/gcc-4_4-branch) (wersja 146715)
+@@ -0,0 +1,43 @@
++typedef union tree_node *tree;
++enum tree_code { EXCESS_PRECISION_EXPR };
++enum built_in_function { BUILT_IN_ACOS, BUILT_IN_FPCLASSIFY, BUILT_IN_ISFINITE };
++struct tree_base {
++ __extension__ enum tree_code code : 16;
++ unsigned side_effects_flag : 1;
++};
++struct tree_exp {
++ tree operands[1];
++};
++struct tree_function_decl {
++ __extension__ enum built_in_function function_code : 11;
++ unsigned static_ctor_flag : 1;
++};
++union tree_node {
++ struct tree_base base;
++ struct tree_function_decl function_decl;
++ struct tree_exp exp;
++};
++static tree
++convert_arguments (tree fundecl)
++{
++ tree val = (void *)0;
++ unsigned int parmnum;
++ unsigned char type_generic_remove_excess_precision = 0;
++ switch (((fundecl)->function_decl.function_code))
++ {
++ case BUILT_IN_ISFINITE:
++ case BUILT_IN_FPCLASSIFY:
++ type_generic_remove_excess_precision = 1;
++ }
++ for (parmnum = 0;; ++parmnum)
++ if (((enum tree_code) (val)->base.code) == EXCESS_PRECISION_EXPR
++ && !type_generic_remove_excess_precision)
++ val = ((val)->exp.operands[0]);
++ return val;
++}
++tree
++build_function_call_vec (tree function)
++{
++ return convert_arguments (function);
++}
++
+Index: gcc/testsuite/gnat.dg/enum2_pkg.ads
+===================================================================
+--- gcc/testsuite/gnat.dg/enum2_pkg.ads (.../tags/gcc_4_4_0_release) (wersja 0)
++++ gcc/testsuite/gnat.dg/enum2_pkg.ads (.../branches/gcc-4_4-branch) (wersja 146715)
+@@ -0,0 +1,8 @@
++with Ada.Finalization; use Ada.Finalization;
++
++package Enum2_Pkg is
++ type F_String is new Controlled with record
++ Data : access String;
++ end record;
++ Null_String : constant F_String := (Controlled with Data => null);
++end Enum2_Pkg;
+Index: gcc/testsuite/gnat.dg/enum2.adb
+===================================================================
+--- gcc/testsuite/gnat.dg/enum2.adb (.../tags/gcc_4_4_0_release) (wersja 0)
++++ gcc/testsuite/gnat.dg/enum2.adb (.../branches/gcc-4_4-branch) (wersja 146715)
+@@ -0,0 +1,11 @@
++-- { dg-do run }
++-- { dg-options "-gnat05 -O2" }
++
++with Enum2_Pkg; use Enum2_Pkg;
++
++procedure Enum2 is
++ type Enum is (A, B, C, D);
++ Table : array (B .. C, 1 .. 1) of F_String := (others => (others => Null_String));
++begin
++ Table := (others => (others => Null_String));
++end;
+Index: gcc/testsuite/gcc.dg/torture/pr39855.c
+===================================================================
+--- gcc/testsuite/gcc.dg/torture/pr39855.c (.../tags/gcc_4_4_0_release) (wersja 0)
++++ gcc/testsuite/gcc.dg/torture/pr39855.c (.../branches/gcc-4_4-branch) (wersja 146715)
+@@ -0,0 +1,24 @@
++/* PR c/39855 */
++/* { dg-do run { target { int32plus } } } */
++
++extern void abort (void);
++
++int i, j, k;
++
++int
++foo (void)
++{
++ return ++i;
++}
++
++int
++main ()
++{
++ if (__CHAR_BIT__ != 8 || sizeof (int) != 4)
++ return 0;
++ j = foo () << 30 << 2;
++ k = (unsigned) foo () >> 16 >> 16;
++ if (i != 2 || j != 0 || k != 0)
++ abort ();
++ return 0;
++}
+Index: gcc/testsuite/gcc.dg/torture/pr39829.c
+===================================================================
+--- gcc/testsuite/gcc.dg/torture/pr39829.c (.../tags/gcc_4_4_0_release) (wersja 0)
++++ gcc/testsuite/gcc.dg/torture/pr39829.c (.../branches/gcc-4_4-branch) (wersja 146715)
+@@ -0,0 +1,27 @@
++/* { dg-do compile } */
++/* { dg-options "-w" } */
++
++void foo (void * DAG_temp117584)
++{
++ char uA;
++ void* pA;
++ void* pB;
++ void* pC;
++ do {
++ int DAG_temp117585;
++ int DAG_temp117586;
++ void ** __indir_union1 = (void**)DAG_temp117584;
++ DAG_temp117585 = (long)*__indir_union1;
++ DAG_temp117586 = DAG_temp117585;
++ if ( DAG_temp117586 != (int)268435456 )
++ pA = (void*)&uA;
++ pB = (void*)&pA;
++ pC = pB;
++ union __block_indir0_u { struct { long val; } __indir_struct; }
++ * __indir_union = (union __block_indir0_u*)pC;
++ f(__indir_union->__indir_struct.val);
++
++ DAG_temp117584 += 64;
++ } while (1);
++}
++
+Index: gcc/testsuite/gcc.dg/pr39867.c
+===================================================================
+--- gcc/testsuite/gcc.dg/pr39867.c (.../tags/gcc_4_4_0_release) (wersja 0)
++++ gcc/testsuite/gcc.dg/pr39867.c (.../branches/gcc-4_4-branch) (wersja 146715)
+@@ -0,0 +1,12 @@
++/* { dg-do link } */
++/* { dg-options "-O2" } */
++
++int main (void)
++{
++ int exp = -1;
++ /* Wrong folding of the LHS to an unsigned MAX leads to 4294967295 != 2. */
++ if ((exp < 2 ? 2U : (unsigned int) exp) != 2)
++ link_error ();
++ return 0;
++}
++
+Index: gcc/testsuite/ChangeLog
+===================================================================
+--- gcc/testsuite/ChangeLog (.../tags/gcc_4_4_0_release) (wersja 146715)
++++ gcc/testsuite/ChangeLog (.../branches/gcc-4_4-branch) (wersja 146715)
+@@ -1,3 +1,110 @@
++2009-04-24 Paolo Bonzini <bonzini at gnu.org>
++
++ PR middle-end/39867
++ * gcc.dg/pr39867.c: New.
++
++2009-04-23 Dodji Seketeli <dodji at redhat.com>
++
++ PR c++/38228
++ * g++.dg/expr/bound-mem-fun.C: New test.
++
++2009-04-22 Eric Botcazou <ebotcazou at adacore.com>
++
++ * gnat.dg/enum2.adb: New test.
++ * gnat.dg/enum2_pkg.ads: New helper.
++
++2009-04-22 Jakub Jelinek <jakub at redhat.com>
++
++ PR c/39855
++ * gcc.dg/torture/pr39855.c: New test.
++
++2009-04-22 Richard Guenther <rguenther at suse.de>
++
++ PR tree-optimization/39824
++ * gcc.c-torture/compile/pr39824.c: New testcase.
++
++2009-04-22 Dodji Seketeli <dodji at redhat.com>
++
++ PR c++/39639
++ * g++.dg/cpp0x/pr39639.C: New test.
++
++2009-04-22 H.J. Lu <hongjiu.lu at intel.com>
++
++ Backport from mainline:
++ 2009-04-22 Richard Guenther <rguenther at suse.de>
++
++ PR tree-optimization/39845
++ * gcc.c-torture/compile/pr39845.c: New testcase.
++
++ 2009-04-21 Richard Guenther <rguenther at suse.de>
++
++ PR middle-end/39829
++ * gcc.dg/torture/pr39829.c: New testcase.
++
++2009-04-12 Ulrich Weigand <Ulrich.Weigand at de.ibm.com>
++
++ Backport from mainline:
++
++ 2009-04-17 Ulrich Weigand <Ulrich.Weigand at de.ibm.com>
++
++ * gfortran.fortran-torture/execute/getarg_1.x: New file.
++
++ 2009-04-17 Ulrich Weigand <Ulrich.Weigand at de.ibm.com>
++
++ * gfortran.dg/vect/pr39318.f90: Guard with "target fopenmp".
++
++ 2009-04-17 Ulrich Weigand <Ulrich.Weigand at de.ibm.com>
++
++ * gfortran.dg/chmod_1.f90: Disable on spu-*-* targets.
++ * gfortran.dg/chmod_2.f90: Likewise.
++ * gfortran.dg/chmod_3.f90: Likewise.
++ * gfortran.dg/open_errors.f90: Likewise.
++ * gfortran.dg/stat_1.f90: Likewise.
++ * gfortran.dg/stat_2.f90: Likewise.
++
++ 2009-04-17 Ulrich Weigand <Ulrich.Weigand at de.ibm.com>
++
++ * gfortran.fortran-torture/execute/nan_inf_fmt.x: Skip on spu-*-*.
++ * gfortran.fortran-torture/execute/intrinsic_nearest.x: Likewise.
++ * gfortran.fortran-torture/execute/intrinsic_set_exponent.x: Likewise.
++ * gfortran.dg/nearest_1.f90: Likewise.
++ * gfortran.dg/nearest_3.f90: Likewise.
++ * gfortran.dg/isnan_1.f90: Likewise.
++ * gfortran.dg/isnan_2.f90: Likewise.
++ * gfortran.dg/nan_1.f90: Likewise.
++ * gfortran.dg/nan_2.f90: Likewise.
++ * gfortran.dg/nan_3.f90: Likewise.
++ * gfortran.dg/nan_4.f90: Likewise.
++ * gfortran.dg/module_nan.f90: Likewise.
++ * gfortran.dg/int_conv_2.f90: Likewise.
++ * gfortran.dg/init_flag_3.f90: Likewise.
++ * gfortran.dg/namelist_42.f90: Likewise.
++ * gfortran.dg/namelist_43.f90: Likewise.
++ * gfortran.dg/real_const_3.f90: Likewise.
++ * gfortran.dg/transfer_simplify_1.f90: Likewise.
++
++ * gfortran.dg/default_format_1.f90: XFAIL on spu-*-*.
++ * gfortran.dg/default_format_denormal_1.f90: XFAIL on spu-*-*.
++ * gfortran.dg/scalar_mask_2.f90: XFAIL on spu-*-*.
++ * gfortran.dg/integer_exponentiation_3.F90: XFAIL on spu-*-*.
++ * gfortran.dg/integer_exponentiation_5.F90: XFAIL on spu-*-*.
++
++ * gfortran.dg/elemental_subroutine_1.f90: Relax "epsilon" check.
++ * gfortran.dg/gamma_5.f90: Likewise.
++
++ 2009-04-17 Ulrich Weigand <Ulrich.Weigand at de.ibm.com>
++
++ * lib/gcc-dg.exp (gcc-dg-prune): Make linker message check
++ less strict so it also works with auto-overlay support.
++ * lib/gcc-defs.exp (${tool}_check_unsupported_p): Add check
++ for "exceeds local store" linker errors on the SPU.
++
++ * lib/gfortran.exp: Include target-supports.exp.
++ (gfortran_init): On SPU targets where automatic overlay support
++ is available, use it to build all Fortran test cases.
++
++ * gfortran.dg/pr20257.f90: Skip on spu-*-* targets.
++
+ 2009-04-21 Release Manager
+
+ * GCC 4.4.0 released.
+Index: gcc/testsuite/gfortran.fortran-torture/execute/getarg_1.x
+===================================================================
+--- gcc/testsuite/gfortran.fortran-torture/execute/getarg_1.x (.../tags/gcc_4_4_0_release) (wersja 0)
++++ gcc/testsuite/gfortran.fortran-torture/execute/getarg_1.x (.../branches/gcc-4_4-branch) (wersja 146715)
+@@ -0,0 +1,5 @@
++if [istarget "spu-*-*"] {
++ # We need -mstdmain to enable argument processing on SPU.
++ lappend additional_flags "-mstdmain"
++}
++return 0
+Index: gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_nearest.x
+===================================================================
+--- gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_nearest.x (.../tags/gcc_4_4_0_release) (wersja 146715)
++++ gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_nearest.x (.../branches/gcc-4_4-branch) (wersja 146715)
+@@ -1,2 +1,6 @@
++if [istarget "spu-*-*"] {
++ # No Inf/NaN support on SPU.
++ return 1
++}
+ add-ieee-options
+ return 0
+Index: gcc/testsuite/gfortran.fortran-torture/execute/nan_inf_fmt.x
+===================================================================
+--- gcc/testsuite/gfortran.fortran-torture/execute/nan_inf_fmt.x (.../tags/gcc_4_4_0_release) (wersja 146715)
++++ gcc/testsuite/gfortran.fortran-torture/execute/nan_inf_fmt.x (.../branches/gcc-4_4-branch) (wersja 146715)
+@@ -1,2 +1,6 @@
++if [istarget "spu-*-*"] {
++ # No Inf/NaN support on SPU.
++ return 1
++}
+ add-ieee-options
+ return 0
+Index: gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_set_exponent.x
+===================================================================
+--- gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_set_exponent.x (.../tags/gcc_4_4_0_release) (wersja 146715)
++++ gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_set_exponent.x (.../branches/gcc-4_4-branch) (wersja 146715)
+@@ -1,2 +1,6 @@
++if [istarget "spu-*-*"] {
++ # No denormal support on SPU.
++ return 1
++}
+ add-ieee-options
+ return 0
+Index: gcc/testsuite/g++.dg/expr/bound-mem-fun.C
+===================================================================
+--- gcc/testsuite/g++.dg/expr/bound-mem-fun.C (.../tags/gcc_4_4_0_release) (wersja 0)
++++ gcc/testsuite/g++.dg/expr/bound-mem-fun.C (.../branches/gcc-4_4-branch) (wersja 146715)
+@@ -0,0 +1,18 @@
++// Contributed by Dodji Seketeli <dodji at redhat.com>
++// Origin PR c++/38228
++// { dg-do "compile" }
++
++struct A
++{
++ A ();
++ template<typename T> A(T);
++};
++
++struct B
++{
++ int foo();
++};
++
++A a = B().*(&B::foo); // { dg-error "invalid use of non-static member function" }
++
++
+Index: gcc/testsuite/g++.dg/cpp0x/pr39639.C
+===================================================================
+--- gcc/testsuite/g++.dg/cpp0x/pr39639.C (.../tags/gcc_4_4_0_release) (wersja 0)
++++ gcc/testsuite/g++.dg/cpp0x/pr39639.C (.../branches/gcc-4_4-branch) (wersja 146715)
+@@ -0,0 +1,20 @@
++// Contributed by Dodji Seketeli <dodji at redhat.com>
++// Origin: PR c++/39639
++// { dg-options "-std=c++0x" }
++// { dg-do "compile" }
++
++template <class... Types>
++struct S
++ : S<...Types>, // { dg-error "expected parameter pack before '...'" }
++ S<...Types...>, // { dg-error "expected parameter pack before '...'" }
++ S<...> // { dg-error "expected parameter pack before '...'" }
++{
++ static int f () { return 1;}
++};
++
++int
++main ()
++{
++ return S<void>::f ();
++}
++
+Index: gcc/testsuite/lib/gcc-dg.exp
+===================================================================
+--- gcc/testsuite/lib/gcc-dg.exp (.../tags/gcc_4_4_0_release) (wersja 146715)
++++ gcc/testsuite/lib/gcc-dg.exp (.../branches/gcc-4_4-branch) (wersja 146715)
+@@ -186,7 +186,7 @@
+ # Likewise, if we see ".text exceeds local store range" or
+ # similar.
+ if {[string match "spu-*" $system] && \
<<Diff was trimmed, longer than 597 lines>>
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/gcc-branch.diff?r1=1.10&r2=1.11&f=u
More information about the pld-cvs-commit
mailing list