diff -Nrcpad gcc-4.3.1/gcc/cp/ChangeLog gcc-4.3.2/gcc/cp/ChangeLog *** gcc-4.3.1/gcc/cp/ChangeLog Fri Jun 6 14:28:48 2008 --- gcc-4.3.2/gcc/cp/ChangeLog Wed Aug 27 18:02:45 2008 *************** *** 1,3 **** --- 1,96 ---- + 2008-08-27 Release Manager + + * GCC 4.3.2 released. + + 2008-08-19 Jakub Jelinek + + PR debug/37156 + * error.c (cp_print_error_function): Deal with recursive BLOCK trees. + + 2008-08-07 Simon Baldwin + + Backport from mainline: + 2008-08-04 Simon Baldwin + + PR c++/36999 + * parser.c (cp_parser_elaborated_type_specifier): Warn only when + the declaration's id is followed by a semicolon. + + 2008-07-31 Jakub Jelinek + + PR c++/36405 + * rtti.c (get_tinfo_decl_dynamic, get_typeid): Call + complete_type_or_else even for UNKNOWN_TYPE to get diagnostics. + + 2008-07-30 Dodji Seketeli + + PR c++/36767 + * decl2.c (fix_temporary_vars_context_r): New function. + (one_static_initialization_or_destruction): Make sure temporary + variables part of the initialiser have their DECL_CONTEXT() + properly set. + + 2008-07-29 Jakub Jelinek + + PR c++/36852 + * tree.c (cplus_array_hash, build_cplus_array_type_1): Hash on + TYPE_UID instead of pointers. + + 2008-07-18 Dodji Seketeli + + PR c++/36407 + * call.c (convert_like_real): Don't take the error code path + when a rvalue or base conversion has the bad_p field set. + + 2008-07-07 Simon Martin + + PR c++/34963 + * decl.c (grokdeclarator): Reset storage_class and staticp for friend + functions declared with a storage class qualifier. + + 2008-06-30 Jakub Jelinek + + PR c++/36662 + * decl2.c (is_late_template_attribute): If the first attribute + argument is IDENTIFIER_NODE, don't consider it when checking + if arguments are value or type dependent. + + 2008-06-28 Jakub Jelinek + + PR c++/36364 + * repo.c (repo_emit_p): Put const static data members initialized + by const expr into *.rpo file, just return 2 if IDENTIFIER_REPO_CHOSEN + for it is 0. + + 2008-06-15 Simon Martin + + PR c++/35320 + * decl2.c (grokbitfield): Receive the list of attributes, pass it to + grokdeclarator and apply it to the created declaration. + * cp-tree.h (grokbitfield): Update prototype. + * parser.c (cp_parser_member_declaration): Don't apply the attributes + since they are now applied in grokbitfield. Adjusted the call to + grokbitfield. + (cp_parser_objc_class_ivars): Likewise. + + 2008-06-15 Simon Martin + + PR c++/35317 + * class.c (type_requires_array_cookie): Do not consider delete[] + operators with an ellipsis as second argument. + + 2008-06-09 Jakub Jelinek + + PR c++/36408 + * semantics.c (stmt_expr_value_expr): Don't crash on empty + STATEMENT_LIST. + + 2008-06-07 Danny Smith + + PR target/35921 + * optimize.c (maybe_clone_body): Copy DECL_DLLIMPORT_P flag + to clone. + 2008-06-06 Release Manager * GCC 4.3.1 released. *************** *** 1816,1822 **** 2007-09-05 Jan Hubicka ! * cp/sematics.c (expand_body): Remove unnecesary import_export_decl call, DECL_EXTERNAL checks and current_function_decl saving. 2007-09-05 Paolo Carlini --- 1909,1915 ---- 2007-09-05 Jan Hubicka ! * sematics.c (expand_body): Remove unnecesary import_export_decl call, DECL_EXTERNAL checks and current_function_decl saving. 2007-09-05 Paolo Carlini *************** *** 2243,2249 **** * cp-objcp-common.c (cxx_get_alias_set): Change return type to alias_set_type. ! * cp/cp-tree.h (cxx_get_alias_set): Update declaration. 2007-08-10 Ollie Wild --- 2336,2342 ---- * cp-objcp-common.c (cxx_get_alias_set): Change return type to alias_set_type. ! * cp-tree.h (cxx_get_alias_set): Update declaration. 2007-08-10 Ollie Wild *************** *** 2916,2922 **** 2007-05-11 Silvius Rus ! * cp/typeck.c (build_indirect_ref): Add call to strict_aliasing_warning. (build_reinterpret_cast_1): Condition call to strict_aliasing_warning. --- 3009,3015 ---- 2007-05-11 Silvius Rus ! * typeck.c (build_indirect_ref): Add call to strict_aliasing_warning. (build_reinterpret_cast_1): Condition call to strict_aliasing_warning. *************** *** 3006,3012 **** 2007-04-23 Jan Hubicka ! * cp/decl2.c (finish_objects): Do not call target constructor/destructor bits dirrectly. 2007-04-21 Andrew Pinski --- 3099,3105 ---- 2007-04-23 Jan Hubicka ! * decl2.c (finish_objects): Do not call target constructor/destructor bits dirrectly. 2007-04-21 Andrew Pinski *************** *** 3028,3034 **** 2007-04-16 Seongbae Park PR c++/29365 ! * cp/decl2.c (constrain_class_visibility): Do not warn about the use of anonymous namespace in the main input file. 2007-04-15 Mark Mitchell --- 3121,3127 ---- 2007-04-16 Seongbae Park PR c++/29365 ! * decl2.c (constrain_class_visibility): Do not warn about the use of anonymous namespace in the main input file. 2007-04-15 Mark Mitchell *************** *** 3047,3053 **** 2007-04-11 Jan Hubicka ! * cp/class.c (convert_to_base_statically): Fold produced tree; verify that we are not processing template_decl. 2007-04-09 Mark Mitchell --- 3140,3146 ---- 2007-04-11 Jan Hubicka ! * class.c (convert_to_base_statically): Fold produced tree; verify that we are not processing template_decl. 2007-04-09 Mark Mitchell *************** *** 3302,3308 **** 2007-03-14 Dirk Mueller ! * cp/semantics.c (c_finish_if_stmt): Call empty_if_body_warning. (finish_do_body): Warn about empty body in do/while statement. 2007-03-14 Manuel Lopez-Ibanez --- 3395,3401 ---- 2007-03-14 Dirk Mueller ! * semantics.c (c_finish_if_stmt): Call empty_if_body_warning. (finish_do_body): Warn about empty body in do/while statement. 2007-03-14 Manuel Lopez-Ibanez *************** *** 3317,3323 **** 2007-03-13 Alexandre Oliva ! * cp/repo.c (init_repo): Initialize random_seed saved options. (finish_repo): Adjust. 2007-03-13 Mark Mitchell --- 3410,3416 ---- 2007-03-13 Alexandre Oliva ! * repo.c (init_repo): Initialize random_seed saved options. (finish_repo): Adjust. 2007-03-13 Mark Mitchell *************** *** 3571,3579 **** 2007-03-09 Dirk Mueller ! * cp/call.c (build_new_op): Call warn_logical_operator. ! 2007-03-08 Volker Reichelt PR c++/30852 * semantics.c (finish_offsetof): Handle COMPOUND_EXPR. --- 3664,3672 ---- 2007-03-09 Dirk Mueller ! * call.c (build_new_op): Call warn_logical_operator. ! 2007-03-08 Volker Reichelt PR c++/30852 * semantics.c (finish_offsetof): Handle COMPOUND_EXPR. *************** *** 3587,3593 **** * decl.c (grokdeclarator): Disable warnings for anonymous bitfields. ! 2007-03-05 Volker Reichelt * typeck2.c (readonly_error): Always emit a hard error. Remove last argument. --- 3680,3686 ---- * decl.c (grokdeclarator): Disable warnings for anonymous bitfields. ! 2007-03-05 Volker Reichelt * typeck2.c (readonly_error): Always emit a hard error. Remove last argument. diff -Nrcpad gcc-4.3.1/gcc/cp/call.c gcc-4.3.2/gcc/cp/call.c *** gcc-4.3.1/gcc/cp/call.c Tue May 27 06:02:18 2008 --- gcc-4.3.2/gcc/cp/call.c Fri Jul 18 20:15:22 2008 *************** convert_like_real (conversion *convs, tr *** 4354,4360 **** if (convs->bad_p && convs->kind != ck_user && convs->kind != ck_ambig ! && convs->kind != ck_ref_bind) { conversion *t = convs; for (; t; t = convs->u.next) --- 4354,4362 ---- if (convs->bad_p && convs->kind != ck_user && convs->kind != ck_ambig ! && convs->kind != ck_ref_bind ! && convs->kind != ck_rvalue ! && convs->kind != ck_base) { conversion *t = convs; for (; t; t = convs->u.next) diff -Nrcpad gcc-4.3.1/gcc/cp/class.c gcc-4.3.2/gcc/cp/class.c *** gcc-4.3.1/gcc/cp/class.c Tue Apr 8 17:49:56 2008 --- gcc-4.3.2/gcc/cp/class.c Sun Jun 15 11:57:33 2008 *************** type_requires_array_cookie (tree type) *** 4123,4128 **** --- 4123,4132 ---- second_parm = TREE_CHAIN (TYPE_ARG_TYPES (TREE_TYPE (fn))); if (second_parm == void_list_node) return false; + /* Do not consider this function if its second argument is an + ellipsis. */ + if (!second_parm) + continue; /* Otherwise, if we have a two-argument function and the second argument is `size_t', it will be the usual deallocation function -- unless there is one-argument function, too. */ diff -Nrcpad gcc-4.3.1/gcc/cp/cp-tree.h gcc-4.3.2/gcc/cp/cp-tree.h *** gcc-4.3.1/gcc/cp/cp-tree.h Wed May 21 19:58:27 2008 --- gcc-4.3.2/gcc/cp/cp-tree.h Sun Jun 15 12:05:37 2008 *************** extern void check_member_template (tree *** 4284,4290 **** extern tree grokfield (const cp_declarator *, cp_decl_specifier_seq *, tree, bool, tree, tree); extern tree grokbitfield (const cp_declarator *, cp_decl_specifier_seq *, ! tree); extern tree cp_reconstruct_complex_type (tree, tree); extern void cplus_decl_attributes (tree *, tree, int); extern void finish_anon_union (tree); --- 4284,4290 ---- extern tree grokfield (const cp_declarator *, cp_decl_specifier_seq *, tree, bool, tree, tree); extern tree grokbitfield (const cp_declarator *, cp_decl_specifier_seq *, ! tree, tree); extern tree cp_reconstruct_complex_type (tree, tree); extern void cplus_decl_attributes (tree *, tree, int); extern void finish_anon_union (tree); diff -Nrcpad gcc-4.3.1/gcc/cp/decl.c gcc-4.3.2/gcc/cp/decl.c *** gcc-4.3.1/gcc/cp/decl.c Wed May 21 19:58:27 2008 --- gcc-4.3.2/gcc/cp/decl.c Mon Jul 7 20:42:03 2008 *************** grokdeclarator (const cp_declarator *dec *** 7995,8001 **** } if (storage_class && friendp) ! error ("storage class specifiers invalid in friend function declarations"); if (!id_declarator) unqualified_id = NULL_TREE; --- 7995,8005 ---- } if (storage_class && friendp) ! { ! error ("storage class specifiers invalid in friend function declarations"); ! storage_class = sc_none; ! staticp = 0; ! } if (!id_declarator) unqualified_id = NULL_TREE; diff -Nrcpad gcc-4.3.1/gcc/cp/decl2.c gcc-4.3.2/gcc/cp/decl2.c *** gcc-4.3.1/gcc/cp/decl2.c Thu Apr 24 16:31:59 2008 --- gcc-4.3.2/gcc/cp/decl2.c Wed Jul 30 13:18:31 2008 *************** *** 1,6 **** /* Process declarations and variables for C++ compiler. Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, ! 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GCC. --- 1,7 ---- /* Process declarations and variables for C++ compiler. Copyright (C) 1988, 1992, 1993, 1994, 1995, 1996, 1997, 1998, ! 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008 ! Free Software Foundation, Inc. Hacked by Michael Tiemann (tiemann@cygnus.com) This file is part of GCC. *************** grokfield (const cp_declarator *declarat *** 914,922 **** tree grokbitfield (const cp_declarator *declarator, ! cp_decl_specifier_seq *declspecs, tree width) { ! tree value = grokdeclarator (declarator, declspecs, BITFIELD, 0, NULL); if (value == error_mark_node) return NULL_TREE; /* friends went bad. */ --- 915,924 ---- tree grokbitfield (const cp_declarator *declarator, ! cp_decl_specifier_seq *declspecs, tree width, ! tree attrlist) { ! tree value = grokdeclarator (declarator, declspecs, BITFIELD, 0, &attrlist); if (value == error_mark_node) return NULL_TREE; /* friends went bad. */ *************** grokbitfield (const cp_declarator *decla *** 972,977 **** --- 974,983 ---- } DECL_IN_AGGR_P (value) = 1; + + if (attrlist) + cplus_decl_attributes (&value, attrlist, /*flags=*/0); + return value; } *************** is_late_template_attribute (tree attr, t *** 1000,1005 **** --- 1006,1019 ---- for (arg = args; arg; arg = TREE_CHAIN (arg)) { tree t = TREE_VALUE (arg); + + /* If the first attribute argument is an identifier, only consider + second and following arguments. Attributes like mode, format, + cleanup and several target specific attributes aren't late + just because they have an IDENTIFIER_NODE as first argument. */ + if (arg == args && TREE_CODE (t) == IDENTIFIER_NODE) + continue; + if (value_dependent_expression_p (t) || type_dependent_expression_p (t)) return true; *************** get_priority_info (int priority) *** 2769,2774 **** --- 2783,2820 ---- || DECL_ONE_ONLY (decl) \ || DECL_WEAK (decl))) + /* Called from one_static_initialization_or_destruction(), + via walk_tree. + Walks the initializer list of a global variable and looks for + temporary variables (DECL_NAME() == NULL and DECL_ARTIFICIAL != 0) + and that have their DECL_CONTEXT() == NULL. + For each such temporary variable, set their DECL_CONTEXT() to + the current function. This is necessary because otherwise + some optimizers (enabled by -O2 -fprofile-arcs) might crash + when trying to refer to a temporary variable that does not have + it's DECL_CONTECT() properly set. */ + static tree + fix_temporary_vars_context_r (tree *node, + int *unused ATTRIBUTE_UNUSED, + void *unused1 ATTRIBUTE_UNUSED) + { + gcc_assert (current_function_decl); + + if (TREE_CODE (*node) == BIND_EXPR) + { + tree var; + + for (var = BIND_EXPR_VARS (*node); var; var = TREE_CHAIN (var)) + if (TREE_CODE (var) == VAR_DECL + && !DECL_NAME (var) + && DECL_ARTIFICIAL (var) + && !DECL_CONTEXT (var)) + DECL_CONTEXT (var) = current_function_decl; + } + + return NULL_TREE; + } + /* Set up to handle the initialization or destruction of DECL. If INITP is nonzero, we are initializing the variable. Otherwise, we are destroying it. */ *************** one_static_initialization_or_destruction *** 2791,2796 **** --- 2837,2855 ---- information. */ input_location = DECL_SOURCE_LOCATION (decl); + /* Make sure temporary variables in the initialiser all have + their DECL_CONTEXT() set to a value different from NULL_TREE. + This can happen when global variables initialisers are built. + In that case, the DECL_CONTEXT() of the global variables _AND_ of all + the temporary variables that might have been generated in the + accompagning initialisers is NULL_TREE, meaning the variables have been + declared in the global namespace. + What we want to do here is to fix that and make sure the DECL_CONTEXT() + of the temporaries are set to the current function decl. */ + cp_walk_tree_without_duplicates (&init, + fix_temporary_vars_context_r, + NULL); + /* Because of: [class.access.spec] diff -Nrcpad gcc-4.3.1/gcc/cp/error.c gcc-4.3.2/gcc/cp/error.c *** gcc-4.3.1/gcc/cp/error.c Wed Mar 26 13:07:24 2008 --- gcc-4.3.2/gcc/cp/error.c Tue Aug 19 11:50:11 2008 *************** cp_print_error_function (diagnostic_cont *** 2421,2427 **** if (abstract_origin) { ao = BLOCK_ABSTRACT_ORIGIN (abstract_origin); ! while (TREE_CODE (ao) == BLOCK && BLOCK_ABSTRACT_ORIGIN (ao)) ao = BLOCK_ABSTRACT_ORIGIN (ao); gcc_assert (TREE_CODE (ao) == FUNCTION_DECL); fndecl = ao; --- 2421,2429 ---- if (abstract_origin) { ao = BLOCK_ABSTRACT_ORIGIN (abstract_origin); ! while (TREE_CODE (ao) == BLOCK ! && BLOCK_ABSTRACT_ORIGIN (ao) ! && BLOCK_ABSTRACT_ORIGIN (ao) != ao) ao = BLOCK_ABSTRACT_ORIGIN (ao); gcc_assert (TREE_CODE (ao) == FUNCTION_DECL); fndecl = ao; diff -Nrcpad gcc-4.3.1/gcc/cp/optimize.c gcc-4.3.2/gcc/cp/optimize.c *** gcc-4.3.1/gcc/cp/optimize.c Thu Aug 2 10:36:13 2007 --- gcc-4.3.2/gcc/cp/optimize.c Sat Jun 7 00:39:43 2008 *************** maybe_clone_body (tree fn) *** 115,120 **** --- 115,121 ---- TREE_PUBLIC (clone) = TREE_PUBLIC (fn); DECL_VISIBILITY (clone) = DECL_VISIBILITY (fn); DECL_VISIBILITY_SPECIFIED (clone) = DECL_VISIBILITY_SPECIFIED (fn); + DECL_DLLIMPORT_P (clone) = DECL_DLLIMPORT_P (fn); /* Adjust the parameter names and locations. */ parm = DECL_ARGUMENTS (fn); diff -Nrcpad gcc-4.3.1/gcc/cp/parser.c gcc-4.3.2/gcc/cp/parser.c *** gcc-4.3.1/gcc/cp/parser.c Sun May 11 19:56:39 2008 --- gcc-4.3.2/gcc/cp/parser.c Thu Aug 7 12:27:48 2008 *************** cp_parser_elaborated_type_specifier (cp_ *** 11221,11227 **** caught elsewhere in parsing. Those that are pointless arrive here. */ ! if (cp_parser_declares_only_class_p (parser) && !is_friend && !processing_explicit_instantiation) warning (0, "declaration %qD does not declare anything", decl); --- 11221,11227 ---- caught elsewhere in parsing. Those that are pointless arrive here. */ ! if (cp_lexer_next_token_is (parser->lexer, CPP_SEMICOLON) && !is_friend && !processing_explicit_instantiation) warning (0, "declaration %qD does not declare anything", decl); *************** cp_parser_member_declaration (cp_parser* *** 15046,15054 **** sfk_none) : NULL, &decl_specifiers, ! width); ! /* Apply the attributes. */ ! cplus_decl_attributes (&decl, attributes, /*flags=*/0); } else { --- 15046,15053 ---- sfk_none) : NULL, &decl_specifiers, ! width, ! attributes); } else { *************** cp_parser_objc_class_ivars (cp_parser* p *** 18961,18971 **** attributes = chainon (prefix_attributes, attributes); if (width) - { /* Create the bitfield declaration. */ ! decl = grokbitfield (declarator, &declspecs, width); ! cplus_decl_attributes (&decl, attributes, /*flags=*/0); ! } else decl = grokfield (declarator, &declspecs, NULL_TREE, /*init_const_expr_p=*/false, --- 18960,18969 ---- attributes = chainon (prefix_attributes, attributes); if (width) /* Create the bitfield declaration. */ ! decl = grokbitfield (declarator, &declspecs, ! width, ! attributes); else decl = grokfield (declarator, &declspecs, NULL_TREE, /*init_const_expr_p=*/false, diff -Nrcpad gcc-4.3.1/gcc/cp/repo.c gcc-4.3.2/gcc/cp/repo.c *** gcc-4.3.1/gcc/cp/repo.c Sun Dec 9 21:26:29 2007 --- gcc-4.3.2/gcc/cp/repo.c Fri Jun 27 22:35:14 2008 *************** finish_repo (void) *** 280,285 **** --- 280,286 ---- int repo_emit_p (tree decl) { + int ret = 0; gcc_assert (TREE_PUBLIC (decl)); gcc_assert (TREE_CODE (decl) == FUNCTION_DECL || TREE_CODE (decl) == VAR_DECL); *************** repo_emit_p (tree decl) *** 306,315 **** return 2; /* Const static data members initialized by constant expressions must be processed where needed so that their definitions are ! available. */ if (DECL_INTEGRAL_CONSTANT_VAR_P (decl) && DECL_CLASS_SCOPE_P (decl)) ! return 2; } else if (!DECL_TEMPLATE_INSTANTIATION (decl)) return 2; --- 307,318 ---- return 2; /* Const static data members initialized by constant expressions must be processed where needed so that their definitions are ! available. Still record them into *.rpo files, so if they ! weren't actually emitted and collect2 requests them, they can ! be provided. */ if (DECL_INTEGRAL_CONSTANT_VAR_P (decl) && DECL_CLASS_SCOPE_P (decl)) ! ret = 2; } else if (!DECL_TEMPLATE_INSTANTIATION (decl)) return 2; *************** repo_emit_p (tree decl) *** 343,349 **** pending_repo = tree_cons (NULL_TREE, decl, pending_repo); } ! return IDENTIFIER_REPO_CHOSEN (DECL_ASSEMBLER_NAME (decl)); } /* Returns true iff the prelinker has explicitly marked CLASS_TYPE for --- 346,352 ---- pending_repo = tree_cons (NULL_TREE, decl, pending_repo); } ! return IDENTIFIER_REPO_CHOSEN (DECL_ASSEMBLER_NAME (decl)) ? 1 : ret; } /* Returns true iff the prelinker has explicitly marked CLASS_TYPE for diff -Nrcpad gcc-4.3.1/gcc/cp/rtti.c gcc-4.3.2/gcc/cp/rtti.c *** gcc-4.3.1/gcc/cp/rtti.c Wed Feb 27 09:26:24 2008 --- gcc-4.3.2/gcc/cp/rtti.c Thu Jul 31 19:02:33 2008 *************** get_tinfo_decl_dynamic (tree exp) *** 250,256 **** /* Peel off cv qualifiers. */ type = TYPE_MAIN_VARIANT (type); ! if (CLASS_TYPE_P (type)) type = complete_type_or_else (type, exp); if (!type) --- 250,257 ---- /* Peel off cv qualifiers. */ type = TYPE_MAIN_VARIANT (type); ! /* For UNKNOWN_TYPEs call complete_type_or_else to get diagnostics. */ ! if (CLASS_TYPE_P (type) || TREE_CODE (type) == UNKNOWN_TYPE) type = complete_type_or_else (type, exp); if (!type) *************** get_typeid (tree type) *** 457,463 **** that is the operand of typeid are always ignored. */ type = TYPE_MAIN_VARIANT (type); ! if (CLASS_TYPE_P (type)) type = complete_type_or_else (type, NULL_TREE); if (!type) --- 458,465 ---- that is the operand of typeid are always ignored. */ type = TYPE_MAIN_VARIANT (type); ! /* For UNKNOWN_TYPEs call complete_type_or_else to get diagnostics. */ ! if (CLASS_TYPE_P (type) || TREE_CODE (type) == UNKNOWN_TYPE) type = complete_type_or_else (type, NULL_TREE); if (!type) diff -Nrcpad gcc-4.3.1/gcc/cp/semantics.c gcc-4.3.2/gcc/cp/semantics.c *** gcc-4.3.1/gcc/cp/semantics.c Fri May 23 12:16:41 2008 --- gcc-4.3.2/gcc/cp/semantics.c Wed Jun 11 06:47:36 2008 *************** stmt_expr_value_expr (tree stmt_expr) *** 1775,1781 **** if (TREE_CODE (t) == BIND_EXPR) t = BIND_EXPR_BODY (t); ! if (TREE_CODE (t) == STATEMENT_LIST) t = STATEMENT_LIST_TAIL (t)->stmt; if (TREE_CODE (t) == EXPR_STMT) --- 1775,1781 ---- if (TREE_CODE (t) == BIND_EXPR) t = BIND_EXPR_BODY (t); ! if (TREE_CODE (t) == STATEMENT_LIST && STATEMENT_LIST_TAIL (t)) t = STATEMENT_LIST_TAIL (t)->stmt; if (TREE_CODE (t) == EXPR_STMT) diff -Nrcpad gcc-4.3.1/gcc/cp/tree.c gcc-4.3.2/gcc/cp/tree.c *** gcc-4.3.1/gcc/cp/tree.c Mon Apr 21 18:02:26 2008 --- gcc-4.3.2/gcc/cp/tree.c Tue Jul 29 16:40:15 2008 *************** cplus_array_hash (const void* k) *** 504,512 **** hashval_t hash; const_tree const t = (const_tree) k; ! hash = (htab_hash_pointer (TREE_TYPE (t)) ! ^ htab_hash_pointer (TYPE_DOMAIN (t))); ! return hash; } --- 504,512 ---- hashval_t hash; const_tree const t = (const_tree) k; ! hash = TYPE_UID (TREE_TYPE (t)); ! if (TYPE_DOMAIN (t)) ! hash ^= TYPE_UID (TYPE_DOMAIN (t)); return hash; } *************** build_cplus_array_type_1 (tree elt_type, *** 553,560 **** cplus_array_htab = htab_create_ggc (61, &cplus_array_hash, &cplus_array_compare, NULL); ! hash = (htab_hash_pointer (elt_type) ! ^ htab_hash_pointer (index_type)); cai.type = elt_type; cai.domain = index_type; --- 553,561 ---- cplus_array_htab = htab_create_ggc (61, &cplus_array_hash, &cplus_array_compare, NULL); ! hash = TYPE_UID (elt_type); ! if (index_type) ! hash ^= TYPE_UID (index_type); cai.type = elt_type; cai.domain = index_type; diff -Nrcpad gcc-4.3.1/libstdc++-v3/ChangeLog gcc-4.3.2/libstdc++-v3/ChangeLog *** gcc-4.3.1/libstdc++-v3/ChangeLog Fri Jun 6 14:26:44 2008 --- gcc-4.3.2/libstdc++-v3/ChangeLog Wed Aug 27 18:03:00 2008 *************** *** 1,3 **** --- 1,90 ---- + 2008-08-27 Release Manager + + * GCC 4.3.2 released. + + 2008-08-12 Paolo Carlini + + PR libstdc++/37100 + * include/bits/stl_pair.h: Fix documentation URL in comment. + + 2008-08-12 Johannes Singler + + * include/paralle/losertree.h + (LoserTreePointerBase<>::~LoserTreePointerBase): + Replace delete by appropriate delete[]. + + 2008-07-15 Paolo Carlini + + PR libstdc++/36832 + * include/ext/rope (_Destroy_const): Add. + (rope<>::copy): Call it. + * testsuite/ext/rope/36832.cc: New. + + 2008-07-10 Johannes Singler + + * include/parallel/balanced_quicksort.h: + (qsb_divide) Replace "*end" by "*(end - 1)" in assertion. + + 2008-07-09 Andreas Beckmann + + PR libstdc++/36552 + * include/ext/pb_ds/detail/left_child_next_sibling_heap_/ + null_metadata.hpp: Remove self-include. + + 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 + + * configure.ac: Don't check AC_LIBTOOL_DLOPEN if using newlib. + * configure: Regenerate. + + 2008-07-04 Paolo Carlini + + PR libstdc++/36616 + * testsuite/22_locale/time_put/put/char/4.cc: Just use es_ES instead. + * testsuite/22_locale/time_put/put/wchar_t/4.cc: Likewise. + + 2008-06-30 Alfred E. Heggestad + + * include/backward/backward_warning.h: Fix typo. + + 2008-06-26 Paolo Carlini + + * include/parallel/base.h (plus, multiplies): Use __typeof__, + not typeof. + + 2008-06-24 Paolo Carlini + + * include/bits/stl_algo.h (remove_if): Cast __pred result to bool. + + 2008-06-24 Paolo Carlini + + PR libstdc++/36616 + * testsuite/22_locale/money_put/put/char/9780-3.cc: Fix expected + results for recent glibcs (2.8 and later). + * testsuite/22_locale/time_put/put/wchar_t/4.cc: Likewise. + * testsuite/22_locale/time_put/put/char/4.cc: Likewise. + + 2008-06-24 Paolo Carlini + Chalathip Thumkanon + + PR libstdc++/36612 + * include/ext/pb_ds/exception.hpp (__throw_container_error, + __throw_insert_error, __throw_join_error, __throw_resize_error): + Mark inline. + + 2008-06-15 Ralf Wildenhues + + * include/Makefile.am: Remove trailing white space, fix typo. + (parallel_headers): Remove duplicate file, sort entries. + * include/Makefile.in: Regenerate. + 2008-06-06 Release Manager * GCC 4.3.1 released. diff -Nrcpad gcc-4.3.1/libstdc++-v3/configure gcc-4.3.2/libstdc++-v3/configure *** gcc-4.3.1/libstdc++-v3/configure Fri Apr 25 16:52:57 2008 --- gcc-4.3.2/libstdc++-v3/configure Mon Jul 7 19:49:54 2008 *************** echo "$as_me: OS config directory is $os *** 4125,4134 **** ! enable_dlopen=yes macro_version='2.1a' --- 4125,4136 ---- ! if test "x${with_newlib}" != "xyes"; then ! enable_dlopen=yes + fi macro_version='2.1a' *************** if test "${lt_cv_nm_interface+set}" = se *** 4645,4657 **** else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext ! (eval echo "\"\$as_me:4648: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 ! (eval echo "\"\$as_me:4651: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 ! (eval echo "\"\$as_me:4654: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" --- 4647,4659 ---- else lt_cv_nm_interface="BSD nm" echo "int some_variable = 0;" > conftest.$ac_ext ! (eval echo "\"\$as_me:4650: $ac_compile\"" >&5) (eval "$ac_compile" 2>conftest.err) cat conftest.err >&5 ! (eval echo "\"\$as_me:4653: $NM \\\"conftest.$ac_objext\\\"\"" >&5) (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) cat conftest.err >&5 ! (eval echo "\"\$as_me:4656: output\"" >&5) cat conftest.out >&5 if $GREP 'External.*some_variable' conftest.out > /dev/null; then lt_cv_nm_interface="MS dumpbin" *************** ia64-*-hpux*) *** 5695,5701 **** ;; *-*-irix6*) # Find out which ABI we are using. ! echo '#line 5698 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? --- 5697,5703 ---- ;; *-*-irix6*) # Find out which ABI we are using. ! echo '#line 5700 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? *************** else *** 7157,7167 **** -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:7160: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 ! echo "$as_me:7164: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. --- 7159,7169 ---- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:7162: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 ! echo "$as_me:7166: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. *************** else *** 7479,7489 **** -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:7482: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 ! echo "$as_me:7486: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. --- 7481,7491 ---- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:7484: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 ! echo "$as_me:7488: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. *************** else *** 7584,7594 **** -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:7587: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 ! echo "$as_me:7591: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized --- 7586,7596 ---- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:7589: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 ! echo "$as_me:7593: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized *************** else *** 7639,7649 **** -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:7642: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 ! echo "$as_me:7646: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized --- 7641,7651 ---- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:7644: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 ! echo "$as_me:7648: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized *************** else *** 10491,10497 **** lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 10494 "configure" #include "confdefs.h" #if HAVE_DLFCN_H --- 10493,10499 ---- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 10496 "configure" #include "confdefs.h" #if HAVE_DLFCN_H *************** else *** 10591,10597 **** lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 10594 "configure" #include "confdefs.h" #if HAVE_DLFCN_H --- 10593,10599 ---- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 10596 "configure" #include "confdefs.h" #if HAVE_DLFCN_H *************** else *** 12629,12639 **** -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:12632: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 ! echo "$as_me:12636: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. --- 12631,12641 ---- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:12634: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 ! echo "$as_me:12638: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. *************** else *** 12728,12738 **** -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:12731: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 ! echo "$as_me:12735: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized --- 12730,12740 ---- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:12733: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 ! echo "$as_me:12737: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized *************** else *** 12780,12790 **** -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:12783: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 ! echo "$as_me:12787: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized --- 12782,12792 ---- -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` ! (eval echo "\"\$as_me:12785: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 ! echo "$as_me:12789: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized *************** fi; *** 13829,13835 **** # # Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style. cat > conftest.$ac_ext << EOF ! #line 13832 "configure" struct S { ~S(); }; void bar(); void foo() --- 13831,13837 ---- # # Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style. cat > conftest.$ac_ext << EOF ! #line 13834 "configure" struct S { ~S(); }; void bar(); void foo() *************** ac_compiler_gnu=$ac_cv_cxx_compiler_gnu *** 17014,17020 **** # Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style. cat > conftest.$ac_ext << EOF ! #line 17017 "configure" int main() { // NB: _Atomic_word not necessarily int. --- 17016,17022 ---- # Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style. cat > conftest.$ac_ext << EOF ! #line 17019 "configure" int main() { // NB: _Atomic_word not necessarily int. diff -Nrcpad gcc-4.3.1/libstdc++-v3/configure.ac gcc-4.3.2/libstdc++-v3/configure.ac *** gcc-4.3.1/libstdc++-v3/configure.ac Fri Apr 25 16:52:57 2008 --- gcc-4.3.2/libstdc++-v3/configure.ac Mon Jul 7 19:49:54 2008 *************** AH_TEMPLATE(VERSION, [Version number of *** 82,88 **** # up critical shell variables. GLIBCXX_CONFIGURE ! AC_LIBTOOL_DLOPEN AM_PROG_LIBTOOL AC_SUBST(enable_shared) AC_SUBST(enable_static) --- 82,90 ---- # up critical shell variables. GLIBCXX_CONFIGURE ! if test "x${with_newlib}" != "xyes"; then ! AC_LIBTOOL_DLOPEN ! fi AM_PROG_LIBTOOL AC_SUBST(enable_shared) AC_SUBST(enable_static) diff -Nrcpad gcc-4.3.1/libstdc++-v3/include/Makefile.am gcc-4.3.2/libstdc++-v3/include/Makefile.am *** gcc-4.3.1/libstdc++-v3/include/Makefile.am Mon Apr 28 21:38:19 2008 --- gcc-4.3.2/libstdc++-v3/include/Makefile.am Sun Jun 15 12:50:59 2008 *************** backward_headers = \ *** 151,157 **** ${backward_srcdir}/hash_set \ ${backward_srcdir}/hash_fun.h \ ${backward_srcdir}/hashtable.h \ ! ${backward_srcdir}/strstream pb_srcdir = ${glibcxx_srcdir}/include/ext/pb_ds pb_builddir = ./ext/pb_ds --- 151,157 ---- ${backward_srcdir}/hash_set \ ${backward_srcdir}/hash_fun.h \ ${backward_srcdir}/hashtable.h \ ! ${backward_srcdir}/strstream pb_srcdir = ${glibcxx_srcdir}/include/ext/pb_ds pb_builddir = ./ext/pb_ds *************** pb_subdirs = \ *** 183,189 **** ${pb_builddir}/detail/list_update_policy # The ability for make and the underlying host to deal with this ! # unweildy list as one entire entity is not a sure thing, and may # cause build errors. Thus, split one list into many smaller # mini-lists, with the maximum size per mini-list of no more than 42. --- 183,189 ---- ${pb_builddir}/detail/list_update_policy # The ability for make and the underlying host to deal with this ! # unwieldy list as one entire entity is not a sure thing, and may # cause build errors. Thus, split one list into many smaller # mini-lists, with the maximum size per mini-list of no more than 42. *************** pb_headers1 = \ *** 228,234 **** ${pb_srcdir}/detail/binomial_heap_/debug_fn_imps.hpp \ ${pb_srcdir}/detail/bin_search_tree_/bin_search_tree_.hpp \ ${pb_srcdir}/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp \ ! ${pb_srcdir}/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp pb_headers2 = \ ${pb_srcdir}/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp \ --- 228,234 ---- ${pb_srcdir}/detail/binomial_heap_/debug_fn_imps.hpp \ ${pb_srcdir}/detail/bin_search_tree_/bin_search_tree_.hpp \ ${pb_srcdir}/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp \ ! ${pb_srcdir}/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp pb_headers2 = \ ${pb_srcdir}/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp \ *************** pb_headers2 = \ *** 270,276 **** ${pb_srcdir}/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp \ ${pb_srcdir}/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp \ ${pb_srcdir}/detail/cc_hash_table_map_/size_fn_imps.hpp \ ! ${pb_srcdir}/detail/cc_hash_table_map_/standard_policies.hpp pb_headers3 = \ ${pb_srcdir}/detail/cc_hash_table_map_/trace_fn_imps.hpp \ --- 270,276 ---- ${pb_srcdir}/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp \ ${pb_srcdir}/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp \ ${pb_srcdir}/detail/cc_hash_table_map_/size_fn_imps.hpp \ ! ${pb_srcdir}/detail/cc_hash_table_map_/standard_policies.hpp pb_headers3 = \ ${pb_srcdir}/detail/cc_hash_table_map_/trace_fn_imps.hpp \ *************** pb_headers3 = \ *** 311,317 **** ${pb_srcdir}/detail/hash_fn/probe_fn_base.hpp \ ${pb_srcdir}/detail/hash_fn/quadratic_probe_fn_imp.hpp \ ${pb_srcdir}/detail/hash_fn/ranged_hash_fn.hpp \ ! ${pb_srcdir}/detail/hash_fn/ranged_probe_fn.hpp pb_headers4 = \ ${pb_srcdir}/detail/hash_fn/sample_probe_fn.hpp \ --- 311,317 ---- ${pb_srcdir}/detail/hash_fn/probe_fn_base.hpp \ ${pb_srcdir}/detail/hash_fn/quadratic_probe_fn_imp.hpp \ ${pb_srcdir}/detail/hash_fn/ranged_hash_fn.hpp \ ! ${pb_srcdir}/detail/hash_fn/ranged_probe_fn.hpp pb_headers4 = \ ${pb_srcdir}/detail/hash_fn/sample_probe_fn.hpp \ *************** pb_headers4 = \ *** 354,360 **** ${pb_srcdir}/detail/ov_tree_map_/insert_fn_imps.hpp \ ${pb_srcdir}/detail/ov_tree_map_/iterators_fn_imps.hpp \ ${pb_srcdir}/detail/ov_tree_map_/node_iterators.hpp \ ! ${pb_srcdir}/detail/ov_tree_map_/ov_tree_map_.hpp pb_headers5 = \ ${pb_srcdir}/detail/ov_tree_map_/policy_access_fn_imps.hpp \ --- 354,360 ---- ${pb_srcdir}/detail/ov_tree_map_/insert_fn_imps.hpp \ ${pb_srcdir}/detail/ov_tree_map_/iterators_fn_imps.hpp \ ${pb_srcdir}/detail/ov_tree_map_/node_iterators.hpp \ ! ${pb_srcdir}/detail/ov_tree_map_/ov_tree_map_.hpp pb_headers5 = \ ${pb_srcdir}/detail/ov_tree_map_/policy_access_fn_imps.hpp \ *************** pb_headers5 = \ *** 396,402 **** ${pb_srcdir}/detail/pat_trie_/update_fn_imps.hpp \ ${pb_srcdir}/detail/priority_queue_base_dispatch.hpp \ ${pb_srcdir}/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp \ ! ${pb_srcdir}/detail/rb_tree_map_/debug_fn_imps.hpp pb_headers6 = \ ${pb_srcdir}/detail/rb_tree_map_/erase_fn_imps.hpp \ --- 396,402 ---- ${pb_srcdir}/detail/pat_trie_/update_fn_imps.hpp \ ${pb_srcdir}/detail/priority_queue_base_dispatch.hpp \ ${pb_srcdir}/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp \ ! ${pb_srcdir}/detail/rb_tree_map_/debug_fn_imps.hpp pb_headers6 = \ ${pb_srcdir}/detail/rb_tree_map_/erase_fn_imps.hpp \ *************** pb_headers6 = \ *** 438,444 **** ${pb_srcdir}/detail/standard_policies.hpp \ ${pb_srcdir}/detail/thin_heap_/constructors_destructor_fn_imps.hpp \ ${pb_srcdir}/detail/thin_heap_/debug_fn_imps.hpp \ ! ${pb_srcdir}/detail/thin_heap_/erase_fn_imps.hpp pb_headers7 = \ ${pb_srcdir}/detail/thin_heap_/find_fn_imps.hpp \ --- 438,444 ---- ${pb_srcdir}/detail/standard_policies.hpp \ ${pb_srcdir}/detail/thin_heap_/constructors_destructor_fn_imps.hpp \ ${pb_srcdir}/detail/thin_heap_/debug_fn_imps.hpp \ ! ${pb_srcdir}/detail/thin_heap_/erase_fn_imps.hpp pb_headers7 = \ ${pb_srcdir}/detail/thin_heap_/find_fn_imps.hpp \ *************** pb_headers7 = \ *** 464,474 **** ${pb_srcdir}/detail/unordered_iterator/const_iterator.hpp \ ${pb_srcdir}/detail/unordered_iterator/const_point_iterator.hpp \ ${pb_srcdir}/detail/unordered_iterator/iterator.hpp \ ! ${pb_srcdir}/detail/unordered_iterator/point_iterator.hpp ext_srcdir = ${glibcxx_srcdir}/include/ext ! ext_builddir = ./ext ext_headers = \ ${ext_srcdir}/algorithm \ ${ext_srcdir}/atomicity.h \ --- 464,474 ---- ${pb_srcdir}/detail/unordered_iterator/const_iterator.hpp \ ${pb_srcdir}/detail/unordered_iterator/const_point_iterator.hpp \ ${pb_srcdir}/detail/unordered_iterator/iterator.hpp \ ! ${pb_srcdir}/detail/unordered_iterator/point_iterator.hpp ext_srcdir = ${glibcxx_srcdir}/include/ext ! ext_builddir = ./ext ext_headers = \ ${ext_srcdir}/algorithm \ ${ext_srcdir}/atomicity.h \ *************** c_compatibility_srcdir = ${glibcxx_srcdi *** 634,647 **** c_compatibility_builddir = . if GLIBCXX_C_HEADERS_C_STD ! c_compatibility_headers = endif if GLIBCXX_C_HEADERS_C_GLOBAL c_compatibility_headers = \ ${c_compatibility_srcdir}/complex.h \ ${c_compatibility_srcdir}/fenv.h \ ! ${c_compatibility_srcdir}/tgmath.h endif if GLIBCXX_C_HEADERS_C --- 634,647 ---- c_compatibility_builddir = . if GLIBCXX_C_HEADERS_C_STD ! c_compatibility_headers = endif if GLIBCXX_C_HEADERS_C_GLOBAL c_compatibility_headers = \ ${c_compatibility_srcdir}/complex.h \ ${c_compatibility_srcdir}/fenv.h \ ! ${c_compatibility_srcdir}/tgmath.h endif if GLIBCXX_C_HEADERS_C *************** debug_headers = \ *** 703,711 **** parallel_srcdir = ${glibcxx_srcdir}/include/parallel parallel_builddir = ./parallel parallel_headers = \ - ${parallel_srcdir}/algorithm \ - ${parallel_srcdir}/algobase.h \ ${parallel_srcdir}/algo.h \ ${parallel_srcdir}/algorithm \ ${parallel_srcdir}/algorithmfwd.h \ ${parallel_srcdir}/balanced_quicksort.h \ --- 703,710 ---- parallel_srcdir = ${glibcxx_srcdir}/include/parallel parallel_builddir = ./parallel parallel_headers = \ ${parallel_srcdir}/algo.h \ + ${parallel_srcdir}/algobase.h \ ${parallel_srcdir}/algorithm \ ${parallel_srcdir}/algorithmfwd.h \ ${parallel_srcdir}/balanced_quicksort.h \ *************** parallel_headers = \ *** 731,738 **** ${parallel_srcdir}/numericfwd.h \ ${parallel_srcdir}/omp_loop.h \ ${parallel_srcdir}/omp_loop_static.h \ - ${parallel_srcdir}/parallel.h \ ${parallel_srcdir}/par_loop.h \ ${parallel_srcdir}/partial_sum.h \ ${parallel_srcdir}/partition.h \ ${parallel_srcdir}/queue.h \ --- 730,737 ---- ${parallel_srcdir}/numericfwd.h \ ${parallel_srcdir}/omp_loop.h \ ${parallel_srcdir}/omp_loop_static.h \ ${parallel_srcdir}/par_loop.h \ + ${parallel_srcdir}/parallel.h \ ${parallel_srcdir}/partial_sum.h \ ${parallel_srcdir}/partition.h \ ${parallel_srcdir}/queue.h \ *************** parallel_headers = \ *** 746,752 **** ${parallel_srcdir}/tags.h \ ${parallel_srcdir}/types.h \ ${parallel_srcdir}/unique_copy.h \ ! ${parallel_srcdir}/workstealing.h # Some of the different "C" header models need extra files. --- 745,751 ---- ${parallel_srcdir}/tags.h \ ${parallel_srcdir}/types.h \ ${parallel_srcdir}/unique_copy.h \ ! ${parallel_srcdir}/workstealing.h # Some of the different "C" header models need extra files. *************** host_headers = \ *** 777,783 **** ${glibcxx_srcdir}/$(CPU_DEFINES_SRCDIR)/cpu_defines.h \ ${glibcxx_srcdir}/include/precompiled/stdc++.h \ ${glibcxx_srcdir}/include/precompiled/stdtr1c++.h \ ! ${glibcxx_srcdir}/include/precompiled/extc++.h # Non-installed host_header files. COMPATIBILITY_H = config/abi/compatibility.h --- 776,782 ---- ${glibcxx_srcdir}/$(CPU_DEFINES_SRCDIR)/cpu_defines.h \ ${glibcxx_srcdir}/include/precompiled/stdc++.h \ ${glibcxx_srcdir}/include/precompiled/stdtr1c++.h \ ! ${glibcxx_srcdir}/include/precompiled/extc++.h # Non-installed host_header files. COMPATIBILITY_H = config/abi/compatibility.h *************** host_headers_extra = \ *** 793,799 **** ${host_builddir}/c++io.h \ ${host_builddir}/c++locale.h \ ${host_builddir}/messages_members.h \ ! ${host_builddir}/time_members.h thread_host_headers = \ ${host_builddir}/gthr.h \ --- 792,798 ---- ${host_builddir}/c++io.h \ ${host_builddir}/c++locale.h \ ${host_builddir}/messages_members.h \ ! ${host_builddir}/time_members.h thread_host_headers = \ ${host_builddir}/gthr.h \ *************** stamp-ext: ${ext_headers} *** 900,906 **** stamp-pb: @if [ ! -d "${pb_builddir}" ]; then \ mkdir -p ${pb_subdirs} ;\ ! fi @if [ ! -f stamp-pb ]; then \ cd ${pb_builddir} && for h in ${pb_headers1}; do \ build_name=`echo $$h | sed -e "s|${pb_srcdir}|.|g"` ;\ --- 899,905 ---- stamp-pb: @if [ ! -d "${pb_builddir}" ]; then \ mkdir -p ${pb_subdirs} ;\ ! fi @if [ ! -f stamp-pb ]; then \ cd ${pb_builddir} && for h in ${pb_headers1}; do \ build_name=`echo $$h | sed -e "s|${pb_srcdir}|.|g"` ;\ *************** ${pch3_output}: ${pch3_source} ${pch2_ou *** 1102,1108 **** # the rest are taken from the original source tree. if GLIBCXX_HOSTED ! install-data-local: install-headers else install-data-local: install-freestanding-headers endif --- 1101,1107 ---- # the rest are taken from the original source tree. if GLIBCXX_HOSTED ! install-data-local: install-headers else install-data-local: install-freestanding-headers endif diff -Nrcpad gcc-4.3.1/libstdc++-v3/include/Makefile.in gcc-4.3.2/libstdc++-v3/include/Makefile.in *** gcc-4.3.1/libstdc++-v3/include/Makefile.in Mon Apr 28 21:38:19 2008 --- gcc-4.3.2/libstdc++-v3/include/Makefile.in Sun Jun 15 12:50:59 2008 *************** backward_headers = \ *** 401,407 **** ${backward_srcdir}/hash_set \ ${backward_srcdir}/hash_fun.h \ ${backward_srcdir}/hashtable.h \ ! ${backward_srcdir}/strstream pb_srcdir = ${glibcxx_srcdir}/include/ext/pb_ds pb_builddir = ./ext/pb_ds --- 401,407 ---- ${backward_srcdir}/hash_set \ ${backward_srcdir}/hash_fun.h \ ${backward_srcdir}/hashtable.h \ ! ${backward_srcdir}/strstream pb_srcdir = ${glibcxx_srcdir}/include/ext/pb_ds pb_builddir = ./ext/pb_ds *************** pb_subdirs = \ *** 433,439 **** # The ability for make and the underlying host to deal with this ! # unweildy list as one entire entity is not a sure thing, and may # cause build errors. Thus, split one list into many smaller # mini-lists, with the maximum size per mini-list of no more than 42. pb_headers1 = \ --- 433,439 ---- # The ability for make and the underlying host to deal with this ! # unwieldy list as one entire entity is not a sure thing, and may # cause build errors. Thus, split one list into many smaller # mini-lists, with the maximum size per mini-list of no more than 42. pb_headers1 = \ *************** pb_headers1 = \ *** 477,483 **** ${pb_srcdir}/detail/binomial_heap_/debug_fn_imps.hpp \ ${pb_srcdir}/detail/bin_search_tree_/bin_search_tree_.hpp \ ${pb_srcdir}/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp \ ! ${pb_srcdir}/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp pb_headers2 = \ ${pb_srcdir}/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp \ --- 477,483 ---- ${pb_srcdir}/detail/binomial_heap_/debug_fn_imps.hpp \ ${pb_srcdir}/detail/bin_search_tree_/bin_search_tree_.hpp \ ${pb_srcdir}/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp \ ! ${pb_srcdir}/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp pb_headers2 = \ ${pb_srcdir}/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp \ *************** pb_headers2 = \ *** 519,525 **** ${pb_srcdir}/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp \ ${pb_srcdir}/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp \ ${pb_srcdir}/detail/cc_hash_table_map_/size_fn_imps.hpp \ ! ${pb_srcdir}/detail/cc_hash_table_map_/standard_policies.hpp pb_headers3 = \ ${pb_srcdir}/detail/cc_hash_table_map_/trace_fn_imps.hpp \ --- 519,525 ---- ${pb_srcdir}/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp \ ${pb_srcdir}/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp \ ${pb_srcdir}/detail/cc_hash_table_map_/size_fn_imps.hpp \ ! ${pb_srcdir}/detail/cc_hash_table_map_/standard_policies.hpp pb_headers3 = \ ${pb_srcdir}/detail/cc_hash_table_map_/trace_fn_imps.hpp \ *************** pb_headers3 = \ *** 560,566 **** ${pb_srcdir}/detail/hash_fn/probe_fn_base.hpp \ ${pb_srcdir}/detail/hash_fn/quadratic_probe_fn_imp.hpp \ ${pb_srcdir}/detail/hash_fn/ranged_hash_fn.hpp \ ! ${pb_srcdir}/detail/hash_fn/ranged_probe_fn.hpp pb_headers4 = \ ${pb_srcdir}/detail/hash_fn/sample_probe_fn.hpp \ --- 560,566 ---- ${pb_srcdir}/detail/hash_fn/probe_fn_base.hpp \ ${pb_srcdir}/detail/hash_fn/quadratic_probe_fn_imp.hpp \ ${pb_srcdir}/detail/hash_fn/ranged_hash_fn.hpp \ ! ${pb_srcdir}/detail/hash_fn/ranged_probe_fn.hpp pb_headers4 = \ ${pb_srcdir}/detail/hash_fn/sample_probe_fn.hpp \ *************** pb_headers4 = \ *** 603,609 **** ${pb_srcdir}/detail/ov_tree_map_/insert_fn_imps.hpp \ ${pb_srcdir}/detail/ov_tree_map_/iterators_fn_imps.hpp \ ${pb_srcdir}/detail/ov_tree_map_/node_iterators.hpp \ ! ${pb_srcdir}/detail/ov_tree_map_/ov_tree_map_.hpp pb_headers5 = \ ${pb_srcdir}/detail/ov_tree_map_/policy_access_fn_imps.hpp \ --- 603,609 ---- ${pb_srcdir}/detail/ov_tree_map_/insert_fn_imps.hpp \ ${pb_srcdir}/detail/ov_tree_map_/iterators_fn_imps.hpp \ ${pb_srcdir}/detail/ov_tree_map_/node_iterators.hpp \ ! ${pb_srcdir}/detail/ov_tree_map_/ov_tree_map_.hpp pb_headers5 = \ ${pb_srcdir}/detail/ov_tree_map_/policy_access_fn_imps.hpp \ *************** pb_headers5 = \ *** 645,651 **** ${pb_srcdir}/detail/pat_trie_/update_fn_imps.hpp \ ${pb_srcdir}/detail/priority_queue_base_dispatch.hpp \ ${pb_srcdir}/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp \ ! ${pb_srcdir}/detail/rb_tree_map_/debug_fn_imps.hpp pb_headers6 = \ ${pb_srcdir}/detail/rb_tree_map_/erase_fn_imps.hpp \ --- 645,651 ---- ${pb_srcdir}/detail/pat_trie_/update_fn_imps.hpp \ ${pb_srcdir}/detail/priority_queue_base_dispatch.hpp \ ${pb_srcdir}/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp \ ! ${pb_srcdir}/detail/rb_tree_map_/debug_fn_imps.hpp pb_headers6 = \ ${pb_srcdir}/detail/rb_tree_map_/erase_fn_imps.hpp \ *************** pb_headers6 = \ *** 687,693 **** ${pb_srcdir}/detail/standard_policies.hpp \ ${pb_srcdir}/detail/thin_heap_/constructors_destructor_fn_imps.hpp \ ${pb_srcdir}/detail/thin_heap_/debug_fn_imps.hpp \ ! ${pb_srcdir}/detail/thin_heap_/erase_fn_imps.hpp pb_headers7 = \ ${pb_srcdir}/detail/thin_heap_/find_fn_imps.hpp \ --- 687,693 ---- ${pb_srcdir}/detail/standard_policies.hpp \ ${pb_srcdir}/detail/thin_heap_/constructors_destructor_fn_imps.hpp \ ${pb_srcdir}/detail/thin_heap_/debug_fn_imps.hpp \ ! ${pb_srcdir}/detail/thin_heap_/erase_fn_imps.hpp pb_headers7 = \ ${pb_srcdir}/detail/thin_heap_/find_fn_imps.hpp \ *************** pb_headers7 = \ *** 713,722 **** ${pb_srcdir}/detail/unordered_iterator/const_iterator.hpp \ ${pb_srcdir}/detail/unordered_iterator/const_point_iterator.hpp \ ${pb_srcdir}/detail/unordered_iterator/iterator.hpp \ ! ${pb_srcdir}/detail/unordered_iterator/point_iterator.hpp ext_srcdir = ${glibcxx_srcdir}/include/ext ! ext_builddir = ./ext ext_headers = \ ${ext_srcdir}/algorithm \ ${ext_srcdir}/atomicity.h \ --- 713,722 ---- ${pb_srcdir}/detail/unordered_iterator/const_iterator.hpp \ ${pb_srcdir}/detail/unordered_iterator/const_point_iterator.hpp \ ${pb_srcdir}/detail/unordered_iterator/iterator.hpp \ ! ${pb_srcdir}/detail/unordered_iterator/point_iterator.hpp ext_srcdir = ${glibcxx_srcdir}/include/ext ! ext_builddir = ./ext ext_headers = \ ${ext_srcdir}/algorithm \ ${ext_srcdir}/atomicity.h \ *************** c_compatibility_builddir = . *** 883,889 **** @GLIBCXX_C_HEADERS_C_GLOBAL_TRUE@c_compatibility_headers = \ @GLIBCXX_C_HEADERS_C_GLOBAL_TRUE@ ${c_compatibility_srcdir}/complex.h \ @GLIBCXX_C_HEADERS_C_GLOBAL_TRUE@ ${c_compatibility_srcdir}/fenv.h \ ! @GLIBCXX_C_HEADERS_C_GLOBAL_TRUE@ ${c_compatibility_srcdir}/tgmath.h @GLIBCXX_C_HEADERS_C_STD_TRUE@c_compatibility_headers = @GLIBCXX_C_HEADERS_C_TRUE@c_compatibility_headers = \ --- 883,889 ---- @GLIBCXX_C_HEADERS_C_GLOBAL_TRUE@c_compatibility_headers = \ @GLIBCXX_C_HEADERS_C_GLOBAL_TRUE@ ${c_compatibility_srcdir}/complex.h \ @GLIBCXX_C_HEADERS_C_GLOBAL_TRUE@ ${c_compatibility_srcdir}/fenv.h \ ! @GLIBCXX_C_HEADERS_C_GLOBAL_TRUE@ ${c_compatibility_srcdir}/tgmath.h @GLIBCXX_C_HEADERS_C_STD_TRUE@c_compatibility_headers = @GLIBCXX_C_HEADERS_C_TRUE@c_compatibility_headers = \ *************** debug_headers = \ *** 945,953 **** parallel_srcdir = ${glibcxx_srcdir}/include/parallel parallel_builddir = ./parallel parallel_headers = \ - ${parallel_srcdir}/algorithm \ - ${parallel_srcdir}/algobase.h \ ${parallel_srcdir}/algo.h \ ${parallel_srcdir}/algorithm \ ${parallel_srcdir}/algorithmfwd.h \ ${parallel_srcdir}/balanced_quicksort.h \ --- 945,952 ---- parallel_srcdir = ${glibcxx_srcdir}/include/parallel parallel_builddir = ./parallel parallel_headers = \ ${parallel_srcdir}/algo.h \ + ${parallel_srcdir}/algobase.h \ ${parallel_srcdir}/algorithm \ ${parallel_srcdir}/algorithmfwd.h \ ${parallel_srcdir}/balanced_quicksort.h \ *************** parallel_headers = \ *** 973,980 **** ${parallel_srcdir}/numericfwd.h \ ${parallel_srcdir}/omp_loop.h \ ${parallel_srcdir}/omp_loop_static.h \ - ${parallel_srcdir}/parallel.h \ ${parallel_srcdir}/par_loop.h \ ${parallel_srcdir}/partial_sum.h \ ${parallel_srcdir}/partition.h \ ${parallel_srcdir}/queue.h \ --- 972,979 ---- ${parallel_srcdir}/numericfwd.h \ ${parallel_srcdir}/omp_loop.h \ ${parallel_srcdir}/omp_loop_static.h \ ${parallel_srcdir}/par_loop.h \ + ${parallel_srcdir}/parallel.h \ ${parallel_srcdir}/partial_sum.h \ ${parallel_srcdir}/partition.h \ ${parallel_srcdir}/queue.h \ *************** parallel_headers = \ *** 988,994 **** ${parallel_srcdir}/tags.h \ ${parallel_srcdir}/types.h \ ${parallel_srcdir}/unique_copy.h \ ! ${parallel_srcdir}/workstealing.h @GLIBCXX_C_HEADERS_EXTRA_FALSE@c_base_headers_extra = --- 987,993 ---- ${parallel_srcdir}/tags.h \ ${parallel_srcdir}/types.h \ ${parallel_srcdir}/unique_copy.h \ ! ${parallel_srcdir}/workstealing.h @GLIBCXX_C_HEADERS_EXTRA_FALSE@c_base_headers_extra = *************** host_headers = \ *** 1011,1017 **** ${glibcxx_srcdir}/$(CPU_DEFINES_SRCDIR)/cpu_defines.h \ ${glibcxx_srcdir}/include/precompiled/stdc++.h \ ${glibcxx_srcdir}/include/precompiled/stdtr1c++.h \ ! ${glibcxx_srcdir}/include/precompiled/extc++.h # Non-installed host_header files. --- 1010,1016 ---- ${glibcxx_srcdir}/$(CPU_DEFINES_SRCDIR)/cpu_defines.h \ ${glibcxx_srcdir}/include/precompiled/stdc++.h \ ${glibcxx_srcdir}/include/precompiled/stdtr1c++.h \ ! ${glibcxx_srcdir}/include/precompiled/extc++.h # Non-installed host_header files. *************** host_headers_extra = \ *** 1029,1035 **** ${host_builddir}/c++io.h \ ${host_builddir}/c++locale.h \ ${host_builddir}/messages_members.h \ ! ${host_builddir}/time_members.h thread_host_headers = \ ${host_builddir}/gthr.h \ --- 1028,1034 ---- ${host_builddir}/c++io.h \ ${host_builddir}/c++locale.h \ ${host_builddir}/messages_members.h \ ! ${host_builddir}/time_members.h thread_host_headers = \ ${host_builddir}/gthr.h \ *************** stamp-ext: ${ext_headers} *** 1300,1306 **** stamp-pb: @if [ ! -d "${pb_builddir}" ]; then \ mkdir -p ${pb_subdirs} ;\ ! fi @if [ ! -f stamp-pb ]; then \ cd ${pb_builddir} && for h in ${pb_headers1}; do \ build_name=`echo $$h | sed -e "s|${pb_srcdir}|.|g"` ;\ --- 1299,1305 ---- stamp-pb: @if [ ! -d "${pb_builddir}" ]; then \ mkdir -p ${pb_subdirs} ;\ ! fi @if [ ! -f stamp-pb ]; then \ cd ${pb_builddir} && for h in ${pb_headers1}; do \ build_name=`echo $$h | sed -e "s|${pb_srcdir}|.|g"` ;\ *************** ${pch3_output}: ${pch3_source} ${pch2_ou *** 1492,1498 **** # host_headers_extra are taken out of the build tree staging area; # the rest are taken from the original source tree. ! @GLIBCXX_HOSTED_TRUE@install-data-local: install-headers @GLIBCXX_HOSTED_FALSE@install-data-local: install-freestanding-headers # This is a subset of the full install-headers rule. We only need , --- 1491,1497 ---- # host_headers_extra are taken out of the build tree staging area; # the rest are taken from the original source tree. ! @GLIBCXX_HOSTED_TRUE@install-data-local: install-headers @GLIBCXX_HOSTED_FALSE@install-data-local: install-freestanding-headers # This is a subset of the full install-headers rule. We only need , diff -Nrcpad gcc-4.3.1/libstdc++-v3/include/backward/backward_warning.h gcc-4.3.2/libstdc++-v3/include/backward/backward_warning.h *** gcc-4.3.1/libstdc++-v3/include/backward/backward_warning.h Tue Dec 11 21:48:16 2007 --- gcc-4.3.2/libstdc++-v3/include/backward/backward_warning.h Mon Jun 30 10:49:10 2008 *************** *** 1,4 **** ! // Copyright (C) 2001, 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,5 ---- ! // Copyright (C) 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 // software; you can redistribute it and/or modify it under the *************** *** 46,53 **** , basic_stringstream , strstream , unordered_set , hash_set , unordered_multiset , hash_multiset ! , unordered_map , hash_map ! , unordered_multimap , hash_multimap , bind , binder1st , bind , binder2nd , bind , bind1st --- 47,54 ---- , basic_stringstream , strstream , unordered_set , hash_set , unordered_multiset , hash_multiset ! , unordered_map , hash_map ! , unordered_multimap , hash_multimap , bind , binder1st , bind , binder2nd , bind , bind1st diff -Nrcpad gcc-4.3.1/libstdc++-v3/include/bits/stl_algo.h gcc-4.3.2/libstdc++-v3/include/bits/stl_algo.h *** gcc-4.3.1/libstdc++-v3/include/bits/stl_algo.h Thu Jan 31 18:44:55 2008 --- gcc-4.3.2/libstdc++-v3/include/bits/stl_algo.h Tue Jun 24 17:32:28 2008 *************** _GLIBCXX_BEGIN_NAMESPACE(std) *** 712,718 **** * @return An iterator designating the end of the resulting sequence. * * Copies each element in the range @p [first,last) for which ! * @p pred returns true to the range beginning at @p result. * * remove_copy_if() is stable, so the relative order of elements that are * copied is unchanged. --- 712,718 ---- * @return An iterator designating the end of the resulting sequence. * * Copies each element in the range @p [first,last) for which ! * @p pred returns false to the range beginning at @p result. * * remove_copy_if() is stable, so the relative order of elements that are * copied is unchanged. *************** _GLIBCXX_BEGIN_NAMESPACE(std) *** 816,822 **** _ForwardIterator __result = __first; ++__first; for(; __first != __last; ++__first) ! if(!__pred(*__first)) { *__result = _GLIBCXX_MOVE(*__first); ++__result; --- 816,822 ---- _ForwardIterator __result = __first; ++__first; for(; __first != __last; ++__first) ! if(!bool(__pred(*__first))) { *__result = _GLIBCXX_MOVE(*__first); ++__result; diff -Nrcpad gcc-4.3.1/libstdc++-v3/include/bits/stl_pair.h gcc-4.3.2/libstdc++-v3/include/bits/stl_pair.h *** gcc-4.3.1/libstdc++-v3/include/bits/stl_pair.h Sun Nov 11 15:56:09 2007 --- gcc-4.3.2/libstdc++-v3/include/bits/stl_pair.h Tue Aug 12 23:15:23 2008 *************** _GLIBCXX_BEGIN_NAMESPACE(std) *** 151,157 **** operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return __x.first == __y.first && __x.second == __y.second; } ! /// template inline bool operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) --- 151,157 ---- operator==(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) { return __x.first == __y.first && __x.second == __y.second; } ! /// template inline bool operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) diff -Nrcpad gcc-4.3.1/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/null_metadata.hpp gcc-4.3.2/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/null_metadata.hpp *** gcc-4.3.1/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/null_metadata.hpp Wed Sep 12 23:06:27 2007 --- gcc-4.3.2/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/null_metadata.hpp Thu Jul 10 00:38:13 2008 *************** *** 1,6 **** // -*- C++ -*- ! // Copyright (C) 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 terms --- 1,6 ---- // -*- C++ -*- ! // Copyright (C) 2005, 2006, 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 *************** *** 47,54 **** #ifndef PB_DS_LEFT_CHILD_NEXT_SIBLING_HEAP_NULL_METADATA_HPP #define PB_DS_LEFT_CHILD_NEXT_SIBLING_HEAP_NULL_METADATA_HPP - #include - namespace __gnu_pbds { namespace detail --- 47,52 ---- diff -Nrcpad gcc-4.3.1/libstdc++-v3/include/ext/pb_ds/exception.hpp gcc-4.3.2/libstdc++-v3/include/ext/pb_ds/exception.hpp *** gcc-4.3.1/libstdc++-v3/include/ext/pb_ds/exception.hpp Wed Sep 12 23:06:27 2007 --- gcc-4.3.2/libstdc++-v3/include/ext/pb_ds/exception.hpp Tue Jun 24 12:04:24 2008 *************** *** 1,6 **** // -*- C++ -*- ! // Copyright (C) 2005, 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 terms --- 1,6 ---- // -*- C++ -*- ! // Copyright (C) 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 terms *************** namespace __gnu_pbds *** 72,106 **** struct resize_error : public container_error { }; #if __EXCEPTIONS ! void __throw_container_error(void) { throw container_error(); } ! void __throw_insert_error(void) { throw insert_error(); } ! void __throw_join_error(void) { throw join_error(); } ! void __throw_resize_error(void) { throw resize_error(); } #else ! void __throw_container_error(void) { std::abort(); } ! void __throw_insert_error(void) { std::abort(); } ! void __throw_join_error(void) { std::abort(); } ! void __throw_resize_error(void) { std::abort(); } #endif --- 72,106 ---- struct resize_error : public container_error { }; #if __EXCEPTIONS ! inline void __throw_container_error(void) { throw container_error(); } ! inline void __throw_insert_error(void) { throw insert_error(); } ! inline void __throw_join_error(void) { throw join_error(); } ! inline void __throw_resize_error(void) { throw resize_error(); } #else ! inline void __throw_container_error(void) { std::abort(); } ! inline void __throw_insert_error(void) { std::abort(); } ! inline void __throw_join_error(void) { std::abort(); } ! inline void __throw_resize_error(void) { std::abort(); } #endif diff -Nrcpad gcc-4.3.1/libstdc++-v3/include/ext/rope gcc-4.3.2/libstdc++-v3/include/ext/rope *** gcc-4.3.1/libstdc++-v3/include/ext/rope Thu Jan 31 18:44:55 2008 --- gcc-4.3.2/libstdc++-v3/include/ext/rope Tue Jul 15 10:14:51 2008 *************** *** 1,6 **** // SGI's rope class -*- C++ -*- ! // Copyright (C) 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,6 ---- // SGI's rope class -*- C++ -*- ! // Copyright (C) 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_BEGIN_NAMESPACE(__gnu_cxx) *** 80,85 **** --- 80,101 ---- using std::allocator; using std::_Destroy; + // See libstdc++/36832. + template + void + _Destroy_const(_ForwardIterator __first, + _ForwardIterator __last, _Allocator __alloc) + { + for (; __first != __last; ++__first) + __alloc.destroy(&*__first); + } + + template + inline void + _Destroy_const(_ForwardIterator __first, + _ForwardIterator __last, allocator<_Tp>) + { _Destroy(__first, __last); } + // The _S_eos function is used for those functions that // convert to/from C-like strings to detect the end of the string. *************** protected: *** 1941,1951 **** this->_M_tree_ptr = _S_balance(this->_M_tree_ptr); _S_unref(__old); } ! void copy(_CharT* __buffer) const { ! _Destroy(__buffer, __buffer + size(), _M_get_allocator()); _S_flatten(this->_M_tree_ptr, __buffer); } --- 1957,1967 ---- this->_M_tree_ptr = _S_balance(this->_M_tree_ptr); _S_unref(__old); } ! void copy(_CharT* __buffer) const { ! _Destroy_const(__buffer, __buffer + size(), _M_get_allocator()); _S_flatten(this->_M_tree_ptr, __buffer); } *************** protected: *** 1959,1966 **** { size_t __size = size(); size_t __len = (__pos + __n > __size? __size - __pos : __n); ! ! _Destroy(__buffer, __buffer + __len, _M_get_allocator()); _S_flatten(this->_M_tree_ptr, __pos, __len, __buffer); return __len; } --- 1975,1982 ---- { size_t __size = size(); size_t __len = (__pos + __n > __size? __size - __pos : __n); ! ! _Destroy_const(__buffer, __buffer + __len, _M_get_allocator()); _S_flatten(this->_M_tree_ptr, __pos, __len, __buffer); return __len; } diff -Nrcpad gcc-4.3.1/libstdc++-v3/include/parallel/balanced_quicksort.h gcc-4.3.2/libstdc++-v3/include/parallel/balanced_quicksort.h *** gcc-4.3.1/libstdc++-v3/include/parallel/balanced_quicksort.h Mon Feb 18 00:00:00 2008 --- gcc-4.3.2/libstdc++-v3/include/parallel/balanced_quicksort.h Thu Jul 10 08:23:42 2008 *************** template : public std::bina *** 287,294 **** template struct plus : public std::binary_function<_Tp1, _Tp2, _Tp1> { ! typedef typeof(*static_cast<_Tp1*>(NULL) ! + *static_cast<_Tp2*>(NULL)) result; result operator()(const _Tp1& __x, const _Tp2& __y) const --- 287,294 ---- template struct plus : public std::binary_function<_Tp1, _Tp2, _Tp1> { ! typedef __typeof__(*static_cast<_Tp1*>(NULL) ! + *static_cast<_Tp2*>(NULL)) result; result operator()(const _Tp1& __x, const _Tp2& __y) const *************** template *** 299,306 **** template struct plus<_Tp, _Tp> : public std::binary_function<_Tp, _Tp, _Tp> { ! typedef typeof(*static_cast<_Tp*>(NULL) ! + *static_cast<_Tp*>(NULL)) result; result operator()(const _Tp& __x, const _Tp& __y) const --- 299,306 ---- template struct plus<_Tp, _Tp> : public std::binary_function<_Tp, _Tp, _Tp> { ! typedef __typeof__(*static_cast<_Tp*>(NULL) ! + *static_cast<_Tp*>(NULL)) result; result operator()(const _Tp& __x, const _Tp& __y) const *************** template *** 312,319 **** template struct multiplies : public std::binary_function<_Tp1, _Tp2, _Tp1> { ! typedef typeof(*static_cast<_Tp1*>(NULL) ! * *static_cast<_Tp2*>(NULL)) result; result operator()(const _Tp1& __x, const _Tp2& __y) const --- 312,319 ---- template struct multiplies : public std::binary_function<_Tp1, _Tp2, _Tp1> { ! typedef __typeof__(*static_cast<_Tp1*>(NULL) ! * *static_cast<_Tp2*>(NULL)) result; result operator()(const _Tp1& __x, const _Tp2& __y) const *************** template *** 324,331 **** template struct multiplies<_Tp, _Tp> : public std::binary_function<_Tp, _Tp, _Tp> { ! typedef typeof(*static_cast<_Tp*>(NULL) ! * *static_cast<_Tp*>(NULL)) result; result operator()(const _Tp& __x, const _Tp& __y) const --- 324,331 ---- template struct multiplies<_Tp, _Tp> : public std::binary_function<_Tp, _Tp, _Tp> { ! typedef __typeof__(*static_cast<_Tp*>(NULL) ! * *static_cast<_Tp*>(NULL)) result; result operator()(const _Tp& __x, const _Tp& __y) const diff -Nrcpad gcc-4.3.1/libstdc++-v3/include/parallel/losertree.h gcc-4.3.2/libstdc++-v3/include/parallel/losertree.h *** gcc-4.3.1/libstdc++-v3/include/parallel/losertree.h Tue May 6 08:56:35 2008 --- gcc-4.3.2/libstdc++-v3/include/parallel/losertree.h Tue Aug 12 17:24:47 2008 *************** public: *** 376,382 **** } ~LoserTreePointerBase() ! { ::operator delete(losers); } int get_min_source() { return losers[0].source; } --- 376,382 ---- } ~LoserTreePointerBase() ! { ::operator delete[](losers); } int get_min_source() { return losers[0].source; } diff -Nrcpad gcc-4.3.1/libstdc++-v3/include/parallel/random_shuffle.h gcc-4.3.2/libstdc++-v3/include/parallel/random_shuffle.h *** gcc-4.3.1/libstdc++-v3/include/parallel/random_shuffle.h Thu Jun 5 15:45:10 2008 --- gcc-4.3.2/libstdc++-v3/include/parallel/random_shuffle.h Wed Jul 9 15:33:14 2008 *************** template 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 7) ! VERIFY( res == "-12.345.678,90 EUR " ); ! #else VERIFY( res == "-EUR 12.345.678,90" ); + #endif return 0; } diff -Nrcpad gcc-4.3.1/libstdc++-v3/testsuite/22_locale/time_put/put/char/4.cc gcc-4.3.2/libstdc++-v3/testsuite/22_locale/time_put/put/char/4.cc *** gcc-4.3.1/libstdc++-v3/testsuite/22_locale/time_put/put/char/4.cc Fri Jan 6 02:11:55 2006 --- gcc-4.3.2/libstdc++-v3/testsuite/22_locale/time_put/put/char/4.cc Fri Jul 4 15:40:52 2008 *************** *** 2,8 **** // 2001-09-17 Benjamin Kosnik ! // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation // // 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 --- 2,9 ---- // 2001-09-17 Benjamin Kosnik ! // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ! // Free Software Foundation // // 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 *************** void test04() *** 38,59 **** // basic construction and sanity check locale loc_c = locale::classic(); ! locale loc_fr = locale("fr_FR@euro"); ! VERIFY( loc_fr != loc_c ); // create an ostream-derived object, cache the time_put facet const string empty; ostringstream oss; ! oss.imbue(loc_fr); const time_put& tim_put = use_facet >(oss.getloc()); iterator_type os_it04 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'a'); string result4 = oss.str(); ! VERIFY( result4 == "dim" ); ! oss.str(empty); // "%d.%m.%Y" iterator_type os_it27 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'x'); ! string result27 = oss.str(); // "04.04.1971" ! VERIFY( result27 == "04.04.1971" ); oss.str(empty); // "%T" iterator_type os_it28 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'X'); --- 39,60 ---- // basic construction and sanity check locale loc_c = locale::classic(); ! locale loc_es = locale("es_ES"); ! VERIFY( loc_es != loc_c ); // create an ostream-derived object, cache the time_put facet const string empty; ostringstream oss; ! oss.imbue(loc_es); const time_put& tim_put = use_facet >(oss.getloc()); iterator_type os_it04 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'a'); string result4 = oss.str(); ! VERIFY( result4 == "dom" ); ! oss.str(empty); // "%d/%m/%y" iterator_type os_it27 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'x'); ! string result27 = oss.str(); // "04/04/71" ! VERIFY( result27 == "04/04/71" ); oss.str(empty); // "%T" iterator_type os_it28 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'X'); *************** void test04() *** 62,69 **** oss.str(empty); iterator_type os_it37 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'x', 'E'); ! string result37 = oss.str(); // "04.04.1971" ! VERIFY( result37 == "04.04.1971" ); oss.str(empty); iterator_type os_it38 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'X', 'E'); --- 63,70 ---- oss.str(empty); iterator_type os_it37 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'x', 'E'); ! string result37 = oss.str(); // "04/04/71" ! VERIFY( result37 == "04/04/71" ); oss.str(empty); iterator_type os_it38 = tim_put.put(oss.rdbuf(), oss, '*', &time1, 'X', 'E'); diff -Nrcpad gcc-4.3.1/libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/4.cc gcc-4.3.2/libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/4.cc *** gcc-4.3.1/libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/4.cc Fri Jan 6 02:11:55 2006 --- gcc-4.3.2/libstdc++-v3/testsuite/22_locale/time_put/put/wchar_t/4.cc Fri Jul 4 15:40:52 2008 *************** *** 2,8 **** // 2001-09-17 Benjamin Kosnik ! // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation // // 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 --- 2,9 ---- // 2001-09-17 Benjamin Kosnik ! // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ! // Free Software Foundation // // 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 *************** void test04() *** 38,59 **** // basic construction and sanity check locale loc_c = locale::classic(); ! locale loc_fr = locale("fr_FR@euro"); ! VERIFY( loc_fr != loc_c ); // create an ostream-derived object, cache the time_put facet const wstring empty; wostringstream oss; ! oss.imbue(loc_fr); const time_put& tim_put = use_facet >(oss.getloc()); iterator_type os_it04 = tim_put.put(oss.rdbuf(), oss, L'*', &time1, 'a'); wstring result4 = oss.str(); ! VERIFY( result4 == L"dim" ); ! oss.str(empty); // "%d.%m.%Y" iterator_type os_it27 = tim_put.put(oss.rdbuf(), oss, L'*', &time1, 'x'); ! wstring result27 = oss.str(); // "04.04.1971" ! VERIFY( result27 == L"04.04.1971" ); oss.str(empty); // "%T" iterator_type os_it28 = tim_put.put(oss.rdbuf(), oss, L'*', &time1, 'X'); --- 39,60 ---- // basic construction and sanity check locale loc_c = locale::classic(); ! locale loc_es = locale("es_ES"); ! VERIFY( loc_es != loc_c ); // create an ostream-derived object, cache the time_put facet const wstring empty; wostringstream oss; ! oss.imbue(loc_es); const time_put& tim_put = use_facet >(oss.getloc()); iterator_type os_it04 = tim_put.put(oss.rdbuf(), oss, L'*', &time1, 'a'); wstring result4 = oss.str(); ! VERIFY( result4 == L"dom" ); ! oss.str(empty); // "%d/%m/%y" iterator_type os_it27 = tim_put.put(oss.rdbuf(), oss, L'*', &time1, 'x'); ! wstring result27 = oss.str(); // "04/04/71" ! VERIFY( result27 == L"04/04/71" ); oss.str(empty); // "%T" iterator_type os_it28 = tim_put.put(oss.rdbuf(), oss, L'*', &time1, 'X'); *************** void test04() *** 62,69 **** oss.str(empty); iterator_type os_it37 = tim_put.put(oss.rdbuf(), oss, L'*', &time1, 'x', 'E'); ! wstring result37 = oss.str(); // "04.04.1971" ! VERIFY( result37 == L"04.04.1971" ); oss.str(empty); iterator_type os_it38 = tim_put.put(oss.rdbuf(), oss, L'*', &time1, 'X', 'E'); --- 63,70 ---- oss.str(empty); iterator_type os_it37 = tim_put.put(oss.rdbuf(), oss, L'*', &time1, 'x', 'E'); ! wstring result37 = oss.str(); // "04/04/71" ! VERIFY( result37 == L"04/04/71" ); oss.str(empty); iterator_type os_it38 = tim_put.put(oss.rdbuf(), oss, L'*', &time1, 'X', 'E'); diff -Nrcpad gcc-4.3.1/libstdc++-v3/testsuite/25_algorithms/random_shuffle/1.cc gcc-4.3.2/libstdc++-v3/testsuite/25_algorithms/random_shuffle/1.cc *** gcc-4.3.1/libstdc++-v3/testsuite/25_algorithms/random_shuffle/1.cc Thu Jan 1 00:00:00 1970 --- gcc-4.3.2/libstdc++-v3/testsuite/25_algorithms/random_shuffle/1.cc Wed Jul 9 15:33:14 2008 *************** *** 0 **** --- 1,75 ---- + // Copyright (C) 2001 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. + + // 25.2.11 random_shuffle() + + #include + #include + + bool test __attribute__((unused)) = true; + + const int N = 200000; + int A[N], s1[N]; + + #if _GLIBCXX_PARALLEL + #define TAG , __gnu_parallel::sequential_tag() + #else + #define TAG + #endif + + void fill_ascending() + { + for (int i = 0; i < N; ++i) + A[i] = i; + } + + void + test01() + { + fill_ascending(); + #if _GLIBCXX_PARALLEL + for (int num_threads = 1; num_threads <= 2; ++num_threads) + { + omp_set_num_threads(num_threads); + #endif + std::copy(A, A + N, s1); + VERIFY(std::equal(s1, s1 + N, A TAG)); + + std::random_shuffle(s1, s1 + N); + // the chance that random_shuffle leaves the order as is by coincidence + // is negligible, so we expect it to be permuted + VERIFY(!std::equal(s1, s1 + N, A TAG)); + + std::sort(s1, s1 + N TAG); + VERIFY(std::equal(s1, s1 + N, A TAG)); + #if _GLIBCXX_PARALLEL + } + #endif + } + + int + main() + { + #if _GLIBCXX_PARALLEL + __gnu_parallel::_Settings gpms = __gnu_parallel::_Settings::get(); + gpms.algorithm_strategy = __gnu_parallel::force_parallel; + __gnu_parallel::_Settings::set(gpms); + #endif + test01(); + return 0; + } diff -Nrcpad gcc-4.3.1/libstdc++-v3/testsuite/ext/rope/36832.cc gcc-4.3.2/libstdc++-v3/testsuite/ext/rope/36832.cc *** gcc-4.3.1/libstdc++-v3/testsuite/ext/rope/36832.cc Thu Jan 1 00:00:00 1970 --- gcc-4.3.2/libstdc++-v3/testsuite/ext/rope/36832.cc Tue Jul 15 10:14:51 2008 *************** *** 0 **** --- 1,36 ---- + // 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. + + // rope (SGI extension) + + #include + + // libstdc++/36832 + void test01() + { + __gnu_cxx::crope myRope; + myRope = "1234567890"; + char buffer[100]; + myRope.copy(1, 1, buffer); + } + + int main() + { + test01(); + return 0; + }