]> gcc.gnu.org Git - gcc.git/blame - gcc/cp/ChangeLog
c4x.c (c4x_naked_function_p): Rename from c4x_assembler_function_p.
[gcc.git] / gcc / cp / ChangeLog
CommitLineData
8218bd34
MM
12003-01-06 Mark Mitchell <mark@codesourcery.com>
2
4c4646b5
MM
3 * decl2.c (mark_used): Do not synthesize thunks.
4
63e5f567
MM
5 * class.c (layout_class_type): Correct handling of unnamed
6 bitfields wider than their types.
7
8218bd34
MM
8 PR c++/9189
9 * parser.c (cp_parser): Remove default_arg_types. Update
10 documentation for unparsed_functions_queues.
11 (cp_parser_late_parsing_default_args): Take a FUNCTION_DECL as the
12 parameter.
13 (cp_parser_new): Don't set parser->default_arg_types.
14 (cp_parser_function_definition): Adjust usage of
15 unparsed_funtions_queues.
16 (cp_parser_class_specifier): Don't mess with
17 parser->default_arg_types. Handle default argument processing in
18 a separate phase from function body processing.
19 (cp_parser_template_declaration_after_export): Adjust usage of
20 unparsed_functions_queues.
21 (cp_parser_late_parsing_for_member): Do not handle default
22 arguments.
23
62b8a44e
NS
242003-01-06 Nathan Sidwell <nathan@codesourcery.com>
25
26 PR c++/9109
27 * parser.c (cp_parser_declarator_kind): New enum.
28 (cp_parser_declarator): Adjust.
29 (cp_parser_direct_declarator): Adjust. Allow for either named or
30 abstract declarator. Prefer abstract, if possible. Allow
31 parenthesized function name.
32 (cp_parser_condition): Adjust cp_parser_declarator call.
33 (cp_parser_explicit_instantiation): Likewise.
34 (cp_parser_init_declarator): Likewise.
35 (cp_parser_type_id): Likewise.
36 (cp_parser_function_definition): Likewise.
37 (cp_parser_member_declaration): Likewise.
38 (cp_parser_parameter_declaration): Use cp_parser_declarator to do
39 the tentative parsing.
40 (cp_parser_exception_declaration): Likewise.
41
ec194454
MM
422003-01-05 Mark Mitchell <mark@codesourcery.com>
43
44 * parser.c (cp_parser_template_parameter): Adjust call to
45 cp_parser_parameter_declaration.
46 (cp_parser_parameter_declaration_list): Likewise.
47 (cp_parser_parameter_declaration): Replace
48 greater_than_is_operator_p with template_parm_p parameter. Do not
49 cache tokens for template default arguments.
50
51 * pt.c (retrieve_local_specialization): Use htab_find, not
52 htab_find_with_hash.
53 (register_local_specialization): Use htab_find_slot, not
54 htab_find_slot_with_hash.
55 (instantiate_decl): Pass a hash function to htab_create.
56
39b1af70
KG
572003-01-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
58
59 * parser.c (cp_parser_binary_expression,
60 cp_parser_multiplicative_expression,
61 cp_parser_additive_expression, cp_parser_shift_expression,
62 cp_parser_relational_expression, cp_parser_equality_expression,
63 cp_parser_and_expression, cp_parser_exclusive_or_expression,
64 cp_parser_inclusive_or_expression,
65 cp_parser_logical_and_expression, cp_parser_logical_or_expression,
66 cp_parser_binary_expression): Const-ify.
67
1bb2cc34
MM
682003-01-04 Mark Mitchell <mark@codesourcery.com>
69
70 * method.c (use_thunk): Disable access control while building the
71 body of the thunk.
72
3fd5abcf
NN
732003-01-03 Nathanael Nerode <neroden@gcc.gnu.org>
74
75 * cvt.c, decl.c, decl2.c: This is the C++ front end, not the C
76 front end.
77
9aad8f83
MA
782003-01-03 Matt Austern <austern@apple.com>
79
80 * cp-tree.h (struct lang_type_class): add field for key method
81 (cp_global_trees): rename dynamic_classes to keyed_classes
82 (key_method): add definition
83 * class.c (finish_struct_1): compute class's key method, and add
84 the class to keyed_classes list if there is no key method.
85 * decl.c (finish_function): add class to keyed_classes list if we
86 see a definition of the class's key method.
87 * pt.c (instantiate_class_template): add template specialization
88 of a dynamic class to keyed_classes list.
89 * decl2.c (key_method): remove
90 (finish_file): iterate only through keyed_classes list when
91 deciding whether to emit vtables, remove class from its list after
92 we do the emission.
93
6cce57b0
JM
942003-01-02 Jason Merrill <jason@redhat.com>
95
4e8dca1c
JM
96 * call.c (build_conditional_expr): Stabilize lvalues properly.
97 * cvt.c (ocp_convert): Don't build NOP_EXPRs of class type.
98 * tree.c (lvalue_p_1): Don't allow sloppy NOP_EXPRs as lvalues.
99 Don't allow CALL_EXPR or VA_ARG_EXPR, either.
100
101 * call.c (convert_like_real): Call decl_constant_value for an
102 IDENTITY_CONV even if there are no more conversions.
103
104 * cvt.c (build_up_reference): Don't push unnamed temps.
105
106 * decl2.c (do_namespace_alias): Namespace aliases are DECL_EXTERNAL.
107
108 * dump.c (cp_dump_tree): Don't try to dump class-specific fields
109 for a backend struct.
110
111 * except.c (wrap_cleanups_r, build_throw): Make
112 MUST_NOT_THROW_EXPRs void.
113 * init.c (expand_default_init): Update to handle MUST_NOT_THROW_EXPR.
114
115 * init.c (build_vec_delete_1): Pre-evaluate the base address.
116
117 * init.c (get_temp_regvar): Simplify logic.
118
119 * tree.c (cp_copy_res_decl_for_inlining): Only do debug tweaks if
120 our replacement is a decl.
121
6cce57b0
JM
122 * decl.c (cp_make_fname_decl): Push the decls inside the
123 outermost scope.
124
31758337
NS
1252003-01-03 Nathan Sidwell <nathan@codesourcery.com>
126
127 PR c++/45, c++/3784
128 * tree.c (cp_tree_equal, TEMPLATE_PARM_INDEX): The types must be
129 the same too.
130
24c0ef37
GS
1312003-01-03 Graham Stott <graham.stott@btinternet.com>
132
133 * parser.c (struct cp_parser): Add access_checks_lists field
134 (cp_parser_simple_declaration): Use.
135 (cp_parser_init_declarator): Likewise.
136
5e8a153a
MM
1372003-01-02 Mark Mitchell <mark@codesourcery.com>
138
1092805d
MM
139 * parser.c (cp_parser_declaration): Accept the __extension__
140 keyword before the declaration.
141
4971227d
MM
142 PR c++/2843
143 * parser.c (cp_parser_parameter_declaration): Allow attributes to
144 appear after the declarator.
145
5e8a153a
MM
146 * call.c (build_new_method_call): Fix typo in message format
147 string.
148
3beb3abf
MM
1492003-01-02 Mark Mitchell <mark@codesourcery.com>
150
f7b5ecd9
MM
151 * parser.c (cp_lexer_next_token_is): Declare it inline.
152 (cp_lexer_set_source_position_from_token): Likewise.
153 (cp_lexer_debugging_p): Likewise.
154 (cp_parser_parsing_tentatively): Likewise.
155 (cp_parser_nested_name_specifier_opt): Reduce the number of calls
156 to the cp_lexer_peek_token.
1092805d 157
3beb3abf
MM
158 * parser.c (cp_parser_sizeof_operand): Do not evaluate the
159 expression.
160
43c6a96a
SB
1612003-01-02 Steven Bosscher <s.bosscher@student.tudelft.nl>
162
163 * cp/except.c, cp/expr.c, cp/friend.c, cp/g++spec.c,
164 cp/lang-options.h, cp/lang-specs.h, cp/lex.h, cp/ptree.c,
165 cp/repo.c: Fix copyright years.
166
c58b209a
NB
1672003-01-01 Neil Booth <neil@daikokuya.co.uk>
168
169 * lex.c: Remove superfluous include of cpplib.h.
170 (CONSTRAINT): Define without conditions.
171 (init_cp_pragma): Use c_register_pragma.
172
7347c2c5
NB
1732002-12-31 Neil Booth <neil@daikokuya.co.uk>
174
175 * .cvsignore: Remove.
176
f5adbb8d
SB
1772002-12-31 Steven Bosscher <s.bosscher@student.tudelft.nl>
178
179 * call.c, class.c, cp-lang.c, cp-tree.h, cvt.c, dump.c, error.c,
180 except.c, expr.c friend.c, g++spec.c, init.c, lang-options.h,
181 lang-specs.h, lex.c, mangle.c, method.c, optimize.c, parser.c,
182 pt.c, ptree.c, repo.c, rtti.c, search.c, semantics.c, tree.c,
183 typeck.c, typeck2.c: Replace "GNU CC" with "GCC" in the
184 copyright header.
185 * lex.h: parse.y is dead, so don't mention it. Also replace the
186 copyright header with the default GNU copyright header.
187
f1aba0a5
MM
1882002-12-31 Mark Mitchell <mark@codesourcery.com>
189
eea9800f
MM
190 * cp-tree.h (LOOKUP_TEMPLATES_EXPECTED): Remove.
191 (lookup_name_namespace_only): Likewise.
192 (begin_only_namespace_names): Likewise.
193 (end_only_namespace_names): Likewise.
194 * decl.c (only_namespace_names): Remove.
195 (qualify_lookup): Do not check LOOKUP_TEMPLATES_EXPECTED.
196 (lookup_name_real): Do not check only_namespace_names.
197 (lookup_name_namespace_only): Remove.
198 (begin_only_namespace_names): Likewise.
199 (end_only_namespace_names): Likewise.
200 * parser.c (cp_parser_nested_name_specifier_opt): Handle erroneous
201 nested-name-specifiers more gracefully.
202 (cp_parser_class_or_namespace_name): Avoid looking up namespace
203 names when they cannot possibly appear.
204 (cp_parser_template_name): Adjust call to cp_parser_lookup_name.
205 (cp_parser_elaborated_type_specifier): Likewise.
206 (cp_parser_namespace_name): Only look for namespace names.
207 (cp_parser_lookup_name): Add is_namespace parameter.
208 (cp_parser_lookup_name_simple): Adjust call to
209 cp_parser_lookup_name.
210
f1aba0a5
MM
211 * parser.c (cp_parser_dependent_type_p): Fix thinko.
212
eea9800f
MM
2132002-12-31 Neil Booth <neil@daikokuya.co.uk>
214
215 * .cvsignore: Update.
216
3cfabe60
NS
2172002-12-31 Nathan Sidwell <nathan@codesourcery.com>
218
219 * class.c (modify_vtable_entry): Remove unused variable.
220 (get_vcall_index): Always expect a non-thunk.
221 (update_vtable_entry_for_fn): Combine covariant adjustments, when
222 overriding a thunk. Pass get_vcall_index a non-thunk.
223
224 * decl2.c (finish_file): Mark undefined inlines as extern.
225
92bc1323
MM
2262002-12-31 Mark Mitchell <mark@codesourcery.com>
227
228 * cp-tree.def (RETURN_INIT): Remove.
229 * cp-tree.h (DECL_IN_MEMORY_P): Remove.
230 (scope_kind): Add sk_block, sk_try, sk_catch, sk_for.
231 (note_level_for_for): Remove.
232 (note_level_for_try): Likewise.
233 (note_level_for_catch): Likewise.
234 (finish_named_return_value): Likewise.
235 (do_pushlevel): Change prototype.
236 (pending_lang_change): Remove.
237 * decl.c (begin_scope): Handle sk_block, sk_try, sk_catch,
238 sk_for.
239 (note_level_for_for): Remove.
240 (note_level_for_try): Likewise.
241 (note_level_for_catch): Likewise.
242 (maybe_inject_for_scope_var): Remove use of DECL_IN_MEMORY_P.
243 * parser.c (cp_parser_context_free_list): Make it "deletable".
244 (cp_parser_template_argument): Remove misleading comment.
245 * pt.c (tsubst_expr): Remove RETURN_INIT code.
246 * semantics.c (genrtl_named_return_value): Remove.
247 (do_pushlevel): Take a scope kind as an argument.
248 (begin_if_stmt): Adjust.
249 (begin_while_stmt): Likewise.
250 (begin_for_stmt): Likewise.
251 (finish_for_init_stmt): Likewise.
252 (begin_switch_stmt): Likewise.
253 (begin_handler): Likewise.
254 (begin_compound_stmt): Likewise.
255 (finish_named_return_value): Remove.
256 (cp_expand_stmt): Remove RETURN_INIT case.
257 * tree.c (cp_statement_code_p): Remove RETURN_INIT case.
43c6a96a 258
abda8efe
MM
2592002-12-31 Mark Mitchell <mark@codesourcery.com>
260
261 PR c++/9112
262 * parser.c (cp_parser_direct_declarator): Handle erroneous
263 parenthesized declarators correctly.
264
eddcae5a
GDR
2652002-12-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
266
267 * cp-tree.h (pending_lang_change): Declare.
268
c838d82f
MM
2692002-12-30 Mark Mitchell <mark@codesourcery.com>
270
e5976695
MM
271 * parser.c (cp_parser_context_free_list): New variable.
272 (cp_parser_context_new): Use it.
273 (cp_parser_error): Check return code from
274 cp_parser_simulate_error.
275 (cp_parser_simulate_error): Return a value.
276 (cp_parser_id_expression): Optimize common case.
277 (cp_parser_class_name): Likewise.
278 (cp_parser_class_specifier): Adjust call to
279 cp_parser_late_parsing_default_args.
280 (cp_parser_lookup_name): Optimize common case.
281 (cp_parser_late_parsing_for_member): Adjust call to
282 cp_parser_late_parsing_default_args.
283 (cp_parser_late_parsing_default_args): Add scope parameter.
284 (cp_parser_require): Avoid creating the error message unless it's
285 needed.
286 (cp_parser_parse_definitely): Place free'd contexts on the free
287 list.
288
c838d82f
MM
289 * parser.c (cp_parser_declaration_seq_opt): Handle pending_lang_change.
290
c73aecdf
DE
2912002-12-30 David Edelsohn <edelsohn@gnu.org>
292
293 * parser.c (cp_parser_parameter_declaration_clause): Treat system
294 header as extern "C" if NO_IMPLICIT_EXTERN_C undefined.
295
b599b135
NN
2962002-12-30 Nathanael Nerode <neroden@gcc.gnu.org>
297
43c6a96a 298 * config-lang.in, Make-lang.in, operators.def, cp-tree.def:
b599b135
NN
299 GCC, not GNU CC.
300
946d5e45
MM
3012002-12-30 Mark Mitchell <mark@codesourcery.com>
302
afd9b9dd
MM
303 * parse.y: Remove.
304 * spew.c: Likewise.
305 * Make-lang.in (gt-cp-spew.h): Remove.
306 * cp-tree.h (do_pending_lang_change): Remove.
307 (do_identifier): Change prototype.
308 (finish_id_expr): Remove.
309 * decl.c (lookup_name_real): Remove yylex variable.
310 * decl2.c (build_expr_from_tree): Adjust call to do_identifier.
311 * lex.c (init_cpp_parse): Remove.
312 (reduce_cmp): Likewise.
313 (token_cmp): Likewise.
314 (yychar): Likewise.
315 (lastiddecl): Likewise.
316 (token_count): Likewise.
317 (reduce_count): Likewise.
318 (yyhook): Likewise.
319 (print_parse_statistics): Likewise.
320 (do_pending_lang_change): Likewise.
321 (do_identifier): Remove parsing parameter.
322 * lex.h (lastiddecl): Remove.
323 (looking_for_typename): Remove.
324 (looking_for_template): Likewise.
325 (pending_lang_change): Likewise.
326 (yylex): Likewise.
327 * semantics.c (finish_id_expr): Remove.
43c6a96a 328
946d5e45
MM
329 * decl.c (grokdeclarator): Diagnost "extern thread" and "static
330 thread" correctly.
331
1c313945
NN
3322002-12-30 Nathanael Nerode <neroden@gcc.gnu.org>
333
334 * decl.c, decl2.c, decl.h: GCC, not GNU CC. This is the C++ front
335 end, not the C front end.
336
8e268f72
NS
3372002-12-30 Nathan Sidwell <nathan@codesourcery.com>
338
339 * cp-tree.h (THUNK_TARGET): New macro.
340 (THUNK_VIRTUAL_OFFSET): For result thunks it is always a binfo.
341 (finish_thunk): Remove offset parms.
342 * class.c (find_final_overrider): Look through thunks.
343 (get_vcall_index): Use THUNK_TARGET.
344 (update_vtable_entry_for_fn): Look through thunks. Set covariant
345 fixed offset here. Adjust finish_thunk call.
346 (build_vtbl_initializer): Adjust finish_thunk calls.
347 * mangle.c (mangle_call_offset): Remove superfluous if.
348 (mangle_thunk): Adjust.
349 * method.c (make_thunk): Adjust.
350 (finish_thunk): Adjust.
351 (thunk_adjust): Remove assert.
352 (use_thunk): Use THUNK_TARGET
353 * dump1.c (cp_dump_tree): Adjust thunk dumping.
354
355 PR c++/9054
356 * class.c (layout_class_type): Set TYPE_CONTEXT of type for base.
357 * dump.c (cp_dump_tree, RECORD_TYPE): Deal with type for base types.
358
848eed92
GDR
3592002-12-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
360
361 Remove traditional C constructs 4/n.
362 * decl2.c (grok_method_quals, warn_if_unknown_interface,
363 grok_x_components, cp_build_parm_decl, build_artificial_parm,
364 maybe_retrofit_in_chrg, grokclassfn, grok_array_decl,
365 delete_sanity, check_member_template, check_java_method,
366 check_classfn, finish_static_data_member_decl, grokfield,
367 grokbitfield, grokoptypename, grok_function_init,
368 cplus_decl_attributes, constructor_name, defer_fn,
369 build_anon_union_vars, finish_anon_union, coerce_new_type,
370 coerce_delete_type, comdat_linkage, maybe_make_one_only,
371 key_method, import_export_vtable, import_export_class,
372 output_vtable_inherit, import_export_decl, import_export_tinfo,
373 build_cleanup, get_guard, get_guard_bits, get_guard_cond,
374 set_guard, start_objects, finish_objects,
375 start_static_storage_duration_function,
376 finish_static_storage_duration_function, get_priority_info,
377 start_static_initialization_or_destruction,
378 finish_static_initialization_or_destruction,
379 do_static_initialization, do_static_destruction,
380 prune_vars_needing_no_initialization, write_out_vars,
381 reparse_decl_as_expr, finish_decl_parsing, namespace_ancestor,
382 add_using_namespace, merge_functions, ambiguous_decl,
383 lookup_using_namespace, lookup_using_namespace,
384 qualified_lookup_using_namespace, set_decl_namespace,
385 decl_namespace, current_decl_namespace, push_decl_namespace,
386 pop_decl_namespace, push_scope, pop_scope, add_function,
387 arg_assoc_namespace, arg_assoc_template_arg, arg_assoc,
388 lookup_arg_dependent, do_namespace_alias,
389 validate_nonmember_using_decl, do_nonmember_using_decl,
390 do_toplevel_using_decl, do_local_using_decl,
391 do_class_using_decl, do_using_directive, check_default_args,
392 mark_used, handle_class_head): Use C90 prototypings. Use booleans.
393 * parser.c (cp_parser_class_head): Use booleanss.
394 * decl.c (walk_globals, walk_vtables): Likewise.
395 * cp-tree.h (walk_globals_pred, walk_globals_fn, walk_vtables,
396 walk_globals): Change return type from 'int' to 'bool'.
397 * rtti.c (init_rtti_processing, build_headof, throw_bad_cast
398 throw_bad_typeid, get_tinfo_decl_dynamic, typeid_ok_p,
399 build_typeid, tinfo_name, get_tinfo_decl, get_tinfo_ptr,
400 get_typeid, ifnonnull, build_dynamic_cast_1, build_dynamic_cast,
401 qualifier_flags, tinfo_base_init, generic_initializer,
402 ptr_initializer, dfs_class_hint_mark, ptm_initializer,
403 dfs_class_hint_unmark, class_hint_flags, class_initializer,
404 typeinfo_in_lib_p, get_pseudo_ti_init, create_pseudo_type_info,
405 get_pseudo_ti_desc, create_tinfo_types, emit_support_tinfos,
406 unemitted_tinfo_decl_p, emit_tinfo_decl): Likewise.
407 * repo.c (repo_compile_flags, repo_template_declared,
408 repo_template_defined, repo_class_defined, repo_get_id,
409 repo_template_used, repo_vtable_used, repo_inline_used,
410 repo_tinfo_used, repo_template_instantiated, extract_string,
411 open_repo_file, afgets, init_repo, reopen_repo_file_for_write,
412 finish_repo): Likewise.
413 * ptree.c (cxx_print_decl, cxx_print_type, cxx_print_identifier,
414 cxx_print_xnode): Likewise..
415 * cp-lang.c (ok_to_generate_alias_set_for_type, cxx_get_alias_set,
416 cxx_warn_unused_global_decl, cp_expr_size): Likewise.
417 * cxxfilt.c (demangle_it, print_demangler_list, usage,
418 standard_symbol_characters, hp_symbol_characters, main, fatal):
43c6a96a 419 Likewise.
848eed92
GDR
420 (strip_underscore): Change type from 'int' to 'bool'.
421 (main): Use boolean constants.
422
b746c5dc
GDR
4232002-12-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
424
425 Remove traditional C constructs 3/n.
426 * cvt.c (cp_convert_to_pointer, convert_to_pointer_force,
427 build_up_reference, warn_ref_binding, convert_to_reference,
428 convert_from_reference, convert_lvalue, cp_convert, ocp_convert,
429 convert_to_void, convert, convert_force, build_type_conversion,
430 build_expr_type_conversion, type_promotes_to,
431 perform_qualification_conversions): Use C90 prototyping style.
432 * decl2.c (grok_array_decl): Use boolean constant.
433 (delete_sanity): Likewise.
434 * typeck.c (build_unary_op): Likewise.
435 * semantics.c (finish_switch_cond): Likewise.
436 * parser.c (cp_parser_direct_new_declarator): Likewise.
437 * init.c (build_new): Likewise.
438
a723baf1
MM
4392002-12-27 Mark Mitchell <mark@codesourcery.com>
440
441 * Make-lang.in (po-generated): Remove parse.c.
442 (CXX_OBJS): Remove parse.o and spew.o. Add parser.o.
443 ($(srcdir)/cp/parse.h): Remove target.
444 ($(srcdir)/cp/parse.c): Likewise.
445 (gt-cp-parse.h): Likewise.
446 (gt-cp-parser.h): New target.
447 (c++.distclean): Do not remove parse.output.
448 (c++.maintainer-clean): Do not remove parse.c or parse.h.
449 (cp/spew.o): Remove target.
450 (cp/lex.o): Adjust dependencies.
451 (cp/pt.o): Likewise.
452 (cp/parse.o): Likewise.
453 (cp/TAGS): Do not mention parse.c.
454 (cp/parser.o): New target.
455 * NEWS: Mention the new parser.
456 * call.c (build_scoped_method_call): Simplify.
457 (build_method_call): Likewise.
458 (build_new_function_call): Adjust calls to add_function_candidate
459 and add_template_candidate.
460 (build_new_op): Improve handling of erroroneous operands.
461 (convert_default_arg): Remove circular argument processing.
462 (name_as_c_string): New function.
463 (build_new_method_call): Use it.
464 (perform_implicit_conversion): Use error_operand_p.
465 * class.c (finish_struct_anon): Use constructor_name_p.
466 (check_field_decls): Likewise.
467 (pop_nested_class): Use OVL_NEXT, not OVL_CHAIN.
468 (resolve_address_of_overloaded_function): Likewise.
469 (instantiate_type): Tweak pointer-to-member handling.
470 (get_primary_binfo): Remove incorrect assertion.
471 * config-lang.in (gtfiles): Add parser.c, remove parse.c.
472 * cp-tree.h (DEFARG_TOKENS): New macro.
473 (default_arg): New structure.
474 (cp_tree_node_structure_enum): Add TS_CP_DEFAULT_ARG.
475 (lang_tree_node): Add default_arg.
476 (cp_tree_index): Add CPTI_TYPE_INFO_REF_TYPE.
477 (type_info_ref_type): New macro.
478 (saved_scope): Make processing_explicit_instantiation a boolean.
479 (check_access): New field.
480 (unparsed_text): Remove.
481 (language_function): Remove unparsed_inlines.
482 (error_operand_p): New macro.
483 (lang_decl): Adjust pending_inline_info.
484 (DEFARG_POINTER): Remove.
485 (tag_types): Add typenames.
486 (lookup_ualified_name): Declare.
487 (lookup_name_real): Likewise.
488 (shadow_tag): Adjust prototype.
489 (get_scope_of_declarator): Declare it.
490 (process_next_inline): Remove it.
491 (check_for_missing_semicolon): Likewise.
492 (maybe_get_template_decl_from_type_decl): Declare it.
493 (finish_label_stmt): Adjust prototype.
494 (finish_non_static_data_meber): Declare it.
495 (finish_pseudo_destructor_call_expr): Rename to ...
496 (finish_pseudo_destructor_expr): ... this.
497 (finish_compound_literal): Declare it.
498 (begin_inline_definitions): Remove it.
499 (init_spew): Remove.
500 (peekyylex): Likewise.
501 (arbitrate_lookup): Likewise.
502 (frob_opname): Likewise.
503 (maybe_snarf_defarg): Likewise.
504 (add_defarg_fn): Likewise.
505 (do_pending_defargs): Likewise.
506 (done_pending_defargs): Likewise.
507 (unprocessed_defarg_fn): Likewise.
508 (replace_defarg): Likewise.
509 (end_input): Likewise.
510 (get_overloaded_fn): Likewise.
511 * cvt.c (convert_to_reference): Improve error handling.
512 * decl.c (lookup_name_real): Do not declare it static.
513 (maybe_push_to_top_level): Set check_access.
514 (identifier_type_value): Adjust call to lookup_name_real.
515 (lookup_qualified_name): New method.
516 (lookup_name_real): Remove special-case parsing code.
517 (lookup_name-nonclass): Adjust call to lookup_name_real.
518 (lookup_name_namespace_only): Likewise.
519 (lookup_name): Likewise.
520 (check_tag_decl): Return the type declared.
521 (shadow_tag): Likewise.
522 (register_dtor_fn): Tweak check_access.
523 (grokfndecl): Use constructor_name_p.
524 (get_scope_of_declarator): New function.
525 (grokdeclarator): Obscure tweaks for slightly different declarator
526 representations.
527 (start_method): Return error_mark_node to indicate failure.
43c6a96a 528 (cp_tree_node_structure_enum): Use TS_CP_DEFAULT_ARG for DEFAULT_ARGs.
a723baf1
MM
529 * decl2.c (constructor_name_full): Simplify.
530 (constructor_name): Use it.
531 (build_expr_from_tree): Adjust for changes to do new parser.
532 (push_scope): Improve robustness.
533 (validate_nonmember_using_decl): Process declarations, not names.
534 (do_class_using_decl): Likewise.
535 (handle_class_head): Do not mess with CLASSTYPE_DECLARED_CLASS
536 here.
537 * error.c (dump_expr): Handle IDENTIFIER_NODEs and BASELINKs.
538 * expr.c (cxx_expand_expr): Handle BASELINKs.
539 * init.c (member_init_ok_or_else): Issue more errors.
540 (build_offset_ref): Tweak handling of FUNCTION_DECLs.
541 * lex.c: Do not include parse.h.
542 (yypring): Do not declare.
543 (yylval): Likewise.
544 (make_reference_declarator): Remove error-generating code.
545 (rid_to_yy): Remove.
546 (cxx_init): Do not call init_spew.
547 (yypring): Remove.
548 (check_for_missing_semicolon): Remove.
549 * lex.h (got_scope): Remove.
550 (got_object): Remove.
551 * method.c (hack_identifier): Use finish_non_static_data_member.
552 (implicitly_declare_fn): Adjust use of constructor_name.
553 * parser.c: New file.
554 * pt.c (parse.h): Do not include it.
555 (maybe_get_template_decl_from_template): Do not declare it.
556 (finish_member_template_decl): Tweak.
557 (begin_explicit_instantiation): Adjust for
558 processing_explicit_instantiation being boolean.
559 (end_explicit_instantiation): Likewise.
560 (maybe_process_partial_specialization): Tighten specialization
561 test.
562 (retrieve_local_specialization): Adjust ue of hash table.
563 (eq_local_specializations): New function.
564 (register_local_specialization): Likewise.
565 (push_template_decl_real): Remove unnecessary test.
566 (maybe_get_template_decl_from_type_decl): Don't make it static.
567 (for_each_template_parm_r): Handle TYPEOF_TYPE.
568 (tsubst_copy): Use retrieive_local_specialization to handle
569 PARM_DECL. Adjust handling of CONST_DECLs. Handle BASELINKs.
570 Handle COMPONENT_REFs with pseudo-destructor-expressions.
571 Simplify handling of CALL_EXPR and METHOD_CALL_EXPR.
572 (tsubst_expr): Pass decls, not names, to do_local_using_decl.
573 (unify): Tweak handling of CONST_DECLs.
574 (regenerate_decl_from_template): Use push_nested_class.
575 (template_for_substitution): New funciton.
576 (instantiate_decl): Use it. Register parameters as local
577 specializations.
578 * rtti.c (init_rtti_processing): Set type_info_ref_type.
579 (build_typeid): Use it.
580 (get_typeid): Likeise.
581 * search.c (accessible_p): Use check_access, not
582 flag_access_control.
583 (adjust_result_of_qualified_name_lookup): Pay attention to the
584 context_class.
585 * semantics.c (finish_asm_stmt): Adjust error handling.
586 (finish_label_stmt): Return the statement.
587 (finish_non_static_data_member): New function.
588 (finish_class_expr): Handle BASELINKs.
589 (finish_call_expr): Handle PSEUDO_DTOR_EXPR.
590 (finish_object_call_expr): Simplify handling during templates.
591 (finish_pseudo_destructor_call_expr): Rename to ...
592 (finish_pseudo_dtor_expr): ... this.
593 (finish_compound_literal): New function.
594 (begin_inline_definitions): Remove.
595 (finish_sizeof): Remove special template handling.
596 * spew.c: Do not include parse.h.
597 * tree.c (get_overloaded_fn): Remove.
598 * typeck.c (build_class_member_access_expr): Handle
599 PSEUDO_DTOR_EXPR. Adjust handling of static member functions.
600 (lookup_destructor): New function.
601 (finish_class_member_access_expr): Use it.
602 (convert_arguments): Simplify.
603 (build_unary_op): Handle BASELINKs.
43c6a96a 604
aac1406f
NS
6052002-12-26 Nathan Sidwell <nathan@codesourcery.com>
606
eab5474f
NS
607 PR c++/4803
608 * decl2.c (mark_used): Defer inline functions.
609 (finish_file): Merge deferred_fns loops. Check all used
610 inline functions have a definition.
611 * method.c (make_thunk): Thunks are not inline.
612
aac1406f
NS
613 PR c++/5116, c++/764
614 * call.c (build_new_op): Make sure template class operands are
615 instantiated.
616
b9201622
NS
6172002-12-24 Nathan Sidwell <nathan@codesourcery.com>
618
3e14cd30
NS
619 PR C++/7964
620 * cp-tree.h (resolve_scoped_fn_name): Prototype.
621 * call.c (resolve_scoped_fn_name): New function. Deal with
622 more template expansion. Broken out of ...
623 * parse.y (parse_finish_call_expr): ... here. Call it.
624 * decl2.c (build_expr_from_tree, CALL_EXPR): Use
625 resolve_scoped_fn_name and build_call_from_tree.
626
b9201622
NS
627 PR c++/9053
628 * decl.c (duplicate_decls): Templates may be disambiguated by
629 return type.
43c6a96a 630
b9201622
NS
631 PR c++/8702
632 * decl2.c (check_classfn): Use lookup_fnfield_1. List all
633 conversion operators on failure.
634
94be8403
GDR
6352002-12-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
636
b746c5dc
GDR
637 Remove traditional C constructs 2/n.
638 * call.c (tourney, build_field_call, equal_functions, joust,
639 compare_ics, build_over_call, build_java_interface_fn_ref,
640 convert_like_real, op_error, build_object_call, resolve_args,
641 build_vfield_ref, check_dtor_name, build_scoped_method_call,
642 build_addr_func, build_call, build_method_call, null_ptr_cst_p,
643 sufficient_parms_p, build_conv, non_reference, strip_top_quals,
644 standard_conversion, reference_related_p,
645 reference_compatible_p, convert_class_to_reference,
646 direct_reference_binding, reference_binding,
647 ,implicit_conversion, is_complete, promoted_arithmetic_type_p,
648 add_template_conv_candidate, any_viable, any_strictly_viable,
649 build_this, splice_viable, print_z_candidates,
650 build_user_type_conversion, build_new_function_call,
651 conditional_conversion, build_conditional_expr, build_new_op,
652 build_op_delete_call, enforce_access, call_builtin_trap,
653 convert_arg_to_ellipsis, build_x_va_arg, cxx_type_promotes_to,
654 convert_default_arg, type_passed_as, convert_for_arg_passing,
655 in_charge_arg_for_name, is_properly_derived_from,
656 maybe_handle_implicit_object, maybe_handle_ref_bind,
657 source_type, add_warning, can_convert, can_convert_arg,
658 perform_implicit_conversion, can_convert_arg_bad,
659 initialize_reference, add_conv_candidate,
660 add_template_candidate_real, add_template_candidate): Ansify.
94be8403 661
081cebb2
NS
6622002-12-22 Nathan Sidwell <nathan@codesourcery.com>
663
664 PR c++/8572
665 * cp-tree.h (grokoptypename): Add SCOPE parameter.
666 * decl2.c (grokoptypename): Add SCOPE parameter. tsubst the type
667 if in a template scope.
668 * parse.y (unoperator): Return the scope.
669 (operator_name): Adjust grokoptypename call.
670
4f09be91
KL
6712002-12-22 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
672
673 * cp-tree.h (make_unbound_class_template): Use tsubst_flags_t.
674 * decl.c (make_unbound_class_template): Adjust. Check for tf_error.
675 * pt.c (tsubst) [OFFSET_TYPE]: Check for tf_error.
676
4639c5c6
KH
6772002-12-20 Kazu Hirata <kazu@cs.umass.edu>
678
679 * ChangeLog: Fix a typo.
680 * class.c: Fix comment typos.
681 * cp-tree.h: Likewise.
682
0ca7178c
JM
6832002-12-18 Jason Merrill <jason@redhat.com>
684
685 Handle anonymous unions at the tree level.
686 C++ ABI change: Mangle anonymous unions using the name of their
687 first named field (by depth-first search). Should not cause
688 binary compatibility problems, though, as the compiler previously
689 didn't emit anything for affected unions.
690 * cp-tree.def (ALIAS_DECL): New tree code.
691 * decl2.c (build_anon_union_vars): Build ALIAS_DECLs. Return the
692 first field, not the largest.
693 (finish_anon_union): Don't mess with RTL. Do set DECL_ASSEMBLER_NAME,
694 push the decl, and write it out at namespace scope.
695 * decl.c (lookup_name_real): See through an ALIAS_DECL.
696 (pushdecl): Add namespace bindings for ALIAS_DECLs.
697 * rtti.c (unemitted_tinfo_decl_p): Don't try to look at the name
698 of a decl which doesn't have one.
699 * typeck.c (build_class_member_access_expr): Don't recurse if
700 we already have the type we want.
701
da9701a6
KL
7022002-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
703
704 PR c++/8099
705 * friend.c (make_friend_class): Allow partial specialization
706 when declaration is not a template friend.
707
cab7a9a3
KL
7082002-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
709
710 PR c++/3663
711 * pt.c (lookup_template_class): Copy TREE_PRIVATE and
712 TREE_PROTECTED to created decl nodes.
713
50cb9059
MM
7142002-12-18 Mark Mitchell <mark@codesourcery.com>
715
716 * class.c (build_base_field): Do not set DECL_PACKED on the
717 FIELD_DECL.
718
e220f0a4
GDR
7192002-12-18 Gabriel Dos Reis <gdr@integrable-solutions.net>
720
721 * cp-tree.h (struct tree_srcloc): Use location_t.
722 (SOURCE_LOCUS): New.
723 (SRCLOC_FILE, SRCLOC_LINE): Adjust.
724
efc7052d
JM
7252002-12-17 Jason Merrill <jason@redhat.com>
726
727 * decl.c (finish_function): Also complain about no return in
728 templates.
43c6a96a 729 * semantics.c (finish_return_stmt): Also call check_return_expr in
efc7052d
JM
730 templates.
731 * typeck.c (check_return_expr): In a template, just remember that we
732 saw a return.
733
9f175208
JM
7342002-12-16 Jason Merrill <jason@redhat.com>
735
89ea02fb
JM
736 * semantics.c (simplify_aggr_init_exprs_r): Don't change the type
737 of the CALL_EXPR.
738
9f175208
JM
739 * semantics.c (do_pushlevel): Call pushlevel after adding the
740 SCOPE_STMT.
741 (do_poplevel): Call poplevel before adding the SCOPE_STMT.
742 * parse.y (function_body): Go back to using compstmt.
743 * decl.c (pushdecl): Skip another level to get to the parms level.
744
745 * call.c (build_new_method_call): Use is_dummy_object to determine
746 whether or not to evaluate the object parameter to a static member
747 function.
748
4977bab6
ZW
7492002-12-14 Jason Merrill <jason@redhat.com>
750
751 * semantics.c (simplify_aggr_init_exprs_r): Also prepend the
752 return slot for normal functions. Set CALL_EXPR_HAS_RETURN_SLOT_ADDR.
753 * tree.c (build_cplus_new): If the type isn't TREE_ADDRESSABLE,
754 don't bother with an AGGR_INIT_EXPR.
755 (cp_copy_res_decl_for_inlining): If the type isn't TREE_ADDRESSABLE,
756 just generate a new decl normally. Take return slot parm.
757 * cp-tree.h: Adjust prototype.
758
75c525d7
GDR
7592002-12-13 Gabriel Dos Reis <gdr@integrable-solutions.net>
760
761 PR C++/8031
43c6a96a 762 * cvt.c (convert_to_pointer_force): Don't try comparing against
75c525d7
GDR
763 erronous type.
764
8c6ae51f
GK
7652002-12-13 Geoffrey Keating <geoffk@apple.com>
766
767 * cp-tree.h: Have the multiple-include guards around
768 the entire file.
769
4977bab6
ZW
7702002-12-10 David Edelsohn <edelsohn@gnu.org>
771
772 * cp/spew.c (feed_input): Change limit to last_pos and pos to cur_pos
773 for SPEW_DEBUG.
774 (snarf_method): Same.
775 (snarf_defarg): Same.
776
d23faea1
MM
7772002-12-10 Mark Mitchell <mark@codesourcery.com>
778
779 PR c++/8372
780 * pt.c (tsubst_copy): Handle destructor names more correctly.
781
3932057c 7822002-12-10 Matt Austern <austern@apple.com>
d23faea1 783
3932057c 784 * cp-tree.h: get rid of needs_virtual_reinit bit.
43c6a96a 785
dcba9b0f
MM
7862002-12-09 Mark Mitchell <mark@codesourcery.com>
787
43c6a96a 788 * NEWS: Document removal of in-class initialization extension for
dcba9b0f
MM
789 static data members of non-arithmetic, non-enumeration type.
790 * decl.c (check_static_variable_definition): Do not allow that
791 extension.
792 * decl2.c (grokfield): Do not call digest_init when processing
793 templates.
794
42b99e03
KG
7952002-12-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
796
797 * error.c (dump_expr): Fix format specifier warning.
798
6c73ad72
GK
7992002-12-04 Geoffrey Keating <geoffk@apple.com>
800
801 * class.c (finish_struct_1): Correct comment.
802 * cp-tree.c (DECL_SORTED_FIELDS): Likewise.
803
8c048a52
GDR
8042002-12-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
805
806 PR C++/8799
807 * error.c (dump_expr): Don't ever try to dump a non-existent
43c6a96a 808 expression.
8c048a52 809
4977bab6
ZW
8102002-12-03 Nathan Sidwell <nathan@codesourcery.com>
811
812 Implement covariant returns.
813 * cp-tree.h (IS_AGGR_TYPE_2): Remove.
814 (struct lang_decl_flags): Add this_thunk_p flag.
815 Rename vcall_offset to virtual_offset.
816 (struct lang_decl): Rename delta to fixed_offset.
817 (DECL_THIS_THUNK_P, DECL_RESULT_THUNK_P): New #defines.
818 (SET_DECL_THUNK_P): Add THIS_ADJUSTING arg.
819 (THUNK_DELTA, THUNK_VCALL_OFFSET): Rename to ...
820 (THUNK_FIXED_OFFSET, THUNK_VIRTUAL_OFFSET): ... here.
821 (make_thunk): Add this_adjusting arg.
822 (finish_thunk): Declare.
823 (mangle_thunk): Add this_adjusting arg.
824 * class.c (get_vcall_index): Use base function for lookup.
825 (update_vtable_entry_for_fn): Generate covariant thunk.
826 (finish_struct_1): Set DECL_VINDEX to NULL for thunks.
827 (build_vtbl_initializer): Use base function for lookup.
828 Finish covariant thunk here. Adjust thunk generation.
829 * dump.c (cp_dump_tree): Simplify DECL_GLOBAL_[CD]TOR_P handling.
830 Adjust thunk dumping.
831 * mangle.c (mangle_call_offset): New function.
832 (mangle_thunk): Adjust for covariant thunks.
833 * method.c (make_thunk): Adjust. Do not set name here.
834 (finish_thunk): New function. Set name here.
835 (use_thunk): Generate covariant thunks too.
836 (thunk_adjust): New function.
837 * search.c (covariant_return_p): Remove. Fold into ...
838 (check_final_overrider): ... here. Simplify.
839 * semantics.c (emit_associated_thunks): Walk covariant thunk lists.
840
c203334d
JM
8412002-12-03 Jason Merrill <jason@redhat.com>
842
c246c65d
JM
843 PR c++/8674
844 * call.c (build_over_call): Check specifically for TARGET_EXPR
845 when eliding.
846
847 PR c++/8461, c++/8625
848 * call.c (convert_for_arg_passing): Don't mess with error_mark_node.
849 (cp_convert_parm_for_inlining): Remove.
43c6a96a 850 * cp-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
c246c65d
JM
851 Remove.
852 * cp-tree.h (ADDR_IS_INVISIREF): Remove.
853 * except.c (stabilize_throw_expr): Remove ADDR_IS_INVISIREF code.
854
c203334d
JM
855 * call.c (build_user_type_conversion_1): Don't set ICS_BAD_FLAG on
856 an ambiguous conversion.
857
ee7ecb29
MM
8582002-12-03 Mark Mitchell <mark@codesourcery.com>
859
860 PR c++/8688
861 * decl.c (reshape_init): Handle erroneous initializers.
862
5089de93
MM
8632002-12-02 Mark Mitchell <mark@codesourcery.com>
864
865 PR c++/8720
866 * spew.c (remove_last_token): Make sure that last_chunk is set
867 correctly.
868
869 PR c++/8615
870 * error.c (dump_expr): Handle character constants with
871 TREE_OVERFLOW set.
43c6a96a 872
218e0eb6
KL
8732002-12-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
874
875 DR 180
876 * decl.c (grokdeclarator): Require class-key for all friend class.
877 Output the correct type and context in the error message.
878
a82d6da5
MM
8792002-12-01 Mark Mitchell <mark@codesourcery.com>
880
94fc547c
MM
881 PR c++/5919
882 * pt.c (unify): Use variably_modified_type_p to test validity of
883 template argument types.
43c6a96a 884
a82d6da5
MM
885 PR c++/8727
886 * cp-tree.h (lang_type_class): Add typeinfo_var.
887 (CLASSTYPE_TYPEINFO_VAR): New macro.
888 * rtti.c (get_tinfo_decl): Use it.
889
890 PR c++/8663
891 * init.c (expand_member_init): Always get the main variant of a
892 base class.
893
c9f8536c
MM
8942002-12-01 Mark Mitchell <mark@codesourcery.com>
895
896 PR c++/8332
897 PR c++/8493
898 * decl.c (cxx_init_decl_processing): Use size_type_node, not
899 c_size_type_node.
900 * decl2.c (coerce_new_type): Likewise.
901 * except.c (do_allocate_exception): Likewise.
902
4977bab6
ZW
9032002-11-30 Zack Weinberg <zack@codesourcery.com>
904
905 * call.c, class.c, cp-lang.c, cvt.c, cxxfilt.c, decl.c, decl2.c,
906 dump.c, error.c, except.c, expr.c, friend.c, g++spec.c, init.c,
907 lex.c, mangle.c, method.c, optimize.c, parse.y, pt.c, ptree.c,
908 repo.c, rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c,
909 typeck2.c: Include coretypes.h and tm.h.
910 * Make-lang.in: Update dependencies.
911
c17707f1
MM
9122002-11-30 Mark Mitchell <mark@codesourcery.com>
913
328de7c2
MM
914 PR c++/8227
915 * decl.c (layout_var_decl): Deal gracefully with erroneous types.
916 (check_initializer): Validate the type of the initialized
917 variable, even if the initializer is absent.
918 * typeck.c (cp_type_quals): Deal gracefully with erroneous types.
43c6a96a 919
c17707f1
MM
920 PR c++/8214
921 * typeck.c (convert_for_assignment): Do not use
922 decl_constant_value on the operand.
923
65f8b0fb
MM
924 PR c++/8511
925 * pt.c (instantiate_decl): Handle template friends defined outside
926 of the class correctly.
927
f6a83eb0
JB
9282002-11-29 Joe Buck <jbuck@synopsys.com>
929
930 * parse.y (class_head_defn): Set CLASSTYPE_DECLARED_CLASS for
931 anonymous structs.
43c6a96a 932
ff944b49
MM
9332002-11-29 Mark Mitchell <mark@codesourcery.com>
934
935 * class.c (walk_subobject_offsets): Recur on binfos as well as on
936 types.
937 (layout_nonempty_base_or_field): Pass it a binfo when processing a
938 base class.
939 (layout_empty_base): Likewise.
940 (build_base_field): Likewise.
43c6a96a 941
21b3d0ba
MM
9422002-11-27 Mark Mitchell <mark@codesourcery.com>
943
944 * class.c (build_base_field): Make sure we get the canonical base
945 when descending through primary bases.
946
a16f2357
GK
9472002-11-26 Geoffrey Keating <geoffk@apple.com>
948
949 * decl.c (check_initializer): Don't error on initialisation of
950 a scalar with a brace-enclosed expression.
951
688f6688
NS
9522002-11-26 Nathan Sidwell <nathan@codesourcery.com>
953
954 * cp-tree.h (DECL_LANG_FLAG_4): Document more uses.
955 (template_parms_equal): Remove prototype.
956 * typeck.c (buuld_indirect_ref): Reformat.
957
4977bab6
ZW
9582002-11-25 Jason Merrill <jason@redhat.com>
959
960 * init.c (build_vec_init): Use a FOR_STMT instead of an IF_STMT
961 and a DO_STMT.
962
b82ddab4
MM
9632002-11-25 Mark Mitchell <mark@codesourcery.com>
964
2003cd37
MM
965 * tree.c (cp_build_qualified_type_real): Correct handling of
966 array types.
967 * class.c (walk_subobject_offsets): Fix thinko.
968 (build_base_field): Record offsets of empty bases in primary
969 virtual bases.
970 (layout_class_type): Record offsets of empty bases in fields.
43c6a96a 971
b82ddab4
MM
972 * search.c (is_subobject_of_p_1): Fix thinko.
973 (lookup_field_queue_p): Likewise.
974
8a874cb4
MM
9752002-11-24 Mark Mitchell <mark@codesourcery.com>
976
977 * class.c (layout_class_type): Reuse tail padding when laying out
978 virtual bases.
979
05abed76
MM
9802002-11-22 Mark Mitchell <mark@codesourcery.com>
981
982 * rtti.c (qualifier_flags): Fix thinko.
983
4977bab6
ZW
9842002-11-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
985
986 Remove traditional C constructs 1/n.
987 * cp-tree.h (init_method, set_mangled_name_for_decl,
988 build_opfncall, hack_identifier, make_thunk, use_thunk,
989 synthesize_method, implicitly_declare_fn,
990 skip_artificial_parms_for, optimize_function, calls_setjmp_p,
991 maybe_clone_body): Remove use of PARAMS.
992
993 * method.c (do_build_assign_ref, do_build_copy_constructor,
994 synthesize_exception_spec, locate_dtor, locate_ctor, locate_copy):
995 Likewise.
996 (synthesize_method): Use 'bool' type and constants instead of
997 'int'.
998 (locate_copy): Likewise.
999 (implicitly_declare_fn): Likewise.
1000
1001 * optimize.c (calls_setjmp_r, update_cloned_parm, dump_function):
1002 Remove old-style declaration.
1003 (maybe_clone_body): Use 'bool' type and constants.
1004
1c83ea9f
GN
10052002-11-21 Glen Nakamura <glen@imodulo.com>
1006
1007 PR c++/8342
1008 * typeck.c (get_member_function_from_ptrfunc): Make sure that a
1009 SAVE_EXPR for instance_ptr doesn't get evaluated first inside one
1010 of the branches of a COND_EXPR.
1011
ad2ae3b2
MM
10122002-11-19 Mark Mitchell <mark@codesourcery.com>
1013
1014 * pt.c (for_each_template_parm): Free allocated memory.
1015 * search.c (is_subobject_of_p_1): New function.
1016 (is_subobject_of_p): Avoid walking virtual bases multiple times.
1017
f3226a90
JT
10182002-11-19 Jason Thorpe <thorpej@wasabisystems.com>
1019
1020 * g++spec.c (lang_specific_spec_functions): New.
1021
90024bdc
KH
10222002-11-15 Kazu Hirata <kazu@cs.umass.edu>
1023
1024 * ChangeLog: Follow spelling conventions.
1025 * class.c: Likewise.
1026 * decl2.c: Likewise.
1027
fa7b533b
ZW
10282002-11-14 Zack Weinberg <zack@codesourcery.com>
1029
1030 * search.c (dfs_push_decls): Do not try to reorder elements
1031 3..n of method_vec if method_vec has only two elements.
1032 Reverse order of two tests to avoid accessing unallocated
1033 memory.
1034
95675950
MM
10352002-11-14 Mark Mitchell <mark@codesourcery.com>
1036
1037 * class.c (dfs_find_final_overrider): Adjust so that the most
1038 derived object is a binfo, rather than a class type.
1039 (find_final_overrider): Likewise.
1040 (add_vcall_offset_vtbl_entries_1): Simplify accordingly.
1041 (add_vcall_offset): Likewise.
1042
5c74d5b0
KL
10432002-11-09 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1044
1045 PR c++/8389
1046 * pt.c (instantiate_template): Push class scope for member
1047 functions.
1048 (get_mostly_instantiated_function_type): Likewise. Don't call
1049 tsubst on context. Remove CONTEXTP and TPARMSP parameters.
1050 * cp-tree.h (get_mostly_instantiated_function_type): Adjust.
1051 * mangle.c (write_encoding, write_unqualified_name): Adjust.
1052
4f2c9d7e
MM
10532002-11-07 Mark Mitchell <mark@codesourcery.com>
1054
e6a66567
MM
1055 * class.c (add_vcall_offset_vtbl_entries_1): Correct ordering of
1056 vcall offfsets. Split out ...
1057 (add_vcall_offset): ... new function.
1058
4f2c9d7e
MM
1059 PR c++/8338
1060 * pt.c (for_each_template_parm): Add htab parameter.
1061 (process_partial_specialization): Adjust call.
1062 (push_template_decl_real): Likewise.
1063 (pair_fn_data): Add visited.
1064 (for_each_template_parm_r): Avoid walking duplicates more than
1065 once.
1066 (uses_template_parms): Adjust call to for_each_template_parm.
1067
f72ab53b
MM
10682002-11-07 Mark Mitchell <mark@codesourcery.com>
1069
1070 * class.c (add_implicitly_declared_members): Put implicitly
1071 declared functions at the end of TYPE_METHODs when -fabi-version
1072 is at least 2.
1073
0a288b9a
GK
10742002-11-05 Geoffrey Keating <geoffk@apple.com>
1075
1076 * decl2.c (finish_file): Correct spelling.
1077
548502d3
MM
10782002-11-03 Mark Mitchell <mark@codesourcery.com>
1079
1080 * call.c (build_special_member_call): Do not try to lookup VTTs by
1081 name.
1082 * class.c (vtbl_init_data): Add generate_vcall_entries.
1083 (get_vtable_decl): Do not look up virtual tables by name.
1084 (copy_virtuals): Do not use BV_USE_VCALL_INDEX_P.
1085 (set_primary_base): Do not set CLASSTYPE_RTTI.
1086 (determine_primary_base): Likewise.
1087 (get_matching_virtual): Remove.
1088 (get_vcall_index): New function.
1089 (update_vtable_entry_for_fn): Do not try to use virtual thunks
1090 when they are not required. Assign vcall indices at this point.
1091 (finish_struct_1): Do not set CLASSTYPE_NEEDS_VIRTUAL_REINIT.
1092 Do update dynamic_classes.
1093 (build_vtt): Do not add VTTs to the symbol table.
1094 (build_ctor_vtbl_group): Likewise.
1095 (build_vtbl_initializer): Simplify handling of vcall indices.
1096 (build_vcall_offset_vtbl_entries): Pretend to build vcall offsets
1097 for the most derived class.
1098 (add_vcall_offset_vtbl_entries_1): But do not actually add them to
1099 the vtable.
1100 * cp-tree.h (dynamic_classes): New macro.
1101 (lang_type_class): Remove rtti. Add vtables. Add vcall_indices.
1102 (CLASSTYPE_RTTI): Remove.
1103 (CLASSTYPE_NEEDS_VIRTUAL_REINIT): Remove.
1104 (CLASSTYPE_VCALL_INDICES): New macro.
1105 (CLASSTYPE_VTABLES): Likewise.
1106 (BV_USE_VCALL_INDEX_P): Remove.
1107 (build_vtable_path): Remove.
1108 * decl2.c (finish_vtable_vardecl): Remove.
1109 (key_method): Remove #if 0'd code.
1110 (finish_vtable_vardecl): Rename to ...
1111 (maybe_emit_vtables): ... this.
1112 (finish_file): Use it.
1113 * search.c (look_for_overrides_here): Update comment.
1114
04d57dd5
ZW
11152002-11-01 Zack Weinberg <zack@codesourcery.com>
1116
1117 PR c/7353 redux
1118 * decl2.c (grokfield): Reject TYPE_DECLs with initializers.
1119
bab076f7
JM
11202002-10-30 Jason Merrill <jason@redhat.com>
1121
1122 PR c++/8186
1123 * cp-tree.h (ADDR_IS_INVISIREF): New macro.
1124 * call.c (convert_for_arg_passing): Set it.
1125 * except.c (stabilize_throw_expr): Recurse for such an arg.
1126
14b4829d
MM
11272002-10-31 Mark Mitchell <mark@codesourcery.com>
1128
1129 * cp-tree.h (lang_decl_flags): Remove init_priority.
1130 (lang_decl): Add delta.
1131 (GLOBAL_INIT_PRIORITY): Remove.
1132 (THUNK_DELTA): Revise definition.
1133 * decl2.c (start_objects): Don't set GLOBAL_INIT_PRIORITY.
1134 * dump.c (cp_dump_tree): Don't dump it.
1135
8c081e84
MM
11362002-10-30 Mark Mitchell <mark@codesourcery.com>
1137
1138 PR c++/8160
1139 * typeck2.c (process_init_constructor): Call complete_array_type.
1140
1141 PR c++/8149
1142 * decl.c (make_typename_type): Issue errors about invalid results.
04d57dd5 1143
7088fca9
KL
11442002-10-30 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1145
1146 Core issue 287, PR c++/7639
1147 * cp-tree.h (lang_type_class): Add decl_list field.
1148 (CLASSTYPE_DECL_LIST): New macro.
1149 (maybe_add_class_template_decl_list): Add declaration.
1150 * class.c (duplicate_tag_error): Initialize CLASSTYPE_DECL_LIST.
1151 (unreverse_member_declarations): Reverse CLASSTYPE_DECL_LIST.
1152 (maybe_add_class_template_decl_list): New function.
1153 (add_implicitly_declared_members): Use it.
1154 * decl.c (maybe_process_template_type_declaration): Likewise.
1155 (pushtag): Likewise.
1156 * friend.c (add_friend): Likewise.
1157 (make_friend_class): Likewise.
1158 * semantics.c (finish_member_declaration): Likewise.
1159 (begin_class_definition): Initialize CLASSTYPE_DECL_LIST.
1160 * pt.c (instantiate_class_template): Use CLASSTYPE_DECL_LIST
1161 to process members and friends in the order of declaration.
1162
5633b37c
MM
11632002-10-29 Mark Mitchell <mark@codesourcery.com>
1164
1165 PR c++/8287
1166 * decl.c (finish_destructor_body): Create the label to jump to
1167 when returning from a destructor here.
1168 (finish_function_body): Rather than here.
1169
f65e1183
ZW
11702002-10-25 Zack Weinberg <zack@codesourcery.com>
1171
1172 PR c++/7266
1173 * decl.c (grokdeclarator): Check that TREE_OPERAND 0 of a
1174 SCOPE_REF is not null before dereferencing it.
1175
bb5e8a7f
MM
11762002-10-25 Mark Mitchell <mark@codesourcery.com>
1177
e93ee644
MM
1178 * call.c (build_over_call): Use DECL_CONTEXT, not
1179 DECL_VIRTUAL_CONTEXT.
1180 * class.c (modify_vtable_entry): Don't mess with
1181 DECL_VIRTUAL_CONTEXT.
1182 (set_vindex): Remove.
1183 (set_primary_base): Remove vfuns_p parameter.
1184 (determine_primary_base): Likewise.
1185 (modify_all_vtables): Likewise.
1186 (layout_class_type): Likewise. Adjust calls to other functions
1187 accordingly.
1188 (finish_struct_1): Adjust calls to modified functions. Set
1189 DECL_VINDEX here.
1190 * cp-tree.h (lang_type_class): Remove vsize.
1191 (CLASSTYPE_VSIZE): Remove.
1192 (lang_decl): Remove thunks.
1193 (DECL_THUNKS): Adjust.
1194 (DECL_VIRTUAL_CONTEXT): Remove.
1195 (duplicate_decls): Don't copy it.
1196 * pt.c (build_template_decl): Don't set it.
1197 (tsubst_decl): Likewise.
1198 * typeck.c (expand_ptrmemfunc_cst): Don't use it.
04d57dd5 1199
bb5e8a7f
MM
1200 * class.c (build_vtbl_initializer): Don't use build_vtable_entry.
1201 (build_vtable_entry): Remove.
1202 * cp-tree.h (BINFO_VIRTUALS): Expand documentation.
1203 (lang_decl): Add thunks.
1204 (DECL_THUNKS): New macro.
1205 * decl.c (duplicate_decls): Copy it.
1206 * method.c (make_thunk): Simplify, and add thunks to DECL_THUNKS.
1207 * semantics.c (emit_associated_thunks): Simplify.
f65e1183 1208
6eb35968
DE
12092002-10-24 David Edelsohn <edelsohn@gnu.org>
1210
1211 PR c++/7228
1212 * cp-tree.h (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Check that
1213 lang_type structure exists before accessing field.
1214 (SET_CLASSTYPE_READONLY_FIELDS_NEED_INIT): New macro.
1215 (CLASSTYPE_REF_FIELDS_NEED_INIT): Similar.
1216 (SET_CLASSTYPE_REF_FIELDS_NEED_INIT): New macro.
1217 * class.c (check_field_decls): Use new macros.
1218 * typeck2.c (process_init_constructor): Remove redundant check for
1219 existence of lang_type structure.
1220
0cee073d
MM
12212002-10-24 Mark Mitchell <mark@codesourcery.com>
1222
ba9a991f
MM
1223 * class.c (end_of_base): New method.
1224 (end_of_class): Use it. Check indirect virtual bases.
1225
0cee073d
MM
1226 * class.c (check_field_decls): Fix typo.
1227
e6f052b7
MM
12282002-10-23 Mark Mitchell <mark@codesourcery.com>
1229
6b607ffd
MM
1230 PR c++/8067
1231 * decl.c (maybe_inject_for_scope_var): Ignore __FUNCTION__ and
1232 related variables.
1233
e6f052b7
MM
1234 PR c++/7679
1235 * spew.c (next_token): Do not return an endless stream of
1236 END_OF_SAVED_INPUT tokens.
1237 (snarf_method): Add three END_OF_SAVED_INPUT tokens to the end of
1238 the cached token stream.
1239 (snarf_defarg): Likewise.
1240
8bcefb43
ZW
12412002-10-23 Zack Weinberg <zack@codesourcery.com>
1242
1243 * cp-lang.c (cp_var_mod_type_p): New: C++ hook for
1244 variably_modified_type_p.
1245 * cp-tree.h: Remove prototype of variably_modified_type_p.
1246 * tree.c (variably_modified_type_p): Remove; now implemented
1247 in language-independent code.
1248
ad4f9910
MM
12492002-10-22 Mark Mitchell <mark@codesourcery.com>
1250
1251 PR c++/6579
1252 * spew.c (snarf_parenthesized_expression): New function.
1253 (snarf_block): Use it.
1254
3961e8fe
RH
12552002-10-22 Richard Henderson <rth@redhat.com>
1256
1257 * method.c (use_thunk): Always compute vcall_value; assert that
1258 it is not zero. Use can_output_mi_thunk; use output_mi_thunk
1259 for vcall thunks as well.
1260
5ec1192e
MM
12612002-10-21 Mark Mitchell <mark@codesourcery.com>
1262
7ba539c6
MM
1263 * class.c (empty_base_at_nonzero_offset_p): New function.
1264 (layout_nonempty_base_or_field): Do not check for conflicts when
1265 laying out a virtual base using the GCC 3.2 ABI.
1266 (build_base_field): Correct checking for presence of empty classes
90024bdc 1267 at nonzero offsets when clearing CLASSTYPE_NEARLY_EMPTY_P.
7ba539c6 1268
e3ccdd50
MM
1269 * class.c (include_empty_classes): Use normalize_rli.
1270 (layout_class_type): Likewise.
1271
42328048
MM
1272 * decl.c (reshape_init): Tweak handling of character arrays.
1273
5ec1192e
MM
1274 PR c++/8218
1275 * cp-tree.h (lang_type_class): Add contains_empty_class_p.
1276 (CLASSTYPE_CONTAINS_EMPTY_CLASS_P): New macro.
1277 * class.c (check_bases): Update CLASSTYPE_CONTAINS_EMPTY_CLASS_P.
1278 (check_field_decls): Likewise.
1279 (layout_class_type): Likewise.
1280 (finish_struct_1): Initialize it.
1281 (walk_subobject_offsets): Use it to prune searches.
1282
eb0424da
MM
12832002-10-20 Mark Mitchell <mark@codesourcery.com>
1284
1285 * method.c (use_thunk): Compute the vcall index as a HOST_WIDE_INT.
1286 * optimize.c (optimize_function): Replace ASM_OUTPUT_MI_THUNK with
1287 TARGET_ASM_OUTPUT_MI_THUNK in comments.
8bcefb43 1288
4a7510cb
ZW
12892002-10-18 Zack Weinberg <zack@codesourcery.com>
1290
1291 * decl.c (start_decl): Point users of the old initialized-
1292 typedef extension at __typeof__.
1293
483ab821
MM
12942002-10-18 Mark Mitchell <mark@codesourcery.com>
1295
1296 * Make-lang.in (method.o): Depend on TARGET_H.
1297 * method.c (target.h): Include it.
1298 (use_thunk): Use target hooks. Use vcall thunks, if available.
1299
e4f4feba
MM
13002002-10-18 Mark Mitchell <mark@codesourcery.com>
1301
1302 * class.c (base_derived_from): Make sure return value is a bool.
1303
9368208b
MM
13042002-10-18 Mark Mitchell <mark@codesourcery.com>
1305
1306 * class.c (find_final_overrider_data_s): Remove overriding_fn and
1307 overriding_base.
1308 (dfs_base_derived_from): New function.
1309 (base_derived_from): Likewise.
1310 (dfs_find_final_overrider): Use base_derived_from.
1311 (find_final_overrider): Adjust.
1312
5275f2bf
JM
13132002-10-18 Jason Merrill <jason@redhat.com>
1314
1315 PR c++/8080
1316 * semantics.c (finish_for_cond, finish_while_cond): Don't mess
1317 with condition decls in a template.
1318
8a188e24
NS
13192002-10-17 Nathan Sidwell <nathan@codesourcery.com>
1320
1321 * class.c (add_method): Compare template parms too.
1322
b216f69b
MM
13232002-10-17 Mark Mitchell <mark@codesourcery.com>
1324
982216be
MM
1325 PR c++/7584
1326 * class.c (handle_using_decl): Allow the declaration used to be
1327 from an ambiguous base.
1328
d768a589
MM
1329 * pt.c (convert_template_argument): Revert this change:
1330 2002-10-16 Mark Mitchell <mark@codesourcery.com>
1331 * pt.c (convert_template_argument): Do not fold non-type
1332 template rguments when inside a template.
1333
b216f69b
MM
1334 * init.c (expand_default_init): Handle brace-enclosed initializers
1335 correctly.
1336
2303a079
MM
13372002-10-16 Mark Mitchell <mark@codesourcery.com>
1338
d3133e68
MM
1339 * mangle.c (write_expression): Correct handling of enumeration
1340 constants.
1341 (write_template_arg): Likewise.
1342 * pt.c (convert_template_argument): Do not fold non-type template
1343 arguments when inside a template.
1344
2303a079
MM
1345 PR c++/7478
1346 * cvt.c (convert_to_reference): Allow references as the incoming
1347 type.
1348
451c0899
MM
13492002-10-16 Mark Mitchell <mark@codesourcery.com>
1350
1351 PR c++/7524
1352 * method.c (do_build_assign_ref): Use cp_build_qualified_type, not
1353 build_qualified_type.
1354
da6eec72
RH
13552002-10-15 Richard Henderson <rth@redhat.com>
1356
1357 * error.c (dump_expr): Use real_to_decimal directly, and with
1358 the new arguments.
1359
3fa3c4bd
MM
13602002-10-15 Mark Mitchell <mark@codesourcery.com>
1361
1362 * decl.c (reshape_init): Fix typo.
1363
1364 * cp-tree.h (operator_name_info_t): Add arity.
1365 * lex.c (init_operators): Initialize it.
1366 * mangle.c (write_conversion_operator_name): New function.
1367 (write_unqualified_name): Use it.
1368 (write_template_args): Accept template arguments as a TREE_LIST.
1369 (write_expression): Adjust handling of qualified names to match
1370 specification.
1371
1a55127d
JM
13722002-10-15 Jason Merrill <jason@redhat.com>
1373
1374 * call.c (call_builtin_trap): New fn.
1375 (convert_arg_to_ellipsis): Use it. Downgrade error to warning.
1376 (build_call): Don't set current_function_returns_abnormally outside
1377 a function.
1378
58731fd1
MM
13792002-10-14 Mark Mitchell <mark@codesourcery.com>
1380
1381 * class.c (check_field_decls): Remove empty_p parameter. Instead,
1382 clear CLASSTYPE_EMPTY_P.
1383 (build_base_field): Likewise.
1384 (build_base_fields): Likewise.
1385 (check_bases_and_members): Likewise.
1386 (create_vtbl_ptr): Likewise.
1387 (layout_class_type): Likewise. Ensure that empty classes have
1388 size zero when used as base classes in the 3.2 ABI.
1389 (finish_struct_1): Initialize CLASSTYPE_EMPTY_P and
1390 CLASSTYPE_NEARLY_EMPTY_P. Adjust calls to avoid passing empty_p
1391 parameter.
1392 (is_empty_class): Correct definition when using post-3.2 ABI.
1393 * cp-tree.h (lang_type_class): Add empty_p.
1394 (CLASSTYPE_EMPTY_P): New macro.
1395
6742d92b
NS
13962002-10-12 Nathan Sidwell <nathan@codesourcery.com>
1397
1398 * init.c (build_delete): Do not apply save_expr for arrays.
1399 (build_vec_delete): Likewise.
1400
77631fa7
MM
14012002-10-14 Mark Mitchell <mark@codesourcery.com>
1402
4a7510cb 1403 * decl.c (layout_var_decl): Call layout_decl even for variables
7de85f7e
MM
1404 whose type is an array with unspecified bounds.
1405
77631fa7
MM
1406 PR c++/7176
1407 * lex.c (do_identifier): Add another option for the parsing
1408 parameter.
1409 * parse.y (do_id): Use it.
1410
2ee366b5
GDR
14112002-10-11 Gabriel Dos Reis <gdr@integrable-solutions.net>
1412
1413 PRs C++/6803, C++/7721 and C++/7803
1414 * decl.c (grokdeclarator): Gracefully handle template-name as
1415 decl-specifier.
1416
01c3fb15
JM
14172002-10-11 Jason Molenda <jmolenda@apple.com>
1418
1419 * init.c (build_field_list): Provide uses_unions_p with a default
1420 value.
1421
8e3df2de
MM
14222002-10-11 Mark Mitchell <mark@codesourcery.com>
1423
dac45b5c
MM
1424 PR c++/5661
1425 * cp-tree.h (variably_modified_type_p): New function.
1426 (grokdeclarator) Tighten check for variably modified types as
1427 fields.
1428 * pt.c (convert_template_argument): Do not allow variably modified
1429 types as template arguments.
4a7510cb 1430 * tree.c (variably_modified_type_p): New function.
dac45b5c 1431
8e3df2de
MM
1432 * NEWS: Document removal of "new X = ..." extension.
1433 * class.c (initialize_array): Set TREE_HAS_CONSTRUCTOR on
1434 brace-enclosed initializers.
1435 * cp-tree.h (CP_AGGREGATE_TYPE_P): New macro.
1436 (initialize_local_var): Remove declaration.
1437 (expand_static_init): Likewise.
1438 * decl.c (next_initializable_field): New function.
1439 (reshape_init): Likewise.
1440 (check_initializer): Use them. Build dynamic initializer for
1441 aggregates here too.
1442 (initialize_local_var): Simplify, and incorporate cleanup
1443 insertion code as well.
1444 (destroy_local_var): Remove.
1445 (cp_finish_decl): Tidy.
1446 (expand_static_init): Fold checks for whether or not a variable
1447 needs initialization into this function. Simplify.
1448 * decl2.c (do_static_initialization): Simplify.
1449 * init.c (build_init): Do not set TREE_SIDE_EFFECTS when it will
1450 be done for us automatically.
1451 (expand_default_init): Handle brace-enclosed initializers
1452 correctly.
1453 (expand_aggr_init_1): Remove RTL-generation code.
1454 (build_vec_init): Remove "new X = ..." support.
1455 * parse.y (new_initializer): Likewise.
1456 * rtti.c (get_pseudo_ti_init): Set TREE_HAS_CONSTRUCTOR on
1457 brace-enclosed initializer.
1458 (create_pseudo_type_info): Likewise.
1459 * typeck2.c (store_init_value): Don't try to handle digest_init
1460 being called more than once.
1461 (digest_init): Tidy handling of brace-enclosed initializers.
01c3fb15 1462
7bdfd72e
KG
14632002-10-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1464
1465 * decl.c (typename_hash): Use htab_hash_pointer.
1466
e89fe41c
JW
14672002-10-10 Jim Wilson <wilson@redhat.com>
1468
1469 * decl.c (duplicate_decls): Don't call decl_attributes.
1470
95f79357
ZW
14712002-10-09 Zack Weinberg <zack@codesourcery.com>
1472
85cd7be8 1473 PR c/7353
95f79357
ZW
1474 * decl.c (start_decl): Unconditionally issue error for
1475 'typedef foo = bar'.
1476 (cp_finish_decl): Remove special case for TYPE_DECL with initializer.
1477 (grokdeclarator): Remove redundant error for 'typedef foo = bar'.
1478
10a38dba
KG
14792002-10-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1480
1481 * decl2.c (prune_vtable_vardecl): Delete unused function.
1482
edebf865
MM
14832002-10-03 Mark Mitchell <mark@codesourcery.com>
1484
1485 PR c++/7754
1486 * decl2.c (finish_anon_union): Do not expand anonymous unions when
1487 procesing template functions.
1488 * pt.c (tsubst_decl, case VAR_DECL): Try to complete the variable
1489 type. Call layout_decl.
1490 (tsubst_expr, case DECL_STMT): Handle anonymous unions.
1491
01f4137f
RH
14922002-10-07 Richard Henderson <rth@redhat.com>
1493
1494 * decl2.c, pt.c: Revert c++/7754 fix.
1495
eb55ce4b
KL
14962002-10-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1497
1498 PR c++/7804
1499 * error.c (dump_expr) [REAL_CST]: Output in decimal format.
1500
bd9bb3d2
MM
15012002-10-03 Mark Mitchell <mark@codesourcery.com>
1502
43c6a96a 1503 PR c++/7931
bd9bb3d2
MM
1504 * pt.c (for_each_template_parm_r): Handle BASELINKs.
1505
1506 PR c++/7754
1507 * decl2.c (finish_anon_union): Do not expand anonymous unions when
1508 procesing template functions.
1509 * pt.c (tsubst_decl, case VAR_DECL): Try to complete the variable
1510 type. Call layout_decl.
1511 (tsubst_expr, case DECL_STMT): Handle anonymous unions.
1512
6397d80b
MM
15132002-10-03 Mark Mitchell <mark@codesourcery.com>
1514
1515 PR c++/8006
1516 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Handle instances of template
1517 template parameters.
1518 (globals): Add entity and need_abi_warning.
1519 (decl_is_template_id): Use TYPE_TEMPLATE_INFO, not
1520 CLASSTYPE_TEMPLATE_INFO.
1521 (is_std_substitution): Use CLASSTYPE_TI_TEMPLATE, not
1522 TYPE_TI_TEMPLATE.
1523 (write_prefix): Handle typename types correctly.
1524 (write_template_prefix): Handle template template parameters
1525 correctly.
1526 (start_mangling): Add entity parameter.
1527 (finish_mangling): Warn about names whose mangling will change.
1528 (mangle_decl_string): Adjust.
1529 (mangle_type_string): Likewise.
1530 (mangle_special_for_type): Likewise.
1531 (mangle_ctor_vtbl_for_type): Likewise.
1532 (mangle_thunk): Likewise.
1533 (mangle_guard_variable): Likewise.
1534 (mangle_ref_init_variable): Likewise.
1535
2282d28d
MM
15362002-10-02 Mark Mitchell <mark@codesourcery.com>
1537
1538 PR c++/7188.
1539 * cp-tree.def (CTOR_INITIALIZER): Use one slot, not two.
1540 * cp-tree.h (emit_base_init): Rename to ....
1541 (emit_mem_initializers): ... this.
1542 (expand_member_init): Change prototype.
1543 * init.c (perform_member_init): Compute explicit, rather than
1544 requiring it as a parameter.
1545 (sort_member_init): Rename to ...
1546 (sort_mem_initializers): ... this. Process bases and data members
1547 together.
1548 (sort_base_init): Remove.
1549 (emit_base_init): Rename to ...
1550 (emit_mem_initializers): ... this.
1551 (expand_aggr_vbase_init_1): Remove.
1552 (construct_virtual_bases): Rename to ...
1553 (construct_virtual_base): ... this.
1554 (expand_member_init): Rework handling of base initializers.
1555 * method.c (do_build_copy_constructor): Use
1556 finish_mem_initializers.
1557 * parse.y (member_init): Adjust calls to expand_member_init.
1558 * pt.c (tsubst_expr): Simplify CTOR_INITIALIZER case.
1559 (tsubst_initializer_list): Use expand_member_init.
1560 * semantics.c (finish_mem_intiailizers): Simplify.
69788039
MA
1561
15622002-10-02 Matt Austern <austern@apple.com>
1563 * decl.c (walk_vtables_r): Fixed typo that caused result to
1564 never get a nonzero value.
95f79357 1565
f963b5d9
RS
15662002-10-02 Roger Sayle <roger@eyesopen.com>
1567
1568 PR optimization/6627
1569 * cp-tree.h (enum ptrmemfunc_vbit_where_t): Delete definition
1570 from here, and move it to tree.h.
1571 * decl.c (cxx_init_decl_processing): If storing the vbit
1572 in function pointers, ensure that force_align_functions_log
1573 is atleast one.
1574
69788039
MA
15752002-10-02 Matt Austern <austern@apple.com>
1576
1577 * class.c (check_field_decls): Changed warning about const member
1578 variables so that it doesn't get issued for a class aggregate.
95f79357 1579
d881ff25
MM
15802002-10-01 Mark Mitchell <mark@codesourcery.com>
1581
1582 * decl.c (cp_finish_decl): Make sure array types are laid out,
1583 even if the array bounds are unknown.
1584
2e88ae22
SE
15852002-10-01 Steve Ellcey <sje@cup.hp.com>
1586
d881ff25 1587 * class.c (build_vtbl_initializer): Change build_c_cast
2e88ae22
SE
1588 to build1.
1589
b4c20e52
MM
15902002-10-01 Mark Mitchell <mark@codesourcery.com>
1591
d881ff25
MM
1592 * decl.c (cp_finish_decl): Make sure array types are laid out,
1593 even if the array bounds are unknown.
1594
b4c20e52
MM
1595 * decl.c (cp_finish_decl): Correct check for dynamic
1596 initialization of thread-local storage.
1597
5a9a1961
NS
15982002-09-30 Nathan Sidwell <nathan@codesourcery.com>
1599
1600 * tree.c (really_overloaded_fn): TEMPLATE_ID_EXPRs are also
1601 overloaded.
1602
7befdb9f
SE
16032002-09-30 Steve Ellcey <sje@cup.hp.com>
1604
1605 * class.c (build_vtbl_initializer): Add cast.
1606 (add_vcall_offset_vtbl_entries_1):
1607 Use TARGET_VTABLE_DATA_ENTRY_DISTANCE for offset.
1608
17bbb839
MM
16092002-09-30 Mark Mitchell <mark@codesourcery.com>
1610
1611 * class.c (walk_subobject_offsets): Correct the calculation of
1612 offsets for virtual bases. Correct the counting of array
1613 elements.
1614 (layout_nonempty_base_or_field): Simplify. Correct the
1615 calculation of offsets to be propagated through the binfo
1616 hierarchy.
1617 (build_base_field): Avoid creating a FIELD_DECL for empty bases.
1618 Add the FIELD_DECL to TYPE_FIELDS.
1619 (build_base_fields): Adjust accordingly.
1620 (layout_virtual_bases): Use build_base_field.
1621 (end_of_class): Return a tree, not an integer.
1622 (warn_about_ambiguous_direct_bases): Rename to ...
1623 (warn_about_ambiguous_bases): ... this.
1624 (include_empty_classes): New function.
1625 (layout_class_type): Create an alternative version of the type to
1626 be used when as a base class type. Do not call
1627 finish_record_layout until we are done laying out the class.
1628 * cp-tree.h (lang_type_class): Remove size, size_unit. Add
1629 as_base.
1630 (CLASSTYPE_SIZE): Reimplement.
1631 (CLASSTYPE_SIZE_UNIT): Likewise.
1632 (CLASSTYPE_ALIGN): Likweise.
1633 (CLASSTYPE_USER_ALIGN): Likewise.
1634 (CLASSTYPE_AS_BASE): New macro.
1635 (DECL_INITIALIZED_P): Likewise.
1636 (extract_init): Remove prototype.
1637 (build_forced_zero_init): Rename to ...
1638 (build_zero_init): ... this.
1639 (force_store_init_value): Remove.
1640 * decl.c (obscure_complex_init): Remove.
1641 (duplicate_decls): Copy DECL_INITIALIZED_P.
1642 (check_initializer): Do not leave junk in DECL_INITIAL.
1643 (cp_finish_decl): Handle zero-initialization of entities with
1644 static storage duration.
1645 * expr.c (extract_init): Remove.
1646 * init.c (build_forced_zero_init): Remove.
1647 (build_zero_init): New function.
1648 (build_default_init): Use it.
1649 (build_field_list): Skip FIELD_DECLs for base subobjects.
1650 (push_base_cleanups): Likewise.
1651 * method.c (do_build_assign_ref): Likewise.
1652 (synthesize_exception_spec): Likewise.
1653 * pt.c (tsubst_decl): Clear DECL_INITIALIZED_P.
1654 (regenerate_decl_from_template): To not set DECL_INITIAL for a
1655 static data member whose initialization took place in its class.
1656 (instantiate_decl): Do not pass an initializer to cp_finish_decl
1657 in that situation.
1658 * search.c (dfs_push_decls): Skip FIELD_DECLs for base subobjects.
1659 (dfs_unuse_fields): Likewise.
1660 * tree.c (pod_type_p): Handle error_mark_node.
1661 (zero_init_p): Likewise.
95f79357 1662 * typeck.c (lookup_anon_field): Skip FIELD_DECLs for base
17bbb839
MM
1663 subobjects.
1664 * typeck2.c (store_init_value): Remove #if 0'd code.
1665 (force_store_init_value): Remove.
1666 (process_init_constructor): Use build_zero_init.
95f79357 1667
03357c23
NS
16682002-09-29 Nathan Sidwell <nathan@codesourcery.com>
1669
1670 PR c++/7788
1671 * rtti.c (unemitted_tinfo_decl_p): Check it has a field.
1672
27631dae
KH
16732002-09-29 Kazu Hirata <kazu@cs.umass.edu>
1674
1675 * cp-tree.h: Fix comment typos.
1676 * decl.c: Likewise.
1677 * pt.c: Likewise.
1678
956d9305
MM
16792002-09-25 Mark Mitchell <mark@codesourcery.com>
1680
1681 * cp/class.c (contains_empty_class_p): New method.
1682 (walk_subobject_offsets): Correct computation of field offset.
1683 (layout_empty_base): Correct placement of emtpy base classes.
1684 (layout_class_type): Warn about ABI changes.
1685
2d3e278d
MM
16862002-09-23 Mark Mitchell <mark@codesourcery.com>
1687
1688 * cp/class.c (layout_virtual_bases): Do not round the size of the
1689 type to a multiple of the alignment before laying out virtual bases.
1690 (layout_class_type): Correct handling of bit-fields that are wider
1691 than their type inside unions. Round the size of the type to a
1692 even number of bytes when computing the size without virtual
1693 bases.
1694 * cp/cp-tree.h (abi_version_at_least): New macro.
95f79357 1695
838dfd8a
KH
16962002-09-21 Kazu Hirata <kazu@cs.umass.edu>
1697
1698 * ChangeLog: Follow spelling conventions.
1699 * ChangeLog.2: Likewise.
1700 * call.c: Likewise.
1701 * class.c: Likewise.
1702 * cp-tree.h: Likewise.
1703 * cvt.c: Likewise.
1704 * decl.c: Likewise.
1705 * decl2.c: Likewise.
1706 * except.c: Likewise.
1707 * friend.c: Likewise.
1708 * g++spec.c: Likewise.
1709 * init.c: Likewise.
1710 * lex.c: Likewise.
1711 * mangle.c: Likewise.
1712 * method.c: Likewise.
1713 * operators.def: Likewise.
1714 * optimize.c: Likewise.
1715 * pt.c: Likewise.
1716 * rtti.c: Likewise.
1717 * search.c: Likewise.
1718 * semantics.c: Likewise.
1719 * spew.c: Likewise.
1720 * tree.c: Likewise.
1721 * typeck.c: Likewise.
1722
9ced0328
DP
17232002-09-18 Devang Patel <dpatel@apple.com>
1724
1725 * cp/cp-tree.h: New prototype for walk_vtabls().
1726 * cp/decl.c (walk_vtables_r): New function.
1727 (struct cp_binding_level): Add new members, namespaces,
1728 names_size and vtables.
1729 (add_decl_to_level): Add decl in namespaces or vtables
1730 chain, if conditions match.
1731 (walk_vtables): New function.
1732 (walk_namespaces_r): Travers separate namespace chain
1733 for namespace decls.
1734 (wrapup_globals_for_namespace): Use names_size instead
1735 of list_length().
1736 * cp/decl2.c (finish_file): Use walk_vtables() instead of
1737 walk_globals() to walk vtable decls.
1738
dd29188b
NS
17392002-09-18 Nathan Sidwell <nathan@codesourcery.com>
1740
1741 * decl.c (grokdeclarator): Use assert, not internal_error. Don't
1742 ICE with invalid pointers & references.
1743
f989ed67
ZW
17442002-09-17 Zack Weinberg <zack@codesourcery.com>
1745
1746 * Make-lang.in: Remove all references to the demangler.
1747 * cxxfilt.c: Moved to binutils.
1748
171d2f50
NS
17492002-09-16 Nathan Sidwell <nathan@codesourcery.com>
1750
3ec83083
NS
1751 PR c++/7718
1752 * pt.c (tsubst_decl): Remove assert.
1753
171d2f50
NS
1754 Remove DR 295 implementation.
1755 * pt.c (check_cv_quals_for_unify): Disable function & method cases.
1756 * tree.c (cp_build_qualified_type_real): Likewise. Don't warn
1757 about ignoring volatile qualifiers.
1758
1759 * search.c (lookup_member): Correct documentation.
1760
36a5eadd
GK
17612002-09-16 Geoffrey Keating <geoffk@apple.com>
1762
1763 * cp-tree.h (union lang_tree_node): Add chain_next option.
1764
28c56d25
NS
17652002-09-16 Nathan Sidwell <nathan@codesourcery.com>
1766
7979434d
NS
1767 * parse.y (parse_finish_call_expr): Check lookup_member result.
1768
28c56d25
NS
1769 PR c++/7015
1770 * semantic.c (finish_asm_stmt): Fix operand/output_operands
1771 thinko.
1772 * typeck.c (c_expand_asm_operands): Protect from error_mark_node.
1773
3baab484
NS
17742002-09-15 Nathan Sidwell <nathan@codesourcery.com>
1775
1776 PR c++/7919
1777 * call.c (build_over_call): Convert this pointer for fns found by
1778 using decls.
1779
d30d6e7a
KH
17802002-09-15 Kazu Hirata <kazu@cs.umass.edu>
1781
1782 * ChangeLog: Follow spelling conventions.
1783 * ChangeLog.1: Likewise.
1784
c8460010
NS
17852002-09-14 Nathan Sidwell <nathan@codesourcery.com>
1786
1787 PR c++/7768
1788 * pt.c (build_template_decl): Copy DECL_DESTRUCTOR_P.
1789
c6002625
KH
17902002-09-14 Kazu Hirata <kazu@cs.umass.edu>
1791
1792 * error.c: Fix comment formatting.
1793 * except.c: Likewise.
1794 * expr.c: Likewise.
1795 * friend.c: Likewise.
1796 * g++spec.c: Likewise.
1797 * init.c: Likewise.
1798 * lex.c: Likewise.
1799 * mangle.c: Likewise.
1800 * method.c: Likewise.
1801 * optimize.c: Likewise.
1802 * pt.c: Likewise.
1803 * rtti.c: Likewise.
1804 * search.c: Likewise.
1805 * semantics.c: Likewise.
1806 * spew.c: Likewise.
1807 * tree.c: Likewise.
1808 * typeck.c: Likewise.
1809 * typeck2.c: Likewise.
1810
46dd3884
GDR
18112002-09-13 Matt Austern <austern@apple.com>
1812
4a7510cb 1813 PR C++/7828
46dd3884
GDR
1814 * cp/cp-tree.h, cp/tree.c: New function non_cast_lvalue_p.
1815 * cp/call.c: Change call-by-const-reference mechanism to use
1816 non_cast_lvalue_p when deciding whether the create a temporary.
1817 We need a temporary when passing, e.g. (long) x by const ref.
1818
712467a4
NS
18192002-09-13 Nathan Sidwell <nathan@codesourcery.com>
1820
1821 * pt.c (unify, ARRAY_TYPE): Element type can be more qualified.
1822
a1c65f9f
KH
18232002-09-13 Kazu Hirata <kazu@cs.umass.edu>
1824
1825 * decl.c: Fix comment formatting.
1826 * decl2.c: Likewise.
1827
00a17e31
KH
18282002-09-12 Kazu Hirata <kazu@cs.umass.edu>
1829
1830 * call.c: Fix comment formatting.
1831 * class.c: Likewise.
1832 * cp-lang.c: Likewise.
1833 * cp-tree.h: Likewise.
1834 * cvt.c: Likewise.
1835
3fd9d606
ZW
18362002-09-11 Zack Weinberg <zack@codesourcery.com>
1837
1838 * Make-lang.in: Build cp/cxxfilt.o from $(srcdir)/cp/cxxfilt.c,
1839 and c++filt from cxxfilt.o + version.o + $(LIBDEPS).
1840 * cxxfilt.c: New file: split from libiberty/cplus-dem.c, with
1841 minor adjustments (use version_string, eliminate yet another
1842 duplicate of xmalloc)
1843
2515a7ea
KG
18442002-09-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1845
1846 * cp-tree.h (require_complete_eh_spec_types): Add prototype.
1847
5aa3396c
JM
18482002-09-05 Jason Merrill <jason@redhat.com>
1849
1850 * typeck2.c (add_exception_specifier): Only pedwarn for an
1851 incomplete type.
1852 (require_complete_eh_spec_types): New fn.
1853 (cxx_incomplete_type_diagnostic): Also support pedwarning.
1854 * typeck.c (complete_type_or_diagnostic): Likewise.
1855 * call.c (build_call): Call require_complete_eh_spec_types.
1856 * rtti.c (get_pseudo_ti_desc): Give an error rather than aborting
1857 on an incomplete type.
1858
23ccd1f3
JJ
18592002-09-04 Jakub Jelinek <jakub@redhat.com>
1860
1861 * decl.c (start_cleanup_fn): Clear interface_only before
1862 start_function, restore it afterwards.
1863
4977bab6
ZW
18642002-09-02 Nathan Sidwell <nathan@codesourcery.com>
1865
1866 * cp-tree.h (finish_builtin_type): Remove.
1867 * decl2.c (finish_builtin_type): Move to common code.
1868 * decl.c (build_ptrmemfunc_type): Adjust.
1869 * rtti.c (create_pseudo_type_info): Adjust.
1870 (create_tinfo_types): Adjust.
1871
d99f015c
JM
18722002-08-31 Jason Merrill <jason@redhat.com>
1873
1874 * cp-lang.c (cp_expr_size): Allow initialization from a
1875 CONSTRUCTOR.
1876
8a3c9180
RH
18772002-08-30 Richard Henderson <rth@redhat.com>
1878
c9989d09 1879 PR opt/7515
8a3c9180
RH
1880 * tree.c: Include target.h.
1881 (cp_cannot_inline_tree_fn): Don't auto-inline functions that
1882 don't bind locally.
1883 * Makefile.in (tree.o): Update.
1884
eca7f13c
MM
18852002-08-27 Mark Mitchell <mark@codesourcery.com>
1886
1887 * class.c (layout_virtual_bases): Warn about bugs in G++ that
1888 result in incorrect object layouts.
1889 (layout_class_type): Likewise.
f989ed67 1890
13d3f0b6
MA
18912002-08-24 Matt Austern <austern@apple.com>
1892
1893 * tree.c (lvalue_p_1): Add argument for whether casts of lvalues
1894 are allowable.
1895 (real_lvalue_p): Update caller.
1896 (lvalue_p): Ditto.
1897 (non_cast_lvalue_or_else): New.
1898 * tree.h: Declare it.
f989ed67 1899 * typeck.c (build_unary_op): Use non_cast_lvalue_or_else.
13d3f0b6 1900
5b770a96
MM
19012002-08-22 Mark Mitchell <mark@codesourcery.com>
1902
1903 * typeck.c (build_class_member_access_expr): Handle COMPOUND_EXPR
1904 and COND_EXPR specially; fix error message output.
1905
d65b1d77
JM
19062002-08-22 Jason Merrill <jason@redhat.com>
1907
1908 * pt.c (tsubst_expr): RETURN_EXPR is now RETURN_STMT_EXPR.
1909 * semantics.c (nullify_returns_r): Likewise.
1910
8a5f4379
GDR
19112002-08-17 Gabriel Dos Reis <gdr@integrable-solutions.net>
1912
1913 Fix PR/7621
1914 * typeck.c (finish_class_member_access_expr): Diagnose cases where
1915 name lookup finds nothing.
1916
5d764395
JM
19172002-08-15 Jason Merrill <jason@redhat.com>
1918
1919 * semantics.c (finish_then_clause): Remove redundant assignment.
1920 (finish_if_stmt, begin_switch_stmt, finish_switch_stmt): Move the
1921 extra binding level outside the if/switch statement.
1922 (finish_while_cond, finish_for_cond): Rewrite complex condition
1923 into the loop body.
1924
c01b9ec8
AO
19252002-08-15 Alexandre Oliva <aoliva@redhat.com>
1926
1927 * parse.y (sizeof, alignof, typeof): New non-terminals to
1928 increment skip_evaluation. Replace terminals with them and
1929 decrement skip_evaluation at the end of rules using them.
1930 * decl2.c (mark_used): Don't assemble_external if
1931 skipping evaluation.
1932
e8fe46d4
GDR
19332002-08-15 Gabriel Dos Reis <gdr@nerim.net>
1934
1935 Fix PR/7504
1936 * parse.y (parse_finish_call_expr): Handle incomplete
1937 type used to name a scope.
1938
eac5ce6c
NS
19392002-08-15 Nathan Sidwell <nathan@codesourcery.com>
1940
1941 PR c++/7598
1942 * typeck.c (build_unary_op): Fold offsetof idiom. Fixes
1943 regression caused by my 2002-08-08 patch.
1944
22eadedb
MM
19452002-08-13 Mark Mitchell <mark@codesourcery.com>
1946
1947 * decl.c (pushdecl_class_level): Honor requests to bind names to
1948 OVERLOADs.
1949
e65e6212
KG
19502002-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1951
1952 * decl2.c (build_call_from_tree): Fix uninitialized variable.
1953 * parse.y (parse_finish_call_expr): Likewise.
1954 * repo.c (old_args, old_dir, old_main): Const-ify.
1955
3e72ec9a
GDR
19562002-08-11 Gabriel Dos Reis <gdr@nerim.net>
1957
1958 * decl.c (duplicate_decls): Replace DECL_SOURCE_FILE +
1959 DECL_SOURCE_LINE with DECL_SOURCE_LOCATION.
1960 * optimize.c (maybe_clone_body): Likewise.
1961 * pt.c (tsubst_enum): Likewise.
1962 (lookup_template_class): Likewise.
1963 * tree.c (cp_copy_res_decl_for_inlining): Likewise.
1964
f749a36b
NB
19652002-08-10 Neil Booth <neil@daikokuya.co.uk>
1966
1967 * lang-specs.h: Remove -ansi.
1968
3ebf5204
NS
19692002-08-10 Nathan Sidwell <nathan@codesourcery.com>
1970
1971 * tree.c (maybe_dummy_object): Replace // with /* */
1972
9e259dd1
MM
19732002-08-09 Mark Mitchell <mark@codesourcery.com>
1974
1975 * call.c (standard_conversion): Use build_ptrmem_type.
1976 * cp-tree.h (build_ptrmem_type): New function.
1977 (adjust_result_of_qualified_name_lookup): Likewise.
1978 * decl.c (grokvardecl): Do not look for OFFSET_TYPEs to indicate
1979 static data members.
1980 (build_ptrmem_type): New function.
1981 (grokdeclarator): Do not use build_offset_type when encountering a
1982 qualified name.
1983 * parse.y (parse_finish_call_expr): Use
1984 adjust_result_of_qualified_name_lookup.
1985 * search.c (adjust_result_of_qualified_name_lookup): New function.
1986 * typeck.c (qualify_type_recursive): Use TYPE_PTRMEM_* rather than
1987 accessing OFFSET_TYPEs directly.
f989ed67 1988
0e339752
MS
19892002-08-08 Mike Stump <mrs@apple.com>
1990
1991 * call.c (add_builtin_candidate): legal -> valid, illegal -> invalid.
1992 (type_decays_to): Likewise.
1993 * class.c (find_final_overrider): Likewise.
1994 (maybe_note_name_used_in_class): Likewise.
1995 * decl.c (current_tmpl_spec_kind): Likewise.
1996 (add_binding): Likewise.
1997 (push_class_binding): Likewise.
1998 (duplicate_decls): Likewise.
1999 (layout_var_decl): Likewise.
2000 (grokfndecl): Likewise.
2001 (grokdeclarator): Likewise.
2002 (check_default_argument): Likewise.
2003 * decl2.c (handle_class_head): Likewise.
2004 * error.c (dump_template_decl): Likewise.
2005 * init.c (build_offset_ref): Likewise.
2006 * pt.c (check_specialization_scope): Likewise.
2007 (determine_specialization): Likewise.
2008 (check_explicit_specialization): Likewise.
2009 (maybe_check_template_type): Likewise.
2010 (process_partial_specialization): Likewise.
2011 (check_default_tmpl_args): Likewise.
2012 (push_template_decl_real): Likewise.
2013 (convert_template_argument): Likewise.
2014 (try_class_unification): Likewise.
2015 (get_bindings_real): Likewise.
2016 (do_decl_instantiation): Likewise.
2017 * semantics.c (begin_function_definition): Likewise.
2018 (finish_member_declaration): Likewise.
2019 (check_multiple_declarators): Likewise.
2020 * typeck.c (comp_array_types): Likewise.
2021 (comptypes): Likewise.
2022 (expr_sizeof): Likewise.
2023 (build_binary_op): Likewise.
2024 (dubious_conversion_warnings): Likewise.
2025 (check_return_expr): Likewise.
b6ce26ac 2026
a6f5b2d3
MM
20272002-08-08 Mark Mitchell <mark@codesourcery.com>
2028
2029 * typeck.c (build_class_member_access_expr): Do not return
2030 error_mark_node when no error has occurred.
b6ce26ac 2031
c93a26f5
NS
20322002-08-08 Nathan Sidwell <nathan@codesourcery.com>
2033
2034 * typeck.c (build_component_addr): Remove.
2035 (build_unary_op): Just check it's not a bitfield, and then build
2036 an ADDR_EXPR.
2037
5bfc90de
NS
20382002-08-08 Nathan Sidwell <nathan@codesourcery.com>
2039
2040 * class.c (convert_to_base): Correct check for error_mark_node.
2041 (create_vtable_ptr): Remove unused VFUNS_P parm.
2042
22aa533e
NS
20432002-08-08 Nathan Sidwell <nathan@codesourcery.com>
2044
2045 * cp/Make-lang.in (c++.mostlyclean): Remove coverage files.
2046
50ad9642
MM
20472002-08-07 Mark Mitchell <mark@codesourcery.com>
2048
2049 Rework build_component_ref.
2050 * call.c (build_vfield_ref): Do not go through build_component_ref.
2051 (build_field_call): Use build_class_member_access_expr.
2052 (build_user_type_conversion_1): Use BASELINK_FUNCTIONS.
2053 (build_object_call): Likewise.
2054 * class.c (convert_to_base): New function.
2055 (type_requires_array_cookie): Use BASELINK_FUNCTIONS.
2056 (instantiate_type): Handle BASELINKs.
2057 * cp-tree.def (BASELINK): New tree code.
2058 * cp-tree.h (BASELINK_P): Reimplement.
2059 (SET_BASELINK_P): Remove.
2060 (BASELINK_BINFO): Reimplement.
2061 (BASELINK_FUNCTIONS): Likewise.
2062 (BASELINK_ACCESS_BINFO): Likewise.
2063 (BASELINK_OPTYPE): Likewise.
2064 (convert_to_base): New function.
2065 (name_p): Likewise.
2066 (build_object_ref): Remove.
2067 (build_component_ref_1): Likewise.
2068 (build_component_ref): Likewise.
2069 (build_x_component_ref): Likewise.
2070 (build_class_member_access_expr): New function.
2071 (finish_class_member_access_expr): Likewise.
2072 (build_ptrmemfunc_access_expr): Likewise.
2073 * decl.c (grokdeclarator): Handle BASELINKs.
2074 * decl2. (build_expr_from_tree): Handle COMPONENT_REFs by using
2075 finish_class_member_access_expr.
2076 (arg_assoc): Handle BASELINKs.
2077 (do_class_using_decl): Likewise.
2078 * error.c (dump_decl): Likewise.
2079 (dump_expr): Use build_ptrmemfunc_access_expr.
2080 * except.c (dtor_nothrow): Use CLASSTYPE_DESTRUCTORS to find
2081 destructors.
2082 (build_throw): Use BASELINK_FUNCTIONS.
2083 * init.c (perform_member_init): Use
2084 build_class_member_access_expr.
2085 (build_offset_ref): Handle BASELINKs. Use
2086 build_class_member_access_expr.
2087 * method.c (hack_identifier): Likewise.
2088 * parse.y (do_id): Use BASELINK, not TREE_LIST.
2089 (primary): Remove uses of build_object_ref.
2090 * pt.c (lookup_template_function): Handle BASELINKs.
2091 (resolve_overloaded_unification): Likewise.
2092 * search.c (build_baselink): Build a BASELINK, not a TREE_LIST.
2093 (lookup_field): Use BASELINK, not TREE_LIST.
2094 (lookup_fnfiels): Likewise.
2095 (setup_class_bindings): Likewise.
2096 * semantics.c (finish_object_call_expr): Do not use
2097 build_method_call when we already know what function is being
2098 called.
2099 * spew.c (identifier_type): Use BASELINK, not TREE_LIST.
2100 * tree.c (really_overloaded_fn): Use OVL_CHAIN for OVERLOADs, not
2101 TREE_CHAIN.
2102 (name_p): New function.
2103 * typeck.c (build_object_ref): Remove.
2104 (build_component_ref_1): Likewise.
2105 (build_x_component_ref): Likewise.
2106 (build_class_member_access_expr): New function.
2107 (finish_class_member_access_expr): Likewise.
2108 (build_ptrmemfunc_access_expr): Likewise.
2109 (get_member_function_from_ptrfunc): Use
2110 build_ptrmemfunc_access_expr.
2111 (build_binary_op): Likewise.
2112 (build_unary_op): Likewise.
2113 (build_ptrmemfunc): Likewise.
2114 (pfn_from_ptrmemfunc): Likewise.
2115 * typeck2.c (build_m_component_ref): Adjust comment.
b6ce26ac 2116
0b6f2917
NB
21172002-08-07 Neil Booth <neil@daikokuya.co.uk>
2118
2119 * Make-lang.in (CXX_C_OBJS): Update.
2120 * cp-lang.c (LANG_HOOKS_DECODE_OPTION): Use c_common_decode_option.
2121 * cp-tree.h (cxx_decode_option): Remove.
2122 * decl2.c (compare_options, lang_f_options, unsupported_options,
2123 cxx_decode_option): Remove.
2124
1e14c7f0
GDR
21252002-08-06 Gabriel Dos Reis <gdr@nerim.net>
2126
2127 * typeck.c (build_x_unary_op): Handle pointer-to-member.
2128
b3426eb9
GK
21292002-08-05 Geoffrey Keating <geoffk@redhat.com>
2130
2131 * class.c: Don't include obstack.h.
b6ce26ac 2132 (popclass):
b3426eb9
GK
2133 * decl2.c: Delete bogus comment.
2134 * error.c: Don't include obstack.h.
2135 * except.c: Likewise.
2136 (dump_type): Correct comment.
2137 * method.c: Don't include obstack.h.
2138 * tree.c: Likewise.
2139
201fbb7f
GDR
21402002-08-04 Gabriel Dos Reis <gdr@nerim.net>
2141
2142 Fix PR/2213
2143 * cvt.c (cp_convert_to_pointer): Reject conversions from integral
2144 expressions to pointer-to-data-member of pointer-to-member-functions.
2145
6d9f628e
GK
21462002-08-04 Geoffrey Keating <geoffk@redhat.com>
2147
2148 * cvt.c (ocp_convert): Delete obsolete code.
2149 * parse.y (permanent_obstack): Delete declaration.
2150 * pt.c (permanent_obstack): Delete declaration.
2151 * repo.c (permanent_obstack): Delete declaration.
2152 (open_repo_file): Use xmalloc instead of permanent_obstack.
2153 (init_repo): Use xstrdup instead of permanent_obstack.
2154
dd98e14f
NS
21552002-08-04 Nathan Sidwell <nathan@codesourcery.com>
2156
2157 * cp-tree.h (VF_DERIVED_VALUE): Remove.
2158 * class.c (finish_struct_1): Use VF_BINFO_VALUE not VF_DERIVED_VALUE.
2159
e6858a84
NS
21602002-08-03 Nathan Sidwell <nathan@codesourcery.com>
2161
2162 PR 7470.
2163 C++ ABI change - vfunc ordering.
2164 * class.c (add_virtual_function): Remove.
2165 (dfs_modify_all_vtables): Take list of all declared
2166 virtuals. Assign all that are not in primary base.
2167 (check_for_override): Adjust comments.
2168 (create_vtable_ptr): Take single list of virtuals. Build chain
2169 of declared virtuals here.
2170 (layout_class_type): Take single list of virtuals. Adjust.
2171 (finish_struct_1): Keep virtuals on single list. Adjust.
2172
55765de4
MM
21732002-08-02 Mark Mitchell <mark@codesourcery.com>
2174
2175 * init.c (build_member_call): Use build_new_method_call, not
2176 build_method_call.
2177
d0067571
KW
21782002-08-02 Krister Walfridsson <cato@df.lth.se>
2179
2180 * Make-lang.in (spew.o, lex.o, pt.o): Add path to parse.h dependencies.
2181
4a34e0e8
MM
21822002-08-02 Mark Mitchell <mark@codesourcery.com>
2183
2184 * call.c (build_method_call): Issue a more helpful error message
2185 about ambiguous method names.
2186
41ab2ae2
NS
21872002-08-02 Nathan Sidwell <nathan@codesourcery.com>
2188
2189 * tree.c (build_shared_int_cst): Make cache file scope, and
2190 GTY it.
2191
367aa585
JM
21922002-08-02 Jason Merrill <jason@redhat.com>
2193
a77a9a18
JM
2194 * cp-lang.c (LANG_HOOKS_EXPR_SIZE): Define.
2195 (cp_expr_size): New fn.
2196 * call.c (build_over_call): Lose empty class hackery.
2197 (convert_arg_to_ellipsis): Promote non-POD warning to error.
2198 * typeck.c (build_modify_expr): Don't use save_expr on an lvalue.
2199
367aa585
JM
2200 * semantics.c (expand_body): Do tree optimization in the function
2201 context, too.
2202
4078b403
NB
22032002-08-01 Neil Booth <neil@daikokuya.co.uk>
2204
2205 * cp-tree.h: Move all warning and flag declarations to c-common.h.
2206 * decl.c: Move all warning and flag variables to c-common.c.
2207 * decl2.c: Move all warning and flag variables to c-common.c.
2208 * lex.c (flag_digraphs): Remove.
2209 (warn_traditional): Now in c-common.c.
2210
4ba126e4
MM
22112002-07-31 Mark Mitchell <mark@codesourcery.com>
2212
2213 * call.c (build_field_call): Do not look up the field by name.
2214 (build_method_call): Simplify.
2215 (struct z_candidate): Add access_path and conversion_path. Remove
2216 basetype_path.
2217 (convert_class_to_reference): Adjust use of
2218 add_function_candidate.
2219 (add_candidate): Add conversion_path argument.
2220 (add_function_candidate): Use it.
2221 (add_conv_dndidate): Likewise.
2222 (build_builtin_candidate): Likewise.
2223 (add_template_candidate_real): Add conversion_path argument.
2224 (add_template_conv_candidate): Likewise.
2225 (add_template_candidate): Likewise.
2226 (build_user_type_conversion_1): Use it.
2227 (build_new_function_call): Remove name lookup code. Adjust use of
2228 add_template_candidate and add_function_candidate.
2229 (build_new_op): Likewise.
2230 (convert_like_real): Use build_special_member_call.
2231 (build_over_call): Use cand->conversion_path.
2232 (build_special_member_call): New method.
2233 (build_new_method_call): Remove name lookup code.
2234 * cp-tree.def (OFFSET_REF): Update documentation.
2235 (TEMPLATE_ID_EXPR): Likewise.
2236 * cp-tree.h (BASELINK_ACCESS_BINFO): New macro.
2237 (BASELINK_OPTYPE): Likewise.
2238 (build_new_method_call): Adjust prototype.
2239 (build_special_member_call): New method.
2240 (build_baselink): New method.
2241 (build_offset_ref_call_from_tree): Likewise.
2242 (build_call_from_tree): Likewise.
2243 (finish_qualified_call_expr): Remove.
2244 (finish_call_expr): Adjust prototype.
2245 (build_x_function_call): Remove.
2246 * cvt.c (ocp_convert): Use build_special_member_call.
2247 * decl2.c (reparse_absdcl_as_expr): Use finish_call_expr.
2248 (build_expr_from_tree): Adjust handling for TEMPLATE_ID_EXPR and
2249 CALL_EXPR.
2250 (build_offset_ref_call_from_tree): New function.
2251 (build_call_from_tree): Likewise.
2252 * init.c (expand_cleanup): Use build_special_member_call.
2253 (expand_default_init): Likewise.
2254 (build_member_call): Use finish_call_expr.
2255 (build_new_1): Use build_special_member_call.
2256 (push_base_cleanups): Likewise.
2257 * method.c (do_build_assign_ref): Likewise.
2258 * parse.y (template_id): Do not pass a COMPONENT_REF to
2259 lookup_template_function.
2260 (primary): Use parse_finish_call_epxr, not finish_call_expr.
2261 (parse_finish_call_expr): New function.
2262 * pt.c (lookup_template_function): Add assertions.
2263 * search.c (lookup_base): Allow T to be a binfo.
2264 (build_baselink): New function.
2265 (lookup_member): Use it.
2266 * semantics.c (finish_call_expr): Do not do name lookup.
2267 (finish_object_call_expr): Remove #if 0'd code.
2268 (finish_qualified_call_expr): Remove.
2269 * typeck.c (build_x_function_call): Remove.
2270 (build_static_case): Use build_special_member_call.
2271 * typeck2.c (build_functional_cast): Likewise.
b6ce26ac 2272
60b8aa94
FS
22732002-07-30 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
2274
2275 * lang-specs.h: Remove __GXX_ABI_VERSION, moved to gcc.c.
2276
8a4a7242
GDR
22772002-07-30 Gabriel Dos Reis <gdr@nerim.net>
2278
2279 * cp-tree.h (VF_DERIVED_VALUE): Restore from previous deletion.
2280
03fc215c
NS
22812002-07-30 Nathan Sidwell <nathan@codesourcery.com>
2282
2283 * cp-tree.h (CLASSTYPE_VFIELDS, VF_*, BV_*): Add more
2284 documentation.
2285
3f16a8f3
AM
22862002-07-29 Alan Modra <amodra@bigpond.net.au>
2287
2288 * cp-tree.h: Comment typo fix.
2289
c03d566f
RE
22902002-07-29 Richard Earnshaw <rearnsha@arm.com>
2291
2292 * spew.c (space_for_token): Allocate zeroed memory for a new token
2293 chunk.
2294
c2ef6d34
RS
22952002-07-27 Roger Sayle <roger@eyesopen.com>
2296
2297 * decl.c (builtin_function_1): No need to explicitly mark
2298 BUILT_IN_RETURN and BUILT_IN_EH_RETURN as noreturn.
2299
a3926fe1
RS
23002002-07-27 Roger Sayle <roger@eyesopen.com>
2301
2302 * decl2.c (cxx_decode_option): Support -fno-builtin-foo.
2303
8e51619a
JM
23042002-07-26 Jason Merrill <jason@redhat.com>
2305
2306 * call.c (build_over_call): Likewise.
2307 (cp_convert_parm_for_inlining): New fn.
f989ed67
ZW
2308 (convert_for_arg_passing): New fn.
2309 (convert_default_arg, build_over_call): Use it.
8e51619a
JM
2310 (type_passed_as): New fn.
2311 * pt.c (tsubst_decl): Use it.
2312 * decl2.c (cp_build_parm_decl): New fn.
2313 (build_artificial_parm): Use it.
2314 (start_static_storage_duration_function): Likewise.
2315 * decl.c (start_cleanup_fn, grokdeclarater): Likewise.
2316 (grokparms): Don't mess with DECL_ARG_TYPE.
2317 * typeck.c (convert_arguments): Use convert_for_arg_passing.
2318 * cp-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
2319 Define.
2320 * cp-tree.h: Declare new fns.
b6ce26ac 2321
c372b0fa
NB
23222002-07-26 Neil Booth <neil@daikokuya.co.uk>
2323
2324 * cp-tree.h (flag_operator_names): Remove.
2325 * decl2.c (flag_operator_names): Remove.
2326 (lang_f_options): Remove operator-names.
2327 * lex.c (D_OPNAME): Remove.
2328 (reswords): Remove operator names.
2329 (rid_to_yy): Remove operator names.
2330 (init_reswords): No need to handle D_OPNAME.
2331 * spew.c (read_process_identifier): There are no operator
2332 names.
2333
558ee214
JM
23342002-07-26 Jason Merrill <jason@redhat.com>
2335
2336 * dump.c (cp_dump_tree): Call c_dump_tree.
2337 * Make-lang.in (CXX_C_OBJS): Add c-dump.o.
2338
81a1552d
NB
23392002-07-25 Neil Booth <neil@daikokuya.co.uk>
2340
2341 * error.c (print_whitespace): Remove.
2342 * g++spec.c (LIBUNWIND): Move.
2343 * mangle.c (mangled_position, write_signed_number): Remove.
2344
cad2c6b6
NB
23452002-07-25 Neil Booth <neil@daikokuya.co.uk>
2346
2347 * decl2.c (cxx_decode_option): Similarly.
2348
ea793912
GDR
23492002-07-25 Gabriel Dos Reis <gdr@nerim.net>
2350
2351 * cp-tree.h (cxx_sizeof_nowarn): Now a macro.
2352 (cxx_sizeof_or_alignof_type): Take a third argument.
2353 (cxx_sizeof): Adjust definition.
2354 (cxx_alignof): Likewise.
2355 * init.c (build_delete): Use cxx_sizeof_nowarn to reflect reality.
2356 * typeck.c (cxx_sizeof_or_alignof_type): Take a third argument for
2357 complaining.
2358 (c_sizeof_nowarn): Remove definition.
2359 (build_unary_op): Use cxx_sizeof_nowarn.
2360
3cfab7ec
GK
23612002-07-24 Geoffrey Keating <geoffk@redhat.com>
2362
2363 * tree.c (cp_build_qualified_type_real): When copying
2364 pointer-to-method types, unshare the record that holds
2365 the cached pointer-to-member-function type.
2366
c0667597
NB
23672002-07-23 Neil Booth <neil@daikokuya.co.uk>
2368
2369 * cp-tree.h (FILE_FUNCTION_PREFIX_LEN): Remove.
2370
fa72b064
GDR
23712002-07-23 Gabriel Dos Reis <gdr@nerim.net>
2372
2373 Fix PR/7363:
2374 * typeck.c (cxx_sizeof_or_alignof_type): New function.
2375 (c_sizeof): Remove definition.
2376 (expr_sizeof): Use cxx_sizeof.
2377 * decl2.c (build_expr_from_tree): Use cxx_sizeof_or_alignof_type.
2378 * decl.c (finish_destructor_body): Use cxx_sizeof.
2379 * semantics.c (finish_alignof): Likewise.
2380 (finish_alignof): Use cxx_alignof.
2381 * cp-tree.h (cxx_sizeof, cxx_alignof): New macros.
2382 (cxx_sizeof_or_alignof_type): Declare.
2383 (my_friendly_assert): Move to ../c-common.h.
2384
4fa31c2a
NB
23852002-07-23 Neil Booth <neil@daikokuya.co.uk>
2386
2387 * class.c, method.c, pt.c, search.c: Don't define obstack macros.
2388
0e902d98
KL
23892002-07-22 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2390
2391 PR c++/7347, c++/7348
2392 * cp-tree.h (tsubst_flags_t): Add tf_parsing.
2393 * decl.c (make_typename_type): Use it.
2394 (make_unbound_class_template): Likewise.
2395 (lookup_name_real): Don't call type_access_control if scope is
2396 template parameter dependent.
2397 * parse.y (template_arg): Call make_unbound_class_template with
2398 tf_parsing set.
2399 (nest_name_specifier): Call make_typename_type with tf_parsing set.
2400 (typename_sub0): Likewise.
2401 (typename_sub1): Likewise.
2402 (instantiate_decl): Push class scope.
2403 * pt.c (regenerate_decl_from_template): Call pushclass and popclass
2404 for both static variable and member function template.
2405 (instantiate_decl) Call pushclass and popclass when tsubst'ing type
2406 and arguments.
2407 * search.c (type_access_control): Do type access for TEMPLATE_DECL
2408 too.
2409
b886c620
RS
24102002-07-20 Roger Sayle <roger@eyesopen.com>
2411
2412 * decl2.c (cxx_decode_option): Simplify -fhandle-exceptions
2413 test by using positive_option. Make whitespace consistent.
2414
7a561142
GDR
24152002-07-20 Gabriel Dos Reis <gdr@nerim.net>
2416
fa72b064 2417 * spew.c (struct unparsed_test): Replace 'filename' and 'lineno'
7a561142
GDR
2418 members with 'locus'. Adjust use throughout.
2419 (struct feed): Likewise.
2420 (alloc_unparsed_test): Change prototype, take a 'const location_t *'.
2421 Adjust use.
2422 (snarf_defarg): Use error(), not error_with_file_and_line().
2423
059ba716
CD
24242002-07-19 Chris Demetriou <cgd@broadcom.com>
2425
2426 * lang-specs.h (@c++): Include "%2" (cc1plus_spec) wherever
2427 cpp_options is included.
2428
d955f6ea
KL
24292002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2430
2431 PR c++/2862, c++/2863
2432 * pt.c (determine_specialization): Compare the length of
2433 TYPE_ARG_TYPES. Tidy.
2434
d03d18e8
KL
24352002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2436
2437 PR c++/3797
2438 * decl.c (duplicate_decls): Don't propagate inlining parameters from
b6ce26ac 2439 olddecl to newdecl when newdecl is a specialization of the
d03d18e8
KL
2440 instantiation olddecl.
2441
ba59df78
KL
24422002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2443
2444 PR c++/4802, c++/5387
2445 * decl.c (make_typename_type): Use enforce_access.
2446
58f05188
SS
24472002-07-17 Scott Snyder <snyder@fnal.gov>
2448
2449 PR c++/7320
2450 * rtti.c (get_tinfo_decl): Set DECL_COMDAT.
2451
04ec0065
MM
24522002-07-12 Mark Mitchell <mark@codesourcery.com>
2453
2454 * class.c (add_method): Correct handling of conversion operators.
2455
f0ab6bf2
MM
24562002-07-11 Mark Mitchell <mark@codesourcery.com>
2457
2458 PR c++/7224
2459 * class.c (add_method): Simplify.
2460
34902e16
JM
24612002-07-11 Jason Merrill <jason@redhat.com>
2462
2463 PR c++/7279
2464 * tree.c (cp_copy_res_decl_for_inlining): Also copy
2465 TREE_ADDRESSABLE.
2466
6e04241f
GS
24672002-07-10 Graham Stott <graham.stott@btinternet.com>
2468
2469 * pt.c (template_parm_this_level_p, push_template_decl_real):
b6ce26ac 2470 Pass depth as int pointer.
6e04241f 2471
8ac9d31f
TJ
24722002-07-11 Tim Josling <tej@melbpc.org.au>
2473
b6ce26ac 2474 Remove front end hard coding from gengtype.c.
8ac9d31f
TJ
2475
2476 * config-lang.in (gtfiles): Add files needed for this front end.
2477
15c7fb9c
MM
24782002-07-10 Mark Mitchell <mark@codesourcery.com>
2479
2480 * cp-tree.h (unqualified_name_lookup_error): Declare it.
2481 (begin_function_definition): Adjust prototype.
2482 * lex.c (unqualified_name_lookup_error): New function, split out
2483 from ...
2484 (do_identifier): ... here.
2485 * parse.y (parse_begin_function_definition): New function.
2486 (fn.def1): Use it.
2487 * semantics.c (begin_function_definition): Accept decl-specifiers
2488 and attributes as separate parameters.
2489
abf92e26
JM
24902002-07-10 Jason Merrill <jason@redhat.com>
2491
2492 PR c++/6255
2493 * decl.c (lookup_name_real): Build a new TYPENAME_TYPE rather than
2494 modifying the old one.
2495
8ba658ee
MM
24962002-07-09 Mark Mitchell <mark@codesourcery.com>
2497
2498 * cp-tree.h (constructor_name_p): Declare it.
2499 (check_template_template_default_arg): Likewise.
2500 * class.c (handle_using_decl): Use constructor_name_p.
2501 * decl.c (grokdeclarator): Likewise.
2502 * decl2.c (constructor_name_p): Define it.
2503 * init.c (build_member_call): Use constructor_name_p.
2504 * parse.y (template_parm): Use check_template_template_default_arg.
2505 * pt.c (check_explicit_specialization): Use constructor_name_p.
2506 * semantics.c (check_template_template_default_arg): New function.
b6ce26ac 2507
d5372501
KL
25082002-07-08 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2509
2510 * pt.c (can_complete_type_without_circularity): Add static to
2511 function definition.
2512
594bb0e7
MM
25132002-07-08 Mark Mitchell <mark@codesourcery.com>
2514
2515 * cp-tree.h (have_extern_spec): Declare it
2516 * decl.c (have_extern_spec): Define it.
2517 (start_decl): Eliminate use of used_extern_spec.
2518 (start_function): Likewise.
2519 * parse.y (have_extern_spec): Remove declaration.
2520 (used_extern_spec): Likewise.
2521 (frob_specs): Eliminate use of used_extern_spec.
2522 (.hush_warning): Likewise.
2523
eb8845be
MM
25242002-07-07 Mark Mitchell <mark@codesourcery.com>
2525
2526 * Make-lang.in (cp/parse.o): Depend on decl.h.
2527 * cp-tree.h (do_decl_instantiation): Change prototype.
2528 * parse.y: Include decl.h.
2529 (parse_decl_instantiation): New function.
2530 (explicit_instantiation): Use it.
2531 * pt.c (do_decl_instantiation): Accept a DECL, not a DECLARATOR
2532 and DECLSPECS.
b6ce26ac 2533
78abea27
RS
25342002-07-07 Roger Sayle <roger@eyesopen.com>
2535
2536 * error.c (dump_function_name): Use DECL_TEMPLATE_RESULT for
2537 constructor and destructor tests when passed a TEMPLATE_DECL.
2538
98c07d7b
JM
25392002-07-05 Jason Merrill <jason@redhat.com>
2540
212e17fd
JM
2541 * cvt.c (cp_convert_to_pointer): Call force_fit_type for null
2542 pointers.
2543
98c07d7b
JM
2544 PR optimization/7145
2545 * tree.c (cp_copy_res_decl_for_inlining): Also copy DECL_INITIAL.
2546
c6f553d1
NS
25472002-07-05 Nathan Sidwell <nathan@codesourcery.com>
2548
2549 Repair damage on weak-impared targets caused by my previous patch.
2550 * cp-tree.h (import_export_tinfo): Add parameter.
2551 * decl2.c (import_export_tinfo): Add parameter, post adjust
2552 DECL_COMDAT.
2553 * rtti.c (emit_tinfo_decl): DECL_COMDAT is (nearly) always setup by
2554 import_export_tinfo.
2555
b2153b98
KL
25562002-07-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2557
2558 PR c++/6944
2559 * init.c (build_aggr_init): Remove qualifiers of init before calling
2560 build_vec_init.
2561 (build_vec_init): Flatten multi-dimensional array during cleanup.
2562 (build_vec_delete_1): Abort if the type of each element is array.
2563
492ff760
GS
25642002-07-03 Graham Stott <graham.stott@btinternet.com>
2565
2566 * pt.c (instantiate_class_template): Fix typo.
2567
04c4491d
KL
25682002-07-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2569
06728f70
KL
2570 * typeck2.c (cxx_incomplete_type_diagnostic): Fix typo caused
2571 by CVS conflict in my last patch.
04c4491d 2572
17f29637
KL
25732002-07-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2574
2575 PR c++/6716
2576 * pt.c (can_complete_type_without_circularity): New function.
2577 (instantiate_class_template): Use it.
06728f70
KL
2578 * typeck2.c (cxx_incomplete_type_diagnostic): Improve error
2579 message due to incomplete fields.
17f29637 2580
5d69ba1f
MM
25812002-07-01 Mark Mitchell <mark@codesourcery.com>
2582
2583 PR c++/7112
2584 * mangle.c (write_expression): Add mangling for sizeof when
2585 applied to a type.
2586 * operators.def: Remove stale comment.
2587
d689a8f1
NS
25882002-06-30 Nathan Sidwell <nathan@codesourcery.com>
2589
2590 * cp-tree.h (CPTI_TINFO_DECL_TYPE): Replace with ...
2591 (CPTI_TYPE_INFO_PTR_TYPE): ... this.
2592 (tinfo_decl_type): Replace with ...
2593 (type_info_ptr_type): ... this.
2594 (import_export_tinfo): Declare.
2595 (tinfo_decl_p): Rename to ...
2596 (unemitted_tinfo_decl_p): ... this.
2597 * decl2.c (import_export_decl): Break out tinfo handling into ...
2598 (import_export_tinfo): ... here. New function.
2599 (finish_file): Adjust.
2600 * rtti.c (TINFO_REAL_NAME): New macro.
2601 (init_rtti_processing): Create the tinfo types.
2602 (get_tinfo_decl_dynamic): Use type_info_ptr_type, get_tinfo_ptr.
2603 (get_tinfo_decl): Adjust.
2604 (get_tinfo_ptr): New function.
2605 (get_type_id): Use it.
2606 (tinfo_base_init): Create vtable decl here, if it doesn't exist.
2607 (ptr_initializer): Use get_tinfo_ptr.
2608 (ptm_initializer): Likewise.
2609 (synthesize_tinfo_var): Break into ...
2610 (get_pseudo_ti_init): ... this. Just create the initializer.
2611 (get_pseudo_ti_desc): .. and this.
2612 (create_real_tinfo_var): Remove.
2613 (create_pseudo_type_info): Don't create the vtable decl here.
2614 (get_vmi_pseudo_type_info): Remove.
2615 (create_tinfo_types): Adjust.
2616 (tinfo_decl_p): Rename to ...
2617 (unemitted_tinfo_decl_p): ... here. Adjust.
2618 (emit_tinfo_decl): Adjust. Create the initializer.
2619
5ce49b4b
MM
26202002-06-27 Mark Mitchell <mark@codesourcery.com>
2621
2622 PR c++/6695
2623 * pt.c (tsubst_friend_class): Substitute into the context of the
2624 friend before using it.
2625
88e5899c
MM
26262002-06-26 Mark Mitchell <mark@codesourcery.com>
2627
2628 * cp-tree.h (xref_tag): Change prototype.
2629 (handle_class_head): Likewise.
2630 (build_x_component_ref): Likewise.
2631 * decl.c (cxx_init_decl_processing): Adjust call to xref_tag.
2632 (xref_tag): Take attributes as a separate parameter.
2633 (xref_tag_from_type): Adjust call to xref_tag.
2634 * decl2.c (build_expr_from_tree): Adjust call to
2635 build_x_component_ref.
2636 (handle_class_head): Take attributes as a separate parameter.
2637 * parse.y (parse_xref_tag): New function.
2638 (parse_handle_class_head): Likewise.
2639 (primary): Use parse_xref_tag.
2640 (class_head_decl): Use parse_handle_class_head.
2641 (class_head_defn): Likewise.
2642 * rtti.c (init_rtti_processing): Adjust call to xref_tag.
2643 (build_dynamic_cast_1): Likewise.
2644 (create_pseudo_type_info): Likewise.
2645 (emit_support_tinfos): Likewise.
2646 * typeck.c (build_object_ref): Adjust call to
2647 build_x_component_ref.
2648 (build_x_component_ref): Remove protect parameter.
b6ce26ac 2649
da15dae6
MM
26502002-06-25 Mark Mitchell <mark@codesourcery.com>
2651
2652 * call.c (build_op_delete_call): Use BASELINK_FUNCTIONS.
2653 * class.c (handle_using_decl): Likewise.
2654 (instantiate_type): Likewise.
2655 * cp-tree.h (BASELINK_FUNCTIONS): New macro.
2656 (xref_basetypes): Change prototype.
2657 (begin_mem_initializers): New function.
2658 (get_overloaded_fn): Likewise.
2659 * decl.c (xref_basetypes): Simplify.
2660 * error.c (dump_expr): Use BASELINK_FUNCTIONS.
2661 * init.c (build_offset_ref): Likewise.
2662 * parse.y (base_init): Use begin_mem_initializers().
2663 (structsp): Adjust call to xref_basetypes.
2664 * pt.c (determine_specialization): Use BASELINK_FUNCTIONS.
2665 (instantiate_class_template): Adjust call to xref_basetypes.
2666 * semantics.c (begin_mem_initializers): New function.
2667 * tree.c (is_overloaded_fn): Use BASELINK_FUNCTIONS.
2668 (really_overlaoded_fn): Likewise.
2669 (get_overloaded_fn): New function.'
2670 (get_first_fn): USe BASELINK_FUNCTIONS.
b6ce26ac 2671
5f261ba9
MM
26722002-06-24 Mark Mitchell <mark@codesourcery.com>
2673
2674 * cp-tree.h (SCALAR_TYPE_P): New macro.
2675 (check_for_out_of_scope_variable): New function.
2676 (at_class_scope_p): Likewise.
2677 (finish_fname): Likewise.
2678 * class.c (finish_struct): Use at_function_scope_p.
2679 * decl.c (check_for_out_of_scope_variable): New function, split
2680 out from do_identifier.
2681 (finish_enum): Use at_function_scope_p.
2682 * lex.c (do_identifier): Use check_for_out_of_scope_variable.
2683 * parse.y (VAR_FUNC_NAME): Give it <ttype>. Use finish_fname.
2684 (primary): Use at_function_scope_p.
2685 * search.c (at_class_scope_p): New function.
2686 * semantics.c (finish_fname): Likewise.
2687 (check_multiple_declarators): Use at_function_scope_p.
b6ce26ac 2688
80b1331c
MM
26892002-06-23 Mark Mitchell <mark@codesourcery.com>
2690
2691 * parse.y (parse_scoped_id): New function.
2692 (primary): Use it.
2693 * cp-tree.h (do_scoped_id): Adjust declaration.
2694 * lex.c (do_scoped_id): Remove call to yylex.
2695 * decl2.c (build_expr_from_tree): Adjust use of do_scoped_id.
2696 * typeck2.c (add_exception_specifier): Use tree_cons, rather than
2697 expanding it inline.
b6ce26ac 2698
08c7ae5a
MT
26992002-06-23 Matt Thomas <matt@3am-software.com>
2700
2701 * decl.c (finish_function): Change "#ifdef VMS_TARGET" to
2702 "#if VMS_TARGET".
2703
eb6b51b9
KG
27042002-06-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2705
2706 * mangle.c (integer_type_codes): Const-ify.
2707
aa8dea09
RH
27082002-06-20 Richard Henderson <rth@redhat.com>
2709
2710 PR c++/6747
f989ed67
ZW
2711 * typeck.c (mark_addressable): Don't test TREE_ADDRESSABLE early.
2712 Call put_var_into_stack.
aa8dea09 2713
62c71f4b
KG
27142002-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2715
2716 * spew.c (remove_last_token): Use ARRAY_SIZE in lieu of explicit
2717 array size calculation.
2718
aa16c0fa
KL
27192002-06-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2720
2721 PR c++/6892
2722 * pt.c (tsubst_expr): Handle FILE_STMT.
2723
342cea95
KL
27242002-06-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2725
2726 PR c++/6723
2727 * pt.c (lookup_template_class): Don't build complete argument of
2728 BOUND_TEMPLATE_TEMPLATE_PARM if appeared as a default template
2729 argument.
2730
84d901be
AD
27312002-06-19 Akim Demaille <akim@epita.fr>
2732
2733 * parse.y (TYPENAME): Rename as tTYPENAME to avoid the clash with
2734 decl.h's TYPENAME.
2735 * spew.c, lex.c: Adjust.
2736 * parse.y (explicit_instantiation): Add empty action to override
2737 the default $$ = $1 where it introduces a type clash.
2738
83b14b88
JM
27392002-06-14 Jason Merrill <jason@redhat.com>
2740
18ba380b
JM
2741 * semantics.c (begin_for_stmt): Push the 'for' scope before
2742 adding the FOR_STMT.
2743
83b14b88
JM
2744 C++ ABI changes.
2745 * class.c (build_base_field): Set DECL_PACKED.
2746 (layout_class_type): Don't use tail padding of PODs.
2747 * mangle.c (write_unqualified_name): Fix template conversion op
2748 mangling.
2749
fd852454
RH
27502002-06-16 Richard Henderson <rth@redhat.com>
2751
2752 PR opt/6793
2753 * tree.c (cp_cannot_inline_tree_fn): Don't short-circuit test
2754 after template instantiation.
2755
750491fc
RH
27562002-06-16 Richard Henderson <rth@redhat.com>
2757
2758 * cp-tree.h, decl2.c (flag_ms_extensions): Move to c-common.
2759
f7d3c5f0
GDR
27602002-06-15 Gabriel Dos Reis <gdr@codesourcery.com>
2761
2762 * cp-tree.h (compiler_error): Remove declaration.
2763 * lex.c (compiler_error): Remove definition.
2764
893a047c
SE
27652002-06-14 Steve Ellcey <sje@cup.hp.com>
2766
2767 * g++spec.c (LIBUNWIND): New.
2768 (lang_specific_driver): Add it if USE_UNWIND_EXCEPTIONS is set.
2769
a6f5e048
RH
27702002-06-13 Jessica Han <jessica@cup.hp.com>
2771
2772 * class.c (build_vtable): Use TARGET_VTABLE_ENTRY_ALIGN.
2773 (build_vtbl_initializer): Honor TARGET_VTABLE_DATA_ENTRY_DISTANCE.
2774 (build_vbase_offset_vtbl_entries): Likewise.
2775 * rtti.c (build_headof): Likewise.
2776 (get_tinfo_decl_dynamic): Likewise.
2777 (create_pseudo_type_info): Likewise.
2778
e4dadd2a
SS
27792002-06-12 Stan Shebs <shebs@apple.com>
2780
2781 * mpw-config.in: Remove file, no longer used.
2782 * mpw-make.sed: Ditto.
2783
09e77dee
ZW
27842002-06-07 Zack Weinberg <zack@codesourcery.com>
2785
2786 * decl2.c: Update call to cpp_handle_option.
2787
4bafaa6f
L
27882002-06-07 H.J. Lu (hjl@gnu.org)
2789
2790 * decl2.c (flag_use_cxa_atexit): Set to DEFAULT_USE_CXA_ATEXIT.
2791
3cb8660c
GDR
27922002-06-06 Gabriel Dos Reis <gdr@codesourcery.com>
2793
2794 * error.c (cp_error_at): Fix typo.
2795
47b69537
GDR
27962002-06-04 Gabriel Dos Reis <gdr@codesourcery.com>
2797
2798 * error.c (cp_diagnostic_starter): Adjust call.
2799 (maybe_print_instantiation_context): Change prototype to take a
2800 'diagnostic_info *'.
2801 (print_instantiation_full_context): Likewise.
2802 (print_instantiation_partial_context): Likewise.
2803 (cp_diagnostic_starter): Likewise.
2804 (cp_diagnostic_finalizer): Likewise.
2805 (cp_print_error_function): Likewise.
2806 (cp_printer): Take a secondary parameter as a 'text_info *'.
2807 Remove output_state savings. Adjust calls.
2808
e2500fed
GK
28092002-06-03 Geoffrey Keating <geoffk@redhat.com>
2810
2811 * pt.c (inline_parm_levels): Mark for GC.
2812
2813 * mangle.c (start_mangling): Allocate G.substitutions here...
2814 (init_mangle): ... rather than here.
2815 (finish_mangling): Clear the varray pointer when done with it.
84d901be
AD
2816 * spew.c (yylexstring): Don't use VARRAY_FREE.
2817 * search.c (bfs_walk): Don't use VARRAY_FREE.
e2500fed
GK
2818 * decl2.c (pending_statics): Use gengtype to mark.
2819 (deferred_fns): Likewise.
2820 (ssdf_decls): Likewise.
2821 (init_decl2): Delete.
2822 * decl.c (pop_from_top_level): Don't use VARRAY_FREE.
2823 (cxx_init_decl_processing): Don't call init_decl2.
2824 (cxx_pop_function_context): Don't use VARRAY_FREE.
2825 * cp-tree.h (struct saved_scope): No need for special marking
2826 of varrays.
2827 (struct language_function): Likewise.
2828 (local_classes): Use gengtype to mark.
2829 (init_decl2): Delete prototype.
2830 * class.c (init_class_processing): Don't use
2831 ggc_add_tree_varray_root.
2832 (build_vtbl_initializer): Don't use VARRAY_FREE.
2833
2834 * decl.c (typename_compare): Don't use same_type_p.
2835
2836 * decl.c: Include hashtab.h instead of hash.h.
2837 (typename_hash): Update to use htab_h.
2838 (typename_compare): Likewise.
2839 (typename_htab): Use gengtype to mark.
2840 (build_typename_type): Update to use htab_h.
2841 * Make-lang.in (cp/decl.o): Use HASHTAB_H instead of hash.h.
2842
2843 * Make-lang.in (gt-cp-tree.h): New rule.
2844 (cp/tree.o): Depend on gt-cp-tree.h.
2845 * config-lang.in (gtfiles): Add cp/tree.c.
2846 * tree.c: Include gt-cp-tree.h.
2847 (list_hash_table): Use gengtype to mark.
2848 (init_tree): Use gengtype to mark trees.
2849
2850 * Make-lang.in (cp/decl.o): Add debug.h dependency.
2851 * call.c (struct z_candidate): Use gengtype.
2852 (USER_CONV_CAND): Use WRAPPER_ZC.
2853 (convert_class_to_reference): Use build_zc_wrapper.
2854 (build_type_conversion_1): Likewise.
2855 (build_over_call): Use WRAPPER_ZC.
2856 (add_warning): Use build_zc_wrapper.
2857 * cp-lang.c (LANG_HOOKS_MARK_TREE): Delete.
2858 * cp-tree.h (struct lang_identifier): Use gengtype.
2859 (struct template_parm_index_s): Likewise.
2860 (struct ptrmem_cst): Likewise.
2861 (struct tree_binding): Likewise.
2862 (struct tree_overload): Likewise.
2863 (struct tree_srcloc): Likewise.
2864 (struct tree_wrapper): Likewise. Also modify to have a pointer
2865 to struct z_candidate rather than void.
2866 (enum cp_tree_node_structure_enum): New.
2867 (union lang_tree_node): New.
2868 (cxx_mark_tree): Delete prototype.
2869 (cp_tree_node_structure): New prototype.
2870 (build_ptr_wrapper): Delete prototype.
2871 (build_int_wrapper): Delete prototype.
2872 (build_zc_wrapper): New prototype.
2873 * decl.c: Include debug.h
2874 (cxx_mark_tree): Delete.
2875 (cp_tree_node_structure): New.
2876 * tree.c (build_ptr_wrapper): Delete.
2877 (build_int_wrapper): Delete.
2878 (build_zc_wrapper): New.
2879
2880 * cp-tree.h [! ENABLE_TREE_CHECKING] (LANG_TYPE_PTRMEM_CHECK):
2881 Correct typo. Patch from k_fukui@highway.ne.jp.
2882
2883 * semantics.c (current_stmt_tree): Update for change to
2884 struct language_function.
2885 (finish_mem_initializers): Likewise.
2886 * decl.c (cxx_init_decl_processing): Don't set mark_lang_status.
2887 * cp-tree.h (struct language_function): Rename from
2888 cp_language_function. Change all uses.
2889 (cp_function_chain): Don't need to cast.
2890
2891 * class.c (duplicate_tag_error): Reset discriminator.
2892 (check_bases_and_members): Update for data structure changes.
2893 * cp-tree.h (struct lang_id2): Use gengtype.
2894 (flagged_type_tree): Likewise.
2895 (SET_LANG_ID): Use GGC on struct lang_id2.
2896 (struct cp_language_function): Use gengtype. Remove field
2897 'x_vcalls_possible_p'.
2898 (current_vcalls_possible_p): Delete.
2899 (struct lang_type_header): New.
2900 (struct lang_type_class): Rename from struct lang_type. Include
2901 struct lang_type_header.
2902 (struct lang_type_ptrmem): New.
2903 (struct lang_type): New.
2904 (LANG_TYPE_CLASS_CHECK): New. Use it in all the appropriate macros.
2905 (LANG_TYPE_PTRMEM_CHECK): New. Use it in all the appropriate macros.
2906 (TYPE_SET_PTRMEMFUNC_TYPE): Set discriminator, update for changes.
2907 (struct lang_decl_flags): Use gengtype. Add discriminators.
2908 (struct lang_decl): Use gengtype. Add and use discriminators.
2909 Update the macros that reference moved fields.
2910 (LANG_DECL_U2_CHECK): New function. Use it when appropriate.
2911 (SET_DECL_THUNK_P): Set discriminator too.
2912 (clear_inline_text_obstack): Delete prototype.
2913 (finish_inline_definitions): Delete prototype.
2914 (mark_pending_inlines): Delete prototype.
2915 (lang_check_failed): New prototype.
2916 * decl.c (struct named_label_use_list): Use gengtype.
2917 (struct named_label_list): Likewise.
2918 (mark_binding_level): Delete.
2919 (mark_named_label_lists): Delete.
2920 (push_local_name): Set discriminator on DECL_LANG_SPECIFIC.
2921 (cxx_init_decl_processing): Use generated marker routine.
2922 (begin_destructor_body): Delete dead set to
2923 current_vcalls_possible_p.
2924 (mark_lang_function): Delete.
2925 (mark_cp_function_context): Delete.
2926 (lang_mark_tree): Use generated marker routines.
2927 * decl2.c (start_objects): Set discriminator when setting
2928 GLOBAL_INIT_PRIORITY.
2929 * lex.c (retrofit_lang_decl): Set discriminators.
2930 (copy_lang_type): Update for changes to lang_type structure.
2931 (cp_make_lang_type): Set discriminator.
2932 * parse.y: Use gengtype on YYLVAL. Don't use dots in identifiers.
2933 * search.c: Include ggc.h.
2934 * semantics.c (anon_aggr_type_p): Use the macro, don't hand-code it.
2935 (finish_inline_definitions): Delete.
2936 * spew.c (struct token): Use gengtype.
2937 (struct token_chunk): New.
2938 (struct unparsed_text): Use gengtype. Store tokens in chunks.
2939 (struct feed): Use gengtype.
2940 (feed_obstack): Delete.
2941 (feed): Mark as GC root.
2942 (pending_inlines): Mark as GC root.
2943 (pending_inlines_tail): Likewise.
2944 (processing_these_inlines): Likewise.
2945 (token_obstack): Make static.
2946 (first_token): Likewise.
d30d6e7a 2947 (init_spew): Don't initialize deleted things; use gengtype for roots.
e2500fed
GK
2948 (clear_inline_text_obstack): Delete.
2949 (feed_input): Use GC for struct feed. Update for changes to
2950 struct unparsed_text.
2951 (mark_pending_inlines): Delete.
2952 (next_token): Rename from add_token. Change all callers. Update
2953 for changes to struct unparsed_text.
2954 (space_for_token): New.
2955 (remove_last_token): New.
2956 (alloc_unparsed_text): New.
2957 (snarf_block): Take an unparsed_text. Update for changes to struct
2958 unparsed_text.
2959 (snarf_method): Update for changes to struct unparsed_text.
2960 (snarf_defarg): Update for changes to struct unparsed_text.
2961 * tree.c (lang_check_failed): New.
2962
2963 * Make-lang.in (gt-cp-call.h gt-cp-decl2.h gt-cp-parse.h
2964 gt-cp-pt.h gt-cp-repo.h gt-cp-spew.h): New rules.
2965 (cp/spew.o): Add dependency on gt-<filename>.h.
2966 (cp/decl2.o): Add dependency on gt-<filename>.h.
2967 (cp/call.o): Add dependency on gt-<filename>.h.
2968 (cp/pt.o): Add dependency on gt-<filename>.h.
2969 (cp/repo.o): Add dependency on gt-<filename>.h.
2970 (cp/parse.o): Add dependency on gt-<filename>.h.
2971 * call.c: Use gengtype for roots.
2972 * config-lang.in (gtfiles): Add cp-tree.h decl.h lex.h call.c
2973 decl2.c parse.y pt.c repo.c spew.c.
2974 * cp-tree.h: Use gengtype for roots.
2975 (struct saved_scope): Use GGC, gengtype.
2976 (cp_parse_init): Delete prototype.
2977 (init_pt): Delete prototype.
2978 * decl.c: Use gengtype for roots.
2979 (mark_saved_scope): Delete.
2980 (cxx_init_decl_processing): Don't call deleted initilisation
2981 routines.
2982 (signed_size_zero_node): Delete, unused.
2983 * decl.h: Use gengtype for roots.
2984 * decl2.c: Use gengtype for roots.
2985 * lex.h: Use gengtype for roots.
2986 * parse.y: Use gengtype for roots.
2987 (cp_parse_init): Delete.
2988 * pt.c: Use gengtype for roots.
2989 (init_pt): Delete.
2990 * repo.c: Use gengtype for roots.
2991 * spew.c: Use gengtype for roots.
2992
2993 * Make-lang.in: Allow for filename changes. Add gtype-cp.h.
2994 (cp/decl.o): Add dependency on gtype-cp.h.
2995 * decl.c: Remove use of add_deletable_root, use GTY marker instead.
2996 Include gtype-cp.h. Allow for filename changes.
2997
2998 * Make-lang.in (cp/gt-decl.h): Generate using gengtype.
2999 (cp/decl.o): Add cp/gt-decl.h dependency.
3000 * config-lang.in (gtfiles): New.
3001 * tree.h: Rename struct binding_level to struct cp_binding_level.
3002 * decl.c: Rename struct binding_level to struct cp_binding_level.
3003 Include cp/gt-decl.h.
3004 (struct cp_binding_level): Use gengtype.
3005 (make_binding_level): Use GGC on struct cp_binding_level.
3006 (mark_binding_level): Use gt_ggc_m_cp_binding_level.
3007 (cxx_init_decl_processing): Mark free_binding_level as
3008 deletable.
3009
3010 * decl.c (mark_cp_function_context): Update calling sequence.
3011
3012 * decl.c (start_function): Don't free 'struct
3013 cp_language_function'.
3014 (pop_cp_function_context): Likewise.
3015 (save_function_data): Allocate it using GC.
3016 * semantics.c (genrtl_start_function): Don't free 'struct
3017 cp_language_function'.
3018
8b968bd1
MW
30192002-05-31 Matthew Woodcraft <mattheww@chiark.greenend.org.uk>
3020
3021 * lang-specs.h: Use cpp_debug_options.
3022
11ad4784
ZW
30232002-05-28 Zack Weinberg <zack@codesourcery.com>
3024
3025 * mangle.c, tree.c: Include real.h.
3026 * Make-lang.in: Update dependency lists.
3027
81a75f0f
NB
30282002-05-25 Neil Booth <neil@daikokuya.demon.co.uk>
3029
3030 * lex.c: Don't include c-lex.h.
3031 * parse.y, spew.c: Don't include c-lex.h; include c-pragma.h.
3032
a97d1398
NB
30332002-05-23 Neil Booth <neil@daikokuya.demon.co.uk>
3034
3035 * spew.c (yyungetc, snarf_block): Remove indent_level handling.
3036
6f001fdf
RH
30372002-05-22 Richard Henderson <rth@redhat.com>
3038
3039 * decl.c (obscure_complex_init): Check for VAR_DECL
3040 before using DECL_THREAD_LOCAL.
3041
7a1f3f5f
RH
30422002-05-22 Richard Henderson <rth@redhat.com>
3043
3044 * decl.c (check_tag_decl): Handle RID_THREAD.
3045 (obscure_complex_init): Reject run-time init of tls.
3046 (grokvardecl, grokdeclarator): Handle RID_THREAD.
3047 * lex.c (reswords): Add __thread.
3048 (rid_to_yy): Map RID_THREAD to SCSPEC.
3049
e5f3b786
NB
30502002-05-22 Neil Booth <neil@daikokuya.demon.co.uk>
3051
3052 * cp-lang.c (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
3053 * cp-tree.h (cxx_post_options): Kill.
3054 * cp-lex.c (cxx_post_options): Kill.
3055
3d78f2e9
RH
30562002-05-21 Richard Henderson <rth@redhat.com>
3057
3058 * lex.c (rid_to_yy): Add RID_THREAD.
3059
c8a3d889
AO
30602002-05-21 Alexandre Oliva <aoliva@redhat.com>
3061
3062 * init.c (build_vec_init): Test for trivial copy-assignment when
3063 copy-assigning arrays.
3064
500abaa8
AJ
30652002-05-20 Andreas Jaeger <aj@suse.de>
3066
3067 * init.c (build_default_init): Remove unused variable.
3068
ecc42c14
AO
30692002-05-20 Alexandre Oliva <aoliva@redhat.com>
3070
3071 * call.c (any_strictly_viable): New.
3072 (build_new_op): Use it for COMPOUND_EXPR and ADDR_EXPRs.
3073
4e664ef1
KL
30742002-05-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3075
3076 * error.c (dump_type) [TYPEOF_TYPE]: Fix parenthesis printing.
3077
07782718
KL
30782002-05-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3079
3080 PR c++/186, DR 259
3081 * pt.c (do_decl_instantiation): Don't complain explicit
3082 instantiation after explicit specialization.
3083 (do_type_instantiation): Likewise.
3084
23b4deba
AO
30852002-05-19 Alexandre Oliva <aoliva@redhat.com>
3086
3087 * cp-tree.h (complete_type_or_diagnostic): Changed prototype,
3088 renamed from...
3089 (complete_type_or_else): ... this. Redefined as macro.
3090 (cxx_incomplete_type_diagnostic): Declare.
3091 (cxx_incomplete_type_error): Define as macro.
3092 * init.c (build_delete): Warn about incomplete types other than
3093 void, and use the built-in operator delete for them.
3094 * typeck.c (complete_type_or_diagnostic): Renamed from
3095 complete_type_or_else. Added warn_only argument, passed to...
3096 * typeck2.c (cxx_incomplete_type_diagnostic): ... this. Print
3097 warnings or errors depending on new warn_only argument. Renamed
3098 from...
3099 (cxx_incomplete_type_error): ... this. New implementation in
3100 terms of cxx_incomplete_type_diagnostic.
3101
b41d214e
JM
31022002-05-18 Jason Merrill <jason@redhat.com>
3103
98c07d7b 3104 PR c++/6611
b41d214e
JM
3105 * decl2.c (import_export_decl): If we clear
3106 DECL_NOT_REALLY_EXTERN, make sure DECL_EXTERNAL is set.
3107
e2005c8d
KL
31082002-05-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3109
3110 PR c++/6620
3111 * pt.c (verify_class_unification): Don't check if PARM is template
3112 parameter dependent. Simplify.
3113 (unify) [TEMPLATE_PARM_INDEX]: Handle when ARG is a template
3114 parameter dependent expression.
3115
ff48be5c
JM
31162002-05-14 Jason Merrill <jason@redhat.com>
3117
3118 * rtti.c (get_tinfo_decl): Don't call comdat_linkage.
3119 Do set DECL_COMDAT.
3120 (synthesize_tinfo_var): Take the public decl.
3121 (create_real_tinfo_var): Likewise. Check DECL_COMDAT.
3122 (emit_tinfo_decl): Adjust. Call import_export_decl.
3123 * decl2.c (import_export_decl): Simplify tinfo decl handling.
3124
94e6e4c4
AO
31252002-05-14 Alexandre Oliva <aoliva@redhat.com>
3126
3127 * cp-tree.h (struct lang_type): Added non_zero_init.
0fe1cd70 3128 (CLASSTYPE_NON_ZERO_INIT_P): New macro.
94e6e4c4
AO
3129 (zero_init_p, force_store_init_value, build_forced_zero_init): Declare.
3130 * class.c (check_field_decls): Test non_zero_init.
3131 * cvt.c (convert_to_pointer_force): Use cp_convert_to_pointer for
3132 zero-to-NULL conversions.
3133 * decl.c (obscure_complex_init): Don't reset DECL_INITIAL of a
3134 type that needs zero-initialization without zeros.
3135 (check_initializer_decl): Compute zero-initializer for types
3136 that require a non-trivial one.
3137 * init.c (build_forced_zero_init): New function.
3138 (build_default_init): Use it.
3139 * tree.c (zero_init_p): New function.
3140 * typeck2.c (force_store_init_value): New function.
3141 (process_init_constructor): Create non-trivial zero-initializers
3142 for array members and class fields.
3143
e5f5feea
NB
31442002-05-14 Neil Booth <neil@daikokuya.demon.co.uk>
3145
3146 * lang-specs.h: Remove redundant -lang-c++.
3147
f63ab951
JM
31482002-05-13 Jason Merrill <jason@redhat.com>
3149
3150 * class.c (build_vtbl_ref_1): Use fixed_type_or_null.
3151 (fixed_type_or_null): See through reference vars.
3152 (build_base_path): Vtable contents are constant.
3153 * typeck.c (get_member_function_from_ptrfunc): Likewise.
3154
0d08ea48
JM
31552002-05-12 Jason Merrill <jason@redhat.com>
3156
3157 * cp-lang.c (ok_to_generate_alias_set_for_type): Backend-created
3158 structs are safe.
3159
3df89291
NB
31602002-05-09 Neil Booth <neil@daikokuya.demon.co.uk>
3161
3162 * cp-tree.h (flag_ansi): Remove.
3163 * decl2.c (flag_ansi): Remove.
3164 (cxx_decode_option): Set flag_iso and flag_undef.
3165
c87978aa
JM
31662002-05-09 Jason Merrill <jason@redhat.com>
3167
3168 * typeck.c (get_member_function_from_ptrfunc): Reorganize.
3169 Use subtraction rather than a bitmask to get the index.
3170 * cvt.c (cp_convert_to_pointer): Bail on an error_mark_node.
3171
3172 * pt.c (tsubst_expr) [ASM_STMT]: Copy ASM_INPUT_P.
3173
a5a49440
NB
31742002-05-07 Neil Booth <neil@daikokuya.demon.co.uk>
3175
3176 * Make-lang.in (decl2.o): Update.
3177 * cp-tree.h (warn_multichar): Remove.
3178 * decl2.c: Include c-common.h.
3179 (warn_multichar): Remove.
3180
609688f3
JM
31812002-05-03 Jason Merrill <jason@redhat.com>
3182
0abc082a
JM
3183 * tree.c (build_cplus_array_type): Only const and volatile get
3184 special handling.
3185
609688f3
JM
3186 * decl.c (BOOL_TYPE_SIZE): Move default to defaults.h.
3187
8b16faa2
MM
31882002-04-30 Mark Mitchell <mark@codesourcery.com>
3189
394ab947 3190 ABI change, returning simple classes from functions.
8b16faa2
MM
3191 * class.c (finish_struct_bits): Only mark TREE_ADDRESSABLE if
3192 TYPE_HAS_TRIVIAL_INIT_REF is false or
3193 TYPE_HAS_NONTRIVIAL_DESTRUCTOR is true.
3194
ac905924
JM
31952002-04-30 Jason Merrill <jason@redhat.com>
3196
2cb008af 3197 PR debug/6436
ac905924
JM
3198 * decl.c (grokdeclarator): Don't override TYPE_NAME of an
3199 anonymous class with a typedef if there are attributes.
3200
e6e81f1c 32012002-04-29 Paul Eggert <eggert@twinsun.com>
b819d9e0 3202
e6e81f1c 3203 * parse.y (nomods_initdcl0): Replace $<ttype>3 with $<ttype>$.
b819d9e0 3204
3a73bffb
JJ
32052002-04-29 Jakub Jelinek <jakub@redhat.com>
3206
3207 PR c++/6477
3208 * decl.c (follow_tag_typedef): Check if TYPE_NAME (original) is
3209 non-NULL first.
3210
33dd07ee
MM
32112002-04-29 Mark Mitchell <mark@codesourcery.com>
3212
3213 PR c++/6492
3214 * pt.c (tsubst_friend_class): If the friend has an explicit scope,
3215 enter that scope before name lookup.
3216
3217 PR c++/6486
3218 * method.c (do_build_copy_constructor): Avoid building
3219 cv-qualified reference types.
500abaa8 3220
4bd7c270
NS
32212002-04-29 Nathan Sidwell <nathan@codesourcery.com>
3222
3223 PR c++/5719
500abaa8 3224 * decl.c (grok_op_properties): Assignment ops don't have to return
4bd7c270
NS
3225 by value. operator% should.
3226
45806a3f
FS
32272002-04-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
3228
3229 PR c/6343
3230 * decl.c (duplicate_decls): Call merge_weak.
3231
94a50397
RH
32322002-04-26 Richard Henderson <rth@redhat.com>
3233
3234 * parse.y (malloced_yyss, malloced_yyvs): New.
3235 (yyoverflow): Re-add. Set them.
3236 (free_parser_stacks): New.
3237
7d793e9b
MM
32382002-04-26 Mark Mitchell <mark@codesourcery.com>
3239
3240 PR c++/6497
3241 * method.c (do_build_assign_ref): Pass a derivation to
3242 build_method_call when calling base class assignment operators.
3243
bde3c0c0
RH
32442002-04-26 Richard Henderson <rth@redhat.com>
3245
3246 * parse.y (yyoverflow): Revert.
3247
b84a3874
RH
32482002-04-26 Richard Henderson <rth@redhat.com>
3249
3250 PR c/3581
3251 * parse.y (string): Remove. Update all uses to use STRING
3252 instead, and not call combine_strings.
3253 * rtti.c (tinfo_name): Use fix_string_type.
3254 * semantics.c (finish_asm_stmt): Don't call combine_strings.
3255 * spew.c (yylexstring): New.
3256 (read_token): Use it.
3257
6052bef0
RH
32582002-04-25 Richard Henderson <rth@redhat.com>
3259
3260 PR c/2161
3261 * parse.y (yyoverflow): New.
3262
8d1f0f67
JM
32632002-04-25 Jason Merrill <jason@redhat.com>
3264
3265 PR c++/5607
3266 * search.c (check_final_overrider): No longer static.
3267 * class.c (update_vtable_entry_for_fn): Call it.
3268 * cp-tree.h: Adjust.
3269
ff45c01e
NB
32702002-04-25 Neil Booth <neil@daikokuya.demon.co.uk>
3271
3272 * cp-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
3273 * cp-tree.h (cxx_set_yydebug): Die.
3274 * lex.c (YYDEBUG): Get from c-lex.h.
3275 (cxx_set_yydebug): Remove.
3276 * parse.y: Include c-lex.h.
3277 (YYDEBUG): Get from c-lex.h.
3278
a62d375f
MM
32792002-04-24 Mark Mitchell <mark@codesourcery.com>
3280
3281 PR c++/6438.
3282 * cvt.c (convert_to_void): Don't unconditionally make COND_EXPRs
3283 void.
3284
349ae713
NB
32852002-04-24 Neil Booth <neil@daikokuya.demon.co.uk>
3286
3287 * cp-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
3288 LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE):
3289 Redefine.
3290 * cp-tree.h (cp_attribute_table): Rename.
3291 * decl.c (lang_attribute_table): Remove declaration.
3292 (cxx_init_decl_processing): Don't set it.
3293 * tree.c (cp_attribute_table): Rename.
3294
b602511f
JM
32952002-04-24 Jason Merrill <jason@redhat.com>
3296
985723ce
JM
3297 PR c++/6331
3298 * method.c (do_build_copy_constructor): Use cp_build_qualified_type.
3299 * typeck.c (build_modify_expr): Allow arrays to differ in cv-quals.
a49cfba8
JM
3300 The pedwarn for array assignment is now unconditional.
3301 * tree.c (build_cplus_array_type_1): Still process simple array types
3302 normally in templates.
985723ce 3303
b602511f
JM
3304 PR c++/6395
3305 * decl.c (make_rtl_for_nonlocal_decl): Don't mess with #pragma i/i
3306 stuff for comdats.
3307
29cece2e
JJ
33082002-04-23 Jakub Jelinek <jakub@redhat.com>
3309
3310 * parse.y (check_class_key): Allow KEY to be union/enum/struct/class
3311 node with attributes.
3312
515387dc
DB
33132002-2-23 David O'Brien <obrien@FreeBSD.org>
3314
3315 * g++spec.c (MATH_LIBRARY_PROFILE, LIBSTDCXX_PROFILE): Add.
3316 Use MATH_LIBRARY_PROFILE and LIBSTDCXX_PROFILE if profile flag given.
3317
77adef84
MM
33182002-04-23 Mark Mitchell <mark@codesourcery.com>
3319
3320 PR c++/6256:
3321 * pt.c (tsubst_friend_class): Handle templates with explicit
3322 nested names.
3323
3324 PR c++/6331:
3325 * typeck.c (merge_types): Remember the cv-qualification of pointer
3326 types when merging them.
3327
b03e38e1
NB
33282002-04-20 Neil Booth <neil@daikokuya.demon.co.uk>
3329
3330 * cp-lang.c (LANG_HOOKS_FUNCTION_INIT,
3331 LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_MARK): Redefine.
3332 * cp-tree.h (cxx_push_function_context, cxx_pop_function_context,
3333 cxx_mark_function_context): New.
3334 * decl.c (push_cp_function_context, pop_cp_function_context,
3335 mark_cp_function_context): Rename for consistency.
3336 (cxx_init_decl_processing): Don't set old hooks.
3337
ab393bf1
NB
33382002-04-19 Neil Booth <neil@daikokuya.demon.co.uk>
3339
3340 * call.c (convert_type_from_ellipsis): Rename, update.
3341 * cp-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
3342 * cp-tree.h (convert_type_from_ellipsis): Rename.
3343 * decl.c (cxx_init_decl_processing): Don't set hook.
3344
7a228918
NB
33452002-04-18 Neil Booth <neil@daikokuya.demon.co.uk>
3346
3347 * call.c (build_new_method_call): Update.
3348 * cp-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
3349 * cp-tree.h (cxx_incomplete_type_error): New.
3350 * decl.c (grokdeclarator, grokparms): Update.
3351 * decl2.c (check_classfn): Update.
3352 * pt.c (tsubst): Update.
3353 * typeck.c (complete_type_or_else, expr_sizeof,
3354 decay_conversion): Update.
3355 * typeck2.c (incomplete_type_error): Rename.
3356 (add_exception_specifier): Update.
3357
8152c320
JM
33582002-04-18 Jason Merrill <jason@redhat.com>
3359
3360 PR c++/5658
3361 * search.c (setup_class_bindings): A class template qualifies as a
3362 type binding.
3363
32121b96
JJ
33642002-04-17 Jakub Jelinek <jakub@redhat.com>
3365
3366 PR c++/6316
3367 * decl2.c (finish_file): Clear DECL_EXTERNAL in a separate loop
3368 before expanding.
3369
b2123dc0
MM
33702002-04-16 Mark Mitchell <mark@codesourcery.com>
3371
3372 * init.c (begin_init_stmts): Remove commented out code.
3373 (finish_init_stmts): Set STMT_EXPR_NO_SCOPE.
3374 * semantics.c (begin_gobal_stmt_expr): Adjust call to
3375 expand_start_stmt_expr.
500abaa8 3376
0f268005
MM
33772002-04-15 Mark Mitchell <mark@codesourcery.com>
3378
3379 * decl.c (register_dtor_fn): Pass the address of dso_handle, not
3380 dso_handle itself, to __cxa_atexit.
3381
bd6bec6b
GDR
33822002-04-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
3383
3384 * error.c (cxx_print_error_function): Adjust call to macros.
3385
0f490a2b
JJ
33862002-04-14 Jakub Jelinek <jakub@redhat.com>
3387
3388 * class.c (layout_virtual_bases): Do all dsize computation on trees.
3389
85b7def6
JM
33902002-04-14 Jason Merrill <jason@redhat.com>
3391
3392 * typeck.c (get_member_function_from_ptrfunc): Don't do
3393 gratuitious division and multiplication on
3394 ptrmemfunc_vbit_in_delta targets.
3395
0481bc21
MM
33962002-04-12 Mark Mitchell <mark@codesourcery.com>
3397
3398 PR c++/5373.
3399 * semantics.c (finish_expr_stmt): Remember the type of the
3400 expression before any conversions are performed.
3401
9928a3d5
MM
34022002-04-12 Mark Mitchell <mark@codesourcery.com>
3403
3404 PR c++/5189.
3405 * call.c (add_template_candidate_real): Do not treat member
3406 templates as copy constructors.
3407
c740732f
MM
34082002-04-12 Mark Mitchell <mark@codesourcery.com>
3409
3410 * decl.c (duplicate_decls): Do not copy the RTL for a variable
3411 declaration if the old variable had an incomplete type and the new
3412 variable does not.
3413 (complete_vars): Do not call layout_decl for completed variables.
3414
4782bd5b
RS
34152002-04-12 Richard Sandiford <rsandifo@redhat.com>
3416
3417 * decl.c (duplicate_decls): Don't try to unify an implicit typedef
3418 with an explicit one.
3419 (follow_tag_typedef): New.
3420 (lookup_tag): Use it to extract the tag of an explicit typedef.
3421 (xref_tag): Likewise.
3422
2f4d058f
AH
34232002-04-11 Andrew Haley <aph@redhat.com>
3424
3425 * typeck.c (type_after_usual_arithmetic_conversions):
3426 If two types have the same variant, return immediately.
500abaa8 3427 When two floating-point operands are the same precision:
2f4d058f
AH
3428 convert to float if one of the operands is float;
3429 if neither operand is one of the standard types, return the type
3430 of the first operand.
500abaa8 3431
ba3307c0
NS
34322002-04-10 Nathan Sidwell <nathan@codesourcery.com>
3433
3434 PR c++/5507
3435 * decl.c (make_typename_type): Remove implicit typenameness.
3436
cd6af0c1
JM
34372002-04-09 Jason Merrill <jason@redhat.com>
3438
edf5cd1d
JM
3439 PR optimization/6189
3440 * semantics.c (genrtl_start_function): Don't free
3441 DECL_SAVED_FUNCTION_DATA for inline functions.
3442
cd6af0c1
JM
3443 * init.c (build_member_call): For now, don't convert to
3444 intermediate base if it would cause an error.
3445
224e6091
PC
34462002-04-08 Paolo Carlini <pcarlini@unitus.it>
3447
3448 * parse.y (namespace_qualifier, maybe_identifier,
3449 begin_explicit_instantiation, end_explicit_instantiation,
3450 apparent_template_type, .finish_template_type,
3451 do_id, maybe_init, defarg_again, component_decl_1):
3452 Add ending ';', in accordance with POSIX.
3453
0154eaa8
MM
34542002-04-06 Mark Mitchell <mark@codesourcery.com>
3455
3456 PR c++/5571
3457 * class.c (layout_class_type): Remember incomplete static
3458 variables.
3459 (finish_struct_1): Call complete_vars, not
3460 hack_incomplete_structures.
3461 * cp-tree.h (hack_incomplete_structures): Rename to ...
3462 (complete_vars): ... this.
3463 (struct saved_scope): Remove incomplete.
3464 (namespace_scope_incomplete): Remove.
3465 * decl.c (struct binding_level): Remove incomplete.
3466 (incomplete_vars): New variable.
3467 (mark_binding_level): Don't mark incomplete.
3468 (print_binding_level): Don't print it.
3469 (mark_saved_scope): Don't mark incomplete.
3470 (pushdecl): Use maybe_register_incopmlete_var.
3471 (cxx_init_decl_processing): Register incomplete_vars for GC.
3472 (start_decl_1): Clarify error message.
3473 (hack_incomplete_vars): Remove.
3474 (maybe_register_incomplete_var): New function.
3475 (complete_vars): Likewise.
3476
f62ea157
JM
34772002-04-06 Jason Merrill <jason@redhat.com>
3478
03da5286
JM
3479 PR c++/4934
3480 * error.c (dump_expr) [CONVERT_EXPR]: Make sure TREE_TYPE (t) is
3481 set before checking it.
3482
a29e1034
JM
3483 PR c++/525
3484 * init.c (build_member_call): Use build_scoped_ref.
3485 (resolve_offset_ref): Likewise.
3486 * call.c (build_scoped_method_call): Likewise.
500abaa8 3487 * tree.c (maybe_dummy_object): Kludge around current_class_type being
a29e1034
JM
3488 wrong.
3489 * typeck2.c (build_scoped_ref): Return the binfo via binfo_p parm.
3490 * cp-tree.h: Adjust.
500abaa8 3491
a29e1034
JM
3492 * init.c (push_base_cleanups): Just use build_scoped_method_call.
3493
f62ea157 3494 PR c++/6179
500abaa8 3495 * method.c (implicitly_declare_fn): Pass unqualified type to
f62ea157
JM
3496 synthesize_exception_spec.
3497
78ef5b89
NB
34982002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
3499
3500 * cp-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
3501 * cvt.c: Update comment.
3502 * init.c (expand_cleanup_for_base): Update.
3503 * semantics.c (finish_parenthesized_expr): Update.
3504 * typeck.c (cp_truthvalue_conversion): Update.
3505
dffa4176
JM
35062002-04-04 Jason Merrill <jason@redhat.com>
3507
659e5a7a
JM
3508 * semantics.c (finish_eh_cleanup): New fn.
3509 * cp-tree.h: Add prototype.
500abaa8 3510 * init.c (perform_member_init, expand_cleanup_for_base): Use
659e5a7a
JM
3511 finish_eh_cleanup.
3512 * cp-tree.def (SUBOBJECT, CTOR_STMT): Remove.
3513 * cp-tree.h: Remove references.
3514 * decl.c (begin_constructor_body, end_constructor_body): Likewise.
3515 * dump.c (cp_dump_tree): Likewise.
3516 * pt.c (tsubst_expr): Likewise.
3517 * semantics.c (genrtl_ctor_stmt, genrtl_subobject): Remove.
3518 (cp_expand_stmt): Remove handling of CTOR_STMT and SUBOBJECT.
3519 * tree.c (cp_statement_code_p): Likewise.
3520
3521 * init.c (build_new_1): Set CLEANUP_EH_ONLY on deleting cleanup.
3522
3523 PR c++/5636
3524 * semantics.c (nullify_returns_r): Just set CLEANUP_EH_ONLY on
3525 cleanup for nrv.
3526
dffa4176
JM
3527 PR c++/5104
3528 * typeck.c (comptypes) [FUNCTION_TYPE]: Don't compare exception
3529 specifiers.
3530 [METHOD_TYPE]: Use same code as FUNCTION_TYPE.
3531
ef4f94ac
RH
35322002-04-03 Richard Henderson <rth@redhat.com>
3533
3534 * cp-lang.c (cxx_warn_unused_global_decl): New.
3535 (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
3536
599bba86
NB
35372002-04-03 Neil Booth <neil@daikokuya.demon.co.uk>
3538
3539 * cp-lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): Redefine.
3540 * tree.c (init_tree): Don't set hook.
3541
cba2004a
RS
35422002-04-03 Roger Sayle <roger@eyesopen.com>
3543
3544 PR c++/5998:
3545 * decl.c (duplicate_decls): Don't mess with assembler names when
3546 redeclaring builtin functions as static.
3547
dffd7eb6
NB
35482002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
3549
3550 * call.c (build_addr_func): Update.
3551 * class.c (resolve_address_of_overloaded_function): Update.
3552 * cp-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
3553 * cp-tree.h (cxx_mark_addressable): New.
3554 * decl.c (register_dtor_fn, cxx_maybe_build_cleanup): Update.
3555 * decl2.c (build_cleanup): Update.
3556 * except.c (build_throw): Update.
3557 * init.c (resolve_offset_ref): Update.
3558 * pt.c (convert_nontype_argument): Update.
3559 * semantics.c (finish_asm_stmt, simplify_affr_init_exprs_r): Update.
3560 * typeck.c (decay_conversion, build_array_ref, build_unary_op,
3561 unary_complex_lvalue): Update.
3562 (mark_addressable): Rename.
3563
04a9d080
RS
35642002-04-01 Roger Sayle <roger@eyesopen.com>
3565
3566 PR c++/5998:
3567 * decl.c (duplicate_decls): Overwrite the RTL when (and only
3568 when) overwriting a built-in function. Don't use COPY_DECL_RTL,
3569 but follow the SET_DECL_RTL idiom used elsewhere in the function.
3570
ceef8ce4
NB
35712002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
3572
3573 * cp-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
3574 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
3575 * decl.c (grokdeclarator): Update.
3576 * mangle.c (write_integer_cst): Update.
3577 * typeck.c (build_binary_op): Update.
3578
48a7a235
NB
35792002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
3580
3581 * cp-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
3582 * lex.c (cxx_init): Don't set hook.
3583
7cb32822
NB
35842002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
3585
3586 * Make-lang.in (error.o): Update.
3587 * cp-lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine.
3588 * cp-tree.h (struct diagnostic_context): Predeclare.
3589 (cxx_print_error_function): New.
3590 * error.c: Include langhooks-def.h.
3591 (lang_print_error_function): Rename. Update.
3592 (init_error): Don't set hook.
3593
b0c48229
NB
35942002-03-29 Neil Booth <neil@daikokuya.demon.co.uk>
3595
3596 * cp-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
3597 Redefine.
3598 * cvt.c (cp_convert_to_pointer, type_promotes_to): Use new hooks.
3599 * decl.c (finish_enum): Similarly.
3600 * error.c (dump_type): Similarly.
3601 * lex.c (cxx_init): Similarly.
3602 * mangle.c (write_builtin_type): Similarly.
3603 * typeck.c (comptypes): Similarly.
3604
d52e4867
RS
36052002-03-28 Roger Sayle <roger@eyesopen.com>
3606
3607 PR c++/5998:
3608 * decl.c (cxx_init_decl_processing): Re-enable built-in functions
3609 in the g++ front-end.
3610 (duplicate_decl): Allow redefinition of anticipated built-ins.
3611 Fix inlining problem by over-writing the old DECL_RTL.
3612 (lookup_namespace_name): Fail to find an identifier in the
3613 specified namespace if its still anticipated.
3614 (builtin_function_1): New function split out from builtin_function
3615 to create a builtin in the current namespace with given context.
3616 (builtin_function): Call builtin_function_1 to define the
3617 appropriate builtins in both the std and global namespaces.
3618 (select_decl): Don't test for anticipated decls here.
3619 (unqualified_namespace_lookup): Instead ignore them whilst
3620 searching through scopes and namespaces.
3621 * decl2.c (do_nonmember_using_decl): If a using declaration
3622 specifies an anticipated built-in function, mark it as no longer
3623 anticipated in that scope.
3624 (ambiguous_decl): Avoid resolving to an anticipated decl.
3625 * lex.c (do_scoped_id): Fail to find an identifier in the global
3626 namespace if its still anticipated.
3627
f1e639b1
NB
36282002-03-29 Neil Booth <neil@daikokuya.demon.co.uk>
3629
3630 * cp-lang.c (LANG_HOOKS_MAKE_TYPE): Redefine.
3631 * cp-tree.h (cp_make_lang_type): Rename.
3632 * lex.c (cp_make_lang_type): Rename.
3633 (make_aggr_type): Update.
3634 * tree.c (init_tree): Don't set make_lang_type_fn.
3635
c7f4981a
JJ
36362002-03-29 Jakub Jelinek <jakub@redhat.com>
3637
3638 PR c++/6073
3639 * class.c (finish_struct_1): Update static field's DECL_MODE even
3640 if its type is a variant of t.
3641
7ffb4fd2
NB
36422002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
3643
3644 * cp-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
3645 * cp-tree.h (cxx_insert_default_attributes): New.
3646 * decl.c (insert_default_attributes): Rename.
3647
cd4e8331
MM
36482002-03-27 Mark Mitchell <mark@codesourcery.com>
3649
3650 PR c++/4884
3651 * call.c (build_op_delete_call): Allow for the fact the placement
3652 may be a COMPOUND_EXPR.
500abaa8 3653
c9d892a8
NB
36542002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
3655
3656 * cp-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
3657 * cp-tree.h (init_cplus_expand): Remove.
3658 (cxx_expand_expr): New.
3659 * expr.c (cplus_expand_expr): Rename cxx_expand_expr,
3660 fix prototype.
3661 (init_cplus_expand): Remove.
3662 * lex.c (cxx_init): Don't call init_cplus_expand.
3663
46ff5047
MM
36642002-03-26 Mark Mitchell <mark@codesourcery.com>
3665
3666 PR c++/4884.
3667 * init.c (build_new_1): Allow for the fact the result of
3668 build_function_call may be a COMPOUND_EXPR.
3669
6d4c57a0
NS
36702002-03-26 Nathan Sidwell <nathan@codesourcery.com>
3671
3672 PR c++/5682
3673 * cp-tree.h (BINFO_PRIMARY_P): Explain meaning better.
3674 (dfs_skip_nonprimary_vbases_unmarkedp): Remove.
3675 (dfs_skip_nonprimary_vbases_markedp): Remove.
3676 * search.c (get_shared_vbase_if_not_primary): Remove.
3677 (dfs_skip_nonprimary_vbases_unmarkedp): Remove.
3678 (dfs_skip_nonprimary_vbases_markedp): Remove.
3679 (dfs_unmarked_real_bases_queue_p): Just get the canonical binfo.
3680 (dfs_marked_real_bases_queue_p): Likewise.
3681
4f0ade92
NB
36822002-03-26 Neil Booth <neil@daikokuya.demon.co.uk>
3683
3684 * cp-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
3685 * cp-tree.h (cxx_mark_tree): New.
3686 * decl.c (lang_mark_tree): Rename cxx_mark_tree.
3687
c88770e9
NB
36882002-03-25 Neil Booth <neil@daikokuya.demon.co.uk>
3689
3690 * cp-tree.h (cxx_maybe_build_cleanup): New.
3691 * decl.c (destroy_local_var, hack_incomplete_structures): Update.
3692 (maybe_build_cleanup): Rename cxx_maybe_build_cleanup.
3693 * tree.c (build_target_expr): Update.
7b3e5198 3694 * cp-lang.c (LANG_HOOKS_MAYBE_BUILD_CLEANUP): Redefine.
c88770e9 3695
aaf93206
NB
36962002-03-24 Neil Booth <neil@daikokuya.demon.co.uk>
3697
3698 * decl2.c (cxx_decode_option): Handle -E.
3699 * lang-specs.h (default_compilers): Preprocess with cc1plus.
3700 * lex.c (cxx_init): Exit quickly if c_common_init returns NULL.
3701
e756a7da
JJ
37022002-03-23 Jakub Jelinek <jakub@redhat.com>
3703
3704 PR c++/6037
3705 * decl.c (start_enum): Don't set TREE_ADDRESSABLE on TREE_LIST node.
3706
ea9264e9
GDR
37072002-03-23 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
3708
3709 * error.c (dump_type): Be careful about implicit typenames.
3710
acb044ee
GDR
37112002-03-21 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
3712
3713 PR C++/3656
3714 * semantics.c (finish_base_specifier): Handle erronous base
500abaa8 3715 classes.
acb044ee 3716
b216cd4a
ZW
37172002-03-22 Zack Weinberg <zack@codesourcery.com>
3718
3719 * error.c: Always use REAL_VALUE_TO_DECIMAL; don't test
3720 REAL_IS_NOT_DOUBLE.
3721
9181f8db
JK
37222002-03-22 Jeff Knaggs <jknaggs@redhat.com>
3723
cd6af0c1
JM
3724 * typeck.c (get_member_function_from_ptrfunc): Scale idx down to
3725 an index into the vtable_entry array regardless of
9181f8db
JK
3726 TARGET_PTRMEMFUNC_VBIT_LOCATION.
3727
e019cf95
AH
37282002-03-21 Aldy Hernandez <aldyh@redhat.com>
3729
84d901be 3730 * tree.c (cp_cannot_inline_tree_fn): Same.
e019cf95 3731
43577e6b
NB
37322002-03-21 Neil Booth <neil@daikokuya.demon.co.uk>
3733
3734 * cp-tree.h (pushdecl, pushlevel, poplevel, set_block,
3735 insert_block, getdecls, global_bindings_p): New.
3736
8c152bad
NS
37372002-03-20 Nathan Sidwell <nathan@codesourcery.com>
3738
3739 PR c++/4361
3740 * mangle.c (struct globals) Add internal_mangling_p member.
3741 (write_template_param): Do internal mangling, if needed.
3742 (mangle_conv_op_name_for_type): Request internal mangling.
3743
e3fe84e5
JM
37442002-03-20 Jason Merrill <jason@redhat.com>
3745
3746 PR c++/2136
3747 * init.c (build_delete): Check access for a member op delete here.
3748 * decl2.c (delete_sanity): Not here.
3749
ea122333
JM
37502002-03-19 Jason Merrill <jason@redhat.com>
3751
3752 PR c++/5118
3753 * class.c (get_vfield_name): Use the constructor_name.
3754
7afff7cf
NB
37552002-03-20 Neil Booth <neil@daikokuya.demon.co.uk>
3756
3757 * cp-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
3758 * cp-tree.h (lang_printable_name): Rename.
3759 * error.c (lang_decl_name): Use new hook.
3760 * lex.c (cxx_init): Remove old hook.
3761 * pt.c (tsubst_decl): Use new hook.
3762 * tree.c (lang_printable_name): Rename.
3763
ff77ac85
EB
37642002-03-18 Eric Botcazou <ebotcazou@multimania.com>
3765
3766 PR c++/3882
3767 * pt.c (tsubst_decl): Move __PRETTY_FUNCTION__ handling...
3768 (tsubst_expr) [DECL_STMT]: ...here. And substitute the initializer
3769 only after recording the declaration.
3770
ffd696af
JM
37712002-03-18 Jason Merrill <jason@redhat.com>
3772
097955f2
JM
3773 PR c++/2039
3774 * init.c (resolve_offset_ref): Hand off to build_component_ref.
3775
b663bcf3
JM
3776 PR c++/4222, c++/5995
3777 * call.c (build_over_call): Fix empty class logic.
3778
0f4237c2
JM
3779 PR c++/3870
3780 * cp-tree.h (struct saved_scope): Add last_parms field.
3781 * decl.c (maybe_push_to_top_level): Save last_function_parms.
3782 (pop_from_top_level): Restore it.
3783
001ad76c
JM
3784 PR c++/4377
3785 * mangle.c (write_expression): Strip NOP_EXPRs sooner. Also strip
3786 NON_LVALUE_EXPRs.
3787
3788 PR c++/4003
ed2fa432
JM
3789 * pt.c (tsubst_friend_function): Use decl_namespace_context.
3790
ffd696af
JM
3791 PR c++/3948 -- C++ ABI change, followup to 2001-12-18 patch.
3792 * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE for a
3793 type with a nontrivial destructor.
3794
f2606a97
JM
37952002-03-17 Jason Merrill <jason@redhat.com>
3796
3797 PR c++/4460
3798 * class.c (build_base_path): Virtual base layout is fixed in
3799 in-charge [cd]tors.
3800
52dabb6c
NB
38012002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
3802
3803 * cp-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
3804 * parse.y (yyparse): Remove macro.
3805
beb9c8a2
JM
38062002-03-17 Jason Merrill <jason@redhat.com>
3807
3808 PR c++/5757
3809 * init.c (build_new_1): Pass the right pointer to op delete.
3810
5dd236e2
NS
38112002-03-16 Nathan Sidwell <nathan@codesourcery.com>
3812
3813 PR c++/4361
3814 * cp-tree.h (CLASSTYPE_METHOD_VEC): Document where templated
3815 conversion operators go.
3816 (struct lang_decl_flags): Add template_conv_p and unused
3817 bitfields.
3818 (DECL_TEMPLATE_CONV_FN_P): New macro.
3819 * call.c (build_user_type_conversion_1): Don't check second type
3820 conversion of overload set first.
3821 * class.c (add_method): Make sure templated conversion operators
3822 all end up on slot 2.
3823 * lex.c (do_identifier): A conversion operator token might be
3824 satisfied by a templated conversion operator.
5dd236e2
NS
3825 * pt.c (check_explicit_specialization): Use
3826 CLASSTYPE_FIRST_CONVERSION_SLOT.
3827 (template_parm_this_level_p): New function.
3828 (push_template_decl_real): Determine DECL_TEMPLATE_CONV_FN_P.
8c152bad 3829 * search.c (lookup_fnfields_1): Template conversions will be on
5dd236e2
NS
3830 the first slot.
3831 * typeck.c (build_component_ref): Preserve the type of an
3832 conversion operator name on the overload type.
3833 (build_x_function_call): Retrieve the conversion operator name.
3834
0ba20759
RH
38352002-03-15 Richard Henderson <rth@redhat.com>
3836
3837 * init.c (build_new_1): Use size_binop instead of cp_build_binary_op.
3838
6e4ae815
MM
38392002-03-15 Mark Mitchell <mark@codesourcery.com>
3840
3841 * cp-tree.h (CLEANUP_DECL): Remove.
3842 (CLEANUP_EXPR): Likewise.
3843 * decl.c (destroy_local_var): Simplify.
3844 (maybe_build_cleanup): Tidy.
3845 * dump.c (cp_dump_tree): Remove handling of CLEANUP_STMT.
3846 * semantics.c (cp_expand_stmt): Likewise.
3847 * cp/tree.c (cp_statement_code_p): Likewise.
3848
5cc90635
JM
38492002-03-15 Jason Merrill <jason@redhat.com>
3850
6da794e8
JM
3851 PR c++/5857
3852 * decl.c (duplicate_decls): Use merge_types instead of common_type.
3853 * typeck.c (common_type): Just hand off to
3854 type_after_usual_arithmetic_conversions and
3855 composite_pointer_type.
3856 (merge_types): New fn.
3857 (commonparms): Use it instead of common_type.
3858 (type_after_usual_arithmetic_conversions): Also handle COMPLEX_TYPE.
3859 (composite_pointer_type): Also handle attributes.
3860 * cp-tree.h: Declare merge_types.
3861
5cc90635
JM
3862 * decl.c (make_rtl_for_nonlocal_decl): Also defer COMDAT
3863 variables.
3864 * decl2.c (maybe_make_one_only): Also mark the decl as needed.
3865
ecb0eece
RH
38662002-03-14 Richard Henderson <rth@redhat.com>
3867
3868 * decl.c: Include c-pragma.h.
3869 (start_decl, start_function): Invoke maybe_apply_pragma_weak.
3870 * Make-lang.in: Update dependencies.
3871
d3f129b3
JJ
38722002-03-14 Jakub Jelinek <jakub@redhat.com>
3873
f6562b37 3874 PR c++/5908
d3f129b3
JJ
3875 * call.c (build_over_call): Set TREE_NO_UNUSED_WARNING too.
3876 * cvt.c (convert_to_void): Preserve TREE_NO_UNUSED_WARNING.
3877
049e6879
RS
38782002-03-12 Richard Sandiford <rsandifo@redhat.com>
3879
3880 * mangle.c (write_builtin_type): Handle 128-bit integers even if
3881 they are not a standard integer type.
3882
872c9284
RS
38832002-03-12 Richard Sandiford <rsandifo@redhat.com>
3884
3885 * cp-tree.h (init_init_processing): Remove declaration.
3886 * init.c (BI_header_type, init_init_processing): Remove old ABI stuff.
3887 * decl.c (cxx_init_decl_processing): Don't call init_init_processing.
3888
2f9834e8
KG
38892002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3890
3891 * cp-lang.c (tree_code_type, tree_code_length, tree_code_name):
3892 Define.
3893 * decl.c (duplicate_decls): Use TREE_CODE_LENGTH, not
3894 tree_code_length.
3895 * lex.c (cplus_tree_code_type, cplus_tree_code_length,
3896 cplus_tree_code_name): Delete.
3897 (cxx_init): Don't call add_c_tree_codes, instead set
3898 lang_unsafe_for_reeval. Don't try to copy into the various
3899 tree_code arrays.
3900
df867456
NS
39012002-03-12 Nathan Sidwell <nathan@codesourcery.com>
3902
3903 PR c++/5659
3904 * decl.c (xref_tag): Don't set CLASSTYPE_DECLARED_CLASS here.
3905 * decl2.c (handle_class_head): Set CLASSTYPE_DECLARED_CLASS for
3906 definitions.
3907
ab04e34b
NS
39082002-03-11 Nathan Sidwell <nathan@codesourcery.com>
3909
3910 Revert 2001-03-26 Nathan Sidwell <nathan@codesourcery.com>,
3911 DR209 is now not a defect.
3912 * cp-tree.h (skip_type_access_control): Remove.
3913 * decl.c (grokdeclarator): Do type access control for friend
3914 declarations.
3915 * semantics.c (decl_type_access_control): Don't reset
3916 current_type_lookups.
3917 (save_type_access_control): Always save the lookups.
3918 (skip_type_access_control): Remove.
3919 (finish_class_definition): Don't change type_lookups.
3920
999cc24c
NS
39212002-03-11 Nathan Sidwell <nathan@codesourcery.com>
3922
3923 Revert 2000-12-01 Nathan Sidwell <nathan@codesourcery.com>,
3924 It is incorrect.
3925 * typeck.c (build_static_cast): Compare non-qualified types
3926 with pointer to member conversions.
3927
61eece67
DN
39282002-03-11 Dan Nicolaescu <dann@ics.uci.edu>
3929 Daniel Berlin <dan@dberlin.org>
3930
3931 * cp-lang.c (ok_to_generate_alias_set_for_type): New function.
3932 (cxx_get_alias_set): Use it.
3933
644d28d4
KG
39342002-03-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3935
3936 * cp-tree.h (stabilize_expr): Prototype.
3937
7e326356
CR
39382002-03-08 Craig Rodrigues <rodrigc@gcc.gnu.org>
3939
3940 * cp-tree.h (CLEAR_BINFO_MARKED): Make both parts of
3941 conditional return void.
3942
24965e7a
NB
39432002-03-08 Neil Booth <neil@daikokuya.demon.co.uk>
3944
3945 * cp-lang.c (LANG_HOOKS_UNSAVE): Redefine.
3946 * cp-tree.h (cxx_unsave): New.
3947 * tree.c (cp_unsave): Rename cxx_unsave, update prototype.
3948 (init_tree): Update.
3949
ca7558fc
KG
39502002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3951
3952 * decl.c (cxx_init_decl_processing): Use ARRAY_SIZE in lieu of
3953 explicit sizeof/sizeof.
3954 * decl2.c (cxx_decode_option): Likewise.
3955 * lex.c (init_reswords, REDUCE_LENGTH, TOKEN_LENGTH): Likewise.
3956
fd87b7a7
NS
39572002-03-02 Nathan Sidwell <nathan@codesourcery.com>
3958
3959 PR c++/775
3960 * decl.c (lookup_tag): Only reject enum/class mismatch, not
3961 class/union mismatch.
3962 * parse.y (check_class_key): New function.
3963 (structsp): Call it.
3964
bfba94bd
MM
39652002-03-01 Michael Matz <matz@suse.de>
3966
3967 * typeck.c (cp_pointer_int_sum): Complete inner type which is
3968 used later by size_in_bytes().
3969
fdc9bf29
PE
39702002-03-01 Phil Edwards <pme@gcc.gnu.org>
3971
3972 * cp-tree.h: Require __GNUC__ to be #defined.
3973 (build_init): Add missing prototype.
3974
6f30f1f1
JM
39752002-03-01 Jason Merrill <jason@redhat.com>
3976
3977 * except.c: Don't include decl.h or obstack.h. Do include
3978 tree-inline.h.
3979 (build_throw): Destroy temporaries from the thrown
500abaa8 3980 expression before calling __cxa_throw. Construct a thrown
6f30f1f1
JM
3981 temporary directly into the exception object.
3982 (stabilize_throw_expr): New function.
3983 (wrap_cleanups_r): New function.
3984 * tree.c (stabilize_expr): New function.
3985 * init.c (build_init): New function.
3986 * Make-lang.in (cp/except.o): Adjust .h deps.
3987
46cfb101
JM
39882002-02-28 Jason Merrill <jason@redhat.com>
3989
07f521fc
JM
3990 * search.c (lookup_base_r): Don't clear is_non_public just because
3991 we found a friendly scope.
3992
46cfb101
JM
3993 * decl.c (finish_function): Only warn about missing return
3994 statement with -Wreturn-type.
3995
63e1b1c4
NB
39962002-02-28 Neil Booth <neil@daikokuya.demon.co.uk>
3997
3998 * class.c (build_clone): Update.
3999 * cp-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
4000 * cp-tree.h (cxx_dup_lang_specific_decl): New.
4001 * lex.c (copy_lang_decl): Rename cxx_dup_lang_specific_decl.
4002 (copy_decl): Update.
4003 * method.c (make_thunk): Update.
4004
f458d1d5
ZW
40052002-02-27 Zack Weinberg <zack@codesourcery.com>
4006
4007 * decl2.c: Delete traditional-mode-related code copied from
4008 the C front end but not used, or used only to permit the
4009 compiler to link.
4010
500abaa8 40112002-02-24 Craig Rodrigues <rodrigc@gcc.gnu.org>
3387d36e
CR
4012
4013 PR c++/4093
4014 * cp-tree.h (SET_BINFO_MARKED): Cast false part of condition
4015 to void.
4016
25c8b645
JJ
40172002-02-22 Jakub Jelinek <jakub@redhat.com>
4018
4019 PR other/5746
4020 * semantics.c (finish_switch_cond): Don't call get_unwidened
4021 if error_mark_node.
4022
4f2b0fb2
NS
40232002-02-22 Nathan Sidwell <nathan@codesourcery.com>
4024
4025 PR c++/2645, DR 295
4026 * cp-tree.h (tsubst_flags_t): Add tf_ignore_bad_quals,
4027 tf_keep_type_decl.
4028 (make_typename_type): Use tsubst_flags_t.
4029 * decl.c (make_typename_type): Adjust. Return non-artificial
4030 TYPE_DECLs, if required.
4031 (grokdeclarator): Simplify CVR qualification handling. Allow bad
4032 qualifiers on typedef types.
4033 * decl2.c (handle_class_head): Adjust make_typename_type call.
4034 * parse.y (nested_name_specifier): Likewise.
4035 (typename_sub0): Likewise.
4036 (typename_sub1): Likewise.
4037 * pt.c (convert_template_argument): Adjust make_typename_type
4038 return value.
4039 (tsubst): Adjust cp_build_qualified_type_real calls.
1a55127d 4040 (check_cv_quals_for_unify): Cope with allowing bad qualifications
4f2b0fb2
NS
4041 on template type parms.
4042 (instantiate_decl): Recheck substitutions to give warnings on bad
4043 qualifications.
4044 * tree.c (cp_build_qualified_type_real): Use tf_allow_bad_quals.
4045
8fc2ba41
AH
40462002-02-21 Aldy Hernandez <aldyh@redhat.com>
4047
84d901be 4048 * cp/decl.c (duplicate_decls): Merge always_inline attribute.
8fc2ba41 4049
84d901be
AD
4050 * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
4051 unless DECL_ALWAYS_INLINE.
8fc2ba41 4052
7552da58
JJ
40532002-02-20 Jakub Jelinek <jakub@redhat.com>
4054
4055 * typeck.c (cp_pointer_int_sum): Renamed from
4056 pointer_int_sum, call pointer_int_sum.
4057
00fae85d
JJ
40582002-02-20 Jakub Jelinek <jakub@redhat.com>
4059
4060 * decl.c (duplicate_decls): Return 0 if issued error about
4061 redeclaration.
4062
6ea868b7
JM
40632002-02-19 Jason Merrill <jason@redhat.com>
4064
500abaa8 4065 ABI change: Mangle `void (A::*)() const' as
6ea868b7
JM
4066 M1AKFvvE, not MK1AFvvE.
4067 * mangle.c (write_function_type): Write cv-quals for member
4068 function type here.
4069 (write_pointer_to_member_type): Not here.
4070
c02f5e29
JM
40712002-02-18 Jason Merrill <jason@redhat.com>
4072
4073 * pt.c (do_type_instantiation): Don't pedwarn if in_system_header.
4074 (do_decl_instantiation): Likewise.
4075
624a5800
CR
40762002-02-17 Craig Rodrigues <rodrigc@gcc.gnu.org>
4077
4078 PR c++/5685
4079 * decl.c (duplicate_decls): Make warning unconditional
4080 if duplicate default argument declarations are present.
4081
f6f8ada3
JJ
40822002-02-17 Jakub Jelinek <jakub@redhat.com>
4083
4084 * typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
4085 shortening.
4086
8d6e459d
NS
40872002-02-15 Nathan Sidwell <nathan@codesourcery.com>
4088
4089 * decl.c (grokdeclarator): Set typedef_decl for all TYPE_DECLs,
4090 remove incorrect comment. Move #if 0'd code to common path. Use
4091 IMPLICIT_TYPENAME_P. Simplify & reformat ARRAY_TYPE duplication.
4092
ca4feb54
JM
40932002-02-13 Jason Merrill <jason@redhat.com>
4094
57d5032b
JM
4095 * decl.c (builtin_function): Set TREE_THIS_VOLATILE on return fns.
4096 (finish_function): Don't warn if current_function_returns_null.
4097
bb26522d
JM
4098 * typeck2.c (digest_init): Do handle values of vector type.
4099
ca4feb54
JM
4100 * typeck2.c (digest_init, process_init_constructor): Treat vectors
4101 like arrays.
4102
e6b9638b
JM
41032002-02-11 Jason Merrill <jason@redhat.com>
4104
4105 * parse.y (reserved_declspecs): Don't handle attributes.
4106 (reserved_typespecquals): Handle them here.
4107 * Make-lang.in (parse.c): Adjust expected conflicts.
4108
1cf537c5
JJ
41092002-02-08 Jakub Jelinek <jakub@redhat.com>
4110
4111 * parse.y (primary, primary_no_id): Use compstmt_or_stmtexpr
4112 instead of compstmt.
4113 (compstmt_or_stmtexpr): Renamed from compstmt.
4114 (compstmt): In addition to compstmt_or_stmtexpr clear last_expr_type.
4115
c2ea3a40
NS
41162002-02-07 Nathan Sidwell <nathan@codesourcery.com>
4117
4118 Rename instantiate_type_flags to tsubst_flags_t & expand use.
4119 * cp-tree.h (instantiate_type_flags): Rename to ...
4120 (tsubst_flags_t): ... here. Rename itf_complain to tf_error,
4121 add tf_warning flag.
4122 (instantiate_type): Adjust prototype.
4123 (tsubst, tsubst_expr, tsubst_copy, lookup_template_class,
4124 do_type_instantiation, cp_build_qualified_type_real): Likewise.
4125 cp_build_qualified_type: Adjust.
4126 * class.c (instantiate_type): Adjust parameter. Rename itf_* to
4127 tf_*.
4128 * call.c (standard_conversion): Rename itf_* to tf_*.
4129 (reference_binding): Likewise.
4130 (convert_like_real): Likewise.
4131 * cvt.c (cp_convert_to_pointer): Likewise.
4132 (convert_to_reference): Likewise.
4133 * decl.c (lookup_namespace_name): Use tf_* flags.
4134 (make_typename_type): Likewise.
4135 (grokdeclarator): Likewise.
4136 * pt.c (convert_nontype_argument): Adjust COMPLAIN usage.
4137 (coerce_template_template_parms, convert_template_argument,
4138 coerce_template_parms, maybe_get_template_decl_from_type_decl,
4139 lookup_template_class, tsubst_friend_function, tsubst_friend_class,
500abaa8
AJ
4140 instantiate_class_template, tsubst_template_arg_vector,
4141 tsubst_template_parms, tsubst_aggr_type, tsubst_default_argument,
c2ea3a40 4142 tsubst_decl, tsubst_arg_types, tsubst_function_type,
500abaa8 4143 tsubst_call_declarator_parms, tsubst, tsubst_copy, tsubst_expr,
c2ea3a40 4144 instantiate_template, fn_type_unification,
500abaa8
AJ
4145 resolve_overloaded_unification, verify_class_unification,
4146 unify, get_bindings_real, do_type_instantiation,
4147 regenerate_decl_from_template, instantiate_decl,
c2ea3a40
NS
4148 tsubst_initializer_list, tsubst_enum,
4149 get_mostly_instantiated_function_type,
4150 invalid_nontype_parm_type_p): Likewise.
4151 * tree.c (cp_build_qualified_type_real): Likewise.
4152 * typeck.c (build_binary_op): Rename itf_* to tf_*.
4153 (build_ptrmemfunc): Likewise.
4154 (convert_for_assignment): Likewise.
4155
d5614afb
NS
41562002-02-07 Nathan Sidwell <nathan@codesourcery.com>
4157
4158 PR c++/109
4159 * decl.c (grokdeclarator): Allow friend declarations from
8d6e459d 4160 dependent types.
d5614afb
NS
4161 * decl2.c (handle_class_head): Don't push into template parm contexts.
4162 * pt.c (push_template_decl_real): Template parm contexts are never
4163 being defined.
4164
1af6141b
AO
41652002-02-05 Alexandre Oliva <aoliva@redhat.com>
4166
4167 * class.c: Include target.h.
4168 (check_bitfield_decl): Disregard EMPTY_FIELD_BOUNDARY,
4169 BITFIELDS_NBYTES_LIMITED and PCC_BITFIELD_TYPE_MATTERS for MS
4170 bit-field layout.
4171 * Make-lang.in: Adjust deps.
4172
d8a6f584
JM
41732002-02-05 Jason Merrill <jason@redhat.com>
4174
4175 * error.c (dump_type): Be more helpful about VECTOR_TYPE.
4176
6f9fdf4d
JJ
41772002-02-04 Jakub Jelinek <jakub@redhat.com>
4178
4179 * semantics.c (begin_switch_stmt): Clear SWITCH_TYPE.
4180 (finish_switch_cond): Set SWITCH_TYPE.
4181
14691f8d
RH
41822002-02-04 Richard Henderson <rth@redhat.com>
4183
4184 * method.c (use_thunk): Always initialize the block tree. Reindent.
4185 * semantics.c (expand_body): Emit thunks after function, not before.
4186
e89a6075
JM
41872002-02-04 Jason Merrill <jason@redhat.com>
4188
4189 * decl.c (start_function): Call cplus_decl_attributes immediately
4190 after grokdeclarator.
4191
4192 * decl.c (start_function): Combine DECL_RESULT handling code.
4193
9780c24f
JM
41942002-02-03 Jason Merrill <jason@redhat.com>
4195
4196 * xref.c: Remove.
4197 * Make-lang.in (CXX_OBJS): Remove cp/xref.o
4198 (cp/xref.o): Remove dependencies.
4199 * class.c (finish_struct_1, check_methods): Don't call xref fns.
4200 (finish_struct_1): Likewise.
4201 * friend.c (make_friend_class): Likewise.
4202 * lex.c (cxx_init, cxx_finish, extract_interface_info): Likewise.
4203 * spew.c (read_process_identifier): Likewise.
4204
65f36ac8
JM
42052002-02-01 Jason Merrill <jason@redhat.com>
4206
efe49da0 4207 PR c++/4872
500abaa8 4208 * decl.c (finish_function): Warn about a non-void function with
efe49da0
JM
4209 no return statement and no abnormal exit.
4210 * cp-tree.h (struct cp_language_function): Add returns_abnormally.
4211 (current_function_returns_abnormally): New macro.
4212 * call.c (build_call): Set it.
4213
f2d9afec
JM
4214 * typeck.c (build_component_ref): Always complain about offsetof
4215 constructs on non-PODs. Only make it an error for members of
4216 virtual bases.
4217
65f36ac8
JM
4218 * error.c (dump_scope): Don't add TFF_DECL_SPECIFIERS.
4219 (dump_function_decl): Always dump parms.
4220
4221 * decl2.c (finish_static_data_member_decl): Complain about a local
4222 class with a static data member.
4223
4224 PR c++/4286
4225 * search.c (lookup_field_1): Don't xref a static data member
4226 just because we looked it up.
4227
98884b26
JM
42282002-01-31 Jason Merrill <jason@redhat.com>
4229
b88c0704
JM
4230 * Make-lang.in (parse.c): Handle .output file.
4231
a588fe25
JM
4232 PR c++/3395
4233 * decl.c (xref_tag): Remember early attributes in TYPE_ATTRIBUTES,
4234 not TREE_TYPE.
4235 * semantics.c (finish_class_definition): Adjust.
4236
98884b26
JM
4237 Allow attributes in parms and casts.
4238 * parse.y (named_parm): Don't strip attrs.
4239 (declmods): Remove 'attributes' production.
4240 (nonempty_cv_qualifiers): Accept attributes.
4241 (ATTRIBUTE): Give precedence.
4242 * decl.c (groktypename): Handle attributes.
4243 (grokparms): Likewise.
4244
ffdeea47
JJ
42452002-01-29 Jakub Jelinek <jakub@redhat.com>
4246
4247 * decl2.c (cxx_decode_option): Pass 0 as last argument to
4248 cpp_handle_option.
4249 * lang-specs.h: Use cpp_unique_options instead of cpp_options
4250 when used together with cc1_options.
4251
b8b98c66
NS
42522002-01-29 Nathan Sidwell <nathan@codesourcery.com>
4253
4254 PR c++/5132
4255 * typeck2.c (digest_init): Make sure non-array core type is
4256 instantiated.
4257 * decl2.c (reparse_absdcl_as_casts): Just store the type in the
4258 constructor, rather than build a new one.
4259 (build_expr_from_tree, CONSTRUCTOR case): Be careful with the
4260 PURPOSE of constructor elts.
4261
7437519c
ZW
42622002-01-23 Zack Weinberg <zack@codesourcery.com>
4263
4264 * Make-lang.in (parse.c): Adjust expected number of
4265 shift-reduce conflicts.
4266 (decl.o): Depend on diagnostic.h.
4267 * decl.c: Include diagnostic.h.
4268 (grokdeclarator): Check for null pointer.
4269 (finish_function): Don't abort when
4270 current_binding_level->parm_flag != 1, if errors have
4271 occurred; throw away the statement tree and extra binding
4272 levels, and continue.
4273 * lex.c (note_list_got_semicolon): Check for null pointer.
4274 * method.c (hack_identifier): Just return error_mark_node if
4275 value is error_mark_node.
4276 * parse.y (primary: TYPEID(type_id)): No need to use
4277 TYPE_MAIN_VARIANT here.
4278 (handler_seq): Accept an empty list of catch clauses and
4279 generate a fake handler block to avoid later crashes.
4280 (ansi_raise_identifier): Accept the error token too.
4281 * semantics.c (begin_class_definition,
4282 finish_class_definition): Check for error_mark_node.
4283
c588e52b
ZW
42842002-01-23 Zack Weinberg <zack@codesourcery.com>
4285
4286 * typeck2.c (friendly_abort): Delete definition.
4287 * cp-tree.h (friendly_abort): Don't prototype.
4288 (my_friendly_assert): Use fancy_abort.
4289
d55ecaa4
CR
42902002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org>
4291
4292 * cp-tree.h (my_friendly_abort): Remove.
4293
0a01c261
JJ
42942002-01-23 Jakub Jelinek <jakub@redhat.com>
4295
4296 * spew.c (pending_inlines, pending_inlines_tail,
4297 processing_these_inlines): Make static.
4298 (mark_pending_inlines): Remove static.
4299 (begin_parsing_inclass_inline): If in function, save pi
4300 for GC to cp_function_chain->unparsed_inlines instead.
4301 (process_next_inline): Likewise.
4302 * cp-tree.h (struct cp_language_function): Add unparsed_inlines.
4303 (mark_pending_inlines): Add prototype.
4304 * decl.c (spew_debug): Remove unused extern.
4305 (mark_lang_function): Call mark_pending_inlines.
4306
a98facb0
CR
43072002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org>
4308
c588e52b
ZW
4309 * call.c, class.c, decl.c, decl2.c, error.c, expr.c, friend.c,
4310 init.c, lex.c, mangle.c, method.c, pt.c, repo.c, rtti.c, search.c,
4311 semantics.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c:
a98facb0
CR
4312 Change my_fancy_abort() to abort().
4313
f893c16e
JM
43142002-01-23 Jason Merrill <jason@redhat.com>
4315
608afcc5
JM
4316 PR c++/5453
4317 * class.c (fixed_type_or_null): Fix thinko.
4318
f893c16e
JM
4319 PR c++/3331
4320 * init.c (resolve_offset_ref): Use build_indirect_ref.
6bc34b14 4321
b2115575
JM
4322 * decl2.c (grokclassfn): Don't set DECL_REGISTER on 'this'.
4323
f893c16e
JM
43242002-01-22 Jason Merrill <jason@redhat.com>
4325
b5856475
JM
4326 * parse.y (function_body): Suppress the block for the outermost
4327 curly braces.
4328 * decl.c (pushdecl): Don't try to skip it.
4329 (begin_function_body): Keep the block we create, not the next one.
4330 * init.c (emit_base_init): Don't mess with keep_next_level.
4331
6bc34b14
JM
4332 * class.c (build_base_path): Tweak formatting.
4333
3807621a
NS
43342002-01-19 Nathan Sidwell <nathan@codesourcery.com>
4335
4336 Fix regression introduced with patch for c++/775
4337 * parse.y (class_head_defn): Check for template specializations
4338 with a different class-key.
4339
cdd2559c
JM
43402002-01-17 Jason Merrill <jason@redhat.com>
4341
4342 * decl.c (begin_constructor_body, begin_destructor_body): New fns.
4343 (begin_function_body): Call them and keep_next_level.
4344 * init.c (emit_base_init): Call keep_next_level.
4345 * semantics.c (setup_vtbl_ptr): Lose.
4346 * cp-tree.h (struct cp_language_function): Remove vtbls_set_up_p.
4347 (vtbls_set_up_p): Lose.
4348 * pt.c (tsubst_expr, CTOR_INITIALIZER): Call emit_base_init.
4349 * method.c (do_build_copy_constructor): Likewise.
4350 (synthesize_method): Call finish_mem_initializers.
4351 * parse.y (nodecls): Likewise.
ad6b1795
JM
4352
4353 * error.c (dump_type_suffix): Print the exception specs before
4354 recursing.
4355 (dump_function_decl): Here, too.
4356
4357 * cp-tree.h (TMPL_PARMS_DEPTH): Cast to signed HOST_WIDE_INT.
4358
195a5def
IR
43592002-01-10 Ira Ruben <ira@apple.com>
4360
6bc34b14 4361 PR c++/907
195a5def
IR
4362 * decl.c (start_method): Handle attrlist.
4363
f21ee879
JJ
43642002-01-10 Jakub Jelinek <jakub@redhat.com>
4365
4366 * decl2.c (max_tinst_depth): Increase default limit to 500.
4367
43682002-01-10 Graham Stott <grahams@redhat.com>
8fabd4e2
GS
4369
4370 * spew.c (YYCHAR): Uppercase macro parameter and add
4371 parenthesis.
4372 (YYCODE): Likewise.
4373 (NAME): Uppercase macro parameter.
4374
c3af729a
GS
43752002-01-09 Graham Stott <grahams@redhat.com>
4376
6bc34b14 4377 * decl.h (grokdeclarator): Wrap long line.
5d8b4235 4378
c3af729a
GS
4379 * semantics.c (FINISH_COND): Uppercase macro paramaters and
4380 add parenthesis.
4381
91800747
GS
43822002-01-08 Graham Stott <grahams@redhat.com>
4383
4384 * xref.c (FILE_NAME_ABSOLUTE_P): Add parenthesis.
4385 (PALLOC): Uppercase macro parameter and whitespace.
4386 (SALLOC): Uppercase macro parameter.
4387 (SFREE): Uppercase macros parameter, add parenthese and
4388 whitespace.
4389 (STREQL): Uppercase macro parameter and whitespace.
4390 (STRNEQ): Likewise.
4391 (STRLSS): Likewise.
4392 (STRLEQ): Likewise.
4393 (STRGTR): Likewise.
4394 (STRGEQ): Likewise.
4395
4396 * call.c (convert_like): Add parenthesis and wrap.
4397 (convert_like_with_context): Likewise.
4398 (ICS_RANK): Whitespace.
4399 (NEED_TEMPORARY_P): Remove parenthesis.
4400
4401 * class.c (VTT_TOP_LEVEL_P): Uppercase macro parameter and
4402 whitespace.
4403 (VTT_MARKED_BINFO_P): Likewise.
4404
4405 * decl.c (BINDING_LEVEL): Add parenthesis.
4406 (DEF_OPERATOR): Likewise.
4407
91800747
GS
4408 * mangle.c (MANGLE_TRACE): Add parenthesis.
4409 (MANGLE_TRACE_TREE): Likewise.
4410 (write_signed_number): Likewise.
4411 (write_unsigned_number): Likewise.
4412
4413 * pt.c (ccat): Uppercase macro parameter.
4414 (cat): Likewise
4415
4416 * search.c (SET_BINFO_ACCESS): Add parenthesis.
4417
15eb1e43
JM
44182002-01-07 Jason Merrill <jason@redhat.com>
4419
4420 * decl2.c (coerce_new_type): Downgrade error for size_t mismatch
4421 to pedwarn.
4422
6bc34b14 4423 PR c++/3536
15eb1e43
JM
4424 * method.c (make_thunk): If !flag_weak, give the thunk the
4425 function's linkage.
4426 (use_thunk): Here, too.
4427
b34c06e3
GS
44282002-01-07 Graham Stott <grahams@redhat.com>
4429
6bc34b14
JM
4430 * error.c: Update copyright date.
4431 (print_scope_operator): Add parenthesis.
4432 (print_left_paren): Likewise.
4433 (print_right_paren): Likewise.
4434 (print_left_bracket): Likewise.
4435 (print_right_bracket): Likewise.
4436 (print_template_argument_list_start): Likewise.
4437 (print_template_argument_list_end): Likewise.
4438 (print_non_consecutive_character): Likewise.
4439 (print_tree_identifier): Likewise.
4440 (print_identifier): Likewise.
4441 (NEXT_CODE): Uppercase macro parameter.
4442 (ident_fndecl): Delete unused.
4443 (GLOBAL_THING): Likewise.
b34c06e3 4444
98e40e83
GS
44452002-01-06 Graham Stott <grahams@redhat.com>
4446
4447 * cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK): Add parenthesis.
4448 (VAR_FUNCTION_OR_PARM_DECL_CHECK): Likewise.
4449 (VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK) Likewise.
4450 (RECORD_OR_UNION_TYPE_CHECK): Likewise.
4451 (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Likewise.
4452 (C_IS_RESERVED_WORD): Uppercase macro parameter.
4453 (C_RID_YYCODE) Likewise.
4454 (ptrmem_cst): Use rtx.
4455 (LOCAL_BINDING_P): Add whitespace.
4456 (INHERITED_VALUE_BINDING_P): Likewise.
4457 (BINDING_SCOPE): Wrap long line.
4458 (BINDING_HAS_LEVEL_P): Remove parenthesis.
4459 (BINDING_VALUE): Wrap long line.
4460 (BINDING_TYPE): Whitespace.
4461 (IDENTIFIER_GLOBAL_VALUE): Add parenthesis.
4462 (SET_IDENTIFIER_GLOBAL_VALUE): Likewise.
c588e52b 4463 (IDENTIFIER_NAMESPACE_VALUE): Likewise.
98e40e83
GS
4464 (SET_IDENTIFIER_NAMESPACE_VALUE: Likewise.
4465 (same_type_p): Uppercase macro parameters.
4466 (same_type_ignoring_top_level_qualifiers_p): Likewise.
4467 (OVL_FUNCTION): Wrap long line.
4468 (OVL_CHAIN): Whitespace.
b34c06e3 4469 (OVL_CURRENT): Add parenthesis and whitespace.
98e40e83
GS
4470 (OVL_NEXT): Whitespace.
4471 (OVL_USED): Likewise.
4472 (IDENTIFIER_TYPE_VALUE): Likewise.
4473 (REAL_IDENTIFIER_TYPE_VALUE): Remove parenthesis.
4474 (SET_IDENTIFIER_TYPE_VALUE): Add parenthesis and whitespace.
4475 (LANG_ID_FIELD): Whitespace.
4476 (SET_LANG_ID(NODE,VALUE,NAME): Likewise.
4477 (IDENTIFIER_LABEL_VALUE): Whitespace and wrap.
4478 (SET_IDENTIFIER_LABEL_VALUE): Whitespace.
4479 (IDENTIFIER_IMPLICIT_DECL): Whitespace and wrap.
4480 (SET_IDENTIFIER_IMPLICIT_DECL); Whitespace.
4481 (IDENTIFIER_ERROR_LOCUS): Whitespace and wrap.
4482 (SET_IDENTIFIER_ERROR_LOCUS); Whitespace.
4483 (IDENTIFIER_VIRTUAL_P): Likewise.
4484 (IDENTIFIER_OPNAME_P): Likewise.
4485 (IDENTIFIER_TYPENAME_P): Remove parenthesis.
4486 (C_TYPE_FIELDS_READONLY): Uppercase macro parameters.
4487 (C_SET_EXP_ORIGINAL_CODE): Likewise.
4488 (TYPE_ASSEMBLER_NAME_STRING): Wrap long line.
4489 (TYPE_ASSEMBLER_NAME_LENGTH): Likewise.
4490 (IS_AGGR_TYPE): Uppercase macro parameter.
4491 (CLASS_TYPE_P): Likewise.
4492 (IS_AGGR_TYPE_CODE): Uppercase macro parameter and parenthesis.
4493 (IS_AGGR_TYPE_2): Whitespace.
4494 (TAGGED_TYPE_P): Uppercase macro parameter.
4495 (TYPE_BUILT_IN): Whitespace.
4496 (TYPE_FOR_JAVA): Likewise.
4497 (FUNCTION_ARG_CHAIN): Remove parenthesis.
4498 (FUNCTION_FIRST_USER_PARMTYPE): Add parenthesis.
4499 (FUNCTION_FIRST_USER_PARAM): Likewise.
4500 (PROMOTES_TO_AGGR_TYPE): Whitespace.
4501 (DERIVED_FROM_P): Add parenthesis and wrap.
4502 (UNIQUELY_DERIVED_FROM_P): Likewise.
4503 (ACCESSIBLY_UNIQUELY_DERIVED_P): Likewise.
4504 (PUBLICLY_UNIQUELY_DERIVED_P): Likewise.
4505 (CLASSTYPE_USE_TEMPLATE): Whitespace.
4506 (CLASSTYPE_INLINE_FRIENDS): Remove parenthesis.
4507 (TYPE_GETS_DELETE): Add parenthesis.
4508 (TYPE_HAS_CONVERSION): Add parenthesis and wrap.
4509 (TYPE_HAS_ASSIGN_REF): Likewise,
4510 (TYPE_HAS_CONST_ASSIGN_REF): Likewise.
4511 (TYPE_HAS_INIT_REF): Likewise.
4512 (TYPE_HAS_CONST_INIT_REF): Likewise.
4513 (TYPE_BEING_DEFINED): Likewise.
4514 (TYPE_LANG_SPECIFIC): Likewise.
4515 (CLASSTYPE_RTTI): Likewise.
4516 (TYPE_OVERLOADS_CALL_EXPR): Likewise.
4517 (TYPE_OVERLOADS_ARRAY_REF): Likewise.
4518 (TYPE_OVERLOADS_ARROW): Likewise.
4519 (TYPE_USES_MULTIPLE_INHERITANCE): Likewise.
4520 (TYPE_USES_VIRTUAL_BASECLASSES): Add parenthesis.
4521 (CLASSTYPE_METHOD_VEC): Likewise.
4522 (CLASSTYPE_MARKED_N): Likewise.
4523 (CLASSTYPE_MARKED): Likewise.
4524 (CLASSTYPE_MARKED2): Likewise.
4525 (CLASSTYPE_MARKED3): Likewise.
4526 (CLASSTYPE_MARKED4): Likewise.
4527 (CLASSTYPE_MARKED5): Likewise.
4528 (CLASSTYPE_MARKED6): Likewise.
4529 (SET_CLASSTYPE_MARKED): Whitespace.
4530 (CLEAR_CLASSTYPE_MARKED): Likewise.
4531 (SET_CLASSTYPE_MARKED2): Likewise.
4532 (CLEAR_CLASSTYPE_MARKED2): Likewise.
4533 (SET_CLASSTYPE_MARKED3): Likewise.
4534 (CLEAR_CLASSTYPE_MARKED3): Likewise.
4535 (SET_CLASSTYPE_MARKED4): Likewise.
4536 (CLEAR_CLASSTYPE_MARKED4): Likewise.
4537 (SET_CLASSTYPE_MARKED5): Likewise.
4538 (CLEAR_CLASSTYPE_MARKED5): Likewise.
4539 (SET_CLASSTYPE_MARKED6): Likewise.
4540 (CLEAR_CLASSTYPE_MARKED6): Likewise.
4541 (CLASSTYPE_TAGS): Likewise.
4542 (CLASSTYPE_VSIZE): Likewise.
4543 (CLASSTYPE_VBASECLASSES): Likewise.
4544 (CANONICAL_BINFO): Add parenthesis.
4545 (CLASSTYPE_SIZE(NODE): Likewise.
4546 (CLASSTYPE_SIZE_UNIT): Likewise.
4547 (CLASSTYPE_ALIGN(NODE): Likewise.
4548 (CLASSTYPE_USER_ALIGN): Likewise.
4549 (TYPE_JAVA_INTERFACE): Likewise.
4550 (CLASSTYPE_PURE_VIRTUALS): Likewise.
4551 (CLASSTYPE_NEEDS_VIRTUAL_REINIT): Whitespace and wrap.
4552 (TYPE_HAS_DEFAULT_CONSTRUCTOR): Likewise.
4553 (CLASSTYPE_HAS_MUTABLE): Likewise.
4554 (CLASSTYPE_FRIEND_CLASSES): Likewise. Likewise.
4555 (CLASSTYPE_DECLARED_CLASS): Whitespace and wrap.
4556 (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Likewise.
4557 (CLASSTYPE_REF_FIELDS_NEED_INIT): Likewise.
4558 (CLASSTYPE_INTERFACE_ONLY): Likewise.
4559 (CLASSTYPE_INTERFACE_KNOWN): Likewise.
4560 (CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
4561 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
4562 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
4563 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
4564 (CLASSTYPE_DEBUG_REQUESTED): Whitespace and wrap.
4565 (BINFO_UNSHARED_MARKED): Whitespace.
4566 (BINFO_MARKED): Whitespace and wrap.
4567 (SET_BINFO_MARKED): Likewise.
4568 (CLEAR_BINFO_MARKED): Likewise.
4569 (BINFO_VTABLE_PATH_MARKED): Likewise.
4570 (SET_BINFO_VTABLE_PATH_MARKED): Likewise.
4571 (CLEAR_BINFO_VTABLE_PATH_MARKED): Likewise.
4572 (BINFO_SUBVTT_INDEX): Remove parenthesis.
4573 (BINFO_VPTR_INDEX): Likewise.
4574 (BINFO_PRIMARY_BASE_OF): Likewise,
4575 (CLASSTYPE_VFIELDS): Whitespace.
4576 (VF_DERIVED_VALUE): Wrap long line.
4577 (NAMESPACE_LEVEL): Whitespace.
6bc34b14
JM
4578 (CAN_HAVE_FULL_LANG_DECL_P): Remove parenthesis.
4579 (DEFARG_POINTER): Whitespace.
4580 (DECL_NEEDED_P): Remove parenthesis.
4581 (DECL_LANGUAGE): Whitespace.
4582 (SET_DECL_LANGUAGE): Add parenthesis.
4583 (DECL_CONSTRUCTOR_P): Whitespace and wrap.
4584 (DECL_OVERLOADED_OPERATOR_P): Remove parenthesis.
4585 (DECL_IN_AGGR_P): Whitespace.
4586 (DECL_FRIEND_P): Likewise.
4587 (DECL_BEFRIENDING_CLASSES): Likewise.
4588 (DECL_STATIC_FUNCTION_P): Whitespace and wrap.
4589 (DECL_NONCONVERTING_P): Whitespace.
4590 (DECL_PURE_VIRTUAL_P): Likewise.
4591 (DECL_NEEDS_FINAL_OVERRIDER_P): Likewise.
4592 (DECL_PENDING_INLINE_INFO): Whitespace.
4593 (DECL_SORTED_FIELDS): Likewise.
4594 (DECL_DEFERRED_FN): Likewise.
4595 (DECL_TEMPLATE_INFO): Likewise.
4596 (CLASSTYPE_TEMPLATE_INFO): Whitespace and wrap.
4597 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO); Likewise.
4598 (SET_TYPE_TEMPLATE_INFO): Add parenthesis.
4599 (TMPL_ARGS_LEVEL): Likewise.
4600 (SET_TMPL_ARGS_LEVEL): Likewise.
4601 (INNERMOST_TEMPLATE_PARMS): Whitespace.
4602 (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter.
4603 (INTEGRAL_CODE_P(CODE): Add parenthesis.
4604 (CP_INTEGRAL_TYPE_P): Remove parenthesis.
4605 (TYPE_HAS_CONSTRUCTOR): Whitespace.
4606 (TREE_HAS_CONSTRUCTOR): Likewise.
4607 (TYPE_HAS_DESTRUCTOR): Likewise.
4608 (TYPE_HAS_REAL_ASSIGN_REF): Likewise.
4609 (TYPE_HAS_COMPLEX_ASSIGN_REF): Likewise.
4610 (TYPE_HAS_ABSTRACT_ASSIGN_REF): Likewise.
4611 (TYPE_HAS_COMPLEX_INIT_REF): Likewise.
4612 (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): Likewise.
4613 (TYPE_PTRMEMFUNC_P): Likewise.
4614 (TYPE_PTRMEMFUNC_FLAG): Likewise.
4615 (TYPE_GET_PTRMEMFUNC_TYPE): Likewise.
4616 (TYPE_SET_PTRMEMFUNC_TYPE): Likewise.
4617 (TYPE_PTRMEM_CLASS_TYPE): Remove parenthesis.
4618 (TYPE_PTRMEM_POINTED_TO_TYPE): Likewise.
4619 (DECL_ACCESS): Whitespace.
4620 (DECL_GLOBAL_CTOR_P): Remove parenthesis.
4621 (DECL_GLOBAL_DTOR_P): Likewise.
4622 (GLOBAL_INIT_PRIORITY): Likewise.
98e40e83 4623 (DECL_TEMPLATE_PARMS): Likewise.
6bc34b14
JM
4624 (DECL_TEMPLATE_RESULT): Likewise.
4625 (DECL_TEMPLATE_INSTANTIATIONS): Likewise.
4626 (DECL_TEMPLATE_SPECIALIZATIONS): Likewise.
4627 (DECL_IMPLICIT_TYPEDEF_P): Remove parenthesis.
4628 (SET_DECL_IMPLICIT_TYPEDEF_P): Likewise.
4629 (PRIMARY_TEMPLATE_P): Add parenthesis.
4630 (DECL_USE_TEMPLATE): Whitespace.
4631 (CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise.
4632 (SET_CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise.
4633 (CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise.
4634 (SET_CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise.
4635 (CALL_DECLARATOR_PARMS): Remove parenthesis.
4636 (CALL_DECLARATOR_QUALS): Likewise.
4637 (CALL_DECLARATOR_EXCEPTION_SPEC): Likewise.
4638 (TEMP_NAME_P): Wrap.
4639 (VFIELD_NAME_P): Likewise.
4640 (B_SET): Uppercase macro parameters and add parenthesis.
4641 (B_CLR): Likewise.
4642 (B_TST): Likewise.
4643 (LOOKUP_NAMESPACES_ONLY): Uppercase macro parameters.
4644 (LOOKUP_TYPES_ONLY): Uppercase macro parameters.
4645 (LOOKUP_QUALIFIERS_ONLY): Uppercase macro parameters.
4646 (same_or_base_type_p): Likewise.
4647 (cp_deprecated): Likewise.
98e40e83 4648
c28abdf0
RH
46492002-01-05 Richard Henderson <rth@redhat.com>
4650
15eb1e43 4651 * semantics.c (expand_body): Revert last change.
c28abdf0 4652
f11ee281
JM
46532002-01-04 Jason Merrill <jason@redhat.com>
4654
195a5def 4655 PR c++/4122
f11ee281
JM
4656 * class.c (update_vtable_entry_for_fn): Set delta to zero for a
4657 lost primary.
4658
4659 * class.c (build_vtbl_initializer): Check for a lost primary
4660 before calculating the vtable entry to throw away.
4661
a4200657
JM
46622002-01-02 Jason Merrill <jason@redhat.com>
4663
4664 * semantics.c (expand_body): Call outlining_inline_function when
4665 emitting an inline function out of line.
4666
40e593d7
NS
46672002-01-02 Nathan Sidwell <nathan@codesourcery.com>
4668
4669 PR c++/5116, c++/764 reversion
4670 * call.c (build_new_op): Revert the instantiations. They are
4671 incorrect.
c588e52b 4672
323728aa
NS
46732002-01-02 Nathan Sidwell <nathan@codesourcery.com>
4674
4675 PR c++/5089
4676 * decl2.c (reparse_absdcl_as_casts): Don't warn about casts to void.
4677
46c895ac
NS
46782002-01-02 Nathan Sidwell <nathan@codesourcery.com>
4679
4680 PR c++/3716
4681 * pt.c (tsubst_aggr_type): Move pmf handling into tsubst.
4682 (tsubst, case POINTER_TYPE): Handle pmfs here.
4683 (tsubst, case OFFSET_TYPE): Check it is not an offset to
4684 reference. If it is offset to FUNCTION_TYPE, create a METHOD_TYPE.
4685
833aa4c4
NS
46862002-01-02 Nathan Sidwell <nathan@codesourcery.com>
4687
4688 PR c++/35
4689 * cp-tree.h (DECL_LANG_FLAG_0): Used for PARM_DECL too.
4690 (DECL_TEMPLATE_PARM_P): A PARM_DECL might be one too.
4691 * pt.c (process_template_parm): SET_DECL_TEMPLATE_PARM_P on the
4692 PARM_DECL.
4693 (tsubst_template_parms): Break up loop statements.
4694 (tsubst_decl, case PARM_DECL): Copy DECL_TEMPLATE_PARM_P. Template
4695 parm PARM_DECLs don't get promoted.
4696
18976b21
NS
46972002-01-02 Nathan Sidwell <nathan@codesourcery.com>
4698
4699 PR c++/5123
4700 * typeck.c (build_component_ref): Cope with a TEMPLATE_ID_EXPR.
4701 (build_x_function_call): Cope with a COMPONENT_REF containing a
4702 TEMPLATE_ID_EXPR.
4703
303d1c55
NS
47042002-01-02 Nathan Sidwell <nathan@codesourcery.com>
4705
4706 PR c++/5213
4707 * pt.c (convert_template_argument): Be more careful determining
4708 when RECORD_TYPE templates are or are not templates.
4709
d46a33b3
NS
47102002-01-02 Nathan Sidwell <nathan@codesourcery.com>
4711
4712 PR c++/775
4713 * cp-tree.h (handle_class_head): Adjust prototype.
4714 * decl2.c (handle_class_head): Add DEFN_P and NEW_TYPE_P
4715 parameters. Use for all class heads.
4716 * parse.y (named_class_head_sans_basetype, named_class_head,
4717 named_complex_class_head_sans_basetype,
4718 named_class_head_sans_basetype_defn,
4719 unnamed_class_head): Remove.
4720 (class_head, class_head_apparent_template): Recognize class heads
4721 (class_head_decl, class_head_defn): New reductions. Process class
4722 heads.
4723 (structsp): Adjust class definition and class declaration
4724 reductions.
4725 (maybe_base_class_list): Give diagnostic on empty list.
4726
4542128e
NS
47272002-01-02 Nathan Sidwell <nathan@codesourcery.com>
4728
4729 PR c++/4379
4730 * typeck.c (build_x_unary_op): Don't destroy the OFFSET_REF on a
4731 single non-static member.
4732 (unary_complex_lvalue): If it cannot be a pointer to member, don't
4733 make it so. Check it is not pointer to reference.
4734
903c6234
NS
47352002-01-02 Nathan Sidwell <nathan@codesourcery.com>
4736
4737 PR c++/5132
4738 * decl2.c (reparse_absdcl_as_casts): Don't digest_init if we
4739 are processing a template decl.
4740
477558bf
NS
47412002-01-02 Nathan Sidwell <nathan@codesourcery.com>
4742
4743 PR c++/5116, c++/764
4744 * call.c (build_new_op): Make sure template class operands are
4745 instantiated. Simplify arglist construction.
4746
41f5d4b1
NS
47472001-12-29 Nathan Sidwell <nathan@codesourcery.com>
4748
4749 * call.c (build_user_type_conversion_1): Use my_friendly_assert
4750 rather than if ... abort.
4751 * cvt.c (convert_to_reference): Likewise.
4752 * semantics.c (setup_vtbl_ptr): Likewise.
4753 * pt.c (lookup_template_class): Comment typo.
c588e52b 4754
f3368a90
NS
47552001-12-29 Nathan Sidwell <nathan@codesourcery.com>
4756
4757 PR c++/5125
4758 * pt.c (push_template_decl_real): Make sure DECL has
4759 DECL_LANG_SPECIFIC.
4760
03c9c274
NS
47612001-12-29 Nathan Sidwell <nathan@codesourcery.com>
4762
4763 PR c++/335
4764 * init.c (resolve_offset_ref): Copy cv qualifiers of this pointer
4765 for non-reference fields.
4766 * typeck.c (require_complete_type): Use resolve_offset_ref).
4767
7d8e8369
NS
47682001-12-26 Nathan Sidwell <nathan@codesourcery.com>
4769
4770 PR c++/196
03c9c274 4771 * parse.y (bad_parm): Better diagnostic when given a SCOPE_REF.
7d8e8369 4772
a56ca899
NS
47732001-12-24 Nathan Sidwell <nathan@codesourcery.com>
4774
4775 PR c++/160
4776 * typeck.c (build_modify_expr): Remove old unreachable code & tidy
4777 up. Don't stabilize_references when initializing a reference.
4778
0b5826ac
KG
47792001-12-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4780
4781 * decl2.c (lang_f_options): Const-ify.
4782
38be19f6
JM
47832001-12-20 Joseph S. Myers <jsm28@cam.ac.uk>
4784
4785 * config-lang.in (diff_excludes): Remove.
4786
2e4cf9dc
NS
47872001-12-19 Nathan Sidwell <nathan@codesourcery.com>
4788
4789 PR c++/90
4790 * typeck.c (build_function_call_real): Use original function
4791 expression for errors.
4792
00e4119c
JM
47932001-12-18 Jason Merrill <jason@redhat.com>
4794
195a5def 4795 PR c++/3242
00e4119c
JM
4796 * class.c (add_method): Do compare 'this' quals when trying to match a
4797 used function. Don't defer to another used function.
4798
3ad97789
NS
47992001-12-18 Nathan Sidwell <nathan@codesourcery.com>
4800
4801 * pt.c (instantiate_clone): Remove, fold into ...
4802 (instantiate_template): ... here. Simplify by removing mutual
4803 recursion.
4804 * typeck2.c (build_m_component_ref): Don't cv qualify the function
4805 pointed to by a pointer to function.
4806 * class.c (delete_duplicate_fields_1): Typo.
4807
f21add07
JM
48082001-12-18 Jason Merrill <jason@redhat.com>
4809
4810 C++ ABI change: destroy value arguments in caller.
4811 * semantics.c (genrtl_start_function, genrtl_finish_function): Don't
4812 create an extra binding level for the parameters.
4813 * decl.c (store_parm_decls): Don't do parameter cleanups.
4814
ea50ad82
NS
48152001-12-18 Nathan Sidwell <nathan@codesourcery.com>
4816
4817 * call.c (build_new_method_call): Use '%#V'.
4818 * error.c (cv_to_string): Use V parameter to determine padding.
4819
3855d0d1
JM
48202001-12-18 Joseph S. Myers <jsm28@cam.ac.uk>
4821
4822 * call.c, decl2.c, init.c: Use "built-in" and "bit-field"
4823 spellings in messages.
4824
33bd39a2
ZW
48252001-12-17 Zack Weinberg <zack@codesourcery.com>
4826
4827 * cp-tree.h: Delete #defines for cp_error, cp_warning,
4828 cp_pedwarn, and cp_compiler_error.
4829 * call.c, class.c, cp-tree.h, cvt.c, decl.c, decl2.c, error.c,
4830 except.c, friend.c, init.c, lex.c, method.c, parse.y, pt.c,
4831 rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c,
4832 typeck2.c: Change calls to the above macros to use their
4833 language-independent equivalents: error, warning, pedwarn, and
4834 internal_error respectively.
4835
317c26c3
NB
48362001-12-16 Neil Booth <neil@daikokuya.demon.co.uk>
4837
4838 * decl2.c (finish_file): Remove back_end_hook.
4839
aba649ba
JM
48402001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
4841
4842 * ChangeLog.1, ChangeLog.2, ChangeLog, NEWS, call.c, class.c,
4843 cp-tree.h, decl.c, decl2.c, except.c, operators.def, optimize.c,
4844 pt.c, rtti.c, semantics.c, typeck.c: Fix spelling errors.
4845
1737c953
JM
48462001-12-15 Joseph S. Myers <jsm28@cam.ac.uk>
4847
4848 * lang-options.h: Use American spelling in messages.
4849
4a90862e
JM
48502001-12-13 Jason Merrill <jason@redhat.com>
4851
ade3dc07
JM
4852 * Make-lang.in (parse.h): Separate rule, just depend on parse.c.
4853
4854 Use cleanups to run base and member destructors.
4855 * init.c (push_base_cleanups): New function, split out from...
4856 (build_delete): ...here. Lose !TYPE_HAS_DESTRUCTOR code.
4857 * decl.c (finish_destructor_body): Move vbase destruction code to
4858 push_base_cleanups.
4859 (begin_function_body, finish_function_body): New fns.
4860 (finish_function): Move [cd]tor handling and call_poplevel to
4861 finish_function_body.
4862 (pushdecl): Skip the new level.
4863 * semantics.c (genrtl_try_block): Don't call end_protect_partials.
4864 (setup_vtbl_ptr): Call push_base_cleanups.
4865 * method.c (synthesize_method): Call {begin,end}_function_body.
4866 * pt.c (tsubst_expr): Handle COMPOUND_STMT_BODY_BLOCK.
4867 * cp-tree.h: Declare new fns.
4868 * parse.y (function_body, .begin_function_body): New nonterminals.
4869 (fndef, pending_inline, function_try_block): Use function_body.
4870 (ctor_initializer_opt, function_try_block): No longer has a value.
4871 (base_init): Remove .set_base_init token.
4872 (.set_base_init, compstmt_or_error): Remove.
4873 * Make-lang.in (parse.c): Expect two fewer s/r conflicts.
4874
4a90862e
JM
4875 * optimize.c (maybe_clone_body): Fix parameter updating.
4876
a0de9d20
JM
48772001-12-12 Jason Merrill <jason@redhat.com>
4878
4879 * decl.c (store_parm_decls): Remove parms_have_cleanups cruft.
4880 * semantics.c (genrtl_start_function): Don't pass
4881 parms_have_cleanups or push an extra binding level.
4882 (genrtl_finish_function): Lose cleanup_label cruft.
4883
4884 * cp-tree.h (struct cp_language_function): Remove x_ctor_label.
4885 (ctor_label): Remove.
4886 * semantics.c (finish_return_stmt): Lose ctor_label support.
4887 * decl.c (finish_constructor_body, mark_lang_function): Likewise.
33bd39a2 4888 * typeck.c (check_return_expr): Check DECL_DESTRUCTOR_P, not
a0de9d20
JM
4889 dtor_label.
4890
4891 * call.c (build_new_method_call): Let resolves_to_fixed_type_p
4892 check for [cd]tors.
4893 * class.c (fixed_type_or_null, case INDIRECT_REF): Fix.
4894
4895 * decl.c (finish_function): Check VMS_TARGET, not VMS.
4896
4897 * decl.c (start_cleanup_fn): Remove redundant pushlevel.
4898 (end_cleanup_fn): And poplevel.
4899
4900 * semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER
4901 if we're in a template.
4902
dc5c569a
JJ
49032001-12-12 Jakub Jelinek <jakub@redhat.com>
4904
4905 * cp-tree.h (DESTRUCTOR_DECL_PREFIX, DESTRUCTOR_NAME_P,
4906 ANON_PARMNAME_FORMAT, ANON_PARMNAME_P, DESTRUCTOR_NAME_FORMAT,
4907 THIS_NAME_P): Delete.
4908 * spew.c (read_process_identifier): Remove DESTRUCTOR_NAME_P,
4909 THIS_NAME_P and ANON_PARMNAME_P tests from warning about clash
4910 with internal naming scheme.
4911 * error.c (dump_decl): Remove DESTRUCTOR_NAME_P use.
4912
ad1a6d45
NS
49132001-12-12 Nathan Sidwell <nathan@codesourcery.com>
4914
4915 * decl.c (grokdeclarator): Deprecated implicit typename use.
4916
270d8c65
NS
49172001-12-11 Nathan Sidwell <nathan@codesourcery.com>
4918
4919 PR g++/51
4920 * parse.y (frob_specs): Indicate it is a language linkage which
4921 contained the extern.
4922 * decl.c (grokdeclarator): Allow extern language linkage with
4923 other specifiers.
4924
9aaceb4b
NS
49252001-12-10 Nathan Sidwell <nathan@codesourcery.com>
4926
4927 PR g++/72
4928 * decl.c (add_binding): Don't reject duplicate typedefs involving
4929 template parameters.
4930
a23c9413
NB
49312001-12-10 Neil Booth <neil@daikokuya.demon.co.uk>
4932
4933 * parse.y, semantics.c: Similarly.
4934
9aaceb4b 49352001-12-09 Nathan Sidwell <nathan@codesourcery.com>
271e6f02
NS
4936
4937 PR g++/87
4938 * cp-tree.h (DECL_COPY_CONSTRUCTOR_P): Use copy_fn_p.
4939 (copy_args_p): Rename to ...
4940 (copy_fn_p): ... here.
4941 (grok_special_member_properties): New function.
4942 (grok_op_properties): Lose VIRTUALP parameter.
4943 (copy_assignment_arg_p): Remove.
4944 * call.c (build_over_call): Use copy_fn_p.
4945 * decl.c (grokfndecl): Reformat. Adjust call to
4946 grok_op_properties.
4947 (copy_args_p): Rename to ...
4948 (copy_fn_p): ... here. Reject template functions. Check for pass
4949 by value.
4950 (grok_special_member_properties): Remember special functions.
4951 (grok_ctor_properties): Don't remember them here, just check.
4952 (grok_op_properties): Likewise.
4953 (start_method): Call grok_special_member_properties.
4954 * decl2.c (grokfield): Likewise.
4955 (copy_assignment_arg_p): Remove.
4956 (grok_function_init): Don't remember abstract assignment here.
4957 * pt.c (instantiate_class_template): Call
4958 grok_special_member_properties.
4959 (tsubst_decl): Adjust grok_op_properties call.
4960
bdd8737f
AH
49612001-12-08 Aldy Hernandez <aldyh@redhat.com>
4962
33bd39a2
ZW
4963 * lex.c (rid_to_yy): Add RID_CHOOSE_EXPR and
4964 RID_TYPES_COMPATIBLE_P.
bdd8737f 4965
46af705a
JDA
49662001-12-08 John David Anglin <dave@hiauly1.hia.nrc.ca>
4967
4968 * semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in
4969 call to build_aggr_init.
4970 * cp-tree.h (DIRECT_BIND): Document new use of DIRECT_BIND.
4971
cb97d97d
NB
49722001-12-08 Neil Booth <neil@daikokuya.demon.co.uk>
4973
4974 * parse.y: Replace uses of the string non-terminal with STRING.
4975 Don't perform string concatentaion here.
4976 (string): Remove non-terminal.
4977 * semantics.c (finish_asm_stmt): Don't concatenate strings here.
4978
742a37d5
JM
49792001-12-05 Jason Merrill <jason@redhat.com>
4980
4981 * cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define.
4982 (LANG_HOOKS_TREE_INLINING_END_INLINING): Define.
4983 * tree.c (cp_start_inlining, cp_end_inlining): New fns.
4984 * pt.c (push_tinst_level): No longer static.
4985 * cp-tree.h: Declare them.
4986
4987 * init.c (resolve_offset_ref): Don't check access for the base
4988 conversion to access a FIELD_DECL.
4989
4990 * cp-tree.h (TYPE_REFFN_P): New macro.
4991 * decl.c (bad_specifiers): Check it, too.
4992
4993 * rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY
4994 on the __*_type_info type if we haven't seen a definition.
4995
26f943fd
NB
49962001-12-05 Neil Booth <neil@daikokuya.demon.co.uk>
4997
4998 * decl.c: Include c-common.h.
4999 (shadow_warning): Move to c-common.c.
5000
37a08a29
RK
5001Wed Dec 5 17:00:49 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5002
5003 * decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE.
5004
9471d3e2
NS
50052001-12-04 Nathan Sidwell <nathan@codesourcery.com>
5006
5007 * pt.c (end_template_parm_list): Clear TREE_CHAIN of each parm.
5008
713ccd0c
NS
50092001-12-04 Nathan Sidwell <nathan@codesourcery.com>
5010
5011 PR g++/164
5012 * init.c (sort_base_init): Allow binfos to be directly specified.
5013 * method.c (do_build_copy_constructor): Explicitly convert to the
5014 base instance.
5015 (do_build_assign_ref): Likewise.
5016
591382c4
HPN
50172001-12-03 Hans-Peter Nilsson <hp@bitrange.com>
5018
5019 * decl.c (xref_basetypes): Don't use C99 construct in tag_code
5020 declaration and initialization.
5021
c725bd79
NB
50222001-12-03 Neil Booth <neil@daikokuya.demon.co.uk>
5023
5024 * typeck2.c: Remove leading capital from diagnostic messages, as
5025 per GNU coding standards.
5026
a5d7c4a3
MK
50272001-12-03 Mumit Khan <khan@nanotech.wisc.edu>
5028
5029 PR c++/3394
9fe038e8
HPN
5030 * decl.c (xref_basetypes): Handle attributes between
5031 'class' and name.
a5d7c4a3 5032
f1880e13
NS
50332001-12-03 Nathan Sidwell <nathan@codesourcery.com>
5034
5035 PR g++/3381
5036 * parse.y (named_complex_class_head_sans_basetype): Add new
5037 reduction.
5038 * Make-lang.in (parse.c): Adjust expected conflict count.
5039
ff668506
JM
50402001-12-03 Jason Merrill <jason@redhat.com>
5041
5042 * class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the
5043 immediate binfos for our virtual bases.
5044
1f978f5f
NB
50452001-12-02 Neil Booth <neil@daikokuya.demon.co.uk>
5046
5047 * call.c (build_java_interface_fn_ref): Similarly.
5048 * except.c (is_admissible_throw_operand): Similarly.
5049 * init.c (build_java_class_ref): Similarly.
5050 * xref.c (open_xref_file): Similarly.
5051
357351e5
NB
50522001-12-01 Neil Booth <neil@daikokuya.demon.co.uk>
5053
5054 * class.c (finish_struct): Remove trailing periods from messages.
5055 * decl.c (check_tag_decl): Similarly.
5056 * lex.c (cxx_set_yydebug): Similarly.
5057 * typeck2.c (friendly_abort): Similarly.
5058
998979e6
MM
50592001-11-29 Mark Mitchell <mark@codesourcery.com>
5060
5061 PR c++/3048
5062 * cp-tree.h (ovl_member): Remove.
33bd39a2 5063 * decl2.c (merge_functions): Handle extern "C" functions
998979e6
MM
5064 specially.
5065 * tree.c (ovl_member): Remove.
5066
7d5b8b11
MM
50672001-11-29 Mark Mitchell <mark@codesourcery.com>
5068
5069 PR c++/4842
5070 * class.c (get_basefndecls): Take an IDENTIFIER_NODE, not a
5071 FUNCTION_DECL, as input.
5072 (mark_overriders): Remove.
5073 (warn_hidden): Rework for the new ABI.
5074
b67db529
MM
50752001-11-29 Mark Mitchell <mark@codesourcery.com>
5076
5077 PR c++/3471
5078 * call.c (convert_like_real): Do not build additional temporaries
5079 for rvalues of class type.
5080
2db1ab2d
NS
50812001-11-28 Nathan Sidwell <nathan@codesourcery.com>
5082
5083 * cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base.
5084 (ACCESSIBLY_UNIQUELY_DERIVED_FROM_P): Likewise.
5085 (PUBLICLY_UNIQUELY_DERIVED_FROM_P: Likewise.
5086 (DERIVED_FROM_P): Likewise.
5087 (enum base_access): Renumber, add ba_quiet bit mask.
5088 (get_binfo): Remove.
5089 (get_base_distance): Remove.
5090 (binfo_value): Remove.
5091 (ACCESSIBLY_DERIVED_FROM_P): Remove.
5092 * call.c (standard_conversion): Use lookup_base.
5093 * class.c (strictly_overrides): Likewise.
5094 (layout_virtual_bases): Likewise.
5095 (warn_about_ambiguous_direct_bases): Likewise.
5096 (is_base_of_enclosing_class): Likewise.
5097 (add_vcall_offset_vtbl_entries_1): Likewise.
5098 * cvt.c (build_up_reference): Adjust comment.
5099 * init.c (build_member_call): Reformat.
5100 * search.c (get_binfo): Remove.
5101 (get_base_distance_recursive): Remove.
5102 (get_base_distance): Remove.
5103 (lookup_base_r): Tweak.
5104 (lookup_base): Add ba_quiet control. Complete the types here.
5105 (covariant_return_p): Use lookup_base.
5106 * tree.c (binfo_value): Remove.
5107 (maybe_dummy_object): Use lookup_base.
5108 * typeck.c (build_static_cast): Use lookup_base.
5109 (get_delta_difference): Likewise.
5110 * typeck2.c (binfo_or_else): Use lookup_base.
5111 (build_scoped_ref): Add back error_mark_check.
5112 (build_m_component_ref): Use lookup_base.
5113
d3945f0a
JM
51142001-11-29 Joseph S. Myers <jsm28@cam.ac.uk>
5115
5116 * Make-lang.in (c++.generated-manpages): New dummy target.
5117
ac79cd5a
RK
5118Tue Nov 27 09:03:47 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5119
5120 * Make-lang.in (cp-lang.o): Depends on c-common.h.
5121 * cp-lang.c (c-common.h): Include.
5122 (LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks.
5123 * decl.c (cxx_init_decl_processing): Don't set lang_safe_from_p.
5124 * expr.c (init_cplus_expand): Don't set lang_expand_constant.
5125
4d6baafa
NB
51262001-11-26 Neil Booth <neil@daikokuya.demon.co.uk>
5127
5128 * decl2.c (c_language): Move to c-common.c.
5129 * lex.c (cxx_post_options, cxx_init_options): Use c-common.c
5130 functions.
5131 (cxx_init): Update.
5132
5b0c5896
JM
51332001-11-26 Jason Merrill <jason@redhat.com>
5134
5135 * call.c (joust): Remove COND_EXPR hack.
5136
4bdd26e6
AH
51372001-11-25 Aldy Hernandez <aldyh@redhat.com>
5138
195a5def 5139 * search.c (lookup_base_r): Declare bk in variable declaration
4bdd26e6 5140 space.
33bd39a2 5141
338d90b8
NS
51422001-11-25 Nathan Sidwell <nathan@codesourcery.com>
5143
5144 PR g++/3145
5145 * class.c (build_vbase_pointer): Remove.
5146 (build_vbase_path): Remove.
5147 (build_base_path): New function.
5148 * cp-tree.h (base_access, base_kind): New enumerations.
5149 (build_base_path): Declare.
5150 (convert_pointer_to_real): Remove.
5151 (convert_pointer_to): Remove.
5152 (lookup_base): Declare.
5153 (convert_pointer_to_vbase): Remove.
5154 * call.c (build_scoped_method_call): Use lookup_base &
5155 build_base_path instead of convert_pointer_to_real,
5156 get_base_distance & get_binfo.
5157 (build_over_call): Likewise.
5158 * cvt.c (cp_convert_to_pointer): Likewise.
5159 (convert_to_pointer_force): Likewise.
5160 (build_up_reference): Likewise.
5161 (convert_pointer_to_real): Remove.
5162 (convert_pointer_to): Remove.
5163 * init.c (dfs_initialize_vtbl_ptrs): Use build_base_path
5164 instead of convert_pointer_to_vbase & build_vbase_path.
5165 (emit_base_init): Use build_base_path instead of
5166 convert_pointer_to_real.
5167 (expand_virtual_init): Lose unrequired conversions.
5168 (resolve_offset_ref): Use lookup_base and build_base_path
5169 instead of convert_pointer_to.
5170 * rtti.c (build_dynamic_cast_1): Use lookup_base &
5171 build_base_path instead of get_base_distance & build_vbase_path.
5172 * search.c (get_vbase_1): Remove.
5173 (get_vbase): Remove.
5174 (convert_pointer_to_vbase): Remove.
07f521fc 5175 (lookup_base_r): New function.
338d90b8
NS
5176 (lookup_base): New function.
5177 * typeck.c (require_complete_type): Use lookup_base &
5178 build_base_path instead of convert_pointer_to.
5179 (build_component_ref): Likewise.
5180 (build_x_function_call): Likewise.
5181 (get_member_function_from_ptrfunc): Likewise.
5182 (build_component_addr): Likewise.
5183 * typeck2.c (build_scoped_ref): Likewise.
5184
89d684bb
BM
51852001-11-22 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
5186
5187 * cp-tree.h (CP_TYPE_QUALS): Removed.
5188 * decl.c (cxx_init_decl_processing): Don't set lang_dump_tree.
33bd39a2 5189 * cp-lang.c: Set LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN and
89d684bb 5190 LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN.
33bd39a2 5191 * dump.c (cp_dump_tree): Use void* dump_info argument to match
89d684bb
BM
5192 lang-hooks prototype.
5193 * call.c, cp-tree.h, cvt.c, decl.c, init.c, mangle.c, method.c, pt.c,
5194 rtti.c, semantics.c, tree.c, typeck.c, typeck2.c: All references to
5195 CP_TYPE_QUALS changed to cp_type_quals.
5196 * Make-lang.in: References to c-dump.h changed to tree-dump.h.
5197 (CXX_C_OBJS): Remove c-dump.o.
5198
12eb9f93 51992001-11-21 Mark Mitchell <mark@codesourcery.com>
2d2e8123
MM
5200
5201 PR c++/3637
12eb9f93
MM
5202 * pt.c (lookup_template_class): Ensure that all specializations
5203 are registered on the list corresponding to the most general
5204 template.
5205
52062001-11-20 Mark Mitchell <mark@codesourcery.com>
5207
2d2e8123 5208 * call.c (non_reference): Add documentation.
33bd39a2 5209 (convert_class_to_reference): Do not strip reference types
2d2e8123
MM
5210 from conversion operators.
5211 (maybe_handle_ref_bind): Simplify.
5212 (compare_ics): Correct handling of references.
5213
78a40378
MM
52142001-11-19 John Wilkinson <johnw@research.att.com>
5215
5216 * dump.c (dump_op): New function.
5217 (cp_dump_tree): Dump CLASSTYPE_TEMPLATE_SPECIALIZATION. Use
5218 dump_op. Dump DECL_MUTABLE, access and staticness for VAR_DECLs.
5219 DECL_PURE_VIRTUAL_P, DECL_VIRTUAL_P,
33bd39a2 5220
78a40378
MM
52212001-11-19 Mark Mitchell <mark@codesourcery.com>
5222
5223 PR4629
5224 * semantics.c (finish_sizeof): Make sure that expression created
5225 while processing a template do not have a type.
5226 (finish_alignof): Likewise.
5227 * typeck.c (c_sizeof): Likewise.
5228 (expr_sizeof): Likewise.
5229
22703ccc
NB
52302001-11-18 Neil Booth <neil@daikokuya.demon.co.uk>
5231
5232 * lex.c (cxx_finish): Call c_common_finish.
5233 (finish_parse): Remove.
5234
b3faacfd
KL
52352001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5236
5237 * decl.c (create_array_type_for_decl): Check if NAME is NULL_TREE
5238 when displaying error message about missing array bounds.
5239
873ff987
KL
52402001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5241
5242 * mangle.c (write_expression): Handle CAST_EXPR, STATIC_CAST_EXPR,
5243 CONST_CAST_EXPR.
5244 * operators.def: Add CAST_EXPR, STATIC_CAST_EXPR, CONST_CAST_EXPR.
5245
08f3a861
NB
52462001-11-16 Neil Booth <neil@daikokuya.demon.co.uk>
5247
5248 * cp-tree.h (print_class_statistics): Restore.
5249
8a2b77e7
JM
52502001-11-15 Jason Merrill <jason@redhat.com>
5251
3b1a4132
JM
5252 * method.c (use_thunk): Don't emit debugging information for thunks.
5253
8a2b77e7
JM
5254 * parse.y: Add ... IDENTIFIER SCOPE and ... PTYPENAME SCOPE expansions.
5255 * decl.c (make_typename_type): Handle getting a class template.
5256 * search.c (lookup_field_r): A class template is good enough for
5257 want_type.
5258
5259 * call.c (convert_like_real): Only use cp_convert for the bad part.
5260 (standard_conversion): Also allow bad int->enum.
5261 * typeck.c (ptr_reasonably_similar): Also allow functions to
5262 interconvert. Pointers to same-size integers are reasonably
5263 similar.
5264
5265 * cvt.c (convert_to_void): If we build a new COND_EXPR, always
5266 give it void type.
5267
36a68fe7
NS
52682001-11-15 Nathan Sidwell <nathan@codesourcery.com>
5269
5270 PR g++/3154
5271 * init.c (sort_base_init): Remove unreachable code.
5272 (expand_member_init): Adjust comment to reflect reality. Simplify
5273 and remove unreachable code.
5274
f5e99456
NB
52752001-11-15 Neil Booth <neil@daikokuya.demon.co.uk>
5276
5277 * cp-tree.h (init_reswords, cxx_init_decl_processing): New.
5278 (cxx_init): Update prototype.
5279 * decl.c (init_decl_processing): Rename. Move null node init
5280 to its creation time.
5281 * lex.c (cxx_init_options): Update.
5282 (cxx_init): Combine with old init_parse; also call
5283 cxx_init_decl_processing.
5284
fe5b6c1c
RS
52852001-11-14 Richard Sandiford <rsandifo@redhat.com>
5286
8a2b77e7
JM
5287 * decl.c (check_initializer): Try to complete the type of an
5288 array element before checking whether it's complete. Don't
5289 complain about arrays with complete element types but an
5290 unknown size.
5291 (cp_finish_decl): Build the hierarchical constructor before
5292 calling maybe_deduce_size_from_array_init.
fe5b6c1c 5293
77bd67cb
JM
52942001-11-14 Joseph S. Myers <jsm28@cam.ac.uk>
5295
5296 * Make-lang.in: Change all uses of $(manext) to $(man1ext).
5297
b02922a4
NS
52982001-11-13 Nathan Sidwell <nathan@codesourcery.com>
5299
5300 PR g++/4206
5301 * parse.y (already_scoped_stmt): Remove.
5302 (simple_stmt, WHILE & FOR): Use implicitly_scoped_stmt.
5303
abfc1ef6
L
53042001-11-12 H.J. Lu <hjl@gnu.org>
5305
195a5def 5306 * cvt.c (ocp_convert): Don't warn the address of a weak
abfc1ef6
L
5307 function is always `true'.
5308
5d69f816
NB
53092001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
5310
5311 * cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE,
5312 LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE,
5313 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override.
5314 * cp-tree.h (print_class_statistics): Remove.
5315 (cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type,
5316 cxx_print_identifier, cxx_set_yydebug): New.
5317 * lex.c (set_yydebug): Rename c_set_yydebug.
5318 * ptree.c (print_lang_decl, print_lang_type, print_lang_identifier,
5319 lang_print_xnode): Rename.
5320 * tree.c (print_lang_statistics): Rename.
5321
4fdc14ca
KG
53222001-11-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5323
5324 * class.c (dump_array): Fix format specifier warning.
5325
3ac88239
NB
53262001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
5327
5328 * cp-lang.c (LANG_HOOKS_NAME): Override.
5329 (struct lang_hooks): Constify.
5330 * lex.c (cxx_init_options): Update.
5331 (lang_identify): Remove.
33bd39a2 5332 * parse.y (language_string): Remove.
3ac88239 5333
b21d216c
AF
53342001-11-08 Andreas Franck <afranck@gmx.de>
5335
5336 * Make-lang.in (CXX_INSTALL_NAME, GXX_CROSS_NAME,
5337 DEMANGLER_CROSS_NAME): Handle program_transform_name the way
5338 suggested by autoconf.
5339 (GXX_TARGET_INSTALL_NAME, CXX_TARGET_INSTALL_NAME): Define.
5340 (c++.install-common): Use the transformed target alias names.
5341
d23c55c2
NB
53422001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk>
5343
5344 * Make-lang.in: Update.
5345 * cp-lang.c: Include langhooks-def.h.
5346
2a2b1d56
KL
53472001-11-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5348
5349 * pt.c (tsubst_copy): Call tsubst for TYPEOF_EXPR.
5350
76648a8b
KG
53512001-11-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5352
5353 * lex.c (copy_lang_type): Add static prototype.
5354
fccef71e
KL
53552001-11-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5356
5357 * pt.c (unify): Handle SCOPE_REF.
5358
19989812
JJ
53592001-11-01 Jakub Jelinek <jakub@redhat.com>
5360
5361 * tree.c (cp_copy_res_decl_for_inlining): Adjust
5362 DECL_ABSTRACT_ORIGIN for the return variable.
5363
5b7874aa
ZW
53642001-10-31 Zack Weinberg <zack@codesourcery.com>
5365
5366 * Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
5367
306ef644
JM
53682001-10-28 Joseph S. Myers <jsm28@cam.ac.uk>
5369
5370 * ChangeLog.1, ChangeLog.2, ChangeLog, class.c, decl2.c, search.c,
5371 semantics.c, spew.c: Fix spelling errors.
5372
76543000
KL
53732001-10-27 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5374
5375 * decl2.c (validate_nonmember_using_decl): Handle NAMESPACE_DECL.
5376
37207ee7
ZW
53772001-10-25 Zack Weinberg <zack@codesourcery.com>
5378
5379 * cp-lang.c: Redefine LANG_HOOKS_CLEAR_BINDING_STACK to
5380 pop_everything.
5381
8ac61af7
RK
5382Tue Oct 23 14:00:20 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5383
5384 * cp-lang.c (cxx_get_alias_set): New function.
5385 Point LANG_HOOKS_GET_ALIAS_SET to it.
5386
f1e09fa2 53872001-10-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
b8c6534b
KL
5388
5389 * cp-tree.def (UNBOUND_CLASS_TEMPLATE): New tree node.
5390 * cp-tree.h (make_unbound_class_template): Prototype new function.
5391 * decl.c (make_unbound_class_template): New function.
5392 * decl2.c (arg_assoc_template_arg): Handle UNBOUND_CLASS_TEMPLATE.
5393 * error.c (dump_type): Likewise.
5394 * mangle.c (write_type): Likewise.
5395 * parse.y (template_parm): Likewise.
5396 (template_argument): Use make_unbound_class_template.
5397 * pt.c (convert_template_argument): Handle UNBOUND_CLASS_TEMPLATE.
5398 (tsubst): Likewise.
5399 (tsubst_copy): Likewise.
5400 (unify): Likewise.
5401 * tree.c (walk_tree): Likewise.
5402 * typeck.c (comptypes): Likewise.
5403
0df6c2c7
KG
54042001-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5405
5406 * xref.c (GNU_xref_member): Use safe-ctype macros and/or fold
5407 extra calls into fewer ones.
5408
97055d5c
AO
54092001-10-18 Alexandre Oliva <aoliva@redhat.com>
5410
5411 * decl.c (duplicate_decls): Propagate DECL_UNINLINABLE.
5412 Warn when merging inline with attribute noinline.
5413 (start_decl, start_function): Warn if inline and attribute
5414 noinline appear in the same declaration.
5415
b5823a44
L
54162001-10-16 H.J. Lu <hjl@gnu.org>
5417
5418 * cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Defined
5419 for tree checking disabled.
5420
dc8ad298
HPN
54212001-10-16 Hans-Peter Nilsson <hp@axis.com>
5422
5423 * cp-tree.h (VFIELD_NAME_FORMAT) [NO_DOLLAR_IN_LABEL &&
5424 NO_DOT_IN_LABEL]: Adjust to match VFIELD_NAME.
5425
d9f818d9
RS
54262001-10-15 Richard Sandiford <rsandifo@redhat.com>
5427
5428 * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Define.
5429 (unify): Only handle MINUS_EXPR specially if the above flag is set
5430 and the subtracted constant is 1. Clear the flag on recursive calls.
5431 Set it when unifying the maximum value in an INTEGER_TYPE's range.
5432
e1be26f4
RS
54332001-10-15 Richard Sandiford <rsandifo@redhat.com>
5434
5435 * decl.c (bad_specifiers): Don't allow exception specifications
5436 on any typedefs.
5437
a5da89c6
NB
54382001-10-14 Neil Booth <neil@daikokuya.demon.co.uk>
5439
5440 * cp/lex.c (init_cp_pragma): Similarly.
5441
4f96ff63
KL
54422001-10-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5443
5444 * pt.c (lookup_template_class): Build complete template arguments
5445 for BOUND_TEMPLATE_TEMPLATE_PARM.
5446
11e74ea6
KL
54472001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5448
5449 * cp-tree.h (TYPE_BINFO): Update comment.
5450 (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): New macro.
5451 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Use template_info.
5452 (TYPENAME_TYPE_FULLNAME): Use TYPE_FIELDS.
5453 (copy_type): Prototype new function.
5454 * lex.c (copy_lang_decl): Gather tree node statistics.
5455 (copy_lang_type): New function.
5456 (copy_type): Likewise.
5457 (cp_make_lang_type): Create lang_type for
5458 BOUND_TEMPLATE_TEMPLATE_PARM. Set TYPE_BINFO for TYPENAME_TYPE
5459 and BOUND_TEMPLATE_TEMPLATE_PARM.
5460 * pt.c (tsubst): Use copy_type instead of copy_node.
5461 * search.c (lookup_field_1): Ignore TYPENAME_TYPE.
5462
f5d47abd
KL
54632001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5464
5465 * pt.c (determine_specialization): Ignore functions without
5466 DECL_TEMPLATE_INFO.
5467
e60505a5
NS
54682001-10-12 Nathan Sidwell <nathan@codesourcery.com>
5469
5470 PR g++/4476
5471 * typeck2.c (abstract_virtuals_error): Ignore incomplete classes.
5472
6f32162a
JM
54732001-10-11 Jason Merrill <jason_merrill@redhat.com>
5474
5475 * typeck2.c (store_init_value): Don't re-digest a bracketed
5476 initializer.
5477
5478 * class.c (finish_struct_anon): Use TYPE_ANONYMOUS_P instead of
5479 ANON_AGGR_TYPE_P.
5480
4a8d0c9c
RH
54812001-10-11 Richard Henderson <rth@redhat.com>
5482
5483 * class.c (build_vtable_entry_ref): Create a VTABLE_REF instead
5484 of an asm statement.
5485 (build_vtbl_ref_1): Split out from build_vtbl_ref.
5486 (build_vfn_ref): Use it to handle vtable descriptors before
5487 calling build_vtable_entry_ref.
5488 * decl2.c (output_vtable_inherit): Use assemble_vtable_inherit.
5489
84b72302
RH
54902001-10-10 Richard Henderson <rth@redhat.com>
5491
37207ee7 5492 * parse.y (asm_operand): Allow named operands.
84b72302 5493 * semantics.c (finish_asm_stmt): Tweek for changed location
4639c5c6 5494 of the operand constraint.
84b72302 5495
48c8b0be 54962001-10-09 Jason Merrill <jason_merrill@redhat.com>
72a08131
JM
5497
5498 * call.c (standard_conversion): Add bad conversion between
5499 integers and pointers.
5500 (convert_like_real): Don't use convert_for_initialization for bad
5501 conversions; complain here and use cp_convert.
5502 (build_over_call): Don't handle bad conversions specially.
5503 (perform_implicit_conversion): Allow bad conversions.
5504 (can_convert_arg_bad): New fn.
5505 * cp-tree.h: Declare it.
5506 * typeck.c (convert_for_assignment): Use it.
5507 (ptr_reasonably_similar): Any target type is similar to void.
5508
19551f29
AO
55092001-10-08 Alexandre Oliva <aoliva@redhat.com>
5510
5511 * Make-lang.in (CXX_OBJS): Added cp-lang.o.
5512 (cp/cp-lang.o): New rule.
5513 * cp-tree.h: Declare hooks.
5514 * tree.c: Make hooks non-static.
5515 (init_tree): Don't initialize hooks here.
5516 * lex.c: Likewise. Move definition of lang_hooks to...
5517 * cp-lang.c: ... new file.
5518
31ed8fea
RH
55192001-10-08 Richard Henderson <rth@redhat.com>
5520
5521 * cp-tree.h (struct lang_decl_flags): Remove declared_inline.
5522 (DECL_DECLARED_INLINE_P): Use the bit in struct c_lang_decl.
5523
8b60264b
KG
55242001-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5525
5526 * class.c (build_vtable_entry_ref): Const-ify.
5527 * decl.c (predefined_identifier,
37207ee7 5528 initialize_predefined_identifiers): Likewise.
8b60264b
KG
5529 * init.c (build_new_1): Likewise.
5530 * lex.c (cplus_tree_code_type, cplus_tree_code_length, resword):
5531 Likewise.
5532
bc4c7159
AO
55332001-10-05 Alexandre Oliva <aoliva@redhat.com>
5534
5535 * optimize.c (struct inline_data): Moved to ../tree-inline.c.
5536 (INSNS_PER_STMT): Likewise.
5537 (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
5538 (copy_body, initialize_inlined_parameters): Likewise.
5539 (declare_return_variable, inlinable_function_p): Likewise.
5540 (expand_call_inline, expand_calls_inline): Likewise.
5541 (optimize_inline_calls, clone_body): Likewise.
5542 * tree.c (walk_tree): Moved to ../tree-inline.c.
5543 (walk_tree_without_duplicates): Likewise.
5544 (copy_tree_r, remap_save_expr): Likewise.
5545
25af8512
AO
55462001-10-04 Alexandre Oliva <aoliva@redhat.com>
5547
5548 * Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h.
5549 (cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise.
5550 * cp-tree.h (lang_decl): Moved inlined_fns to tree_decl.
5551 (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h.
5552 (flag_inline_trees): Moved declaration to ../tree-inline.h.
5553 (walk_tree): Moved declaration to ../tree-inline.h.
5554 (walk_tree_without_duplicates, copy_tree_r): Likewise.
5555 (remap_save_expr): Likewise.
5556 * decl.c: Include tree-inline.h.
5557 (lang_mark_tree): Don't mark inlined_fns.
5558 * decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c.
5559 * optimize.c: Include tree-inline.h.
5560 (optimize_inline_calls): Move declaration to ../tree.h, as
5561 non-static.
5562 (remap_decl): Use language-independent constructs and hooks.
5563 (remap_block, copy_body_r, declare_return_variable): Likewise.
5564 (inlinable_function_p): Likewise. Don't test for
5565 DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is
5566 no longer language-specific.
5567 (optimize_inline_calls): Likewise. Make it non-static. Moved
5568 call of dump_function to...
5569 (optimize_function): Here...
5570 (clone_body): New function, extracted from...
5571 (maybe_clone_body): ... here. Build decl_map locally and pass
5572 it on to clone_body.
5573 * pt.c, semantics.c: Include tree-inline.h.
5574 * tree.c: Likewise.
5575 (cp_walk_subtrees): New language-specific hook for tree inlining.
5576 (cp_cannot_inline_tree_fn, cp_add_pending_fn_decls,
5577 cp_is_overload_p, cp_auto_var_in_fn_p,
5578 cp_copy_res_decl_for_inlining): Likewise.
5579 (walk_tree): Move language-specific constructs into...
5580 (cp_walk_subtrees): this new function.
5581 (copy_tree_r): Use language-independent constructs and hooks.
5582 (init_tree): Initialize tree inlining hooks.
5583 (remap_save_expr): Adjust prototype so that the declaration
5584 does not require the definition of splay_tree.
5585
6a4af81f
JDA
55862001-10-03 John David Anglin <dave@hiauly1.hia.nrc.ca>
5587
5588 * rtti.c (get_tinfo_decl): Call typeinfo_in_lib_p with the type used
5589 to build the declaration instead of the declaration itself.
5590
0caee1c6
JM
55912001-10-02 Jason Merrill <jason_merrill@redhat.com>
5592
48c8b0be
JM
5593 * decl2.c (cxx_decode_option): Add 'else'.
5594
0caee1c6
JM
5595 * spew.c (end_input): No longer static.
5596 * cp-tree.h: Declare it.
5597 * parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion.
5598
80a497e4
JM
55992001-10-02 Joseph S. Myers <jsm28@cam.ac.uk>
5600
5601 * call.c (build_over_call), typeck.c (build_function_call_real):
5602 Pass type attributes to check_function_format rather than name or
5603 assembler name. Don't require there to be a name or assembler
5604 name to check formats.
5605
6431177a
JM
56062001-10-02 Joseph S. Myers <jsm28@cam.ac.uk>
5607
5608 * decl.c (init_decl_processing): Don't call
5609 init_function_format_info. Initialize lang_attribute_table
5610 earlier.
5611 (builtin_function): Call decl_attributes.
5612 (insert_default_attributes): New.
5613
55b3d665
JM
56142001-10-01 Jason Merrill <jason_merrill@redhat.com>
5615
5616 * decl.c (grokdeclarator): Copy array typedef handling from C
5617 frontend.
5618
5619 * decl.c (grokdeclarator): Copy too-large array handling from C
5620 frontend.
5621
9f57ca19
AO
56222001-09-29 Alexandre Oliva <aoliva@redhat.com>
5623
5624 * config-lang.in (target_libs): Added target-gperf, so that we
5625 don't try to build it if C++ is disabled.
5626
749ced52
ZW
56272001-09-23 Zack Weinberg <zack@codesourcery.com>
5628
5629 * Make-lang.in (CXX_OBJS): Take out cp/errfn.o.
5630 (cp/errfn.o): Delete rule.
5631 (cp/error.o): Depend on flags.h.
5632 * errfn.c: Delete file.
5633 * cp-tree.h: Declare warn_deprecated. Remove definitions of
5634 TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS,
5635 and TFF_TEMPLATE_DEFAULT_ARGUMENTS. #define cp_error, cp_warning,
5636 cp_pedwarn, and cp_compiler_error to error, warning, pedwarn, and
5637 internal_error respectively. Make cp_deprecated into a macro.
5638 Don't define cp_printer typedef or declare cp_printers.
5639 * error.c: Include flags.h.
5640 Delete: struct tree_formatting_info, print_function_argument_list,
5641 print_declaration, print_expression, print_function_declaration,
5642 print_function_parameter, print_type_id, print_cv_qualifier_seq,
5643 print_type_specifier_seq, print_simple_type_specifier,
5644 print_elaborated_type_specifier, print_rest_of_abstract_declarator,
5645 print_parameter_declaration_clause, print_exception_specification,
5646 print_nested_name_specifier, and definition of cp_printers.
5647 (locate_error): New function.
5648 (cp_error_at, cp_warning_at, cp_pedwarn_at): Moved here and
5649 rewritten in terms of locate_error and diagnostic.c.
5650 (cp_tree_printer): Rename cp_printer; wire up to *_to_string
5651 instead of deleted print_* routines. Handle %C, %L, %O, %Q also.
5652 (init_error): Adjust to match.
5653
bb9f8221
RK
5654Sat Sep 22 09:15:31 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5655
5656 * Make-lang.in (CXX_C_OBJS): Add attribs.o.
5657
67231816
RH
56582001-09-21 Richard Henderson <rth@redhat.com>
5659
5660 * class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS.
5661 (build_vtbl_initializer): Likewise.
5662 (build_vfn_ref): New.
5663 * cp-tree.h: Declare it.
5664 * call.c (build_over_call): Use it.
5665 * decl2.c (mark_vtable_entries): Mark FDESC_EXPR.
5666 * typeck.c (get_member_function_from_ptrfunc): Mind descriptors.
5667
c9574c9f
R
5668Fri Sep 21 08:16:19 2001 J"orn Rennecke <amylaar@redhat.com>
5669
5670 * decl.c (grokdeclarator): Use C syntax for attr_flags declaration.
5671
91d231cb
JM
56722001-09-21 Joseph S. Myers <jsm28@cam.ac.uk>
5673
5674 Table-driven attributes.
5675 * decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
5676 * decl2.c (cplus_decl_attributes): Only take one attributes
5677 parameter.
5678 * cp-tree.c (cplus_decl_attributes): Update prototype.
5679 * class.c (finish_struct), decl.c (start_decl, start_function),
5680 decl2.c (grokfield), friend.c (do_friend), parse.y
5681 (parse_bitfield): Update calls to cplus_decl_attributes.
5682 * decl.c (grokdeclarator): Take a pointer to a single ordinary
5683 attribute list.
5684 * decl.h (grokdeclarator): Update prototype.
5685 * decl2.c (grokfield): Take a single ordinary attribute list.
5686 * friend.c (do_friend): Likewise.
5687 * decl.c (shadow_tag, groktypename, start_decl,
5688 start_handler_parms, grokdeclarator, grokparms, start_function,
5689 start_method), decl2.c (grokfield, grokbitfield, grokoptypename),
5690 parse.y (parse_field, parse_bitfield, component_decl_1), pt.c
5691 (process_template_parm, do_decl_instantiation): Pass single
5692 ordinary attribute lists around.
5693 * decl.c (grokdeclarator): Correct handling of nested attributes.
5694 Revert the patch
5695 1998-10-18 Jason Merrill <jason@yorick.cygnus.com>
5696 * decl.c (grokdeclarator): Embedded attrs bind to the right,
5697 not the left.
5698 .
5699 * cp-tree.h (cp_valid_lang_attribute): Remove declaration
5700 (cp_attribute_table): Declare.
5701 * decl.c (valid_lang_attribute): Don't define.
5702 (lang_attribute_table): Define.
5703 (init_decl_processing): Initialize lang_attribute_table instead of
5704 valid_lang_attribute.
5705 * tree.c (cp_valid_lang_attribute): Remove.
5706 (handle_java_interface_attribute, handle_com_interface_attribute,
5707 handle_init_priority_attribute): New functions.
5708 (cp_attribute_table): New array.
5709 * decl2.c (import_export_class): Don't use
5710 targetm.valid_type_attribute.
5711
a1bda5f1
GDR
57122001-09-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
5713
e6b9638b
JM
5714 * Make-lang.in (cp/error.o): Depend on real.h
5715 * error.c: #include "real.h"
a1bda5f1 5716
cb6edbcb
KG
57172001-09-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5718
5719 * mangle.c (mangle_conv_op_name_for_type): Use concat in lieu of
5720 xmalloc/strcpy/strcat.
5721
83182544
KG
57222001-09-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5723
5724 * decl.c (warn_extern_redeclared_static, cp_make_fname_decl):
5725 Const-ification.
5726 * pt.c (tsubst_decl): Likewise.
5727
40008eda
KG
57282001-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5729
5730 * decl2.c (lang_f_options): Const-ification.
5731 * lex.c (cplus_tree_code_name): Likewise.
5732 * spew.c (yyerror): Likewise.
5733
39e78d8b
NS
57342001-09-06 Nathan Sidwell <nathan@codesourcery.com>
5735
5736 PR c++/3986
5737 * class.c (force_canonical_binfo_r): Check & move an indirect
5738 primary base first.
5739 (force_canonical_binfo): Check that it's not already
5740 canonical.
5741 (mark_primary_virtual_base): Remove BINFO parameter.
5742 (mark_primary_bases): Adjust, set BINFO_LOST_PRIMARY_P here.
5743
6d0a3f67
NS
57442001-09-06 Nathan Sidwell <nathan@codesourcery.com>
5745
5746 Remove TYPE_NONCOPIED_PARTS.
5747 * cp-tree.h (CLASSTYPE_INLINE_FRIENDS): Map onto
5748 CLASSTYPE_PURE_VIRTUALS.
5749 (TYPE_RAISES_EXCEPTIONS): Map onto TYPE_BINFO.
5750 * class.c (duplicate_tag_error): Remove TYPE_NONCOPIED_PARTS.
72a08131 5751 (layout_class_type): Don't call fixup_inline_methods here ...
6d0a3f67
NS
5752 (finish_struct_1): ... call it here.
5753
4f8e1232
MM
57542001-09-04 Mark Mitchell <mark@codesourcery.com>
5755
5756 * decl.c (duplicate_decls): Remove code deadling with
5757 DECL_SAVED_INSNS.
5758 * decl2.c (finish_file): Likewise.
5759 * pt.c (instantiate_decl): Likewise.
5760 * semantics.c (expand_body): Don't defer local functions if
5761 they wouldn't be deferred for some other reason. Don't
5762 generate RTL for functions that will not be emitted.
5763 (genrtl_start_function): Remove code deadling with
5764 DECL_SAVED_INSNS.
5765 (genrtl_finish_function): Likewise.
5766
da86f08f
NS
57672001-09-04 Nathan Sidwell <nathan@codesourcery.com>
5768
5769 PR c++/4203
5770 * call.c (build_over_call): Do not optimize any empty base
5771 construction.
5772
38066e83
KL
57732001-08-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5774
5775 * error.c (dump_template_decl): Output template parameters
5776 together with their specifiers.
5777 Output `class' prefix for template template parameter.
5778 (dump_decl): Fix formatting.
5779
598e9ba5 57802001-08-30 Kurt Garloff <garloff@suse.de>
749ced52 5781
598e9ba5
KG
5782 * optimize.c (inlinable_function_p): Allow only smaller single
5783 functions. Halve inline limit after reaching recursive limit.
749ced52 5784
f232e4a5
JR
57852001-08-30 Joern Rennecke <amylaar@redhat.com>
5786 Jason Merrill <jason_merrill@redhat.com>
5787
5788 * class.c (build_vtable_entry_ref): Subtract in char*, not
5789 ptrdiff_t.
5790
0213a355
JM
57912001-08-23 Jason Merrill <jason_merrill@redhat.com>
5792
5793 * tree.c (cp_build_qualified_type_real): Use get_qualified_type.
5794 (build_cplus_array_type): Use cp_build_qualified_type, not
5795 TYPE_MAIN_VARIANT, to get an unqualified version.
5796
5797 * decl2.c (grok_alignof): Lose.
5798 (build_expr_from_tree): Use expr_sizeof and c_alignof_expr.
5799 * typeck.c (c_alignof): Lose.
5800 * semantics.c (finish_sizeof, finish_alignof): New.
5801 * parse.y: Use them.
5802 * cp-tree.h: Declare them.
5803
fd10dd09
JM
58042001-08-22 Jason Merrill <jason_merrill@redhat.com>
5805
5806 * pt.c (tsubst_expr): Hand off to the TREE_CHAIN of a statement.
5807 Don't loop in COMPOUND_STMT, FOR_STMT or TRY_BLOCK.
5808 * tree.c (cp_statement_code_p): A TAG_DEFN is a statement.
5809
baeb4732
JJ
58102001-08-19 Jakub Jelinek <jakub@redhat.com>
5811
5812 * typeck2.c (add_exception_specifier): Only require complete type if
5813 not in processing template declaration.
5814
1c0cc57e
KG
58152001-08-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5816
5817 * decl.c: Cast argument to size_t, not HOST_WIDE_INT, in calls to
5818 GNU_xref_start_scope and GNU_xref_end_scope.
5819
5820 * tree.c (TYPE_HASH): Moved to ../tree.h.
5821
9a52d09b
MM
58222001-08-16 Mark Mitchell <mark@codesourcery.com>
5823
5824 * cvt.c (convert_to_void): Preserve TREE_SIDE_EFFECTS
5825 on COMPOUND_EXPRs.
5826
b5d1cbd2
RH
58272001-08-14 Richard Henderson <rth@redhat.com>
5828
5829 * class.c, cp-tree.h (build_vfn_ref): Remove.
5830 * call.c, rtti.c: Replace all refernces with build_vtbl_ref.
5831
63d6f87a
MM
58322001-08-13 Mark Mitchell <mark@codesourcery.com>
5833
5834 * call.c (build_over_call): Mark COMPOUND_EXPRs generated for
5835 empty class assignment as having side-effects to avoid
5836 spurious warnings.
5837
e78d8e51
ZW
58382001-08-13 Zack Weinberg <zackw@panix.com>
5839
5840 * Make-lang.in (cp/except.o): Add libfuncs.h to dependencies.
5841 * except.c: Include libfuncs.h.
5842
a60af04a
GDR
58432001-08-11 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
5844
5845 * decl.c (grokdeclarator): Clarify diagnostic message.
5846
3605b283
KL
58472001-08-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5848
5849 * decl2.c (do_nonmember_using_decl): Replace using directive
5850 with using declaration in the error message.
5851
4d5f3fbd
KL
58522001-08-11 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5853
5854 * pt.c (maybe_fold_nontype_arg): Use TREE_TYPE of ARG as the
5855 criterion to avoid rebuilding expression tree instead of
5856 processing_template_decl.
5857
07b2f2fd
JM
58582001-08-07 Jason Merrill <jason_merrill@redhat.com>
5859
5860 Support named return value optimization for inlines, too.
5861 * decl.c (finish_function): Nullify returns here.
5862 * semantics.c (genrtl_start_function): Not here.
5863 (cp_expand_stmt): Don't mess with CLEANUP_STMTs.
5864 (nullify_returns_r): No longer static. Just clear RETURN_EXPR.
5865 Also nullify the CLEANUP_STMT for the nrv.
5866 * cp-tree.h: Declare it.
5867 * optimize.c (declare_return_variable): Replace the nrv with the
5868 return variable.
5869 * typeck.c (check_return_expr): Be more flexible on alignment check.
5870 Ignore cv-quals when checking for a matching type.
5871
2cc07db4
RH
58722001-08-09 Richard Henderson <rth@redhat.com>
5873
5874 * decl2.c (finish_objects): Use target hooks instead of
5875 assemble_constructor and assemble_destructor.
5876
0ca179b2
JDA
58772001-08-08 John David Anglin <dave@hiauly1.hia.nrc.ca>
5878
5879 * g++spec.c (lang_specific_driver): Quote argument after `-Xlinker'.
5880
0830ae44
NS
58812001-08-07 Nathan Sidwell <nathan@codesourcery.com>
5882
5883 PR c++/3820
5884 Stop using TYPE_NONCOPIED_PARTS.
5885 * call.c (build_over_call): Be careful when copy constructing
5886 or assigning to an empty class.
5887 * class.c (check_bases_and_members): It has a
5888 COMPLEX_ASSIGN_REF if it has a vptr.
5889 (layout_class_type): Don't add empty class padding to
5890 TYPE_NONCOPIED_PARTS.
5891 (finish_struct_1): Don't add the VFIELD either.
5892 * cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): Mention _copy_
5893 initialization.
5894
59a13e0f
JM
58952001-08-07 Jason Merrill <jason_merrill@redhat.com>
5896
5897 * tree.c (walk_tree): Walk siblings even if !walk_subtrees.
5898
47907859
RH
58992001-08-06 Richard Henderson <rth@redhat.com>
5900
5901 * decl2.c (finish_objects): Pass a symbol_ref and priority to
5902 assemble_{constructor,destructor}. Remove priority handling.
5903
eac69b8a
GDR
59042001-08-05 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
5905
5906 Don't allow template-id in using-declaration.
5907 * decl2.c (validate_nonmember_using_decl): Handle template-ids.
5908 (do_class_using_decl): Likewise.
5909
ef6e958a
NB
59102001-08-04 Neil Booth <neil@cat.daikokuya.demon.co.uk>
5911
5912 * cp/spew.c (read_token): No need to pop buffers.
5913
dff94ad7
SS
59142001-08-02 Stan Shebs <shebs@apple.com>
5915
5916 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY): Remove, no longer used.
5917 (fnaddr_from_vtable_entry): Remove decl.
5918 * method.c (use_thunk): Update comment.
5919
026c3f13
AC
59202001-08-01 Andrew Cagney <ac131313@redhat.com>
5921
5922 * repo.c (get_base_filename): Change return value to const char
5923 pointer.
5924
1dbb6023
NS
59252001-08-02 Nathan Sidwell <nathan@codesourcery.com>
5926
5927 Kill -fhonor-std.
5928 * NEWS: Document.
5929 * cp-tree.h (flag_honor_std): Remove.
5930 (CPTI_FAKE_STD): Remove.
5931 (std_node): Remove comment about it being NULL.
5932 (fake_std_node): Remove.
5933 * decl.c (in_fake_std): Remove.
5934 (walk_namespaces_r): Remove fake_std_node check.
5935 (push_namespace): Remove in_fake_std code.
5936 (pop_namespace): Likewise.
5937 (lookup_name_real): Remove fake_std_node check.
5938 (init_decl_processing): Always create std_node. Always add
5939 std:: things there.
5940 (builtin_function): Always put non '_' fns in std.
5941 * decl2.c (flag_honor_std): Remove.
5942 (lang_f_options): Remove honor-std.
5943 (unsupported_options): Add honor-std.
5944 (set_decl_namespace): Remove fake_std_node check.
5945 (validate_nonmember_using_decl): Likewise.
5946 (do_using_directive): Likewise.
5947 (handle_class_head): Likewise.
5948 * dump.c (cp_dump_tree): Likewise.
5949 * except.c (init_exception_processing): Adjust.
5950 * init.c (build_member_call): Remove fake_std_node check.
5951 (build_offset_ref): Likewise.
5952 * lang-options.h: Remove -fhonor-std, -fno-honor-std.
5953 * rtti.c (init_rtti_processing): Adjust.
5954
6ad7895a
APB
59552001-07-31 Alexandre Petit-Bianco <apbianco@redhat.com>
5956
5957 * tree.c (cp_tree_equal): WITH_CLEANUP_EXPR node to use its second
5958 operand while calling cp_tree_equal.
5959
befe7c61
NS
59602001-07-31 Nathan Sidwell <nathan@codesourcery.com>
5961
5962 The 3.0 ABI no longer has vbase pointer fields.
5963 * cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P,
5964 FORMAT_VBASE_NAME): Remove.
5965 * method.c (do_build_copy_constructor): Adjust.
5966 (do_build_assign_ref): Adjust.
5967 * search.c (lookup_field_r): Adjust.
5968 * typeck.c (build_component_ref): Adjust.
5969
5970 The 3.0 ABI always has a vtable pointer at the start of every
5971 polymorphic class.
5972 * rtti.c (build_headof_sub): Remove.
5973 (build_headof): Adjust.
5974 (get_tinfo_decl_dynamic): No need to check flag_rtti
5975 here. Adjust.
5976 (create_real_tinfo_var): Explain why we need a hidden name.
5977
20dde49d
NS
59782001-07-31 Nathan Sidwell <nathan@codesourcery.com>
5979
5980 PR c++/3631
5981 * class.c (update_vtable_entry_for_fn): The fixed adjustment
5982 of a virtual thunk should be from declaring base.
5983
b7ad2f8b
NS
59842001-07-31 Nathan Sidwell <nathan@codesourcery.com>
5985
5986 * class.c (dfs_ctor_vtable_bases_queue_p): Always walk into
5987 the shared virtual base, so preserving inheritance graph order.
5988
57cb6d52
AJ
59892001-07-30 Andreas Jaeger <aj@suse.de>
5990
749ced52 5991 * decl2.c: Remove unused var global_temp_name_counter.
57cb6d52 5992
594280a3
RH
59932001-07-28 Richard Henderson <rth@redhat.com>
5994
5995 * method.c (pending_inlines): Remove.
5996
0ab142b0
NS
59972001-07-27 Nathan Sidwell <nathan@codesourcery.com>
5998
5999 * class.c (mark_primary_virtual_base): Don't adjust base
6000 offsets here.
6001 (dfs_unshared_virtual_bases): Adjust them here.
6002 (mark_primary_bases): Explain why we adjust at the end.
6003
d60d223b
NS
60042001-07-27 Nathan Sidwell <nathan@codesourcery.com>
6005
6006 * class.c (finish_struct_1): When copying the primary base's
6007 VFIELD, make sure we find it is at offset zero.
6008
db3ef87b
KL
60092001-07-26 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6010
6011 * pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and
6012 tsubst_expr for default template arguments.
6013
312b7c9d
NS
60142001-07-26 Nathan Sidwell <nathan@codesourcery.com>
6015
d60d223b 6016 PR c++/3621
312b7c9d 6017 * spew.c (yylex): Only copy the token's lineno, if it is
838dfd8a 6018 nonzero.
312b7c9d 6019
648c2206
NS
60202001-07-26 Nathan Sidwell <nathan@codesourcery.com>
6021
6022 PR c++/3624
6023 * call.c (resolve_args): Simplify, call
6024 convert_from_reference.
6025 (build_new_op): Resolve and convert from reference ARG1
6026 earlier. Adjust ARG2 & ARG3 resolve and conversion.
6027
969fd501
NS
60282001-07-26 Nathan Sidwell <nathan@codesourcery.com>
6029
6030 * decl.c (last_function_parm_tags): Remove.
6031 (current_function_parm_tags): Remove.
6032 (init_decl_processing): Adjust.
6033 (start_function): Adjust.
6034 (store_parm_decls): Adjust.
6035
6036 PR c++/3152
6037 * decl.c (grokdeclarator): Detect when a function typedef is
6038 declaring a function, and create last_function_parms correctly.
6039
08ac397c 60402001-07-25 Jason Merrill <jason_merrill@redhat.com>
749ced52 6041
08ac397c
JM
6042 * call.c (joust): Only prefer a non-builtin candidate to a builtin
6043 one if they have the same signature.
6044
6045 * cvt.c (build_up_reference): Take DECL parm. Check TREE_STATIC on
6046 it rather than toplevel_bindings_p. Give it a mangled name if static.
6047 (convert_to_reference): Adjust.
6048 * decl2.c (get_temp_name): Lose.
6049 * mangle.c (mangle_ref_init_variable): New fn.
6050 (mangle_guard_variable): Strip the ref-init header.
6051 * cp-tree.h: Adjust.
6052 * decl.c (cp_finish_decl): Add the DECL_STMT after processing the
6053 initializer.
6054 (grok_reference_init): Always use DECL_INITIAL.
6055
40260429
NS
60562001-07-25 Nathan Sidwell <nathan@codesourcery.com>
6057
6058 PR c++/3416
6059 * call.c (build_conditional_expr): Recheck args after
6060 conversions.
6061 * cp-tree.h (build_conditional_expr): Move to correct file.
6062 * typeck.c (decay_conversion): Diagnose any unknown types
6063 reaching here.
6064 (build_binary_op): Don't do initial decay or default
6065 conversions on overloaded functions.
6066 (build_static_cast): Don't do a decay conversion here.
6067
ab085207
NS
60682001-07-25 Nathan Sidwell <nathan@codesourcery.com>
6069
6070 PR c++/3543
6071 * typeck.c (condition_conversion): Resolve an OFFSET_REF.
6072 * expr.c (cplus_expand_expr): An OFFSET_REF should never get here.
6073
0abe00c5
NS
60742001-07-25 Nathan Sidwell <nathan@codesourcery.com>
6075
6076 * class.c (build_vtbl_or_vbase_field): Remove, move into ...
6077 (create_vtbl_ptr): ... here.
6078
90b1ca2f
NS
60792001-07-25 Nathan Sidwell <nathan@codesourcery.com>
6080
6081 * class.c (build_vbase_offset_vbtl_entries): Look for
6082 non-primary base of which we are a sub vtable.
6083
cfe5dc31
PE
60842001-07-24 Phil Edwards <pme@sources.redhat.com>
6085
6086 * semantics.c (finish_this_expr): Remove unused code.
6087
7f54a851
NS
60882001-07-24 Nathan Sidwell <nathan@codesourcery.com>
6089
6090 Simplify rtti, now we've only one ABI.
6091 * cp-tree.h (cp_tree_index): Remove CPTI_TINFO_DECL_ID,
6092 CPTI_TINFO_VAR_ID.
6093 (tinfo_decl_id, tinfo_var_id): Remove.
6094 (get_typeid_1): Remove.
6095 * rtti.c
6096 (init_rtti_processing): Remove tinfo_decl_id & tinfo_var_id.
6097 (typeid_ok_p): New function.
6098 (build_type_id): Call typeid_ok_p. Don't call tinfo_from_decl.
6099 (get_tinfo_decl): Remove old abi documentation.
6100 (tinfo_from_decl): Remove.
6101 (get_type_id): Call typeid_ok_p. Absorb get_typeid_1.
6102 (get_typeid_1): Remove.
6103 (get_base_offset): Remove.
6104 (synthesize_tinfo_var): Absorb get_base_offset.
6105 (create_real_tinfo_var): Don't use tinfo_decl_id.
6106
18fee3ee
GS
61072001-07-23 Graham Stott <grahams@redhat.com>
6108
d30d6e7a 6109 * cp/class.c (type_requires_array_cookie): Fix use of uninitialized
18fee3ee
GS
6110 variable has_two_argument_delete_p.
6111
c4372ef4
NS
61122001-07-21 Nathan Sidwell <nathan@codesourcery.com>
6113
6114 Remove flag_vtable_thunk. It is always on for the 3.0 ABI.
6115 * cp-tree.h (CPTI_DELTA2_IDENTIFIER): Remove.
6116 (CPTI_INDEX_IDENTIFIER): Remove.
6117 (CPT_PFN_OR_DELTA2_IDENTIFIER): Remove.
6118 (delta2_identifier): Remove.
6119 (index_identifier): Remove.
6120 (pfn_or_delta2_identifier): Remove.
6121 (flag_vtable_thunks): Remove.
6122 (VTABLE_DELTA2_NAME): Remove.
6123 (VTABLE_INDEX_NAME): Remove.
6124 (FNADDR_FROM_VTABLE_ENTRY): Adjust.
6125 (vfunc_ptr_type_node): Adjust.
6126 (VTABLE_NAME_PREFIX): Adjust.
6127 (build_vfn_ref): Lose first parameter.
6128 (fixup_all_virtual_upcast_offsets): Remove.
6129 * decl.c (initialize_predefined_identifiers): Remove
6130 delta2_identifier, index_identifier, pfn_or_delta2_identifier.
6131 (init_decl_processing): Remove no-vtable-thunk code.
6132 * decl2.c (flag_vtable_thunks): Remove.
6133 (mark_vtable_entries): Remove no-vtable-thunk code.
6134 * error.c (dump_decl): Remove no-vtable-thunk code.
6135 (dump_expr): Adjust ptr to member function code.
6136 * init.c (initialize_vtable_ptrs): Remove no-vtable-thunk
6137 code.
6138 * rtti.c (build_headof): Remove no-vtable-thunk code.
6139 (get_tinfo_decl_dynamic): Adjust build_vfn_ref call.
6140 * search.c (get_base_distance): Remove expand_upcast_fixups case.
6141 (virtual_context) Remove.
6142 (expand_upcast_fixups): Remove.
6143 (fixup_virtual_upcast_offsets): Remove.
6144 (fixup_all_virtual_upcast_offsets): Remove.
6145 * typeck.c (get_member_function_from_ptrfunc): Remove
6146 no-vtable-thunk code.
6147 * call.c (build_over_call): Adjust call to build_vfn_ref.
6148 * class.c (build_vfn_ref): Lose first parameter. Remove
6149 no-vtable-thunk code.
6150 (build_rtti_vtbl_entries): Remove no-vtable-thunk code.
6151 (build_vtable_entry): Remove no-vtable-thunk code.
6152
3461fba7
NS
61532001-07-20 Nathan Sidwell <nathan@codesourcery.com>
6154
6155 Remove old-abi remnants. Remove comments about old abi
838dfd8a 6156 behavior. Remove references to 'new-abi' in comments.
3461fba7
NS
6157 * cp-tree.h: Adjust comments.
6158 (vbase_offsets_in_vtable_p): Delete.
6159 (vcall_offsets_in_vtable_p): Delete.
6160 (vptrs_present_everywhere_p): Delete.
6161 (all_overridden_vfuns_in_vtables_p): Delete.
6162 (merge_primary_and_secondary_vtables_p): Delete.
6163 (TYPE_CONTAINS_VPTR_P): Adjust.
6164 (VTT_NAME_PREFIX): Remove.
6165 (CTOR_VTBL_NAME_PREFIX): Remove.
6166 (init_vbase_pointers): Remove.
6167 * class.c: Adjust coments.
6168 (build_vbase_pointer_fields): Delete.
6169 (build_vbase_pointer): Remove old-abi code.
6170 (build_secondary_vtable): Likewise.
6171 (modify_all_vtables): Likewise.
6172 (create_vtable_ptr): Likewise.
6173 (layout_class_type): Likewise.
6174 (finish_struct_1): Likewise.
6175 (finish_vtbls): Likewise.
6176 (dfs_finish_vtbls): Delete.
6177 (build_vbase_offset_vtbl_entries): Remove old-abi code.
6178 * cvt.c: Adjust comments.
6179 * decl.c: Adjust comments.
6180 * decl2.c: Adjust comments.
6181 * init.c: Adjust comments.
6182 (construct_virtual_bases): Remove old-abi code.
6183 * lang-specs.h: Remove -fno-new-abi.
6184 * mangle.c: Adjust comments.
6185 * rtti.c: Adjust comments.
6186 (get_base_offset): Remove old-abi-code.
6187 * search.c: Adjust comments.
6188 (dfs_init_vbase_pointers): Remove.
6189 (dfs_vtable_path_unmark): Remove.
6190 (init_vbase_pointers): Remove.
6191 * semantics.c: Adjust comments.
6192 (emit_associated_thunks): Remove old-abi code.
6193 * typeck.c: Adjust comments.
6194
1c432a87
DB
61952001-07-20 Daniel Berlin <dan@cgsoftware.com>
6196
6197 * Make-lang.in (cp/optimize.o): Depend on $(PARAMS_H), not
6198 params.h.
6199
b7076960
MM
62002001-07-19 Mark Mitchell <mark@codesourcery.com>
6201
6202 * class.c (finish_struct_anon): Forbid nested classes.
6203
2b85879e
NB
62042001-07-19 Neil Booth <neil@daikokuya.demon.co.uk>
6205
6206 * decl2.c: Don't include dwarfout.h and dwarf2out.h.
6207 * optimize.c: Include debug.h.
6208 (maybe_clone_body): Use debug hook.
6209 * semantics.c: Include debug.h.
6210 (expand_body): Use debug hook.
6211
c60e94a7
NB
62122001-07-19 Neil Booth <neil@daikokuya.demon.co.uk>
6213
6214 * spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
6215
dbc957f1
MM
62162001-07-18 Mark Mitchell <mark@codesourcery.com>
6217
6218 * class.c (type_requires_array_cookie): New function.
6219 (check_methods): Don't try to figure out whether the type needs a
6220 cookie here.
6221 (check_bases_and_members): Set TYPE_VEC_NEW_USES_COOKIE here.
6222 * cp-tree.h (TYPE_VEC_DELETE_TAKES_SIZE): Remove.
6223 (TYPE_VEC_NEW_USES_COOKIE): Reimplement.
6224 * pt.c (instantiate_class_template): Don't set
6225 TYPE_VEC_DELETE_TAKES_SIZE.
6226 * NEWS: Document ABI changes from GCC 3.0.
57cb6d52 6227
7ba0b0f7 62282001-07-18 Xavier Delacour <xavier@fmaudio.net>,
749ced52 6229 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
7ba0b0f7
XD
6230
6231 * NEWS (Changes in GCC 3.0): Fix typo.
6232
59387d2e
JM
62332001-07-13 Joseph S. Myers <jsm28@cam.ac.uk>
6234
6235 * decl2.c (cplus_decl_attributes): Take a pointer to the node to
6236 which attributes are to be attached, and a flags argument. Update
6237 call to decl_attributes.
6238 (grokfield): Update call to decl_attributes.
6239 * class.c (finish_struct): Update call to cplus_decl_attributes.
6240 * cp-tree.h (cplus_decl_attributes): Update prototype.
6241 * decl.c (start_decl, grokdeclarator, start_function): Update
6242 calls to decl_attributes and cplus_decl_attributes.
6243 * friend.c (do_friend): Update call to cplus_decl_attributes.
6244 * parse.y (parse_bitfield): Update call to cplus_decl_attributes.
6245
7ed47c04
MM
62462001-07-12 Mark Mitchell <mark@codesourcery.com>
6247
6248 * decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER
6249 for `register' variables with an asm-specification.
6250
40b18c0a
MM
62512001-07-11 Mark Mitchell <mark@codesourcery.com>
6252
6253 * semantics.c (finish_asm_stmt): Mark the output operands
6254 to an asm addressable, if necessary.
6255
517c3b80
BE
62562001-07-11 Ben Elliston <bje@redhat.com>
6257
219670f1
BE
6258 * Revert this change -- there is a subtle bug.
6259
517c3b80
BE
6260 PR c++/80
6261 * decl.c (finish_enum): New "attributes" argument; pass it to
6262 cplus_decl_attributes. Use a narrower type if the enum is packed.
6263 * cp-tree.h (finish_enum): Adjust prototype.
6264 * parse.y (enum_head): New non-terminal.
6265 (structsp): Use it. Enums now may be preceded or followed by
6266 optional attributes -- pass their chained tree to finish_enum().
6267 * pt.c (tsubst_enum): Pass NULL_TREE for the new argument.
6268
2ba9c47e
MM
62692001-07-10 Mark Mitchell <mark@codesourcery.com>
6270
6271 * pt.c (tsubst_decl): Set DECL_CONTEXT for namespace-scope
6272 variables.
6273
35241192
JM
62742001-07-10 Jason Merrill <jason_merrill@redhat.com>
6275
6276 * semantics.c (cp_expand_stmt): Fix for null
6277 current_function_return_value.
6278
07167a18
JM
62792001-07-10 Jan van Male <jan.vanmale@fenk.wau.nl>
6280
6281 * call.c (build_op_delete_call): Initialize fn.
6282 (convert_like_real): Delete conditional.
6283 (joust): Initialize *w and *l.
6284 * class.c: Add prototype for binfo_ctor_vtable.
6285 (get_primary_binfo): Initialize result.
6286 * init.c (build_java_class_ref): Initialize name.
ae818d3b 6287
35241192
JM
62882001-07-09 Erik Rozendaal <dlr@acm.org>
6289
ae818d3b
ER
6290 * typeck.c (unary_complex_lvalue): Do not duplicate the
6291 argument to modify, pre-, or post-increment when used as an
6292 lvalue and when the argument has side-effects.
6293
12a68f1f
JM
62942001-07-08 Joseph S. Myers <jsm28@cam.ac.uk>
6295
6296 * decl.c (start_decl): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
6297 (start_function): Don't call SET_DEFAULT_DECL_ATTRIBUTES. Call
6298 cplus_decl_attributes even if attrs is NULL.
6299 * friend.c (do_friend): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
6300
f7a4cec0
JM
63012001-07-08 Joseph S. Myers <jsm28@cam.ac.uk>
6302
6303 * decl.c (grokdeclarator), decl2.c (cplus_decl_attributes): Update
6304 calls to decl_attributes.
6305
c80106a4
IR
63062001-07-06 Ira Ruben <ira@apple.com>
6307
ae818d3b 6308 * cp-tree.def (TEMPLATE_DECL): Update comment. DECL_RESULT should
c80106a4
IR
6309 be DECL_TEMPLATE_RESULT.
6310
dac65501
KL
63112001-07-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6312
6313 * cp-tree.h (copy_template_template_parm): Rename to ...
6314 (bind_template_template_parm): ... here.
6315 * tree.c (copy_template_template_parm): Rename to ...
6316 (bind_template_template_parm): ... here. Remove the case when
6317 NEWARGS is NULL_TREE.
6318 (copy_tree_r): Don't copy TEMPLATE_TEMPLATE_PARM and
6319 BOUND_TEMPLATE_TEMPLATE_PARM.
6320 * pt.c (lookup_template_class): Adjust.
6321
01f9e964
JM
63222001-07-05 Jason Merrill <jason_merrill@redhat.com>
6323
6324 * cvt.c (convert_lvalue): New fn.
6325 * cp-tree.h: Declare it.
6326 * method.c (do_build_assign_ref): Use it.
6327 (do_build_copy_constructor): Convert parm to base types
6328 before calling base constructors.
6329
6330 * typeck.c (check_return_expr): Check DECL_ALIGN instead of
6331 DECL_USER_ALIGN. Check flag_elide_constructors instead of
6332 optimize.
6333 * semantics.c (cp_expand_stmt): Don't destroy the named return value.
6334
6be77748
NS
63352001-07-02 Nathan Sidwell <nathan@codesourcery.com>
6336
6337 * optimize.c (optimize_inline_calls): New function, broken out
6338 of ...
6339 (optimize_function): ... here. Call it. Don't inline if it is
6340 a thunk.
6341 (dump_function): Print name of dump flag causing this dump.
6342 * semantics.c (expand_body): Move thunk inline check to
6343 optimize_function.
6344
8d8e52be
JM
63452001-06-29 Joseph S. Myers <jsm28@cam.ac.uk>
6346
6347 * typeck.c (COMP_TYPE_ATTRIBUTES): Don't define.
6348 (comptypes): Use target.comp_type_attributes.
6349
5a0db193
NS
63502001-06-29 Nathan Sidwell <nathan@codesourcery.com>
6351
6352 * cp-tree.h (flag_dump_class_layout): Remove unneeded declaration.
6353
46f018e1
GDR
63542001-06-28 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
6355
6356 * error.c (lang_print_error_function): Add a `diagnostic_context *'
6357 parameter. Tweak.
6358
501990bb
NB
63592001-06-27 Neil Booth <neil@cat.daikokuya.demon.co.uk>
6360
6361 * decl2.c (import_export_class): Update.
6362
f68fc4db
GDR
63632001-06-26 Gabriel Dos Reis <gdr@codesourcery.com>
6364
6365 * error.c (init_error): Adjust settings.
6366
9596ddd6
GDR
63672001-06-26 Gabriel Dos Reis <gdr@codesourcery.com>
6368
6369 * error.c (init_error): Adjust settings.
6370
c93586fa
RS
63712001-06-19 Richard Sandiford <rsandifo@redhat.com>
6372
6373 * except.c (initialize_handler_parm): Expect __cxa_begin_catch to
6374 return pointers to data members by reference rather than by value.
6375
0d97bf4c
JM
63762001-06-18 Jason Merrill <jason_merrill@redhat.com>
6377
6378 Implement the Named Return Value optimization.
6379 * cp-tree.h (struct cp_language_function): Add x_return_value.
6380 (current_function_return_value): Now a macro.
6381 * decl.c: Don't define it.
6382 (define_label, finish_case_label): Don't clear it.
6383 (init_decl_processing): Don't register it with GC.
6384 * semantics.c (genrtl_finish_function): Don't check it for
6385 no_return_label. Copy the RTL from the return value to
6386 current_function_return_value and walk, calling...
6387 (nullify_returns_r): ...this new fn.
6388 * typeck.c (check_return_expr): Set current_function_return_value.
6389
13de7ec4
JM
63902001-06-15 Jason Merrill <jason_merrill@redhat.com>
6391
6392 * class.c (dfs_accumulate_vtbl_inits): Just point to the base we're
6393 sharing a ctor vtable with. Merge code for cases 1 and 2.
6394 (binfo_ctor_vtable): New fn.
6395 (build_vtt_inits, dfs_build_secondary_vptr_vtt_inits): Use it.
6396
3ea099f1
JM
63972001-06-14 Jason Merrill <jason_merrill@redhat.com>
6398
6399 * class.c (dfs_find_final_overrider): Fix logic.
6400
6401 * class.c (update_vtable_entry_for_fn): Uncomment optimization to use
6402 virtual thunk instead of non-virtual.
6403 (get_matching_virtual): Uncomment.
6404
6405 * pt.c (unify): Don't recurse between the POINTER_TYPE and the
6406 OFFSET_TYPE. If we're adding cv-quals, the extra ones would be on
6407 PARM, not ARG.
6408
87326ba8
NS
64092001-06-14 Nathan Sidwell <nathan@codesourcery.com>
6410
6411 * class.c (dfs_accumulate_vtbl_inits): For case 2 & 3, make sure
6412 we've not emerged from the hierarchy of RTTI_BINFO on reaching
6413 a non-virtual base.
6414
e065a36e
MM
64152001-06-13 Mark Mitchell <mark@codesourcery.com>
6416
6417 * NEWS: Update release number.
6418
623fe76a
NS
64192001-06-12 Nathan Sidwell <nathan@codesourcery.com>
6420
6421 PR c++/3130, c++/3131, c++/3132
6422 * cp-tree.h (BINFO_UNSHARED_MARKED): New #define.
6423 * class.c (force_canonical_binfo_r): Move
6424 BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move
6425 virtual bases unless they're primary and what they're primary
6426 too has been moved.
6427 (dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope
6428 with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and
6429 BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most
6430 derived binfo.
6431 (mark_primary_bases): Use BINFO_UNSHARED_MARKED.
6432 (layout_nonempty_base_or_field): Add most derived type
6433 parameter. Adjust.
6434 (layout_empty_base): Likewise.
6435 (build_base_field): Likewise.
6436 (build_base_fields): Likewise.
6437 (propagate_binfo_offsets): Add most derived type
6438 parameter. Skip non canonical virtual bases too.
6439 (dfs_set_offset_for_unshared_vbases): Don't skip primary
6440 bases. Do skip canonical bases.
6441 (layout_virtual_bases): Adjust.
6442 (layout_class_type): Adjust.
6443 (dfs_get_primary_binfo): Build list of virtual primary base
6444 candidates.
6445 (get_primary_binfo): Check that the shared virtual primary
6446 base candidate was found first.
6447 (accumulate_vtbl_inits): Don't do anything for non-vptr
6448 containing binfos. For case 1 primary virtual bases, keep
6449 checking that we've not emerged from the hierarchy of RTTI_BINFO.
6450
7bdcf888
NS
64512001-06-12 Nathan Sidwell <nathan@codesourcery.com>
6452
6453 PR c++/3089
6454 * class.c (dfs_accumulate_vtbl_inits): Always walk down the
6455 hierarchy looking for primary bases for a ctor
6456 vtable. Recursively call oneself, if we meet our primary via
6457 this route and haven't met it yet via inheritance graph order.
6458
25b5b465
MM
64592001-06-11 Mark Mitchell <mark@codesourcery.com>
6460
6461 * lang-options.h: Emit documentation for -fno-honor-std, not
6462 -fhonor-std.
6463
eb2d0614
AO
64642001-06-10 Alexandre Oliva <aoliva@redhat.com>
6465
6466 * typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]:
6467 Don't clobber delta.
6468 (expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn.
6469
2a2b2d43
GDR
64702001-06-10 Mark Mitchell <mark@codesourcery.com>
6471 Gabriel Dos Reis <gdr@codesourcery.com>
6472
6473 * Make-lang.in (cp/call.o): Depend on diagnostic.h
6474 (cp/typeck.o): Depend on diagnostic.h
6475 (cp/typeck2.o): Depend on diagnostic.h
07167a18 6476 (cp/repo.o): Depend on dignostic.h
2a2b2d43
GDR
6477 * typeck.c: #include diagnostic.h
6478 (convert_for_initialization): Remove extern declaration for
6479 warningcount and errorcount.
6480
6481 * call.c: #include diagnostic.h
6482 (convert_like_real): Remove extern declaration for warnincount and
07167a18 6483 errorcount.
2a2b2d43
GDR
6484
6485 * repo.c: #include diagnostic.h
6486 * typeck2.c: #include diagnostic.h
6487
06d5e633
NS
64882001-06-08 Nathan Sidwell <nathan@codesourcery.com>
6489
6490 * decl.c (duplicate_decls): Fix DECL_TEMPLATE_RESULT thinko
6491 in previous change.
6492
9ac1bd2e
NS
64932001-06-08 Nathan Sidwell <nathan@codesourcery.com>
6494
6495 PR c++/2929
6496 * friend.c (do_friend): Use push_decl_namespace for classes at
6497 namespace scope.
6498
85a9a0a2
NS
64992001-06-08 Nathan Sidwell <nathan@codesourcery.com>
6500 Jason Merrill <jason_merrill@redhat.com>
6501
6502 PR c++/3061
6503 * class.c (build_secondary_vtable): Use assert, rather than an error
6504 message.
6505 (dfs_fixup_binfo_vtbls): BINFO_VTABLE might be NULL.
6506 (dfs_accumulate_vtbl_inits): A lost primary virtual base may
6507 be between ORIG_BINFO and RTTI_BINFO, but neither of them.
6508 Don't set BINFO_VTABLE for a primary virtual base.
6509
daa8df65
MM
65102001-06-07 Mark Mitchell <mark@codesourcery.com>
6511
6512 * decl.c (duplicate_decls): Update source position information
6513 when a template function is defined.
6514
37344b9b
PE
65152001-06-07 Phil Edwards <pme@sources.redhat.com>
6516
6517 * lang-specs.h: Move -D_GNU_SOURCE to config/linux.h.
6518
fcebb2dd
NS
65192001-06-07 Nathan Sidwell <nathan@codesourcery.com>
6520
6521 PR c++/2914
6522 * decl.c (pushtag): Don't push into a complete type's scope.
6523
d0cd8b44
JM
65242001-06-06 Jason Merrill <jason_merrill@redhat.com>
6525
6526 * cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose.
6527 (struct lang_decl_flags): Lose generate_with_vtable_p.
6528 (BV_GENERATE_THUNK_WITH_VTABLE_P): Lose.
6529 * class.c (copy_virtuals): Adjust.
6530 * decl2.c (mark_vtable_entries): Adjust.
6531 * method.c (make_thunk, build_vtable_entry): Adjust.
6532 * class.c (update_vtable_entry_for_fn): Only look as far as the
6533 first defining class.
07167a18 6534 (build_vtbl_initializer): Put nothing in the slot for a function only
d0cd8b44 6535 defined in a lost primary virtual base.
07167a18 6536 (add_vcall_offset_vtbl_entries_1): Use the same code for
d0cd8b44
JM
6537 the lost primary case and the normal case.
6538 (dfs_unshared_virtual_bases): Don't lose a non-virtual primary base.
6539 (get_vfield_offset, get_derived_offset): Lose.
6540 (dfs_find_final_overrider): Use look_for_overrides_here.
6541 (get_matching_virtual): New fn.
6542 * semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P,
6543 not BV_VCALL_INDEX.
6544 * search.c (look_for_overrides_here): Split out from...
6545 (look_for_overrides_r): Here.
6546
6547 * class.c (find_final_overrider): Return error_mark_node on error.
6548
6549 * decl2.c (key_method): #if 0 accidental change.
6550
acf97e0b
JDA
65512001-06-06 John David Anglin <dave@hiauly1.hia.nrc.ca>
6552
6553 * call.c (convert_default_arg): Use INTEGRAL_TYPE_P.
6554 (build_over_call): Likewise.
6555 * decl.c (grokparms): Likewise.
6556 * pt.c (tsubst_decl): Likewise.
6557 * typeck.c (convert_arguments): Likewise.
6558
7e9abee9
MM
65592001-06-05 Mark Mitchell <mark@codesourcery.com>
6560
47ee8904
MM
6561 * semantics.c (begin_class_definition): Robustify.
6562
7e9abee9
MM
6563 * pt.c (instantiate_decl): Tell the repository code about the
6564 clones, not the cloned functions.
6565 * repo.c (repo_template_used): Explicitly instantiate the cloned
6566 function, not the clones.
6567
bea09693
NS
65682001-06-05 Nathan Sidwell <nathan@codesourcery.com>
6569
6570 * call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and
6571 ICS_BAD_FLAG on created conversion.
6572 (compare_ics): Break out rank.
6573
8f7550ca
NS
65742001-06-05 Nathan Sidwell <nathan@codesourcery.com>
6575
6576 * decl.c (xref_tag): Remove extraneous %s on dependent name
6577 lookup warning.
6578
442e01b6
NS
65792001-06-05 Nathan Sidwell <nathan@codesourcery.com>
6580
6581 * class.c (layout_vtable_decl): Fix off by one error on
6582 build_index_type.
6583 (build_vtt): Likewise.
6584 (build_ctor_vtbl_group): Likewise.
6585
b7442fb5
NS
65862001-06-05 Nathan Sidwell <nathan@codesourcery.com>
6587
6588 * class.c (maybe_indent_hierarchy): New function.
6589 (dump_class_hierarchy_r): Add flags. Dump extra binfo
6590 information, if enabled. Use maybe_indent_hierarchy. Adjust
6591 output format.
6592 (dump_class_hierarchy): Adjust prototype. Adjust output format.
6593 (dump_array, dump_vtable, dump_vtt): New functions.
6594 (finish_struct_1): Adjust hierarchy dumping.
6595 (initialize_vtable): Call dump_vtable.
6596 (build_vtt): Call dump_vtt.
6597 (build_ctor_vtbl_group): Call dump_vtable.
6598 * decl2.c (flag_dump_class_layout): Remove.
6599 (cxx_decode_option): Remove dump translation unit
6600 and dump class hierarchy check. Call dump_switch_p.
6601 (finish_file): Adjust dumping.
6602 (dump.c): Only dump base classes if not TDF_SLIM.
6603 Only dump namespace members if not TDF_SLIM.
6604 * optimize.c (dump_function): New function.
6605 (optimize_function): Call dump_function.
6606 * semantics.c (expand_body): Use dump_enabled_p.
6607
e5410b32
NS
66082001-06-01 Nathan Sidwell <nathan@codesourcery.com>
6609
6610 PR g++/2936
6611 Part missed from first commit
6612 * decl2.c (finish_anon_union): Copy context.
6613
e97c9488
NS
66142001-05-30 Nathan Sidwell <nathan@codesourcery.com>
6615
6616 PR g++/2936
e97c9488
NS
6617 * optimize.c (remap_decl): Remap anonymous aggregate members too.
6618
87d9ac49
NS
66192001-05-26 Nathan Sidwell <nathan@codesourcery.com>
6620
6621 PR g++/2823
6622 * semantics.c (expand_body): Don't optimize thunks.
6623
88657302
RH
66242001-05-25 Sam TH <sam@uchicago.edu>
6625
6626 * cp-tree.h lex.h: Fix header include guards.
6627
66282001-05-25 Mark Mitchell <mark@codesourcery.com>
10841285
MM
6629
6630 * decl.c (init_decl_processing): Tweak.
6631
0b1161fc
MM
66322001-05-24 Mark Mitchell <mark@codesourcery.com>
6633
6634 * decl.c (duplicate_decls): Tidy.
6635 (init_decl_processing): Always set flag_no_builtin.
6636
6f56d925
NS
66372001-05-24 Nathan Sidwell <nathan@codesourcery.com>
6638
6639 PR c++/2184
6640 * decl2.c (do_local_using_decl): Push the decls, even in a
6641 template.
6642
39e0656d
MM
66432001-05-22 Mark Mitchell <mark@codesourcery.com>
6644
6645 * optimize.c (initialize_inlined_parameters): Don't set
6646 TREE_READONLY for a VAR_DECL taking the place of an inlined
6647 PARM_DECL.
6648
0401d499
JM
66492001-05-22 Jason Merrill <jason_merrill@redhat.com>
6650
6651 * class.c, cp-tree.h, rtti.c: Remove com_interface attribute support.
6652 * tree.c (cp_valid_lang_attribute): Warn about use of com_interface
6653 attribute.
6654
14fc3426
JM
66552001-05-22 Joseph S. Myers <jsm28@cam.ac.uk>
6656
6657 * parse.y: Refer to compound literals as such, not as
6658 constructor-expressions.
6659
3f41ffd8
MM
66602001-05-21 Mark Mitchell <mark@codesourcery.com>
6661
6662 * call.c (build_op_delete_call): Ignore exception-specifications
6663 when looking for matching delete operators.
6664 * init.c (build_new_1): Compute whether or not the allocation
6665 function used is a placement allocation function or not, and
6666 communicate this information to build_op_delete_call.
6667
1a6025b4
JM
66682001-05-21 Jason Merrill <jason_merrill@redhat.com>
6669
90ecce3e
JM
6670 * class.c (build_vtable_entry_ref): Lose vtbl parm. Fix for new abi.
6671 (build_vtbl_ref): Adjust.
6672 (dfs_accumulate_vtbl_inits): Set TREE_CONSTANT on the vtable address.
6673 * decl2.c (lang_f_options): Remove huge-objects, vtable-thunks.
6674 Re-add vtable-gc.
6675 (unsupported_options): Correspondingly.
6676
6677 * decl2.c (maybe_make_one_only): Check flag_weak, not
6678 supports_one_only().
6679
1a6025b4
JM
6680 * cp-tree.def (START_CATCH_STMT): Lose.
6681 * dump.c (cp_dump_tree): Don't dump it. Do dump HANDLER_PARMS.
6682 * tree.c (cp_statement_code_p): Don't case it.
6683 * semantics.c (cp_expand_stmt): Likewise.
6684 * cp-tree.h (START_CATCH_TYPE): Lose.
6685 (HANDLER_TYPE): New.
6686 * except.c (expand_start_catch_block): Don't start any blocks.
6687 Return the type.
6688 (expand_end_catch_block): Don't end any blocks.
6689 * parse.y (handler): Don't pass anything from finish_handler_parms
6690 to finish_handler.
6691 * pt.c (tsubst_expr): Likewise.
6692 * semantics.c (begin_handler): Call note_level_for_catch here.
6693 (finish_handler_parms): Don't return anything.
6694 (genrtl_catch_block, begin_catch_block): Lose.
6695 (genrtl_handler): Call expand_start_catch here.
6696
66972001-05-18 Jason Merrill <jason_merrill@redhat.com>
6698
6699 * class.c (build_vtable): Set DECL_ASSEMBLER_NAME for vtables here.
6700 (get_vtable_decl, build_vtt): Not here.
6701
d30a825a
NS
67022001-05-20 Nathan Sidwell <nathan@codesourcery.com>
6703
6704 PR c++/2781
6705 * optimize.c (update_cloned_parm): Copy addressability and other
6706 flags.
6707
3b82c249
KL
67082001-05-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6709
6710 * pt.c (determine_specialization): Ignore artificial functions.
6711
2a967f3d
NB
67122001-05-20 Neil Booth <neil@daikokuya.demon.co.uk>
6713
6714 * cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update.
6715 (C_RID_CODE): Remove.
6716 * lex.c (cxx_init_options): Call set_identifier_size. Update.
6717 (init_parse): Don't do it here.
6718
f99df08e
DN
67192001-05-18 Diego Novillo <dnovillo@redhat.com>
6720
6721 * decl2.c (finish_objects): Use the original SYMBOL_REF from the
6722 function declaration to avoid stripping the symbol's attributes.
6723
2b0cbc5d
NS
67242001-05-18 Nathan Sidwell <nathan@codesourcery.com>
6725
6726 * decl.c (pushdecl): Adjust error string.
6727 (xref_tag): Adjust friend class injection warning. Remove the
6728 inherited name from the class shadowed scope.
6729
e6855a2d
MM
67302001-05-17 Mark Mitchell <mark@codesourcery.com>
6731
6732 * except.c (cp_protect_cleanup_actions): New function.
07167a18 6733 (init_exception_processing): Don't set protect_cleanup_actions
e6855a2d
MM
6734 here. Do set lang_protect_cleanup_actions.
6735
cc469ee9
NS
67362001-05-16 Nathan Sidwell <nathan@codesourcery.com>
6737
6738 * spew.c (read_token): Call yyerror on all unexpected tokens.
6739
3f0a9b35
NS
67402001-05-16 Nathan Sidwell <nathan@codesourcery.com>
6741
6742 * init.c (member_init_ok_or_else): Take a tree rather than
6743 string for name.
6744 (expand_member_init): Adjust.
6745
8d0cb60d
NC
67462001-05-14 Nick Clifton <nickc@cambridge.redhat.com>
6747
6748 * decl.c (duplicate_decls): Suppress warning about duplicate
749ced52 6749 decls if the first decl is a friend.
8d0cb60d 6750
1f730ff7
ZW
67512001-05-12 Zack Weinberg <zackw@stanford.edu>
6752
6753 * except.c (choose_personality_routine): Export. Add
6754 explanatory comment. Take an enum languages, not a boolean.
6755 (initialize_handler_parm): Adjust to match.
6756 * cp-tree.h: Prototype choose_personality_routine.
6757 * lex.c (handle_pragma_java_exceptions): New function.
6758 (init_cp_pragma): Register #pragma GCC java_exceptions.
6759
90e0c410
NB
67602001-05-12 Neil Booth <neil@cat.daikokuya.demon.co.uk>
6761
6762 * method.c (build_mangled_C99_name): Remove unused prototype.
6763
cb7fdde2
AO
67642001-05-12 Alexandre Oliva <aoliva@redhat.com>
6765
6766 * cp-tree.h (ptrmemfunc_vbit_where_t): Declare type.
6767 * typeck.c (get_member_function_from_ptrfunc,
6768 build_ptrmemfunc, expand_ptrmemfunc_cst): Take
6769 TARGET_PTRMEMFUNC_VBIT_LOCATION into account.
18ae7f63
AO
6770
6771 Reverted Geoff Keating's 2001-05-03's patch.
6772
401deb20
IR
67732001-05-11 Ira Ruben <ira@apple.com>
6774
6775 * cp/cp-tree.h (C_EXP_ORIGINAL_CODE): Delete; declared in c-common.h.
6776
8e93d446
NB
67772001-05-11 Neil Booth <neil@daikokuya.demon.co.uk>
6778
6779 * cp-tree.h (finish_label_expr, lookup_label): Delete.
6780 * parse.y: Update for '&&'; don't issue warning here.
6781 * semantics.c (finish_label_expr): Delete.
6782
5cdba4ff
MM
67832001-05-07 Mark Mitchell <mark@codesourcery.com>
6784
6785 * splay-tree.h (splay_tree_max): New function.
6786 (splay_tree_min): Likewise.
6787
8e9eff6b
GK
67882001-05-03 Geoffrey Keating <geoffk@redhat.com>
6789
6790 * cp-tree.h (enum cp_tree_index): Add CPTI_PFN_VFLAG_IDENTIFIER.
6791 (pfn_vflag_identifier): Define.
6792 Update comment about layout of pointer functions.
6793 (build_ptrmemfunc1): Update prototype.
6794 (expand_ptrmemfunc_cst): Update prototype.
6795 * decl.c (initialize_predefined_identifiers): Initialize
6796 pfn_vflag_identifier.
6797 (build_ptrmemfunc_type): When FUNCTION_BOUNDARY < 16, add
6798 an extra field to the type.
07167a18 6799 * expr.c (cplus_expand_constant): Pass 'flag' between
8e9eff6b
GK
6800 expand_ptrmemfunc_cst and build_ptrmemfunc1.
6801 * typeck.c (get_member_function_from_ptrfunc): When
6802 FUNCTION_BOUNDARY < 16, look at additional field to determine
6803 if a pointer-to-member is a real pointer or a vtable offset.
6804 (build_ptrmemfunc1): Add new parameter to contain extra field.
6805 (build_ptrmemfunc): Pass the extra field around.
6806 (expand_ptrmemfunc_cst): Add new parameter to return extra field.
6807 (pfn_from_ptrmemfunc): Ignore the extra field.
6808
acc72c37
MM
68092001-05-03 Mark Mitchell <mark@codesourcery.com>
6810
6811 * cp-tree.h (flag_inline_trees): Update documentation.
6812 * decl.c (init_decl_processing): Adjust handling of
6813 flag_inline_functions and flag_inline_trees to support -O3.
6814 (grokfndecl): Set DECL_INLINE on all functions if that's what
6815 the user requested.
6816 (save_function_data): Clear DECL_INLINE in
6817 current_function_cannot_inline is non-NULL.
6818 * decl2.c (flag_inline_trees): Update documentation.
6819
5158d7ee
NS
68202001-05-03 Nathan Sidwell <nathan@codesourcery.com>
6821
6822 * dump.c (cp_dump_tree, USING_STMT case): New case.
6823 * tree.c (cp_statement_code_p): Add USING_STMT.
6824 * decl2.c (do_using_directive): Add the using directive statement.
6825
6826 * tree.c (walk_tree): Reformat an if block.
6827
80f5bb34
MM
68282001-05-02 Mark Mitchell <mark@codesourcery.com>
6829
6830 * decl.c (compute_array_index_type): Don't try to do anything with
6831 the indices when processing a template.
6832
3e411c3f
KG
68332001-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6834
6835 * call.c: NULL_PTR -> NULL.
6836 * class.c: Likewise.
6837 * cvt.c: Likewise.
6838 * decl.c: Likewise.
6839 * decl2.c: Likewise.
6840 * except.c: Likewise.
6841 * init.c: Likewise.
6842 * rtti.c: Likewise.
6843 * search.c: Likewise.
6844 * tree.c: Likewise.
6845 * typeck.c: Likewise.
6846 * typeck2.c: Likewise.
6847
46188dca
MM
68482001-05-02 Mark Mitchell <mark@codesourcery.com>
6849
6850 * decl2.c (do_using_directive): Revert previous patch.
6851
9da99f7d
NS
68522001-05-01 Nathan Sidwell <nathan@codesourcery.com>
6853
6854 * cp-tree.def (USING_STMT): New statement node.
6855 * cp-tree.h (USING_STMT_NAMESPACE): New macro.
6856 * decl2.c (do_using_directive): Add USING_STMT to statement
6857 tree. Don't emit errors when processing template decl.
6858 * pt.c (tsubst_expr, USING_STMT case): New case.
6859 * semantics.c (cp_expand_stmt, USING_STMT case): New case.
6860
4b48a93e
NS
68612001-05-01 Nathan Sidwell <nathan@codesourcery.com>
6862
6863 * call.c (build_new_op): Convert args from reference here.
6864 (build_conditional_expr): Don't convert here.
6865
1bcea8d7
NS
68662001-05-01 Nathan Sidwell <nathan@codesourcery.com>
6867
6868 * spew.c (last_token_id): New static variable.
6869 (read_token): Set it here.
6870 (yyerror): Use it here.
6871
d72040f5
RH
68722001-04-30 Richard Henderson <rth@redhat.com>
6873
749ced52 6874 * cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations.
d72040f5
RH
6875 * decl.c: Likewise.
6876
c3aac512
MM
68772001-04-30 Mark Mitchell <mark@codesourcery.com>
6878
6879 * gxxint.texi: Remove.
6880 * Make-lang.in: Remove all traces of gxxint.texi.
6881
5fd893d5
MM
6882Mon Apr 30 16:14:10 2001 Mark P Mitchell <mark@codesourcery.com>
6883
6884 * decl2.c (start_static_initialization_or_destruction): Correct
6885 logic to handle the -fno-use-cxa-atexit case.
6886
d60e5448
MM
68872001-04-30 Mark Mitchell <mark@codesourcery.com>
6888
6889 * optimize.c (update_cloned_parm): New function.
6890 (maybe_clone_body): Use it. Update the `this' parameter too.
6891
7200764f
JM
68922001-04-29 Joseph S. Myers <jsm28@cam.ac.uk>
6893
6894 * decl2.c (unsupported_options): Add new-abi.
6895 * lang-options.h: Remove no longer supported options.
6896
2d46ec83
NS
68972001-04-27 Nathan Sidwell <nathan@codesourcery.com>
6898
6899 * except.c (can_convert_eh): Don't check template parms,
6900 typename types etc.
6901
02a1a68c
NS
69022001-04-27 Nathan Sidwell <nathan@codesourcery.com>
6903
6904 * optimize.c (maybe_clone_body): Copy parameter names and locations.
6905
5f6eeeb3
NS
69062001-04-27 Nathan Sidwell <nathan@codesourcery.com>
6907
6908 * cp-tree.h (adjust_clone_args): Prototype new function.
6909 * class.c (adjust_clone_args): New function.
6910 * decl.c (start_function): Call it for in charge ctors.
6911
1b28d441
MM
69122001-04-26 Mark Mitchell <mark@codesourcery.com>
6913
6914 * method.c (use_thunk): Make sure that thunks really are emitted
6915 when requested.
6916
0576ec13
NS
69172001-04-26 Nathan Sidwell <nathan@codesourcery.com>
6918
6919 * mangle.c (write_chars): New macro.
6920 (hwint_to_ascii): New function
6921 (write_number): Use it.
6922 (write_integer_cst): Deal with really big numbers.
6923
b96ada87
MM
69242001-04-25 Mark Mitchell <mark@codesourcery.com>
6925
6926 * optimize.c (maybe_clone_body): Copy TREE_PUBLIC before emitting
6927 the clone.
6928
6bda7a5e
NS
69292001-04-25 Nathan Sidwell <nathan@codesourcery.com>
6930
6931 * decl.c (grokdeclarator): Set context of namespace scope
6932 TYPE_DECLS.
6933
11fe225a
ZW
69342001-04-24 Zack Weinberg <zackw@stanford.edu>
6935
6936 * cp/optimize.c: Include hashtab.h.
6937 (struct inline_data): Add tree_pruner.
6938 (expand_call_inline, expand_calls_inline): Use it when calling
6939 walk_tree.
6940 (optimize_function): Initialize and free tree_pruner.
6941
0ba8a114
NS
69422001-04-24 Nathan Sidwell <nathan@codesourcery.com>
6943
6944 Lazy __FUNCTION__ generation.
6945 * cp-tree.def (FUNCTION_NAME): Remove.
6946 * cp-tree.h (function_name_declared_p): Remove.
6947 (cp_fname_init): Prototype.
6948 * decl.c (init_decl_processing): Don't generate __FUNCTION__ et al ids,
6949 don't call declare_function_name. Call start_fname_decls.
6950 (cp_make_fname_decl): Adjust parameters. Generate the name. Don't
6951 clobber the line number.
6952 (cp_fname_init): New function.
6953 (start_function): Call start_fname_decls.
6954 (finish_function): Call finish_fname_decls.
6955 * lex.c (reswords): Add slots for __FUNCTION__ et al.
6956 (rid_to_yy): Add mappings for __FUNCTION__ et al.
6957 * optimize.c (maybe_clone_body): Remove function_name_declared_p.
6958 * parse.y (VAR_FUNC_NAME): New token.
6959 (primary): Add VAR_FUNC_NAME.
6960 * pt.c (tsubst_decl): Adjust a DECL_PRETTY_FUNCTION_P's
6961 generation.
6962 (tsubst, FUNCTION_NAME case): Remove.
6963 (tsubst_copy, FUNCTION_NAME case): Remove.
6964 (tsubst_expr, DECL_STMT case): Be careful with a
6965 DECL_PRETTY_FUNCTION_P.
6966 (instantiate_decl): Remove function_name_declared_p.
6967 * semantics.c (begin_compound_statement): Don't call
6968 declare_function_name here.
6969 (setup_vtbl_ptr). Don't save & restore function_name_declared_p.
6970 (finish_translation_unit): Call finish_fname_decls.
6971 (expand_body): Remove function_name_declared_p.
6972 * typeck2.c (digest_init): Allow any ERROR_MARK.
6973
dfbb4f34
NS
69742001-04-24 Nathan Sidwell <nathan@codesourcery.com>
6975
6976 * pt.c (tsubst_decl): Use VOID_TYPE_P.
6977 * semantics.c: Fix some typos.
6978
e2584c52
PE
69792001-04-23 Phil Edwards <pme@sources.redhat.com>
6980
6981 * cp/decl2.c (flag_honor_std): Always initialize to 1.
6982
d4c3ec27
KG
69832001-04-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6984
6985 * xref.c (GNU_xref_file): Use concat in lieu of xmalloc/sprintf.
6986
2ac8a0f9
JM
69872001-04-23 Jason Merrill <jason_merrill@redhat.com>
6988
6989 * except.c (build_throw): Wrap the initialization of the exception
6990 object in a MUST_NOT_THROW_EXPR.
6991 (do_free_exception): #if 0.
6992
968b956a
MM
69932001-04-20 Mark Mitchell <mark@codesourcery.com>
6994
6995 * cp-tree.h (finish_enum): Change prototype.
6996 * decl.c (finish_enum): Reorganize.
6997 * parse.y (structsp): Adjust calls to finish_enum.
11fe225a 6998
aa1826e2
NS
69992001-04-20 Nathan Sidwell <nathan@codesourcery.com>
7000
7001 * tree.c (cp_tree_equal): Adjust final switch formatting. Add
7002 't' case.
7003
06d9f09f
NS
70042001-04-20 Nathan Sidwell <nathan@codesourcery.com>
7005
7006 * class.c (dfs_unshared_virtual_bases): Add ATTRIBUTE_UNUSED.
7007 (layout_empty_base): Return at end flag.
7008 (build_base_field): Likewise.
7009 (build_base_fields): Likewise.
7010 (layout_virtual_bases): Don't add 1 to eoc value.
7011 (end_of_class): Use full size for empty bases.
7012 (layout_class_type): Clear CLASSNEARLY_EMPTY_P if we appended
7013 empty bases. Don't add 1 to eoc value. Only add trailing padding
7014 if we're an empty class with no empty bases.
7015 (dump_class_hierarchy): Dump size and alignment.
7016
351a0f00
JJ
70172001-04-20 Jakub Jelinek <jakub@redhat.com>
7018
7019 * call.c (maybe_handle_ref_bind): Copy ICS_USER_FLAG and
7020 ICS_BAD_FLAG.
7021
881cae05
JJ
70222001-04-20 Jakub Jelinek <jakub@redhat.com>
7023
7024 * search.c (lookup_field_r): If looking for type and non-TYPE_DECL
7025 is found, look first if name does not match the structure name.
7026
5d2ed28c
MM
70272001-04-19 Mark Mitchell <mark@codesourcery.com>
7028
7029 * cp-tree.h (DECL_LANGUAGE): Don't assume DECL_LANG_SPECIFIC is
7030 set.
7031 (SET_DECL_LANGUAGE): New macro.
7032 * decl.c (duplicate_decls): Use SET_DECL_LANGUAGE.
7033 (pushdecl): Likewise.
7034 (build_library_fn_1): Likewise.
7035 (build_cp_library_fn): Likewise.
7036 (grokfndecl): Likewise.
7037 (grokvardecl): Mark `extern "C"' variables as having C linkage.
7038 * decl2.c (grokclassfn): Use SET_DECL_LANGUAGE.
7039 * lex.c (retrofit_lang_decl): Likewise.
7040 * mangle.c (mangle_decl_string): Don't mangle the names of
7041 variables declared with C language linkage.
7042 * semantics.c (finish_member_declaration): Use SET_DECL_LANGUAGE.
11fe225a 7043
41251458
JDA
70442001-04-18 John David Anglin <dave@hiauly1.hia.nrc.ca>
7045
7046 * semantics.c (simplify_aggr_init_exprs_r): Don't restore
7047 flag_access_control from uninitialized storage.
7048
1b4a93f7
MM
70492001-04-15 Mark Mitchell <mark@codesourcery.com>
7050
24272dc0
MM
7051 * cp-tree.h (TYPE_PTRMEM_CLASS_TYPE): Improve documentation.
7052 * mangle.c (write_pointer_to_member_type): Fix mangling of
7053 pointers to cv-qualified member function types.
7054
1b4a93f7
MM
7055 * init.c (build_delete): Create a SAVE_EXPR for the address if
7056 we're going to use it more than once.
7057
530ec96d
MM
70582001-04-13 Mark Mitchell <mark@codesourcery.com>
7059
7060 * cp-tree.h (DELTA2_FROM_PTRMEMFUNC): Remove.
7061 (expand_ptremfunc_cst): Change prototype.
7062 (delta2_from_ptrmemfunc): Remove.
7063 * expr.c (cplus_expand_constant): Adjust call to
7064 expand_ptrmemfunc_cst.
7065 * typeck.c (build_ptrmemfunc1): Simplify.
7066 (build_ptrmemfunc): Make sure that casting a PTRMEM_CST still
7067 results in a constant.
7068 (expand_ptrmemfunc_cst): Remove idx and delta2 parameters.
7069 (delta2_from_ptrmemfunc): Remove.
7070 (pfn_from_ptrmemfunc): Adjust call to expand_ptrmemfunc_cst.
11fe225a 7071
ee8fc32b
JM
70722001-04-12 Jason Merrill <jason_merrill@redhat.com>
7073
7074 * cp-tree.h (decl_namespace_list): New macro.
7075 (struct saved_scope): Add decl_ns_list.
7076 * decl.c (mark_saved_scope): Mark it.
7077 * decl2.c: Lose static decl_namespace_list.
7078 (init_decl2): Don't save it.
7079
48857160
KG
70802001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7081
7082 * cp-tree.h (warn_return_type, yylex): Delete redundant
7083 declarations.
11fe225a 7084
48857160
KG
7085 * decl.c (current_class_depth, global_namespace): Likewise.
7086
7087 * decl2.c (current_class_depth, flag_gnu_xref): Likewise
7088
7089 * repo.c (flag_use_repository): Likewise.
7090
845e14ed
KG
70912001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7092
7093 * cp-tree.h (pedantic, convert, global_bindings_p, insert_block,
7094 set_block, pushdecl, getdecls, gettags, init_decl_processing,
7095 maybe_build_cleanup, copy_lang_decl, prep_stmt, lvalue_p,
7096 lvalue_or_else, print_lang_statistics, comp_target_types,
7097 unsigned_type, signed_type, signed_or_unsigned_type,
7098 build_function_call, mark_addressable, incomplete_type_error):
7099 Delete redundant declarations.
7100
1951a1b6
JM
71012001-04-11 Jason Merrill <jason_merrill@redhat.com>
7102
7103 * cp-tree.h (TYPE_LINKAGE_IDENTIFIER): New macro.
7104 (TYPE_ANONYMOUS_P): New macro.
7105 (TAGGED_TYPE_P): New macro.
7106 * decl.c (check_tag_decl): Use TYPE_ANONYMOUS_P.
7107 (grokfndecl, grokvardecl, grokdeclarator): Likewise.
7108 * tree.c (no_linkage_helper): Likewise.
7109 * semantics.c (begin_class_definition): Likewise.
7110 * pt.c (convert_template_argument): Likewise.
7111 * lex.c (check_for_missing_semicolon): Likewise.
7112
0fb3018c
NS
71132001-04-12 Nathan Sidwell <nathan@codesourcery.com>
7114
7115 * class.c (dfs_unshared_virtual_bases): New function.
7116 (mark_primary_bases): Call it.
7117 (check_bases): Ignore virtual bases when determining
7118 nearly-emptiness.
7119
bbb53468
NS
71202001-04-12 Nathan Sidwell <nathan@codesourcery.com>
7121
7122 * method.c (make_thunk): Clear DECL_CLONED_FUNCTION.
7123
9b7949d5
MM
71242001-04-11 Mark Mitchell <mark@codesourcery.com>
7125
7126 * optimize.c (maybe_clone_body): Copy DECL_NUM_STMTS from the
7127 cloned function to the clone.
7128
d6684bc8
KG
71292001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7130
7131 * Make-lang.in (cp/semantics.o): Depend on $(EXPR_H).
7132
7133 * semantics.c: Include expr.h.
7134
a2095778
NS
71352001-04-11 Nathan Sidwell <nathan@codesourcery.com>
7136
7137 * method.c (implicitly_declare_fn): Commonize code for copy ctor
7138 and assignment op. Set TREE_USED for parameter.
7139
78b45a24
MM
71402001-04-10 Mark Mitchell <mark@codesourcery.com>
7141
7142 * class.c (find_final_overrider_data): Add `candidates'.
7143 (dfs_find_final_overrider): Don't issue error messages
7144 prematurely.
7145 (find_final_overrider): Issue error messages here.
7146 (build_base_field): Don't warn about amgibuous direct bases here.
7147 (warn_about_ambiguous_direct_bases): New function.
7148 (layout_class_type): Use it.
7149
0450d74d
RH
71502001-04-10 Richard Henderson <rth@redhat.com>
7151
7152 * typeck.c (build_array_ref): Push the array reference inside
7153 COMPOUND_EXPR and COND_EXPR.
7154
79065db2
MM
71552001-04-05 Mark Mitchell <mark@codesourcery.com>
7156
7157 * cp-tree.h (DECL_THIS_INLINE): Rename to DECL_DECLARED_INLINE_P.
7158 * decl.c (duplicate_decls): Adjust accordingly.
7159 (maybe_commonize_var): Likewise.
7160 (grokfndecl): Likewise.
7161 (start_function): Likewise.
7162 (start_method): Likewise.
7163 * decl2.c (key_method): Likewise.
7164 (import_export_decl): Likewise.
7165 * method.c (implicitly_declare_fn): Likewise.
7166 * optimize.c (maybe_clone_body): Likewise.
11fe225a 7167
fdecbf8a
BK
71682001-04-05 Benjamin Kosnik <bkoz@redhat.com>
7169
b03eced6 7170 * lang-specs.h: Add __DEPRECATED.
fdecbf8a 7171
0b4c1646
R
7172Thu Apr 5 16:54:29 2001 J"orn Rennecke <amylaar@redhat.com>
7173
7174 * search.c (get_dynamic_cast_base_type): When building a new
7175 constant, set its type to ssizetype.
7176
e59d6709
JJ
71772001-04-04 Jakub Jelinek <jakub@redhat.com>
7178
7179 * optimize.c (expand_call_inline): Only add newly inlined statements
7180 into inlined_stmts.
7181
0c918ce5
MM
71822001-04-03 Mark Mitchell <mark@codesourcery.com>
7183
7184 * cp-tree.h (OPERATOR_ASSIGN_FORMAT): Remove.
7185 (OPERATOR_FORMAT): Likewise.
7186 (OPERATOR_TYPENAME_FORMAT): Likewise.
7187 * operators.def: Remove old name-mangling information.
7188 * decl.c (grok_op_properties): Adjust accordingly.
7189 * lex.c (init_operators): Likewise.
7190 * rtti.c (get_tinfo_decl): Issue error messages about types that
7191 have variable size.
7192
92788413
MM
71932001-04-03 Mark Mitchell <mark@codesourcery.com>
7194
11fe225a 7195 * decl2.c (import_export_decl): Don't call import_export_class
92788413
MM
7196 when processing an inline member function.
7197 * semantics.c (expand_body): Call import_export_decl before
7198 emitting inline functions.
7199
52a11cbf
RH
72002001-03-28 Richard Henderson <rth@redhat.com>
7201
7202 IA-64 ABI Exception Handling:
7203 * cp-tree.def (EH_SPEC_BLOCK): New.
7204 (MUST_NOT_THROW_EXPR): New.
7205 * cp-tree.h: Update changed function declarations.
7206 (CPTI_PUSH_EXCEPTION_IDENTIFIER): Remove.
7207 (CPTI_CALL_UNEXPECTED): New.
7208 (struct cp_language_function): Rename x_eh_spec_try_block
7209 to x_eh_spec_block.
7210 (EH_SPEC_STMTS, EH_SPEC_RAISES): New.
11fe225a 7211 * decl.c (current_binding_level): If no current function
52a11cbf
RH
7212 bindings, revert to scope_chain.
7213 (initialize_predefined_identifiers): Remove __cp_push_exception.
7214 (store_parm_decls): Use begin_eh_spec_block.
7215 (finish_function): Use finish_eh_spec_block.
7216 (mark_lang_function): Update for name changes.
7217 * decl2.c (finish_file): No mark_all_runtime_matches.
7218 * dump.c (cp_dump_tree): Handle new tree codes.
7219 * error.c (dump_expr) [BIND_EXPR]: Fix typo.
7220 * except.c (catch_language_init, catch_language): Remove.
7221 (init_exception_processing): Don't set language code.
7222 Initialize call_unexpected_node, protect_cleanup_actions,
7223 eh_personality_libfunc, lang_eh_runtime_type.
7224 (call_eh_info, push_eh_info, get_eh_info, get_eh_value): Remove.
7225 (get_eh_type, get_eh_caught, get_eh_handlers): Remove.
7226 (prepare_eh_type): Split out type canonicalizations ...
7227 (build_eh_type_type): ... from here.
7228 (build_eh_type_type_ref): Remove.
7229 (mark_all_runtime_matches): Remove.
7230 (build_exc_ptr): New.
7231 (do_begin_catch, do_end_catch): New.
7232 (do_pop_exception): Remove.
7233 (build_terminate_handler): Remove.
7234 (choose_personality_routine): Split out language choice from ...
7235 (initialize_handler_parm): ... here.
7236 Use MUST_NOT_THROW_EXPR.
7237 (expand_start_catch_block): Use do_begin_catch. Simplify Java
7238 exception object handling.
7239 (expand_start_eh_spec, expand_end_eh_spec): Remove.
7240 (expand_exception_blocks, alloc_eh_object): Remove.
7241 (begin_eh_spec_block, finish_eh_spec_block): New.
7242 (do_allocate_exception, do_free_exception): New.
7243 (expand_throw): Merge into ...
7244 (build_throw): ... here. Update for abi.
7245 * expr.c (cplus_expand_expr): No expand_internal_throw.
7246 Handle MUST_NOT_THROW_EXPR.
7247 * pt.c (tsubst_expr): Handle EH_SPEC_BLOCK.
7248 * semantics.c (*) Update for except.h name changes.
7249 (genrtl_try_block): No protect_with_terminate.
7250 (genrtl_eh_spec_block): New.
7251 (genrtl_handler): Don't emit the goto here.
7252 (cp_expand_stmt): Handle EH_SPEC_BLOCK.
7253 (genrtl_finish_function): Don't expand_exception_blocks.
7254 * tree.c (cp_statement_code_p): Handle EH_SPEC_BLOCK.
7255
826840d9
RH
72562001-03-28 Richard Henderson <rth@redhat.com>
7257
7258 * decl.c (struct named_label_list): Rename eh_region to
7259 in_try_scope, add in_catch_scope.
7260 (struct binding_level): Rename eh_region to is_try_scope,
7261 add is_catch_scope.
7262 (note_level_for_try): Rename from note_level_for_eh.
7263 (note_level_for_catch): New.
7264 (poplevel): Copy both is_try_scope and is_catch_scope to
7265 the named_label_list struct.
7266 (check_previous_goto_1): Don't check for catch block via
7267 DECL_ARTIFICIAL; use in_try_scope instead.
7268 (check_goto): Likewise.
7269 * cp-tree.h (note_level_for_try, note_level_for_catch): Declare.
7270 * except.c (expand_start_catch_block): Call note_level_for_catch.
7271 * semantics.c (begin_compound_stmt): Update for note_level_for_try.
7272
531073e7
RH
72732001-03-27 Richard Henderson <rth@redhat.com>
7274
7275 * except.c: Use USING_SJLJ_EXCEPTIONS instead of
7276 exceptions_via_longjmp.
7277
8653a2c3
PE
72782001-03-27 Phil Edwards <pme@sources.redhat.com>
7279
7280 * pt.c (check_default_tmpl_args): Make error messages clearer.
7281
72822001-03-26 Phil Edwards <pme@sources.redhat.com>
7283
7284 * error.c: Also undefine 'A' macro used for cp_printers definition.
7285
911e6107
KG
72862001-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7287
7288 * Make-lang.in: Depend on $(SYSTEM_H), not system.h.
7289
005a5cb0
MY
72902001-03-26 Mike Yang <yang@research.att.com>
7291 Mark Mitchell <mark@codesourcery.com>
7292
7293 * dump.c (dump_access): New function.
7294 (cp_dump_tree): Use it. Dump basetype information for class
7295 types.
7296
b850de4f
MM
72972001-03-26 Mark Mitchell <mark@codesourcery.com>
7298
7299 * Makefile.in (optimize.o): Depend on params.h.
7300 (duplicate_decls): Copy DECL_NUM_STMTS, not DECL_FRAME_SIZE.
7301 (init_decl_processing): Set flag_no_inline when doing
7302 inlining-on-trees.
7303 * optimize.c: Include params.h.
7304 (struct inline_data): Improve documentation of FNS. Add
7305 FIRST_INLINED_FN, INLINED_STMTS, and CLONING_P.
7306 (INSNS_PER_STMT): New macro.
7307 (remap_block): Use CLONING_P.
7308 (inlinable_function_p): Don't inline big functions.
7309 (expand_call_inline): Keep track of how much inlining we've done.
7310 (optimize_function): Set FIRST_INLINED_FN.
7311 (maybe_clone_body): Set CLONING_P.
7312 * semantics.c (simplify_aggr_init_exprs_r): Fix typing problems in
7313 tree nodes.
7314 (genrtl_finish_function): Clear DECL_DEFER_OUTPUT before calling
7315 rest_of_compilation. Clear DECL_RTL for local variables
7316 afterwards.
7317 (clear_decl_rtl): New function.
11fe225a 7318
788bf0e3
NS
73192001-03-26 Nathan Sidwell <nathan@codesourcery.com>
7320
7321 Implement DR 209
7322 * cp-tree.h (skip_type_access_control,
7323 reset_type_access_control): Prototype.
7324 * decl.c (grokdeclarator): Access of friends is not checked.
7325 * parse.y (component_decl_list): Reset type access control.
7326 * semantics.c (decl_type_access_control): Clear
7327 current_type_lookups.
7328 (save_type_access_control): Don't save if not deferring.
7329 (skip_type_access_control, reset_type_access_control): New
7330 functions.
7331 (begin_class_definition): Do type access control for basetypes.
7332 Start deferred access control.
7333 (finish_class_definition): Resume immediate access control if
7334 this is a local class.
7335
730e1556
KG
73362001-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7337
7338 * class.c (add_method): Use memcpy/memmove, not bcopy.
7339
7340 * decl.c (duplicate_decls): Likewise.
7341
f1a0345c
JJ
73422001-03-23 Jakub Jelinek <jakub@redhat.com>
7343
7344 * mangle.c (write_discriminator): Use `_0' for discriminator 1,
7345 not `_'.
7346
8e4ce833
JJ
73472001-03-23 Jakub Jelinek <jakub@redhat.com>
7348
7349 * decl.c (local_names): Define.
7350 (push_local_name): New.
7351 (grok_reference_init): Return init if initializing static reference
7352 variable with non-constant instead of emitting it.
7353 Move expand_static_init call to cp_finish_decl.
7354 (layout_var_decl): Call push_local_name.
7355 (maybe_commonize_var): Allow inlining functions even if they have
7356 static local variables, use comdat_linkage for them if flag_weak.
7357 (check_initializer): Call obscure_complex_init if
838dfd8a 7358 grok_reference_init returned nonzero.
8e4ce833
JJ
7359 (save_function_data): Clear x_local_names.
7360 (pop_cp_function_context): Free x_local_names.
7361 (mark_inlined_fns): Remove.
7362 (mark_lang_function): Mark x_local_names.
7363 (lang_mark_tree): Don't mark DECL_ACCESS for DECL_DISCRIMINATOR_P.
7364 Mark inlined_fns as tree, remove call to mark_inlined_fns.
7365 * class.c (alter_access): Ensure DECL_ACCESS is never set if
7366 DECL_DISCRIMINATOR_P.
7367 * cp-tree.h (cp_language_function): Add x_local_names.
7368 (lang_decl_flags): Add discriminator into u2.
7369 (lang_decl_inlined_fns): Remove.
7370 (lang_decl): inlined_fns is now a TREE_VEC.
7371 (DECL_DISCRIMINATOR_P, DECL_DISCRIMINATOR): Define.
7372 * optimize.c (inlinable_function_p): DECL_INLINED_FNS is now a
7373 TREE_VEC, not a custom structure.
7374 (optimize_function): Likewise.
7375 * mangle.c (discriminator_for_local_entity): Discriminate among
7376 VAR_DECL local entities.
7377 * search.c (dfs_access_in_type): If DECL_DISCRIMINATOR_P, DECL_ACCESS
7378 is not valid.
7379
60c87482
BM
73802001-03-22 Bryce McKinlay <bryce@albatross.co.nz>
7381
7382 Add support for Java interface method calls.
7383 * cp-tree.h (struct lang_type): Add java_interface flag.
7384 (TYPE_JAVA_INTERFACE): New macro.
7385 * tree.c (cp_valid_lang_attribute): Handle "java_interface" attribute
7386 by setting TYPE_JAVA_INTERFACE.
7387 * call.c (java_iface_lookup_fn): New static.
11fe225a 7388 (build_over_call): If calling a method declared in a
60c87482
BM
7389 TYPE_JAVA_INTERFACE, call build_java_interface_fn_ref to generate the
7390 expression which resolves the function address.
7391 (build_java_interface_fn_ref): New function.
7392
94c7f30b
RH
73932001-03-22 Richard Henderson <rth@redhat.com>
7394
7395 * Make-lang.in (cp/except.o): Don't depend on insn-flags.h.
7396 * except.c: Don't include it.
7397
fd8b7a0e 73982001-03-22 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
826840d9 7399 based on an idea from Joe Buck <jbuck@synopsys.com>
fd8b7a0e
GP
7400
7401 * parse.y (bad_decl, template_arg_list_ignore, arg_list_ignore):
7402 New nonterminals.
7403 (data_def, component_decl): Add reductions to bad_decl.
7404
a1c2b86d
JJ
74052001-03-22 Jakub Jelinek <jakub@redhat.com>
7406
7407 * method.c (do_build_assign_ref): Don't use build_modify_expr for
7408 anonymous aggregates, since they don't have assignment operator
7409 method.
7410 * decl.c (fixup_anonymous_aggr): Disallow ctors, dtors and copy
7411 assignment operators for anonymous structure fields.
7412
46ccf50a
JM
74132001-03-21 Jason Merrill <jason@redhat.com>
7414
7415 * pt.c (instantiate_decl): Abort if we see a member constant
7416 instantiation that doesn't already have its initializer.
7417 Downgrade explicit instantiation without definition to pedwarn.
7418
7419 * cp-tree.h (DECL_TINFO_FN_P, SET_DECL_TINFO_FN_P): Remove.
7420 * class.c (build_vtable_entry): Don't check DECL_TINFO_FN_P.
7421 (import_export_decl): Check tinfo_decl_p, not DECL_TINFO_FN_P.
7422
7423 * cp-tree.h (CLASSTYPE_VTABLE_NEEDS_WRITING): Remove.
7424 (pending_vtables): Remove.
7425 * decl2.c (pending_vtables): Remove.
7426 (import_export_vtable): Use CLASSTYPE_INTERFACE_ONLY, not
7427 CLASSTYPE_VTABLE_NEEDS_WRITING.
7428 (import_export_class): Likewise.
7429 (init_decl2): Don't mark pending_vtables.
7430 * lex.c (handle_pragma_vtable): Just sorry.
7431 * pt.c (instantiate_class_template): Don't mess with
7432 CLASSTYPE_VTABLE_NEEDS_WRITING.
7433 (mark_class_instantiated): Likewise.
7434 * ptree.c (print_lang_type): Don't print it.
7435 * semantics.c (begin_class_definition): Don't set it.
7436
7437 * pt.c (template_tail): Replace with last_pending_template.
7438 (maybe_templates, maybe_template_tail): Remove.
7439 (add_pending_template): Adjust.
7440 (instantiate_pending_templates): Adjust.
7441
7442 * cp-tree.h (struct saved_scope): Remove lang_stack field.
7443 (current_lang_stack): Remove.
7444 * decl.c (maybe_push_to_top_level): Don't initialize it.
7445 (duplicate_decls): Use current_lang_depth.
7446 (xref_basetypes): Likewise.
7447 * class.c (current_lang_depth): New fn.
7448 (push_lang_context): Use more varray functionality.
7449 (pop_lang_context): Likewise.
64d9c3fe
JM
7450
7451 * error.c (GLOBAL_THING): Always use '__'.
7452
1c06710a
MM
74532001-03-21 Mark Mitchell <mark@codesourcery.com>
7454
71cb9286
MM
7455 * class.c (build_clone): Clear DECL_ASSEMBLER_NAME.
7456
1c06710a
MM
7457 * mangle.c (mangle_decl_string): Mangle the names of overloaded
7458 operators, even when they have `extern "C"' linkage.
7459
92643fea
MM
74602001-03-19 Mark Mitchell <mark@codesourcery.com>
7461
7462 * class.c (get_vtable_decl): Use SET_DECL_ASSEMBLER_NAME,
7463 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
7464 where it's not necessary.
7465 (add_method): Remove optimization involving comparison of
7466 DECL_ASSEMBLER_NAME.
7467 (build_vtbl_or_vbase_field): Use SET_DECL_ASSEMBLER_NAME,
7468 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
7469 where it's not necessary.
7470 (check_methods): Likewise.
7471 (build_clone): Likewise.
7472 (built_vtt): Likewise.
7473 * cp-tree.h (DECL_NEEDED_P): Likewise.
7474 * decl.c (pushtag): Likewise.
7475 (duplicate_decls): Likewise.
7476 (pushdecl): Likewise.
7477 (builtin_function): Likewise.
7478 (build_library_fn_1): Set DECL_LANGUAGE for library functions.
7479 (build_cp_library_fn): Likewise.
7480 (maybe_commonize_var): Use SET_DECL_ASSEMBLER_NAME,
7481 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
7482 where it's not necessary.
7483 (make_rtl_for_nonlocal_decl): Likewise.
7484 (cp_finish_decl): Likewise.
7485 (grokfndecl): Likewise.
7486 (grokvardecl): Likewise.
7487 (grokdeclarator): Likewise.
7488 (start_function): Likewise.
7489 (cp_missing_return_ok_p): Likewise.
7490 * decl2.c (grokclassfn): Likewise.
7491 (check_classfn): Likewise.
7492 (finish_static_data_member_decl): Likewise.
7493 (grokfield): Likewise.
7494 * error.c (GLOBAL_IORD_P): Remove.
7495 (dump_global_iord): Improve output.
7496 (dump_decl): Avoid using DECL_ASSEMBLER_NAME.
7497 * except.c (nothrow_libfn_p): Summarily reject any function not in
7498 namespace-scope.
7499 * init.c (build_java_class_ref): Don't explicitly set
7500 DECL_ASSEMBLER_NAME after calling mangle_decl.
7501 * mangle.c (mangle_decl_string): Handle extern "C" functions.
7502 (mangle_decl): Set the DECL_ASSEMBLER_NAME for the decl.
7503 * method.c (set_mangled_name_for_decl): Don't explicitly set
7504 DECL_ASSEMBLER_NAME after calling mangle_decl.
7505 (make_thunk): Explicitly set the DECL_ASSEMBLER_NAME and
7506 IDENTIFIER_GLOBAL_VALUE for the thunk.
7507 * pt.c (set_mangled_name_for_template_decl): Remove.
7508 (check_explicit_specialization): Don't use it.
7509 (looup_template_class): Don't set DECL_ASSEMBLER_NAME.
7510 (tsubst_friend_function): Likewise.
7511 (tsubst_decl): Likewise.
7512 (regenerate_decl_from_template): Use COPY_DECL_ASSEMBLER_NAME.
7513 * rtti.c (get_tinfo_decl): Use SET_DECL_ASSEMBLER_NAME,
7514 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
7515 where it's not necessary.
7516 (tinfo_base_init): Likewise.
7517 (create_real_tinfo_var): Likewise.
7518 * search.c (looup_field_1): Likewise.
7519 * semantics.c (finish_named_return_value): Likewise.
7520 * tree.c (init_tree): Set lang_set_decl_assembler_name.
11fe225a 7521
d064d75a
GDR
75222001-03-15 Gabriel Dos Reis <gdr@codesourcery.com>
7523
7524 Correct semantics restrictions checking in throw-expression.
7525 * except.c (is_admissible_throw_operand): New function.
7526 (build_throw): Use it.
7527
a3eab619
MM
75282001-03-14 Mark Mitchell <mark@codesourcery.com>
7529
7530 * decl.c (cp_make_fnname_decl): Set DECL_IGNORED_P on __FUNCTION__
7531 and its ilk.
7532
19e7881c
MM
75332001-03-14 Mark Mitchell <mark@codesourcery.com>
7534
7535 * class.c (build_clone): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
7536 * cp-tree.h (DECL_IN_MEMORY_P): Likewise.
7537 * decl.c (duplicate_decls): Likewise.
7538 (builtin_function): Likewise.
7539 (build_library_fn): Likewise.
7540 (build_cp_library_fn): Likewise.
7541 (check_initializer): Likewise.
7542 (cp_finish_decl): Likewise.
7543 * decl2.c (grokfield): Likewise.
7544 (grok_function_init): Remove #if 0'd code.
7545 (finish_anon_union): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
7546 * friend.c (do_friend): Likewise.
7547 * init.c (get_temp_regvar): Likewise.
7548 * method.c (make_thunk): Likewise.
7549 * pt.c (tsubst_friend_function): Likewise.
7550 (tsubst_decl): Likewise.
7551 (regenerate_decl_from_template): Likewise.
7552 * semantics.c (genrtl_named_return_value): Likewise.
7553 (expand_body): Likewise.
7554 (genrtl_finish_function): Likewise.
7555 * tree.c (cp_tree_equal): Likewise.
11fe225a 7556
78fe06c2
NS
75572001-03-12 Nathan Sidwell <nathan@codesourcery.com>
7558
7559 * call.c (convert_like_real): Add extra semantics to INNER
7560 parameter. Don't convert to temporary if a user conversion
7561 gives us an lvalue that we're about to bind to a reference.
7562 Set INNER to indicate pending reference binding on recursive
7563 calls.
7564
b3e68a79
NB
75652001-03-10 Neil Booth <neil@daikokuya.demon.co.uk>
7566
7567 * cp/lex.c: Delete duplicate pending_lang_change.
7568
75692001-03-10 Neil Booth <neil@daikokuya.demon.co.uk>
7570
7571 * cp/lex.c (handle_pragma_interface, handle_pragma_implementation):
7572 Similarly.
7573 * cp/repo.c (get_base_filename, open_repo_file): Similarly.
7574 * cp/cp-tree.h: Remove file_name_nondirectory prototype.
7575
11642c3a
ZW
75762001-03-09 Zack Weinberg <zackw@stanford.edu>
7577
7578 * Make-lang.in: Add dependencies on $(TM_P_H) as appropriate.
7579
bb6852eb 75802001-03-08 Stan Shebs <shebs@apple.com>
f7687817
SS
7581
7582 * cp-tree.h (set_identifier_local_value): Remove unused decl.
7583
cc937581
ZW
75842001-03-06 Zack Weinberg <zackw@stanford.edu>
7585
7586 * spew.c: Remove references to CPP_OSTRING.
7587
d1188d91
AH
75882001-03-06 Andrew Haley <aph@redhat.com>
7589
7590 * typeck.c (convert_arguments): Check that we have an fndecl.
7591
4eaf1d5b
AH
75922001-03-05 Andrew Haley <aph@redhat.com>
7593
7594 * typeck.c (convert_arguments): Don't do ellipsis conversion for
7595 __built_in_constant_p.
7596
7eeb553c
NS
75972001-03-02 Nathan Sidwell <nathan@codesourcery.com>
7598
7599 * typeck.c (build_static_cast): Allow enum to enum conversions
7600 as per DR 128.
7601
d282fcb2
NS
76022001-03-02 Nathan Sidwell <nathan@codesourcery.com>
7603
7604 * class.c (check_field_decls): Pointers to member do not a
7605 non-pod struct make, as per DR 148.
7606
f86fdf68
NS
76072001-03-02 Nathan Sidwell <nathan@codesourcery.com>
7608
7609 * call.c (joust): cp_pedwarn when using gnu extension concerning
7610 worst conversion sequences.
7611
d6edb99e
ZW
76122001-03-01 Zack Weinberg <zackw@stanford.edu>
7613
7614 * decl.c: Replace all uses of 'boolean' with 'bool'.
7615
f7143427
ZW
76162001-03-01 Zack Weinberg <zackw@stanford.edu>
7617
7618 * lang-specs.h: Add zero initializer for cpp_spec field to
7619 all array elements that need one. Don't put an #ifdef inside
7620 the initializer list; set a default for CPLUSPLUS_CPP_SPEC and
7621 use it.
7622
fbfe8c9e
NS
76232001-03-01 Nathan Sidwell <nathan@codesourcery.com>
7624
7625 Implement using decls inside template functions.
7626 * decl2.c (validate_nonmember_using_decl): Don't special case
7627 fake_std_node in the global namespace. Don't reject early when
7628 processing a template.
7629 (do_local_using_decl): Add to statement tree. Don't do further
7630 processing when building a template.
7631 * pt.c (tsubst_expr, DECL_STMT case): Deal with USING_DECLs.
7632
4d24a889
NS
76332001-03-01 Nathan Sidwell <nathan@codesourcery.com>
7634
7635 * decl2.c (do_nonmember_using_decl): Don't complain if we find
7636 same function. Do complain about ambiguating extern "C"
7637 declarations.
7638
e5844e6d
NS
76392001-02-28 Nathan Sidwell <nathan@codesourcery.com>
7640
7641 Remove floating point and complex type template constant parms.
7642 * pt.c (convert_nontype_argument): Remove REAL_TYPE and
7643 COMPLEX_TYPE extensions.
7644 (invalid_nontype_parm_type_p): Likewise.
7645
788f238c
JO
76462001-02-27 Jeffrey Oldham <oldham@codesourcery.com>
7647
7648 * except.c (call_eh_info): Revert "match_function"'s type.
7649
73ea87d7
NS
76502001-02-27 Nathan Sidwell <nathan@codesourcery.com>
7651
7652 Fix ctor vtable vcall offsets.
7653 * class.c (struct vtbl_init_data_s): Add rtti_binfo member.
7654 (build_rtt_vtbl_entries): Lose RTTI_BINFO parameter.
7655 (get_matching_base): Remove.
7656 (get_original_base): New function.
11fe225a 7657 (build_vtbl_initializer): Initialize vid.rtti_binfo.
73ea87d7
NS
7658 Use a virtual thunk for a ctor vtable with an index
7659 (add_vcall_offset_vtbl_entries_1): Check if binfo has lost a
7660 primary base within a constructor vtable. Only set
7661 BV_VCALL_INDEX when not a constructor vtable. Adjust vcall offset
7662 when primary base has been lost.
7663 * cp-tree.h (BINFO_VIRTUALS): Remove ambiguity from comment.
7664
fe730161
JO
76652001-02-26 Jeffrey Oldham <oldham@codesourcery.com>
7666
7667 * call.c (joust): Ensure more_specialized()'s argument length
7668 parameter has correct value for constructors.
7669
e5dd4aad
NS
76702001-02-26 Nathan Sidwell <nathan@codesourcery.com>
7671
7672 * except.c (call_eh_info): Cleanup generation of cp_eh_info struct.
11fe225a 7673
e5dd4aad
NS
7674 * decl.c (mark_inlined_fns): Prototype.
7675
25200ab2
MM
76762001-02-22 Mark Mitchell <mark@codesourcery.com>
7677
7678 * spew.c (yylex): Correct handling of friends.
7679
f58c04ac
MM
76802001-02-22 Mark Mitchell <mark@codesourcery.com>
7681
7682 * mangle.c (write_encoding): Pass write_function_type the
7683 FUNCTION_DECL for the function being encoded.
7684 (write_function_type): Pass it along to write_bare_function_type.
7685 (write_bare_function_type): Pass it along to write_method_parms.
7686 (write_method_parms): Don't mangle the compiler-generated
7687 parameters to a constructor or destructor.
7688
9c96f3f8
AJ
76892001-02-22 Andreas Jaeger <aj@suse.de>
7690
7691 * optimize.c: Include toplev.h for
7692 note_deferral_of_defined_inline_function prototype.
7693
b3bae5e2
JJ
76942001-02-22 Jakub Jelinek <jakub@redhat.com>
7695
7696 * cp-tree.h (struct lang_decl_inlined_fns): New.
7697 (struct lang_decls): Add inlined_fns.
7698 (DECL_INLINED_FNS): New macro.
7699 * optimize.c (struct inline_data): Add inlined_fns.
7700 (declare_return_variable): Use VARRAY_ACTIVE_SIZE macro.
7701 (inlinable_function_p): Likewise, fix typo in comment,
7702 function is not inlinable if it already inlined function currently
7703 being optimized.
306ef644 7704 (expand_call_inline): Add fn to inlined_fns if necessary.
b3bae5e2
JJ
7705 (optimize_function): Initialize inlined_fns.
7706 Save inlined_fns into DECL_INLINED_FNS after expanding inlines.
7707 * decl.c (mark_inlined_fns): New function.
7708 (lang_mark_tree): Call it.
7709
5daf7c0a
JM
77102001-02-21 Jason Merrill <jason@redhat.com>
7711
7712 * cp-tree.h (struct lang_decl_flags): Remove uninlinable flag.
7713 (DECL_UNINLINABLE): Move to middle-end.
7714
7715 * class.c (clone_function_decl): Set DECL_ABSTRACT on original fn.
7716 * decl.c (duplicate_decls): Preserve DECL_ABSTRACT.
7717 * class.c (build_clone): Set DECL_ABSTRACT_ORIGIN for the clone.
7718 * optimize.c (maybe_clone_body): Set DECL_ABSTRACT_ORIGIN for the
7719 parms and outer BLOCK. note_deferral_of_defined_inline_function.
7720
7721 * method.c (implicitly_declare_fn): Don't set DECL_ARTIFICIAL on
7722 second parm of op=.
7723
2c0fc02d
MM
77242001-02-19 Mark Mitchell <mark@codesourcery.com>
7725
7726 * decl2.c (set_decl_namespace): Allow explicit instantiations in
7727 any namespace.
7728
612164eb
KL
77292001-02-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7730
7731 * optimize.c (expand_call_inline): Don't walk subtrees of type
7732 nodes.
7733
69a59a49
MM
77342001-02-18 Mark Mitchell <mark@codesourcery.com>
7735
7736 * class.c (add_vcall_offset_vtbl_entries_1): Only add one entry
7737 for a destructor.
7738
e0fff4b3
JM
77392001-02-18 Jason Merrill <jason@redhat.com>
7740
7741 Do put the VTT parameter in DECL_ARGUMENTS.
7742 * cp-tree.h (struct cp_language_function): Add x_vtt_parm.
7743 (current_vtt_parm): New macro.
7744 (struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm.
7745 (DECL_HAS_VTT_PARM_P): New macro.
7746 (DECL_VTT_PARM): Remove.
7747 (FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros.
7748 * decl.c (duplicate_decls): Only copy the operator code if
7749 appropriate.
7750 (start_function): Set current_vtt_parm.
7751 (lang_mark_tree): Don't mark vtt_parm.
9c96f3f8 7752 * decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to
e0fff4b3
JM
7753 DECL_ARGUMENTS. Set DECL_HAS_VTT_PARM_P.
7754 * class.c (build_clone): Maybe remove the VTT parm.
7755 * optimize.c (maybe_clone_body): Set up the VTT parm.
7756 * pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm.
7757 * call.c (build_over_call): Just allow the VTT arg.
7758 * method.c (make_thunk): Don't set DECL_VTT_PARM.
7759 (do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM.
7760 (synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE.
7761 * decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise.
7762 * error.c (dump_function_decl): Likewise.
7763 * call.c (build_user_type_conversion_1, convert_like_real): Abort
7764 if we try to call a constructor with in-charge or VTT parms.
7765 * method.c (skip_artificial_parms_for): New fn.
7766 * call.c (add_function_candidate, build_over_call): Call it.
7767 * call.c (build_new_method_call): Use current_vtt_parm.
7768 * init.c (expand_virtual_init): Likewise.
7769 * class.c (same_signature_p): No longer static.
7770 * cp-tree.h: Declare it.
7771 * search.c (look_for_overrides_r): Use it.
7772
c750255c
MM
77732001-02-17 Mark Mitchell <mark@codesourcery.com>
7774
8fa33dfa
MM
7775 * cp-tree.h (new_abi_rtti_p): Remove.
7776 (name_mangling_version): Likewise.
7777 (flag_do_squangling): Likewise.
7778 * class.c (build_rtti_vtbl_entries): Remove old ABI support.
7779 * decl.c (grokfndecl): Likewise.
7780 * decl2.c (name_mangling_version): Remove.
7781 (flag_do_squangling): Likewise.
7782 (lang_f_options): Remove `squangle'.
7783 (unsupported_options): Add `squangle'.
7784 (cxx_decode_option): Issue a warning about uses of
7785 -fname-mangling-version.
7786 (finish_file): Remove old ABI support.
7787 * pt.c (check_explicit_specialization): Likewise.
7788 (tsubst_decl): Likewise.
7789 * rtti.c (init_rtti_processing): Likewise.
7790 (build_headof): Likewise.
7791 (get_tinfo_decl_dynamic): Likewise.
7792 (tinfo_from_decl): Likewise.
7793 (build_dynamic_cast_1): Likewise.
7794 (synthesize_tinfo_var): Likewise.
12fa82db
MM
7795 * init.c (build_new): Allow enumeration types for the array-bounds
7796 in a direct-new-declarator.
7797
7798 * semantics.c (finish_typeof): Resolve OFFSET_REFs.
7799
c750255c
MM
7800 * pt.c (check_explicit_specialization): Copy TREE_PRIVATE and
7801 TREE_PROTECTED from the template being specialized.
7802
a714e5c5
JM
78032001-02-17 Jason Merrill <jason@redhat.com>
7804
7805 * decl2.c (build_artificial_parm): Set TREE_READONLY.
7806
9c96f3f8 7807 * decl.c (bad_specifiers): Allow throw specs on things with
a714e5c5
JM
7808 pointer-to-function or -member-function type.
7809 * init.c (build_default_init): Don't use a CONSTRUCTOR to initialize
7810 a pmf.
7811
8084b91e
MM
78122001-02-17 Mark Mitchell <mark@codesourcery.com>
7813
7814 * call.c (check_dtor_name): Handle template names correctly.
7815
48f22ed2
JM
78162001-02-16 Jason Merrill <jason@redhat.com>
7817
7818 * cp-tree.h (DECL_USE_VTT_PARM): Remove.
7819 * decl2.c (maybe_retrofit_in_chrg): Don't create it.
7820 * optimize.c (maybe_clone_body): Don't substitute it.
7821 * call.c (build_new_method_call): Check in_chrg instead.
7822 * init.c (expand_virtual_init): Likewise.
7823
e8186ecf
GDR
78242001-02-16 Gabriel Dos Reis <gdr@codesourcery.com>
7825
7826 * decl.c (check_tag_decl): Make sure a typedef for an anonymous
7827 class-type introduces at least a type-name.
7828
2c1be322
JJ
78292001-02-16 Jakub Jelinek <jakub@redhat.com>
7830
7831 * call.c (convert_like_real): Create a temporary for non-lvalue.
7832
aab8454a
JO
78332001-02-16 Jeffrey Oldham <oldham@codesourcery.com>
7834
7835 * cp-tree.h: Fix typos in comments.
7836
a901fa64
JM
78372001-02-16 Jason Merrill <jason@redhat.com>
7838
7839 * optimize.c (remap_block): If we're compiling a clone, pass the
7840 new block to insert_block.
7841
8853373c
MM
78422001-02-16 Mark Mitchell <mark@codesourcery.com>
7843
7844 * semantics.c (finish_asm_stmt): Robustify.
7845
b60ecc04
MM
78462001-02-15 Mark Mitchell <mark@codesourcery.com>
7847
7848 * pt.c (push_template_decl_real): Don't remangle the name of a
7849 class template.
7850
e658449e
JM
78512001-02-15 Jim Meyering <meyering@lucent.com>
7852
fd48c9b5
DD
7853 * Make-lang.in (c++.install-common): Depend on installdirs.
7854 (c++.install-info): Likewise.
7855 (c++.install-man): Likewise.
e658449e 7856
f1a3f197
MM
78572001-02-15 Mark Mitchell <mark@codesourcery.com>
7858
7859 * typeck2.c (build_m_component_ref): Robustify.
7860
8826b15b
AO
78612001-02-15 Alexandre Oliva <aoliva@redhat.com>
7862
7863 * friend.c (do_friend): Don't take the nested [template] class
7864 into account when deciding whether to warn about the friend
7865 function not referring to a template function.
7866
7161c1a5
JJ
78672001-02-14 Jakub Jelinek <jakub@redhat.com>
7868
7869 * typeck.c (build_unary_op): Clarify error message.
7870
4806765e
AH
78712001-02-08 Aldy Hernandez <aldyh@redhat.com>
7872
a901fa64
JM
7873 * parse.y (component_constructor_declarator): allow optional
7874 parentheses around constructor class name.
4806765e 7875
bfc8e1e2
NS
78762001-02-14 Nathan Sidwell <nathan@codesourcery.com>
7877
7878 * cp-tree.h (setup_vtbl_ptr): Move prototype to semantics.c
7879 section.
7880 * init.c (emit_base_init): Remove incorrect comment about
7881 virtual bases.
7882 * method.c (make_thunk): Fix comment alignment.
7883
394fd776
NS
78842001-02-14 Nathan Sidwell <nathan@codesourcery.com>
7885
7886 Kill remnants of this is variable.
7887 * cp-tree.h (flag_this_is_variable): Remove.
7888 * decl2.c (flag_this_is_variable): Remove.
7889 * class.c (fixed_type_or_null): Add cdtor parm. Adjust.
7890 (build_vbase_path): The path is non-static, even in a cdtor.
7891 (resolves_to_fixed_type_p): Add additional return value.
7892 * search.c (init_vbase_pointers): Adjust.
7893 * tree.c (lvalue_p_1): Adjust.
7894 * typeck.c (mark_addressable): Adjust.
7895
d0ab7624
NS
78962001-02-14 Nathan Sidwell <nathan@codesourcery.com>
7897
7898 * pt.c (unify): Don't check cv quals of array types.
7899
7773899b
NS
79002001-02-14 Nathan Sidwell <nathan@codesourcery.com>
7901
7902 * tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to
7903 check whether we already have the type.
7904
52682a1b
MM
79052001-02-13 Mark Mitchell <mark@codesourcery.com>
7906
7907 * cp-tree.h (CLASSTYPE_DESTRUCTORS): Fix typo in comment.
7908 * call.c (build_op_delete_call): Simplify to remove duplicate
7909 code.
7910 * class.c (clone_function_decl): Don't build the deleting variant
7911 of a non-virtual destructor.
7912 * decl.c (finish_destructor_body): Don't call delete if this is a
7913 non-virtual destructor.
7914 * init.c (build_delete): Explicitly call `operator delete' when
7915 deleting an object with a non-virtual destructor.
9c96f3f8 7916
3b6bd115
JM
79172001-02-13 Jason Merrill <jason@redhat.com>
7918
7919 * lang-specs.h: Add more __EXCEPTIONS.
7920
45abaea8
NS
79212001-02-12 Nathan Sidwell <nathan@codesourcery.com>
7922
7923 * typeck2.c (process_init_constructor): Check
7924 TREE_HAS_CONSTRUCTOR before issuing missing init warning.
7925
996065b4
NS
79262001-02-12 Nathan Sidwell <nathan@codesourcery.com>
7927
7928 * pt.c (maybe_adjust_types_for_deduction, DEDUCE_ORDER case):
7929 Remove spurious information in comment. Allow further
7930 adjustments of REFERENCE_TYPE args.
7931
82c18d5c
NS
79322001-02-12 Nathan Sidwell <nathan@codesourcery.com>
7933
7934 * errfn.c (cp_deprecated): Tweak diagnostic text.
7935 * parse.y (new_initializer): Deprecate initializer lists
7936 extension.
7937
1f84ec23
MM
79382001-02-12 Mark Mitchell <mark@codesourcery.com>
7939
7940 Remove old ABI support.
7941
8c310e3f
MM
79422001-02-11 Mark Mitchell <mark@codesourcery.com>
7943
b1012f1b
MM
7944 * decl2.c (flag_vtable_thunks): Always set it to 1.
7945 (flag_new_abi): Likewise.
7946 * lang-specs.h: Remove conditional on ENABLE_NEW_GXX_ABI.
9c96f3f8 7947
8c310e3f
MM
7948 * Makefile.in (g++spec.o): Fix typo.
7949
3b635dfc
JM
79502001-02-09 Jason Merrill <jason@redhat.com>
7951
7952 * lang-specs.h: Restore definition of __EXCEPTIONS.
7953
bd0d5d4a
JM
79542001-02-08 Jason Merrill <jason@redhat.com>
7955
7956 * search.c (shared_member_p): New function.
7957 (lookup_field_r): Use it.
7958 * cp-tree.h (SHARED_MEMBER_P): Remove.
7959
7960 * method.c (process_overload_item): Handle template-dependent array
7961 bounds.
7962 * pt.c (type_unification_real): If we end up with undeduced nontype
7963 parms, try again.
7964
7965 * decl.c (lookup_name_real): Tweak warning to refer to decls, not
7966 types.
7967
7968 * typeck2.c (friendly_abort): Don't say anything if we have
7969 earlier errors or sorries.
7970
9c96f3f8 7971 * decl.c (check_tag_decl): Notice attempts to redefine bool and
bd0d5d4a
JM
7972 wchar_t. Ignore if in_system_header.
7973
7974 * decl.c (maybe_push_cleanup_level): New fn...
7975 (start_decl_1): ...split out from here.
7976 * cvt.c (build_up_reference): Use it.
7977 * cp-tree.h: Declare it.
7978
a9374841
MM
79792001-02-07 Mark Mitchell <mark@codesourcery.com>
7980
9c96f3f8 7981 * lang-specs.h: Use CPLUSPLUS_CPP_SPEC for the preprocessor
a9374841
MM
7982 spec.
7983
a87b4257
NS
79842001-02-06 Nathan Sidwell <nathan@codesourcery.com>
7985
7986 * pt.c (lookup_template_class): Make sure it's a primary
7987 template or template_template_parm when called from the parser.
7988 (instantiate_template_class): Add assertion.
7989
518fed76
AO
79902001-02-05 Alexandre Oliva <aoliva@redhat.com>
7991
7992 * method.c (build_mangled_name) [old abi]: Protect flush_repeats()
7993 from error_mark_node.
7994
9965d119
NS
79952001-02-05 Nathan Sidwell <nathan@codesourcery.com>
7996
7997 Fix specification and implementation bugs in V3 ABI
7998 construction vtables.
7999 * cp-tree.h (flag_dump_class_layout): New flag.
8000 (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH_P): Remove.
8001 (BINFO_LOST_PRIMARY_P): New flag.
8002 (SET_BINFO_NEW_VTABLE_MARKED): Adjust asserts.
8003 (BINFO_PRIMARY_MARKED_P): Rename to ...
8004 (BINFO_PRIMARY_P): ... here.
8005 (binfo_via_virtual): New prototype.
8006 * decl2.c (flag_dump_class_layout): New flag.
8007 (cxx_decode_option): Set it. Adjust -fdump-translation-unit to
8008 use `=' as a file name separator.
8009 * init.c (dfs_initialize_vtbl_ptrs): Walk into virtual primary
8010 bases.
8011 (build_vtbl_address): If this is a virtual primary base, then
8012 get the vtbl of what it is ultimately primary for.
8013 * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Adjust
8014 for BINFO_PRIMARY_P.
8015 (dfs_skip_nonprimary_vbases_markedp): Likewise.
8016 (get_shared_vbase_if_not_primary): Likewise.
8017 (dfs_get_pure_virtuals): Likewise.
8018 (expand_upcast_fixups): Likewise.
8019 (fixup_virtual_upcast_offsets): Likewise.
8020 (dfs_find_vbase_instance): Likewise.
8021 (find_vbase_instance): Likewise.
8022 (binfo_from_vbase): Adjust comment to reflect reality.
8023 (binfo_via_virtual): New function.
8024 * class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): New macros
8025 for binfo walking during VTT construction.
8026 (dfs_mark_primary_bases): Remove.
8027 (force_canonical_binfo_r): New function.
8028 (force_canonical_binfo): New function.
8029 (mark_primary_virtual_base): New function.
8030 (mark_primary_bases): Walk in inheritance graph order, use
8031 mark_primary_virtual_base.
8032 (determine_primary_base): Use some more intermediate variables.
8033 (dfs_find_final_overrider): Don't check for overriding along a
8034 virtual path.
8035 (dfs_modify_vtables): Walk into primary virtual bases too.
8036 (walk_subobject_offsets): Adjust for BINFO_PRIMARY_P.
8037 (build_base_fields): Likewise.
8038 (dfs_set_offset_for_unshared_vbases): Likewise.
8039 (layout_virtual_bases): Likewise.
8040 (end_of_class): Likewise.
8041 (finish_struct_1): Call dump_class_hierarchy, if requested.
8042 (dfs_get_primary_binfo): Use BINFO_TYPE for binfos.
8043 (dump_class_hierarchy_r): Add stream parameter. Emit more information.
8044 (dump_class_hierarchy): Add file parameter. Append to file, if
8045 required.
8046 (finish_vtbls): Adjust accumulate_vtbl_inits call.
8047 Use canonical base for virtual bases.
8048 (build_vtt): Add more comments. Adjust build_vtt_inits call.
8049 (build_vtt_inits): Remove VIRTUAL_VTTS_P parm.
8050 Only set BINFO_VPTR_INDEX on top level. Use VTT_TOP_LEVEL_P,
8051 VTT_MARKED_BINFO_P for binfo walking. Use canonical vbase for
8052 virtual VTTs.
8053 (dfs_build_secondary_vptr_vtt_inits): Extract VTT_TOP_LEVEL_P
8054 from DATA. We want virtual primary bases and all bases via virtual.
8055 Only set BINFO_VPTR_INDEX for top level. Look up from a primary
8056 virtual base when not a construction vtable.
8057 (dfs_ctor_vtable_bases_queue_p): New DFS predicate.
8058 (build_ctor_vtbl_group): Adjust accumulate_vtbl_inits call.
8059 Use canonical bases when processing virtual bases.
8060 (accumulate_vtbl_inits): We're interested in any base via a
8061 virtual path.
8062 (dfs_accumulate_vtbl_inits): If this is a primary virtual base
8063 within a construction vtable, determine what is being overridden.
8064 (build_vtbl_initializer): Add more comments
8065 (add_vcall_offset_vtbl_entries_1): Adjust comment.
8066 (build_rtti_vtbl_entries): Check if the base has lost its
8067 primary.
8068
39d6f2e8
MM
80692001-02-05 Mark Mitchell <mark@codesourcery.com>
8070
8071 * Makefile.in (g++spec.o): Adjust use of DRIVER_DEFINES.
8072
400500c4
RK
8073Sun Feb 4 15:52:44 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8074
8075 * decl.c (pushdecl): Call abort instead of fatal.
8076 * except.c (decl_is_java_type): Call fatal_error instead of fatal.
8077 * init.c (build_new_1): Likewise.
8078 (build_java_class_ref): Call internal_error and fatal_error, not fatal.
8079 * decl.c (build_typename_type): hash_table_init now returns void.
8080 decl.c (init_decl_processing): Make an error non-fatal.
8081
97458258
MM
80822001-02-04 Mark Mitchell <mark@codesourcery.com>
8083
8084 * cp-tree.h (CLASSTYPE_INTERFACE_UNKNOWN): Fix formatting.
8085 Document.
8086 (CLASSTYPE_INTERFACE_KNOWN): Likewise.
8087 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
8088 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
8089 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
8090 * decl.c (maybe_commonize_var): Use the new name-mangling where
8091 appropriate.
8092 * decl2.c (comdat_linkage): Enhance comments. Make all
8093 compiler-generated things static, if COMDAT is not available.
8094 (get_tinfo_decl): Do not make typeinfo objects that belong in the
8095 library COMDAT.
8096 (tinfo_base_init): Use the correct mangled name for typeinfo
8097 strings, and push them into the global scope.
8098 (typeinfo_in_lib_p): New function.
8099 (synthesize_tinfo_var): Use it.
8100 (create_real_tinfo_var): Likewise.
9c96f3f8 8101
55de1b66
JJ
81022001-02-03 Jakub Jelinek <jakub@redhat.com>
8103
8104 * decl.c (push_class_binding): Use context_for_name_lookup instead
8105 of CP_DECL_CONTEXT.
8106 * search.c (context_for_name_lookup): Remove static. Check for NULL
8107 context in the loop.
8108 * cp-tree.h (context_for_name_lookup): Add prototype.
8109
e92730aa
JJ
81102001-02-02 Jakub Jelinek <jakub@redhat.com>
8111
8112 * cp-tree.h (build_expr_ptr_wrapper, can_free): Remove.
8113 * tree.c (build_expr_ptr_wrapper, can_free, permanent_obstack):
8114 Remove.
8115 * call.c (convert_class_to_reference, build_user_type_conversion_1,
8116 add_warning): Change build_expr_ptr_wrapper to build_ptr_wrapper.
8117
049f6ec9
MM
81182001-02-02 Mark Mitchell <mark@codesourcery.com>
8119
8120 * Make-lang.in (g++spec.o): Add DRIVER_DEFINES to the list
8121 of macros used when compiling g++spec.c.
8122 * g++spec.c (lang_specific_driver): Link with the shared
8123 libgcc by default.
8124
718b8ea5
JM
81252001-01-29 Joseph S. Myers <jsm28@cam.ac.uk>
8126
8127 * decl2.c (build_expr_from_tree), lex.c (make_pointer_declarator,
8128 make_reference_declarator, make_call_declarator), method.c
8129 (implicitly_declare_fn), parse.y (namespace_using_decl,
8130 notype_unqualified_id, expr_or_declarator, new_type_id,
8131 after_type_declarator, direct_after_type_declarator,
8132 notype_declarator, complex_notype_declarator,
8133 complex_direct_notype_declarator, qualified_id,
8134 notype_qualified_id, overqualified_id, direct_new_declarator,
8135 absdcl, direct_abstract_declarator, conversion_declarator), pt.c
8136 (tsubst), semantics.c (begin_constructor_declarator): Use build_nt
8137 instead of build_parse_node.
8138
f2d1f0ba
KG
81392001-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8140
8141 * cp-tree.h (cp_tree_index): Delete CPTI_MINUS_ONE.
8142 (minus_one_node): Moved to top level gcc directory. Renamed
8143 to integer_minus_one_node.
8144
8145 * init.c (init_init_processing): Don't set minus_one_node.
8146 (build_vec_init): Use integer_minus_one_node.
8147
8148 * rtti.c (get_tinfo_decl_dynamic): Likewise.
8149
6001735e
JJ
81502001-01-28 Jakub Jelinek <jakub@redhat.com>
8151
8152 * optimize.c (copy_body_r): If MODIFY_EXPR has both arguments
8153 identical and they would be replaced with constant, remove
8154 MODIFY_EXPR from the tree.
8155
c913b6f1
KG
81562001-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8157
8158 * Make-lang.in: Remove all dependencies on defaults.h.
8159 * call.c: Don't include defaults.h.
8160 * decl.c: Likewise.
8161 * decl2.c: Likewise.
8162 * except.c: Likewise.
8163 * pt.c: Likewise.
8164 * rtti.c: Likewise.
8165 * tree.c: Likewise.
8166 * typeck.c: Likewise.
8167
324ffb8c
JJ
81682001-01-25 Jakub Jelinek <jakub@redhat.com>
8169
8170 * mangle.c (write_mangled_name, write_encoding): Mangle overloaded
8171 operators even in "C" linkage.
8172 * method.c (set_mangled_name_for_decl): Likewise.
8173 * decl.c (grokfndecl): Call set_mangled_name_for_decl even for
8174 overloaded operators in "C" linkage.
8175
4b2811e9
NS
81762001-01-24 Nathan Sidwell <nathan@codesourcery.com>
8177
8178 * pt.c (tsubst_decl): Remove IN_DECL parameter.
8179 (tsubst_arg_types): Check parameter is not void.
8180 (tsubst): Adjust tsubst_decl call.
8181
d8caf48e
NS
81822001-01-24 Nathan Sidwell <nathan@codesourcery.com>
8183
8184 * call.c (add_builtin_candidate): Quote std properly, from
8185 previous change.
8186
08511114
KL
81872001-01-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
8188
8189 * pt.c (check_explicit_specialization): Clone constructors and
8190 destructors.
8191
92ecdfb7
NS
81922001-01-23 Nathan Sidwell <nathan@codesourcery.com>
8193
8194 * decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC
8195 indicates anything special about template depth. Make sure we
8196 only count the user visible template classes.
8197
4cff6abe
NS
81982001-01-23 Nathan Sidwell <nathan@codesourcery.com>
8199
8200 * call.c (build_conv): Typo in comment.
8201 (add_builtin_candidate): Add more explanation.
8202 Remove extra test for ENUMERAL_TYPE in {PRE,POST}INCREMENT_EXPR.
8203 Allow ENUMERAL_TYPEs for relops and eqops. Add both candidates
8204 when we have enumeral types.
8205 (add_builtin_candidates): Add more explanation. Add ENUMERAL_TYPE
8206 candidates for relops and eqops.
8207 (joust): Simplify control flow. Allow a non-template user
8208 function to hide a builtin.
8209
62e4a758
NS
82102001-01-22 Nathan Sidwell <nathan@codesourcery.com>
8211
8212 * cp-tree.h (unification_kind_t): Add DEDUCE_ORDER.
8213 (more_specialized): Add deduction parameter.
8214 * call.c (joust): Adjust more_specialized call.
8215 * pt.c (UNIFY_ALLOW_OUTER_MORE_CV_QUAL,
8216 UNIFY_ALLOW_OUTER_LESS_CV_QUAL): New unify flags.
8217 (get_bindings_order): Remove.
8218 (get_bindings_real): Add DEDUCE parameter.
8219 (maybe_adjust_types_for_deduction): Return extra unify flags. Do
8220 REFERENCE_TYPE jig for DEDUCE_ORDER.
8221 (type_unification_real): Deal with DEDUCE_ORDER. Use result of
8222 maybe_adjust_types_for_deduction.
8223 (more_specialized): Add DEDUCE parameter. Call get_bindings_real
8224 directly.
8225 (try_one_overload): Use result of maybe_adjust_types_for_deduction.
8226 (check_cv_quals_for_unify): Use new unify qualifier flags.
8227 (unify): Clear new unify qualifier flags.
8228 (get_bindings_real): Add DEDUCE parameter.
8229 (get_bindings): Adjust call to get_bindings_real.
8230 (get_bindings_overload): Likewise.
8231 (most_specialized_instantiation): Adjust call to
8232 more_specialized.
8233
2a2a9e5a
JM
82342001-01-19 Jason Merrill <jason@redhat.com>
8235
8236 * decl2.c (flag_vtable_thunks): Also depend on ENABLE_NEW_GXX_ABI.
8237
8238 * decl.c (init_decl_processing): Just force -fvtable-thunks on if
8239 -fnew-abi.
8240
60696c53
JM
82412001-01-19 Ute Pelkmann <scope.muc@t-online.de>
8242
8243 * decl2.c (arg_assoc_class): Fix double iteration logic.
8244
82452001-01-19 Jason Merrill <jason@redhat.com>
8246
8247 * init.c (build_delete): Always call convert_force to strip cv-quals.
8248
8249 * decl2.c (flag_new_abi): Depend on ENABLE_NEW_GXX_ABI.
8250 * lang-specs.h: Default ABI depends on ENABLE_NEW_GXX_ABI.
8251 * g++spec.c: Don't look at ENABLE_NEW_GXX_ABI.
8252
1e00f18c
NS
82532001-01-19 Nathan Sidwell <nathan@codesourcery.com>
8254
8255 * search.c (get_vbase_1): Count only virtual bases.
8256
e13bced2
NS
82572001-01-19 Nathan Sidwell <nathan@codesourcery.com>
8258
8259 * class.c (duplicate_tag_error): Robustify flag clearing.
8260
f9c244b8
NS
82612001-01-19 Nathan Sidwell <nathan@codesourcery.com>
8262
8263 * cp-tree.h (lookup_template_class): Add complain parm.
8264 * decl.c (lookup_namespace_name): Adjust call to
8265 lookup_template_class.
8266 (make_typename_type): Likewise.
8267 * semantics.c (finish_template_type): Likewise.
8268 * pt.c (lookup_template_class): Add complain parm. Adjust.
8269 (tsubst_aggr_type): Pass COMPLAIN down to lookup_template_class.
8270 (tsubst): Likewise.
8271
08c2df0f
NS
82722001-01-19 Nathan Sidwell <nathan@codesourcery.com>
8273
8274 * pt.c (copy_default_args_to_explicit_spec): Preserve
8275 object's CV quals. Reorganize.
8276
f5ceeec8
NS
82772001-01-18 Nathan Sidwell <nathan@codesourcery.com>
8278
8279 * typeck.c (build_modify_expr): Say `initialization' for
8280 INIT_EXPRs.
8281 * init.c (build_default_init): Convert to enumeral type, if
8282 needed.
8283
a1cfa434
JJ
82842001-01-18 Jakub Jelinek <jakub@redhat.com>
8285
8286 * parse.y (nomods_initdcl0): Properly set things up for
8287 initdcl0_innards.
8288
028d1f20
NS
82892001-01-18 Nathan Sidwell <nathan@codesourcery.com>
8290
8291 * pt.c (UNIFY_ALLOW_OUTER_LEVEL): New unify flag.
8292 (type_unification_real): Set it.
8293 (unify): Use it.
8294
9f724b6a
NS
82952001-01-18 Nathan Sidwell <nathan@codesourcery.com>
8296
8297 * decl.c (finish_destructor_body): Convert to vbase pointer here.
8298
522d6614
NS
82992001-01-18 Nathan Sidwell <nathan@codesourcery.com>
8300
8301 * semantics.c (begin_class_definition): Check we're not inside a
8302 template parm list.
8303
7f805b8f
NS
83042001-01-18 Nathan Sidwell <nathan@codesourcery.com>
8305
8306 * tree.c (walk_tree, TREE_LIST): Don't walk the TREE_PURPOSE of
8307 BASELINK_P.
8308
dc3799c1
KL
83092001-01-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
8310
8311 * typeck.c (build_function_call_real): Call fold on the CALL_EXPR.
8312 * call.c (build_over_call): Add comment.
8313
bb37c4a5
DB
83142001-01-16 Daniel Berlin <dberlin@redhat.com>
8315
826840d9
RH
8316 * cvt.c (ocp_convert): Handle vector type conversion
8317 * typeck2.c (digest_init): Handle vector type initializations
9c96f3f8 8318
a26e7fb5
PE
83192001-01-16 Phil Edwards <pme@sources.redhat.com>
8320
8321 * g++spec.c: Don't add libraries needlessly if -fsyntax-only
8322 was given.
8323
11b810f1
NS
83242001-01-15 Nathan Sidwell <nathan@codesourcery.com>
8325
8326 * pt.c (check_nontype_parm): Rename to ...
8327 (invalid_nontype_parm_type_p): ... here.
8328 (process_template_parm): Adjust.
8329 (convert_template_argument): Adjust.
8330
db3f4e4e
NS
83312001-01-15 Nathan Sidwell <nathan@codesourcery.com>
8332
8333 * pt.c (check_nontype_parm): New function.
8334 (process_template_parm): Use it.
8335 (convert_template_argument): Use it.
8336 (convert_nontype_argument, RECORD_TYPE): Assert it's a ptr to
8337 member.
8338
ea4f1fce
JO
83392001-01-14 Jeffrey Oldham <oldham@codesourcery.com>
8340
8341 * tree.c: Add defaults.h
8342 (cp_valid_lang_attribute): Incorporate SUPPORTS_INIT_PRIORITY.
8343 * Make-lang.in (cp/tree.o): Add defaults.h.
8344
1312c143
JM
83452001-01-13 Joseph S. Myers <jsm28@cam.ac.uk>
8346
8347 * Make-lang.in (CXX_C_OBJS): Add c-format.o.
8348
4bc1997b
JM
83492001-01-13 Joseph S. Myers <jsm28@cam.ac.uk>
8350
8351 * g++.1: Change to be ".so man1/gcc.1".
8352
23de1fbf
JM
83532001-01-13 Joseph S. Myers <jsm28@cam.ac.uk>
8354
8355 * Make-lang.in (c++.info, c++.install-info): Build and install g++
8356 internals info.
8357 (c++.uninstall, c++.maintainer-clean): Remove g++ internals info.
8358 ($(srcdir)/cp/g++int.info): New target.
8359 * gxxint.texi: Add info directory entry. Use @@ in email address.
8360 * .cvsignore: Update.
8361
0949f723
NS
83622001-01-12 Nathan Sidwell <nathan@codesourcery.com>
8363
8364 * typeck.c (build_c_cast): Do template processing earlier.
8365 Always pedwarn on array casts.
8366
a8641661
NS
83672001-01-12 Nathan Sidwell <nathan@codesourcery.com>
8368
8369 * friend.c (make_friend_class): Make sure a templated class is
8370 actually a template.
8371
844511c8
NS
83722001-01-11 Nathan Sidwell <nathan@codesourcery.com>
8373
8374 * decl2.c (get_guard): Set linkage from guarded decl.
8375
96a1e32d
NS
83762001-01-11 Nathan Sidwell <nathan@codesourcery.com>
8377
8378 * call.c (convert_default_arg): Check for unprocessed
8379 DEFAULT_ARG.
8380 * cp-tree.h (replace_defarg): Move to spew.c.
8381 (maybe_snarf_defarg, add_defarg_fn, do_pending_defargs): Move to
8382 spew.c, which is where they really are.
8383 (done_pending_defargs): Declare.
8384 (unprocessed_defarg_fn): Declare.
8385 * decl.c (replace_defarg): Move to spew.c
8386 * parse.y (structsp): Call done_pending_defargs.
8387 * spew.c (defarg_fns): Rearrange list structure.
8388 (defarg_fnsdone): New static variable.
8389 (defarg_depfns): New static variable.
8390 (init_spew): Adjust.
8391 (add_defarg_fn): Store the type in TREE_TYPE.
8392 (do_pending_defargs): Detect and deal with ordering constraints
8393 and circularity.
8394 (done_pending_defargs): New function.
8395 (unprocessed_defarg_fn): New function.
8396 (replace_defarg): Moved from decl.c. Robustify. Don't save
8397 if circularity detected.
8398
34e225a3
NS
83992001-01-11 Nathan Sidwell <nathan@codesourcery.com>
8400
8401 * pt.c (unify): Check array has a domain, before checking
8402 whether it is variable sized.
8403
98979fe0
NS
84042001-01-11 Nathan Sidwell <nathan@codesourcery.com>
8405
8406 * decl.c (grokparms): Unobfuscate and get correct diagnostic for
8407 parameters with pointers to arrays of unknown bound.
8408
b37bf5bd
NS
84092001-01-11 Nathan Sidwell <nathan@codesourcery.com>
8410
8411 * parse.y (template_parm_header, template_spec_header): New
8412 reductions. Split out from ...
8413 (template_header): ... here. Use them.
8414 (template_template_parm): Use template_parm_header.
8415 * semantics.c (finish_template_template_parm): Add assert.
8416
6c418184
MM
84172001-01-10 Mark Mitchell <mark@codesourcery.com>
8418
792508b5
MM
8419 * mangle.c (write_builtin_type): Fix thinko.
8420
8afa707f
MM
8421 * pt.c (copy_default_args_to_explicit_spec_1): New function.
8422 (copy_default_args_to_explicit_spec): Likewise.
8423 (check_explicit_specialization): Use it.
8424
6c418184
MM
8425 * class.c (finish_struct_1): Remove last argument in call to
8426 make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
8427 * decl.c (builtin_function): Likewise.
8428 (build_cp_library_fn): Likewise.
8429 (check_initializer): Likewise.
8430 (make_rtl_for_nonlocal_decl): Likewise.
8431 (cp_finish_decl): Likewise.
8432 (start_function): Likewise.
8433 * decl2.c (finish_anon_union): Likewise.
8434 * friend.c (do_friend): Likewise.
8435 * init.c (build_java_class_ref): Likewise.
8436 * method.c (make_thunk): Likewise.
8437 * pt.c (tsubst_friend_function): Likewise.
8438 * semantics.c (expand_body): Likewise.
8439
31d95fc6
MM
84402001-01-10 Mark Mitchell <mark@codesourcery.com>
8441
8442 * cp-tree.h (DECL_CLONED_FUNCTION_P): Avoid wild reads by not
8443 looking at DECL_CLONED_FUNCTION for non-functions.
8444
31bb3027
NS
84452001-01-10 Nathan Sidwell <nathan@codesourcery.com>
8446
8447 * error.c (dump_template_parameter): Use parm to determine how
8448 to print default value.
8449
fd3f43e7
NS
84502001-01-10 Nathan Sidwell <nathan@codesourcery.com>
8451
8452 * class.c (duplicate_tag_error): Clear more flags.
8453
042b4c4e
NS
84542001-01-10 Nathan Sidwell <nathan@codesourcery.com>
8455
8456 * call.c (build_new_method_call): Use binfo_for_vbase.
8457
a7537031
JM
84582001-01-10 Joseph S. Myers <jsm28@cam.ac.uk>
8459
8460 * cp-tree.h (flag_cond_mismatch): Don't declare.
8461 * decl2.c (flag_cond_mismatch): Don't define.
8462 (lang_f_options): Remove cond-mismatch.
8463 (unsupported_options): Add cond-mismatch.
8464
186c0fbe
NS
84652001-01-09 Nathan Sidwell <nathan@codesourcery.com>
8466
8467 * class.c (handle_using_decl): Reject using of constructor name
8468 of sourcing class. Allow injecting of a method with same name as
8469 nested class. Fixup error messages.
8470
28ec8d6b
JM
84712001-01-09 Joseph S. Myers <jsm28@cam.ac.uk>
8472
8473 * decl2.c (lang_decode_option): Handle -Wformat=2.
8474
3febd123
NS
84752001-01-08 Nathan Sidwell <nathan@codesourcery.com>
8476
8477 * cp-tree.h (lang_decl_flags): Rename defined_in_class to
8478 initialized_in_class.
8479 (DECL_DEFINED_IN_CLASS_P): Rename to ...
8480 (DECL_INITIALIZED_IN_CLASS_P): ... here, to reflect true meaning.
8481 * decl.c (duplicate_decls): Preseve DECL_INITIALIZED_IN_CLASS_P.
8482 (cp_finish_decl): Adjust for DECL_INITIALIZED_IN_CLASS_P.
8483 * pt.c (check_default_tmpl_args): Adjust for
8484 DECL_INITIALIZED_IN_CLASS_P.
8485 (instantiate_class_template): Likewise.
8486 (instantiate_decl): Check DECL_INITIALIZED_IN_CLASS_P.
9c96f3f8 8487
3febd123
NS
8488 * class.c (finish_struct): Constify saved_filename.
8489
1f0d71c5
NS
84902001-01-08 Nathan Sidwell <nathan@codesourcery.com>
8491
8492 * class.c (duplicate_tag_error): Adjust diagnostic.
8493 (finish_struct): Locally set location to start of struct.
8494 * decl.c (fixup_anonymous_aggr): Use cp_error_at.
8495
5bf15e84 84962001-01-08 Nathan Sidwell <nathan@codesourcery.com>
76191fdd
NS
8497
8498 * decl.c (struct binding_level): Adjust class_shadowed comments
8499 to reflect reality.
aba649ba 8500 (push_class_level_binding): Adjust comments to reflect reality.
76191fdd
NS
8501 Set IDENTIFIER_CLASS_VALUE when replacing an existing binding.
8502 Don't set TREE_VALUE on the class_shadowed list.
8503
23d4e4cc 85042001-01-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
9c96f3f8
AJ
8505
8506 * decl2.c (acceptable_java_type): Allow references too.
23d4e4cc
APB
8507 * init.c (build_java_class_ref): When using the new ABI, search
8508 `class$' and have it mangled with `mangle_decl.'
8509 * mangle.c (write_java_integer_type_codes): New function.
8510 (write_builtin_type): Detect and mangle Java integer and real
8511 types.
9c96f3f8 8512
0c58da3e
MM
85132001-01-07 Mark Mitchell <mark@codesourcery.com>
8514
8515 * decl2.c (grokfield): Don't accept `asm' specifiers for
8516 non-static data members.
8517
45b8ddb4
KG
85182001-01-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8519
8520 * expr.c (cplus_expand_expr): Don't reset `target'.
8521
96302433
NB
85222001-01-07 Neil Booth <neil@daikokuya.demon.co.uk>
8523
826840d9 8524 * cp/decl2.c (cxx_post_options): Call cpp_post_options.
96302433 8525
220bce48
NS
85262001-01-05 Nathan Sidwell <nathan@codesourcery.com>
8527
8528 * parse.y (template_datadef): Check for error_mark_node.
8529
bfa2cb33
NS
85302001-01-05 Nathan Sidwell <nathan@codesourcery.com>
8531
8532 * cp-tree.def (DEFAULT_ARG): Make `x' class.
8533
eaa7c03f
JM
85342001-01-04 Joseph S. Myers <jsm28@cam.ac.uk>
8535
8536 * decl.c (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Don't define.
8537 (record_builtin_type): Make non-static.
8538 (flag_short_double): Don't declare.
8539 (init_decl_processing): Remove the creation of many tree nodes now
8540 in c_common_nodes_and_builtins.
8541 (build_void_list_node): New function.
8542 * decl2.c (flag_short_double, flag_short_wchar): Don't define.
8543 * cp-tree.h (flag_short_wchar): Don't declare.
8544
3af4c257
MM
85452001-01-04 Mark Mitchell <mark@codesourcery.com>
8546
8547 * call.c (build_conv): Don't use build1 for USER_CONV.
8548 * pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes.
8549
03dc0325
JM
85502001-01-03 Joseph S. Myers <jsm28@cam.ac.uk>
8551
8552 * lex.c (lang_init): Call c_common_lang_init.
8553
3c505507
NS
85542001-01-03 Nathan Sidwell <nathan@codesourcery.com>
8555
8556 * search.c (lookup_fnfields_here): Remove.
8557 (look_for_overrides_r): Use lookup_fnfields_1.
8558 Ignore functions from using declarations.
8559
03378143
NS
85602001-01-03 Nathan Sidwell <nathan@codesourcery.com>
8561
8562 Implement exceptions specifiers for implicit member functions.
8563 * cp-tree.h (merge_exceptions_specifiers): Declare new function.
8564 * method.c (synthesize_exception_spec): New function.
8565 (locate_dtor, locate_ctor, locate_copy): New functions.
8566 (implicitly_declare_fn): Generate the exception spec too.
8567 * search.c (check_final_overrider): Check artificial functions
8568 too.
9c96f3f8 8569 * typeck2.c (merge_exception_specifiers): New function.
03378143 8570
f30efcb7
JM
85712001-01-03 Jason Merrill <jason@redhat.com>
8572
8573 * init.c (build_default_init): New fn.
8574 (perform_member_init): Split out from here.
8575 (build_new_1): Use it. Simplify initialization logic.
8576 (build_vec_init): Take an array, rather than a pointer and maxindex.
8577 Speed up simple initializations. Don't clean up if we're assigning.
8578 * cp-tree.h: Adjust.
8579 * decl2.c (do_static_initialization): Remove TREE_VEC case.
8580 * parse.y (new_initializer): Return void_zero_node for ().
8581 * typeck.c (build_modify_expr): Handle getting a CONSTRUCTOR.
8582 * typeck2.c (digest_init): Only complain about user-written
8583 CONSTRUCTORs.
8584
a412bf75
MS
85852000-12-22 Mike Stump <mrs@wrs.com>
8586
8587 * decl2.c: (max_tinst_depth): Increase to 50.
8588
4890c2f4
MM
85892001-01-02 Mark Mitchell <mark@codesourcery.com>
8590
8591 * class.c (invalidate_class_lookup_cache): Zero the
8592 previous_class_values.
8593 * cp-tree.h (TMPL_PARMS_DEPTH): Use TREE_INT_CST_LOW, not
8594 TREE_INT_CST_HIGH.
8595 (CLASSTYPE_TEMPLATE_LEVEL): Likewise.
8596 * decl.c (free_bindings): New variable.
8597 (push_binding): Don't create a new binding if we have one on the
8598 free list.
8599 (pop_binding): Put old bindings on the free list.
8600 (init_decl_processing): Use size_int, not build_int_2.
8601 Register free_bindings as a GC root.
8602 (cp_make_fname_decl): Use size_int, not build_int_2.
8603 (push_inline_template_parms_recursive): Likewise.
8604 (end_template_parm_list): Likewise.
688f6688 8605 (for_each_template_parm): Do not use walk_tree_without_duplicates.
4890c2f4
MM
8606 (tsubst_template_parms): Use size_int, not build_int_2.
8607 (tsubst): Likewise.
8608 * rtti.c (get_vmi_pseudo_type_info): Likewise.
9c96f3f8 8609
4f78b9a8
RH
86102001-01-02 Richard Henderson <rth@redhat.com>
8611
8612 * parse.y (asm): Set ASM_INPUT_P.
8613
3c8c2a0a
JM
86142001-01-02 Jason Merrill <jason@redhat.com>
8615
96d6c610
JM
8616 * tree.c (cp_valid_lang_attribute): Don't set CLASSTYPE_COM_INTERFACE
8617 for v3 ABI.
8618
8619 * typeck.c (cp_truthvalue_conversion): New fn.
8620 * cvt.c (ocp_convert): Use it.
8621
8622 * cp-tree.h: Lose c-common.c decls.
8623
8624 * typeck.c (build_unary_op): Restore old &a.f diagnostic code.
8625 * cvt.c (convert_to_void): Use type_unknown_p.
8626
9c96f3f8 8627 * typeck.c (strip_all_pointer_quals): Also strip quals from
3c8c2a0a
JM
8628 pointer-to-member types.
8629
8630 * Make-lang.in (cp/TAGS): Use --no-globals. Ignore parse.c, and treat
8631 parse.y as C.
8632
8633 * call.c (build_new_method_call): Do evaluate the object parameter
8634 when accessing a static member.
8635 * typeck.c (build_component_ref): Likewise.
8636
d363e7bf
AJ
86372001-01-02 Andreas Jaeger <aj@suse.de>
8638
8639 * decl.c (cp_missing_noreturn_ok_p): New.
8640 (init_decl_processing): Set lang_missing_noreturn_ok_p.
8641
77f5250d
JJ
86422000-12-29 Jakub Jelinek <jakub@redhat.com>
8643
8644 * decl.c (init_decl_processing): Fix sign of wchar_type_node.
8645
31a714f6
MM
86462000-12-29 Mark Mitchell <mark@codesourcery.com>
8647
8648 * class.c (pushclass): Remove #if 0'd code.
8649 * cp-tree.h (overload_template_name): Remove.
8650 * decl.c (store_bindings): Simplify.
8651 (pop_from_top_level): Likewise.
8652 * pt.c (overload_template_name): Remove.
d363e7bf 8653 (instantiate_decl): Don't call push_to_top_level if it's not
31a714f6
MM
8654 needed.
8655
414ea4aa
MM
86562000-12-28 Mark Mitchell <mark@codesourcery.com>
8657
8658 * pt.c (register_local_specialization): Don't return a value.
8659 (lookup_template_class): Use move-to-front heuristic when looking
8660 up template instantiations.
8661 (instantiate_decl): Only push_to_top_level when we're actually
8662 going to instantiate the template.
8663
6f18f7e9
HPN
86642000-12-29 Hans-Peter Nilsson <hp@bitrange.com>
8665
8666 * search.c (binfo_for_vtable): Return least derived class, not
8667 most. Handle secondary vtables.
8668
e5214479
JM
86692000-12-22 Jason Merrill <jason@redhat.com>
8670
3c8c2a0a
JM
8671 * pt.c (more_specialized): Don't optimize len==0.
8672 (fn_type_unification): If we're adding the return type, increase len.
8673
ebb1abc3
JM
8674 * typeck.c (build_binary_op): Fix pmf comparison logic.
8675
c939ca5f
JM
8676 * call.c (joust): Use DECL_NONSTATIC_MEMBER_FUNCTION_P, not
8677 DECL_STATIC_FUNCTION_P.
8678
e6fe680d
JM
8679 * semantics.c (genrtl_finish_function): Don't try to jump to
8680 return_label unless it exists.
8681
e5214479
JM
8682 In partial ordering for a call, ignore parms for which we don't have
8683 a real argument.
8684 * call.c (joust): Pass len to more_specialized.
8685 (add_template_candidate_real): Strip 'this', pass len.
8686 * pt.c (more_specialized): Pass len down. Lose explicit_args parm.
8687 (get_bindings_order): New fn. Pass len down.
8688 (get_bindings_real): Strip 'this', pass len.
8689 (fn_type_unification): Likewise.
8690 (type_unification_real): Succeed after checking 'len' args.
8691 (most_specialized_instantiation): Lose explicit_args parm.
d363e7bf 8692 * class.c (resolve_address_of_overloaded_function): Strip 'this',
e5214479
JM
8693 pass len.
8694
86952000-12-21 Jason Merrill <jason@redhat.com>
477f6664
JM
8696
8697 * pt.c (tsubst_decl): A FUNCTION_DECL has DECL_RESULT, not
8698 DECL_TEMPLATE_RESULT.
8699
8700 * search.c (lookup_field_r): Call lookup_fnfields_1, not
8701 lookup_fnfields_here.
8702
8703 * parse.y (typename_sub2): Return the TYPE_DECL, not the type.
8704
8705 * call.c (build_object_call): Also allow conversions that return
8706 reference to pointer to function.
8707 (add_conv_candidate): Handle totype being ref to ptr to fn.
8708 (build_field_call): Also allow members of type reference to function.
8709 Lose support for calling pointer to METHOD_TYPE fields.
8710
8711 * error.c (dump_expr): Handle *_CAST_EXPR.
8712
8713 * typeck2.c (build_scoped_ref): Always convert to the naming class.
8714
8715 * tree.c (break_out_cleanups): Lose.
8716 * cp-tree.h: Remove prototype.
8717 * typeck.c (build_component_ref): Don't break_out_cleanups.
8718 (build_compound_expr): Likewise.
8719 * semantics.c (finish_expr_stmt): Likewise.
8720
3e4d04a1
RH
87212000-12-20 Richard Henderson <rth@redhat.com>
8722
8723 * cp-tree.h: Update declarations.
8724 * decl.c (finish_case_label): Return the new stmt node.
8725 * semantics.c (finish_goto_stmt): Likewise.
8726 (finish_expr_stmt, finish_return_stmt): Likewise.
8727 (finish_break_stmt, finish_continue_stmt): Likewise.
8728 (finish_asm_stmt): Likewise.
8729 * parse.y (already_scoped_stmt): Set STMT_LINENO.
8730 (compstmt, implicitly_scoped_stmt, stmt): Likewise.
8731 (simple_if, simple_stmt): Return the new stmt node.
8732 (save_lineno): New.
8733
20d380b1
JM
87342000-12-18 Joseph S. Myers <jsm28@cam.ac.uk>
8735
8736 * cp-tree.h: Don't declare warn_long_long.
8737
221c7a7f
KL
87382000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
8739
8740 * tree.c (no_linkage_helper): Use CLASS_TYPE_P instead of
8741 IS_AGGR_TYPE.
8742
b429fdf0
KL
87432000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
8744
8745 * pt.c (unify): Handle when both ARG and PARM are
8746 BOUND_TEMPLATE_TEMPLATE_PARM.
8747
c2beae77
KL
87482000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
8749
8750 * pt.c (reduce_template_parm_level): Set DECL_ARTIFICIAL and
8751 DECL_TEMPLATE_PARM_P.
8752
c3e899c1
JM
87532000-12-15 Jason Merrill <jason@redhat.com>
8754
96790071
JM
8755 * init.c (build_new_1): Reorganize. Now with 100% fewer SAVE_EXPRs!
8756
8d42565b
JM
8757 * init.c (build_new_1): Don't strip quals from type.
8758
fab09a24
JM
8759 * decl.c (pushdecl): Don't check for linkage on a non-decl.
8760
c3e899c1
JM
8761 * call.c (build_op_delete_call): See through ARRAY_TYPEs.
8762
8763 * call.c (build_new_function_call): Lose space before paren in
8764 error message.
8765 (build_new_method_call): Likewise.
8766
8767 * typeck2.c (build_m_component_ref): Propagate quals from datum.
8768
edac124d
KL
87692000-12-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
8770
8771 * pt.c (check_explicit_specialization): Propagate default
8772 function arguments to explicit specializations.
8773
31750649 87742000-12-13 DJ Delorie <dj@redhat.com>
8d3b081e
DD
8775
8776 * typeck.c (build_binary_op): Do signed/unsigned warnings for >?
8777 and <? operators.
8778
5e818b93
JM
87792000-12-08 Jason Merrill <jason@redhat.com>
8780
8781 * error.c (dump_function_name): Don't let the user see __comp_ctor.
8782
8783 Clean up copy-initialization in overloading code.
8784 * call.c (build_user_type_conversion_1): Die if we are asked to
8785 convert to the same or a base type.
8786 (implicit_conversion): Avoid doing so. Lose reference binding code.
8787 (convert_like_real): Treat BASE_CONV and RVALUE_CONV as implicit
8788 direct-initialization. Also do direct-init part of copy-init.
8789 (build_user_type_conversion): Don't provide context to convert_like.
8790 * cvt.c (ocp_convert): build_user_type_conversion will now provide
8791 the constructor call for copy-init.
8792
8793 * pt.c (tsubst_decl): Call clone_function_decl here if this is an
8794 instantiation of a member template.
8795 (do_decl_instantiation): Not here.
8796
38da6039
NS
87972000-12-07 Nathan Sidwell <nathan@codesourcery.com>
8798
8799 * class.c (check_field_decls): Don't special case anonymous
8800 fields in error messages.
c9407e4c 8801 (note_name_declared_in_class): Use %D on diagnostic.
d363e7bf 8802
38da6039
NS
8803 * tree.c (pod_type_p): Use strip_array_types.
8804 (cp_valid_lang_attribute): Likewise.
8805 * typeck.c (cp_type_quals): Strip arrays separately, to avoid
8806 multiple evaluations.
d363e7bf 8807 (cp_has_mutable_p): Use strip_array_types.
38da6039 8808
a11d04b5
NS
88092000-12-07 Nathan Sidwell <nathan@codesourcery.com>
8810
8811 * cp-tree.h (sufficient_parms_p): Declare new function.
8812 * call.c (sufficient_parms_p): New function, broken out of ...
8813 (add_function_candidate): ... here. Use it.
8814 (add_conv_candidate): Use it.
8815 * decl.c (grok_ctor_properties): Use it.
8816
5eec2847
JJ
88172000-12-07 Jakub Jelinek <jakub@redhat.com>
8818
8819 * optimize.c (copy_body_r): Set STMT_IS_FULL_EXPR_P on EXPR_STMT.
8820
c907e684
JM
88212000-12-07 Joseph S. Myers <jsm28@cam.ac.uk>
8822
8823 * decl2.c (lang_decode_option): Handle -Wformat-security.
8824
74601d7c
KL
88252000-12-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
8826
8827 * pt.c (verify_class_unification): New function.
8828 (get_class_bindings): Use it.
8829 (try_class_unification): Tidy.
8830 (unify): Handle when argument of a template-id is not
8831 template parameter dependent.
8832 (template_args_equal): Handle when TREE_CODE's do not match.
8833
8954e858
AO
88342000-12-06 Alexandre Oliva <aoliva@redhat.com>
8835
8836 * lang-specs.h (c++): When invoking the stand-alone preprocessor
8837 for -save-temps, pass all relevant -Defines to it, and then don't
8838 pass them to cc1plus.
8839
3dc9aec6
WC
88402000-12-05 Will Cohen <wcohen@redhat.com>
8841
8842 * decl.c (finish_case_label): Cleared
8843 more_cleanups_ok in surrounding function scopes.
8844 (define_label): Likewise.
8845
cbb40945
NS
88462000-12-05 Nathan Sidwell <nathan@codesourcery.com>
8847
8848 * cp-tree.h (IDENTIFIER_VIRTUAL_P): Document.
8849 (get_matching_virtual): Remove.
8850 (look_for_overrides): Declare new function.
8851 * decl.c (grokfndecl): Don't set IDENTIFIER_VIRTUAL_P or
8852 DECL_VINDEX here.
8853 * class.c (check_for_override): Move base class iteration code
8854 to look_for_overrides.
8855 * search.c (next_baselink): Remove.
8856 (get_virtuals_named_this): Remove.
8857 (get_virtual_destructor): Remove.
8858 (tree_has_any_destructors_p): Remove.
8859 (struct gvnt_info): Remove.
8860 (check_final_overrider): Remove `virtual' from error messages.
8861 (get_matching_virtuals): Remove. Move functionality to ...
8862 (look_for_overrides): ... here, and ...
8863 (look_for_overrides_r): ... here. Set DECL_VIRTUAL_P, if found
8864 to be overriding.
8865
61402b80
NS
88662000-12-05 Nathan Sidwell <nathan@codesourcery.com>
8867
8868 * typeck.c (get_delta_difference): If via a virtual base,
8869 return zero.
8870 * cvt.c (cp_convert_to_pointer): If via a virtual base, do no
8871 adjustment.
8872
39abc9a6
RH
88732000-12-04 Richard Henderson <rth@redhat.com>
8874
8875 * error.c (dump_tree): Use output_add_string not OB_PUTS.
8876
c00996a3
JM
88772000-12-04 Jason Merrill <jason@redhat.com>
8878
8879 * mangle.c (write_type): Mangle VECTOR_TYPE with "U8__vector".
d363e7bf 8880 (write_builtin_type): Pass intSI_type_node and the like through
c00996a3
JM
8881 type_for_mode.
8882 * method.c (process_overload_item): Mangle VECTOR_TYPEs with 'o'.
8883 Pass intSI_type_node and the like through type_for_mode.
8884 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE like COMPLEX_TYPE.
8885 * pt.c (tsubst, unify): Likewise.
8886 * tree.c (walk_tree): Likewise.
8887 * error.c (dump_type): Likewise.
8888 (dump_type_prefix, dump_type_suffix): Don't bother with VECTOR_TYPE.
d363e7bf 8889
c00996a3
JM
8890 * Make-lang.in: Tweak top comment for emacs.
8891 (cp/TAGS): Restore.
8892
8893 * except.c (expand_throw): Use push_throw_library_fn for _Jv_Throw.
8894
c00996a3
JM
8895 * class.c (clone_function_decl): Robustify.
8896
88972000-12-04 Michael Matz <matzmich@cs.tu-berlin.de>
8898
8899 * decl.c (store_bindings): Only search in the non modified
8900 old_bindings for duplicates.
8901
00bb3dad
NS
89022000-12-04 Nathan Sidwell <nathan@codesourcery.com>
8903
8904 * error.c (dump_function_decl): Use DECL_VIRTUAL_P, not
8905 TYPE_POLYMORPHIC_P.
d363e7bf 8906
00bb3dad
NS
8907 * typeck.c (build_static_cast): Remove unused variable.
8908
dc957d14
KL
89092000-12-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
8910
8911 * pt.c: Fix typo in comment.
8912
4d808927
JM
89132000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
8914
8915 * decl2.c (warn_format): Remove definition.
8916 (lang_decode_option): Handle -Wformat-nonliteral,
8917 -Wno-format-extra-args and -Wno-format-y2k. Use set_Wformat.
8918
5fd8e536
JM
89192000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
8920
8921 * decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define.
8922 (init_decl_processing): Don't create string_type_node,
8923 const_string_type_node, wint_type_node, intmax_type_node,
8924 uintmax_type_node, default_function_type, ptrdiff_type_node and
8925 unsigned_ptrdiff_type_node. Adjust position of call to
8926 c_common_nodes_and_builtins.
8927 (identifier_global_value): New function.
8928
13f9714b
NS
89292000-12-01 Nathan Sidwell <nathan@codesourcery.com>
8930
8931 * call.c (standard_conversion): Reject pointer to member
8932 conversions from ambiguous, inaccessible or virtual bases.
8933 * typeck.c (build_static_cast): Don't check pointers to members
8934 specially.
8935
31b1b957
NS
89362000-11-30 Nathan Sidwell <nathan@codesourcery.com>
8937
8938 * method.c (do_build_copy_constructor): Preserve cv
8939 qualifications when accessing source object members.
8940 (do_build_assign_ref): Likewise. Remove separate diagnostics for
8941 unnamed fields.
8942
717e3f73
NS
89432000-11-30 Nathan Sidwell <nathan@codesourcery.com>
8944
8945 * method.c (do_build_assign_ref): Construct appropriately
8946 CV-qualified base reference. Don't allow const casts in base
8947 conversion.
8948
2c92b94d
NS
89492000-11-30 Nathan Sidwell <nathan@codesourcery.com>
8950
8951 * call.c (build_over_call): Use VOID_TYPE_P. Don't die on
8952 incomplete return type.
8953
bb92901d
NS
89542000-11-28 Nathan Sidwell <nathan@codesourcery.com>
8955
8956 * parse.y (base_class.1): Produce a _TYPE not a _DECL.
8957 * semantics.c (finish_base_specifier): Accept a _TYPE not a
8958 _DECL.
8959
2f3608c3
NS
89602000-11-28 Nathan Sidwell <nathan@codesourcery.com>
8961
8962 * spew.c (yyerror): Cope if yylval.ttype is NULL.
8963
eeb75383
NS
89642000-11-28 Nathan Sidwell <nathan@codesourcery.com>
8965
8966 * decl.c (grokdeclarator): Diagnose undefined template contexts.
8967
5ee4cc26
NS
89682000-11-28 Nathan Sidwell <nathan@codesourcery.com>
8969
8970 * decl.c (grokdeclarator): Do type access control on friend
8971 class.
8972
76e57b45
NS
89732000-11-27 Nathan Sidwell <nathan@codesourcery.com>
8974
8975 * decl.c (grokfndecl): Undo COMPONENT_REF damage caused by
8976 bison parser ickiness.
8977 * pt.c (tsubst_friend_function): Enter namespace scope when
8978 tsubsting the function name.
8979 * cp-tree.h (DECL_TI_TEMPLATE): Update comment to reflect reality.
8980
f9825168
NS
89812000-11-27 Nathan Sidwell <nathan@codesourcery.com>
8982
8983 * cp-tree.h (binfo_from_vbase): Return the virtual base's binfo.
8984 * cvt.c (cp_convert_to_pointer): Add force parameter.
8985 Allow conversions via virtual base if forced.
8986 (convert_to_pointer_force): Adjust call to cp_convert_to_pointer.
8987 (ocp_convert): Likewise.
8988 * search.c (binfo_from_vbase): Return the virtual base's binfo.
8989 * typeck.c (get_delta_difference): Adjust handling of virtual
8990 bases.
8991
9ccb25d5
MM
89922000-11-26 Mark Mitchell <mark@codesourcery.com>
8993
8994 * tree.c (struct list_hash): Remove.
8995 (list_hash_table): Make it be an htab.
8996 (struct list_proxy): New type.
8997 (list_hash_eq): New function.
8998 (list_hash_pieces): Renamed from ...
8999 (list_hash): ... this.
9000 (list_hash_lookup): Remove.
9001 (list_hash_add): Remove.
9002 (hash_tree_cons): Use the generic hashtable.
9003 (mark_list_hash): Remove.
9004 (init_tree): Create the hashtable.
9005
9399bad3
JM
90062000-11-25 Joseph S. Myers <jsm28@cam.ac.uk>
9007
9008 * method.c (build_mangled_C9x_name): Rename to
9009 build_mangled_C99_name. Change C9X references in comments to
9010 refer to C99.
9011
2f401cc8
NS
90122000-11-24 Nathan Sidwell <nathan@codesourcery.com>
9013
9014 * parse.y (unary_expr): Move VA_ARG from here ...
9015 (primary): ... to here.
9016
3d7e9ba4
NS
90172000-11-24 Nathan Sidwell <nathan@codesourcery.com>
9018
9019 * semantics.c (finish_id_expr): If type is error_mark, return
9020 error_mark.
9021
ab097535
NS
90222000-11-23 Nathan Sidwell <nathan@codesourcery.com>
9023
9024 * pt.c (lookup_template_class): Simplify loop exit constructs.
9025 Cope when there is no partial instantiation of a template
9026 template member.
9027
9196ece5
R
9028Thu Nov 23 02:16:47 2000 J"orn Rennecke <amylaar@redhat.com>
9029
9030 * Make-lang.in (g++spec.o, cxxmain.o): Depend on $(CONFIG_H).
9031
cac78ea2
MM
90322000-11-22 Mark Mitchell <mark@codesourcery.com>
9033
6e1b44bc
MM
9034 * mangle.c (mangle_conv_op_name_for_type): Don't use `__op'
9035 prefix.
9036
cac78ea2
MM
9037 * pt.c (do_decl_instantiate): Explicitly clone constructors and
9038 destructors that haven't already been cloned.
9039
3aac38d7
RH
90402000-11-20 Richard Henderson <rth@redhat.com>
9041
9042 * parse.y (yyparse_1): Rename the parser entry point.
9043
90442000-11-20 Alex Samuel <samuel@codesourcery.com>
beac9b93
AS
9045
9046 * mangle.c (write_name): Use <unscoped-name> for names directly in
9047 function scope.
9048 (write_unscoped_name): Accept names directly in function scope.
d363e7bf 9049
447306fa
NS
90502000-11-20 Nathan Sidwell <nathan@codesourcery.com>
9051
9052 * lex.c (rid_to_yy, RID_EXPORT): Make unique keyword.
9053 * parse.y (extdef): Add EXPORT reduction.
9054 * spew.c (yylex): Don't skip export here.
9055
2650255a
MM
90562000-11-19 Mark Mitchell <mark@codesourcery.com>
9057
9058 * decl.c (init_decl_processing): Correct name of pure virtual
9059 function under the new ABI.
9060 * rtti.c (throw_bad_cast): Likewise, for bad cast function.
9061 (throw_bad_typeid): Likewise for bad typeid function.
9062
0657c69c
MM
90632000-11-18 Mark Mitchell <mark@codesourcery.com>
9064
04f3dc2b
MM
9065 * decl.c (grokparms): Don't even function types of `void' type,
9066 either.
9067 * mangle.c (write_type): Don't crash when confronted with the
9068 error_mark_node.
9069
0657c69c
MM
9070 * decl.c (grokparms): Don't create parameters of `void' type.
9071
a8a05998
ZW
90722000-11-17 Zack Weinberg <zack@wolery.stanford.edu>
9073
9074 * lex.c (mark_impl_file_chain): Delete.
9075 (init_parse): Remove call to ggc_add_string_root. No need to
9076 ggc_strdup a string constant. Do not add impl_file_chain to GC
9077 roots.
9078 (handle_pragma_implementation): No need to ggc_strdup main_filename.
9079
35728a80
NS
90802000-11-17 Nathan Sidwell <nathan@codesourcery.com>
9081
9082 * pt.c (tsubst_expr, DECL_STMT): Instantiate decl's type.
9083
5cce22b6
NS
90842000-11-17 Nathan Sidwell <nathan@codesourcery.com>
9085
9086 * cp-tree.h (PARMLIST_ELLIPSIS_P): New macro.
9087 * decl.c (grokdeclarator): Don't reject void parms here.
9088 (require_complete_types_for_parms): Simplify, use
9089 complete_type_or_else.
9090 (grokparms): Remove bitrot. Remove funcdef parm.
9091 Deal with ellipsis parm lists here.
9092 * semantics.c (finish_parmlist): Don't append void_list_node
9093 here. Set PARMLIST_ELLIPSIS_P.
9094
146c8d60
NS
90952000-11-17 Nathan Sidwell <nathan@codesourcery.com>
9096
d30d6e7a 9097 * typeck2.c (incomplete_type_error): Reorganize to avoid
146c8d60
NS
9098 excessive diagnostics.
9099
520a57c8
ZW
91002000-11-16 Zack Weinberg <zack@wolery.stanford.edu>
9101
9102 * lex.c (struct impl_files, internal_filename): Constify a char *.
9103
43048a06
MM
91042000-11-16 Mark Mitchell <mark@codesourcery.com>
9105
9106 * mangle.c (write_special_name_constructor): Don't generate
9107 assembler junk when confronted with an old-style constructor.
9108 (write_special_name_destructor): Likewise.
9109 (mangle_decl_string): Do it here instead.
9110
cdb71673
NS
91112000-11-16 Nathan Sidwell <nathan@codesourcery.com>
9112
9113 * call.c (op_error): Make error messages clearer.
9114
62136084
MM
91152000-11-15 Mark Mitchell <mark@codesourcery.com>
9116
9117 * decl.c (wrapup_globals_for_namespace): Don't mark things
9118 TREE_ASM_WRITTEN when they're not.
9119
ee3400e8
JM
91202000-11-15 Jason Merrill <jason@redhat.com>
9121
9122 * typeck2.c (friendly_abort): Uncount the error before handing
9123 off to fancy_abort.
9124
71631a1f
NS
91252000-11-15 Nathan Sidwell <nathan@codesourcery.com>
9126
9127 * typeck.c (lookup_anon_field): Cope with qv qualifiers.
9128
79cda2d1
MM
91292000-11-14 Mark Mitchell <mark@codesourcery.com>
9130
9131 * class.c (build_vtbl_initializer): Fix typo in comment.
9132 * typeck.c (expr_sizeof): Don't crash on errors.
9133
2567bc56
JW
91342000-11-14 Jim Wilson <wilson@redhat.com>
9135
9136 * lang-specs.h: Add %2 after %(cc1_options).
9137
8422942c
RH
91382000-11-14 Richard Henderson <rth@redhat.com>
9139
9140 * typeck.c (c_sizeof): Be strict about casting result value
9141 back to c_size_type_node.
9142 (expr_sizeof, c_sizeof_nowarn, c_alignof): Likewise.
9143
19552aa5
JM
91442000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
9145
9146 * typeck.c (build_unary_op): Use boolean_increment from
9147 c-common.c, moving the relevant code there.
9148
d96a6d1a
JM
91492000-11-11 Jason Merrill <jason@redhat.com>
9150
9151 * typeck.c (mark_addressable): Don't call put_var_into_stack.
492cca24
JM
9152
9153 * decl.c (maybe_commonize_var): Set DECL_UNINLINABLE for statics
9154 in inlines.
9155
4e135bdd
KG
91562000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9157
9158 * decl.c (grokdeclarator, save_function_data): Use memcpy, not bcopy.
9159 * lex.c (copy_lang_decl): Likewise.
9160
0a7394bc
MM
91612000-11-09 Mark Mitchell <mark@codesourcery.com>
9162
13507bd8
MM
9163 * dump.c (cp_dump_tree): Don't dump function bodies here.
9164
0a7394bc
MM
9165 * Make-lang.in (CXX_C_OBJS): Add c-dump.o.
9166 (dump.o): Update dependency list.
9167 * cp-tree.h (DECL_MAYBE_TEMPLATE): Remove.
9168 (flag_dump_translation_unit): Likewise.
9169 (CP_TYPE_QUALS): Adjust definition.
9170 (DECL_C_BIT_FIELD): Remove.
9171 (SET_DECL_C_BIT_FIELD): Likewise.
9172 (CLEAR_DECL_C_BIT_FIELD): Likewise.
9173 (add_maybe_template): Likewise.
9174 (strip_array_types): Likewise.
9175 (dump_node_to_file): Likewise.
9176 (cp_dump_tree): New function.
9177 * decl.c (init_decl_processing): Set lang_dump_tree.
9178 * decl2.c (flag_dump_translation_unit): Remove.
9179 * dump.c: Move most of it to ../c-dump.c.
9180 (cp_dump_tree): New function.
9181 * pt.c (add_maybe_template): Remove.
9182 * typeck.c (strip_array_types): Likewise.
a8a05998 9183
5362b086
EC
91842000-11-07 Eric Christopher <echristo@redhat.com>
9185
492cca24
JM
9186 * decl.c (init_decl_processing): Change definition of
9187 __wchar_t to wchar_t. Remove artificial declaration of
9188 wchar_t.
9189 * lex.c: Change instances of __wchar_t to wchar_t.
5362b086 9190
5361cbb7
NS
91912000-11-09 Nathan Sidwell <nathan@codesourcery.com>
9192
9193 * lex.c (do_identifier): Don't lookup_name for operators.
9194 * parse.y (operator): Save looking_for_typename.
9195 (unoperator): Restore it.
9196 * spew.c (frob_opname): Use nth_token for lookahead.
9197
36791f1e
NS
91982000-11-08 Nathan Sidwell <nathan@codesourcery.com>
9199
9200 * decl.c (grok_op_properties): Always use coerce_new_type and
9201 coerce_delete_type.
9202 * decl2.c (coerce_new_type): Use c_size_type_node. Preserve
9203 exception specification. Tidy up.
9204 (coerce_delete_type): Preserve exception specification. Tidy up.
9205
961192e1
JM
92062000-11-07 Joseph S. Myers <jsm28@cam.ac.uk>
9207
9208 * class.c (duplicate_tag_error, build_vtbl_initializer), decl.c
9209 (push_binding_level), error.c (cp_tree_printer), pt.c
9210 (process_partial_specialization, tsubst_template_arg_vector),
9211 search.c (lookup_member): Use memset () instead of bzero ().
9212
d48ebde1
NS
92132000-11-07 Nathan Sidwell <nathan@codesourcery.com>
9214
9215 * decl.c (build_ptrmemfunc_type): Allow error_mark_node.
9216
436a88a6
JM
92172000-11-05 Joseph S. Myers <jsm28@cam.ac.uk>
9218
9219 * Make-lang.in (c++.distdir): Remove.
9220
7a4e5091
MM
92212000-11-04 Mark Mitchell <mark@codesourcery.com>
9222
9223 * decl2.c (do_nonmember_using_decl): Allow `extern "C"'
9224 declarations from different namespaces to be combined.
9225
0e9295cf
ZW
92262000-11-03 Zack Weinberg <zack@wolery.stanford.edu>
9227
9228 * decl.c: Include tm_p.h.
9229
da61dec9
JM
92302000-11-03 Joseph S. Myers <jsm28@cam.ac.uk>
9231
9232 * tree.c (cp_tree_equal): Use memcmp () instead of bcmp ().
9233
9473c522
JM
92342000-11-02 Joseph S. Myers <jsm28@cam.ac.uk>
9235
9236 * dump.c (dequeue_and_dump), lex.c (interface_strcmp), method.c
9237 (build_overload_value), repo.c (open_repo_file), xref.c
9238 (open_xref_file): Use strchr () and strrchr () instead of index ()
9239 and rindex ().
9240
b0b3afb2
BS
92412000-11-01 Bernd Schmidt <bernds@redhat.co.uk>
9242
9243 * call.c (build_over_call): Call fold on the CALL_EXPR.
9244
faafaee6
GDR
92452000-11-01 Gabriel Dos Reis <gdr@codesourcery.com>
9246
9247 * error.c (dump_template_decl): Separate template hearders with
9248 space not comma.
9249
761f0855
GDR
92502000-10-31 Gabriel Dos Reis <gdr@codesourcery.com>
9251
9252 * error.c: Move TFF_ macros into cp-tree.h. Throughout, replace
9253 TS_* flags with corresponding TFF_*. Adjust prototypes of
9254 functions (which used to take a tree_string_flags) to take an int.
9255
9256 * cp-tree.h (enum tree_string_flags): Remove
9257 (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE,
9258 TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPEDEF, TFF_DECL_SPECIFIERS,
9259 TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE,
9260 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION,
9261 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS,
9262 TFF_TEMPLATE_NAME, TFF_EXPR_IN_PARENS, TFF_SCOPE): New macros.
9263 (type_as_string, decl_as_string, expr_as_string,
9264 context_as_string): Adjust prototype.
9265
9266 * class.c (dump_class_hierarchy_r): Use TFF_PLAIN_IDENTIFIER
9267 instead of TS_PLAIN.
9268
9269 * pt.c (mangle_class_name_for_template): Use TFF_CHASE_TYPEDEF
9270 instead of TF_CHASE_TYPEDEFS. Use TFF_PLAIN_IDENTIFIER instead of
9271 plain `0'.
9272
ad50e811
MM
92732000-10-30 Mark Mitchell <mark@codesourcery.com>
9274
9275 * cp-tree.h (DECL_EXTERNAL_LINKAGE_P): New macro.
9276 (linkage_kind): New enumeration.
9277 (decl_linkage): New function.
9278 * decl2.c (comdat_linkage): Extend comment.
9279 * error.c (dump_function_decl): Print the arguments used to
9280 instantiate a template, even when not printing the type of the
9281 function.
9282 * pt.c (convert_nontype_argument): Use DECL_EXTERNAL_LINKAGE_P,
9283 not TREE_PUBLIC, to test for external linkage.
9284 * tree.c (decl_linkage): New function.
9285
930cd796
MM
92862000-10-28 Mark Mitchell <mark@codesourcery.com>
9287
9288 * pt.c (instantiate_decl): Always instantiate static data members
9289 initialized in-class.
9290
b8dad04b
ZW
92912000-10-27 Zack Weinberg <zack@wolery.stanford.edu>
9292
9293 * Make-lang.in: Move all build rules here from Makefile.in,
9294 adapt to new context. Wrap all rules that change the current
9295 directory in parentheses. Expunge all references to $(P).
9296 When one command depends on another and they're run all at
9297 once, use && to separate them, not ;. Add OUTPUT_OPTION to
9298 all object-file generation rules. Delete obsolete variables.
9299
9300 * Makefile.in: Delete.
9301 * config-lang.in: Delete outputs= line.
9302
5f9cd837
GDR
93032000-10-26 Gabriel Dos Reis <gdr@codesourcery.com>
9304
9305 * error.c (dump_function_decl): Print no space between
9306 `ptr-operator' the `type-specifier' of the return type.
9307 (dump_type_prefix): Make sure we put space at the appropriate
5362b086 9308 place.
5f9cd837 9309
6c6ed0ef
JM
93102000-10-23 Jason Merrill <jason@redhat.com>
9311
9312 * call.c (equal_functions): Also call decls_match for extern "C" fns.
9313
93142000-10-22 Jason Merrill <jason@redhat.com>
9315
9316 * call.c (build_conditional_expr): Use ocp_convert to force
9317 rvalue conversion.
9318
e36308b0
MM
93192000-10-22 Mark Mitchell <mark@codesourcery.com>
9320
583ca5a0
MM
9321 * call.c (standard_conversion): Use RVALUE_CONVs for all
9322 expressions that satisfy lvalue_p, not just those that satisfy
9323 real_lvalue_p.
9324
f9808f81
MM
9325 * optimize.c (copy_body_r): Don't treat CALL_EXPRs specially.
9326
5362b086 9327 * typeck.c (c_sizeof): Return an expression of `size_t' type,
e36308b0
MM
9328 not one with TYPE_IS_SIZETYPE set.
9329 (dubious_conversion_warnings): Remove special-case code.
9330
3b9ae6f0
GK
93312000-10-21 Geoffrey Keating <geoffk@cygnus.com>
9332
7a0f14e5
GK
9333 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE.
9334 * error.c (dump_type): Handle VECTOR_TYPE like POINTER_TYPE.
9335 (dump_type_prefix): Print vector-of-int as 'int vector'.
9336 (dump_type_suffix): Handle VECTOR_TYPE like POINTER_TYPE.
9337 * tree.c (walk_tree): Handle VECTOR_TYPE.
9338
3b9ae6f0 9339 * decl.c (init_decl_processing): Call MD_INIT_BUILTINS.
5362b086 9340
aca77bd1
JM
93412000-10-21 Jason Merrill <jason@redhat.com>
9342
9343 * parse.y (operator): Set got_object from got_scope.
9344 Set looking_for_typename.
9345 * decl.c (lookup_name_real): Clear val after setting from_obj.
9346 Reorganize diagnostic.
9347
ba523395
JM
93482000-10-20 Jason Merrill <jason@redhat.com>
9349
9350 * tree.c (walk_tree): Don't walk into default args.
9351
9352 * error.c (dump_expr): Use host_integerp.
9353
2e44948d
DE
93542000-10-20 David Edelsohn <edelsohn@gnu.org>
9355
9356 * typeck2.c (abstract_virtuals_error): Use "because" instead of
9357 "since" in error message.
9358
44475138
RK
9359Fri Oct 20 13:54:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9360
9361 * typeck.c (dubious_conversion_warning): Suppress if TYPE_IS_SIZETYPE.
9362
11306230
JO
93632000-10-20 Jeffrey Oldham <oldham@codesourcery.com>
9364
9365 * decl.c (revert_static_member_fn): Fixed typo.
9366
97ba1e3c
MM
93672000-10-19 Mark Mitchell <mark@codesourcery.com>
9368
c20118a8
MM
9369 * class.c (subobject_offset_fn): New type.
9370 (dfs_record_base_offsets): Remove.
9371 (record_base_offsets): Likewise.
9372 (dfs_search_base_offsets): Likewise.
9373 (record_subobject_offset): New function.
9374 (check_subobject_offset): Likewise.
9375 (walk_subobject_offsets): Likewise.
9376 (record_subobject_offsets): Likewise.
9377 (layout_conflict_p): Reimplement.
9378 (layout_nonempty_base_or_field): Correct handling of type
9379 conflicts during layout.
9380 (layout_empty_base): Likewise.
9381 (build_base_field): Adjust to handle new representation of empty
9382 base offset table.
9383 (build_base_fields): Likewise.
9384 (layout_virtual_bases): Likewise.
9385 (splay_tree_compare_integer_csts): New function.
9386 (layout_class_type): Use a splay_tree, rather than a varray, to
9387 represent the offsets of empty bases.
5362b086 9388
97ba1e3c
MM
9389 * cp-tree.h (DECL_ANTICIPATED): Don't require a FUNCTION_DECL.
9390 * decl.c (select_decl): Don't return declarations that are
9391 DECL_ANTICIPATED.
9392
6bcedb4e
MM
93932000-10-18 Mark Mitchell <mark@codesourcery.com>
9394
9395 * cp-tree.h (cp_tree_index): Add CPTI_FAKE_STD.
9396 (fake_std_node): New macro.
9397 * decl.c (in_std): Rename to ...
9398 (in_fake_std): ... this.
9399 (flag_no_builtin): Remove.
9400 (flag_no_nonansi_builtin): Likewise.
9401 (walk_namespaces_r): Use fake_std_node.
9402 (push_namespace): Use std_identifier.
9403 (pop_namespace): Use in_fake_std.
9404 (lookup_name_real): Use fake_std_node.
9405 (init_decl_processing): When -fhonor-std, create the `std'
9406 namespace. Don't create a dummy fake_std_node in that case.
9407 Adjust call to c_common_nodes_and_builtins. Use std_identifier.
9408 (builtin_function): Put builtins whose names don't begin
9409 with `_' in the std namespace.
9410 * decl2.c (flag_no_builtin): Remove.
9411 (flag_no_nonansi_builtin): Likewise.
9412 (set_decl_namespace): Use fake_std_node.
9413 (validate_nonmember_using_decl): Likewise.
9414 (do_using_directive): Likewise.
9415 (handle_class_head): Likewise.
9416 * dump.c (dequeue_and_dump): Likewise.
9417 * except.c (init_exception_processing): Use std_identifier.
9418 * init.c (build_member_call): Use fake_std_node.
9419 * rtti.c (init_rtti_processing): Use std_identifier.
5362b086 9420
67673f5c
MM
94212000-10-17 Mark Mitchell <mark@codesourcery.com>
9422
9423 * cp-tree.h (back_end_hook): Remove declaration.
9424 * decl2.c (back_end_hook): Remove definition.
9425
9426 * dump.c (dequeue_and_dump): Dump TREE_USED.
9427
8fef2e47
BL
9428Tue Oct 17 20:19:06 2000 Brad Lucier <lucier@math.purdue.edu>
9429
9430 * spew.c (snarf_defarg): Cast 2nd arg to obstack_blank to (int).
9431
652469d0
JM
94322000-10-17 Joseph S. Myers <jsm28@cam.ac.uk>
9433
9434 * decl.c (WINT_TYPE): Define.
9435 (init_decl_processing): Create types unsigned_ptrdiff_type_node,
9436 c_size_type_node, signed_size_type_node and wint_type_node.
9437
74ff4629
JM
94382000-10-17 Joseph S. Myers <jsm28@cam.ac.uk>
9439
9440 * decl2.c (warn_missing_format_attribute): New variable.
9441 (lang_decode_option): Decode -Wmissing-format-attribute.
9442
634790f4
MM
94432000-10-16 Mark Mitchell <mark@codesourcery.com>
9444
9445 * typeck.c (qualify_type): Remove.
9446 (composite_pointer_type): Fix handling of conversions to `cv void*'.
9447
bb12da9d
KG
94482000-10-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9449
9450 * Makefile.in (parse.c, parse.h): Fix think-o in last patch.
9451
4b945402
KG
94522000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9453
9454 * Makefile.in (parse.c, parse.h): Create atomically.
9455
1f8f4a0b
MM
94562000-10-12 Mark Mitchell <mark@codesourcery.com>
9457
9458 * class.c (current_obstack): Remove.
9459 * decl.c (ggc_p): Remove.
9460 (start_decl): Don't use decl_tree_cons.
9461 (grokdeclarator): Don't use build_decl_list.
9462 (start_function): Don't use decl_tree_cons.
9463 (finish_function): Don't mess with obstacks.
9464 * decl2.c (grok_x_components): Don't use build_decl_list.
9465 * lex.c (make_call_declarator): Don't call decl_tree_cons.
9466 (implicitly_declare_fn): Don't call build_decl_list.
9467 * parse.y (frob_specs): Don't call build_decl_list or
9468 decl_tree_cons.
9469 (expr_or_declarator_intern): Don't call decl_tree_cons.
9470 (primary): Don't call build_decl_list.
9471 (fcast_or_absdcl): Likewise.
9472 (typed_declspecs): Don't call decl_tree_cons.
9473 (reserved_declspecs): Don't call build_decl_list.
9474 (declmods): Likewise.
9475 (reserved_typespecquals): Likewise.
9476 (aggr): Likewise.
9477 (new_type_id): Likewise.
9478 (cv_qualifiers): Likewise.
9479 (after_type_declarator_intern): Likewise.
9480 (notype_declarator_intern): Likewise.
9481 (absdcl_intern): Likewise.
9482 (named_parm): Likewise.
9483 * pt.c (most_specialized_class): Likewise.
9484 * repo.c (temporary_obstack): Make it a structure, not a pointer.
9485 (init_repo): Initialize it.
9486 * search.c (current_obstack): Remove.
9487 * typeck2.c (add_exception_specifier): Don't call build_decl_list.
5362b086 9488
8dc54971
RH
94892000-10-09 Richard Henderson <rth@cygnus.com>
9490
9491 * Make-lang.in (CXX_EXTRA_HEADERS): Remove.
9492 (c++ language support bits for libgcc): Remove.
9493 (c++.clean): Remove cplib2.txt cleanup.
9494 * config-lang.in (headers, lib2funcs): Remove.
9495
9496 * exception.cc, new.cc, new1.cc, new2.cc: Remove files.
9497 * tinfo.cc, tinfo.h, tinfo2.cc, vec.cc: Remove files.
9498 * inc/cxxabi.h, inc/exception, inc/new: Remove files.
9499 * inc/new.h, inc/typeinfo: Remove files.
9500
b15ad712
JM
95012000-10-08 Joseph S. Myers <jsm28@cam.ac.uk>
9502
9503 * decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already
9504 defined.
9505 (init_decl_processing): Initialize intmax_type_node and
9506 uintmax_type_node.
9507
156ce211
RH
95082000-10-06 Richard Henderson <rth@cygnus.com>
9509
9510 * cp-tree.h (struct cp_language_function): Remove x_result_rtx.
9511 (original_result_rtx): Remove.
9512 * decl.c (save_function_data): Don't clear x_result_rtx.
9513 (mark_lang_function): Don't mark it either.
9514 * expr.c (fixup_result_decl): Remove.
9515 * semantics.c (genrtl_named_return_value): Frob the return decl
9516 before calling emit_local_var.
9517 (genrtl_finish_function): Don't call fixup_result_decl.
9518 Always emit the jump to return_label.
9519
92777ce4
NS
95202000-10-06 Nathan Sidwell <nathan@codesourcery.com>
9521
9522 * pt.c (lookup_template_class): Set current access for enum.
9523 (tsubst_enum): Set file & line for enum decl.
5362b086 9524
92777ce4
NS
9525 * spew.c (yylex): Remove unused variable.
9526
63c16fc5
RH
95272000-10-05 Richard Henderson <rth@cygnus.com>
9528
9529 * semantics.c (genrtl_finish_function): Don't init or check
9530 can_reach_end; remove noreturn and return value checks.
9531
d1a458c4
TT
95322000-10-05 Tom Tromey <tromey@cygnus.com>
9533
9534 * init.c (build_java_class_ref): Use `build_static_name' with a
9535 suffix, not a prefix, to build the class object's name.
9536
509fc277
NS
95372000-10-05 Nathan Sidwell <nathan@codesourcery.com>
9538
9539 * cp-tree.h (access_kind): Fix comment typo.
9540 * decl2.c (grokfield): Fix diagnostic typo.
9541 * semantics.c (finish_template_type): Fix comment typo.
9542 (finish_qualified_object_call_expr): Likewise.
9543
ce2e5191
NS
95442000-10-05 Nathan Sidwell <nathan@codesourcery.com>
9545
9546 * pt.c (tsubst_expr, DECL_STMT case): Don't process if
5362b086 9547 tsubsting fails.
ce2e5191 9548
79cc5312
NS
95492000-10-05 Nathan Sidwell <nathan@codesourcery.com>
9550
9551 * spew.c (frob_id): New static function.
9552 (frob_opname): Use it.
9553 (yylex): Use it.
9554
f15b9af9
MM
95552000-10-01 Mark Mitchell <mark@codesourcery.com>
9556
9557 * decl.c (lang_mark_false_label_stack): Remove.
9558 * lex.c (cp_mang_lang_type): Use ggc_alloc_cleared.
5362b086 9559
28e6b1c2
JM
95602000-09-30 Joseph S. Myers <jsm28@cam.ac.uk>
9561
9562 * gxxint.texi: Use @email for formatting email addresses.
9563
99885b3f
GDR
95642000-09-29 Gabriel Dos Reis <gdr@codesourcery.com>
9565
9566 * error.c: Remove direct obstack manipulation. Replace with
9567 output_buffer-based formatting. Adjust calls to removed macros.
9568 (obstack_chunk_alloc, obstack_chunk_free): Remove.
9569 (OB_INIT, OB_PUTC, OB_PUTC2, OB_PUTS, OB_PUTID, OB_PUTCP,
9570 OB_FINISH, OB_PUTI, OB_END_TEMPLATE): Likewise.
9571
c06aa51e
MM
95722000-09-24 Mark Mitchell <mark@codesourcery.com>
9573
9574 * ir.texi: Move to ../c-tree.texi.
9575
99fada40
JM
95762000-09-20 Jason Merrill <jason@redhat.com>
9577
9578 * decl2.c (get_guard): Check DECL_FUNCTION_SCOPE_P.
9579
bb20cc46
AJ
95802000-09-21 Andreas Jaeger <aj@suse.de>
9581
9582 * errfn.c: Move declaration of cp_printer and cp_printers to ...
9583 * cp-tree.h: ... here.
9584
9585 * error.c: Remove declaration of cp_printer.
9586
fab701da
MM
95872000-09-20 Mark Mitchell <mark@codesourcery.com>
9588
9589 * tree.c (mark_local_for_remap_r): Handle CASE_LABELs.
9590
0370fea1
HPN
95912000-09-20 Hans-Peter Nilsson <hp@axis.com>
9592
9593 * except.c: Delete #if 0:d EXCEPTION_SECTION_ASM_OP-default and
9594 users.
9595
78c120b5
MM
95962000-09-18 Mark Mitchell <mark@codesourcery.com>
9597
9598 * decl.c (start_function): Robustify.
9599
3f80e6ac
KG
96002000-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9601
9602 * cp-tree.h (check_function_format): Accept a `status' parameter.
bb20cc46 9603
3f80e6ac
KG
9604 * call.c, typeck.c: Updates calls to `check_function_format'.
9605
fc928afe
GK
96062000-09-17 Geoffrey Keating <geoffk@cygnus.com>
9607
9608 * decl2.c (handle_class_head): Always push some scope even
9609 in the error case.
9610
8f17b5c5
MM
96112000-09-16 Mark Mitchell <mark@codesourcery.com>
9612
9613 * cp-tree.h (struct cp_language_function): Remove
9614 x_scope_stmt_stack and name_declared.
9615 (current_scope_stmt_stack): Remove.
9616 (function_name_declared_p): New macro.
9617 (struct lang_decl_flags): Use c_lang_decl as a base class.
9618 (context): Remove.
9619 (struct lang_decl): Replace saved_tree with context.
9620 (DECL_FRIEND_CONTEXT): Adjust accordingly.
9621 (SET_DECL_FRIEND_CONTEXT): Likewise.
9622 (DECL_VIRTUAL_CONTEXT): Likewise.
9623 (DECL_SAVED_TREE): Remove.
9624 (C_DECLARED_LABEL_FLAG): Likewise.
9625 (cplus_expand_expr_stmt): Don't declare.
9626 (add_decl_stmt): Likewise.
9627 (add_scope_stmt): Likewise.
9628 * decl.c (mark_stmt_tree): Remove.
9629 (case_compare): Likewise.
9630 (finish_case_label): Use c_add_case_label.
9631 (init_decl_processing): Set more language-specific hooks.
9632 (build_enumerator): Fix typo in comment.
9633 (cplus_expand_expr_stmt): Remove.
9634 (mark_lang_function): Use mark_c_language_function.
9635 (lang_mark_tree): Use c_mark_lang_decl.
9636 * decl2.c: Change order of inclusion.
9637 * except.c: Likewise.
9638 * expr.c (cplus_expand_expr): Remove handling of STMT_EXPR. Fall
9639 back on c_expand_expr.
9640 * friend.c: Include expr.h.
9641 * init.c: Change order of inclusion.
9642 * Makefile.in: Update dependencies.
9643 * lex.h (free_lang_decl_chain): Remove.
9644 * optimize.c (maybe_clone_body): Use function_name_declared_p.
9645 * pt.c (build_template_decl): Don't copy DECL_VIRTUAL_CONTEXT if
9646 it doesn't exist.
9647 (instantiate_decl): Use function_name_declared_p.
9648 * semantics.c (lang_expand_expr_stmt): Remove.
9649 (set_current_function_name_declared): Likewise.
9650 (current_function_name_declared): Likewise.
9651 (begin_compound_stmt): Use function_name_declared_p.
9652 (add_decl_stmt): Remove.
9653 (setup_vtbl_ptr): Use function_name_declared_p.
9654 (add_scope_stmt): Remove.
9655 (current_scope_stmt_stack): New function.
9656 (cp_expand_stmt): Don't handle SCOPE_STMTs.
9657 (expand_body): Use function_name_declared_p.
9658 * tree.c (cp_statement_code_p): Don't include SCOPE_STMT.
9659 * typeck.c: Change order of includes.
9660 (convert_sequence): Remove.
bb20cc46 9661
d9dbd9b1
JM
96622000-09-14 Joseph S. Myers <jsm28@cam.ac.uk>
9663
9664 * lex.c (reswords): Add _Complex.
9665
9985f210
RK
9666Thu Sep 14 12:10:45 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9667
9668 * Make-lang.in (cplib2.txt): Depend on cp/Makefile.
9669
f903ebb1
DA
96702000-09-13 J. David Anglin <dave@hiauly1.hia.nrc.ca>
9671
9672 * init.c (begin_init_stmts): Don't use // comments.
9673
f2ae0c45
JM
96742000-09-12 Jason Merrill <jason@redhat.com>
9675
9676 * decl.c (maybe_deduce_size_from_array_init): Set do_default for
9677 all non-extern arrays.
9678
9679 * decl.c (grokdeclarator): Complain about 'friend T' for implicit
9680 typenames, too. Downgrade complaint to pedwarn.
9681 (xref_tag): Warn about surprising behavior of 'friend struct T'.
9682 * decl2.c (handle_class_head): Generate a TYPENAME_TYPE for
9683 'class This::Inherited'.
9684
71ad4a16
MM
96852000-09-12 Mark Mitchell <mark@codesourcery.com>
9686
9687 * decl.c (finish_case_label): Given the LABEL_DECL a
9688 DECL_CONTEXT.
9689
c3e76028
GDR
96902000-09-12 Gabriel Dos Reis <gdr@codesourcery.com>
9691
9692 * error.c (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE,
9693 TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPDEF,
9694 TFF_DECL_SPECIFIERS, TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE,
9695 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION,
9696 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, TFF_SCOPE):
9697 New macros.
9698 (sorry_for_unsupported_tree, print_scope_operator,
9699 print_left_paren, print_right_paren, print_left_bracket,
9700 print_right_bracket, print_whitespace): Likewise.
9701 (aggr_variety): Rename to class_key_or_enum.
9702 (print_type): Rename to print_type_id.
9703 (print_type_specifier_seq, print_simple_type_specifier,
9704 print_elaborated_type_specifier,
9705 print_rest_of_abstract_declarator,
9706 print_parameter_declaration_clause, print_exception_specification,
9707 print_nested_name_specifier, print_template_id,
9708 typedef_original_name, print_template_argument_list_start,
9709 print_template_argument_list_end): New functions.
9710
eb50138b
GDR
97112000-09-11 Gabriel Dos Reis <gdr@codesourcery.com>
9712
a8a05998 9713 * ir.texi: Add more documentation.
eb50138b 9714
f444e36b
MM
97152000-09-11 Mark Mitchell <mark@codesourcery.com>
9716
9717 * cp-tree.h (struct saved_scope): Remove x_function_parms.
9718 (current_function_parms): Don't define.
9719 (struct cp_language_function): Remove parms_stored.
9720 (current_function_just_assigned_this): Don't define.
9721 (current_function_parms_stored): Likewise.
9722 (static_ctors): Declare.
9723 (static_dtors): Likewise.
9724 (SF_EXPAND): Don't define.
9725 (expand_start_early_try_stmts): Remove declaration.
9726 (store_parm_decls): Likewise.
9727 * decl.c (static_ctors): Don't declare.
9728 (static_dtors): Likewise.
9729 (struct binding_level): Remove this_block.
9730 (poplevel): Remove dead code.
9731 (set_block): Likewise.
9732 (mark_binding_level): Don't mark this_block.
9733 (mark_saved_scope): Don't mark x_function_parms.
9734 (init_decl_processing): Don't add current_function_parms as a GC
9735 root.
9736 (check_function_type): Change prototype.
9737 (start_function): Remove RTL-generation code.
9738 (expand_start_early_try_stmts): Remove.
9739 (store_parm_decls): Give it internal linkage. Remove
9740 RTL-generation code.
9741 (finish_function): Remove RTL-generation code.
9742 * decl2.c (static_ctors): Fix formatting.
9743 (static_dtors): Likewise.
9744 * method.c (use_thunk): Don't call store_parm_decls.
9745 (synthesize_method): Likewise.
9746 * optimize.c (maybe_clone_body): Likewise.
9747 * parse.y (fn.def2): Likewise.
9748 (.set_base_init): Likewise.
9749 (nodecls): Likewise.
9750 * pt.c (instantiate_decl): Likewise.
9751 * rtti.c (synthesize_tinfo_fn): Likewise.
9752 * semantics.c (genrtl_try_block): Simplify.
9753 (expand_body): Use genrtl_start_function and
9754 genrtl_finish_function.
9755 (genrtl_start_function): New function.
9756 (genrtl_finish_function): Likewise.
9757
181d2ba0
NS
97582000-09-11 Nathan Sidwell <nathan@codesourcery.com>
9759
9760 * error.c (cp_tree_printer, case 'P'): Append break.
9761
f2d71db6
NS
97622000-09-11 Nathan Sidwell <nathan@codesourcery.com>
9763
9764 * cp-tree.h (frob_opname): Declare.
9765 * parse.y (saved_scopes): New static variable.
9766 (cp_parse_init): Adjust.
9767 (do_id): If lastiddecl is NULL, do do_identifier.
9768 (operator): Save scope information.
aca77bd1 9769 (unoperator): New reduction. Restore scope information.
f2d71db6
NS
9770 (operator_name): Append unoperator. Call frob_opname.
9771 * spew.c (frob_opname): Define.
9772
d8ea8f28
ZW
97732000-09-10 Zack Weinberg <zack@wolery.cumb.org>
9774
9775 * decl.c, rtti.c: Include defaults.h if not already included.
9776 Don't define the *_TYPE_SIZE macros.
9777
56cb9733
MM
97782000-09-09 Mark Mitchell <mark@codesourcery.com>
9779
9780 * cp-tree.h (push_switch): Change prototype.
9781 (check_cp_case_value): Remove declaration.
9782 (decl_constant_value): Likewise.
9783 * decl.c (struct cp_switch): Add switch_stmt and cases.
9784 (case_compare): New function.
9785 (push_switch): Set switch_stmt. Initialize cases.
9786 (pop_switch): Clean up cases.
9787 (define_case_label): Rename to ...
9788 (finish_case_label): ... this. Do semantic analysis for case
9789 labels here.
9790 (start_function): Correct comment.
9791 * decl2.c (check_cp_case_value): Remove.
9792 * expr.c (do_case): Remove.
9793 * pt.c (tsubst_expr): Adjust call to finish_case_label.
9794 * semantics.c (genrtl_do_poplevel): Remove declaration.
9795 (RECHAIN_STMTS): Remove.
9796 (finish_break_stmt): Use build_break_stmt.
9797 (finish_continue_stmt): Use build_continue_stmt.
9798 (finish_switch_cond): Adjust condition here, rater than in
9799 c_expand_start_case.
9800 (finish_case_label): Remove.
9801 * typeck.c (c_expand_return): Remove.
9802 (c_expand_start_case): Likewise.
bb20cc46 9803
990a9693
GDR
98042000-09-07 Gabriel Dos Reis <gdr@codesourcery.com>
9805
9806 * ir.texi: Document type nodes.
9807
ae499cce
MM
98082000-09-06 Mark Mitchell <mark@codesourcery.com>
9809
54f7877c
MM
9810 * cp-tree.h (init_cp_semantics): Declare.
9811 (genrtl_try_block): Don't declare.
9812 (genrtl_handler): Likewise.
9813 (genrtl_catch_block): Likewise.
9814 (genrtl_ctor_stmt): Likewise.
9815 (genrtl_subobject): Likewise.
9816 (genrtl_do_poplevel): Likewise.
9817 (genrtl_named_return_value): Likewise.
9818 * lex.c (init_parse): Call init_cp_semantics.
9819 * semantics.c (genrtl_try_block): Give it internal linkage.
9820 (genrtl_handler): Likewise.
9821 (genrtl_catch_block): Likewise.
9822 (genrtl_ctor_stmt): Likewise.
9823 (genrtl_subobject): Likewise.
9824 (genrtl_do_poplevel): Likewise.
9825 (genrtl_named_return_value): Likewise.
9826 (lang_expand_stmt): Rename to ...
9827 (cp_expand_stmt): ... this. Only handle C++-specific nodes.
9828 (init_cp_semantics): Define.
9829
3a0d3e1e
MM
9830 * decl.c (initialize_local_var): Remove RTL-generating code.
9831 * semantics.c (genrtl_try_block): Fix formatting.
9832
ae499cce
MM
9833 Move statement-tree facilities from C++ to C front-end.
9834 * cp-tree.h (cp_tree_index): Remove CPTI_VOID_ZERO.
9835 (void_zero_node): Remove.
9836 (stmt_tree): Likewise.
9837 (scope_chain): Adjust.
9838 (language_function): Rename to cp_language_function.
9839 (cp_function_chain): Adjust.
9840 (current_stmt_tree): Remove.
9841 (last_tree): Likewise.
9842 (last_expr_type): Likewise.
9843 (struct lang_decl): Adjust.
9844 (STMT_IS_FULL_EXPR_P): Remove.
9845 (add_tree): Remove.
9846 (begin_stmt_tree): Likewise.
9847 (finish_stmt_tree): Likewise.
9848 (walk_tree_fn): Likewise.
9849 (walk_stmt_tree): Likewise.
9850 * class.c (finish_struct): Replace use of add_tree with add_stmt.
9851 * decl.c (mark_stmt_tree): Adjust type.
9852 (init_decl_processing): Don't build void_zero_node.
9853 (initialize_local_var): Adjust usage of current_stmt_tree.
9854 (finish_enum): Use add_stmt, not add_tree.
9855 (save_function_data): Adjust use of language_function.
9856 (finish_constructor_body): Use add_stmt, not add_tree.
9857 (finish_destructor_body): Likewise.
9858 (push_cp_function_context): Adjust use of language_function.
9859 (pop_cp_function_context): Likewise.
9860 (mark_lang_function): Likewise.
9861 (mark_cp_function_context): Likewise.
9862 * init.c (build_aggr_init): Adjust use of current_stmt_tree.
9863 (build_vec_init): Likewise.
9864 * semantics.c (SET_LAST_STMT): Remove.
9865 (RECHAIN_STMTS): Don't use it.
9866 (stmts_are_full_exprs_p): Adjust use of current_stmt_tree.
9867 (current_stmt_tree): Define.
9868 (add_tree): Remove.
9869 (finish_goto_stmt): Use add_stmt, not add_tree.
9870 (finish_expr_stmt): Likewise.
9871 (begin_if_stmt): Likewise.
9872 (finish_then_clause): Likewise.
9873 (begin_while_stmt): Likewise.
9874 (begin_do_stmt): Likewise.
9875 (finish_return_stmt): Likewise.
9876 (begin_for_stmt): Likewise.
9877 (finish_break_stmt): Likewise.
9878 (finish_continue_stmt): Likewise.
9879 (begin_switch_stmt): Likewise.
9880 (finish_case_label): Likewise.
9881 (begin_try_block): Likewise.
9882 (begin_function_try_block): Likewise.
9883 (begin_handler): Likewise.
9884 (begin_catch_block): Likewise.
9885 (begin_compound_stmt): Likewise.
9886 (begin_asm_stmt): Likewise.
9887 (finish_asm_stmt): Likewise.
9888 (finish_label_stmt): Likewise.
9889 (add_decl_stmt): Likewise.
9890 (finish_subobject): Likewise.
9891 (finish_decl_cleanup): Likewise.
9892 (finish_named_return_value): Likewise.
9893 (setup_vtbl_ptr): Likewise.
9894 (add_scope_stmt): Likewise.
9895 (finish_stmt_expr): Likewise.
9896 (prune_unused_decls): Remove.
9897 (begin_stmt_tree): Likewise.
9898 (finish_stmt_tree): Likewise.
9899 (prep_stmt): Adjust use of current_stmt_tree.
9900 (lang_expand_stmt): Likewise.
9901 * tree.c (statement_code_p): Remove.
9902 (cp_statement_code_p): New function.
9903 (walk_stmt_tree): Remove.
9904 (init_tree): Set lang_statement_code_p.
bb20cc46 9905
0e5921e8
ZW
99062000-09-06 Zack Weinberg <zack@wolery.cumb.org>
9907
9908 Integrated preprocessor.
9909
9910 * Make-lang.in, Makefile.in: Remove all references to input.c,
9911 gxx.gperf, and hash.h. Add ../c-lex.o to C_OBJS.
9912 * gxx.gperf, hash.h, input.c: Delete.
9913 * lang-specs.h: Pass -lang-c++ to cc1plus so cpplib is
9914 initialized properly.
9915
9916 * class.c (fixup_pending_inline): Take a tree, not a
9917 struct pending_inline *. All callers changed.
9918 (init_class_processing): Set RID_PUBLIC, RID_PRIVATE,
9919 RID_PROTECTED entries in ridpointers[] array here.
9920 * decl.c (duplicate_decls): Do not refer to struct
9921 pending_inline.
9922 (record_builtin_type, init_decl_processing): Use RID_MAX not
9923 CP_RID_MAX.
9924 (grokdeclarator): Use C_IS_RESERVED_WORD.
9925 * decl2.c (lang_decode_option): Ignore -lang-c++ for sake of
9926 cpplib.
9927 (grok_x_components): Do not inspect pending_inlines chain.
9928
9929 * cp-tree.h (struct lang_identifier): Add rid_code entry.
9930 (C_IS_RESERVED_WORD, C_RID_CODE, C_RID_YYCODE): New.
9931 (flag_no_gnu_keywords, flag_operator_names, rid_to_yy): Declare.
9932 (DEFARG_LENGTH, struct pending_inline, TIME_IDENTIFIER_TIME,
9933 TIME_IDENTIFIER_FILEINFO): Kill.
9934 Update prototypes.
9935 * lex.h: Expunge cp_rid. Rewrite RIDBIT macros to use just a
9936 single 32-bit word.
9937 * parse.y: Call do_pending_inlines unconditionally.
9938 reinit_parse_for_method is now snarf_method. fn.defpen is no
9939 longer necessary. Remove unnecessary <itype> annotation on
9940 SCOPE. Do not refer to end_of_file or struct pending_inline.
9941 * semantics.c (begin_inline_definitions): Call
9942 do_pending_inlines unconditionally.
9943
9944 * lex.c: Remove all code now shared with C front end.
9945 Initialize cpplib properly if USE_CPPLIB. Put reserved words
9946 into the get_identifier table. Rewrite pragma handling to
9947 work with the registry. Move code to save tokens for later
9948 processing to spew.c.
9949
9950 * spew.c: Rewrite everything in terms of token streams instead
9951 of text. Move routines here from lex.c / input.c as
9952 appropriate. GC-mark trees hanging off the pending inlines
9953 chain.
9954
44835fdd
MM
99552000-09-06 Mark Mitchell <mark@codesourcery.com>
9956
9957 * NEWS: Mention that the named return value extension has been
9958 deprecated.
9959 * cp-tree.h (original_result_rtx): Define.
9960 (TREE_REFERENCE_EXPR): Remove.
9961 (DECL_VPARENT): Likewise.
9962 (pushdecl_nonclass_level): Likewise.
9963 (store_return_init): Likewise.
9964 (reinit_lang_specific): Likewise.
9965 (genrtl_named_return_value): Change prototype.
9966 * decl.c (original_result_rtx): Remove.
9967 (cp_finish_decl): Don't build DECL_STMTs for RESULT_DECLs.
9968 Do not generate RTL for local variables here.
9969 (store_return_init): Remove.
9970 * semantics.c (genrtl_named_return_value): Simplify. Fold in
9971 store_return_init.
9972 (finish_named_return_value): Adjust accordingly. Warn that this
9973 extension is deprecated.
9974 (lang_expand_stmt): Adjust call to genrtl_named_return_value.
9975
d7c4edd0
NS
99762000-09-06 Nathan Sidwell <nathan@codesourcery.com>
9977
9978 * pt.c (type_unification_real): Replace switch with if.
9979 (unify): Tsubst non-type parms before comparing.
9980
46e2747c
NS
99812000-09-06 Nathan Sidwell <nathan@codesourcery.com>
9982
9983 * error.c (dump_typename): New function, broken out of ...
9984 (dump_type): ... here. Use it.
9985 * typeck.c (same_type_p): Use cp_tree_equal for TYPENAME_TYPE.
9986
c833d2be
NS
99872000-09-06 Nathan Sidwell <nathan@codesourcery.com>
9988
9989 * init.c (build_offset_ref): Deal with namespace scoped
9990 TEMPLATE_ID_EXPRs.
9991
b1ce3eb2
NS
99922000-09-06 Nathan Sidwell <nathan@codesourcery.com>
9993
9994 * class.c (resolve_address_of_overloaded_function): Add
9995 explanation message.
9996 * decl.c (define_case_label): Reformat explanation.
9997 * decl2.c (finish_static_data_member_decl): Likewise.
9998 (grokfield): Likewise.
9999 * friend.c (do_friend): Likewise.
10000
11f53b6a
ZW
100012000-09-05 Zack Weinberg <zack@wolery.cumb.org>
10002
10003 * tree.c (walk_tree): Expose tail recursion.
10004 (walk_stmt_tree): New function.
10005 * cp-tree.h: Prototype walk_stmt_tree.
10006 * semantics.c (prune_unused_decls): Operate on SCOPE_STMTs not
10007 the BLOCKs directly. If a BLOCK has no variables after
10008 pruning, discard it.
10009 (finish_stmt_tree): Use walk_stmt_tree. No need to save and
10010 restore the line number.
10011
ee94fce6
MM
100122000-09-05 Mark Mitchell <mark@codesourcery.com>
10013
10014 * Makefile.in (CXX_TREE_H): Add dependency on HTAB_H.
10015 (pt.o): Remove dependency on HTAB_H.
10016 * cp-tree.h: Include hashtab.h.
10017 (walk_tree): Change prototype.
10018 (walk_tree_without_duplicates): New function.
10019 * decl.c (check_default_argument): Use it.
10020 * optimize.c (remap_decl): Adjust calls to walk_tree.
10021 (copy_body): Likewise.
10022 (expand_calls_inline): Likewise.
10023 (calls_setjmp_p): Use walk_tree_without_duplicates.
10024 * pt.c: Don't include hashtab.h.
10025 (for_each_template_parm): Use walk_tree_without_duplicates.
10026 * semantics.c (finish-stmt_tree): Likewise.
10027 (expand_body): Likewise.
10028 * tree.c (walk_tree): Add additional parameter.
10029 (walk_tree_without_duplicates): New function.
10030 (count_trees): Use it.
10031 (verify_stmt_tree): Adjust call to walk_tree.
10032 (find_tree): Use walk_tree_without_duplicates.
10033 (no_linkage_check): Likewise.
10034 (break_out_target_exprs): Adjust call to walk_tree.
10035 (cp_unsave): Likewise.
10036
a1281f45
KL
100372000-09-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
10038
10039 * cp-tree.def (BOUND_TEMPLATE_TEMPLATE_PARM): New tree code.
10040 (TEMPLATE_TEMPLATE_PARM): Adjust comment.
10041 * cp-tree.h (TYPE_BINFO): Adjust comment.
10042 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise.
10043 (TEMPLATE_TYPE_PARM_INDEX): Likewise.
10044 (IS_AGGR_TYPE): Use BOUND_TEMPLATE_TEMPLATE_PARM instead.
10045 (TYPE_TEMPLATE_INFO): Likewise.
10046 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): Likewise.
10047 * class.c (push_nested_class): Likewise.
10048 * decl.c (lookup_name_real): Likewise.
10049 (grokdeclarator): Likewise.
10050 (grok_op_properties): Likewise.
10051 (xref_tag): Likewise.
10052 (xref_basetypes): Likewise.
10053 * decl2.c (constructor_name_full): Likewise.
10054 (arg_assoc_template_arg): Add TEMPLATE_TEMPLATE_PARM case.
10055 (arg_assoc_type): Use BOUND_TEMPLATE_TEMPLATE_PARM instead.
10056 * error.c (dump_type): Split TEMPLATE_TEMPLATE_PARM case.
10057 (dump_type_prefix): Add BOUND_TEMPLATE_TEMPLATE_PARM.
10058 (dump_type_suffix): Likewise.
10059 * init.c (is_aggr_type): Use BOUND_TEMPLATE_TEMPLATE_PARM
10060 instead.
10061 (get_aggr_from_typedef): Likewise.
10062 * mangle.c (write_type): Split TEMPLATE_TEMPLATE_PARM case.
10063 (write_expression): Add BOUND_TEMPLATE_TEMPLATE_PARM.
10064 (write_template_parm): Likewise.
10065 (write_template_template_parm): Check tree code instead of
10066 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
0e5921e8 10067 * method.c (build_overload_nested_name): Add
a1281f45
KL
10068 BOUND_TEMPLATE_TEMPLATE_PARM.
10069 (process_overload_item): Split TEMPLATE_TEMPLATE_PARM case.
10070 * parse.y (bad_parm): Add BOUND_TEMPLATE_TEMPLATE_PARM.
10071 * pt.c (convert_template_argument): Check tree code instead of
10072 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
10073 (for_each_template_parm_r): Split TEMPLATE_TEMPLATE_PARM case.
10074 (for_each_template_parm): Adjust comment.
10075 (tsubst): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize.
10076 (tsubst_copy): Add BOUND_TEMPLATE_TEMPLATE_PARM.
10077 (unify): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize. Use
10078 template_args_equal to compare template template parameter cases.
10079 * ptree.c (print_lang_type): Add BOUND_TEMPLATE_TEMPLATE_PARM.
10080 * search.c (lookup_field_1): Use BOUND_TEMPLATE_TEMPLATE_PARM
10081 instead.
10082 * tree.c (copy_template_template_parm): Decide whether to create
10083 a TEMPLATE_TEMPLATE_PARM or BOUND_TEMPLATE_TEMPLATE_PARM node.
10084 (walk_tree): Add BOUND_TEMPLATE_TEMPLATE_PARM.
10085 (copy_tree_r): Likewise.
10086 * typeck.c (comptypes): Likewise. Check tree code instead of
10087 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
10088
c9672d45
ME
100892000-09-04 Mark Elbrecht <snowball3@bigfoot.com>
10090
10091 * decl.c (finish_function): Move the code for handling functions
10092 marked with the constructor and destructor attributes inside the
10093 expand_p block.
10094
67804825
NS
100952000-09-04 Nathan Sidwell <nathan@codesourcery.com>
10096
10097 * init.c (resolve_offset_ref): Deal with TEMPLATE_ID_EXPR.
10098
1bc0793e
NS
100992000-09-04 Nathan Sidwell <nathan@codesourcery.com>
10100
10101 * pt.c (lookup_template_class): Remove abort.
10102 * tree.c (get_type_decl): Allow error_mark_node.
10103
3338663b
NS
101042000-09-04 Nathan Sidwell <nathan@codesourcery.com>
10105
10106 * decl2.c (arg_assoc): Deal with COMPONENT_REFs inside
10107 TEMPLATE_ID_EXPRs.
10108
1b84dc37
MM
101092000-09-03 Mark Mitchell <mark@codesourcery.com>
10110
10111 * operators.def (ALIGNOF_EXPR, MAX_EXPR, MIN_EXPR): Change
c9672d45 10112 new ABI mangling.
1b84dc37 10113
9687f8f4
NS
101142000-09-01 Nathan Sidwell <nathan@codesourcery.com>
10115
10116 * parse.y (named_class_head): Check for TYPENAME_TYPE. Simplify
c9672d45 10117 union tag mismatch error reporting.
9687f8f4 10118
4f8025eb
NS
101192000-09-01 Nathan Sidwell <nathan@codesourcery.com>
10120
c9672d45 10121 * call.c (build_scoped_method_call): Check it is not a namespace.
4f8025eb 10122
495d26d6
JM
101232000-08-30 Jason Merrill <jason@redhat.com>
10124
10125 * cp-tree.h (LOCAL_CLASS_P): Use decl_function_context.
10126
10127 * tree.c (bot_manip): Check TREE_CONSTANT rather than
10128 !TREE_SIDE_EFFECTS. Call break_out_target_exprs and
10129 build_target_expr_with_type for the non-AGGR_INIT_EXPR case.
10130
10131 * decl.c (start_function): Always call make_function_rtl.
10132
7efcf466
ZW
101332000-08-29 Zack Weinberg <zack@wolery.cumb.org>
10134
495d26d6 10135 * semantics.c (prune_unused_decls): New function.
7efcf466
ZW
10136 (finish_stmt_tree): Call it via walk_tree.
10137
63ad61ed
ZW
101382000-08-29 Zack Weinberg <zack@wolery.cumb.org>
10139
10140 * class.c (build_secondary_vtable): Constify a char *.
10141 * decl.c (init_decl_processing): Initialize function_id_node,
10142 pretty_function_id_node, and func_id_node.
10143 * input.c (struct input_source): Constify 'str'.
10144 (feed_input): Constify first argument.
10145 * mangle.c (write_identifier): Constify argument.
10146 * pt.c (mangle_class_name_for_template): Constify argument.
10147
4361b41d
MM
101482000-08-29 Mark Mitchell <mark@codesourcery.com>
10149
10150 * typeck.c (mark_addressable): Remove code that pokes around in
10151 RTL.
10152
881c6935
JM
101532000-08-28 Jason Merrill <jason@redhat.com>
10154
10155 * lex.c (file_name_nondirectory): Move to toplev.c.
10156
10157 * cp-tree.h (LOCAL_CLASS_P): New macro.
10158 * class.c (finish_struct_1): Use it.
10159
f0f33848
AS
101602000-08-27 Alex Samuel <samuel@codesourcery.com>
10161
10162 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Remove unexplained voodoo.
10163 (write_encoding): Pass another argument to write_name.
10164 (write_name): Add ignore_local_scope parameter. Fix handling of
10165 local names.
10166 (write_nested_name): Use write_unqualified_name.
10167 (write_prefix): Likewise. Skip out on FUNCTION_DECLs.
10168 (write_template_prefix): Use write_unqualified_name.
10169 (write_component): Remove.
10170 (write_local_name): Add parameter. Use direct local entity to
10171 discriminator calculation.
0e5921e8 10172 (write_class_enum_type): Pass another argument to write_name.
f0f33848
AS
10173 (write_template_template_arg): Likewise.
10174 (make_guard_variable): Likewise.
0e5921e8 10175
94dfccd1
JM
101762000-08-27 Jason Merrill <jason@redhat.com>
10177
10178 * decl.c (pushdecl): Matching decls for local externs are found in
10179 the current level. Propagate linkage information from previous
10180 declarations.
10181
14fdf4b6
GDR
101822000-08-26 Gabriel Dos Reis <gdr@codesourcery.com>
10183
10184 * ir.texi (Expressions): Fix typo.
10185
b5232c64
GM
101862000-08-25 Greg McGary <greg@mcgary.org>
10187
10188 * tree.c (init_tree): Use ARRAY_SIZE.
10189
22a4158c
GDR
101902000-08-25 Gabriel Dos Reis <gdr@codesourcery.com>
10191
10192 * error.c (cp_tree_printer): Rework.
10193
f22967f3
MM
101942000-08-25 Mark Mitchell <mark@codesourcery.com>
10195
a0c182fe
MM
10196 * Make-lang.in (CXX_LIB2FUNCS): Remove cp-demangle.o and
10197 dyn-string.o.
10198 (CXX_LIB2SRCS): Remove cp-demangle.c and dyn-string.c.
10199 (cp-demangle.o): Remove target.
10200 (dyn-string.o): Likewise.
10201
f22967f3
MM
10202 * decl.c (grokfndecl): Require that `main' return an `int'.
10203 * mangle.c (write_encoding): Don't mangle return types for
10204 conversion functions.
10205
a1066c99
GDR
102062000-08-25 Gabriel Dos Reis <gdr@codesourcery.com>
10207
10208 * error.c (tree_formatting_info): New data type.
10209 (tree_being_formatted): New macro.
10210 (tree_formatting_flags): Likewise.
10211 (put_whitespace): Likewise.
10212 (print_tree_identifier): Likewise.
10213 (print_identifier): Likewise.
10214 (cp_tree_printer, print_function_argument_list, print_declaration,
10215 print_expression, print_function_declaration,
10216 print_function_parameter, print_type, print_cv_qualifier): New
0e5921e8 10217 functions.
a1066c99
GDR
10218 (init_error): Initialize lang_printer.
10219
3f2b640a
JM
102202000-08-24 Jason Merrill <jason@redhat.com>
10221
10222 * typeck.c (build_ptrmemfunc): Just reinterpret if there's no
10223 adjustment necessary.
10224
7ec09bf7
GM
102252000-08-24 Greg McGary <greg@mcgary.org>
10226
10227 * cp-tree.h (MAIN_NAME_P): Remove macro.
10228
2ab99c46
GDR
102292000-08-24 Gabriel Dos Reis <gdr@codesourcery.com>
10230
10231 * error.c (print_instantiation_context): Don't forget to flush the
10232 buffer.
10233
7def1251
JM
102342000-08-23 Jason Merrill <jason@redhat.com>
10235
10236 * typeck.c (build_ptrmemfunc): Save the input pmf.
10237
10238 * method.c (process_modifiers): Use same_type_p.
10239
94350948
MM
102402000-08-23 Mark Mitchell <mark@codesourcery.com>
10241
10242 * cp-tree.h (DECL_CLONED_FUNCTION_P): Check DECL_LANG_SPECIFIC.
10243 * mangle.c (write_function_type): Change prototype.
10244 (write_encoding): Don't mangle return types for
10245 constructors or destructors.
10246 (write_type): Adjust call to write_function_type.
10247 * pt.c (instantiate_template): Instantiate alternate entry points
10248 when instantiating the main function.
0e5921e8 10249
a64e7329
GDR
102502000-08-23 Gabriel Dos Reis <gdr@codesourcery.com>
10251
10252 * error.c (cp_print_error_function): Don't use embedded '\n' in
0e5921e8 10253 output_printf.
a64e7329 10254
a72462a4
GDR
102552000-08-23 Gabriel Dos Reis <gdr@codesourcery.com>
10256
10257 * decl.c (init_decl_processing): Remove bogus initialization.
10258 * error.c (lang_print_error_function): Restore here.
0e5921e8
ZW
10259 (init_error): Initialize print_error_function.
10260
3add6264
TP
102612000-08-22 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
10262
10263 * decl2.c (arg_assoc): Revert my 2000-08-11 change.
10264
cb753e49
GDR
102652000-08-22 Gabriel Dos Reis <gdr@codesourcery.com>
10266
10267 * Makefile.in (error.o): Depends on diagnostic.h
10268
10269 * cp-tree.h (problematic_instantiation_changed,
10270 record_last_problematic_instantiation, current_instantiation,
10271 print_instantiation_context): Declare.
10272 (maybe_print_template_context): Remove.
10273
10274 * decl.c (init_decl_processing): Set print_error_function to NULL.
10275 (lang_print_error_function): Remove, since we're using a new
10276 machinery.
10277
10278 * error.c: #include diagnostic.h
10279 (function_category): New function.
10280 (cp_diagnostic_starter): Likewise.
10281 (cp_diagnostic_finalizer): Likewise.
10282 (cp_print_error_function): Likewise.
10283 (maybe_print_instantiation_context): Likewise.
10284 (print_instantiation_full_context): Likewise.
10285 (print_instantiation_partial_context): Likewise.
10286 (print_instantiation_context): Define.
10287 (init_error): Initialize diagnostic pager and finalizer.
10288
10289 * pt.c (problematic_instantiation_changed): Define.
10290 (record_last_problematic_instantiation): Likewise.
10291 (current_instantiation): Likewise.
10292 (maybe_print_template_context): Remove.
10293 (print_template_context): Likewise.
10294 (current_tinst_level): Make static to reflect Brendan Kehoe's
10295 change of 1995-04-13.
0e5921e8
ZW
10296 (push_tinst_level): Call print_instantiation_context.
10297
05a3d06e 102982000-08-21 Nix <nix@esperi.demon.co.uk>
0e5921e8 10299
05a3d06e
N
10300 * lang-specs.h: Do not process -o or run the assembler if
10301 -fsyntax-only.
10302
93e2382f
JM
103032000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
10304
10305 * decl.c (flag_hosted, flag_noniso_default_format_attributes): New
10306 variables.
10307 * decl2.c (lang_decode_option): Disable gettext attributes for
10308 -ansi.
10309
24805e80
GDR
103102000-08-21 Gabriel Dos Reis <gdr@codesourcery.com>
10311
10312 * lex.c (lang_init_options): Default diagnostic message maximum
10313 length to 80, when line-wrapping.
10314
b485e15b
MM
103152000-08-20 Mark Mitchell <mark@codesourcery.com>
10316
10317 * class.c (build_vtbl_initializer): Clear the entire
10318 vtbl_init_data. Start keeping track of the functions for which we
10319 have created vcall offsets here.
10320 (dfs_build_vcall_offset_vtbl_entries): Remove.
10321 (build_vcall_offset_vtbl_entries): Reimplement.
10322 (add_vcall_offset_vtbl_entries_r): New function.
10323 (add_vcall_offset_vtbl_entries_1): Likewise. Tweak logic for
10324 computing when vcall offsets are necessary.
10325
2ae7bada
NS
103262000-08-18 Nathan Sidwell <nathan@codesourcery.com>
10327
10328 * decl.c (member_function_or_else): Use cp_error ... %T.
10329 (grokdeclarator): Likewise.
10330 (start_method): Likewise.
0e5921e8 10331 * friend.c (make_friend_class): Use cp_pedwarn ... %T.
2ae7bada 10332
7a8b1375
NS
103332000-08-18 Nathan Sidwell <nathan@codesourcery.com>
10334
10335 * decl2.c (grokfield): Set CLASSTYPE_GOT_SEMICOLON on class
0e5921e8 10336 TYPE_DECLs.
7a8b1375 10337
19420d00
NS
103382000-08-18 Nathan Sidwell <nathan@codesourcery.com>
10339
10340 * cp-tree.h (PTRMEM_OK_P): New macro.
10341 (itf_ptrmem_ok): New enumeration value.
10342 * class.c (resolve_address_of_overloaded_function): Add PTRMEM
10343 argument. Diagnose implicit pointer to member.
10344 (instantiate_type): Don't diagnose implicit pointer to member
10345 here. Pass itf_ptrmem_ok if ok. Adjust calls to
10346 resolve_address_of_overloaded_function.
10347 * init.c (build_offset_ref): Set PTRMEM_OK_P.
10348 (resolve_offset_ref): Don't diagnose implicit pointer to member here.
10349 * semantics.c (finish_parenthesized_expr): Clear OFFSET_REFs here.
10350 * typeck.c (build_x_unary_op): Calculate PTRMEM_OK_P.
10351 (build_unary_op): Deal with single non-static member in
10352 microsoft-land.
10353
66081283
NS
103542000-08-18 Nathan Sidwell <nathan@codesourcery.com>
10355
10356 * decl2.c (arg_assoc_type): Cope with TYPENAME_TYPE.
10357
fa40aa12
NS
103582000-08-18 Nathan Sidwell <nathan@codesourcery.com>
10359
10360 * cp-tree.h (enum_name_string): Remove prototype.
10361 (report_case_error): Remove prototype.
10362 * cp/typeck2.c (enum_name_string): Remove.
10363 (report_case_error): Remove.
10364 * error.c (dump_expr): Deal with enum values directly.
10365 Correctly negate integer constant.
10366
d13b34e9
NS
103672000-08-17 Nathan Sidwell <nathan@codesourcery.com>
10368
10369 * inc/cxxabi.h (__cxa_vec_new2, __cxa_vec_new3): Declare.
10370 (__cxa_vec_delete2, __cxa_vec_delete3): Declare.
10371 * vec.cc (__cxa_vec_new2, __cxa_vec_new3): Implement.
10372 (__cxa_vec_delete2, __cxa_vec_delete3): Implement.
10373 (__cxa_vec_new): Use __cxa_vec_new2.
10374 (__cxa_vec_delete): Use __cxa_vec_delete2.
10375
2f1b80af
NS
103762000-08-17 Nathan Sidwell <nathan@codesourcery.com>
10377
10378 * vec.cc (__cxa_vec_new): Set "C" linkage.
10379 (__cxa_vec_ctor): Likewise.
10380 (__cxa_vec_cctor): Likewise.
10381 (__cxa_vec_dtor): Likewise.
10382 (__cxa_vec_delete): Likewise.
10383 * inc/cxxabi.h (__cxa_vec_new): Set "C" linkage.
10384 (__cxa_vec_ctor): Likewise.
10385 (__cxa_vec_cctor): Likewise.
10386 (__cxa_vec_dtor): Likewise.
10387 (__cxa_vec_delete): Likewise.
10388
105d8e1f
NS
103892000-08-17 Nathan Sidwell <nathan@codesourcery.com>
10390
10391 * class.c (instantiate_type): Reinstate local variable
10392 deleted in previous change.
0e5921e8 10393
f1819d9a
NS
10394 * cvt.c (cp_convert_to_pointer): Pass itf_complain, not
10395 itf_no_attributes.
105d8e1f 10396
5e76004e
NS
103972000-08-17 Nathan Sidwell <nathan@codesourcery.com>
10398
10399 * cp-tree.h (instantiate_type_flags): New enumeration.
10400 (instantiate_type): Change parameter.
10401 * class.c (instantiate_type): Adjust prototype. Adjust.
10402 * call.c (standard_conversion): Adjust instantiate_type call.
10403 (reference_binding): Likewise.
10404 (build_op_delete_call): Likewise.
10405 (convert_like_real): Likewise.
10406 * cvt.c (cp_convert_to_pointer): Likewise.
10407 (convert_to_reference): Likewise.
10408 * pt.c (convert_nontype_argument): Likewise.
10409 * typeck.c (build_binary_op): Likewise.
10410 (build_ptrmemfunc): Likewise.
10411 (convert_for_assignment): Likewise.
10412
4b054b80
NS
104132000-08-17 Nathan Sidwell <nathan@codesourcery.com>
10414
10415 * cp-tree.h (CPTR_AGGR_TAG): New global tree node.
10416 (current_aggr): Define.
10417 * decl.c (grokdeclarator): Make sure a friend class is an
10418 elaborated type specifier.
10419 * parse.y (current_aggr): Remove static definition.
10420 (cp_parse_init): Adjust.
10421 (structsp): Clear and restore current_aggr.
10422 (component_decl_list): Clear current_aggr.
0e5921e8 10423
4b054b80
NS
10424 * error.c (dump_type, case TYPENAME_TYPE): Don't emit the
10425 aggregate tag on the typename's context.
0e5921e8 10426
321cba97
NS
10427 * pt.c (tsubst_friend_class): Return error_mark_node, if
10428 parms becomes NULL.
10429 (instantiate_class_template): Ignore error_mark_node friend types.
4b054b80 10430
08aead78
NS
104312000-08-14 Nathan Sidwell <nathan@codesourcery.com>
10432
10433 * cvt.c (warn_ref_binding): New static function, broken out of ...
0e5921e8 10434 (convert_to_reference): ... here. Use it.
08aead78 10435
fa1f3ebc
KL
104362000-08-11 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu>
10437
10438 * parse.y (template_arg): Add rule for template qualified with
10439 global scope.
10440
9845b52b
TP
104412000-08-11 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
10442
10443 * decl2.c (add_function): Reorganize.
10444 (arg_assoc): Do not consider function template decls.
10445
e69c8072
JM
104462000-08-11 Jason Merrill <jason@redhat.com>
10447
10448 * decl.c (lookup_name_real): Don't forget the TYPENAME_TYPE we're
10449 looking inside.
10450
5c1e5476
NS
104512000-08-11 Nathan Sidwell <nathan@codesourcery.com>
10452
10453 * cp-tree.h (resolve_scope_to_name): Remove unused prototype.
10454 (lookup_nested_tag): Likewise.
0e5921e8 10455
5c1e5476
NS
10456 * decl2.c (grokfield): Fix comment to reflect many types of _DECLs
10457 can be produced.
10458
5426aa7f
NS
104592000-08-11 Nathan Sidwell <nathan@codesourcery.com>
10460
10461 * parse.y (named_complex_class_head_sans_basetype): Remove
10462 always true if.
10463
fd037e0d
NS
104642000-08-11 Nathan Sidwell <nathan@codesourcery.com>
10465
10466 * decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Build
10467 explicit TEMPLATE_ID_EXPR args.
10468 (build_expr_from_tree, case CALL_EXPR): Likewise.
10469
73ae5c34
NS
104702000-08-11 Nathan Sidwell <nathan@codesourcery.com>
10471
10472 * decl.c (check_tag_decl): Diagnose typename's which don't
10473 declare anything.
10474
aa54df09
NS
104752000-08-10 Nathan Sidwell <nathan@codesourcery.com>
10476
10477 * init.c (build_aggr_init): Reject bogus array initializers
10478 early.
10479
7e8dad18
NS
104802000-08-09 Nathan Sidwell <nathan@codesourcery.com>
10481
10482 * rtti.c (build_dynamic_cast_1): Set "C" linkage for new abi
10483 runtime.
10484 * cp/tinfo.cc (__dynamic_cast): Likewise.
0e5921e8 10485 * cp/inc/cxxabi.h (__dynamic_cast): Likewise.
7e8dad18 10486
0f586b9b
NS
104872000-08-09 Nathan Sidwell <nathan@codesourcery.com>
10488
10489 * cvt.c (convert_to_pointer_force): Fix error message when
0e5921e8 10490 attempting to cast from ambiguous base.
0f586b9b 10491
08e72a19
JM
104922000-08-08 Jason Merrill <jason@redhat.com>
10493
10494 * pt.c (tsubst_aggr_type): Bail if creating the argvec fails.
10495 (tsubst_template_arg_vector): Likewise.
10496
10497 * decl2.c (build_anon_union_vars): Choose the largest field; don't
10498 assume that one will be as large as the union.
10499
0811ea8f
KH
105002000-08-07 Kazu Hirata <kazu@hxi.com>
10501
10502 * cp-tree.h (CLASSTYPE_HAS_PRIMARY_BASE_P): Fix a comment typo.
10503 * decl.c (pop_labels): Likewise.
10504
f9fcf62b
JO
105052000-08-04 Jeffrey Oldham <oldham@codesourcery.com>
10506
10507 * inc/cxxabi.h (__pbase_type_info): Changed member names to match
10508 specifications.
10509 (__pointer_to_member_type_info): Likewise.
10510 (__base_class_info): Likewise.
10511 (__class_type_info): Likewise.
10512 (__si_class_type_info): Likewise.
10513 (__vmi_class_type_info): Likewise.
10514 * tinfo.cc (__si_class_type_info::__do_find_public_src):
10515 Changed member names to match specifications.
10516 (__vmi_class_type_info::__do_find_public_src): Likewise.
10517 (__si_class_type_info::__do_dyncast): Likewise.
10518 (__vmi_class_type_info::__do_dyncast): Likewise.
10519 (__si_class_type_info::__do_upcast): Likewise.
10520 (__vmi_class_type_info::__do_upcast): Likewise.
10521 * tinfo2.cc (__pbase_type_info::__do_catch): Likewise.
10522 (__pbase_type_info::__pointer_catch): Likewise.
10523 (__pointer_type_info::__pointer_catch): Likewise.
10524 (__pointer_to_member_type_info::__pointer_catch): Likewise.
10525
a36556a8
ZW
105262000-08-04 Zack Weinberg <zack@wolery.cumb.org>
10527
0e5921e8
ZW
10528 * Make-lang.in (cc1plus): Depend on $(BACKEND), not stamp-objlist.
10529 * Makefile.in: Add C_OBJS, BACKEND; delete OBJS, OBJDEPS.
10530 (cc1plus): Link with $(BACKEND) and $(C_OBJS).
a36556a8 10531
452a394b
MM
105322000-08-04 Mark Mitchell <mark@codesourcery.com>
10533
10534 * cp-tree.h (add_method): Change prototype.
10535 * class.c (add_method): Remove FIELDS parameter. Add ERROR_P.
10536 Don't double the size of the method vector in the error case.
10537 (handle_using_decl): Adjust call to add_method.
10538 (add_implicitly_declared_members): Likewise.
10539 (clone_function_decl): Likewise.
10540 * decl2.c (check_classfn): Likewise.
10541 * semantics.c (finish_member_declaration): Likewise.
0e5921e8 10542
b8458e3e
JM
105432000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
10544
10545 * decl.c (flag_isoc94): New variable.
10546
a1bcc528
JM
105472000-08-02 Jason Merrill <jason@redhat.com>
10548
10549 * pt.c (do_type_instantiation): Add complain parm; don't complain
10550 if called recursively.
10551 * cp-tree.h, parse.y: Adjust.
10552
50e60bc3
ZW
105532000-08-02 Zack Weinberg <zack@wolery.cumb.org>
10554
eae51189
ZW
10555 * decl2.c: Silently ignore -Wstrict-prototypes; warn about
10556 -Wno-strict-prototypes.
10557
37620334
ZW
10558 * g++spec.c: Adjust type of second argument to
10559 lang_specific_driver, and update code as necessary.
10560
50e60bc3
ZW
10561 * cp-tree.h: Don't prototype min_precision here.
10562 (my_friendly_assert): Cast expression to void.
10563 * semantics.c (do_poplevel): Initialize scope_stmts.
10564
3f954fc3
MM
105652000-08-02 Mark Mitchell <mark@codesourcery.com>
10566
10567 * cp-tree.h (DECL_NEEDED_P): Tweak.
10568
ab4fa7ed
JM
105692000-07-28 Jason Merrill <jason@redhat.com>
10570
10571 * lang-specs.h: Use %i in rule for .ii files.
10572
4871239e
ZW
105732000-07-31 Zack Weinberg <zack@wolery.cumb.org>
10574
10575 * lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
10576
911a71a7
MM
105772000-07-30 Mark Mitchell <mark@codesourcery.com>
10578
10579 Allow indirect primary bases.
10580 * cp-tree.h (struct lang_type): Remove vfield_parent. Add
10581 primary_base.
10582 (CLASSTYPE_VFIELD_PARENT): Remove.
10583 (CLASSTYPE_PRIMARY_BINFO): Reimplement.
10584 (BINFO_PRIMARY_BINFO): Remove.
10585 (CLASSTYPE_HAS_PRIMARY_BASE_P): Reimplement.
10586 (BINFO_VBASE_PRIMARY_P): Likewise.
10587 (BINFO_PRIMARY_BASE_OF): New macro.
10588 (BINFO_INDIRECT_PRIMARY_P): Likewise.
10589 (get_primary_binfo): New function.
10590 * decl.c (lang_mark_tree): Make lang_type::primary_base.
10591 * class.c (vcall_offset_data_s): Rename to ...
10592 (vtbl_init_data_s): ... this. Rename primary_p to primary_vtbl_p,
10593 and add ctor_vtbl_p.
10594 (get_derived_offset): Use get_primary_binfo.
10595 (dfs_mark_primary_bases): Adjust handling of virtual primary
10596 bases.
10597 (mark_primary_bases): Likewise.
10598 (set_primary_base): Take a binfo, not an integer, as a
10599 representation of the primary base.
10600 (indirect_primary_base_p): Remove.
10601 (determine_primary_base): Adjust for indirect primary bases.
10602 (dfs_find_final_overrider): Fix typo in coment.
10603 (update_vtable_entry_for_fn): Use get_primary_binfo.
10604 (layout_nonempty_base_or_field): Tweak.
10605 (build_base_fields): Adjust for new primary base semantics.
10606 (dfs_propagate_binfo_offsets): Remove.
10607 (propagate_binfo_offsets): Rewrite.
10608 (dfs_set_offset_for_shared_vbases): Remove.
10609 (layout_virtual_bases): Don't use it.
10610 (layout_class_type): Set CLASSTYPE_SIZE correctly under the new
10611 ABI.
10612 (finish_struct_1): Set CLASSTYPE_PRIMARY_BINFO, not
10613 CLASSTYPE_VFIELD_PARENT.
10614 (dfs_get_primary_binfo): New function.
10615 (get_primary_binfo): Likewise.
10616 (dump_class_hierarchy_r): Tweak printing of primary bases.
10617 (build_vtbl_initializer): Fix typo in comments. Use
10618 vtbl_init_data.
10619 (build_vcall_and_vbase_vtbl_entries): Likewise.
10620 (build_vbaes_offset_vtbl_entries): Likewise.
10621 (dfs_build_vcall_offset_vtbl_entries): Adjust setting of
10622 BV_VCALL_INDEX to handle indirect primary bases.
10623 (build_vcall_offset_vtbl_entries): Use vtbl_init_data.
10624 (build_rtti_vtbl_entries): Likewise.
10625 * search.c (get_shared_vbase_if_not_primary): Tweak.
10626 (find_vbase_instance): Likewise.
10627 (binfo_for_vtable): Simplify.
10628 * tree.c (unshare_base_binfos): Clear BINFO_PRIMARY_BASE_OF.
10629 (make_binfo): Make it have 11 entries.
0e5921e8 10630
722bed0f
AS
106312000-07-30 Alex Samuel <samuel@codesourcery.com>
10632
10633 * mangle.c (DECL_TEMPLATE_ID_P): Remove.
10634 (CLASSTYEP_TEMPLATE_ID_P): Check template info, and context when
10635 ascertaining primaryness.
10636 (G): Remove template_args.
10637 (decl_is_template_id): New function.
10638 (write_encoding): Use decl_is_template_id.
10639 (write_name): Likewise. Handle type_decls. Get main variant of
10640 type decls.
10641 (write_nested_name): Likewise.
10642 (write_prefix): Likewise.
10643 (write_template_prefix): Likewise.
10644 (write_special_name_constructor): Remove defunct production from
10645 comment.
10646 (write_bare_function_type): Remove comment about absent parameter.
10647 (write_template_template_arg): Add missing grammar production to
10648 comment.
10649
9076e292
JM
106502000-07-27 Jason Merrill <jason@redhat.com>
10651
10652 * decl.c (duplicate_decls): If common_type produces a non-typedef
10653 type for a typedef, just use the old type.
10654
b2244c65
MM
106552000-07-27 Mark Mitchell <mark@codesourcery.com>
10656
10657 * cp-tree.h (function_depth): Declare.
10658 (verify_stmt_tree): Likewise.
10659 (find_tree): Likewise.
10660 * decl.c (function_depth): Give it external linkage.
10661 * optimize.c (optimize_function): Increment and decrement it.
10662 * tree.c (verify_stmt_tree_r): New function.
10663 (verify_stmt_tree): Likewise.
10664 (find_tree_r): Likewise.
10665 (find_tree): Likewise.
10666
62e3bf54
JM
106672000-07-27 Jason Merrill <jason@redhat.com>
10668
9076e292
JM
10669 * pt.c (for_each_template_parm_r, case RECORD_TYPE): Use
10670 TYPE_PTRMEMFUNC_P.
10671 * cp-tree.h (TYPE_TEMPLATE_INFO): Check for TYPE_LANG_SPECIFIC.
62e3bf54 10672
5a728aca
MM
106732000-07-26 Mark Mitchell <mark@codesourcery.com>
10674
10675 * decl.c (start_cleanup_fn): Mark the function as `inline'.
10676 * decl2.c (get_guard): Call cp_finish_decl, not
10677 rest_of_decl_compilation, for local guards.
10678 * lex.c (do_identifier): Remove unused variable.
10679
6a1fa5f9
ME
10680Wed Jul 26 15:05:51 CEST 2000 Marc Espie <espie@cvs.openbsd.org>
10681
10682 * parse.y: Add missing ';'.
10683
0c10a805
MM
106842000-07-26 Mark Mitchell <mark@codesourcery.com>
10685
10686 * parse.y (empty_parms): Use `()', not `(...)', when in the scope
10687 of `extern "C++"'.
10688
8b27e9ef
NS
106892000-07-25 Nathan Sidwell <nathan@codesourcery.com>
10690
10691 Kill strict_prototype. Backwards compatibility only for
10692 non NO_IMPLICIT_EXTERN_C systems.
10693 * cp-tree.h (flag_strict_prototype): Remove.
10694 (strict_prototype): Remove.
10695 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove.
10696 * decl.c (maybe_push_to_top_level): Adjust.
10697 (pop_from_top_level): Adjust.
10698 (decls_match): Only allow sloppy parm matching for ancient
10699 system headers.
10700 (init_decl_processing): Adjust.
10701 (grokdeclarator): Adjust.
10702 * decl2.c (flag_strict_prototype): Remove.
10703 (strict_prototype): Remove.
10704 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove.
10705 (lang_f_options): Remove "strict-prototype".
10706 (unsupported-options): Add "strict-prototype".
10707 * lex.c (do_identifier): Adjust.
10708 (do_scoped_id): Adjust.
10709 * parse.y (empty_parms): Adjust.
10710 * class.c (push_lang_context): Adjust.
10711 (pop_lang_context): Adjust.
10712 * typeck.c (comp_target_parms): Adjust.
10713
c3783399
NS
107142000-07-25 Nathan Sidwell <nathan@codesourcery.com>
10715
10716 * decl.c (poplevel): Deal with anonymous variables at for scope.
10717 (maybe_inject_for_scope_var): Likewise.
10718
a7023245
ZW
107192000-07-25 Zack Weinberg <zack@wolery.cumb.org>
10720
10721 * decl.c: Remove all signal handling code, now done in toplev.c.
10722
95ee998c
MM
107232000-07-23 Mark Mitchell <mark@codesourcery.com>
10724
10725 * decl.c (make_rtl_for_nonlocal_decl): Rework.
10726
10727 * pt.c (lookup_template_class): Ensure that TYPE_CONTEXT is set
10728 correctly.
10729
1b493b81
ZW
107302000-07-20 Zack Weinberg <zack@wolery.cumb.org>
10731
10732 * cp-tree.h: Use __FUNCTION__ not __PRETTY_FUNCTION__.
10733 Define my_friendly_assert and my_friendly_abort as macros
10734 which may call friendly_abort. Prototype friendly abort, not
10735 my_friendly_abort or my_friendly_assert.
10736 * decl.c (signal_catch): Report the signal caught in the error
10737 message. Call fatal directly.
10738 * typeck2.c (ack, my_friendly_assert): Delete.
10739 (my_friendly_abort): Rename to friendly_abort. Expect file,
10740 line, and function parameters. Report the abort code, then
10741 call fancy_abort. Do not mask an abort if errors have
10742 already occurred.
10743
a306451c
NS
107442000-07-18 Nathan Sidwell <nathan@codesourcery.com>
10745
10746 * typeck.c (comp_target_parms): Remove obsolete parameter.
10747 (comp_target_types): Adjust.
10748
f49fad00
JM
107492000-07-17 Jason Merrill <jason@redhat.com>
10750
10751 * typeck.c (mark_addressable): Never set TREE_USED.
10752 * call.c (build_call): Don't abort on calls to library functions
10753 that have been declared normally.
10754
10755 * typeck.c (build_binary_op): Fix grammar in warning.
10756
10757 * exception.cc (__eh_free): Fix prototype.
10758
10759 * decl2.c (finish_decl_parsing): Handle TEMPLATE_ID_EXPR.
10760
0e5921e8 10761 * decl.c (pushdecl): Handle seeing an OVERLOAD in
f49fad00
JM
10762 IDENTIFIER_NAMESPACE_VALUE.
10763
69690d98
MM
107642000-07-16 Mark Mitchell <mark@codesourcery.com>
10765
10766 * cp-tree.h (THUNK_VCALL_OFFSET): Update documentation.
10767 * method.c (use_thunk): Correct handling of vcall offsets.
10768
bfbbc080
ZW
107692000-07-14 Zack Weinberg <zack@wolery.cumb.org>
10770
10771 * .cvsignore: parse.h and parse.c have no cp- prefix.
10772
83a90717
MM
107732000-07-13 Mark Mitchell <mark@codesourcery.com>
10774
10775 * .cvsignore: New file.
10776
ea414c97
ZW
107772000-07-13 Zack Weinberg <zack@wolery.cumb.org>
10778
10779 * lang-specs.h: Use the new named specs. Remove unnecessary braces.
10780
792abd35
MM
107812000-07-12 Mark Mitchell <mark@codesourcery.com>
10782
10783 * Makefile.in ($(PARSE_H)): Depend directly on parse.y.
10784 * parse.c: Remove.
10785 * parse.h: Likewise.
10786
72a50ab0
MM
107872000-07-11 Mark Mitchell <mark@codesourcery.com>
10788
10789 * class.c (layout_class_type): Add pointers to virtual bases after
10790 base classes under the old ABI.
10791
0dfdeca6
BC
107922000-07-10 Benjamin Chelf <chelf@codesourcery.com>
10793
10794 * semantics.c (finish_for_stmt): Remove call to emit_line_note.
10795 (finish_continue_stmt): Likewise.
10796 (begin_for_stmt): Remove call to note_level_for_for.
10797 (finish_goto_stmt): Change call from build_min_nt
10798 to build_stmt.
10799 (finish_expr_stmt): Likewise.
10800 (begin_if_stmt): Likewise.
10801 (begin_while_stmt): Likewise.
10802 (finish_while_stmt): Likewise.
10803 (finish_return_stmt): Likewise.
10804 (begin_for_stmt): Likewise.
10805 (finish_for_stmt): Likewise.
10806 (finish_break_stmt): Likewise.
10807 (begin_switch_stmt): Likewise.
10808 (finish_case_label): Likewise.
10809 (genrtl_try_block): Likewise.
10810 (begin_try_block): Likewise.
10811 (begin_handler): Likewise.
10812 (begin_compound_stmt): Likewise.
10813 (finish_asm_stmt): Likewise.
10814 (finish_label_stmt): Likewise.
10815 (add_decl_stmt): Likewise.
10816 (finish_subobject): Likewise.
10817 (finish_decl_cleanup): Likewise.
10818 (finish_named_return_value): Likewise.
10819 (setup_vtbl_ptr): Likewise.
10820 (add_scope_stmt): Likewise.
10821 * decl.c (finish_constructor_body): Likewise.
10822 (finish_destructor_body): Likewise.
10823 * optimize.c (copy_body_r): Likewise.
10824 (initialize_inlined_parameters): Likewise.
10825 (declare_return_variable): Likewise.
10826 (expand_call_inline): Likewise.
0e5921e8 10827
f12eef58
JJ
108282000-07-10 Jakub Jelinek <jakub@redhat.com>
10829
10830 * semantics.c (expand_body): Sync interface information
10831 at the end of function body expansion.
10832
2bb5d995
JM
108332000-07-09 Jason Merrill <jason@redhat.com>
10834
10835 * init.c (build_new_1): Bail early if the call to new fails.
10836
0e5921e8 10837 * decl.c (compute_array_index_type): Check specifically for
2bb5d995
JM
10838 an INTEGER_CST, not just TREE_CONSTANT.
10839
0e5921e8 10840 * decl.c (duplicate_decls): Don't call duplicate_decls on
2bb5d995
JM
10841 the DECL_TEMPLATE_RESULT.
10842 (decls_match): Return 0 if the DECL_TEMPLATE_RESULTs have different
10843 codes.
10844
10845 * error.c (dump_template_bindings): Don't crash if we had an
10846 invalid argument list.
10847
10848 * typeck.c (c_expand_start_case): Do narrowing here.
10849 * semantics.c (finish_switch_cond): Not here.
10850
108512000-07-09 Hidvegi Zoli <hzoli@austin.ibm.com>
10852
10853 * parse.y (asm_clobbers): Do string concatenation.
10854
089acd57
MM
108552000-07-09 Mark Mitchell <mark@codesourcery.com>
10856
10857 * decl.c (pushtag): Don't put local classes in template functions
10858 on the local_classes list.
10859
108602000-07-04 Scott Snyder <snyder@fnal.gov>
10861
10862 * decl2.c (get_guard): Add missing return for old ABI local
10863 variable case.
10864
7b019c19
MM
108652000-07-09 Mark Mitchell <mark@codesourcery.com>
10866
10867 * cp-tree.h (char_type_p): New function.
10868 * decl.c (init_decl_processing): Don't initialize
10869 signed_wchar_type_node or unsigned_wchar_type_node.
10870 (complete_array_type): Handle brace-enclosed string-constants.
10871 * rtti.c (emit_support_tinfos): Remove #if 0'd code.
10872 * tree.c (char_type_p): New function.
10873 * typeck2.c (digest_init): Use char_type_p.
10874
a5f1c5f8
NS
108752000-07-06 Nathan Sidwell <nathan@codesourcery.com>
10876
10877 * pt.c (tsubst): Don't layout type, if it's error_mark.
10878
84e5ca0f
NS
108792000-07-06 Nathan Sidwell <nathan@codesourcery.com>
10880
10881 * pt.c (instantiate_pending_templates): Reset template level.
10882
ab785305
JM
108832000-07-05 Jason Merrill <jason@redhat.com>
10884
10885 * call.c (joust): Don't complain about `operator char *()' beating
10886 `operator const char *() const'.
10887
90418208
JM
108882000-07-04 scott snyder <snyder@fnal.gov>
10889 Jason Merrill <jason@redhat.com>
10890
0e5921e8 10891 * repo.c (repo_get_id): Handle the case where a class with virtual
90418208
JM
10892 bases has a null TYPE_BINFO_VTABLE.
10893
108942000-07-04 Kevin Buhr <buhr@stat.wisc.edu>
10895 Jason Merrill <jason@redhat.com>
10896
10897 * parse.y (member_init): Just pass in the type.
10898 * init.c (expand_member_init): Handle getting a type.
10899
10900