diff -Nrcpad gcc-4.3.2/gcc/cp/ChangeLog gcc-4.3.3/gcc/cp/ChangeLog *** gcc-4.3.2/gcc/cp/ChangeLog Wed Aug 27 18:02:45 2008 --- gcc-4.3.3/gcc/cp/ChangeLog Sat Jan 24 10:15:39 2009 *************** *** 1,3 **** --- 1,110 ---- + 2009-01-24 Release Manager + + * GCC 4.3.3 released. + + 2009-01-16 Jason Merrill + + PR c++/38877 + * tree.c (lvalue_p_1): Allow non-fields in COMPONENT_REF. + + 2009-01-16 Steve Ellcey + + PR c++/31260 + PR c++/38357 + * pt.c (tsubst): Check for NULL args. + + 2009-01-15 Jason Merrill + + PR c++/38850 + * pt.c (tsubst_copy_and_build): Tell finish_call_expr to + accept hidden friends. + + PR c++/36334 + PR c++/37646 + * tree.c (lvalue_p_1): Handle BASELINK. A COMPONENT_REF to + a function isn't necessarily an lvalue. Take tree, not const_tree. + (lvalue_p, real_lvalue_p): Take tree, not const_tree. + * typeck.c (lvalue_or_else): Likewise. + * cp-tree.h: Adjust prototypes. + + PR c++/31488 + * tree.c (pod_type_p): Return 1 for structs created by the back end. + + 2009-01-12 Dodji Seketeli + + PR c++/36019 + * pt.c (parameter_of_template_p): New function. + * cp-tree.h: Declare it. + * name-lookup.c (binding_to_template_parms_of_scope_p): New + function. + (outer_binding): Take template parameters in account when looking for + a name binding. + + 2008-12-04 Janis Johnson + + Backport from mainline: + 2008-10-18 Jakub Jelinek + Janis Johnson + + * Make-lang.in (check-c++-subtargets): New alias for + check-g++-subtargets. + (lang_checks_parallelized): Add check-g++. + (check_g++_parallelize): New variable. + + 2008-11-19 Dodji Seketeli + + PR c++/37142 + * pt.c (coerce_template_template_parm): Use the more robust + uses_template_parms instead of dependent_type_p. + + 2008-11-19 Dodji Seketeli + + PR c++/35405 + * pt.c (lookup_template_class): Check pointers before dereferencing + Them. + * error.c (dump_template_decl): Likewise. + + 2008-11-19 Jason Merrill + + PR c++/37563 + * parser.c (cp_parser_pseudo_destructor_name): A pseudo-destructor + name is not a declaration. + + 2008-11-14 Jason Merrill + + PR c++/38030 + * semantics.c (finish_call_expr): Don't repeat arg-dep lookup + for a non-dependent call. + + 2008-11-13 Jason Merrill + + PR c++/37932 + * typeck2.c (process_init_constructor_record): Update bitfield + handling. + + 2008-11-12 Jason Merrill + + PR c++/38007 + * typeck.c (cp_build_modify_expr): Update bitfield handling. + + 2008-09-30 Simon Martin + + PR c++/37555 + * decl.c (grokdeclarator): Set the type for typedefs to a + nested-name-specifier to error_mark_node. + + 2008-09-09 Jakub Jelinek + + PR c++/37389 + * decl.c (build_enumerator): Handle previous value's DECL_INITIAL + being error_operand_p. + + 2008-09-03 Jakub Jelinek + + PR c++/37348 + * decl.c (cp_finish_decl): Only set + DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P if decl is VAR_DECL. + 2008-08-27 Release Manager * GCC 4.3.2 released. diff -Nrcpad gcc-4.3.2/gcc/cp/Make-lang.in gcc-4.3.3/gcc/cp/Make-lang.in *** gcc-4.3.2/gcc/cp/Make-lang.in Wed Feb 27 09:26:24 2008 --- gcc-4.3.3/gcc/cp/Make-lang.in Thu Dec 4 23:00:19 2008 *************** c++.srcman: doc/g++.1 *** 136,143 **** --- 136,147 ---- # check targets. However, our DejaGNU framework requires 'check-g++' as its # entry point. We feed the former to the latter here. check-c++ : check-g++ + check-c++-subtargets : check-g++-subtargets # List of targets that can use the generic check- rule and its // variant. lang_checks += check-g++ + lang_checks_parallelized += check-g++ + # For description see comment above check_gcc_parallelize in gcc/Makefile.in. + check_g++_parallelize = old-deja.exp dg.exp # # Install hooks: diff -Nrcpad gcc-4.3.2/gcc/cp/cp-tree.h gcc-4.3.3/gcc/cp/cp-tree.h *** gcc-4.3.2/gcc/cp/cp-tree.h Sun Jun 15 12:05:37 2008 --- gcc-4.3.3/gcc/cp/cp-tree.h Thu Jan 15 22:34:20 2009 *************** extern bool reregister_specialization ( *** 4475,4480 **** --- 4475,4481 ---- extern tree fold_non_dependent_expr (tree); extern bool explicit_class_specialization_p (tree); extern struct tinst_level *outermost_tinst_level(void); + extern bool parameter_of_template_p (tree, tree); /* in repo.c */ extern void init_repo (void); *************** extern tree canonical_type_variant (tre *** 4698,4704 **** extern tree copy_binfo (tree, tree, tree, tree *, int); extern int member_p (const_tree); ! extern cp_lvalue_kind real_lvalue_p (const_tree); extern bool builtin_valid_in_constant_expr_p (const_tree); extern tree build_min (enum tree_code, tree, ...); extern tree build_min_nt (enum tree_code, ...); --- 4699,4705 ---- extern tree copy_binfo (tree, tree, tree, tree *, int); extern int member_p (const_tree); ! extern cp_lvalue_kind real_lvalue_p (tree); extern bool builtin_valid_in_constant_expr_p (const_tree); extern tree build_min (enum tree_code, tree, ...); extern tree build_min_nt (enum tree_code, ...); *************** extern tree lookup_anon_field (tree, t *** 4828,4835 **** extern bool invalid_nonstatic_memfn_p (const_tree); extern tree convert_member_func_to_ptr (tree, tree); extern tree convert_ptrmem (tree, tree, bool, bool); ! extern int lvalue_or_else (const_tree, enum lvalue_use); ! extern int lvalue_p (const_tree); /* in typeck2.c */ extern void require_complete_eh_spec_types (tree, tree); --- 4829,4836 ---- extern bool invalid_nonstatic_memfn_p (const_tree); extern tree convert_member_func_to_ptr (tree, tree); extern tree convert_ptrmem (tree, tree, bool, bool); ! extern int lvalue_or_else (tree, enum lvalue_use); ! extern int lvalue_p (tree); /* in typeck2.c */ extern void require_complete_eh_spec_types (tree, tree); diff -Nrcpad gcc-4.3.2/gcc/cp/decl.c gcc-4.3.3/gcc/cp/decl.c *** gcc-4.3.2/gcc/cp/decl.c Mon Jul 7 20:42:03 2008 --- gcc-4.3.3/gcc/cp/decl.c Tue Sep 30 19:56:13 2008 *************** cp_finish_decl (tree decl, tree init, bo *** 5415,5421 **** DECL_INITIAL (decl) = NULL_TREE; } ! if (init && init_const_expr_p) { DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P (decl) = 1; if (DECL_INTEGRAL_CONSTANT_VAR_P (decl)) --- 5415,5421 ---- DECL_INITIAL (decl) = NULL_TREE; } ! if (init && init_const_expr_p && TREE_CODE (decl) == VAR_DECL) { DECL_INITIALIZED_BY_CONSTANT_EXPRESSION_P (decl) = 1; if (DECL_INTEGRAL_CONSTANT_VAR_P (decl)) *************** grokdeclarator (const cp_declarator *dec *** 8544,8551 **** decl = build_lang_decl (TYPE_DECL, unqualified_id, type); else decl = build_decl (TYPE_DECL, unqualified_id, type); ! if (id_declarator && declarator->u.id.qualifying_scope) error ("%Jtypedef name may not be a nested-name-specifier", decl); if (decl_context != FIELD) { --- 8544,8553 ---- decl = build_lang_decl (TYPE_DECL, unqualified_id, type); else decl = build_decl (TYPE_DECL, unqualified_id, type); ! if (id_declarator && declarator->u.id.qualifying_scope) { error ("%Jtypedef name may not be a nested-name-specifier", decl); + TREE_TYPE (decl) = error_mark_node; + } if (decl_context != FIELD) { *************** build_enumerator (tree name, tree value, *** 10923,10943 **** tree prev_value; bool overflowed; ! /* The next value is the previous value plus one. We can ! safely assume that the previous value is an INTEGER_CST. add_double doesn't know the type of the target expression, so we must check with int_fits_type_p as well. */ prev_value = DECL_INITIAL (TREE_VALUE (TYPE_VALUES (enumtype))); ! overflowed = add_double (TREE_INT_CST_LOW (prev_value), ! TREE_INT_CST_HIGH (prev_value), ! 1, 0, &lo, &hi); ! value = build_int_cst_wide (TREE_TYPE (prev_value), lo, hi); ! overflowed |= !int_fits_type_p (value, TREE_TYPE (prev_value)); ! ! if (overflowed) { ! error ("overflow in enumeration values at %qD", name); ! value = error_mark_node; } } else --- 10925,10950 ---- tree prev_value; bool overflowed; ! /* The next value is the previous value plus one. add_double doesn't know the type of the target expression, so we must check with int_fits_type_p as well. */ prev_value = DECL_INITIAL (TREE_VALUE (TYPE_VALUES (enumtype))); ! if (error_operand_p (prev_value)) ! value = error_mark_node; ! else { ! overflowed = add_double (TREE_INT_CST_LOW (prev_value), ! TREE_INT_CST_HIGH (prev_value), ! 1, 0, &lo, &hi); ! value = build_int_cst_wide (TREE_TYPE (prev_value), lo, hi); ! overflowed ! |= !int_fits_type_p (value, TREE_TYPE (prev_value)); ! ! if (overflowed) ! { ! error ("overflow in enumeration values at %qD", name); ! value = error_mark_node; ! } } } else diff -Nrcpad gcc-4.3.2/gcc/cp/error.c gcc-4.3.3/gcc/cp/error.c *** gcc-4.3.2/gcc/cp/error.c Tue Aug 19 11:50:11 2008 --- gcc-4.3.3/gcc/cp/error.c Wed Nov 19 22:36:31 2008 *************** dump_template_decl (tree t, int flags) *** 1036,1046 **** } } ! if (TREE_CODE (DECL_TEMPLATE_RESULT (t)) == TYPE_DECL) dump_type (TREE_TYPE (t), ((flags & ~TFF_CLASS_KEY_OR_ENUM) | TFF_TEMPLATE_NAME | (flags & TFF_DECL_SPECIFIERS ? TFF_CLASS_KEY_OR_ENUM : 0))); ! else if (TREE_CODE (DECL_TEMPLATE_RESULT (t)) == VAR_DECL) dump_decl (DECL_TEMPLATE_RESULT (t), flags | TFF_TEMPLATE_NAME); else { --- 1036,1048 ---- } } ! if (DECL_TEMPLATE_RESULT (t) ! && TREE_CODE (DECL_TEMPLATE_RESULT (t)) == TYPE_DECL) dump_type (TREE_TYPE (t), ((flags & ~TFF_CLASS_KEY_OR_ENUM) | TFF_TEMPLATE_NAME | (flags & TFF_DECL_SPECIFIERS ? TFF_CLASS_KEY_OR_ENUM : 0))); ! else if (DECL_TEMPLATE_RESULT (t) ! && TREE_CODE (DECL_TEMPLATE_RESULT (t)) == VAR_DECL) dump_decl (DECL_TEMPLATE_RESULT (t), flags | TFF_TEMPLATE_NAME); else { diff -Nrcpad gcc-4.3.2/gcc/cp/name-lookup.c gcc-4.3.3/gcc/cp/name-lookup.c *** gcc-4.3.2/gcc/cp/name-lookup.c Fri Apr 18 19:56:55 2008 --- gcc-4.3.3/gcc/cp/name-lookup.c Tue Jan 13 21:41:11 2009 *************** qualified_lookup_using_namespace (tree n *** 3870,3878 **** POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, result->value != error_mark_node); } /* Return the innermost non-namespace binding for NAME from a scope ! containing BINDING, or, if BINDING is NULL, the current scope. If ! CLASS_P is false, then class bindings are ignored. */ cxx_binding * outer_binding (tree name, --- 3870,3902 ---- POP_TIMEVAR_AND_RETURN (TV_NAME_LOOKUP, result->value != error_mark_node); } + /* Subroutine of outer_binding. + Returns TRUE if BINDING is a binding to a template parameter of SCOPE, + FALSE otherwise. */ + static bool + binding_to_template_parms_of_scope_p (cxx_binding *binding, + cxx_scope *scope) + { + tree binding_value; + + if (!binding || !scope) + return false; + + binding_value = binding->value ? binding->value : binding->type; + + return (scope + && scope->this_entity + && get_template_info (scope->this_entity) + && parameter_of_template_p (binding_value, + TI_TEMPLATE (get_template_info \ + (scope->this_entity)))); + } + /* Return the innermost non-namespace binding for NAME from a scope ! containing BINDING, or, if BINDING is NULL, the current scope. ! Please note that for a given template, the template parameters are ! considered to be in the scope containing the current scope. ! If CLASS_P is false, then class bindings are ignored. */ cxx_binding * outer_binding (tree name, *************** outer_binding (tree name, *** 3920,3925 **** --- 3944,3955 ---- return class_binding; } } + /* If SCOPE is a template and if NAME binds to one of its template parameters + return the binding, otherwise we might miss it. */ + if (outer_scope && outer_scope->kind == sk_template_parms + && binding_to_template_parms_of_scope_p (outer, scope)) + return outer; + scope = scope->level_chain; } diff -Nrcpad gcc-4.3.2/gcc/cp/parser.c gcc-4.3.3/gcc/cp/parser.c *** gcc-4.3.2/gcc/cp/parser.c Thu Aug 7 12:27:48 2008 --- gcc-4.3.3/gcc/cp/parser.c Wed Nov 19 21:00:23 2008 *************** cp_parser_pseudo_destructor_name (cp_par *** 5143,5149 **** /*typename_keyword_p=*/false, /*check_dependency_p=*/true, /*type_p=*/false, ! /*is_declaration=*/true) != NULL_TREE); /* Now, if we saw a nested-name-specifier, we might be doing the second production. */ --- 5143,5149 ---- /*typename_keyword_p=*/false, /*check_dependency_p=*/true, /*type_p=*/false, ! /*is_declaration=*/false) != NULL_TREE); /* Now, if we saw a nested-name-specifier, we might be doing the second production. */ diff -Nrcpad gcc-4.3.2/gcc/cp/pt.c gcc-4.3.3/gcc/cp/pt.c *** gcc-4.3.2/gcc/cp/pt.c Wed Apr 30 15:04:56 2008 --- gcc-4.3.3/gcc/cp/pt.c Fri Jan 16 22:35:24 2009 *************** coerce_template_template_parms (tree par *** 4709,4715 **** D d; i.e. the parameter list of TT depends on earlier parameters. */ ! if (!dependent_type_p (TREE_TYPE (arg)) && !same_type_p (tsubst (TREE_TYPE (parm), outer_args, complain, in_decl), TREE_TYPE (arg))) --- 4709,4715 ---- D d; i.e. the parameter list of TT depends on earlier parameters. */ ! if (!uses_template_parms (TREE_TYPE (arg)) && !same_type_p (tsubst (TREE_TYPE (parm), outer_args, complain, in_decl), TREE_TYPE (arg))) *************** lookup_template_class (tree d1, *** 5504,5509 **** --- 5504,5510 ---- d1 = DECL_NAME (template); } else if (TREE_CODE (d1) == TEMPLATE_DECL + && DECL_TEMPLATE_RESULT (d1) && TREE_CODE (DECL_TEMPLATE_RESULT (d1)) == TYPE_DECL) { template = d1; *************** outermost_tinst_level (void) *** 6299,6304 **** --- 6300,6329 ---- return level; } + /* Returns TRUE if PARM is a parameter of the template TEMPL. */ + + bool + parameter_of_template_p (tree parm, tree templ) + { + tree parms; + int i; + + if (!parm || !templ) + return false; + + gcc_assert (DECL_TEMPLATE_PARM_P (parm)); + gcc_assert (TREE_CODE (templ) == TEMPLATE_DECL); + + parms = DECL_TEMPLATE_PARMS (templ); + parms = INNERMOST_TEMPLATE_PARMS (parms); + + for (i = 0; i < TREE_VEC_LENGTH (parms); ++i) + if (parm == TREE_VALUE (TREE_VEC_ELT (parms, i))) + return true; + + return false; + } + /* DECL is a friend FUNCTION_DECL or TEMPLATE_DECL. ARGS is the vector of template arguments, as for tsubst. *************** tsubst (tree t, tree args, tsubst_flags_ *** 8828,8833 **** --- 8853,8861 ---- if (DECL_P (t)) return tsubst_decl (t, args, complain); + if (args == NULL_TREE) + return t; + if (TREE_CODE (t) == IDENTIFIER_NODE) type = IDENTIFIER_TYPE_VALUE (t); else *************** tsubst_copy_and_build (tree t, *** 11026,11034 **** qualified_p ? LOOKUP_NONVIRTUAL : LOOKUP_NORMAL, /*fn_p=*/NULL)); } return finish_call_expr (function, call_args, /*disallow_virtual=*/qualified_p, ! koenig_p); } case COND_EXPR: --- 11054,11065 ---- qualified_p ? LOOKUP_NONVIRTUAL : LOOKUP_NORMAL, /*fn_p=*/NULL)); } + /* Pass true for koenig_p so that build_new_function_call will + allow hidden friends found by arg-dependent lookup at template + parsing time. */ return finish_call_expr (function, call_args, /*disallow_virtual=*/qualified_p, ! /*koenig_p*/true); } case COND_EXPR: diff -Nrcpad gcc-4.3.2/gcc/cp/semantics.c gcc-4.3.3/gcc/cp/semantics.c *** gcc-4.3.2/gcc/cp/semantics.c Wed Jun 11 06:47:36 2008 --- gcc-4.3.3/gcc/cp/semantics.c Fri Nov 14 22:01:12 2008 *************** finish_call_expr (tree fn, tree args, bo *** 1972,1978 **** if (processing_template_decl) { result = build_call_list (TREE_TYPE (result), orig_fn, orig_args); ! KOENIG_LOOKUP_P (result) = koenig_p; } return result; } --- 1972,1980 ---- if (processing_template_decl) { result = build_call_list (TREE_TYPE (result), orig_fn, orig_args); ! /* Don't repeat arg-dependent lookup at instantiation time if this call ! is not type-dependent. */ ! KOENIG_LOOKUP_P (result) = 0; } return result; } diff -Nrcpad gcc-4.3.2/gcc/cp/tree.c gcc-4.3.3/gcc/cp/tree.c *** gcc-4.3.2/gcc/cp/tree.c Tue Jul 29 16:40:15 2008 --- gcc-4.3.3/gcc/cp/tree.c Fri Jan 16 23:17:35 2009 *************** static tree build_cplus_array_type_1 (tr *** 44,50 **** static int list_hash_eq (const void *, const void *); static hashval_t list_hash_pieces (tree, tree, tree); static hashval_t list_hash (const void *); ! static cp_lvalue_kind lvalue_p_1 (const_tree, int); static tree build_target_expr (tree, tree); static tree count_trees_r (tree *, int *, void *); static tree verify_stmt_tree_r (tree *, int *, void *); --- 44,50 ---- static int list_hash_eq (const void *, const void *); static hashval_t list_hash_pieces (tree, tree, tree); static hashval_t list_hash (const void *); ! static cp_lvalue_kind lvalue_p_1 (tree, int); static tree build_target_expr (tree, tree); static tree count_trees_r (tree *, int *, void *); static tree verify_stmt_tree_r (tree *, int *, void *); *************** static tree handle_init_priority_attribu *** 59,65 **** nonzero, rvalues of class type are considered lvalues. */ static cp_lvalue_kind ! lvalue_p_1 (const_tree ref, int treat_class_rvalues_as_lvalues) { cp_lvalue_kind op1_lvalue_kind = clk_none; --- 59,65 ---- nonzero, rvalues of class type are considered lvalues. */ static cp_lvalue_kind ! lvalue_p_1 (tree ref, int treat_class_rvalues_as_lvalues) { cp_lvalue_kind op1_lvalue_kind = clk_none; *************** lvalue_p_1 (const_tree ref, *** 110,120 **** op1_lvalue_kind = lvalue_p_1 (TREE_OPERAND (ref, 0), treat_class_rvalues_as_lvalues); /* Look at the member designator. */ ! if (!op1_lvalue_kind ! /* The "field" can be a FUNCTION_DECL or an OVERLOAD in some ! situations. */ ! || TREE_CODE (TREE_OPERAND (ref, 1)) != FIELD_DECL) ; else if (DECL_C_BIT_FIELD (TREE_OPERAND (ref, 1))) { /* Clear the ordinary bit. If this object was a class --- 110,124 ---- op1_lvalue_kind = lvalue_p_1 (TREE_OPERAND (ref, 0), treat_class_rvalues_as_lvalues); /* Look at the member designator. */ ! if (!op1_lvalue_kind) ; + else if (is_overloaded_fn (TREE_OPERAND (ref, 1))) + /* The "field" can be a FUNCTION_DECL or an OVERLOAD in some + situations. */ + op1_lvalue_kind = lvalue_p_1 (TREE_OPERAND (ref, 1), + treat_class_rvalues_as_lvalues); + else if (TREE_CODE (TREE_OPERAND (ref, 1)) != FIELD_DECL) + /* This can be IDENTIFIER_NODE in a template. */; else if (DECL_C_BIT_FIELD (TREE_OPERAND (ref, 1))) { /* Clear the ordinary bit. If this object was a class *************** lvalue_p_1 (const_tree ref, *** 194,199 **** --- 198,209 ---- return (DECL_NONSTATIC_MEMBER_FUNCTION_P (ref) ? clk_none : clk_ordinary); + case BASELINK: + /* We now represent a reference to a single static member function + with a BASELINK. */ + return lvalue_p_1 (BASELINK_FUNCTIONS (ref), + treat_class_rvalues_as_lvalues); + case NON_DEPENDENT_EXPR: /* We must consider NON_DEPENDENT_EXPRs to be lvalues so that things like "&E" where "E" is an expression with a *************** lvalue_p_1 (const_tree ref, *** 226,232 **** computes the C++ definition of lvalue. */ cp_lvalue_kind ! real_lvalue_p (const_tree ref) { return lvalue_p_1 (ref, /*treat_class_rvalues_as_lvalues=*/0); --- 236,242 ---- computes the C++ definition of lvalue. */ cp_lvalue_kind ! real_lvalue_p (tree ref) { return lvalue_p_1 (ref, /*treat_class_rvalues_as_lvalues=*/0); *************** real_lvalue_p (const_tree ref) *** 236,242 **** considered lvalues. */ int ! lvalue_p (const_tree ref) { return (lvalue_p_1 (ref, /*class rvalue ok*/ 1) != clk_none); --- 246,252 ---- considered lvalues. */ int ! lvalue_p (tree ref) { return (lvalue_p_1 (ref, /*class rvalue ok*/ 1) != clk_none); *************** pod_type_p (const_tree t) *** 2071,2078 **** if (TREE_CODE (t) == VECTOR_TYPE) return 1; /* vectors are (small) arrays of scalars */ ! if (! CLASS_TYPE_P (t)) return 0; /* other non-class type (reference or function) */ if (CLASSTYPE_NON_POD_P (t)) return 0; return 1; --- 2081,2090 ---- if (TREE_CODE (t) == VECTOR_TYPE) return 1; /* vectors are (small) arrays of scalars */ ! if (! IS_AGGR_TYPE_CODE (TREE_CODE (t))) return 0; /* other non-class type (reference or function) */ + if (! CLASS_TYPE_P (t)) + return 1; /* struct created by the back end */ if (CLASSTYPE_NON_POD_P (t)) return 0; return 1; diff -Nrcpad gcc-4.3.2/gcc/cp/typeck.c gcc-4.3.3/gcc/cp/typeck.c *** gcc-4.3.2/gcc/cp/typeck.c Tue Apr 29 08:56:27 2008 --- gcc-4.3.3/gcc/cp/typeck.c Thu Jan 15 22:34:20 2009 *************** build_modify_expr (tree lhs, enum tree_c *** 5650,5656 **** tree newrhs = rhs; tree lhstype = TREE_TYPE (lhs); tree olhstype = lhstype; - tree olhs = NULL_TREE; bool plain_assign = (modifycode == NOP_EXPR); /* Avoid duplicate error messages from operands that had errors. */ --- 5650,5655 ---- *************** build_modify_expr (tree lhs, enum tree_c *** 5839,5873 **** && C_TYPE_FIELDS_READONLY (lhstype)))) readonly_error (lhs, "assignment"); ! /* If storing into a structure or union member, it has probably been ! given type `int'. Compute the type that would go with the actual ! amount of storage the member occupies. */ ! ! if (TREE_CODE (lhs) == COMPONENT_REF ! && (TREE_CODE (lhstype) == INTEGER_TYPE ! || TREE_CODE (lhstype) == REAL_TYPE ! || TREE_CODE (lhstype) == ENUMERAL_TYPE)) ! { ! lhstype = TREE_TYPE (get_unwidened (lhs, 0)); ! ! /* If storing in a field that is in actuality a short or narrower ! than one, we must store in the field in its actual type. */ ! if (lhstype != TREE_TYPE (lhs)) ! { ! /* Avoid warnings converting integral types back into enums for ! enum bit fields. */ ! if (TREE_CODE (lhstype) == INTEGER_TYPE ! && TREE_CODE (olhstype) == ENUMERAL_TYPE) ! { ! if (TREE_SIDE_EFFECTS (lhs)) ! lhs = stabilize_reference (lhs); ! olhs = lhs; ! } ! lhs = copy_node (lhs); ! TREE_TYPE (lhs) = lhstype; ! } ! } /* Convert new value to destination type. */ --- 5838,5848 ---- && C_TYPE_FIELDS_READONLY (lhstype)))) readonly_error (lhs, "assignment"); ! /* If storing into a structure or union member, it may have been given a ! lowered bitfield type. We need to convert to the declared type first, ! so retrieve it now. */ ! olhstype = unlowered_expr_type (lhs); /* Convert new value to destination type. */ *************** build_modify_expr (tree lhs, enum tree_c *** 5903,5923 **** } if (modifycode == INIT_EXPR) ! newrhs = convert_for_initialization (lhs, lhstype, newrhs, LOOKUP_NORMAL, "initialization", NULL_TREE, 0); else { - /* Avoid warnings on enum bit fields. */ - if (TREE_CODE (olhstype) == ENUMERAL_TYPE - && TREE_CODE (lhstype) == INTEGER_TYPE) - { - newrhs = convert_for_assignment (olhstype, newrhs, "assignment", - NULL_TREE, 0); - newrhs = convert_force (lhstype, newrhs, 0); - } - else - newrhs = convert_for_assignment (lhstype, newrhs, "assignment", - NULL_TREE, 0); if (TREE_CODE (newrhs) == CALL_EXPR && TYPE_NEEDS_CONSTRUCTING (lhstype)) newrhs = build_cplus_new (lhstype, newrhs); --- 5878,5894 ---- } if (modifycode == INIT_EXPR) ! newrhs = convert_for_initialization (lhs, olhstype, newrhs, LOOKUP_NORMAL, "initialization", NULL_TREE, 0); else + newrhs = convert_for_assignment (olhstype, newrhs, "assignment", + NULL_TREE, 0); + + if (!same_type_p (lhstype, olhstype)) + newrhs = cp_convert_and_check (lhstype, newrhs); + + if (modifycode != INIT_EXPR) { if (TREE_CODE (newrhs) == CALL_EXPR && TYPE_NEEDS_CONSTRUCTING (lhstype)) newrhs = build_cplus_new (lhstype, newrhs); *************** build_modify_expr (tree lhs, enum tree_c *** 5949,5969 **** if (!plain_assign) TREE_NO_WARNING (result) = 1; ! /* If we got the LHS in a different type for storing in, ! convert the result back to the nominal type of LHS ! so that the value we return always has the same type ! as the LHS argument. */ ! ! if (olhstype == TREE_TYPE (result)) ! return result; ! if (olhs) ! { ! result = build2 (COMPOUND_EXPR, olhstype, result, olhs); ! TREE_NO_WARNING (result) = 1; ! return result; ! } ! return convert_for_assignment (olhstype, result, "assignment", ! NULL_TREE, 0); } tree --- 5920,5926 ---- if (!plain_assign) TREE_NO_WARNING (result) = 1; ! return result; } tree *************** non_reference (tree t) *** 7185,7191 **** how the lvalue is being used and so selects the error message. */ int ! lvalue_or_else (const_tree ref, enum lvalue_use use) { int win = lvalue_p (ref); --- 7142,7148 ---- how the lvalue is being used and so selects the error message. */ int ! lvalue_or_else (tree ref, enum lvalue_use use) { int win = lvalue_p (ref); diff -Nrcpad gcc-4.3.2/gcc/cp/typeck2.c gcc-4.3.3/gcc/cp/typeck2.c *** gcc-4.3.2/gcc/cp/typeck2.c Mon Feb 4 03:28:53 2008 --- gcc-4.3.3/gcc/cp/typeck2.c Fri Nov 14 04:16:07 2008 *************** process_init_constructor_record (tree ty *** 895,900 **** --- 895,901 ---- for (field = TYPE_FIELDS (type); field; field = TREE_CHAIN (field)) { tree next; + tree type; if (!DECL_NAME (field) && DECL_C_BIT_FIELD (field)) { *************** process_init_constructor_record (tree ty *** 906,911 **** --- 907,917 ---- if (TREE_CODE (field) != FIELD_DECL || DECL_ARTIFICIAL (field)) continue; + /* If this is a bitfield, first convert to the declared type. */ + type = TREE_TYPE (field); + if (DECL_BIT_FIELD_TYPE (field)) + type = DECL_BIT_FIELD_TYPE (field); + if (idx < VEC_length (constructor_elt, CONSTRUCTOR_ELTS (init))) { constructor_elt *ce = VEC_index (constructor_elt, *************** process_init_constructor_record (tree ty *** 926,932 **** } gcc_assert (ce->value); ! next = digest_init (TREE_TYPE (field), ce->value); ++idx; } else if (TYPE_NEEDS_CONSTRUCTING (TREE_TYPE (field))) --- 932,938 ---- } gcc_assert (ce->value); ! next = digest_init (type, ce->value); ++idx; } else if (TYPE_NEEDS_CONSTRUCTING (TREE_TYPE (field))) *************** process_init_constructor_record (tree ty *** 969,974 **** --- 975,983 ---- continue; } + /* If this is a bitfield, now convert to the lowered type. */ + if (type != TREE_TYPE (field)) + next = cp_convert_and_check (TREE_TYPE (field), next); flags |= picflag_from_initializer (next); CONSTRUCTOR_APPEND_ELT (v, field, next); } diff -Nrcpad gcc-4.3.2/libstdc++-v3/ChangeLog gcc-4.3.3/libstdc++-v3/ChangeLog *** gcc-4.3.2/libstdc++-v3/ChangeLog Wed Aug 27 18:03:00 2008 --- gcc-4.3.3/libstdc++-v3/ChangeLog Sat Jan 24 10:16:26 2009 *************** *** 1,3 **** --- 1,129 ---- + 2009-01-24 Release Manager + + * GCC 4.3.3 released. + + 2009-01-12 Benjamin Kosnik + Jonathan Larmour + + PR libstdc++/36801 + * config/cpu/generic/atomicity_mutex/atomicity.h (get_atomic_mutex): + New. + (__gnu_cxx::__exchange_and_add): Use it. + * src/debug.cc (get_safe_base_mutex): New. + * src/locale.cc (get_locale_cache_mutex): New. + * src/mt_allocator.cc (get_freelist): New. + (get_freelist_mutex): New. + * src/pool_allocator.cc (get_palloc_mutex): New. + + 2009-01-12 Jonathan Larmour + + * include/ext/concurrence.h: Fix __gthread_cond_t initialisation + function macro name. + + 2009-01-08 Paolo Carlini + + Backport from mainline: + 2008-11-13 Paolo Carlini + + PR libstdc++/38000 + * include/c_global/csignal: Do not use include_next. + * include/c_global/cstdlib: Likewise. + * include/c_global/cstdio: Likewise. + * include/c_global/cstdarg: Likewise. + * include/c_global/cctype: Likewise. + * include/c_global/cerrno: Likewise. + * include/c_global/cmath: Likewise. + * include/c_global/clocale: Likewise. + * include/c_global/climits: Likewise. + * include/c_global/cassert: Likewise. + * include/c_global/csetjmp: Likewise. + * include/c_global/cwchar: Likewise. + * include/c_global/cfloat: Likewise. + * include/c_global/cstdbool: Likewise. + * include/c_global/cstring: Likewise. + * include/c_global/cstddef: Likewise. + * include/c_global/cwctype: Likewise. + * include/tr1/cstdbool: Likewise. + * include/tr1_impl/cinttypes: Do not include . + * include/c_global/cinttypes: Do it here. + * include/tr1/cinttypes: Likewise. + * include/tr1_impl/cfenv: Do not include . + * include/c_global/cfenv: Do it here. + * include/tr1/cfenv: Likewise. + * include/tr1_impl/cstdint: Do not include . + * include/c_global/cstdint: Do it here. + * include/tr1/cstdint: Likewise. + * include/c_compatibility/fenv.h: Include . + * include/c_compatibility/stdint.h: Include . + * include/c_compatibility/inttypes.h: Include . + + * include/c_compatibility/math.h: Minor tweak, add comment. + + 2008-12-12 H.J. Lu + + Backport from mainline: + 2008-12-12 H.J. Lu + + PR libstdc++/37144 + * testsuite/util/regression/trait/assoc/type_trait.hpp + (regression_test_type_traits): Add const to pair_type_rebind. + + 2008-12-11 Jakub Jelinek + + PR c++/37582 + * include/bits/cpp_type_traits.h (struct __traitand): New. + * include/c_global/cmath (std::atan2, std::pow): Use __traitand + instead of && as first argument to __enable_if. + * include/c_std/cmath (std::atan2): Likewise. + * testsuite/26_numerics/headers/cmath/37582.cc: New. + + 2008-12-04 Janis Johnson + + Backport from mainline: + 2008-10-18 Jakub Jelinek + Janis Johnson + + * testsuite/Makefile.am (AUTOMAKE_OPTIONS): Remove dejagnu. + (RUNTESTDEFAULTFLAGS, EXPECT, check_DEJAGNU_normal_targets): New + variables. + (%/site.exp, check-DEJAGNU%): New targets. + (check-am): Run $(MAKE) check-DEJAGNU. + * testsuite/Makefile.in: Regenerated. + + 2008-12-02 Janis Johnson + + Backport from mainline: + 2008-11-26 Janis Johnson + + PR testsuite/28870 + * testsuite/lib/libstdc++.exp: Include new timeout library files. + (libstdc++_init): Define tool_timeout. + (dg-test): Override DejaGnu proc. + (v3_target_compile): Set timeout value from new proc. + (v3_target_compile_as_c): Ditto. + + 2008-12-01 Benjamin Kosnik + + PR libstdc++/38080 + * include/std/iostream: Correct URL. + * include/std/streambuf: Same. + * include/std/bitset: Same. + * include/std/iosfwd: Same. + * include/std/fstream: Same. + * include/std/istream: Same. + * include/std/ostream: Same. + * include/std/sstream: Same. + * include/bits/basic_ios.h: Same. + * include/bits/stl_map.h: Same. + * include/bits/stl_set.h: Same. + * include/bits/stl_multimap.h: Same. + * include/bits/ios_base.h: Same. + * include/bits/stl_multiset.h: Same. + * include/bits/char_traits.h: Same. + * include/bits/stl_relops.h: Same. + * testsuite/27_io/ios_base/cons/assign_neg.cc: Adjust line numbers. + * testsuite/27_io/ios_base/cons/copy_neg.cc: Ditto. + 2008-08-27 Release Manager * GCC 4.3.2 released. *************** *** 9,17 **** 2008-08-12 Johannes Singler ! * include/paralle/losertree.h ! (LoserTreePointerBase<>::~LoserTreePointerBase): ! Replace delete by appropriate delete[]. 2008-07-15 Paolo Carlini --- 135,143 ---- 2008-08-12 Johannes Singler ! * include/paralle/losertree.h ! (LoserTreePointerBase<>::~LoserTreePointerBase): ! Replace delete by appropriate delete[]. 2008-07-15 Paolo Carlini *************** *** 22,29 **** 2008-07-10 Johannes Singler ! * include/parallel/balanced_quicksort.h: ! (qsb_divide) Replace "*end" by "*(end - 1)" in assertion. 2008-07-09 Andreas Beckmann --- 148,155 ---- 2008-07-10 Johannes Singler ! * include/parallel/balanced_quicksort.h: ! (qsb_divide) Replace "*end" by "*(end - 1)" in assertion. 2008-07-09 Andreas Beckmann *************** *** 34,43 **** 2008-07-09 Johannes Singler PR libstdc++/36729 ! * include/parallel/random_shuffle.h: ! (sequential_random_shuffle) Copy data back. ! * testsuite/25_algorithms/random_shuffle/1.cc: ! New. Generic random_shuffle functionality test. 2008-07-07 Bernd Schmidt --- 160,169 ---- 2008-07-09 Johannes Singler PR libstdc++/36729 ! * include/parallel/random_shuffle.h: ! (sequential_random_shuffle) Copy data back. ! * testsuite/25_algorithms/random_shuffle/1.cc: ! New. Generic random_shuffle functionality test. 2008-07-07 Bernd Schmidt *************** *** 91,107 **** 2008-06-05 Johannes Singler ! * include/parallel/random_shuffle.h: ! (parallel_random_shuffle_drs) Get the actual number of ! threads after entering the parallel region. Indentation. ! * include/parallel/algo.h: (random_shuffle(begin, end)) ! Add namespace qualification to avoid ambiguity. 2008-05-15 Johannes Singler ! * doc/xml/manual/parallel_mode.xml: ! General revision, correct wrong doc and make it more ! readable. 2008-05-12 Paolo Carlini --- 217,233 ---- 2008-06-05 Johannes Singler ! * include/parallel/random_shuffle.h: ! (parallel_random_shuffle_drs) Get the actual number of ! threads after entering the parallel region. Indentation. ! * include/parallel/algo.h: (random_shuffle(begin, end)) ! Add namespace qualification to avoid ambiguity. 2008-05-15 Johannes Singler ! * doc/xml/manual/parallel_mode.xml: ! General revision, correct wrong doc and make it more ! readable. 2008-05-12 Paolo Carlini *************** *** 124,146 **** * include/parallel/quicksort.h (parallel_sort_qs_conquer): Explicitly request number of threads in the parallel clause. ! (parallel_sort_qs): Remove setting the number of threads globally. 2008-05-06 Johannes Singler ! * include/parallel/multiway_merge.h (multiway_merge_*_unguarded): ! Pass sentinel directly, to allow correct determination. ! (multiway_merge_loser_tree_unguarded): Remove over-cautious assertion. ! (calls to multiway_merge_*_splitting): Parametrize with type that is correct in all cases. ! * include/parallel/losertree.h (delete_min_insert (in many classes)): ! Correct and standardize assertions. 2008-05-05 Benjamin Kosnik * 20_util/make_signed/requirements/typedefs-1.cc: Correct requirements. * 20_util/make_unsigned/requirements/typedefs-1.cc: Same. ! 2008-04-29 Benjamin Kosnik PR libstdc++/35922 --- 250,272 ---- * include/parallel/quicksort.h (parallel_sort_qs_conquer): Explicitly request number of threads in the parallel clause. ! (parallel_sort_qs): Remove setting the number of threads globally. 2008-05-06 Johannes Singler ! * include/parallel/multiway_merge.h (multiway_merge_*_unguarded): ! Pass sentinel directly, to allow correct determination. ! (multiway_merge_loser_tree_unguarded): Remove over-cautious assertion. ! (calls to multiway_merge_*_splitting): Parametrize with type that is correct in all cases. ! * include/parallel/losertree.h (delete_min_insert (in many classes)): ! Correct and standardize assertions. 2008-05-05 Benjamin Kosnik * 20_util/make_signed/requirements/typedefs-1.cc: Correct requirements. * 20_util/make_unsigned/requirements/typedefs-1.cc: Same. ! 2008-04-29 Benjamin Kosnik PR libstdc++/35922 *************** *** 170,191 **** 2008-05-25 Benjamin Kosnik ! Revert PR libstdc++/35887 ! * configure.ac: Revert. ! * acinclude.m4: Same. ! * configure: Regenerate. ! * include/Makefile.am: Revert. ! * include/Makefile.in: Regenerate. ! 2008-04-24 Benjamin Kosnik ! PR libstdc++/35887 ! * configure.ac: Add default argument to GLIBCXX_ENABLE_PARALLEL. ! * acinclude.m4 (GLIBCXX_ENABLE_PARALLEL): Check for --disable-libgomp. ! * configure: Regenerate. ! * include/Makefile.am (parallel_headers): Make conditional on ! ENABLE_PARALLEL. ! * include/Makefile.in: Regenerate. 2008-04-24 Ralf Wildenhues --- 296,317 ---- 2008-05-25 Benjamin Kosnik ! Revert PR libstdc++/35887 ! * configure.ac: Revert. ! * acinclude.m4: Same. ! * configure: Regenerate. ! * include/Makefile.am: Revert. ! * include/Makefile.in: Regenerate. ! 2008-04-24 Benjamin Kosnik ! PR libstdc++/35887 ! * configure.ac: Add default argument to GLIBCXX_ENABLE_PARALLEL. ! * acinclude.m4 (GLIBCXX_ENABLE_PARALLEL): Check for --disable-libgomp. ! * configure: Regenerate. ! * include/Makefile.am (parallel_headers): Make conditional on ! ENABLE_PARALLEL. ! * include/Makefile.in: Regenerate. 2008-04-24 Ralf Wildenhues *************** *** 196,215 **** 2008-04-23 Johannes Singler ! * include/parallel/multiway_merge.h ! (multiway_merge_loser_tree): ! Leave checks to callers, add precondition instead. ! (multiway_merge_loser_tree_unguarded): Likewise. ! (multiway_merge_loser_tree_sentinel): Likewise. ! (sequential_multiway_merge): Added checks for total length 0. ! (parallel_multiway_merge): Skip empty sequences. ! (multiway_merge, all variants): ! Remove temporary variable, return directly. ! (stable_multiway_merge, all variants): Likewise. ! (multiway_merge_sentinels, all variants): Likewise. ! (stable_multiway_merge_sentinels, all variants): Likewise. ! * include/parallel/multiseq_selection.h ! (multiseq_partition): More detailed assertions. 2008-04-14 Benjamin Kosnik --- 322,341 ---- 2008-04-23 Johannes Singler ! * include/parallel/multiway_merge.h ! (multiway_merge_loser_tree): ! Leave checks to callers, add precondition instead. ! (multiway_merge_loser_tree_unguarded): Likewise. ! (multiway_merge_loser_tree_sentinel): Likewise. ! (sequential_multiway_merge): Added checks for total length 0. ! (parallel_multiway_merge): Skip empty sequences. ! (multiway_merge, all variants): ! Remove temporary variable, return directly. ! (stable_multiway_merge, all variants): Likewise. ! (multiway_merge_sentinels, all variants): Likewise. ! (stable_multiway_merge_sentinels, all variants): Likewise. ! * include/parallel/multiseq_selection.h ! (multiseq_partition): More detailed assertions. 2008-04-14 Benjamin Kosnik *************** *** 221,227 **** 2008-04-10 Benjamin Kosnik * doc/html/*: Regenerate. ! 2008-04-10 Ralf Wildenhues * doc/xml/manual/bitmap_allocator.xml: Improve wording a bit. --- 347,353 ---- 2008-04-10 Benjamin Kosnik * doc/html/*: Regenerate. ! 2008-04-10 Ralf Wildenhues * doc/xml/manual/bitmap_allocator.xml: Improve wording a bit. *************** *** 253,259 **** * doc/xml/manual/parallel_mode.xml: Remove map/set bulk insertors. Correct omp_set_num_threads example. ! 2008-04-07 Johannes Singler * include/parallel/multiway_merge.h: Moved decisions to --- 379,385 ---- * doc/xml/manual/parallel_mode.xml: Remove map/set bulk insertors. Correct omp_set_num_threads example. ! 2008-04-07 Johannes Singler * include/parallel/multiway_merge.h: Moved decisions to *************** *** 306,318 **** * doc/doxygen/Intro.3: Correct typo. * doc/xml/api.xml: Add gcc-4.3 links. ! * doc/html/api.html: Regenerate. ! * include/debug/debug.h: Document namepaces here. * include/parallel/base.h: Same. * include/ext/typelist.h: Same. * include/ext/pb_ds/tag_and_trait.hpp: Same. ! * include/tr1_impl/random: Adjust line break. * include/tr1_impl/unordered_map: Correct and or add markup. * include/tr1_impl/boost_shared_ptr.h: Correct and or add markup. --- 432,444 ---- * doc/doxygen/Intro.3: Correct typo. * doc/xml/api.xml: Add gcc-4.3 links. ! * doc/html/api.html: Regenerate. ! * include/debug/debug.h: Document namepaces here. * include/parallel/base.h: Same. * include/ext/typelist.h: Same. * include/ext/pb_ds/tag_and_trait.hpp: Same. ! * include/tr1_impl/random: Adjust line break. * include/tr1_impl/unordered_map: Correct and or add markup. * include/tr1_impl/boost_shared_ptr.h: Correct and or add markup. *************** *** 361,367 **** * config/abi/compatibility.h: Adjust file name. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Adjust ! line numbers. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Same. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Same. --- 487,493 ---- * config/abi/compatibility.h: Adjust file name. * testsuite/19_diagnostics/error_category/cons/copy_neg.cc: Adjust ! line numbers. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Same. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Same. *************** *** 437,452 **** (_GLIBCXX_LONG_DOUBLE_COMPAT_IMPL): Define. (_ZNKSt4hashIeEclEe): New alias. * testsuite/util/testsuite_abi.cc (check_version): Support ! GLIBCXX_LDBL_3.4.10. 2008-02-29 Jakub Jelinek ! Benjamin Kosnik ! ! * src/hash_c++0x.cc: Add just C++0x version of TR1 hash. ! * include/bits/functional_hash.h: Remove error_code bits. ! * src/Makefile.am: Add hash_c++0x.cc. ! * src/Makefile.in: Regenerate. ! * config/abi/pre/gnu.ver: Remove hash export. 2008-02-28 Benjamin Kosnik --- 563,578 ---- (_GLIBCXX_LONG_DOUBLE_COMPAT_IMPL): Define. (_ZNKSt4hashIeEclEe): New alias. * testsuite/util/testsuite_abi.cc (check_version): Support ! GLIBCXX_LDBL_3.4.10. 2008-02-29 Jakub Jelinek ! Benjamin Kosnik ! ! * src/hash_c++0x.cc: Add just C++0x version of TR1 hash. ! * include/bits/functional_hash.h: Remove error_code bits. ! * src/Makefile.am: Add hash_c++0x.cc. ! * src/Makefile.in: Regenerate. ! * config/abi/pre/gnu.ver: Remove hash export. 2008-02-28 Benjamin Kosnik *************** *** 463,469 **** * include/std/ostream: Remove support. * include/precompiled/stdc++.h: Same. * src/system_error.cc: Remove. ! * src/hash_c++0x.cc: Remove. * config/os/mingw32/error_constants.h: Same. * config/os/generic/error_constants.h: Same. * config/abi/pre/gnu.ver: Adjust exports. --- 589,595 ---- * include/std/ostream: Remove support. * include/precompiled/stdc++.h: Same. * src/system_error.cc: Remove. ! * src/hash_c++0x.cc: Remove. * config/os/mingw32/error_constants.h: Same. * config/os/generic/error_constants.h: Same. * config/abi/pre/gnu.ver: Adjust exports. *************** *** 504,510 **** * testsuite/17_intro/headers/c++200x/all.cc: Same. * testsuite/20_util/hash/requirements/explicit_instantiation.cc: Same. * testsuite/20_util/hash/operators/size_t.cc: Same. ! 2008-02-25 Jan Beulich * acinclude.m4: Also check for EIDRM and ETXTBSY. --- 630,636 ---- * testsuite/17_intro/headers/c++200x/all.cc: Same. * testsuite/20_util/hash/requirements/explicit_instantiation.cc: Same. * testsuite/20_util/hash/operators/size_t.cc: Same. ! 2008-02-25 Jan Beulich * acinclude.m4: Also check for EIDRM and ETXTBSY. *************** *** 529,544 **** * include/tr1/exp_integral.tcc: Same. * include/tr1/gamma.tcc: Same. * include/tr1/hypergeometric.tcc: Same. ! 2008-02-17 Benjamin Kosnik PR libstdc++/34797 * include/parallel/settings.h (_Settings): Reconstruct Settings class here, uglify, remove anonymous namespace and static ! members. Convert to datum. * include/parallel/types.h: Move Settings:: enumerations here, uglify. * src/parallel_settings.cc: New, definition for _Settings member ! functions. * include/parallel/multiway_merge.h: Same. * include/parallel/for_each.h: Same. * include/parallel/workstealing.h: Same. --- 655,670 ---- * include/tr1/exp_integral.tcc: Same. * include/tr1/gamma.tcc: Same. * include/tr1/hypergeometric.tcc: Same. ! 2008-02-17 Benjamin Kosnik PR libstdc++/34797 * include/parallel/settings.h (_Settings): Reconstruct Settings class here, uglify, remove anonymous namespace and static ! members. Convert to datum. * include/parallel/types.h: Move Settings:: enumerations here, uglify. * src/parallel_settings.cc: New, definition for _Settings member ! functions. * include/parallel/multiway_merge.h: Same. * include/parallel/for_each.h: Same. * include/parallel/workstealing.h: Same. *************** *** 563,569 **** * src/Makefile.am (parallel_sources): Add parallel_settings.cc. * src/Makefile.in: Regenerate. ! * config/abi/pre/gnu.ver: Export _Settings::get and _Settings::set. 2008-02-17 Paolo Carlini --- 689,695 ---- * src/Makefile.am (parallel_sources): Add parallel_settings.cc. * src/Makefile.in: Regenerate. ! * config/abi/pre/gnu.ver: Export _Settings::get and _Settings::set. 2008-02-17 Paolo Carlini *************** *** 582,603 **** * config/abi/pre/gnu.ver: Export stdio_sync_filebuf symbols. * testsuite/ext/stdio_sync_filebuf/char/35209.cc: New. * testsuite/ext/stdio_sync_filebuf/wchar_t/35209.cc: Likewise. ! 2008-02-16 Benjamin Kosnik * include/parallel/random_number.h: Use TR1's mersenne_twister. (random_number::genrand_bits()): Remove. (random_number::set_seed): Remove. ! 2008-02-15 Benjamin Kosnik ! * include/parallel/types.h: Remove enum parallelism. ! 2008-02-15 Benjamin Kosnik * include/parallel/types.h: Move enum parallelism here. Use tr1/cstdint's int16_t, uint16_t, int32_t, uint32_t, int64_t, ! uint64_t. * include/parallel/multiseq_selection.h: Adjust for cstdint. * include/parallel/compatibility.h: Same. * include/parallel/tags.h: Just compile-time tags. --- 708,729 ---- * config/abi/pre/gnu.ver: Export stdio_sync_filebuf symbols. * testsuite/ext/stdio_sync_filebuf/char/35209.cc: New. * testsuite/ext/stdio_sync_filebuf/wchar_t/35209.cc: Likewise. ! 2008-02-16 Benjamin Kosnik * include/parallel/random_number.h: Use TR1's mersenne_twister. (random_number::genrand_bits()): Remove. (random_number::set_seed): Remove. ! 2008-02-15 Benjamin Kosnik ! * include/parallel/types.h: Remove enum parallelism. ! 2008-02-15 Benjamin Kosnik * include/parallel/types.h: Move enum parallelism here. Use tr1/cstdint's int16_t, uint16_t, int32_t, uint32_t, int64_t, ! uint64_t. * include/parallel/multiseq_selection.h: Adjust for cstdint. * include/parallel/compatibility.h: Same. * include/parallel/tags.h: Just compile-time tags. *************** *** 836,842 **** * testsuite/tr1/6_containers/tuple/cons/constructor.cc: Likewise. * testsuite/tr1/6_containers/array/cons/aggregate_initialization.cc: Likewise. ! * testsuite/tr1/6_containers/array/requirements/contiguous.cc: Likewise. * testsuite/tr1/6_containers/array/requirements/member_swap.cc: Likewise. --- 962,968 ---- * testsuite/tr1/6_containers/tuple/cons/constructor.cc: Likewise. * testsuite/tr1/6_containers/array/cons/aggregate_initialization.cc: Likewise. ! * testsuite/tr1/6_containers/array/requirements/contiguous.cc: Likewise. * testsuite/tr1/6_containers/array/requirements/member_swap.cc: Likewise. *************** *** 1037,1043 **** __glibcxx_requires_sorted_set_pred): Add. * include/bits/stl_algo.h (merge, includes, set_union, set_intersection, set_difference, set_symmetric_difference): ! Adjust, use __glibcxx_requires_sorted_set* instead. * testsuite/25_algorithms/set_intersection/34730.cc: New. 2008-01-09 Paolo Carlini --- 1163,1169 ---- __glibcxx_requires_sorted_set_pred): Add. * include/bits/stl_algo.h (merge, includes, set_union, set_intersection, set_difference, set_symmetric_difference): ! Adjust, use __glibcxx_requires_sorted_set* instead. * testsuite/25_algorithms/set_intersection/34730.cc: New. 2008-01-09 Paolo Carlini *************** *** 1095,1101 **** * include/parallel/algobase.h: Likewise. * include/parallel/find.h: Likewise. * include/parallel/algo.h: Likewise. ! * include/parallel/checkers.h: Likewise. 2008-01-09 Francesco Biscani --- 1221,1227 ---- * include/parallel/algobase.h: Likewise. * include/parallel/find.h: Likewise. * include/parallel/algo.h: Likewise. ! * include/parallel/checkers.h: Likewise. 2008-01-09 Francesco Biscani *************** *** 1159,1165 **** * include/parallel/multiway_mergesort.h (parallel_sort_mwms_pu, parallel_sort_mwms): Likewise. * include/parallel/partial_sum.h (parallel_partial_sum_linear): ! Likewise. * testsuite/25_algorithms/sort/34095.cc: New. 2008-01-01 Paolo Carlini --- 1285,1291 ---- * include/parallel/multiway_mergesort.h (parallel_sort_mwms_pu, parallel_sort_mwms): Likewise. * include/parallel/partial_sum.h (parallel_partial_sum_linear): ! Likewise. * testsuite/25_algorithms/sort/34095.cc: New. 2008-01-01 Paolo Carlini diff -Nrcpad gcc-4.3.2/libstdc++-v3/config/cpu/generic/atomicity_mutex/atomicity.h gcc-4.3.3/libstdc++-v3/config/cpu/generic/atomicity_mutex/atomicity.h *** gcc-4.3.2/libstdc++-v3/config/cpu/generic/atomicity_mutex/atomicity.h Wed Nov 29 20:59:22 2006 --- gcc-4.3.3/libstdc++-v3/config/cpu/generic/atomicity_mutex/atomicity.h Mon Jan 12 21:32:19 2009 *************** *** 1,6 **** // Low-level functions for atomic operations: Generic version -*- C++ -*- ! // Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free --- 1,6 ---- // Low-level functions for atomic operations: Generic version -*- C++ -*- ! // Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2009 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free *************** *** 37,43 **** namespace { ! __gnu_cxx::__mutex atomic_mutex; } // anonymous namespace _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) --- 37,48 ---- namespace { ! __gnu_cxx::__mutex& ! get_atomic_mutex() ! { ! static __gnu_cxx::__mutex atomic_mutex; ! return atomic_mutex; ! } } // anonymous namespace _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) *************** _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) *** 46,52 **** __attribute__ ((__unused__)) __exchange_and_add(volatile _Atomic_word* __mem, int __val) { ! __gnu_cxx::__scoped_lock sentry(atomic_mutex); _Atomic_word __result; __result = *__mem; *__mem += __val; --- 51,57 ---- __attribute__ ((__unused__)) __exchange_and_add(volatile _Atomic_word* __mem, int __val) { ! __gnu_cxx::__scoped_lock sentry(get_atomic_mutex()); _Atomic_word __result; __result = *__mem; *__mem += __val; diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/bits/basic_ios.h gcc-4.3.3/libstdc++-v3/include/bits/basic_ios.h *** gcc-4.3.2/libstdc++-v3/include/bits/basic_ios.h Thu Jan 31 18:44:55 2008 --- gcc-4.3.3/libstdc++-v3/include/bits/basic_ios.h Tue Dec 2 04:57:44 2008 *************** _GLIBCXX_BEGIN_NAMESPACE(std) *** 398,404 **** * with this stream, calls that buffer's @c pubimbue(loc). * * Additional l10n notes are at ! * http://gcc.gnu.org/onlinedocs/libstdc++/22_locale/howto.html */ locale imbue(const locale& __loc); --- 398,404 ---- * with this stream, calls that buffer's @c pubimbue(loc). * * Additional l10n notes are at ! * http://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.html */ locale imbue(const locale& __loc); *************** _GLIBCXX_BEGIN_NAMESPACE(std) *** 418,424 **** * @endcode * * Additional l10n notes are at ! * http://gcc.gnu.org/onlinedocs/libstdc++/22_locale/howto.html */ char narrow(char_type __c, char __dfault) const --- 418,424 ---- * @endcode * * Additional l10n notes are at ! * http://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.html */ char narrow(char_type __c, char __dfault) const *************** _GLIBCXX_BEGIN_NAMESPACE(std) *** 437,443 **** * @endcode * * Additional l10n notes are at ! * http://gcc.gnu.org/onlinedocs/libstdc++/22_locale/howto.html */ char_type widen(char __c) const --- 437,443 ---- * @endcode * * Additional l10n notes are at ! * http://gcc.gnu.org/onlinedocs/libstdc++/manual/localization.html */ char_type widen(char __c) const diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/bits/char_traits.h gcc-4.3.3/libstdc++-v3/include/bits/char_traits.h *** gcc-4.3.2/libstdc++-v3/include/bits/char_traits.h Wed Mar 26 23:21:44 2008 --- gcc-4.3.3/libstdc++-v3/include/bits/char_traits.h Tue Dec 2 04:57:44 2008 *************** _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) *** 81,87 **** * may not be specialized for fundamental types, but classes in * namespace __gnu_cxx may be. * ! * See http://gcc.gnu.org/onlinedocs/libstdc++/21_strings/howto.html#5 * for advice on how to make use of this class for "unusual" character * types. Also, check out include/ext/pod_char_traits.h. */ --- 81,87 ---- * may not be specialized for fundamental types, but classes in * namespace __gnu_cxx may be. * ! * See http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt05ch13s03.html * for advice on how to make use of this class for "unusual" character * types. Also, check out include/ext/pod_char_traits.h. */ *************** _GLIBCXX_BEGIN_NAMESPACE(std) *** 222,228 **** * __gnu_cxx::char_traits, it is possible to achieve a more * appropriate definition by specializing __gnu_cxx::char_traits. * ! * See http://gcc.gnu.org/onlinedocs/libstdc++/21_strings/howto.html#5 * for advice on how to make use of this class for "unusual" character * types. Also, check out include/ext/pod_char_traits.h. */ --- 222,228 ---- * __gnu_cxx::char_traits, it is possible to achieve a more * appropriate definition by specializing __gnu_cxx::char_traits. * ! * See http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt05ch13s03.html * for advice on how to make use of this class for "unusual" character * types. Also, check out include/ext/pod_char_traits.h. */ diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/bits/cpp_type_traits.h gcc-4.3.3/libstdc++-v3/include/bits/cpp_type_traits.h *** gcc-4.3.2/libstdc++-v3/include/bits/cpp_type_traits.h Sat Oct 27 12:07:04 2007 --- gcc-4.3.3/libstdc++-v3/include/bits/cpp_type_traits.h Fri Dec 12 08:46:26 2008 *************** _GLIBCXX_BEGIN_NAMESPACE(std) *** 100,105 **** --- 100,114 ---- typedef typename __truth_type<__value>::__type __type; }; + // N.B. The conversions to bool are needed due to the issue + // explained in c++/19404. + template + struct __traitand + { + enum { __value = bool(_Sp::__value) && bool(_Tp::__value) }; + typedef typename __truth_type<__value>::__type __type; + }; + // Compare for equality of types. template struct __are_same diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/bits/ios_base.h gcc-4.3.3/libstdc++-v3/include/bits/ios_base.h *** gcc-4.3.2/libstdc++-v3/include/bits/ios_base.h Thu Jan 31 18:44:55 2008 --- gcc-4.3.3/libstdc++-v3/include/bits/ios_base.h Tue Dec 2 04:57:44 2008 *************** _GLIBCXX_BEGIN_NAMESPACE(std) *** 215,221 **** failure(const string& __str) throw(); // This declaration is not useless: ! // http://gcc.gnu.org/onlinedocs/gcc-3.0.2/gcc_6.html#SEC118 virtual ~failure() throw(); --- 215,221 ---- failure(const string& __str) throw(); // This declaration is not useless: ! // http://gcc.gnu.org/onlinedocs/gcc-4.3.2/gcc/Vague-Linkage.html virtual ~failure() throw(); *************** _GLIBCXX_BEGIN_NAMESPACE(std) *** 368,375 **** /// Perform input and output in binary mode (as opposed to text mode). /// This is probably not what you think it is; see ! /// http://gcc.gnu.org/onlinedocs/libstdc++/27_io/howto.html#3 and ! /// http://gcc.gnu.org/onlinedocs/libstdc++/27_io/howto.html#7 for more. static const openmode binary = _S_bin; /// Open for input. Default for @c ifstream and fstream. --- 368,374 ---- /// Perform input and output in binary mode (as opposed to text mode). /// This is probably not what you think it is; see ! /// http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt11ch27s02.html static const openmode binary = _S_bin; /// Open for input. Default for @c ifstream and fstream. *************** _GLIBCXX_BEGIN_NAMESPACE(std) *** 663,669 **** * The synchronization referred to is @e only that between the standard * C facilities (e.g., stdout) and the standard C++ objects (e.g., * cout). User-declared streams are unaffected. See ! * http://gcc.gnu.org/onlinedocs/libstdc++/27_io/howto.html#8 for more. */ static bool sync_with_stdio(bool __sync = true); --- 662,668 ---- * The synchronization referred to is @e only that between the standard * C facilities (e.g., stdout) and the standard C++ objects (e.g., * cout). User-declared streams are unaffected. See ! * http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt11ch28s02.html */ static bool sync_with_stdio(bool __sync = true); diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/bits/stl_map.h gcc-4.3.3/libstdc++-v3/include/bits/stl_map.h *** gcc-4.3.2/libstdc++-v3/include/bits/stl_map.h Thu Jan 31 18:44:55 2008 --- gcc-4.3.3/libstdc++-v3/include/bits/stl_map.h Tue Dec 2 04:57:44 2008 *************** _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GL *** 486,492 **** * cause no gains in efficiency. * * See ! * http://gcc.gnu.org/onlinedocs/libstdc++/23_containers/howto.html#4 * for more on "hinting". * * Insertion requires logarithmic time (if the hint is not taken). --- 486,492 ---- * cause no gains in efficiency. * * See ! * http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt07ch17.html * for more on "hinting". * * Insertion requires logarithmic time (if the hint is not taken). diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/bits/stl_multimap.h gcc-4.3.3/libstdc++-v3/include/bits/stl_multimap.h *** gcc-4.3.2/libstdc++-v3/include/bits/stl_multimap.h Thu Mar 13 17:48:42 2008 --- gcc-4.3.3/libstdc++-v3/include/bits/stl_multimap.h Tue Dec 2 04:57:44 2008 *************** _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GL *** 422,429 **** * improve the performance of the insertion process. A bad hint would * cause no gains in efficiency. * ! * See http://gcc.gnu.org/onlinedocs/libstdc++/23_containers/howto.html#4 ! * for more on "hinting". * * Insertion requires logarithmic time (if the hint is not taken). */ --- 422,429 ---- * improve the performance of the insertion process. A bad hint would * cause no gains in efficiency. * ! * For more on "hinting," see: ! * http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt07ch17.html * * Insertion requires logarithmic time (if the hint is not taken). */ *************** _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GL *** 432,438 **** { return _M_t._M_insert_equal_(__position, __x); } /** ! * @brief A template function that attempts to insert a range of elements. * @param first Iterator pointing to the start of the range to be * inserted. * @param last Iterator pointing to the end of the range. --- 432,439 ---- { return _M_t._M_insert_equal_(__position, __x); } /** ! * @brief A template function that attempts to insert a range ! * of elements. * @param first Iterator pointing to the start of the range to be * inserted. * @param last Iterator pointing to the end of the range. diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/bits/stl_multiset.h gcc-4.3.3/libstdc++-v3/include/bits/stl_multiset.h *** gcc-4.3.2/libstdc++-v3/include/bits/stl_multiset.h Thu Jan 31 18:44:55 2008 --- gcc-4.3.3/libstdc++-v3/include/bits/stl_multiset.h Tue Dec 2 04:57:44 2008 *************** _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GL *** 384,390 **** * improve the performance of the insertion process. A bad hint would * cause no gains in efficiency. * ! * See http://gcc.gnu.org/onlinedocs/libstdc++/23_containers/howto.html#4 * for more on "hinting". * * Insertion requires logarithmic time (if the hint is not taken). --- 384,390 ---- * improve the performance of the insertion process. A bad hint would * cause no gains in efficiency. * ! * See http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt07ch17.html * for more on "hinting". * * Insertion requires logarithmic time (if the hint is not taken). diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/bits/stl_relops.h gcc-4.3.3/libstdc++-v3/include/bits/stl_relops.h *** gcc-4.3.2/libstdc++-v3/include/bits/stl_relops.h Fri Jan 18 08:16:51 2008 --- gcc-4.3.3/libstdc++-v3/include/bits/stl_relops.h Tue Dec 2 04:57:44 2008 *************** *** 60,67 **** * Inclusion of this file has been removed from * all of the other STL headers for safety reasons, except std_utility.h. * For more information, see the thread of about twenty messages starting ! * with http://gcc.gnu.org/ml/libstdc++/2001-01/msg00223.html , or the ! * FAQ at http://gcc.gnu.org/onlinedocs/libstdc++/faq/index.html#4_4 . * * Short summary: the rel_ops operators should be avoided for the present. */ --- 60,67 ---- * Inclusion of this file has been removed from * all of the other STL headers for safety reasons, except std_utility.h. * For more information, see the thread of about twenty messages starting ! * with http://gcc.gnu.org/ml/libstdc++/2001-01/msg00223.html, or ! * http://gcc.gnu.org/onlinedocs/libstdc++/faq.html#faq.ambiguous_overloads * * Short summary: the rel_ops operators should be avoided for the present. */ diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/bits/stl_set.h gcc-4.3.3/libstdc++-v3/include/bits/stl_set.h *** gcc-4.3.2/libstdc++-v3/include/bits/stl_set.h Thu Jan 31 18:44:55 2008 --- gcc-4.3.3/libstdc++-v3/include/bits/stl_set.h Tue Dec 2 04:57:44 2008 *************** _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GL *** 396,404 **** * potentially improve the performance of the insertion process. A bad * hint would cause no gains in efficiency. * ! * See http://gcc.gnu.org/onlinedocs/libstdc++/23_containers/howto.html#4 ! * for more on "hinting". ! * * Insertion requires logarithmic time (if the hint is not taken). */ iterator --- 396,404 ---- * potentially improve the performance of the insertion process. A bad * hint would cause no gains in efficiency. * ! * For more on "hinting", see: ! * http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt07ch17.html ! * * Insertion requires logarithmic time (if the hint is not taken). */ iterator *************** _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GL *** 406,412 **** { return _M_t._M_insert_unique_(__position, __x); } /** ! * @brief A template function that attempts to insert a range of elements. * @param first Iterator pointing to the start of the range to be * inserted. * @param last Iterator pointing to the end of the range. --- 406,413 ---- { return _M_t._M_insert_unique_(__position, __x); } /** ! * @brief A template function that attempts to insert a range ! * of elements. * @param first Iterator pointing to the start of the range to be * inserted. * @param last Iterator pointing to the end of the range. diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/c_compatibility/fenv.h gcc-4.3.3/libstdc++-v3/include/c_compatibility/fenv.h *** gcc-4.3.2/libstdc++-v3/include/c_compatibility/fenv.h Mon Mar 26 10:41:41 2007 --- gcc-4.3.3/libstdc++-v3/include/c_compatibility/fenv.h Fri Jan 9 00:00:17 2009 *************** *** 1,6 **** // -*- C++ -*- compatibility header. ! // Copyright (C) 2007 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 --- 1,6 ---- // -*- C++ -*- compatibility header. ! // Copyright (C) 2007, 2008 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 *************** *** 31,47 **** * This is a Standard C++ Library header. */ #include #ifdef __GXX_EXPERIMENTAL_CXX0X__ ! # include ! #else ! # if _GLIBCXX_HAVE_FENV_H ! # include_next ! # endif #endif ! #ifndef _GLIBCXX_FENV_H ! #define _GLIBCXX_FENV_H 1 ! ! #endif --- 31,63 ---- * This is a Standard C++ Library header. */ + #ifndef _GLIBCXX_FENV_H + #define _GLIBCXX_FENV_H 1 + + #pragma GCC system_header + #include + #if _GLIBCXX_HAVE_FENV_H + # include_next + #endif #ifdef __GXX_EXPERIMENTAL_CXX0X__ ! # if defined(_GLIBCXX_INCLUDE_AS_TR1) ! # error C++0x header cannot be included from TR1 header ! # endif ! # if defined(_GLIBCXX_INCLUDE_AS_CXX0X) ! # include ! # else ! # define _GLIBCXX_INCLUDE_AS_CXX0X ! # define _GLIBCXX_BEGIN_NAMESPACE_TR1 ! # define _GLIBCXX_END_NAMESPACE_TR1 ! # define _GLIBCXX_TR1 ! # include ! # undef _GLIBCXX_TR1 ! # undef _GLIBCXX_END_NAMESPACE_TR1 ! # undef _GLIBCXX_BEGIN_NAMESPACE_TR1 ! # undef _GLIBCXX_INCLUDE_AS_CXX0X ! # endif #endif ! #endif // _GLIBCXX_FENV_H diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/c_compatibility/inttypes.h gcc-4.3.3/libstdc++-v3/include/c_compatibility/inttypes.h *** gcc-4.3.2/libstdc++-v3/include/c_compatibility/inttypes.h Mon Mar 26 10:41:41 2007 --- gcc-4.3.3/libstdc++-v3/include/c_compatibility/inttypes.h Fri Jan 9 00:00:17 2009 *************** *** 1,6 **** // -*- C++ -*- compatibility header. ! // Copyright (C) 2007 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 --- 1,6 ---- // -*- C++ -*- compatibility header. ! // Copyright (C) 2007, 2008 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 *************** *** 31,47 **** * This is a Standard C++ Library header. */ #include #ifdef __GXX_EXPERIMENTAL_CXX0X__ ! # include #else # if _GLIBCXX_HAVE_INTTYPES_H # include_next # endif - #endif ! #ifndef _GLIBCXX_INTTYPES_H ! #define _GLIBCXX_INTTYPES_H 1 ! #endif --- 31,81 ---- * This is a Standard C++ Library header. */ + #ifndef _GLIBCXX_INTTYPES_H + #define _GLIBCXX_INTTYPES_H 1 + + #pragma GCC system_header + #include #ifdef __GXX_EXPERIMENTAL_CXX0X__ ! ! // For 8.11.1/1 (see C99, Note 184) ! # if _GLIBCXX_HAVE_INTTYPES_H ! # ifndef __STDC_FORMAT_MACROS ! # define _UNDEF__STDC_FORMAT_MACROS ! # define __STDC_FORMAT_MACROS ! # endif ! # include_next ! # ifdef _UNDEF__STDC_FORMAT_MACROS ! # undef __STDC_FORMAT_MACROS ! # undef _UNDEF__STDC_FORMAT_MACROS ! # endif ! # endif ! ! # if defined(_GLIBCXX_INCLUDE_AS_TR1) ! # error C++0x header cannot be included from TR1 header ! # endif ! # if defined(_GLIBCXX_INCLUDE_AS_CXX0X) ! # include ! # else ! # define _GLIBCXX_INCLUDE_AS_CXX0X ! # define _GLIBCXX_BEGIN_NAMESPACE_TR1 ! # define _GLIBCXX_END_NAMESPACE_TR1 ! # define _GLIBCXX_TR1 ! # include ! # undef _GLIBCXX_TR1 ! # undef _GLIBCXX_END_NAMESPACE_TR1 ! # undef _GLIBCXX_BEGIN_NAMESPACE_TR1 ! # undef _GLIBCXX_INCLUDE_AS_CXX0X ! # endif ! #else + # if _GLIBCXX_HAVE_INTTYPES_H # include_next # endif ! #endif // __GXX_EXPERIMENTAL_CXX0X__ ! #endif // _GLIBCXX_INTTYPES_H diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/c_compatibility/math.h gcc-4.3.3/libstdc++-v3/include/c_compatibility/math.h *** gcc-4.3.2/libstdc++-v3/include/c_compatibility/math.h Sun Mar 4 22:59:49 2007 --- gcc-4.3.3/libstdc++-v3/include/c_compatibility/math.h Fri Jan 9 00:00:17 2009 *************** *** 1,6 **** // -*- C++ -*- compatibility header. ! // Copyright (C) 2002, 2007 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 --- 1,7 ---- // -*- C++ -*- compatibility header. ! // Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 ! // 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 *************** using std::islessgreater; *** 76,81 **** using std::isunordered; #endif ! #endif // __GXX_EXPERIMENTAL_CXX0X__ #endif --- 77,82 ---- using std::isunordered; #endif ! #endif #endif diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/c_compatibility/stdint.h gcc-4.3.3/libstdc++-v3/include/c_compatibility/stdint.h *** gcc-4.3.2/libstdc++-v3/include/c_compatibility/stdint.h Mon Mar 26 10:41:41 2007 --- gcc-4.3.3/libstdc++-v3/include/c_compatibility/stdint.h Fri Jan 9 00:00:17 2009 *************** *** 1,6 **** // -*- C++ -*- compatibility header. ! // Copyright (C) 2007 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 --- 1,6 ---- // -*- C++ -*- compatibility header. ! // Copyright (C) 2007, 2008 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 *************** *** 31,47 **** * This is a Standard C++ Library header. */ #include #ifdef __GXX_EXPERIMENTAL_CXX0X__ ! # include #else # if _GLIBCXX_HAVE_STDINT_H # include_next # endif - #endif ! #ifndef _GLIBCXX_STDINT_H ! #define _GLIBCXX_STDINT_H 1 ! #endif --- 31,89 ---- * This is a Standard C++ Library header. */ + #ifndef _GLIBCXX_STDINT_H + #define _GLIBCXX_STDINT_H 1 + + #pragma GCC system_header + #include #ifdef __GXX_EXPERIMENTAL_CXX0X__ ! ! // For 8.22.1/1 (see C99, Notes 219, 220, 222) ! # if _GLIBCXX_HAVE_STDINT_H ! # ifndef __STDC_LIMIT_MACROS ! # define _UNDEF__STDC_LIMIT_MACROS ! # define __STDC_LIMIT_MACROS ! # endif ! # ifndef __STDC_CONSTANT_MACROS ! # define _UNDEF__STDC_CONSTANT_MACROS ! # define __STDC_CONSTANT_MACROS ! # endif ! # include_next ! # ifdef _UNDEF__STDC_LIMIT_MACROS ! # undef __STDC_LIMIT_MACROS ! # undef _UNDEF__STDC_LIMIT_MACROS ! # endif ! # ifdef _UNDEF__STDC_CONSTANT_MACROS ! # undef __STDC_CONSTANT_MACROS ! # undef _UNDEF__STDC_CONSTANT_MACROS ! # endif ! # endif ! ! # if defined(_GLIBCXX_INCLUDE_AS_TR1) ! # error C++0x header cannot be included from TR1 header ! # endif ! # if defined(_GLIBCXX_INCLUDE_AS_CXX0X) ! # include ! # else ! # define _GLIBCXX_INCLUDE_AS_CXX0X ! # define _GLIBCXX_BEGIN_NAMESPACE_TR1 ! # define _GLIBCXX_END_NAMESPACE_TR1 ! # define _GLIBCXX_TR1 ! # include ! # undef _GLIBCXX_TR1 ! # undef _GLIBCXX_END_NAMESPACE_TR1 ! # undef _GLIBCXX_BEGIN_NAMESPACE_TR1 ! # undef _GLIBCXX_INCLUDE_AS_CXX0X ! # endif ! #else + # if _GLIBCXX_HAVE_STDINT_H # include_next # endif ! #endif // __GXX_EXPERIMENTAL_CXX0X__ ! #endif // _GLIBCXX_STDINT_H diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/c_global/cassert gcc-4.3.3/libstdc++-v3/include/c_global/cassert *** gcc-4.3.2/libstdc++-v3/include/c_global/cassert Sun Mar 4 22:59:49 2007 --- gcc-4.3.3/libstdc++-v3/include/c_global/cassert Fri Jan 9 00:00:17 2009 *************** *** 1,6 **** // -*- C++ -*- forwarding header. ! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free --- 1,7 ---- // -*- C++ -*- forwarding header. ! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ! // 2006, 2007, 2008 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free *************** *** 46,49 **** #pragma GCC system_header ! #include_next --- 47,50 ---- #pragma GCC system_header ! #include diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/c_global/cctype gcc-4.3.3/libstdc++-v3/include/c_global/cctype *** gcc-4.3.2/libstdc++-v3/include/c_global/cctype Thu May 31 23:37:56 2007 --- gcc-4.3.3/libstdc++-v3/include/c_global/cctype Fri Jan 9 00:00:17 2009 *************** *** 1,7 **** // -*- C++ -*- forwarding header. // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ! // 2006, 2007 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free --- 1,7 ---- // -*- C++ -*- forwarding header. // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ! // 2006, 2007, 2008 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free *************** *** 46,52 **** #pragma GCC system_header #include ! #include_next #ifndef _GLIBCXX_CCTYPE #define _GLIBCXX_CCTYPE 1 --- 46,52 ---- #pragma GCC system_header #include ! #include #ifndef _GLIBCXX_CCTYPE #define _GLIBCXX_CCTYPE 1 diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/c_global/cerrno gcc-4.3.3/libstdc++-v3/include/c_global/cerrno *** gcc-4.3.2/libstdc++-v3/include/c_global/cerrno Sun Mar 4 22:59:49 2007 --- gcc-4.3.3/libstdc++-v3/include/c_global/cerrno Fri Jan 9 00:00:17 2009 *************** *** 1,6 **** // The -*- C++ -*- forwarding header. ! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free --- 1,7 ---- // The -*- C++ -*- forwarding header. ! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ! // 2006, 2007, 2008 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free *************** *** 44,50 **** #pragma GCC system_header ! #include_next #ifndef _GLIBCXX_CERRNO #define _GLIBCXX_CERRNO 1 --- 45,51 ---- #pragma GCC system_header ! #include #ifndef _GLIBCXX_CERRNO #define _GLIBCXX_CERRNO 1 diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/c_global/cfenv gcc-4.3.3/libstdc++-v3/include/c_global/cfenv *** gcc-4.3.2/libstdc++-v3/include/c_global/cfenv Thu May 31 23:37:56 2007 --- gcc-4.3.3/libstdc++-v3/include/c_global/cfenv Fri Jan 9 00:00:17 2009 *************** *** 1,6 **** // -*- C++ -*- ! // Copyright (C) 2007 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 --- 1,6 ---- // -*- C++ -*- ! // Copyright (C) 2007, 2008 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 *************** *** 31,41 **** * This is a Standard C++ Library header. */ - #pragma GCC system_header - #ifndef _GLIBCXX_CFENV #define _GLIBCXX_CFENV 1 #ifndef __GXX_EXPERIMENTAL_CXX0X__ # include #endif --- 31,41 ---- * This is a Standard C++ Library header. */ #ifndef _GLIBCXX_CFENV #define _GLIBCXX_CFENV 1 + #pragma GCC system_header + #ifndef __GXX_EXPERIMENTAL_CXX0X__ # include #endif *************** *** 45,50 **** --- 45,53 ---- #endif #include + #if _GLIBCXX_HAVE_FENV_H + # include + #endif #if defined(_GLIBCXX_INCLUDE_AS_CXX0X) # include *************** *** 60,63 **** # undef _GLIBCXX_INCLUDE_AS_CXX0X #endif ! #endif --- 63,66 ---- # undef _GLIBCXX_INCLUDE_AS_CXX0X #endif ! #endif // _GLIBCXX_CFENV diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/c_global/cfloat gcc-4.3.3/libstdc++-v3/include/c_global/cfloat *** gcc-4.3.2/libstdc++-v3/include/c_global/cfloat Thu May 31 23:37:56 2007 --- gcc-4.3.3/libstdc++-v3/include/c_global/cfloat Fri Jan 9 00:00:17 2009 *************** *** 1,6 **** // -*- C++ -*- forwarding header. ! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free --- 1,7 ---- // -*- C++ -*- forwarding header. ! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ! // 2006, 2007, 2008 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free *************** *** 44,50 **** #pragma GCC system_header ! #include_next #ifndef _GLIBCXX_CFLOAT #define _GLIBCXX_CFLOAT 1 --- 45,51 ---- #pragma GCC system_header ! #include #ifndef _GLIBCXX_CFLOAT #define _GLIBCXX_CFLOAT 1 diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/c_global/cinttypes gcc-4.3.3/libstdc++-v3/include/c_global/cinttypes *** gcc-4.3.2/libstdc++-v3/include/c_global/cinttypes Thu May 31 23:37:56 2007 --- gcc-4.3.3/libstdc++-v3/include/c_global/cinttypes Fri Jan 9 00:00:17 2009 *************** *** 1,6 **** // -*- C++ -*- ! // Copyright (C) 2007 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 --- 1,6 ---- // -*- C++ -*- ! // Copyright (C) 2007, 2008 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 *************** *** 31,41 **** * This is a Standard C++ Library header. */ - #pragma GCC system_header - #ifndef _GLIBCXX_CINTTYPES #define _GLIBCXX_CINTTYPES 1 #ifndef __GXX_EXPERIMENTAL_CXX0X__ # include #endif --- 31,41 ---- * This is a Standard C++ Library header. */ #ifndef _GLIBCXX_CINTTYPES #define _GLIBCXX_CINTTYPES 1 + #pragma GCC system_header + #ifndef __GXX_EXPERIMENTAL_CXX0X__ # include #endif *************** *** 46,51 **** --- 46,64 ---- #include + // For 8.11.1/1 (see C99, Note 184) + #if _GLIBCXX_HAVE_INTTYPES_H + # ifndef __STDC_FORMAT_MACROS + # define _UNDEF__STDC_FORMAT_MACROS + # define __STDC_FORMAT_MACROS + # endif + # include + # ifdef _UNDEF__STDC_FORMAT_MACROS + # undef __STDC_FORMAT_MACROS + # undef _UNDEF__STDC_FORMAT_MACROS + # endif + #endif + #if defined(_GLIBCXX_INCLUDE_AS_CXX0X) # include #else *************** *** 60,63 **** # undef _GLIBCXX_INCLUDE_AS_CXX0X #endif ! #endif --- 73,76 ---- # undef _GLIBCXX_INCLUDE_AS_CXX0X #endif ! #endif // _GLIBCXX_CINTTYPES diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/c_global/climits gcc-4.3.3/libstdc++-v3/include/c_global/climits *** gcc-4.3.2/libstdc++-v3/include/c_global/climits Thu May 31 23:37:56 2007 --- gcc-4.3.3/libstdc++-v3/include/c_global/climits Fri Jan 9 00:00:17 2009 *************** *** 45,51 **** #pragma GCC system_header ! #include_next #ifndef _GLIBCXX_CLIMITS #define _GLIBCXX_CLIMITS 1 --- 45,51 ---- #pragma GCC system_header ! #include #ifndef _GLIBCXX_CLIMITS #define _GLIBCXX_CLIMITS 1 diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/c_global/clocale gcc-4.3.3/libstdc++-v3/include/c_global/clocale *** gcc-4.3.2/libstdc++-v3/include/c_global/clocale Sun Mar 4 22:59:49 2007 --- gcc-4.3.3/libstdc++-v3/include/c_global/clocale Fri Jan 9 00:00:17 2009 *************** *** 1,6 **** // -*- C++ -*- forwarding header. ! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free --- 1,7 ---- // -*- C++ -*- forwarding header. ! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ! // 2006, 2007, 2008 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free *************** *** 45,51 **** #pragma GCC system_header #include ! #include_next #ifndef _GLIBCXX_CLOCALE #define _GLIBCXX_CLOCALE 1 --- 46,52 ---- #pragma GCC system_header #include ! #include #ifndef _GLIBCXX_CLOCALE #define _GLIBCXX_CLOCALE 1 diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/c_global/cmath gcc-4.3.3/libstdc++-v3/include/c_global/cmath *** gcc-4.3.2/libstdc++-v3/include/c_global/cmath Mon Nov 26 18:24:54 2007 --- gcc-4.3.3/libstdc++-v3/include/c_global/cmath Fri Jan 9 00:00:17 2009 *************** *** 48,54 **** #include #include #include ! #include_next #ifndef _GLIBCXX_CMATH #define _GLIBCXX_CMATH 1 --- 48,54 ---- #include #include #include ! #include #ifndef _GLIBCXX_CMATH #define _GLIBCXX_CMATH 1 *************** _GLIBCXX_BEGIN_NAMESPACE(std) *** 168,175 **** template inline typename __gnu_cxx::__promote_2< ! typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value ! && __is_arithmetic<_Up>::__value, _Tp>::__type, _Up>::__type atan2(_Tp __y, _Up __x) { --- 168,175 ---- template inline typename __gnu_cxx::__promote_2< ! typename __gnu_cxx::__enable_if<__traitand<__is_arithmetic<_Tp>, ! __is_arithmetic<_Up> >::__value, _Tp>::__type, _Up>::__type atan2(_Tp __y, _Up __x) { *************** _GLIBCXX_BEGIN_NAMESPACE(std) *** 383,390 **** template inline typename __gnu_cxx::__promote_2< ! typename __gnu_cxx::__enable_if<__is_arithmetic<_Tp>::__value ! && __is_arithmetic<_Up>::__value, _Tp>::__type, _Up>::__type pow(_Tp __x, _Up __y) { --- 383,390 ---- template inline typename __gnu_cxx::__promote_2< ! typename __gnu_cxx::__enable_if<__traitand<__is_arithmetic<_Tp>, ! __is_arithmetic<_Up> >::__value, _Tp>::__type, _Up>::__type pow(_Tp __x, _Up __y) { diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/c_global/csetjmp gcc-4.3.3/libstdc++-v3/include/c_global/csetjmp *** gcc-4.3.2/libstdc++-v3/include/c_global/csetjmp Sun Mar 4 22:59:49 2007 --- gcc-4.3.3/libstdc++-v3/include/c_global/csetjmp Fri Jan 9 00:00:17 2009 *************** *** 1,6 **** // -*- C++ -*- forwarding header. ! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free --- 1,7 ---- // -*- C++ -*- forwarding header. ! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ! // 2006, 2007, 2008 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free *************** *** 45,51 **** #pragma GCC system_header #include ! #include_next #ifndef _GLIBCXX_CSETJMP #define _GLIBCXX_CSETJMP 1 --- 46,52 ---- #pragma GCC system_header #include ! #include #ifndef _GLIBCXX_CSETJMP #define _GLIBCXX_CSETJMP 1 diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/c_global/csignal gcc-4.3.3/libstdc++-v3/include/c_global/csignal *** gcc-4.3.2/libstdc++-v3/include/c_global/csignal Sun Mar 4 22:59:49 2007 --- gcc-4.3.3/libstdc++-v3/include/c_global/csignal Fri Jan 9 00:00:17 2009 *************** *** 1,6 **** // -*- C++ -*- forwarding header. ! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free --- 1,7 ---- // -*- C++ -*- forwarding header. ! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ! // 2006, 2007, 2008 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free *************** *** 45,51 **** #pragma GCC system_header #include ! #include_next #ifndef _GLIBCXX_CSIGNAL #define _GLIBCXX_CSIGNAL 1 --- 46,52 ---- #pragma GCC system_header #include ! #include #ifndef _GLIBCXX_CSIGNAL #define _GLIBCXX_CSIGNAL 1 diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/c_global/cstdarg gcc-4.3.3/libstdc++-v3/include/c_global/cstdarg *** gcc-4.3.2/libstdc++-v3/include/c_global/cstdarg Thu May 31 23:37:56 2007 --- gcc-4.3.3/libstdc++-v3/include/c_global/cstdarg Fri Jan 9 00:00:17 2009 *************** *** 1,6 **** // -*- C++ -*- forwarding header. ! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free --- 1,7 ---- // -*- C++ -*- forwarding header. ! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ! // 2006, 2007, 2008 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free *************** *** 45,51 **** #pragma GCC system_header #include ! #include_next #ifndef _GLIBCXX_CSTDARG #define _GLIBCXX_CSTDARG 1 --- 46,52 ---- #pragma GCC system_header #include ! #include #ifndef _GLIBCXX_CSTDARG #define _GLIBCXX_CSTDARG 1 diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/c_global/cstdbool gcc-4.3.3/libstdc++-v3/include/c_global/cstdbool *** gcc-4.3.2/libstdc++-v3/include/c_global/cstdbool Thu May 31 23:37:56 2007 --- gcc-4.3.3/libstdc++-v3/include/c_global/cstdbool Fri Jan 9 00:00:17 2009 *************** *** 1,6 **** // -*- C++ -*- ! // Copyright (C) 2007 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 --- 1,6 ---- // -*- C++ -*- ! // Copyright (C) 2007, 2008 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 *************** *** 41,47 **** #else # include # if _GLIBCXX_HAVE_STDBOOL_H ! # include_next # endif #endif --- 41,47 ---- #else # include # if _GLIBCXX_HAVE_STDBOOL_H ! # include # endif #endif diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/c_global/cstddef gcc-4.3.3/libstdc++-v3/include/c_global/cstddef *** gcc-4.3.2/libstdc++-v3/include/c_global/cstddef Sun Mar 4 22:59:49 2007 --- gcc-4.3.3/libstdc++-v3/include/c_global/cstddef Fri Jan 9 00:00:17 2009 *************** *** 1,6 **** // -*- C++ -*- forwarding header. ! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free --- 1,7 ---- // -*- C++ -*- forwarding header. ! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ! // 2006, 2007, 2008 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free *************** *** 45,51 **** #pragma GCC system_header #include ! #include_next #ifndef _GLIBCXX_CSTDDEF #define _GLIBCXX_CSTDDEF 1 --- 46,52 ---- #pragma GCC system_header #include ! #include #ifndef _GLIBCXX_CSTDDEF #define _GLIBCXX_CSTDDEF 1 diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/c_global/cstdint gcc-4.3.3/libstdc++-v3/include/c_global/cstdint *** gcc-4.3.2/libstdc++-v3/include/c_global/cstdint Thu May 31 23:37:56 2007 --- gcc-4.3.3/libstdc++-v3/include/c_global/cstdint Fri Jan 9 00:00:17 2009 *************** *** 1,6 **** // -*- C++ -*- ! // Copyright (C) 2007 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 --- 1,6 ---- // -*- C++ -*- ! // Copyright (C) 2007, 2008 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 *************** *** 31,41 **** * This is a Standard C++ Library header. */ - #pragma GCC system_header - #ifndef _GLIBCXX_CSTDINT #define _GLIBCXX_CSTDINT 1 #ifndef __GXX_EXPERIMENTAL_CXX0X__ # include #endif --- 31,41 ---- * This is a Standard C++ Library header. */ #ifndef _GLIBCXX_CSTDINT #define _GLIBCXX_CSTDINT 1 + #pragma GCC system_header + #ifndef __GXX_EXPERIMENTAL_CXX0X__ # include #endif *************** *** 46,51 **** --- 46,72 ---- #include + // For 8.22.1/1 (see C99, Notes 219, 220, 222) + #if _GLIBCXX_HAVE_STDINT_H + # ifndef __STDC_LIMIT_MACROS + # define _UNDEF__STDC_LIMIT_MACROS + # define __STDC_LIMIT_MACROS + # endif + # ifndef __STDC_CONSTANT_MACROS + # define _UNDEF__STDC_CONSTANT_MACROS + # define __STDC_CONSTANT_MACROS + # endif + # include + # ifdef _UNDEF__STDC_LIMIT_MACROS + # undef __STDC_LIMIT_MACROS + # undef _UNDEF__STDC_LIMIT_MACROS + # endif + # ifdef _UNDEF__STDC_CONSTANT_MACROS + # undef __STDC_CONSTANT_MACROS + # undef _UNDEF__STDC_CONSTANT_MACROS + # endif + #endif + #if defined(_GLIBCXX_INCLUDE_AS_CXX0X) # include #else *************** *** 60,63 **** # undef _GLIBCXX_INCLUDE_AS_CXX0X #endif ! #endif --- 81,84 ---- # undef _GLIBCXX_INCLUDE_AS_CXX0X #endif ! #endif // _GLIBCXX_CSTDINT diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/c_global/cstdio gcc-4.3.3/libstdc++-v3/include/c_global/cstdio *** gcc-4.3.2/libstdc++-v3/include/c_global/cstdio Thu May 31 23:37:56 2007 --- gcc-4.3.3/libstdc++-v3/include/c_global/cstdio Fri Jan 9 00:00:17 2009 *************** *** 1,7 **** // -*- C++ -*- forwarding header. // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ! // 2006, 2007 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free --- 1,7 ---- // -*- C++ -*- forwarding header. // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ! // 2006, 2007, 2008 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free *************** *** 47,53 **** #include #include ! #include_next #ifndef _GLIBCXX_CSTDIO #define _GLIBCXX_CSTDIO 1 --- 47,53 ---- #include #include ! #include #ifndef _GLIBCXX_CSTDIO #define _GLIBCXX_CSTDIO 1 diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/c_global/cstdlib gcc-4.3.3/libstdc++-v3/include/c_global/cstdlib *** gcc-4.3.2/libstdc++-v3/include/c_global/cstdlib Thu May 31 23:37:56 2007 --- gcc-4.3.3/libstdc++-v3/include/c_global/cstdlib Fri Jan 9 00:00:17 2009 *************** *** 1,7 **** // -*- C++ -*- forwarding header. // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ! // 2006, 2007 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free --- 1,7 ---- // -*- C++ -*- forwarding header. // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ! // 2006, 2007, 2008 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free *************** _GLIBCXX_END_NAMESPACE *** 70,76 **** #else ! #include_next // Get rid of those macros defined in in lieu of real functions. #undef abort --- 70,76 ---- #else ! #include // Get rid of those macros defined in in lieu of real functions. #undef abort diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/c_global/cstring gcc-4.3.3/libstdc++-v3/include/c_global/cstring *** gcc-4.3.2/libstdc++-v3/include/c_global/cstring Wed Apr 11 01:11:56 2007 --- gcc-4.3.3/libstdc++-v3/include/c_global/cstring Fri Jan 9 00:00:17 2009 *************** *** 1,6 **** // -*- C++ -*- forwarding header. ! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free --- 1,7 ---- // -*- C++ -*- forwarding header. ! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ! // 2006, 2007, 2008 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free *************** *** 46,52 **** #include #include ! #include_next #ifndef _GLIBCXX_CSTRING #define _GLIBCXX_CSTRING 1 --- 47,53 ---- #include #include ! #include #ifndef _GLIBCXX_CSTRING #define _GLIBCXX_CSTRING 1 diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/c_global/ctime gcc-4.3.3/libstdc++-v3/include/c_global/ctime *** gcc-4.3.2/libstdc++-v3/include/c_global/ctime Thu May 31 23:37:56 2007 --- gcc-4.3.3/libstdc++-v3/include/c_global/ctime Fri Jan 9 00:00:17 2009 *************** *** 1,7 **** // -*- C++ -*- forwarding header. // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ! // 2006, 2007 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free --- 1,7 ---- // -*- C++ -*- forwarding header. // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ! // 2006, 2007, 2008 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free *************** *** 46,52 **** #pragma GCC system_header #include ! #include_next #ifndef _GLIBCXX_CTIME #define _GLIBCXX_CTIME 1 --- 46,52 ---- #pragma GCC system_header #include ! #include #ifndef _GLIBCXX_CTIME #define _GLIBCXX_CTIME 1 diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/c_global/cwchar gcc-4.3.3/libstdc++-v3/include/c_global/cwchar *** gcc-4.3.2/libstdc++-v3/include/c_global/cwchar Thu May 31 23:37:56 2007 --- gcc-4.3.3/libstdc++-v3/include/c_global/cwchar Fri Jan 9 00:00:17 2009 *************** *** 1,7 **** // -*- C++ -*- forwarding header. // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ! // 2006, 2007 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free --- 1,7 ---- // -*- C++ -*- forwarding header. // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ! // 2006, 2007, 2008 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free *************** *** 49,55 **** #include #if _GLIBCXX_HAVE_WCHAR_H ! #include_next #endif #ifndef _GLIBCXX_CWCHAR --- 49,55 ---- #include #if _GLIBCXX_HAVE_WCHAR_H ! #include #endif #ifndef _GLIBCXX_CWCHAR diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/c_global/cwctype gcc-4.3.3/libstdc++-v3/include/c_global/cwctype *** gcc-4.3.2/libstdc++-v3/include/c_global/cwctype Thu May 31 23:37:56 2007 --- gcc-4.3.3/libstdc++-v3/include/c_global/cwctype Fri Jan 9 00:00:17 2009 *************** *** 1,7 **** // -*- C++ -*- forwarding header. // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ! // 2006, 2007 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free --- 1,7 ---- // -*- C++ -*- forwarding header. // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, ! // 2006, 2007, 2008 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free *************** *** 48,54 **** #include #if _GLIBCXX_HAVE_WCTYPE_H ! #include_next #endif #ifndef _GLIBCXX_CWCTYPE --- 48,54 ---- #include #if _GLIBCXX_HAVE_WCTYPE_H ! #include #endif #ifndef _GLIBCXX_CWCTYPE diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/c_std/cmath gcc-4.3.3/libstdc++-v3/include/c_std/cmath *** gcc-4.3.2/libstdc++-v3/include/c_std/cmath Mon Nov 26 18:24:54 2007 --- gcc-4.3.3/libstdc++-v3/include/c_std/cmath Fri Dec 12 08:46:26 2008 *************** _GLIBCXX_BEGIN_NAMESPACE(std) *** 157,165 **** { return __builtin_atan2l(__y, __x); } template ! inline typename __gnu_cxx::__enable_if<__is_integer<_Tp>::__value ! && __is_integer<_Up>::__value, ! double>::__type atan2(_Tp __y, _Up __x) { return __builtin_atan2(__y, __x); } --- 157,166 ---- { return __builtin_atan2l(__y, __x); } template ! inline ! typename __gnu_cxx::__enable_if<__traitand<__is_integer<_Tp>, ! __is_integer<_Up> >::__value, ! double>::__type atan2(_Tp __y, _Up __x) { return __builtin_atan2(__y, __x); } diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/ext/concurrence.h gcc-4.3.3/libstdc++-v3/include/ext/concurrence.h *** gcc-4.3.2/libstdc++-v3/include/ext/concurrence.h Wed Mar 26 23:21:44 2008 --- gcc-4.3.3/libstdc++-v3/include/ext/concurrence.h Mon Jan 12 21:32:19 2009 *************** *** 1,6 **** // Support for concurrent programing -*- C++ -*- ! // Copyright (C) 2003, 2004, 2005, 2006, 2007 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free --- 1,6 ---- // Support for concurrent programing -*- C++ -*- ! // Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free *************** _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) *** 281,287 **** __gthread_cond_t __tmp = __GTHREAD_COND_INIT; _M_cond = __tmp; #else ! __GTHREAD_MUTEX_INIT_FUNCTION(&_M_cond); #endif } #endif --- 281,287 ---- __gthread_cond_t __tmp = __GTHREAD_COND_INIT; _M_cond = __tmp; #else ! __GTHREAD_COND_INIT_FUNCTION(&_M_cond); #endif } #endif diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/std/bitset gcc-4.3.3/libstdc++-v3/include/std/bitset *** gcc-4.3.2/libstdc++-v3/include/std/bitset Thu Jan 31 18:44:55 2008 --- gcc-4.3.3/libstdc++-v3/include/std/bitset Tue Dec 2 04:57:44 2008 *************** _GLIBCXX_BEGIN_NESTED_NAMESPACE(std, _GL *** 634,640 **** * } * @endcode * ! * Also see http://gcc.gnu.org/onlinedocs/libstdc++/ext/sgiexts.html#ch23 * for a description of extensions. * * Most of the actual code isn't contained in %bitset<> itself, but in the --- 634,641 ---- * } * @endcode * ! * Also see: ! * http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt12ch33s02.html * for a description of extensions. * * Most of the actual code isn't contained in %bitset<> itself, but in the diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/std/fstream gcc-4.3.3/libstdc++-v3/include/std/fstream *** gcc-4.3.2/libstdc++-v3/include/std/fstream Thu Jan 31 18:44:55 2008 --- gcc-4.3.3/libstdc++-v3/include/std/fstream Tue Dec 2 04:57:44 2008 *************** _GLIBCXX_BEGIN_NAMESPACE(std) *** 325,331 **** * If no file has been opened, and both @a s and @a n are zero, then * the stream becomes unbuffered. Otherwise, @c s is used as a * buffer; see ! * http://gcc.gnu.org/onlinedocs/libstdc++/27_io/howto.html#2 * for more. */ virtual __streambuf_type* --- 325,331 ---- * If no file has been opened, and both @a s and @a n are zero, then * the stream becomes unbuffered. Otherwise, @c s is used as a * buffer; see ! * http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt11ch25s02.html * for more. */ virtual __streambuf_type* diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/std/iosfwd gcc-4.3.3/libstdc++-v3/include/std/iosfwd *** gcc-4.3.2/libstdc++-v3/include/std/iosfwd Wed Apr 11 10:12:47 2007 --- gcc-4.3.3/libstdc++-v3/include/std/iosfwd Tue Dec 2 04:57:44 2008 *************** _GLIBCXX_BEGIN_NAMESPACE(std) *** 125,131 **** * themselves (e.g., "class ostream;") is not valid ISO C++. * * For more specific declarations, see ! * http://gcc.gnu.org/onlinedocs/libstdc++/27_io/howto.html#10 * * @{ */ --- 125,131 ---- * themselves (e.g., "class ostream;") is not valid ISO C++. * * For more specific declarations, see ! * http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt11ch24.html * * @{ */ diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/std/iostream gcc-4.3.3/libstdc++-v3/include/std/iostream *** gcc-4.3.2/libstdc++-v3/include/std/iostream Sun Mar 4 22:59:49 2007 --- gcc-4.3.3/libstdc++-v3/include/std/iostream Tue Dec 2 04:57:44 2008 *************** *** 1,6 **** // Standard iostream objects -*- C++ -*- ! // Copyright (C) 1997, 1998, 1999, 2001, 2002, 2005 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free --- 1,6 ---- // Standard iostream objects -*- C++ -*- ! // Copyright (C) 1997, 1998, 1999, 2001, 2002, 2005, 2008 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free *************** _GLIBCXX_BEGIN_NAMESPACE(std) *** 52,59 **** * * The <iostream> header declares the eight standard stream * objects. For other declarations, see ! * http://gcc.gnu.org/onlinedocs/libstdc++/27_io/howto.html#10 and the ! * @link s27_2_iosfwd I/O forward declarations @endlink * * They are required by default to cooperate with the global C library's * @c FILE streams, and to be available during program startup and --- 52,59 ---- * * The <iostream> header declares the eight standard stream * objects. For other declarations, see ! * http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt11ch24.html ! * and the @link s27_2_iosfwd I/O forward declarations @endlink * * They are required by default to cooperate with the global C library's * @c FILE streams, and to be available during program startup and diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/std/istream gcc-4.3.3/libstdc++-v3/include/std/istream *** gcc-4.3.2/libstdc++-v3/include/std/istream Sun Feb 10 15:48:10 2008 --- gcc-4.3.3/libstdc++-v3/include/std/istream Tue Dec 2 04:57:44 2008 *************** _GLIBCXX_BEGIN_NAMESPACE(std) *** 630,639 **** * Objects of this class are created before all of the standard * extractors are run. It is responsible for "exception-safe prefix and * suffix operations," although only prefix actions are currently required ! * by the standard. Additional actions may be added by the ! * implementation, and we list them in ! * http://gcc.gnu.org/onlinedocs/libstdc++/17_intro/howto.html#5 ! * under [27.6] notes. */ template class basic_istream<_CharT, _Traits>::sentry --- 630,636 ---- * Objects of this class are created before all of the standard * extractors are run. It is responsible for "exception-safe prefix and * suffix operations," although only prefix actions are currently required ! * by the standard. */ template class basic_istream<_CharT, _Traits>::sentry diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/std/ostream gcc-4.3.3/libstdc++-v3/include/std/ostream *** gcc-4.3.2/libstdc++-v3/include/std/ostream Fri Feb 29 00:00:39 2008 --- gcc-4.3.3/libstdc++-v3/include/std/ostream Tue Dec 2 04:57:44 2008 *************** _GLIBCXX_BEGIN_NAMESPACE(std) *** 375,384 **** * * Objects of this class are created before all of the standard * inserters are run. It is responsible for "exception-safe prefix and ! * suffix operations." Additional actions may be added by the ! * implementation, and we list them in ! * http://gcc.gnu.org/onlinedocs/libstdc++/17_intro/howto.html#5 ! * under [27.6] notes. */ template class basic_ostream<_CharT, _Traits>::sentry --- 375,381 ---- * * Objects of this class are created before all of the standard * inserters are run. It is responsible for "exception-safe prefix and ! * suffix operations." */ template class basic_ostream<_CharT, _Traits>::sentry diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/std/sstream gcc-4.3.3/libstdc++-v3/include/std/sstream *** gcc-4.3.2/libstdc++-v3/include/std/sstream Fri Jan 18 08:16:51 2008 --- gcc-4.3.3/libstdc++-v3/include/std/sstream Tue Dec 2 04:57:44 2008 *************** _GLIBCXX_BEGIN_NAMESPACE(std) *** 193,199 **** * * If no buffer has already been created, and both @a s and @a n are * non-zero, then @c s is used as a buffer; see ! * http://gcc.gnu.org/onlinedocs/libstdc++/27_io/howto.html#2 * for more. */ virtual __streambuf_type* --- 193,199 ---- * * If no buffer has already been created, and both @a s and @a n are * non-zero, then @c s is used as a buffer; see ! * http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt11ch25s02.html * for more. */ virtual __streambuf_type* diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/std/streambuf gcc-4.3.3/libstdc++-v3/include/std/streambuf *** gcc-4.3.2/libstdc++-v3/include/std/streambuf Thu Jan 31 18:44:55 2008 --- gcc-4.3.3/libstdc++-v3/include/std/streambuf Tue Dec 2 04:57:44 2008 *************** _GLIBCXX_BEGIN_NAMESPACE(std) *** 563,570 **** * * Each derived class provides its own appropriate behavior. See * the next-to-last paragraph of ! * http://gcc.gnu.org/onlinedocs/libstdc++/27_io/howto.html#2 for ! * more on this function. * * @note Base class version does nothing, returns @c this. */ --- 563,570 ---- * * Each derived class provides its own appropriate behavior. See * the next-to-last paragraph of ! * http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt11ch25s02.html ! * for more on this function. * * @note Base class version does nothing, returns @c this. */ *************** _GLIBCXX_BEGIN_NAMESPACE(std) *** 660,666 **** * * A functioning input streambuf can be created by overriding only * this function (no buffer area will be used). For an example, see ! * http://gcc.gnu.org/onlinedocs/libstdc++/27_io/howto.html#6 * * @note Base class version does nothing, returns eof(). */ --- 660,666 ---- * * A functioning input streambuf can be created by overriding only * this function (no buffer area will be used). For an example, see ! * http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt11ch25.html * * @note Base class version does nothing, returns eof(). */ diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/tr1/cfenv gcc-4.3.3/libstdc++-v3/include/tr1/cfenv *** gcc-4.3.2/libstdc++-v3/include/tr1/cfenv Thu May 31 23:37:56 2007 --- gcc-4.3.3/libstdc++-v3/include/tr1/cfenv Fri Jan 9 00:00:17 2009 *************** *** 1,6 **** // TR1 cfenv -*- C++ -*- ! // Copyright (C) 2006, 2007 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 --- 1,6 ---- // TR1 cfenv -*- C++ -*- ! // Copyright (C) 2006, 2007, 2008 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 *************** *** 34,40 **** --- 34,45 ---- #ifndef _GLIBCXX_TR1_CFENV #define _GLIBCXX_TR1_CFENV 1 + #pragma GCC system_header + #include + #if _GLIBCXX_HAVE_FENV_H + # include + #endif #if defined(_GLIBCXX_INCLUDE_AS_TR1) # include diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/tr1/cinttypes gcc-4.3.3/libstdc++-v3/include/tr1/cinttypes *** gcc-4.3.2/libstdc++-v3/include/tr1/cinttypes Thu May 31 23:37:56 2007 --- gcc-4.3.3/libstdc++-v3/include/tr1/cinttypes Fri Jan 9 00:00:17 2009 *************** *** 34,41 **** --- 34,56 ---- #ifndef _GLIBCXX_TR1_CINTTYPES #define _GLIBCXX_TR1_CINTTYPES 1 + #pragma GCC system_header + #include + // For 8.11.1/1 (see C99, Note 184) + #if _GLIBCXX_HAVE_INTTYPES_H + # ifndef __STDC_FORMAT_MACROS + # define _UNDEF__STDC_FORMAT_MACROS + # define __STDC_FORMAT_MACROS + # endif + # include + # ifdef _UNDEF__STDC_FORMAT_MACROS + # undef __STDC_FORMAT_MACROS + # undef _UNDEF__STDC_FORMAT_MACROS + # endif + #endif + #if defined(_GLIBCXX_INCLUDE_AS_TR1) # include #else diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/tr1/cstdbool gcc-4.3.3/libstdc++-v3/include/tr1/cstdbool *** gcc-4.3.2/libstdc++-v3/include/tr1/cstdbool Fri Sep 14 17:46:56 2007 --- gcc-4.3.3/libstdc++-v3/include/tr1/cstdbool Fri Jan 9 00:00:17 2009 *************** *** 39,45 **** #include #if _GLIBCXX_HAVE_STDBOOL_H ! #include_next #endif #endif // _GLIBCXX_TR1_CSTDBOOL --- 39,45 ---- #include #if _GLIBCXX_HAVE_STDBOOL_H ! #include #endif #endif // _GLIBCXX_TR1_CSTDBOOL diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/tr1/cstdint gcc-4.3.3/libstdc++-v3/include/tr1/cstdint *** gcc-4.3.2/libstdc++-v3/include/tr1/cstdint Thu May 31 23:37:56 2007 --- gcc-4.3.3/libstdc++-v3/include/tr1/cstdint Fri Jan 9 00:00:17 2009 *************** *** 1,6 **** // TR1 cstdint -*- C++ -*- ! // Copyright (C) 2006, 2007 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 --- 1,6 ---- // TR1 cstdint -*- C++ -*- ! // Copyright (C) 2006, 2007, 2008 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 *************** *** 42,47 **** --- 42,68 ---- #include + // For 8.22.1/1 (see C99, Notes 219, 220, 222) + # if _GLIBCXX_HAVE_STDINT_H + # ifndef __STDC_LIMIT_MACROS + # define _UNDEF__STDC_LIMIT_MACROS + # define __STDC_LIMIT_MACROS + # endif + # ifndef __STDC_CONSTANT_MACROS + # define _UNDEF__STDC_CONSTANT_MACROS + # define __STDC_CONSTANT_MACROS + # endif + # include + # ifdef _UNDEF__STDC_LIMIT_MACROS + # undef __STDC_LIMIT_MACROS + # undef _UNDEF__STDC_LIMIT_MACROS + # endif + # ifdef _UNDEF__STDC_CONSTANT_MACROS + # undef __STDC_CONSTANT_MACROS + # undef _UNDEF__STDC_CONSTANT_MACROS + # endif + # endif + #if defined(_GLIBCXX_INCLUDE_AS_TR1) # include #else diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/tr1_impl/cfenv gcc-4.3.3/libstdc++-v3/include/tr1_impl/cfenv *** gcc-4.3.2/libstdc++-v3/include/tr1_impl/cfenv Fri Sep 14 17:46:56 2007 --- gcc-4.3.3/libstdc++-v3/include/tr1_impl/cfenv Fri Jan 9 00:00:17 2009 *************** *** 1,6 **** // TR1 cfenv -*- C++ -*- ! // Copyright (C) 2007 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 --- 1,6 ---- // TR1 cfenv -*- C++ -*- ! // Copyright (C) 2007, 2008 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 *************** *** 36,43 **** #if _GLIBCXX_USE_C99_FENV_TR1 - #include_next - #undef feclearexcept #undef fegetexceptflag #undef feraiseexcept --- 36,41 ---- diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/tr1_impl/cinttypes gcc-4.3.3/libstdc++-v3/include/tr1_impl/cinttypes *** gcc-4.3.2/libstdc++-v3/include/tr1_impl/cinttypes Fri Sep 14 17:46:56 2007 --- gcc-4.3.3/libstdc++-v3/include/tr1_impl/cinttypes Fri Jan 9 00:00:17 2009 *************** *** 1,6 **** // TR1 cinttypes -*- C++ -*- ! // Copyright (C) 2007 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 --- 1,6 ---- // TR1 cinttypes -*- C++ -*- ! // Copyright (C) 2007, 2008, 2009 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 *************** *** 36,45 **** #if _GLIBCXX_USE_C99_INTTYPES_TR1 - // For 8.11.1/1 (see C99, Note 184) - #define __STDC_FORMAT_MACROS - #include_next - namespace std { _GLIBCXX_BEGIN_NAMESPACE_TR1 --- 36,41 ---- diff -Nrcpad gcc-4.3.2/libstdc++-v3/include/tr1_impl/cstdint gcc-4.3.3/libstdc++-v3/include/tr1_impl/cstdint *** gcc-4.3.2/libstdc++-v3/include/tr1_impl/cstdint Fri Sep 14 17:46:56 2007 --- gcc-4.3.3/libstdc++-v3/include/tr1_impl/cstdint Fri Jan 9 00:00:17 2009 *************** *** 1,6 **** // TR1 cstdint -*- C++ -*- ! // Copyright (C) 2007 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 --- 1,6 ---- // TR1 cstdint -*- C++ -*- ! // Copyright (C) 2007, 2008, 2009 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 *************** *** 36,46 **** #if _GLIBCXX_USE_C99_STDINT_TR1 - // For 8.22.1/1 (see C99, Notes 219, 220, 222) - #define __STDC_LIMIT_MACROS - #define __STDC_CONSTANT_MACROS - #include_next - namespace std { _GLIBCXX_BEGIN_NAMESPACE_TR1 --- 36,41 ---- diff -Nrcpad gcc-4.3.2/libstdc++-v3/src/debug.cc gcc-4.3.3/libstdc++-v3/src/debug.cc *** gcc-4.3.2/libstdc++-v3/src/debug.cc Wed Jul 4 00:09:22 2007 --- gcc-4.3.3/libstdc++-v3/src/debug.cc Mon Jan 12 21:32:19 2009 *************** *** 1,6 **** // Debugging mode support code -*- C++ -*- ! // Copyright (C) 2003, 2004, 2005, 2006, 2007 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free --- 1,6 ---- // Debugging mode support code -*- C++ -*- ! // Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free *************** using namespace std; *** 42,48 **** namespace { ! __gnu_cxx::__mutex safe_base_mutex; } // anonymous namespace namespace __gnu_debug --- 42,53 ---- namespace { ! __gnu_cxx::__mutex& ! get_safe_base_mutex() ! { ! static __gnu_cxx::__mutex safe_base_mutex; ! return safe_base_mutex; ! } } // anonymous namespace namespace __gnu_debug *************** namespace __gnu_debug *** 112,118 **** _Safe_sequence_base:: _M_detach_all() { ! __gnu_cxx::__scoped_lock sentry(safe_base_mutex); for (_Safe_iterator_base* __iter = _M_iterators; __iter;) { _Safe_iterator_base* __old = __iter; --- 117,123 ---- _Safe_sequence_base:: _M_detach_all() { ! __gnu_cxx::__scoped_lock sentry(_M_get_mutex()); for (_Safe_iterator_base* __iter = _M_iterators; __iter;) { _Safe_iterator_base* __old = __iter; *************** namespace __gnu_debug *** 132,138 **** _Safe_sequence_base:: _M_detach_singular() { ! __gnu_cxx::__scoped_lock sentry(safe_base_mutex); for (_Safe_iterator_base* __iter = _M_iterators; __iter;) { _Safe_iterator_base* __old = __iter; --- 137,143 ---- _Safe_sequence_base:: _M_detach_singular() { ! __gnu_cxx::__scoped_lock sentry(_M_get_mutex()); for (_Safe_iterator_base* __iter = _M_iterators; __iter;) { _Safe_iterator_base* __old = __iter; *************** namespace __gnu_debug *** 154,160 **** _Safe_sequence_base:: _M_revalidate_singular() { ! __gnu_cxx::__scoped_lock sentry(safe_base_mutex); for (_Safe_iterator_base* __iter = _M_iterators; __iter; __iter = __iter->_M_next) __iter->_M_version = _M_version; --- 159,165 ---- _Safe_sequence_base:: _M_revalidate_singular() { ! __gnu_cxx::__scoped_lock sentry(_M_get_mutex()); for (_Safe_iterator_base* __iter = _M_iterators; __iter; __iter = __iter->_M_next) __iter->_M_version = _M_version; *************** namespace __gnu_debug *** 168,174 **** _Safe_sequence_base:: _M_swap(_Safe_sequence_base& __x) { ! __gnu_cxx::__scoped_lock sentry(safe_base_mutex); swap(_M_iterators, __x._M_iterators); swap(_M_const_iterators, __x._M_const_iterators); swap(_M_version, __x._M_version); --- 173,179 ---- _Safe_sequence_base:: _M_swap(_Safe_sequence_base& __x) { ! __gnu_cxx::__scoped_lock sentry(_M_get_mutex()); swap(_M_iterators, __x._M_iterators); swap(_M_const_iterators, __x._M_const_iterators); swap(_M_version, __x._M_version); *************** namespace __gnu_debug *** 186,198 **** __gnu_cxx::__mutex& _Safe_sequence_base:: _M_get_mutex() ! { return safe_base_mutex; } void _Safe_iterator_base:: _M_attach(_Safe_sequence_base* __seq, bool __constant) { ! __gnu_cxx::__scoped_lock sentry(safe_base_mutex); _M_attach_single(__seq, __constant); } --- 191,203 ---- __gnu_cxx::__mutex& _Safe_sequence_base:: _M_get_mutex() ! { return get_safe_base_mutex(); } void _Safe_iterator_base:: _M_attach(_Safe_sequence_base* __seq, bool __constant) { ! __gnu_cxx::__scoped_lock sentry(_M_get_mutex()); _M_attach_single(__seq, __constant); } *************** namespace __gnu_debug *** 229,235 **** _Safe_iterator_base:: _M_detach() { ! __gnu_cxx::__scoped_lock sentry(safe_base_mutex); _M_detach_single(); } --- 234,240 ---- _Safe_iterator_base:: _M_detach() { ! __gnu_cxx::__scoped_lock sentry(_M_get_mutex()); _M_detach_single(); } *************** namespace __gnu_debug *** 273,279 **** __gnu_cxx::__mutex& _Safe_iterator_base:: _M_get_mutex() ! { return safe_base_mutex; } void _Error_formatter::_Parameter:: --- 278,284 ---- __gnu_cxx::__mutex& _Safe_iterator_base:: _M_get_mutex() ! { return get_safe_base_mutex(); } void _Error_formatter::_Parameter:: diff -Nrcpad gcc-4.3.2/libstdc++-v3/src/locale.cc gcc-4.3.3/libstdc++-v3/src/locale.cc *** gcc-4.3.2/libstdc++-v3/src/locale.cc Thu Dec 14 05:49:06 2006 --- gcc-4.3.3/libstdc++-v3/src/locale.cc Mon Jan 12 21:32:19 2009 *************** *** 1,4 **** ! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free --- 1,5 ---- ! // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, ! // 2009 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free *************** *** 36,42 **** namespace { ! __gnu_cxx::__mutex locale_cache_mutex; } // anonymous namespace // XXX GLIBCXX_ABI Deprecated --- 37,48 ---- namespace { ! __gnu_cxx::__mutex& ! get_locale_cache_mutex() ! { ! static __gnu_cxx::__mutex locale_cache_mutex; ! return locale_cache_mutex; ! } } // anonymous namespace // XXX GLIBCXX_ABI Deprecated *************** _GLIBCXX_BEGIN_NAMESPACE(std) *** 389,395 **** locale::_Impl:: _M_install_cache(const facet* __cache, size_t __index) { ! __gnu_cxx::__scoped_lock sentry(locale_cache_mutex); if (_M_caches[__index] != 0) { // Some other thread got in first. --- 395,401 ---- locale::_Impl:: _M_install_cache(const facet* __cache, size_t __index) { ! __gnu_cxx::__scoped_lock sentry(get_locale_cache_mutex()); if (_M_caches[__index] != 0) { // Some other thread got in first. diff -Nrcpad gcc-4.3.2/libstdc++-v3/src/mt_allocator.cc gcc-4.3.3/libstdc++-v3/src/mt_allocator.cc *** gcc-4.3.2/libstdc++-v3/src/mt_allocator.cc Tue Nov 21 18:10:45 2006 --- gcc-4.3.3/libstdc++-v3/src/mt_allocator.cc Mon Jan 12 21:32:19 2009 *************** *** 1,6 **** // Allocator details. ! // Copyright (C) 2004, 2005, 2006 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 --- 1,6 ---- // Allocator details. ! // Copyright (C) 2004, 2005, 2006, 2009 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 *************** namespace *** 57,77 **** } }; ! // Ensure freelist is constructed first. ! static __freelist freelist; ! __gnu_cxx::__mutex freelist_mutex; static void _M_destroy_thread_key(void* __id) { // Return this thread id record to the front of thread_freelist. ! __gnu_cxx::__scoped_lock sentry(freelist_mutex); ! size_t _M_id = reinterpret_cast(__id); ! ! typedef __gnu_cxx::__pool::_Thread_record _Thread_record; ! _Thread_record* __tr = &freelist._M_thread_freelist_array[_M_id - 1]; ! __tr->_M_next = freelist._M_thread_freelist; ! freelist._M_thread_freelist = __tr; } #endif } // anonymous namespace --- 57,90 ---- } }; ! __freelist& ! get_freelist() ! { ! static __freelist freelist; ! return freelist; ! } ! ! __gnu_cxx::__mutex& ! get_freelist_mutex() ! { ! static __gnu_cxx::__mutex freelist_mutex; ! return freelist_mutex; ! } static void _M_destroy_thread_key(void* __id) { // Return this thread id record to the front of thread_freelist. ! __freelist& freelist = get_freelist(); ! { ! __gnu_cxx::__scoped_lock sentry(get_freelist_mutex()); ! size_t _M_id = reinterpret_cast(__id); ! ! typedef __gnu_cxx::__pool::_Thread_record _Thread_record; ! _Thread_record* __tr = &freelist._M_thread_freelist_array[_M_id - 1]; ! __tr->_M_next = freelist._M_thread_freelist; ! freelist._M_thread_freelist = __tr; ! } } #endif } // anonymous namespace *************** _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) *** 496,503 **** // directly and have no need for this. if (__gthread_active_p()) { { ! __gnu_cxx::__scoped_lock sentry(freelist_mutex); if (!freelist._M_thread_freelist_array || freelist._M_max_threads < _M_options._M_max_threads) --- 509,517 ---- // directly and have no need for this. if (__gthread_active_p()) { + __freelist& freelist = get_freelist(); { ! __gnu_cxx::__scoped_lock sentry(get_freelist_mutex()); if (!freelist._M_thread_freelist_array || freelist._M_max_threads < _M_options._M_max_threads) *************** _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) *** 613,624 **** // returns it's id. if (__gthread_active_p()) { void* v = __gthread_getspecific(freelist._M_key); size_t _M_id = (size_t)v; if (_M_id == 0) { { ! __gnu_cxx::__scoped_lock sentry(freelist_mutex); if (freelist._M_thread_freelist) { _M_id = freelist._M_thread_freelist->_M_id; --- 627,639 ---- // returns it's id. if (__gthread_active_p()) { + __freelist& freelist = get_freelist(); void* v = __gthread_getspecific(freelist._M_key); size_t _M_id = (size_t)v; if (_M_id == 0) { { ! __gnu_cxx::__scoped_lock sentry(get_freelist_mutex()); if (freelist._M_thread_freelist) { _M_id = freelist._M_thread_freelist->_M_id; *************** _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) *** 689,696 **** // directly and have no need for this. if (__gthread_active_p()) { { ! __gnu_cxx::__scoped_lock sentry(freelist_mutex); if (!freelist._M_thread_freelist_array || freelist._M_max_threads < _M_options._M_max_threads) --- 704,712 ---- // directly and have no need for this. if (__gthread_active_p()) { + __freelist& freelist = get_freelist(); { ! __gnu_cxx::__scoped_lock sentry(get_freelist_mutex()); if (!freelist._M_thread_freelist_array || freelist._M_max_threads < _M_options._M_max_threads) diff -Nrcpad gcc-4.3.2/libstdc++-v3/src/pool_allocator.cc gcc-4.3.3/libstdc++-v3/src/pool_allocator.cc *** gcc-4.3.2/libstdc++-v3/src/pool_allocator.cc Thu Sep 14 09:48:15 2006 --- gcc-4.3.3/libstdc++-v3/src/pool_allocator.cc Mon Jan 12 21:32:19 2009 *************** *** 1,6 **** // Allocator details. ! // Copyright (C) 2004, 2005, 2006 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 --- 1,6 ---- // Allocator details. ! // Copyright (C) 2004, 2005, 2006, 2009 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 *************** *** 37,43 **** namespace { ! __gnu_cxx::__mutex palloc_init_mutex; } // anonymous namespace _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) --- 37,48 ---- namespace { ! __gnu_cxx::__mutex& ! get_palloc_mutex() ! { ! static __gnu_cxx::__mutex palloc_mutex; ! return palloc_mutex; ! } } // anonymous namespace _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) *************** _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) *** 52,58 **** __mutex& __pool_alloc_base::_M_get_mutex() ! { return palloc_init_mutex; } // Allocate memory in large chunks in order to avoid fragmenting the // heap too much. Assume that __n is properly aligned. We hold the --- 57,63 ---- __mutex& __pool_alloc_base::_M_get_mutex() ! { return get_palloc_mutex(); } // Allocate memory in large chunks in order to avoid fragmenting the // heap too much. Assume that __n is properly aligned. We hold the diff -Nrcpad gcc-4.3.2/libstdc++-v3/testsuite/26_numerics/headers/cmath/37582.cc gcc-4.3.3/libstdc++-v3/testsuite/26_numerics/headers/cmath/37582.cc *** gcc-4.3.2/libstdc++-v3/testsuite/26_numerics/headers/cmath/37582.cc Thu Jan 1 00:00:00 1970 --- gcc-4.3.3/libstdc++-v3/testsuite/26_numerics/headers/cmath/37582.cc Fri Dec 12 08:46:26 2008 *************** *** 0 **** --- 1,44 ---- + // Copyright (C) 2008 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 2, 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 COPYING. If not, write to the Free + // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, + // USA. + + // As a special exception, you may use this file as part of a free software + // library without restriction. Specifically, if other files instantiate + // templates or use macros or inline functions from this file, or you compile + // this file and link it with other files to produce an executable, this + // file does not by itself cause the resulting executable to be covered by + // the GNU General Public License. This exception does not however + // invalidate any other reasons why the executable file might be covered by + // the GNU General Public License. + + // { dg-do compile } + + #include + + struct foo + { + foo (double); + }; + + bool operator &&(int, const foo &); + + // libstdc++/37582 + double + test01(double x) + { + return std::pow (x, 2.0); + } diff -Nrcpad gcc-4.3.2/libstdc++-v3/testsuite/27_io/ios_base/cons/assign_neg.cc gcc-4.3.3/libstdc++-v3/testsuite/27_io/ios_base/cons/assign_neg.cc *** gcc-4.3.2/libstdc++-v3/testsuite/27_io/ios_base/cons/assign_neg.cc Fri Jan 18 08:16:51 2008 --- gcc-4.3.3/libstdc++-v3/testsuite/27_io/ios_base/cons/assign_neg.cc Tue Dec 2 04:57:44 2008 *************** void test01() *** 43,47 **** } // { dg-error "synthesized" "" { target *-*-* } 42 } // { dg-error "within this context" "" { target *-*-* } 35 } ! // { dg-error "is private" "" { target *-*-* } 786 } // { dg-error "operator=" "" { target *-*-* } 0 } --- 43,47 ---- } // { dg-error "synthesized" "" { target *-*-* } 42 } // { dg-error "within this context" "" { target *-*-* } 35 } ! // { dg-error "is private" "" { target *-*-* } 785 } // { dg-error "operator=" "" { target *-*-* } 0 } diff -Nrcpad gcc-4.3.2/libstdc++-v3/testsuite/27_io/ios_base/cons/copy_neg.cc gcc-4.3.3/libstdc++-v3/testsuite/27_io/ios_base/cons/copy_neg.cc *** gcc-4.3.2/libstdc++-v3/testsuite/27_io/ios_base/cons/copy_neg.cc Fri Jan 18 08:16:51 2008 --- gcc-4.3.3/libstdc++-v3/testsuite/27_io/ios_base/cons/copy_neg.cc Tue Dec 2 04:57:44 2008 *************** void test02() *** 43,47 **** } // { dg-error "within this context" "" { target *-*-* } 36 } // { dg-error "synthesized" "" { target *-*-* } 42 } ! // { dg-error "is private" "" { target *-*-* } 783 } // { dg-error "copy constructor" "" { target *-*-* } 0 } --- 43,47 ---- } // { dg-error "within this context" "" { target *-*-* } 36 } // { dg-error "synthesized" "" { target *-*-* } 42 } ! // { dg-error "is private" "" { target *-*-* } 782 } // { dg-error "copy constructor" "" { target *-*-* } 0 } diff -Nrcpad gcc-4.3.2/libstdc++-v3/testsuite/Makefile.am gcc-4.3.3/libstdc++-v3/testsuite/Makefile.am *** gcc-4.3.2/libstdc++-v3/testsuite/Makefile.am Fri Jan 18 08:16:51 2008 --- gcc-4.3.3/libstdc++-v3/testsuite/Makefile.am Thu Dec 4 23:00:19 2008 *************** *** 21,27 **** ## Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, ## USA. ! AUTOMAKE_OPTIONS = dejagnu nostdinc include $(top_srcdir)/fragment.am --- 21,29 ---- ## Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, ## USA. ! AUTOMAKE_OPTIONS = nostdinc ! RUNTESTDEFAULTFLAGS = --tool $$tool --srcdir $$srcdir ! EXPECT = expect include $(top_srcdir)/fragment.am *************** new-abi-baseline: *** 86,91 **** --- 88,167 ---- fi; \ ${extract_symvers} ../src/.libs/libstdc++.so $${output}) + %/site.exp: site.exp + -test -d $* || mkdir $* + @srcdir=`cd $(srcdir); ${PWD_COMMAND}`; + objdir=`${PWD_COMMAND}`/$*; \ + sed -e "s|^set srcdir .*$$|set srcdir $$srcdir|" \ + -e "s|^set objdir .*$$|set objdir $$objdir|" \ + site.exp > $*/site.exp.tmp + @-rm -f $*/site.bak + @test ! -f $*/site.exp || mv $*/site.exp $*/site.bak + @mv $*/site.exp.tmp $*/site.exp + + check_DEJAGNU_normal_targets = $(patsubst %,check-DEJAGNUnormal%,0 1 2 3) + $(check_DEJAGNU_normal_targets): check-DEJAGNUnormal%: normal%/site.exp + + # Run the testsuite in normal mode. + check-DEJAGNU $(check_DEJAGNU_normal_targets): check-DEJAGNU%: site.exp + if [ -z "$*$(filter-out --target_board=%, $(RUNTESTFLAGS))" ] \ + && [ "$(filter -j, $(MFLAGS))" = "-j" ]; then \ + $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNUnormal0 check-DEJAGNUnormal1 \ + check-DEJAGNUnormal2 check-DEJAGNUnormal3; \ + for idx in 0 1 2 3; do \ + mv -f normal$$idx/libstdc++.sum normal$$idx/libstdc++.sum.sep; \ + mv -f normal$$idx/libstdc++.log normal$$idx/libstdc++.log.sep; \ + done; \ + mv -f libstdc++.sum libstdc++.sum.sep; \ + mv -f libstdc++.log libstdc++.log.sep; \ + $(SHELL) $(srcdir)/../../contrib/dg-extract-results.sh \ + libstdc++.sum.sep normal0/libstdc++.sum.sep \ + normal1/libstdc++.sum.sep normal2/libstdc++.sum.sep \ + normal3/libstdc++.sum.sep > libstdc++.sum; \ + $(SHELL) $(srcdir)/../../contrib/dg-extract-results.sh -L \ + libstdc++.log.sep normal0/libstdc++.log.sep \ + normal1/libstdc++.log.sep normal2/libstdc++.log.sep \ + normal3/libstdc++.log.sep > libstdc++.log; \ + exit 0; \ + fi; \ + srcdir=`$(am__cd) $(srcdir) && pwd`; export srcdir; \ + EXPECT=$(EXPECT); export EXPECT; \ + runtest=$(RUNTEST); \ + if [ -z "$$runtest" ]; then runtest=runtest; fi; \ + tool=libstdc++; \ + dirs=; \ + case "$*" in \ + normal0) \ + if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \ + $$runtest $(AM_RUNTESTFLAGS) $(RUNTESTDEFAULTFLAGS) \ + $(RUNTESTFLAGS) abi.exp; \ + else echo "WARNING: could not find \`runtest'" 1>&2; :;\ + fi; \ + dirs="`cd $$srcdir; echo [013-9][0-9]_*/* [abep]*/*`";; \ + normal1) \ + dirs="`cd $$srcdir; echo 2[0-2]_*/*`";; \ + normal2) \ + dirs="`cd $$srcdir; echo 2[4-9]_*/*`";; \ + normal3) \ + dirs="`cd $$srcdir; echo 23_*/* t*/*`";; \ + esac; \ + if [ -n "$*" ]; then cd "$*"; fi; \ + if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \ + if [ -n "$$dirs" ]; then \ + $$runtest $(AM_RUNTESTFLAGS) $(RUNTESTDEFAULTFLAGS) \ + $(RUNTESTFLAGS) \ + "conformance.exp=`echo $$dirs | sed 's/ /* /g;s/$$/*/'`"; \ + else \ + $$runtest $(AM_RUNTESTFLAGS) $(RUNTESTDEFAULTFLAGS) \ + $(RUNTESTFLAGS); \ + fi; \ + else echo "WARNING: could not find \`runtest'" 1>&2; :;\ + fi + + check-am: + $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU + .PHONY: check-DEJAGNU + # Use 'new-abi-baseline' to create an initial symbol file. Then run # 'check-abi' to test for changes against that file. check-abi: site.exp baseline_symbols diff -Nrcpad gcc-4.3.2/libstdc++-v3/testsuite/Makefile.in gcc-4.3.3/libstdc++-v3/testsuite/Makefile.in *** gcc-4.3.2/libstdc++-v3/testsuite/Makefile.in Mon Feb 11 10:05:33 2008 --- gcc-4.3.3/libstdc++-v3/testsuite/Makefile.in Thu Dec 4 23:00:19 2008 *************** depcomp = *** 63,72 **** am__depfiles_maybe = SOURCES = DIST_SOURCES = - DEJATOOL = $(PACKAGE) - RUNTESTDEFAULTFLAGS = --tool $$tool --srcdir $$srcdir - EXPECT = expect - RUNTEST = runtest DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) ABI_TWEAKS_SRCDIR = @ABI_TWEAKS_SRCDIR@ ACLOCAL = @ACLOCAL@ --- 63,68 ---- *************** target_cpu = @target_cpu@ *** 256,262 **** target_os = @target_os@ target_vendor = @target_vendor@ toplevel_srcdir = @toplevel_srcdir@ ! AUTOMAKE_OPTIONS = dejagnu nostdinc # May be used by various substitution variables. gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) --- 252,260 ---- target_os = @target_os@ target_vendor = @target_vendor@ toplevel_srcdir = @toplevel_srcdir@ ! AUTOMAKE_OPTIONS = nostdinc ! RUNTESTDEFAULTFLAGS = --tool $$tool --srcdir $$srcdir ! EXPECT = expect # May be used by various substitution variables. gcc_version := $(shell cat $(top_srcdir)/../gcc/BASE-VER) *************** lists_of_files = \ *** 288,293 **** --- 286,292 ---- baseline_file = ${baseline_dir}/baseline_symbols.txt extract_symvers = $(glibcxx_srcdir)/scripts/extract_symvers + check_DEJAGNU_normal_targets = $(patsubst %,check-DEJAGNUnormal%,0 1 2 3) # Runs the testsuite, but in compile only mode. # Can be used to test sources with non-GNU FE's at various warning *************** ctags: CTAGS *** 365,387 **** CTAGS: - check-DEJAGNU: site.exp - srcdir=`$(am__cd) $(srcdir) && pwd`; export srcdir; \ - EXPECT=$(EXPECT); export EXPECT; \ - runtest=$(RUNTEST); \ - if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \ - l='$(DEJATOOL)'; for tool in $$l; do \ - $$runtest $(AM_RUNTESTFLAGS) $(RUNTESTDEFAULTFLAGS) $(RUNTESTFLAGS); \ - done; \ - else echo "WARNING: could not find \`runtest'" 1>&2; :;\ - fi - - distclean-DEJAGNU: - -rm -f site.exp site.bak - -l='$(DEJATOOL)'; for tool in $$l; do \ - rm -f $$tool.sum $$tool.log; \ - done - distdir: $(DISTFILES) $(mkdir_p) $(distdir)/.. @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ --- 364,369 ---- *************** distdir: $(DISTFILES) *** 411,417 **** fi; \ done check-am: all-am - $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU check: check-am all-am: Makefile installdirs: --- 393,398 ---- *************** clean-am: clean-generic clean-libtool cl *** 446,453 **** distclean: distclean-am -rm -f Makefile ! distclean-am: clean-am distclean-DEJAGNU distclean-generic \ ! distclean-libtool dvi: dvi-am --- 427,433 ---- distclean: distclean-am -rm -f Makefile ! distclean-am: clean-am distclean-generic distclean-libtool dvi: dvi-am *************** ps-am: *** 487,502 **** uninstall-am: uninstall-info-am ! .PHONY: all all-am check check-DEJAGNU check-am clean clean-generic \ ! clean-libtool clean-local distclean distclean-DEJAGNU \ ! distclean-generic distclean-libtool distdir dvi dvi-am html \ ! html-am info info-am install install-am install-data \ ! install-data-am install-exec install-exec-am install-info \ ! install-info-am install-man install-strip installcheck \ ! installcheck-am installdirs maintainer-clean \ ! maintainer-clean-generic mostlyclean mostlyclean-generic \ ! mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \ ! uninstall-info-am # This rule generates all of the testsuite_files* lists at once. --- 467,481 ---- uninstall-am: uninstall-info-am ! .PHONY: all all-am check check-am clean clean-generic clean-libtool \ ! clean-local distclean distclean-generic distclean-libtool \ ! distdir dvi dvi-am html html-am info info-am install \ ! install-am install-data install-data-am install-exec \ ! install-exec-am install-info install-info-am install-man \ ! install-strip installcheck installcheck-am installdirs \ ! maintainer-clean maintainer-clean-generic mostlyclean \ ! mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ ! uninstall uninstall-am uninstall-info-am # This rule generates all of the testsuite_files* lists at once. *************** new-abi-baseline: *** 549,554 **** --- 528,605 ---- fi; \ ${extract_symvers} ../src/.libs/libstdc++.so $${output}) + %/site.exp: site.exp + -test -d $* || mkdir $* + @srcdir=`cd $(srcdir); ${PWD_COMMAND}`; + objdir=`${PWD_COMMAND}`/$*; \ + sed -e "s|^set srcdir .*$$|set srcdir $$srcdir|" \ + -e "s|^set objdir .*$$|set objdir $$objdir|" \ + site.exp > $*/site.exp.tmp + @-rm -f $*/site.bak + @test ! -f $*/site.exp || mv $*/site.exp $*/site.bak + @mv $*/site.exp.tmp $*/site.exp + $(check_DEJAGNU_normal_targets): check-DEJAGNUnormal%: normal%/site.exp + + # Run the testsuite in normal mode. + check-DEJAGNU $(check_DEJAGNU_normal_targets): check-DEJAGNU%: site.exp + if [ -z "$*$(filter-out --target_board=%, $(RUNTESTFLAGS))" ] \ + && [ "$(filter -j, $(MFLAGS))" = "-j" ]; then \ + $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNUnormal0 check-DEJAGNUnormal1 \ + check-DEJAGNUnormal2 check-DEJAGNUnormal3; \ + for idx in 0 1 2 3; do \ + mv -f normal$$idx/libstdc++.sum normal$$idx/libstdc++.sum.sep; \ + mv -f normal$$idx/libstdc++.log normal$$idx/libstdc++.log.sep; \ + done; \ + mv -f libstdc++.sum libstdc++.sum.sep; \ + mv -f libstdc++.log libstdc++.log.sep; \ + $(SHELL) $(srcdir)/../../contrib/dg-extract-results.sh \ + libstdc++.sum.sep normal0/libstdc++.sum.sep \ + normal1/libstdc++.sum.sep normal2/libstdc++.sum.sep \ + normal3/libstdc++.sum.sep > libstdc++.sum; \ + $(SHELL) $(srcdir)/../../contrib/dg-extract-results.sh -L \ + libstdc++.log.sep normal0/libstdc++.log.sep \ + normal1/libstdc++.log.sep normal2/libstdc++.log.sep \ + normal3/libstdc++.log.sep > libstdc++.log; \ + exit 0; \ + fi; \ + srcdir=`$(am__cd) $(srcdir) && pwd`; export srcdir; \ + EXPECT=$(EXPECT); export EXPECT; \ + runtest=$(RUNTEST); \ + if [ -z "$$runtest" ]; then runtest=runtest; fi; \ + tool=libstdc++; \ + dirs=; \ + case "$*" in \ + normal0) \ + if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \ + $$runtest $(AM_RUNTESTFLAGS) $(RUNTESTDEFAULTFLAGS) \ + $(RUNTESTFLAGS) abi.exp; \ + else echo "WARNING: could not find \`runtest'" 1>&2; :;\ + fi; \ + dirs="`cd $$srcdir; echo [013-9][0-9]_*/* [abep]*/*`";; \ + normal1) \ + dirs="`cd $$srcdir; echo 2[0-2]_*/*`";; \ + normal2) \ + dirs="`cd $$srcdir; echo 2[4-9]_*/*`";; \ + normal3) \ + dirs="`cd $$srcdir; echo 23_*/* t*/*`";; \ + esac; \ + if [ -n "$*" ]; then cd "$*"; fi; \ + if $(SHELL) -c "$$runtest --version" > /dev/null 2>&1; then \ + if [ -n "$$dirs" ]; then \ + $$runtest $(AM_RUNTESTFLAGS) $(RUNTESTDEFAULTFLAGS) \ + $(RUNTESTFLAGS) \ + "conformance.exp=`echo $$dirs | sed 's/ /* /g;s/$$/*/'`"; \ + else \ + $$runtest $(AM_RUNTESTFLAGS) $(RUNTESTDEFAULTFLAGS) \ + $(RUNTESTFLAGS); \ + fi; \ + else echo "WARNING: could not find \`runtest'" 1>&2; :;\ + fi + + check-am: + $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU + .PHONY: check-DEJAGNU + # Use 'new-abi-baseline' to create an initial symbol file. Then run # 'check-abi' to test for changes against that file. check-abi: site.exp baseline_symbols diff -Nrcpad gcc-4.3.2/libstdc++-v3/testsuite/lib/libstdc++.exp gcc-4.3.3/libstdc++-v3/testsuite/lib/libstdc++.exp *** gcc-4.3.2/libstdc++-v3/testsuite/lib/libstdc++.exp Sat Oct 6 03:06:37 2007 --- gcc-4.3.3/libstdc++-v3/testsuite/lib/libstdc++.exp Tue Dec 2 17:44:08 2008 *************** load_gcc_lib target-supports-dg.exp *** 53,58 **** --- 53,60 ---- load_lib prune.exp load_lib dg-options.exp load_gcc_lib target-libpath.exp + load_gcc_lib timeout.exp + load_gcc_lib timeout-dg.exp load_gcc_lib wrapper.exp # Useful for debugging. Pass the name of a variable and the verbosity *************** proc libstdc++_init { testfile } { *** 89,94 **** --- 91,97 ---- global ld_library_path global target_triplet global flags_file + global tool_timeout # We set LC_ALL and LANG to C so that we get the same error # messages as expected. *************** proc libstdc++_init { testfile } { *** 181,186 **** --- 184,192 ---- set compiler [transform "g++"] } + # Set the default timeout for v3 tests. + set tool_timeout 600 + # Default settings. set cxx [transform "g++"] set cxxflags "-g -O2 -D_GLIBCXX_ASSERT -fmessage-length=0" *************** proc libstdc++-dg-test { prog do_what ex *** 343,348 **** --- 349,372 ---- return [list $comp_output $output_file] } + # Override the DejaGnu dg-test in order to clear flags after a test, as + # is done for compiler tests in gcc-dg.exp. + + if { [info procs saved-dg-test] == [list] } { + rename dg-test saved-dg-test + + proc dg-test { args } { + global errorInfo + + if { [ catch { eval saved-dg-test $args } errmsg ] } { + set saved_info $errorInfo + unset_timeout_vars + error $errmsg $saved_info + } + unset_timeout_vars + } + } + # True if the library supports wchar_t. set v3-wchar_t 0 *************** proc v3_target_compile { source dest typ *** 386,392 **** } lappend options "compiler=$cxx_final" ! lappend options "timeout=600" return [target_compile $source $dest $type $options] } --- 410,416 ---- } lappend options "compiler=$cxx_final" ! lappend options "timeout=[timeout_value]" return [target_compile $source $dest $type $options] } *************** proc v3_target_compile_as_c { source des *** 451,457 **** set cc_final [concat $cc_final "-L$libsup"] lappend options "compiler=$cc_final" ! lappend options "timeout=600" return [target_compile $source $dest $type $options] } --- 475,481 ---- set cc_final [concat $cc_final "-L$libsup"] lappend options "compiler=$cc_final" ! lappend options "timeout=[timeout_value]" return [target_compile $source $dest $type $options] } diff -Nrcpad gcc-4.3.2/libstdc++-v3/testsuite/util/regression/trait/assoc/type_trait.hpp gcc-4.3.3/libstdc++-v3/testsuite/util/regression/trait/assoc/type_trait.hpp *** gcc-4.3.2/libstdc++-v3/testsuite/util/regression/trait/assoc/type_trait.hpp Wed Sep 12 23:06:27 2007 --- gcc-4.3.3/libstdc++-v3/testsuite/util/regression/trait/assoc/type_trait.hpp Sat Dec 13 01:46:04 2008 *************** namespace __gnu_pbds *** 87,93 **** typedef typename basic_type_rebind::const_reference basic_type_const_reference; ! typedef typename cntnr::allocator::template rebind >::other pair_type_rebind; typedef typename pair_type_rebind::const_reference pair_type_const_reference; template --- 87,93 ---- typedef typename basic_type_rebind::const_reference basic_type_const_reference; ! typedef typename cntnr::allocator::template rebind >::other pair_type_rebind; typedef typename pair_type_rebind::const_reference pair_type_const_reference; template