This is the mail archive of the
gcc-regression@gcc.gnu.org
mailing list for the GCC project.
A recent patch increased GCC's memory consumption!
- From: gcctest at suse dot de
- To: jh at suse dot cz, gcc-regression at gcc dot gnu dot org
- Date: Sun, 10 Dec 2006 13:16:19 +0000
- Subject: A recent patch increased GCC's memory consumption!
Hi,
I am a friendly script caring about memory consumption in GCC. Please
contact jh@suse.cz if something is going wrong.
Comparing memory consumption on compilation of combine.i, insn-attrtab.i,
and generate-3.4.ii I got:
comparing empty function compilation at -O0 level:
Overall memory needed: 18261k
Peak memory use before GGC: 2233k
Peak memory use after GGC: 1940k
Maximum of released memory in single GGC run: 293k
Garbage: 422k
Leak: 2271k
Overhead: 446k
GGC runs: 3
comparing empty function compilation at -O0 -g level:
Overall memory needed: 18277k
Peak memory use before GGC: 2260k
Peak memory use after GGC: 1967k
Maximum of released memory in single GGC run: 293k
Garbage: 425k
Leak: 2303k
Overhead: 450k
GGC runs: 3
comparing empty function compilation at -O1 level:
Overall memory needed: 18361k -> 18365k
Peak memory use before GGC: 2233k
Peak memory use after GGC: 1940k
Maximum of released memory in single GGC run: 293k
Garbage: 426k
Leak: 2273k
Overhead: 446k
GGC runs: 4
comparing empty function compilation at -O2 level:
Overall memory needed: 18373k -> 18377k
Peak memory use before GGC: 2233k
Peak memory use after GGC: 1940k
Maximum of released memory in single GGC run: 293k
Garbage: 430k
Leak: 2273k
Overhead: 447k
GGC runs: 4
comparing empty function compilation at -O3 level:
Overall memory needed: 18373k -> 18377k
Peak memory use before GGC: 2233k
Peak memory use after GGC: 1940k
Maximum of released memory in single GGC run: 293k
Garbage: 430k
Leak: 2273k
Overhead: 447k
GGC runs: 4
comparing combine.c compilation at -O0 level:
Overall memory needed: 28393k
Peak memory use before GGC: 9268k
Peak memory use after GGC: 8786k
Maximum of released memory in single GGC run: 2643k
Garbage: 37458k
Leak: 6452k
Overhead: 4868k
GGC runs: 280
comparing combine.c compilation at -O0 -g level:
Overall memory needed: 30477k
Peak memory use before GGC: 10816k
Peak memory use after GGC: 10446k
Maximum of released memory in single GGC run: 2319k
Garbage: 38030k
Leak: 9328k
Overhead: 5569k
GGC runs: 272
comparing combine.c compilation at -O1 level:
Amount of produced GGC garbage increased from 58202k to 58315k, overall 0.20%
Amount of memory still referenced at the end of compilation increased from 6473k to 6481k, overall 0.12%
Overall memory needed: 39821k
Peak memory use before GGC: 16872k
Peak memory use after GGC: 16704k
Maximum of released memory in single GGC run: 2254k -> 2255k
Garbage: 58202k -> 58315k
Leak: 6473k -> 6481k
Overhead: 6269k -> 6292k
GGC runs: 359
comparing combine.c compilation at -O2 level:
Overall memory needed: 29386k
Peak memory use before GGC: 16874k
Peak memory use after GGC: 16704k
Maximum of released memory in single GGC run: 3776k -> 3774k
Garbage: 79514k -> 79483k
Leak: 6589k
Overhead: 8630k -> 8624k
GGC runs: 416
comparing combine.c compilation at -O3 level:
Overall memory needed: 29510k
Peak memory use before GGC: 18390k
Peak memory use after GGC: 17806k
Maximum of released memory in single GGC run: 5531k -> 5529k
Garbage: 116420k -> 116390k
Leak: 6671k
Overhead: 13262k -> 13256k
GGC runs: 468
comparing insn-attrtab.c compilation at -O0 level:
Overall memory needed: 88530k
Peak memory use before GGC: 70079k
Peak memory use after GGC: 43585k
Maximum of released memory in single GGC run: 37868k
Garbage: 131134k
Leak: 9274k
Overhead: 16943k
GGC runs: 216
comparing insn-attrtab.c compilation at -O0 -g level:
Overall memory needed: 89710k
Peak memory use before GGC: 71240k
Peak memory use after GGC: 44853k
Maximum of released memory in single GGC run: 37869k
Garbage: 132034k
Leak: 11218k
Overhead: 17339k
GGC runs: 213
comparing insn-attrtab.c compilation at -O1 level:
Overall memory needed: 110262k
Peak memory use before GGC: 85471k
Peak memory use after GGC: 79438k
Maximum of released memory in single GGC run: 31668k -> 31671k
Garbage: 271364k -> 271418k
Leak: 9336k -> 9336k
Overhead: 28698k -> 28708k
GGC runs: 223
comparing insn-attrtab.c compilation at -O2 level:
Overall memory needed: 120766k -> 120754k
Peak memory use before GGC: 87633k
Peak memory use after GGC: 80352k
Maximum of released memory in single GGC run: 30219k -> 30216k
Garbage: 310401k -> 310287k
Leak: 9339k
Overhead: 35209k -> 35187k
GGC runs: 246
comparing insn-attrtab.c compilation at -O3 level:
Overall memory needed: 120774k
Peak memory use before GGC: 87658k
Peak memory use after GGC: 80378k
Maximum of released memory in single GGC run: 30412k -> 30409k
Garbage: 311241k -> 311124k
Leak: 9342k
Overhead: 35436k -> 35414k
GGC runs: 250
comparing Gerald's testcase PR8361 compilation at -O0 level:
Overall memory needed: 118582k
Peak memory use before GGC: 91843k
Peak memory use after GGC: 90934k
Maximum of released memory in single GGC run: 19241k
Garbage: 209815k
Leak: 47804k
Overhead: 21134k
GGC runs: 414
comparing Gerald's testcase PR8361 compilation at -O0 -g level:
Overall memory needed: 130990k
Peak memory use before GGC: 104049k
Peak memory use after GGC: 103007k
Maximum of released memory in single GGC run: 18732k
Garbage: 216401k
Leak: 71322k
Overhead: 27038k
GGC runs: 385
comparing Gerald's testcase PR8361 compilation at -O1 level:
Overall memory needed: 119610k
Peak memory use before GGC: 96238k
Peak memory use after GGC: 93982k
Maximum of released memory in single GGC run: 18069k
Garbage: 446627k -> 447048k
Leak: 49491k -> 49491k
Overhead: 32420k -> 32497k
GGC runs: 564
comparing Gerald's testcase PR8361 compilation at -O2 level:
Overall memory needed: 119630k
Peak memory use before GGC: 96264k
Peak memory use after GGC: 94009k
Maximum of released memory in single GGC run: 18069k
Garbage: 564573k -> 564492k
Leak: 50411k -> 50412k
Overhead: 42180k -> 42167k
GGC runs: 623
comparing Gerald's testcase PR8361 compilation at -O3 level:
Overall memory needed: 121402k
Peak memory use before GGC: 97232k
Peak memory use after GGC: 95640k
Maximum of released memory in single GGC run: 18476k
Garbage: 585824k -> 585778k
Leak: 50363k -> 50364k
Overhead: 43027k -> 43016k
GGC runs: 634
comparing PR rtl-optimization/28071 testcase compilation at -O0 level:
Overall memory needed: 137618k
Peak memory use before GGC: 81563k
Peak memory use after GGC: 58443k
Maximum of released memory in single GGC run: 45145k
Garbage: 148487k
Leak: 7540k
Overhead: 25306k
GGC runs: 82
comparing PR rtl-optimization/28071 testcase compilation at -O0 -g level:
Overall memory needed: 137990k
Peak memory use before GGC: 82209k
Peak memory use after GGC: 59089k
Maximum of released memory in single GGC run: 45210k
Garbage: 148690k
Leak: 9307k
Overhead: 25801k
GGC runs: 88
comparing PR rtl-optimization/28071 testcase compilation at -O1 level:
Overall memory needed: 408426k -> 408334k
Peak memory use before GGC: 194153k
Peak memory use after GGC: 187972k
Maximum of released memory in single GGC run: 94098k -> 94097k
Garbage: 283874k -> 283876k
Leak: 29776k
Overhead: 29694k -> 29695k
GGC runs: 98
comparing PR rtl-optimization/28071 testcase compilation at -O2 level:
Overall memory needed: 330170k -> 330306k
Peak memory use before GGC: 194146k
Peak memory use after GGC: 187965k
Maximum of released memory in single GGC run: 96112k -> 96113k
Garbage: 364116k -> 364116k
Leak: 30359k
Overhead: 45444k -> 45444k
GGC runs: 105
comparing PR rtl-optimization/28071 testcase compilation at -O3 -fno-tree-pre -fno-tree-fre level:
Overall memory needed: 777850k -> 777762k
Peak memory use before GGC: 308402k
Peak memory use after GGC: 286746k
Maximum of released memory in single GGC run: 162713k -> 162843k
Garbage: 501959k -> 502122k
Leak: 45412k
Overhead: 57075k -> 57108k
GGC runs: 98
Head of the ChangeLog is:
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog 2006-12-09 19:27:25.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/ChangeLog 2006-12-10 11:37:41.000000000 +0000
@@ -1,3 +1,38 @@
+2006-12-10 Steven Bosscher <steven@gcc.gnu.org>
+
+ * cse.c: (struct cse_basic_block_data): Remove LAST field.
+ (struct branch_path): Remove BRANCH and TAKEN fields. Add new
+ BB field.
+ (cse_visited_basic_blocks): New static bitmap.
+ (cse_end_of_basic_block, cse_basic_block): Remove.
+ (cse_find_path, cse_dump_path, cse_prescan_path,
+ cse_extended_basic_block): New static functions.
+ (cse_insn): Don't CSE over setjmp calls. Use the CFG to find
+ basic block boundaries. Don't record jump equivalences here.
+ Update the CFG after doing in-place replacement of the SET_SRC.
+ (cse_main): Rewrite. Look for extended basic block headers
+ and call cse_extended_basic_block on them until all paths that
+ start at this header are exhausted.
+ (rest_of_handle_cse): Verify that the CFG is incrementally updated
+ and correct after cse_main.
+ Don't call delete_trivially_dead_insns, let cfgcleanup do that.
+ (rest_of_handle_cse2): Verify the CFG here, too, after cse_main.
+ (pass_cse): Add TODO_verify_flow.
+ (pass_cse2): Likewise.
+
+2006-12-10 Rask Ingemann Lambertsen <rask@sygehus.dk>
+
+ * reload1.c (choose_reload_regs): Don't set byte offset when
+ resolving subregs of hard regs.
+
+2006-12-09 Zack Weinberg <zackw@panix.com>
+
+ * c-opts.c (c_common_parse_file): Unconditionally give a warning,
+ suitable for the language, if set_yydebug is true.
+ * c-pragma.h: Define enum pragma_omp_clause here. Don't define
+ YYDEBUG or declare yydebug.
+ * c-parser.c (yydebug, enum pragma_omp_clause): Delete.
+
2006-12-09 Jan Hubicka <jh@suse.cz>
* cgraph.c: Update copyright.
@@ -104,18 +139,18 @@
2006-12-08 Andrew MacLeod <amacleod@redhat.com>
* Makefile.in: Add new file tree-ssa-ter.c.
- * tree-outof-ssa.c (struct temp_expr_table_d, new_temp_expr_table,
- free_temp_expr_table, add_value_to_version_list,
- add_value_to_partition_list, remove_value_from_partition_list,
- add_dependence, check_replaceable, finish_expr, mark_replaceable,
- kill_expr, kill_virtual_exprs, find_replaceable_in_bb,
+ * tree-outof-ssa.c (struct temp_expr_table_d, new_temp_expr_table,
+ free_temp_expr_table, add_value_to_version_list,
+ add_value_to_partition_list, remove_value_from_partition_list,
+ add_dependence, check_replaceable, finish_expr, mark_replaceable,
+ kill_expr, kill_virtual_exprs, find_replaceable_in_bb,
find_replaceable_exprs, dump_replaceable_exprs): Move to tree-ssa-ter.c.
* tree-ssa-live.h (find_replaceable_exprs, dump_replaceable_exprs): Add
prototypes.
* tree-ssa-ter.c: New file using code moved from tree-outof-ssa.c.
(struct value_expr_d): Remove.
(struct temp_expr_table_d): Rename fields, add explicit vector of
- replaceable expressions instead of sharing. Change value_expr_p's to
+ replaceable expressions instead of sharing. Change value_expr_p's to
bitmap. Delete free_list.
(new_temp_expr_table): Rename fields, count number of ssa_names in
each partition.
@@ -131,7 +166,7 @@
partition list, free the bitmap if it is empty.
(add_dependence): Use renamed field, cleanup. Don't add a dependence
on partitions with only one member.
- (is_replaceable_p): New. Split out replaceability check from
+ (is_replaceable_p): New. Split out replaceability check from
check_replaceable.
(process_replaceable): New. Code split from check_replaceable.
(check_replaceable): Removed.
@@ -208,7 +243,7 @@
(struct gcc_target): Add record_gcc_switches and
record_gcc_switches_section fields.
* target-def.h (TARGET_ASM_RECORD_GCC_SWITCHES): Provide a
- default definition.
+ default definition.
(TARGET_ASM_RECORD_GCC_SWITCHES_SECTION): Provide a default
definition.
* toplev.c (print_single_switch): Simplify by providing a
@@ -218,9 +253,9 @@
(print_to_asm_out_file): New function.
(print_to_stderr): New function.
(init_asm_output): If flag_record_gcc_switches is set then if
- the target supports recording the switches then emit them into
- the assembler output file, otherwise tell the user that the
- switch is not supported.
+ the target supports recording the switches then emit them into
+ the assembler output file, otherwise tell the user that the
+ switch is not supported.
* varasm.c (eld_record_gcc_switches): New function. Example
handler for the record_gcc_switches target hook.
* doc/tm.texi (TARGET_ASM_RECORD_GCC_SWITCHES): Document the new
--- /usr/src/SpecTests/sandbox-britten-memory/x86_64/mem-result/ChangeLog.cp 2006-12-08 10:37:53.000000000 +0000
+++ /usr/src/SpecTests/sandbox-britten-memory/gcc/gcc/cp/ChangeLog 2006-12-10 11:37:41.000000000 +0000
@@ -1,3 +1,7 @@
+2006-12-09 Zack Weinberg <zackw@panix.com>
+
+ * parser.c (yydebug, enum pragma_omp_clause): Delete.
+
2006-12-07 Mark Mitchell <mark@codesourcery.com>
PR c++/29732
@@ -11,10 +15,10 @@
2006-12-07 Lee Millward <lee.millward@codesourcery.com>
- PR c++/29980
- * cp_parser_elaborated_type_specifier: Check
- the return value of check_elaborated_type_specifier.
-
+ PR c++/29980
+ * cp_parser_elaborated_type_specifier: Check
+ the return value of check_elaborated_type_specifier.
+
2006-12-06 Mark Mitchell <mark@codesourcery.com>
PR c++/29730
@@ -37,7 +41,7 @@
2006-12-05 Aldy Hernandez <aldyh@redhat.com>
Merge from gimple-tuples-branch.
-
+
2006-10-05 Aldy Hernandez <aldyh@redhat.com>
* cp-gimplify.c (cp_gimplify_expr): Adjust for GIMPLE_MODIFY_STMT.
@@ -47,7 +51,7 @@
2006-09-28 Aldy Hernandez <aldyh@redhat.com>
- * cp-tree.h (union lang_tree_node): Gimple statements do not
+ * cp-tree.h (union lang_tree_node): Gimple statements do not
have a TREE_CHAIN.
(TREE_INDIRECT_USING): Look in base.
@@ -71,7 +75,7 @@
Call for_each_template_parm on TYPE_MIN_VALUE and TYPE_MAX_VALUE.
2006-12-03 Richard Henderson <rth@redhat.com>
- Andrew Pinski <pinskia@gmail.com>
+ Andrew Pinski <pinskia@gmail.com>
PR C++/14329
* error.c (cp_printer) <'D'>: Handle DECL_DEBUG_EXPR.
@@ -93,8 +97,8 @@
(start_preparsed_function): Define and document value of
DECL_INITIAL before and after routine.
(finish_function): Check DECL_INITIAL invariant.
- * parser.c
- (cp_parser_function_definition_from_specifiers_and_declarator):
+ * parser.c
+ (cp_parser_function_definition_from_specifiers_and_declarator):
Skip duplicate function definitions.
2006-12-01 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
@@ -123,7 +127,7 @@
* rtti.c (get_tinfo_decl): Handle return value from
pushdecl_top_level_and_finish.
-2006-11-29 Lee Millward <lee.millward@codesourcery.com>
+2006-11-29 Lee Millward <lee.millward@codesourcery.com>
PR c++/29022
* parser.c (cp_parser_class_head): Move processing
@@ -131,7 +135,7 @@
(cp_parser_class_specifier) ...here. Take an extra
tree* parameter for any base classes. Only process
them if the opening brace was found.
-
+
2006-11-28 Jakub Jelinek <jakub@redhat.com>
PR c++/29735
@@ -160,29 +164,29 @@
2006-11-21 Douglas Gregor <doug.gregor@gmail.com>
- * cp-tree.def (STATIC_ASSERT): New.
+ * cp-tree.def (STATIC_ASSERT): New.
* cp-objcp-common.c (cp_tree_size): Handle STATIC_ASSERT.
* error.c (dump_decl): Handle STATIC_ASSERT.
* cp-tree.h (STATIC_ASSERT_CONDITION): New.
- (STATIC_ASSERT_MESSAGE): New.
+ (STATIC_ASSERT_MESSAGE): New.
(STATIC_ASSERT_SOURCE_LOCATION): New.
(struct tree_static_assert): New.
(enum cp_tree_node_structure_enum): Add TS_CP_STATIC_ASSERT.
(union lang_tree_node): Add static_assertion.
- (finish_static_assert): Declare.
+ (finish_static_assert): Declare.
* cxx-pretty-print.c (pp_cxx_statement): Handle STATIC_ASSERT.
(pp_cxx_declaration): Handle STATIC_ASSERT.
* pt.c (instantiate_class_template): Handle
STATIC_ASSERT members.
- (tsubst_expr): Handle STATIC_ASSERT statements.
+ (tsubst_expr): Handle STATIC_ASSERT statements.
* semantics.c (finish_static_assert): New.
- * lex.c (D_CPP0X): New.
- (reswords): Add static_assert keyword.
- (init_reswords): If not flag_cpp0x, mask out C++0x keywords.
- * parser.c (cp_parser_block_declaration): Parse static
+ * lex.c (D_CPP0X): New.
+ (reswords): Add static_assert keyword.
+ (init_reswords): If not flag_cpp0x, mask out C++0x keywords.
+ * parser.c (cp_parser_block_declaration): Parse static
assertions.
- (cp_parser_static_assert): New.
- (cp_parser_member_declaration): Parse static assertions.
+ (cp_parser_static_assert): New.
+ (cp_parser_member_declaration): Parse static assertions.
2006-11-21 Jakub Jelinek <jakub@redhat.com>
@@ -207,7 +211,7 @@
perform_or_defer_access_check.
* class.c (alter_access, resolve_address_of_overloaded_function):
Likewise.
- * decl.c (make_typename_type, make_unbound_class_template): Likewise.
+ * decl.c (make_typename_type, make_unbound_class_template): Likewise.
* search.c (lookup_member): Likewise.
* friend.c (add_friend): Likewise.
* parser.c (cp_parser_template_id,
@@ -221,7 +225,7 @@
(build_op_delete_call): Adjusted the call to
perform_or_defer_access_check.
(build_over_call): Likewise.
-
+
2006-11-16 Dirk Mueller <dmueller@suse.de>
* name-lookup.c (begin_scope): Use GGC_CNEW instead of
@@ -319,7 +323,7 @@
2006-10-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR C++/29295
- * typeck.c (build_unary_op): Use same_type_p when comparing to
+ * typeck.c (build_unary_op): Use same_type_p when comparing to
boolean type.
2006-10-29 Dirk Mueller <dmueller@suse.de>
@@ -349,27 +353,27 @@
* rtti.c (tinfo_base_init): The type info string is always global.
2006-10-20 Lee Millward <lee.millward@codesourcery.com>
- Mark Mitchell <mark@codesourcery.com>
+ Mark Mitchell <mark@codesourcery.com>
+
+ PR c++/28053
+ * decl2.c (grokbitfield): Detect invalid non-integral
+ types earlier when possible.
- PR c++/28053
- * decl2.c (grokbitfield): Detect invalid non-integral
- types earlier when possible.
-
2006-10-18 Mark Shinwell <shinwell@codesourcery.com>
PR c++/26884
* typeck2.c (digest_init): Raise error upon attempts to
initialize arrays with variables.
-2006-10-17 Lee Millward <lee.millward@codesourcery.com>
+2006-10-17 Lee Millward <lee.millward@codesourcery.com>
+
+ PR c++/27952
+ * cp-tree.h (xref_basetypes): Return bool instead of void.
+ * decl.c (xref_basetypes): Adjust definition. Return false
+ if the class bases are invalid.
+ * parser.c (cp_parser_class_head): Check the return value
+ from xref_basetypes.
- PR c++/27952
- * cp-tree.h (xref_basetypes): Return bool instead of void.
- * decl.c (xref_basetypes): Adjust definition. Return false
- if the class bases are invalid.
- * parser.c (cp_parser_class_head): Check the return value
- from xref_basetypes.
-
2006-10-17 Mark Mitchell <mark@codesourcery.com>
PR c++/28261
@@ -443,7 +447,7 @@
set the type to error_mark_node.
(grokdeclarator): Check the return type of check_var_type.
* class.c (finish_struct_1): Robustify.
-
+
2006-10-11 Mark Mitchell <mark@codesourcery.com>
PR c++/29175
@@ -453,17 +457,17 @@
2006-10-11 Lee Millward <lee.millward@codesourcery.com>
PR c++/29024
- * cp-tree (struct cp_decl_specifier_seq): Rename to
- conflicting_specifiers_p
- * parser.c (cp_parser_set_storage_class): Set
- conflicting_specifiers_p for the input decl specifier
- if a typedef specifier is present. Rename uses of
- multiple_specifiers_p to conflicting_specifiers_p.
- (cp_parser_decl_specifier_seq) <RID_TYPEDEF>: If a storage
- class specifier has already been set for this declaration,
- set conflicting_specifiers_p to true on the decl_specs.
- * decl.c (grokdeclarator): Rename uses of
- multiple_specifiers_p to conflicting_specifiers_p.
+ * cp-tree (struct cp_decl_specifier_seq): Rename to
+ conflicting_specifiers_p
+ * parser.c (cp_parser_set_storage_class): Set
+ conflicting_specifiers_p for the input decl specifier
+ if a typedef specifier is present. Rename uses of
+ multiple_specifiers_p to conflicting_specifiers_p.
+ (cp_parser_decl_specifier_seq) <RID_TYPEDEF>: If a storage
+ class specifier has already been set for this declaration,
+ set conflicting_specifiers_p to true on the decl_specs.
+ * decl.c (grokdeclarator): Rename uses of
+ multiple_specifiers_p to conflicting_specifiers_p.
2006-10-10 Brooks Moses <bmoses@stanford.edu>
@@ -524,31 +528,31 @@
PR c++/29080
* parser.c (cp_parser_postfix_dot_deref_expression): Use
BASELINK_ACCESS_BINFO as the qualifying scope when calling
- adjust_result_of_qualified_name_lookup.
+ adjust_result_of_qualified_name_lookup.
2006-09-25 Lee Millward <lee.millward@codesourcery.com>
- PR c++/27329
- PR c++/26938
- * cp-tree.h (redeclare_class_template): Adjust declaration
- to return bool instead of void.
- * pt.c (redeclare_class_template): Update definition.
+ PR c++/27329
+ PR c++/26938
+ * cp-tree.h (redeclare_class_template): Adjust declaration
+ to return bool instead of void.
+ * pt.c (redeclare_class_template): Update definition.
Return false on error.
- * decl.c (xref_tag): Return error_mark_node if
+ * decl.c (xref_tag): Return error_mark_node if
redeclare_class_template returned false.
PR c++/27667
- * cp-tree.h (begin_specialization): Return bool
+ * cp-tree.h (begin_specialization): Return bool
instead of void.
- * pt.c (check_specialization_scope): Likwise.
- Adjust comment. Return false if a specialization
+ * pt.c (check_specialization_scope): Likwise.
+ Adjust comment. Return false if a specialization
isn't permitted in the current scope.
- (begin_specialization): Use the return value of
- check_specialization_scope.
- * parser.c (cp_parser_explicit_specialization): If
- begin_specialization returned false, skip the rest
+ (begin_specialization): Use the return value of
+ check_specialization_scope.
+ * parser.c (cp_parser_explicit_specialization): If
+ begin_specialization returned false, skip the rest
of the specialization.
-
+
2006-09-21 Mark Mitchell <mark@codesourcery.com>
PR c++/29016
@@ -559,12 +563,12 @@
PR c++/28861
* decl.c (shadow_tag): Return error_mark_node
- if maybe_process_partial_specialization failed.
+ if maybe_process_partial_specialization failed.
PR c++/28303
- * decl.c (grokdeclarator): Return error_mark_node on
- declaration with two or more data types.
-
+ * decl.c (grokdeclarator): Return error_mark_node on
+ declaration with two or more data types.
+
2006-09-20 Danny Smith <dannysmith@users.sourceforge.net>
PR target/27650
@@ -660,7 +664,7 @@
* tree.c (build_cplus_new): Set it.
PR c++/26696
- * cvt.c (convert_to_void): Replace a subexpression with no side
+ * cvt.c (convert_to_void): Replace a subexpression with no side
effects with void_zero_node.
* tree.c (is_overloaded_fn): Look through COMPONENT_REF.
(get_first_fn): Ditto.
@@ -673,13 +677,13 @@
where the name is a type used incorrectly.
PR c++/26671
- * typeck.c (maybe_warn_about_returning_address_of_local): Look
- through COMPONENT_REF and ARRAY_REF.
+ * typeck.c (maybe_warn_about_returning_address_of_local): Look
+ through COMPONENT_REF and ARRAY_REF.
PR c++/26102
* name-lookup.c (do_class_using_decl): Try to find the base even
if bases_dependent_p.
- * pt.c (type_dependent_expression_p): A USING_DECL is dependent.
+ * pt.c (type_dependent_expression_p): A USING_DECL is dependent.
PR c++/19809
* pt.c (tsubst_friend_function): Set DECL_INITIAL before pushdecl.
@@ -756,7 +760,7 @@
fields can't be packed.
PR c++/26577
- * cvt.c (convert_to_void): Don't automatically load from volatiles
+ * cvt.c (convert_to_void): Don't automatically load from volatiles
of TREE_ADDRESSABLE type.
2006-08-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
@@ -777,13 +781,13 @@
specialization-after-instantiation.
* decl2.c (mark_used): Mark the main function used when one of its
clones is used.
-
+
2006-08-27 Lee Millward <lee.millward@codesourcery.com>
PR c++/26573
* class.c (check_field_decls): Don't issue error about
local classes containing static data members.
-
+
2006-08-26 Joseph S. Myers <joseph@codesourcery.com>
PR c++/24009
@@ -808,7 +812,7 @@
parameters, return 1 if either is error_mark_node.
(current_template_args): Robustify.
(redeclare_class_template): Likewise.
-
+
2006-08-26 Mark Mitchell <mark@codesourcery.com>
PR c++/28588
@@ -874,7 +878,7 @@
2006-08-23 Jason Merrill <jason@redhat.com>
PR c++/27714
- * pt.c (push_template_decl_real): A friend template with class
+ * pt.c (push_template_decl_real): A friend template with class
scope isn't primary.
2006-08-23 Benjamin Smedberg <benjamin@smedbergs.us>
@@ -886,7 +890,7 @@
2006-08-22 Jason Merrill <jason@redhat.com>
PR c++/23372
- * call.c (build_over_call): Don't make a copy here if build_call
+ * call.c (build_over_call): Don't make a copy here if build_call
will make one too.
2006-08-22 Andrew Pinski <pinskia@physics.uc.edu>
@@ -905,7 +909,7 @@
2006-08-22 Jason Merrill <jason@redhat.com>
PR c++/28659
- * typeck.c (merge_types): If either of the types have the right
+ * typeck.c (merge_types): If either of the types have the right
attributes, return that one.
* tree.c (cp_build_type_attribute_variant): Make sure we aren't
@@ -936,7 +940,7 @@
PR c++/28741
* tree.c (decl_anon_ns_mem_p): Robustify.
* decl2.c (determine_visibility): Likewise.
-
+
2006-08-20 Mark Mitchell <mark@codesourcery.com>
PR c++/28341
@@ -967,7 +971,7 @@
PR c++/28346
* pt.c (tsubst_qualified_id): Do not strip references from
- OFFSET_REFs.
+ OFFSET_REFs.
2006-08-17 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
@@ -1010,7 +1014,7 @@
PR c++/28594
* pt.c (process_template_parm): Robustify.
-
+
2006-08-14 Steve Ellcey <sje@cup.hp.com>
PR c++/28288
@@ -1043,13 +1047,13 @@
PR c++/28641
* pt.c (type_unification_real): Robustify.
-
+
2006-08-03 Lee Millward <lee.millward@codesourcery.com>
PR c++/28347
* decl.c (start_decl): Return error_mark_node if a
diagnostic was issed for an invalid typedef initialization.
-
+
2006-08-03 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
PR c++/27508
@@ -1126,7 +1130,7 @@
(mangle_class_name_for_template): Likewise.
(tsubst_template_parms): Likewise.
* error.c (dump_template_argument_list): Likewise.
-
+
2006-07-28 Kazu Hirata <kazu@codesourcery.com>
* cp-tree.h: Fix a comment typo.
@@ -1184,15 +1188,15 @@
* tree.c (decl_linkage): Only return lk_external if it's set.
PR c++/28409
- * decl2.c (constrain_visibility): Ignore the anonymous namespace
+ * decl2.c (constrain_visibility): Ignore the anonymous namespace
for extern "C" decls.
(VISIBILITY_STATIC): Rename to VISIBILITY_ANON.
- * decl2.c (constrain_visibility): Remove specified and reason
+ * decl2.c (constrain_visibility): Remove specified and reason
parameters. Don't touch decls that already have explicit visibility.
- (determine_visibility): Do copy DECL_VISIBILITY_SPECIFIED from
+ (determine_visibility): Do copy DECL_VISIBILITY_SPECIFIED from
template.
- (determine_visibility_from_class): Reverse sense of
+ (determine_visibility_from_class): Reverse sense of
DECL_VISIBILITY_SPECIFIED test for target-specific visibility rules.
(constrain_class_visibility): Only complain about member visibility
if the member type is another class. Don't change visibility of the
@@ -1229,7 +1233,7 @@
PR c++/28260
* decl.c (duplicate_decls): Return error_mark_node
on ambiguous declaration.
-
+
2006-07-18 Steve Ellcey <sje@cup.hp.com>
PR c++/27495
@@ -1269,13 +1273,13 @@
* decl2.c (acceptable_java_type): Robustify. Use
proper Boolean return type instead of return 1.
(check_java_method): Don't issue error about
- type not being an acceptable Java parameter if
+ type not being an acceptable Java parameter if
it's error_mark_node.
-
+
PR c++/28269
* parser.c (cp_parser_elaborated_type_specifier):
Return early if an invalid type was detected.
-
+
2006-07-15 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
PR c++/28249
@@ -1319,7 +1323,7 @@
* decl.c (define_label): Return error_mark_node on error.
* semantics.c (finish_label_stmt): Don't call
add_stmt for invalid labels.
-
+
2006-07-06 Jason Merrill <jason@redhat.com>
PR c++/28279
@@ -1347,13 +1351,13 @@
2006-07-01 Jason Merrill <jason@redhat.com>
PR c++/28215
- * method.c (make_thunk): Unset DECL_USE_TEMPLATE and
+ * method.c (make_thunk): Unset DECL_USE_TEMPLATE and
DECL_TEMPLATE_INFO.
2006-06-30 Jason Merrill <jason@redhat.com>
PR c++/26577
- * call.c (build_new_method_call): Force evaluation of the
+ * call.c (build_new_method_call): Force evaluation of the
instance pointer, not the object.
2006-06-30 Kazu Hirata <kazu@codesourcery.com>
@@ -1363,7 +1367,7 @@
2006-06-30 Jason Merrill <jason@redhat.com>
PR c++/18698
- * decl2.c (grokfield): Only try to treat the decl as an access
+ * decl2.c (grokfield): Only try to treat the decl as an access
declaration if the scope is a class.
2006-06-29 Jason Merrill <jason@redhat.com>
@@ -1417,7 +1421,7 @@
2006-06-28 Jason Merrill <jason@redhat.com>
PR c++/27424
- * pt.c (convert_template_argument): Pass all template arguments
+ * pt.c (convert_template_argument): Pass all template arguments
on to coerce_template_template_parms.
2006-06-25 Lee Millward <lee.millward@gmail.com>
@@ -1428,7 +1432,7 @@
returning NULL_TREE, instead check for error_mark_node
to indicate failure.
* decl.c (grokdeclarator): Adjust block comment.
-
+
2006-06-25 Lee Millward <lee.millward@gmail.com>
PR c++/28051
@@ -1436,7 +1440,7 @@
invalid types.
* name-lookup.c (push_class_level_binding): Robustify.
(do_class_using_decl): Return early if name is error_mark_node.
-
+
2006-06-23 Steve Ellcey <sje@cup.hp.com>
PR c++/28114
@@ -1472,7 +1476,7 @@
PR c++/27821
* decl.c (grokdeclarator): Return error_mark_node on
invalid uses of the scope resolution operator.
-
+
2006-06-22 Volker Reichelt <reichelt@igpm.rwth-aachen.de>
PR c++/28111
The results can be reproduced by building a compiler with
--enable-gather-detailed-mem-stats targetting x86-64
and compiling preprocessed combine.c or testcase from PR8632 with:
-fmem-report --param=ggc-min-heapsize=1024 --param=ggc-min-expand=1 -Ox -Q
The memory consumption summary appears in the dump after detailed listing
of the places they are allocated in. Peak memory consumption is actually
computed by looking for maximal value in {GC XXXX -> YYYY} report.
Your testing script.