]> gcc.gnu.org Git - gcc.git/blame - gcc/cp/ChangeLog
m68hc11.md ("*ashlsi3"): Avoid saving y if we know it is dead.
[gcc.git] / gcc / cp / ChangeLog
CommitLineData
98c07d7b
JM
12002-07-05 Jason Merrill <jason@redhat.com>
2
3 PR optimization/7145
4 * tree.c (cp_copy_res_decl_for_inlining): Also copy DECL_INITIAL.
5
c6f553d1
NS
62002-07-05 Nathan Sidwell <nathan@codesourcery.com>
7
8 Repair damage on weak-impared targets caused by my previous patch.
9 * cp-tree.h (import_export_tinfo): Add parameter.
10 * decl2.c (import_export_tinfo): Add parameter, post adjust
11 DECL_COMDAT.
12 * rtti.c (emit_tinfo_decl): DECL_COMDAT is (nearly) always setup by
13 import_export_tinfo.
14
b2153b98
KL
152002-07-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
16
17 PR c++/6944
18 * init.c (build_aggr_init): Remove qualifiers of init before calling
19 build_vec_init.
20 (build_vec_init): Flatten multi-dimensional array during cleanup.
21 (build_vec_delete_1): Abort if the type of each element is array.
22
492ff760
GS
232002-07-03 Graham Stott <graham.stott@btinternet.com>
24
25 * pt.c (instantiate_class_template): Fix typo.
26
04c4491d
KL
272002-07-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
28
06728f70
KL
29 * typeck2.c (cxx_incomplete_type_diagnostic): Fix typo caused
30 by CVS conflict in my last patch.
04c4491d 31
17f29637
KL
322002-07-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
33
34 PR c++/6716
35 * pt.c (can_complete_type_without_circularity): New function.
36 (instantiate_class_template): Use it.
06728f70
KL
37 * typeck2.c (cxx_incomplete_type_diagnostic): Improve error
38 message due to incomplete fields.
17f29637 39
5d69ba1f
MM
402002-07-01 Mark Mitchell <mark@codesourcery.com>
41
42 PR c++/7112
43 * mangle.c (write_expression): Add mangling for sizeof when
44 applied to a type.
45 * operators.def: Remove stale comment.
46
d689a8f1
NS
472002-06-30 Nathan Sidwell <nathan@codesourcery.com>
48
49 * cp-tree.h (CPTI_TINFO_DECL_TYPE): Replace with ...
50 (CPTI_TYPE_INFO_PTR_TYPE): ... this.
51 (tinfo_decl_type): Replace with ...
52 (type_info_ptr_type): ... this.
53 (import_export_tinfo): Declare.
54 (tinfo_decl_p): Rename to ...
55 (unemitted_tinfo_decl_p): ... this.
56 * decl2.c (import_export_decl): Break out tinfo handling into ...
57 (import_export_tinfo): ... here. New function.
58 (finish_file): Adjust.
59 * rtti.c (TINFO_REAL_NAME): New macro.
60 (init_rtti_processing): Create the tinfo types.
61 (get_tinfo_decl_dynamic): Use type_info_ptr_type, get_tinfo_ptr.
62 (get_tinfo_decl): Adjust.
63 (get_tinfo_ptr): New function.
64 (get_type_id): Use it.
65 (tinfo_base_init): Create vtable decl here, if it doesn't exist.
66 (ptr_initializer): Use get_tinfo_ptr.
67 (ptm_initializer): Likewise.
68 (synthesize_tinfo_var): Break into ...
69 (get_pseudo_ti_init): ... this. Just create the initializer.
70 (get_pseudo_ti_desc): .. and this.
71 (create_real_tinfo_var): Remove.
72 (create_pseudo_type_info): Don't create the vtable decl here.
73 (get_vmi_pseudo_type_info): Remove.
74 (create_tinfo_types): Adjust.
75 (tinfo_decl_p): Rename to ...
76 (unemitted_tinfo_decl_p): ... here. Adjust.
77 (emit_tinfo_decl): Adjust. Create the initializer.
78
5ce49b4b
MM
792002-06-27 Mark Mitchell <mark@codesourcery.com>
80
81 PR c++/6695
82 * pt.c (tsubst_friend_class): Substitute into the context of the
83 friend before using it.
84
88e5899c
MM
852002-06-26 Mark Mitchell <mark@codesourcery.com>
86
87 * cp-tree.h (xref_tag): Change prototype.
88 (handle_class_head): Likewise.
89 (build_x_component_ref): Likewise.
90 * decl.c (cxx_init_decl_processing): Adjust call to xref_tag.
91 (xref_tag): Take attributes as a separate parameter.
92 (xref_tag_from_type): Adjust call to xref_tag.
93 * decl2.c (build_expr_from_tree): Adjust call to
94 build_x_component_ref.
95 (handle_class_head): Take attributes as a separate parameter.
96 * parse.y (parse_xref_tag): New function.
97 (parse_handle_class_head): Likewise.
98 (primary): Use parse_xref_tag.
99 (class_head_decl): Use parse_handle_class_head.
100 (class_head_defn): Likewise.
101 * rtti.c (init_rtti_processing): Adjust call to xref_tag.
102 (build_dynamic_cast_1): Likewise.
103 (create_pseudo_type_info): Likewise.
104 (emit_support_tinfos): Likewise.
105 * typeck.c (build_object_ref): Adjust call to
106 build_x_component_ref.
107 (build_x_component_ref): Remove protect parameter.
108
da15dae6
MM
1092002-06-25 Mark Mitchell <mark@codesourcery.com>
110
111 * call.c (build_op_delete_call): Use BASELINK_FUNCTIONS.
112 * class.c (handle_using_decl): Likewise.
113 (instantiate_type): Likewise.
114 * cp-tree.h (BASELINK_FUNCTIONS): New macro.
115 (xref_basetypes): Change prototype.
116 (begin_mem_initializers): New function.
117 (get_overloaded_fn): Likewise.
118 * decl.c (xref_basetypes): Simplify.
119 * error.c (dump_expr): Use BASELINK_FUNCTIONS.
120 * init.c (build_offset_ref): Likewise.
121 * parse.y (base_init): Use begin_mem_initializers().
122 (structsp): Adjust call to xref_basetypes.
123 * pt.c (determine_specialization): Use BASELINK_FUNCTIONS.
124 (instantiate_class_template): Adjust call to xref_basetypes.
125 * semantics.c (begin_mem_initializers): New function.
126 * tree.c (is_overloaded_fn): Use BASELINK_FUNCTIONS.
127 (really_overlaoded_fn): Likewise.
128 (get_overloaded_fn): New function.'
129 (get_first_fn): USe BASELINK_FUNCTIONS.
130
5f261ba9
MM
1312002-06-24 Mark Mitchell <mark@codesourcery.com>
132
133 * cp-tree.h (SCALAR_TYPE_P): New macro.
134 (check_for_out_of_scope_variable): New function.
135 (at_class_scope_p): Likewise.
136 (finish_fname): Likewise.
137 * class.c (finish_struct): Use at_function_scope_p.
138 * decl.c (check_for_out_of_scope_variable): New function, split
139 out from do_identifier.
140 (finish_enum): Use at_function_scope_p.
141 * lex.c (do_identifier): Use check_for_out_of_scope_variable.
142 * parse.y (VAR_FUNC_NAME): Give it <ttype>. Use finish_fname.
143 (primary): Use at_function_scope_p.
144 * search.c (at_class_scope_p): New function.
145 * semantics.c (finish_fname): Likewise.
146 (check_multiple_declarators): Use at_function_scope_p.
147
80b1331c
MM
1482002-06-23 Mark Mitchell <mark@codesourcery.com>
149
150 * parse.y (parse_scoped_id): New function.
151 (primary): Use it.
152 * cp-tree.h (do_scoped_id): Adjust declaration.
153 * lex.c (do_scoped_id): Remove call to yylex.
154 * decl2.c (build_expr_from_tree): Adjust use of do_scoped_id.
155 * typeck2.c (add_exception_specifier): Use tree_cons, rather than
156 expanding it inline.
157
08c7ae5a
MT
1582002-06-23 Matt Thomas <matt@3am-software.com>
159
160 * decl.c (finish_function): Change "#ifdef VMS_TARGET" to
161 "#if VMS_TARGET".
162
eb6b51b9
KG
1632002-06-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
164
165 * mangle.c (integer_type_codes): Const-ify.
166
aa8dea09
RH
1672002-06-20 Richard Henderson <rth@redhat.com>
168
169 PR c++/6747
170 * typeck.c (mark_addressable): Don't test TREE_ADDRESSABLE early.
171 Call put_var_into_stack.
172
62c71f4b
KG
1732002-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
174
175 * spew.c (remove_last_token): Use ARRAY_SIZE in lieu of explicit
176 array size calculation.
177
aa16c0fa
KL
1782002-06-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
179
180 PR c++/6892
181 * pt.c (tsubst_expr): Handle FILE_STMT.
182
342cea95
KL
1832002-06-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
184
185 PR c++/6723
186 * pt.c (lookup_template_class): Don't build complete argument of
187 BOUND_TEMPLATE_TEMPLATE_PARM if appeared as a default template
188 argument.
189
84d901be
AD
1902002-06-19 Akim Demaille <akim@epita.fr>
191
192 * parse.y (TYPENAME): Rename as tTYPENAME to avoid the clash with
193 decl.h's TYPENAME.
194 * spew.c, lex.c: Adjust.
195 * parse.y (explicit_instantiation): Add empty action to override
196 the default $$ = $1 where it introduces a type clash.
197
83b14b88
JM
1982002-06-14 Jason Merrill <jason@redhat.com>
199
18ba380b
JM
200 * semantics.c (begin_for_stmt): Push the 'for' scope before
201 adding the FOR_STMT.
202
83b14b88
JM
203 C++ ABI changes.
204 * class.c (build_base_field): Set DECL_PACKED.
205 (layout_class_type): Don't use tail padding of PODs.
206 * mangle.c (write_unqualified_name): Fix template conversion op
207 mangling.
208
fd852454
RH
2092002-06-16 Richard Henderson <rth@redhat.com>
210
211 PR opt/6793
212 * tree.c (cp_cannot_inline_tree_fn): Don't short-circuit test
213 after template instantiation.
214
750491fc
RH
2152002-06-16 Richard Henderson <rth@redhat.com>
216
217 * cp-tree.h, decl2.c (flag_ms_extensions): Move to c-common.
218
f7d3c5f0
GDR
2192002-06-15 Gabriel Dos Reis <gdr@codesourcery.com>
220
221 * cp-tree.h (compiler_error): Remove declaration.
222 * lex.c (compiler_error): Remove definition.
223
893a047c
SE
2242002-06-14 Steve Ellcey <sje@cup.hp.com>
225
226 * g++spec.c (LIBUNWIND): New.
227 (lang_specific_driver): Add it if USE_UNWIND_EXCEPTIONS is set.
228
a6f5e048
RH
2292002-06-13 Jessica Han <jessica@cup.hp.com>
230
231 * class.c (build_vtable): Use TARGET_VTABLE_ENTRY_ALIGN.
232 (build_vtbl_initializer): Honor TARGET_VTABLE_DATA_ENTRY_DISTANCE.
233 (build_vbase_offset_vtbl_entries): Likewise.
234 * rtti.c (build_headof): Likewise.
235 (get_tinfo_decl_dynamic): Likewise.
236 (create_pseudo_type_info): Likewise.
237
e4dadd2a
SS
2382002-06-12 Stan Shebs <shebs@apple.com>
239
240 * mpw-config.in: Remove file, no longer used.
241 * mpw-make.sed: Ditto.
242
09e77dee
ZW
2432002-06-07 Zack Weinberg <zack@codesourcery.com>
244
245 * decl2.c: Update call to cpp_handle_option.
246
4bafaa6f
L
2472002-06-07 H.J. Lu (hjl@gnu.org)
248
249 * decl2.c (flag_use_cxa_atexit): Set to DEFAULT_USE_CXA_ATEXIT.
250
3cb8660c
GDR
2512002-06-06 Gabriel Dos Reis <gdr@codesourcery.com>
252
253 * error.c (cp_error_at): Fix typo.
254
47b69537
GDR
2552002-06-04 Gabriel Dos Reis <gdr@codesourcery.com>
256
257 * error.c (cp_diagnostic_starter): Adjust call.
258 (maybe_print_instantiation_context): Change prototype to take a
259 'diagnostic_info *'.
260 (print_instantiation_full_context): Likewise.
261 (print_instantiation_partial_context): Likewise.
262 (cp_diagnostic_starter): Likewise.
263 (cp_diagnostic_finalizer): Likewise.
264 (cp_print_error_function): Likewise.
265 (cp_printer): Take a secondary parameter as a 'text_info *'.
266 Remove output_state savings. Adjust calls.
267
e2500fed
GK
2682002-06-03 Geoffrey Keating <geoffk@redhat.com>
269
270 * pt.c (inline_parm_levels): Mark for GC.
271
272 * mangle.c (start_mangling): Allocate G.substitutions here...
273 (init_mangle): ... rather than here.
274 (finish_mangling): Clear the varray pointer when done with it.
84d901be
AD
275 * spew.c (yylexstring): Don't use VARRAY_FREE.
276 * search.c (bfs_walk): Don't use VARRAY_FREE.
e2500fed
GK
277 * decl2.c (pending_statics): Use gengtype to mark.
278 (deferred_fns): Likewise.
279 (ssdf_decls): Likewise.
280 (init_decl2): Delete.
281 * decl.c (pop_from_top_level): Don't use VARRAY_FREE.
282 (cxx_init_decl_processing): Don't call init_decl2.
283 (cxx_pop_function_context): Don't use VARRAY_FREE.
284 * cp-tree.h (struct saved_scope): No need for special marking
285 of varrays.
286 (struct language_function): Likewise.
287 (local_classes): Use gengtype to mark.
288 (init_decl2): Delete prototype.
289 * class.c (init_class_processing): Don't use
290 ggc_add_tree_varray_root.
291 (build_vtbl_initializer): Don't use VARRAY_FREE.
292
293 * decl.c (typename_compare): Don't use same_type_p.
294
295 * decl.c: Include hashtab.h instead of hash.h.
296 (typename_hash): Update to use htab_h.
297 (typename_compare): Likewise.
298 (typename_htab): Use gengtype to mark.
299 (build_typename_type): Update to use htab_h.
300 * Make-lang.in (cp/decl.o): Use HASHTAB_H instead of hash.h.
301
302 * Make-lang.in (gt-cp-tree.h): New rule.
303 (cp/tree.o): Depend on gt-cp-tree.h.
304 * config-lang.in (gtfiles): Add cp/tree.c.
305 * tree.c: Include gt-cp-tree.h.
306 (list_hash_table): Use gengtype to mark.
307 (init_tree): Use gengtype to mark trees.
308
309 * Make-lang.in (cp/decl.o): Add debug.h dependency.
310 * call.c (struct z_candidate): Use gengtype.
311 (USER_CONV_CAND): Use WRAPPER_ZC.
312 (convert_class_to_reference): Use build_zc_wrapper.
313 (build_type_conversion_1): Likewise.
314 (build_over_call): Use WRAPPER_ZC.
315 (add_warning): Use build_zc_wrapper.
316 * cp-lang.c (LANG_HOOKS_MARK_TREE): Delete.
317 * cp-tree.h (struct lang_identifier): Use gengtype.
318 (struct template_parm_index_s): Likewise.
319 (struct ptrmem_cst): Likewise.
320 (struct tree_binding): Likewise.
321 (struct tree_overload): Likewise.
322 (struct tree_srcloc): Likewise.
323 (struct tree_wrapper): Likewise. Also modify to have a pointer
324 to struct z_candidate rather than void.
325 (enum cp_tree_node_structure_enum): New.
326 (union lang_tree_node): New.
327 (cxx_mark_tree): Delete prototype.
328 (cp_tree_node_structure): New prototype.
329 (build_ptr_wrapper): Delete prototype.
330 (build_int_wrapper): Delete prototype.
331 (build_zc_wrapper): New prototype.
332 * decl.c: Include debug.h
333 (cxx_mark_tree): Delete.
334 (cp_tree_node_structure): New.
335 * tree.c (build_ptr_wrapper): Delete.
336 (build_int_wrapper): Delete.
337 (build_zc_wrapper): New.
338
339 * cp-tree.h [! ENABLE_TREE_CHECKING] (LANG_TYPE_PTRMEM_CHECK):
340 Correct typo. Patch from k_fukui@highway.ne.jp.
341
342 * semantics.c (current_stmt_tree): Update for change to
343 struct language_function.
344 (finish_mem_initializers): Likewise.
345 * decl.c (cxx_init_decl_processing): Don't set mark_lang_status.
346 * cp-tree.h (struct language_function): Rename from
347 cp_language_function. Change all uses.
348 (cp_function_chain): Don't need to cast.
349
350 * class.c (duplicate_tag_error): Reset discriminator.
351 (check_bases_and_members): Update for data structure changes.
352 * cp-tree.h (struct lang_id2): Use gengtype.
353 (flagged_type_tree): Likewise.
354 (SET_LANG_ID): Use GGC on struct lang_id2.
355 (struct cp_language_function): Use gengtype. Remove field
356 'x_vcalls_possible_p'.
357 (current_vcalls_possible_p): Delete.
358 (struct lang_type_header): New.
359 (struct lang_type_class): Rename from struct lang_type. Include
360 struct lang_type_header.
361 (struct lang_type_ptrmem): New.
362 (struct lang_type): New.
363 (LANG_TYPE_CLASS_CHECK): New. Use it in all the appropriate macros.
364 (LANG_TYPE_PTRMEM_CHECK): New. Use it in all the appropriate macros.
365 (TYPE_SET_PTRMEMFUNC_TYPE): Set discriminator, update for changes.
366 (struct lang_decl_flags): Use gengtype. Add discriminators.
367 (struct lang_decl): Use gengtype. Add and use discriminators.
368 Update the macros that reference moved fields.
369 (LANG_DECL_U2_CHECK): New function. Use it when appropriate.
370 (SET_DECL_THUNK_P): Set discriminator too.
371 (clear_inline_text_obstack): Delete prototype.
372 (finish_inline_definitions): Delete prototype.
373 (mark_pending_inlines): Delete prototype.
374 (lang_check_failed): New prototype.
375 * decl.c (struct named_label_use_list): Use gengtype.
376 (struct named_label_list): Likewise.
377 (mark_binding_level): Delete.
378 (mark_named_label_lists): Delete.
379 (push_local_name): Set discriminator on DECL_LANG_SPECIFIC.
380 (cxx_init_decl_processing): Use generated marker routine.
381 (begin_destructor_body): Delete dead set to
382 current_vcalls_possible_p.
383 (mark_lang_function): Delete.
384 (mark_cp_function_context): Delete.
385 (lang_mark_tree): Use generated marker routines.
386 * decl2.c (start_objects): Set discriminator when setting
387 GLOBAL_INIT_PRIORITY.
388 * lex.c (retrofit_lang_decl): Set discriminators.
389 (copy_lang_type): Update for changes to lang_type structure.
390 (cp_make_lang_type): Set discriminator.
391 * parse.y: Use gengtype on YYLVAL. Don't use dots in identifiers.
392 * search.c: Include ggc.h.
393 * semantics.c (anon_aggr_type_p): Use the macro, don't hand-code it.
394 (finish_inline_definitions): Delete.
395 * spew.c (struct token): Use gengtype.
396 (struct token_chunk): New.
397 (struct unparsed_text): Use gengtype. Store tokens in chunks.
398 (struct feed): Use gengtype.
399 (feed_obstack): Delete.
400 (feed): Mark as GC root.
401 (pending_inlines): Mark as GC root.
402 (pending_inlines_tail): Likewise.
403 (processing_these_inlines): Likewise.
404 (token_obstack): Make static.
405 (first_token): Likewise.
406 (init_spew): Don't initialise deleted things; use gengtype for roots.
407 (clear_inline_text_obstack): Delete.
408 (feed_input): Use GC for struct feed. Update for changes to
409 struct unparsed_text.
410 (mark_pending_inlines): Delete.
411 (next_token): Rename from add_token. Change all callers. Update
412 for changes to struct unparsed_text.
413 (space_for_token): New.
414 (remove_last_token): New.
415 (alloc_unparsed_text): New.
416 (snarf_block): Take an unparsed_text. Update for changes to struct
417 unparsed_text.
418 (snarf_method): Update for changes to struct unparsed_text.
419 (snarf_defarg): Update for changes to struct unparsed_text.
420 * tree.c (lang_check_failed): New.
421
422 * Make-lang.in (gt-cp-call.h gt-cp-decl2.h gt-cp-parse.h
423 gt-cp-pt.h gt-cp-repo.h gt-cp-spew.h): New rules.
424 (cp/spew.o): Add dependency on gt-<filename>.h.
425 (cp/decl2.o): Add dependency on gt-<filename>.h.
426 (cp/call.o): Add dependency on gt-<filename>.h.
427 (cp/pt.o): Add dependency on gt-<filename>.h.
428 (cp/repo.o): Add dependency on gt-<filename>.h.
429 (cp/parse.o): Add dependency on gt-<filename>.h.
430 * call.c: Use gengtype for roots.
431 * config-lang.in (gtfiles): Add cp-tree.h decl.h lex.h call.c
432 decl2.c parse.y pt.c repo.c spew.c.
433 * cp-tree.h: Use gengtype for roots.
434 (struct saved_scope): Use GGC, gengtype.
435 (cp_parse_init): Delete prototype.
436 (init_pt): Delete prototype.
437 * decl.c: Use gengtype for roots.
438 (mark_saved_scope): Delete.
439 (cxx_init_decl_processing): Don't call deleted initilisation
440 routines.
441 (signed_size_zero_node): Delete, unused.
442 * decl.h: Use gengtype for roots.
443 * decl2.c: Use gengtype for roots.
444 * lex.h: Use gengtype for roots.
445 * parse.y: Use gengtype for roots.
446 (cp_parse_init): Delete.
447 * pt.c: Use gengtype for roots.
448 (init_pt): Delete.
449 * repo.c: Use gengtype for roots.
450 * spew.c: Use gengtype for roots.
451
452 * Make-lang.in: Allow for filename changes. Add gtype-cp.h.
453 (cp/decl.o): Add dependency on gtype-cp.h.
454 * decl.c: Remove use of add_deletable_root, use GTY marker instead.
455 Include gtype-cp.h. Allow for filename changes.
456
457 * Make-lang.in (cp/gt-decl.h): Generate using gengtype.
458 (cp/decl.o): Add cp/gt-decl.h dependency.
459 * config-lang.in (gtfiles): New.
460 * tree.h: Rename struct binding_level to struct cp_binding_level.
461 * decl.c: Rename struct binding_level to struct cp_binding_level.
462 Include cp/gt-decl.h.
463 (struct cp_binding_level): Use gengtype.
464 (make_binding_level): Use GGC on struct cp_binding_level.
465 (mark_binding_level): Use gt_ggc_m_cp_binding_level.
466 (cxx_init_decl_processing): Mark free_binding_level as
467 deletable.
468
469 * decl.c (mark_cp_function_context): Update calling sequence.
470
471 * decl.c (start_function): Don't free 'struct
472 cp_language_function'.
473 (pop_cp_function_context): Likewise.
474 (save_function_data): Allocate it using GC.
475 * semantics.c (genrtl_start_function): Don't free 'struct
476 cp_language_function'.
477
8b968bd1
MW
4782002-05-31 Matthew Woodcraft <mattheww@chiark.greenend.org.uk>
479
480 * lang-specs.h: Use cpp_debug_options.
481
11ad4784
ZW
4822002-05-28 Zack Weinberg <zack@codesourcery.com>
483
484 * mangle.c, tree.c: Include real.h.
485 * Make-lang.in: Update dependency lists.
486
81a75f0f
NB
4872002-05-25 Neil Booth <neil@daikokuya.demon.co.uk>
488
489 * lex.c: Don't include c-lex.h.
490 * parse.y, spew.c: Don't include c-lex.h; include c-pragma.h.
491
a97d1398
NB
4922002-05-23 Neil Booth <neil@daikokuya.demon.co.uk>
493
494 * spew.c (yyungetc, snarf_block): Remove indent_level handling.
495
6f001fdf
RH
4962002-05-22 Richard Henderson <rth@redhat.com>
497
498 * decl.c (obscure_complex_init): Check for VAR_DECL
499 before using DECL_THREAD_LOCAL.
500
7a1f3f5f
RH
5012002-05-22 Richard Henderson <rth@redhat.com>
502
503 * decl.c (check_tag_decl): Handle RID_THREAD.
504 (obscure_complex_init): Reject run-time init of tls.
505 (grokvardecl, grokdeclarator): Handle RID_THREAD.
506 * lex.c (reswords): Add __thread.
507 (rid_to_yy): Map RID_THREAD to SCSPEC.
508
e5f3b786
NB
5092002-05-22 Neil Booth <neil@daikokuya.demon.co.uk>
510
511 * cp-lang.c (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
512 * cp-tree.h (cxx_post_options): Kill.
513 * cp-lex.c (cxx_post_options): Kill.
514
3d78f2e9
RH
5152002-05-21 Richard Henderson <rth@redhat.com>
516
517 * lex.c (rid_to_yy): Add RID_THREAD.
518
c8a3d889
AO
5192002-05-21 Alexandre Oliva <aoliva@redhat.com>
520
521 * init.c (build_vec_init): Test for trivial copy-assignment when
522 copy-assigning arrays.
523
500abaa8
AJ
5242002-05-20 Andreas Jaeger <aj@suse.de>
525
526 * init.c (build_default_init): Remove unused variable.
527
ecc42c14
AO
5282002-05-20 Alexandre Oliva <aoliva@redhat.com>
529
530 * call.c (any_strictly_viable): New.
531 (build_new_op): Use it for COMPOUND_EXPR and ADDR_EXPRs.
532
4e664ef1
KL
5332002-05-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
534
535 * error.c (dump_type) [TYPEOF_TYPE]: Fix parenthesis printing.
536
07782718
KL
5372002-05-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
538
539 PR c++/186, DR 259
540 * pt.c (do_decl_instantiation): Don't complain explicit
541 instantiation after explicit specialization.
542 (do_type_instantiation): Likewise.
543
23b4deba
AO
5442002-05-19 Alexandre Oliva <aoliva@redhat.com>
545
546 * cp-tree.h (complete_type_or_diagnostic): Changed prototype,
547 renamed from...
548 (complete_type_or_else): ... this. Redefined as macro.
549 (cxx_incomplete_type_diagnostic): Declare.
550 (cxx_incomplete_type_error): Define as macro.
551 * init.c (build_delete): Warn about incomplete types other than
552 void, and use the built-in operator delete for them.
553 * typeck.c (complete_type_or_diagnostic): Renamed from
554 complete_type_or_else. Added warn_only argument, passed to...
555 * typeck2.c (cxx_incomplete_type_diagnostic): ... this. Print
556 warnings or errors depending on new warn_only argument. Renamed
557 from...
558 (cxx_incomplete_type_error): ... this. New implementation in
559 terms of cxx_incomplete_type_diagnostic.
560
b41d214e
JM
5612002-05-18 Jason Merrill <jason@redhat.com>
562
98c07d7b 563 PR c++/6611
b41d214e
JM
564 * decl2.c (import_export_decl): If we clear
565 DECL_NOT_REALLY_EXTERN, make sure DECL_EXTERNAL is set.
566
e2005c8d
KL
5672002-05-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
568
569 PR c++/6620
570 * pt.c (verify_class_unification): Don't check if PARM is template
571 parameter dependent. Simplify.
572 (unify) [TEMPLATE_PARM_INDEX]: Handle when ARG is a template
573 parameter dependent expression.
574
ff48be5c
JM
5752002-05-14 Jason Merrill <jason@redhat.com>
576
577 * rtti.c (get_tinfo_decl): Don't call comdat_linkage.
578 Do set DECL_COMDAT.
579 (synthesize_tinfo_var): Take the public decl.
580 (create_real_tinfo_var): Likewise. Check DECL_COMDAT.
581 (emit_tinfo_decl): Adjust. Call import_export_decl.
582 * decl2.c (import_export_decl): Simplify tinfo decl handling.
583
94e6e4c4
AO
5842002-05-14 Alexandre Oliva <aoliva@redhat.com>
585
586 * cp-tree.h (struct lang_type): Added non_zero_init.
0fe1cd70 587 (CLASSTYPE_NON_ZERO_INIT_P): New macro.
94e6e4c4
AO
588 (zero_init_p, force_store_init_value, build_forced_zero_init): Declare.
589 * class.c (check_field_decls): Test non_zero_init.
590 * cvt.c (convert_to_pointer_force): Use cp_convert_to_pointer for
591 zero-to-NULL conversions.
592 * decl.c (obscure_complex_init): Don't reset DECL_INITIAL of a
593 type that needs zero-initialization without zeros.
594 (check_initializer_decl): Compute zero-initializer for types
595 that require a non-trivial one.
596 * init.c (build_forced_zero_init): New function.
597 (build_default_init): Use it.
598 * tree.c (zero_init_p): New function.
599 * typeck2.c (force_store_init_value): New function.
600 (process_init_constructor): Create non-trivial zero-initializers
601 for array members and class fields.
602
e5f5feea
NB
6032002-05-14 Neil Booth <neil@daikokuya.demon.co.uk>
604
605 * lang-specs.h: Remove redundant -lang-c++.
606
f63ab951
JM
6072002-05-13 Jason Merrill <jason@redhat.com>
608
609 * class.c (build_vtbl_ref_1): Use fixed_type_or_null.
610 (fixed_type_or_null): See through reference vars.
611 (build_base_path): Vtable contents are constant.
612 * typeck.c (get_member_function_from_ptrfunc): Likewise.
613
0d08ea48
JM
6142002-05-12 Jason Merrill <jason@redhat.com>
615
616 * cp-lang.c (ok_to_generate_alias_set_for_type): Backend-created
617 structs are safe.
618
3df89291
NB
6192002-05-09 Neil Booth <neil@daikokuya.demon.co.uk>
620
621 * cp-tree.h (flag_ansi): Remove.
622 * decl2.c (flag_ansi): Remove.
623 (cxx_decode_option): Set flag_iso and flag_undef.
624
c87978aa
JM
6252002-05-09 Jason Merrill <jason@redhat.com>
626
627 * typeck.c (get_member_function_from_ptrfunc): Reorganize.
628 Use subtraction rather than a bitmask to get the index.
629 * cvt.c (cp_convert_to_pointer): Bail on an error_mark_node.
630
631 * pt.c (tsubst_expr) [ASM_STMT]: Copy ASM_INPUT_P.
632
a5a49440
NB
6332002-05-07 Neil Booth <neil@daikokuya.demon.co.uk>
634
635 * Make-lang.in (decl2.o): Update.
636 * cp-tree.h (warn_multichar): Remove.
637 * decl2.c: Include c-common.h.
638 (warn_multichar): Remove.
639
609688f3
JM
6402002-05-03 Jason Merrill <jason@redhat.com>
641
0abc082a
JM
642 * tree.c (build_cplus_array_type): Only const and volatile get
643 special handling.
644
609688f3
JM
645 * decl.c (BOOL_TYPE_SIZE): Move default to defaults.h.
646
8b16faa2
MM
6472002-04-30 Mark Mitchell <mark@codesourcery.com>
648
394ab947 649 ABI change, returning simple classes from functions.
8b16faa2
MM
650 * class.c (finish_struct_bits): Only mark TREE_ADDRESSABLE if
651 TYPE_HAS_TRIVIAL_INIT_REF is false or
652 TYPE_HAS_NONTRIVIAL_DESTRUCTOR is true.
653
ac905924
JM
6542002-04-30 Jason Merrill <jason@redhat.com>
655
2cb008af 656 PR debug/6436
ac905924
JM
657 * decl.c (grokdeclarator): Don't override TYPE_NAME of an
658 anonymous class with a typedef if there are attributes.
659
e6e81f1c 6602002-04-29 Paul Eggert <eggert@twinsun.com>
b819d9e0 661
e6e81f1c 662 * parse.y (nomods_initdcl0): Replace $<ttype>3 with $<ttype>$.
b819d9e0 663
3a73bffb
JJ
6642002-04-29 Jakub Jelinek <jakub@redhat.com>
665
666 PR c++/6477
667 * decl.c (follow_tag_typedef): Check if TYPE_NAME (original) is
668 non-NULL first.
669
33dd07ee
MM
6702002-04-29 Mark Mitchell <mark@codesourcery.com>
671
672 PR c++/6492
673 * pt.c (tsubst_friend_class): If the friend has an explicit scope,
674 enter that scope before name lookup.
675
676 PR c++/6486
677 * method.c (do_build_copy_constructor): Avoid building
678 cv-qualified reference types.
500abaa8 679
4bd7c270
NS
6802002-04-29 Nathan Sidwell <nathan@codesourcery.com>
681
682 PR c++/5719
500abaa8 683 * decl.c (grok_op_properties): Assignment ops don't have to return
4bd7c270
NS
684 by value. operator% should.
685
45806a3f
FS
6862002-04-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
687
688 PR c/6343
689 * decl.c (duplicate_decls): Call merge_weak.
690
94a50397
RH
6912002-04-26 Richard Henderson <rth@redhat.com>
692
693 * parse.y (malloced_yyss, malloced_yyvs): New.
694 (yyoverflow): Re-add. Set them.
695 (free_parser_stacks): New.
696
7d793e9b
MM
6972002-04-26 Mark Mitchell <mark@codesourcery.com>
698
699 PR c++/6497
700 * method.c (do_build_assign_ref): Pass a derivation to
701 build_method_call when calling base class assignment operators.
702
bde3c0c0
RH
7032002-04-26 Richard Henderson <rth@redhat.com>
704
705 * parse.y (yyoverflow): Revert.
706
b84a3874
RH
7072002-04-26 Richard Henderson <rth@redhat.com>
708
709 PR c/3581
710 * parse.y (string): Remove. Update all uses to use STRING
711 instead, and not call combine_strings.
712 * rtti.c (tinfo_name): Use fix_string_type.
713 * semantics.c (finish_asm_stmt): Don't call combine_strings.
714 * spew.c (yylexstring): New.
715 (read_token): Use it.
716
6052bef0
RH
7172002-04-25 Richard Henderson <rth@redhat.com>
718
719 PR c/2161
720 * parse.y (yyoverflow): New.
721
8d1f0f67
JM
7222002-04-25 Jason Merrill <jason@redhat.com>
723
724 PR c++/5607
725 * search.c (check_final_overrider): No longer static.
726 * class.c (update_vtable_entry_for_fn): Call it.
727 * cp-tree.h: Adjust.
728
ff45c01e
NB
7292002-04-25 Neil Booth <neil@daikokuya.demon.co.uk>
730
731 * cp-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
732 * cp-tree.h (cxx_set_yydebug): Die.
733 * lex.c (YYDEBUG): Get from c-lex.h.
734 (cxx_set_yydebug): Remove.
735 * parse.y: Include c-lex.h.
736 (YYDEBUG): Get from c-lex.h.
737
a62d375f
MM
7382002-04-24 Mark Mitchell <mark@codesourcery.com>
739
740 PR c++/6438.
741 * cvt.c (convert_to_void): Don't unconditionally make COND_EXPRs
742 void.
743
349ae713
NB
7442002-04-24 Neil Booth <neil@daikokuya.demon.co.uk>
745
746 * cp-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
747 LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE):
748 Redefine.
749 * cp-tree.h (cp_attribute_table): Rename.
750 * decl.c (lang_attribute_table): Remove declaration.
751 (cxx_init_decl_processing): Don't set it.
752 * tree.c (cp_attribute_table): Rename.
753
b602511f
JM
7542002-04-24 Jason Merrill <jason@redhat.com>
755
985723ce
JM
756 PR c++/6331
757 * method.c (do_build_copy_constructor): Use cp_build_qualified_type.
758 * typeck.c (build_modify_expr): Allow arrays to differ in cv-quals.
a49cfba8
JM
759 The pedwarn for array assignment is now unconditional.
760 * tree.c (build_cplus_array_type_1): Still process simple array types
761 normally in templates.
985723ce 762
b602511f
JM
763 PR c++/6395
764 * decl.c (make_rtl_for_nonlocal_decl): Don't mess with #pragma i/i
765 stuff for comdats.
766
29cece2e
JJ
7672002-04-23 Jakub Jelinek <jakub@redhat.com>
768
769 * parse.y (check_class_key): Allow KEY to be union/enum/struct/class
770 node with attributes.
771
515387dc
DB
7722002-2-23 David O'Brien <obrien@FreeBSD.org>
773
774 * g++spec.c (MATH_LIBRARY_PROFILE, LIBSTDCXX_PROFILE): Add.
775 Use MATH_LIBRARY_PROFILE and LIBSTDCXX_PROFILE if profile flag given.
776
77adef84
MM
7772002-04-23 Mark Mitchell <mark@codesourcery.com>
778
779 PR c++/6256:
780 * pt.c (tsubst_friend_class): Handle templates with explicit
781 nested names.
782
783 PR c++/6331:
784 * typeck.c (merge_types): Remember the cv-qualification of pointer
785 types when merging them.
786
b03e38e1
NB
7872002-04-20 Neil Booth <neil@daikokuya.demon.co.uk>
788
789 * cp-lang.c (LANG_HOOKS_FUNCTION_INIT,
790 LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_MARK): Redefine.
791 * cp-tree.h (cxx_push_function_context, cxx_pop_function_context,
792 cxx_mark_function_context): New.
793 * decl.c (push_cp_function_context, pop_cp_function_context,
794 mark_cp_function_context): Rename for consistency.
795 (cxx_init_decl_processing): Don't set old hooks.
796
ab393bf1
NB
7972002-04-19 Neil Booth <neil@daikokuya.demon.co.uk>
798
799 * call.c (convert_type_from_ellipsis): Rename, update.
800 * cp-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
801 * cp-tree.h (convert_type_from_ellipsis): Rename.
802 * decl.c (cxx_init_decl_processing): Don't set hook.
803
7a228918
NB
8042002-04-18 Neil Booth <neil@daikokuya.demon.co.uk>
805
806 * call.c (build_new_method_call): Update.
807 * cp-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
808 * cp-tree.h (cxx_incomplete_type_error): New.
809 * decl.c (grokdeclarator, grokparms): Update.
810 * decl2.c (check_classfn): Update.
811 * pt.c (tsubst): Update.
812 * typeck.c (complete_type_or_else, expr_sizeof,
813 decay_conversion): Update.
814 * typeck2.c (incomplete_type_error): Rename.
815 (add_exception_specifier): Update.
816
8152c320
JM
8172002-04-18 Jason Merrill <jason@redhat.com>
818
819 PR c++/5658
820 * search.c (setup_class_bindings): A class template qualifies as a
821 type binding.
822
32121b96
JJ
8232002-04-17 Jakub Jelinek <jakub@redhat.com>
824
825 PR c++/6316
826 * decl2.c (finish_file): Clear DECL_EXTERNAL in a separate loop
827 before expanding.
828
b2123dc0
MM
8292002-04-16 Mark Mitchell <mark@codesourcery.com>
830
831 * init.c (begin_init_stmts): Remove commented out code.
832 (finish_init_stmts): Set STMT_EXPR_NO_SCOPE.
833 * semantics.c (begin_gobal_stmt_expr): Adjust call to
834 expand_start_stmt_expr.
500abaa8 835
0f268005
MM
8362002-04-15 Mark Mitchell <mark@codesourcery.com>
837
838 * decl.c (register_dtor_fn): Pass the address of dso_handle, not
839 dso_handle itself, to __cxa_atexit.
840
bd6bec6b
GDR
8412002-04-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
842
843 * error.c (cxx_print_error_function): Adjust call to macros.
844
0f490a2b
JJ
8452002-04-14 Jakub Jelinek <jakub@redhat.com>
846
847 * class.c (layout_virtual_bases): Do all dsize computation on trees.
848
85b7def6
JM
8492002-04-14 Jason Merrill <jason@redhat.com>
850
851 * typeck.c (get_member_function_from_ptrfunc): Don't do
852 gratuitious division and multiplication on
853 ptrmemfunc_vbit_in_delta targets.
854
0481bc21
MM
8552002-04-12 Mark Mitchell <mark@codesourcery.com>
856
857 PR c++/5373.
858 * semantics.c (finish_expr_stmt): Remember the type of the
859 expression before any conversions are performed.
860
9928a3d5
MM
8612002-04-12 Mark Mitchell <mark@codesourcery.com>
862
863 PR c++/5189.
864 * call.c (add_template_candidate_real): Do not treat member
865 templates as copy constructors.
866
c740732f
MM
8672002-04-12 Mark Mitchell <mark@codesourcery.com>
868
869 * decl.c (duplicate_decls): Do not copy the RTL for a variable
870 declaration if the old variable had an incomplete type and the new
871 variable does not.
872 (complete_vars): Do not call layout_decl for completed variables.
873
4782bd5b
RS
8742002-04-12 Richard Sandiford <rsandifo@redhat.com>
875
876 * decl.c (duplicate_decls): Don't try to unify an implicit typedef
877 with an explicit one.
878 (follow_tag_typedef): New.
879 (lookup_tag): Use it to extract the tag of an explicit typedef.
880 (xref_tag): Likewise.
881
2f4d058f
AH
8822002-04-11 Andrew Haley <aph@redhat.com>
883
884 * typeck.c (type_after_usual_arithmetic_conversions):
885 If two types have the same variant, return immediately.
500abaa8 886 When two floating-point operands are the same precision:
2f4d058f
AH
887 convert to float if one of the operands is float;
888 if neither operand is one of the standard types, return the type
889 of the first operand.
500abaa8 890
ba3307c0
NS
8912002-04-10 Nathan Sidwell <nathan@codesourcery.com>
892
893 PR c++/5507
894 * decl.c (make_typename_type): Remove implicit typenameness.
895
cd6af0c1
JM
8962002-04-09 Jason Merrill <jason@redhat.com>
897
edf5cd1d
JM
898 PR optimization/6189
899 * semantics.c (genrtl_start_function): Don't free
900 DECL_SAVED_FUNCTION_DATA for inline functions.
901
cd6af0c1
JM
902 * init.c (build_member_call): For now, don't convert to
903 intermediate base if it would cause an error.
904
224e6091
PC
9052002-04-08 Paolo Carlini <pcarlini@unitus.it>
906
907 * parse.y (namespace_qualifier, maybe_identifier,
908 begin_explicit_instantiation, end_explicit_instantiation,
909 apparent_template_type, .finish_template_type,
910 do_id, maybe_init, defarg_again, component_decl_1):
911 Add ending ';', in accordance with POSIX.
912
0154eaa8
MM
9132002-04-06 Mark Mitchell <mark@codesourcery.com>
914
915 PR c++/5571
916 * class.c (layout_class_type): Remember incomplete static
917 variables.
918 (finish_struct_1): Call complete_vars, not
919 hack_incomplete_structures.
920 * cp-tree.h (hack_incomplete_structures): Rename to ...
921 (complete_vars): ... this.
922 (struct saved_scope): Remove incomplete.
923 (namespace_scope_incomplete): Remove.
924 * decl.c (struct binding_level): Remove incomplete.
925 (incomplete_vars): New variable.
926 (mark_binding_level): Don't mark incomplete.
927 (print_binding_level): Don't print it.
928 (mark_saved_scope): Don't mark incomplete.
929 (pushdecl): Use maybe_register_incopmlete_var.
930 (cxx_init_decl_processing): Register incomplete_vars for GC.
931 (start_decl_1): Clarify error message.
932 (hack_incomplete_vars): Remove.
933 (maybe_register_incomplete_var): New function.
934 (complete_vars): Likewise.
935
f62ea157
JM
9362002-04-06 Jason Merrill <jason@redhat.com>
937
03da5286
JM
938 PR c++/4934
939 * error.c (dump_expr) [CONVERT_EXPR]: Make sure TREE_TYPE (t) is
940 set before checking it.
941
a29e1034
JM
942 PR c++/525
943 * init.c (build_member_call): Use build_scoped_ref.
944 (resolve_offset_ref): Likewise.
945 * call.c (build_scoped_method_call): Likewise.
500abaa8 946 * tree.c (maybe_dummy_object): Kludge around current_class_type being
a29e1034
JM
947 wrong.
948 * typeck2.c (build_scoped_ref): Return the binfo via binfo_p parm.
949 * cp-tree.h: Adjust.
500abaa8 950
a29e1034
JM
951 * init.c (push_base_cleanups): Just use build_scoped_method_call.
952
f62ea157 953 PR c++/6179
500abaa8 954 * method.c (implicitly_declare_fn): Pass unqualified type to
f62ea157
JM
955 synthesize_exception_spec.
956
78ef5b89
NB
9572002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
958
959 * cp-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
960 * cvt.c: Update comment.
961 * init.c (expand_cleanup_for_base): Update.
962 * semantics.c (finish_parenthesized_expr): Update.
963 * typeck.c (cp_truthvalue_conversion): Update.
964
dffa4176
JM
9652002-04-04 Jason Merrill <jason@redhat.com>
966
659e5a7a
JM
967 * semantics.c (finish_eh_cleanup): New fn.
968 * cp-tree.h: Add prototype.
500abaa8 969 * init.c (perform_member_init, expand_cleanup_for_base): Use
659e5a7a
JM
970 finish_eh_cleanup.
971 * cp-tree.def (SUBOBJECT, CTOR_STMT): Remove.
972 * cp-tree.h: Remove references.
973 * decl.c (begin_constructor_body, end_constructor_body): Likewise.
974 * dump.c (cp_dump_tree): Likewise.
975 * pt.c (tsubst_expr): Likewise.
976 * semantics.c (genrtl_ctor_stmt, genrtl_subobject): Remove.
977 (cp_expand_stmt): Remove handling of CTOR_STMT and SUBOBJECT.
978 * tree.c (cp_statement_code_p): Likewise.
979
980 * init.c (build_new_1): Set CLEANUP_EH_ONLY on deleting cleanup.
981
982 PR c++/5636
983 * semantics.c (nullify_returns_r): Just set CLEANUP_EH_ONLY on
984 cleanup for nrv.
985
dffa4176
JM
986 PR c++/5104
987 * typeck.c (comptypes) [FUNCTION_TYPE]: Don't compare exception
988 specifiers.
989 [METHOD_TYPE]: Use same code as FUNCTION_TYPE.
990
ef4f94ac
RH
9912002-04-03 Richard Henderson <rth@redhat.com>
992
993 * cp-lang.c (cxx_warn_unused_global_decl): New.
994 (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
995
599bba86
NB
9962002-04-03 Neil Booth <neil@daikokuya.demon.co.uk>
997
998 * cp-lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): Redefine.
999 * tree.c (init_tree): Don't set hook.
1000
cba2004a
RS
10012002-04-03 Roger Sayle <roger@eyesopen.com>
1002
1003 PR c++/5998:
1004 * decl.c (duplicate_decls): Don't mess with assembler names when
1005 redeclaring builtin functions as static.
1006
dffd7eb6
NB
10072002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
1008
1009 * call.c (build_addr_func): Update.
1010 * class.c (resolve_address_of_overloaded_function): Update.
1011 * cp-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
1012 * cp-tree.h (cxx_mark_addressable): New.
1013 * decl.c (register_dtor_fn, cxx_maybe_build_cleanup): Update.
1014 * decl2.c (build_cleanup): Update.
1015 * except.c (build_throw): Update.
1016 * init.c (resolve_offset_ref): Update.
1017 * pt.c (convert_nontype_argument): Update.
1018 * semantics.c (finish_asm_stmt, simplify_affr_init_exprs_r): Update.
1019 * typeck.c (decay_conversion, build_array_ref, build_unary_op,
1020 unary_complex_lvalue): Update.
1021 (mark_addressable): Rename.
1022
04a9d080
RS
10232002-04-01 Roger Sayle <roger@eyesopen.com>
1024
1025 PR c++/5998:
1026 * decl.c (duplicate_decls): Overwrite the RTL when (and only
1027 when) overwriting a built-in function. Don't use COPY_DECL_RTL,
1028 but follow the SET_DECL_RTL idiom used elsewhere in the function.
1029
ceef8ce4
NB
10302002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
1031
1032 * cp-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
1033 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
1034 * decl.c (grokdeclarator): Update.
1035 * mangle.c (write_integer_cst): Update.
1036 * typeck.c (build_binary_op): Update.
1037
48a7a235
NB
10382002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
1039
1040 * cp-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
1041 * lex.c (cxx_init): Don't set hook.
1042
7cb32822
NB
10432002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
1044
1045 * Make-lang.in (error.o): Update.
1046 * cp-lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine.
1047 * cp-tree.h (struct diagnostic_context): Predeclare.
1048 (cxx_print_error_function): New.
1049 * error.c: Include langhooks-def.h.
1050 (lang_print_error_function): Rename. Update.
1051 (init_error): Don't set hook.
1052
b0c48229
NB
10532002-03-29 Neil Booth <neil@daikokuya.demon.co.uk>
1054
1055 * cp-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
1056 Redefine.
1057 * cvt.c (cp_convert_to_pointer, type_promotes_to): Use new hooks.
1058 * decl.c (finish_enum): Similarly.
1059 * error.c (dump_type): Similarly.
1060 * lex.c (cxx_init): Similarly.
1061 * mangle.c (write_builtin_type): Similarly.
1062 * typeck.c (comptypes): Similarly.
1063
d52e4867
RS
10642002-03-28 Roger Sayle <roger@eyesopen.com>
1065
1066 PR c++/5998:
1067 * decl.c (cxx_init_decl_processing): Re-enable built-in functions
1068 in the g++ front-end.
1069 (duplicate_decl): Allow redefinition of anticipated built-ins.
1070 Fix inlining problem by over-writing the old DECL_RTL.
1071 (lookup_namespace_name): Fail to find an identifier in the
1072 specified namespace if its still anticipated.
1073 (builtin_function_1): New function split out from builtin_function
1074 to create a builtin in the current namespace with given context.
1075 (builtin_function): Call builtin_function_1 to define the
1076 appropriate builtins in both the std and global namespaces.
1077 (select_decl): Don't test for anticipated decls here.
1078 (unqualified_namespace_lookup): Instead ignore them whilst
1079 searching through scopes and namespaces.
1080 * decl2.c (do_nonmember_using_decl): If a using declaration
1081 specifies an anticipated built-in function, mark it as no longer
1082 anticipated in that scope.
1083 (ambiguous_decl): Avoid resolving to an anticipated decl.
1084 * lex.c (do_scoped_id): Fail to find an identifier in the global
1085 namespace if its still anticipated.
1086
f1e639b1
NB
10872002-03-29 Neil Booth <neil@daikokuya.demon.co.uk>
1088
1089 * cp-lang.c (LANG_HOOKS_MAKE_TYPE): Redefine.
1090 * cp-tree.h (cp_make_lang_type): Rename.
1091 * lex.c (cp_make_lang_type): Rename.
1092 (make_aggr_type): Update.
1093 * tree.c (init_tree): Don't set make_lang_type_fn.
1094
c7f4981a
JJ
10952002-03-29 Jakub Jelinek <jakub@redhat.com>
1096
1097 PR c++/6073
1098 * class.c (finish_struct_1): Update static field's DECL_MODE even
1099 if its type is a variant of t.
1100
7ffb4fd2
NB
11012002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
1102
1103 * cp-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
1104 * cp-tree.h (cxx_insert_default_attributes): New.
1105 * decl.c (insert_default_attributes): Rename.
1106
cd4e8331
MM
11072002-03-27 Mark Mitchell <mark@codesourcery.com>
1108
1109 PR c++/4884
1110 * call.c (build_op_delete_call): Allow for the fact the placement
1111 may be a COMPOUND_EXPR.
500abaa8 1112
c9d892a8
NB
11132002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
1114
1115 * cp-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
1116 * cp-tree.h (init_cplus_expand): Remove.
1117 (cxx_expand_expr): New.
1118 * expr.c (cplus_expand_expr): Rename cxx_expand_expr,
1119 fix prototype.
1120 (init_cplus_expand): Remove.
1121 * lex.c (cxx_init): Don't call init_cplus_expand.
1122
46ff5047
MM
11232002-03-26 Mark Mitchell <mark@codesourcery.com>
1124
1125 PR c++/4884.
1126 * init.c (build_new_1): Allow for the fact the result of
1127 build_function_call may be a COMPOUND_EXPR.
1128
6d4c57a0
NS
11292002-03-26 Nathan Sidwell <nathan@codesourcery.com>
1130
1131 PR c++/5682
1132 * cp-tree.h (BINFO_PRIMARY_P): Explain meaning better.
1133 (dfs_skip_nonprimary_vbases_unmarkedp): Remove.
1134 (dfs_skip_nonprimary_vbases_markedp): Remove.
1135 * search.c (get_shared_vbase_if_not_primary): Remove.
1136 (dfs_skip_nonprimary_vbases_unmarkedp): Remove.
1137 (dfs_skip_nonprimary_vbases_markedp): Remove.
1138 (dfs_unmarked_real_bases_queue_p): Just get the canonical binfo.
1139 (dfs_marked_real_bases_queue_p): Likewise.
1140
4f0ade92
NB
11412002-03-26 Neil Booth <neil@daikokuya.demon.co.uk>
1142
1143 * cp-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
1144 * cp-tree.h (cxx_mark_tree): New.
1145 * decl.c (lang_mark_tree): Rename cxx_mark_tree.
1146
c88770e9
NB
11472002-03-25 Neil Booth <neil@daikokuya.demon.co.uk>
1148
1149 * cp-tree.h (cxx_maybe_build_cleanup): New.
1150 * decl.c (destroy_local_var, hack_incomplete_structures): Update.
1151 (maybe_build_cleanup): Rename cxx_maybe_build_cleanup.
1152 * tree.c (build_target_expr): Update.
7b3e5198 1153 * cp-lang.c (LANG_HOOKS_MAYBE_BUILD_CLEANUP): Redefine.
c88770e9 1154
aaf93206
NB
11552002-03-24 Neil Booth <neil@daikokuya.demon.co.uk>
1156
1157 * decl2.c (cxx_decode_option): Handle -E.
1158 * lang-specs.h (default_compilers): Preprocess with cc1plus.
1159 * lex.c (cxx_init): Exit quickly if c_common_init returns NULL.
1160
e756a7da
JJ
11612002-03-23 Jakub Jelinek <jakub@redhat.com>
1162
1163 PR c++/6037
1164 * decl.c (start_enum): Don't set TREE_ADDRESSABLE on TREE_LIST node.
1165
ea9264e9
GDR
11662002-03-23 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
1167
1168 * error.c (dump_type): Be careful about implicit typenames.
1169
acb044ee
GDR
11702002-03-21 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
1171
1172 PR C++/3656
1173 * semantics.c (finish_base_specifier): Handle erronous base
500abaa8 1174 classes.
acb044ee 1175
b216cd4a
ZW
11762002-03-22 Zack Weinberg <zack@codesourcery.com>
1177
1178 * error.c: Always use REAL_VALUE_TO_DECIMAL; don't test
1179 REAL_IS_NOT_DOUBLE.
1180
9181f8db
JK
11812002-03-22 Jeff Knaggs <jknaggs@redhat.com>
1182
cd6af0c1
JM
1183 * typeck.c (get_member_function_from_ptrfunc): Scale idx down to
1184 an index into the vtable_entry array regardless of
9181f8db
JK
1185 TARGET_PTRMEMFUNC_VBIT_LOCATION.
1186
e019cf95
AH
11872002-03-21 Aldy Hernandez <aldyh@redhat.com>
1188
84d901be 1189 * tree.c (cp_cannot_inline_tree_fn): Same.
e019cf95 1190
43577e6b
NB
11912002-03-21 Neil Booth <neil@daikokuya.demon.co.uk>
1192
1193 * cp-tree.h (pushdecl, pushlevel, poplevel, set_block,
1194 insert_block, getdecls, global_bindings_p): New.
1195
8c152bad
NS
11962002-03-20 Nathan Sidwell <nathan@codesourcery.com>
1197
1198 PR c++/4361
1199 * mangle.c (struct globals) Add internal_mangling_p member.
1200 (write_template_param): Do internal mangling, if needed.
1201 (mangle_conv_op_name_for_type): Request internal mangling.
1202
e3fe84e5
JM
12032002-03-20 Jason Merrill <jason@redhat.com>
1204
1205 PR c++/2136
1206 * init.c (build_delete): Check access for a member op delete here.
1207 * decl2.c (delete_sanity): Not here.
1208
ea122333
JM
12092002-03-19 Jason Merrill <jason@redhat.com>
1210
1211 PR c++/5118
1212 * class.c (get_vfield_name): Use the constructor_name.
1213
7afff7cf
NB
12142002-03-20 Neil Booth <neil@daikokuya.demon.co.uk>
1215
1216 * cp-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
1217 * cp-tree.h (lang_printable_name): Rename.
1218 * error.c (lang_decl_name): Use new hook.
1219 * lex.c (cxx_init): Remove old hook.
1220 * pt.c (tsubst_decl): Use new hook.
1221 * tree.c (lang_printable_name): Rename.
1222
ff77ac85
EB
12232002-03-18 Eric Botcazou <ebotcazou@multimania.com>
1224
1225 PR c++/3882
1226 * pt.c (tsubst_decl): Move __PRETTY_FUNCTION__ handling...
1227 (tsubst_expr) [DECL_STMT]: ...here. And substitute the initializer
1228 only after recording the declaration.
1229
ffd696af
JM
12302002-03-18 Jason Merrill <jason@redhat.com>
1231
097955f2
JM
1232 PR c++/2039
1233 * init.c (resolve_offset_ref): Hand off to build_component_ref.
1234
b663bcf3
JM
1235 PR c++/4222, c++/5995
1236 * call.c (build_over_call): Fix empty class logic.
1237
0f4237c2
JM
1238 PR c++/3870
1239 * cp-tree.h (struct saved_scope): Add last_parms field.
1240 * decl.c (maybe_push_to_top_level): Save last_function_parms.
1241 (pop_from_top_level): Restore it.
1242
001ad76c
JM
1243 PR c++/4377
1244 * mangle.c (write_expression): Strip NOP_EXPRs sooner. Also strip
1245 NON_LVALUE_EXPRs.
1246
1247 PR c++/4003
ed2fa432
JM
1248 * pt.c (tsubst_friend_function): Use decl_namespace_context.
1249
ffd696af
JM
1250 PR c++/3948 -- C++ ABI change, followup to 2001-12-18 patch.
1251 * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE for a
1252 type with a nontrivial destructor.
1253
f2606a97
JM
12542002-03-17 Jason Merrill <jason@redhat.com>
1255
1256 PR c++/4460
1257 * class.c (build_base_path): Virtual base layout is fixed in
1258 in-charge [cd]tors.
1259
52dabb6c
NB
12602002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
1261
1262 * cp-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
1263 * parse.y (yyparse): Remove macro.
1264
beb9c8a2
JM
12652002-03-17 Jason Merrill <jason@redhat.com>
1266
1267 PR c++/5757
1268 * init.c (build_new_1): Pass the right pointer to op delete.
1269
5dd236e2
NS
12702002-03-16 Nathan Sidwell <nathan@codesourcery.com>
1271
1272 PR c++/4361
1273 * cp-tree.h (CLASSTYPE_METHOD_VEC): Document where templated
1274 conversion operators go.
1275 (struct lang_decl_flags): Add template_conv_p and unused
1276 bitfields.
1277 (DECL_TEMPLATE_CONV_FN_P): New macro.
1278 * call.c (build_user_type_conversion_1): Don't check second type
1279 conversion of overload set first.
1280 * class.c (add_method): Make sure templated conversion operators
1281 all end up on slot 2.
1282 * lex.c (do_identifier): A conversion operator token might be
1283 satisfied by a templated conversion operator.
5dd236e2
NS
1284 * pt.c (check_explicit_specialization): Use
1285 CLASSTYPE_FIRST_CONVERSION_SLOT.
1286 (template_parm_this_level_p): New function.
1287 (push_template_decl_real): Determine DECL_TEMPLATE_CONV_FN_P.
8c152bad 1288 * search.c (lookup_fnfields_1): Template conversions will be on
5dd236e2
NS
1289 the first slot.
1290 * typeck.c (build_component_ref): Preserve the type of an
1291 conversion operator name on the overload type.
1292 (build_x_function_call): Retrieve the conversion operator name.
1293
0ba20759
RH
12942002-03-15 Richard Henderson <rth@redhat.com>
1295
1296 * init.c (build_new_1): Use size_binop instead of cp_build_binary_op.
1297
6e4ae815
MM
12982002-03-15 Mark Mitchell <mark@codesourcery.com>
1299
1300 * cp-tree.h (CLEANUP_DECL): Remove.
1301 (CLEANUP_EXPR): Likewise.
1302 * decl.c (destroy_local_var): Simplify.
1303 (maybe_build_cleanup): Tidy.
1304 * dump.c (cp_dump_tree): Remove handling of CLEANUP_STMT.
1305 * semantics.c (cp_expand_stmt): Likewise.
1306 * cp/tree.c (cp_statement_code_p): Likewise.
1307
5cc90635
JM
13082002-03-15 Jason Merrill <jason@redhat.com>
1309
6da794e8
JM
1310 PR c++/5857
1311 * decl.c (duplicate_decls): Use merge_types instead of common_type.
1312 * typeck.c (common_type): Just hand off to
1313 type_after_usual_arithmetic_conversions and
1314 composite_pointer_type.
1315 (merge_types): New fn.
1316 (commonparms): Use it instead of common_type.
1317 (type_after_usual_arithmetic_conversions): Also handle COMPLEX_TYPE.
1318 (composite_pointer_type): Also handle attributes.
1319 * cp-tree.h: Declare merge_types.
1320
5cc90635
JM
1321 * decl.c (make_rtl_for_nonlocal_decl): Also defer COMDAT
1322 variables.
1323 * decl2.c (maybe_make_one_only): Also mark the decl as needed.
1324
ecb0eece
RH
13252002-03-14 Richard Henderson <rth@redhat.com>
1326
1327 * decl.c: Include c-pragma.h.
1328 (start_decl, start_function): Invoke maybe_apply_pragma_weak.
1329 * Make-lang.in: Update dependencies.
1330
d3f129b3
JJ
13312002-03-14 Jakub Jelinek <jakub@redhat.com>
1332
f6562b37 1333 PR c++/5908
d3f129b3
JJ
1334 * call.c (build_over_call): Set TREE_NO_UNUSED_WARNING too.
1335 * cvt.c (convert_to_void): Preserve TREE_NO_UNUSED_WARNING.
1336
049e6879
RS
13372002-03-12 Richard Sandiford <rsandifo@redhat.com>
1338
1339 * mangle.c (write_builtin_type): Handle 128-bit integers even if
1340 they are not a standard integer type.
1341
872c9284
RS
13422002-03-12 Richard Sandiford <rsandifo@redhat.com>
1343
1344 * cp-tree.h (init_init_processing): Remove declaration.
1345 * init.c (BI_header_type, init_init_processing): Remove old ABI stuff.
1346 * decl.c (cxx_init_decl_processing): Don't call init_init_processing.
1347
2f9834e8
KG
13482002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1349
1350 * cp-lang.c (tree_code_type, tree_code_length, tree_code_name):
1351 Define.
1352 * decl.c (duplicate_decls): Use TREE_CODE_LENGTH, not
1353 tree_code_length.
1354 * lex.c (cplus_tree_code_type, cplus_tree_code_length,
1355 cplus_tree_code_name): Delete.
1356 (cxx_init): Don't call add_c_tree_codes, instead set
1357 lang_unsafe_for_reeval. Don't try to copy into the various
1358 tree_code arrays.
1359
df867456
NS
13602002-03-12 Nathan Sidwell <nathan@codesourcery.com>
1361
1362 PR c++/5659
1363 * decl.c (xref_tag): Don't set CLASSTYPE_DECLARED_CLASS here.
1364 * decl2.c (handle_class_head): Set CLASSTYPE_DECLARED_CLASS for
1365 definitions.
1366
ab04e34b
NS
13672002-03-11 Nathan Sidwell <nathan@codesourcery.com>
1368
1369 Revert 2001-03-26 Nathan Sidwell <nathan@codesourcery.com>,
1370 DR209 is now not a defect.
1371 * cp-tree.h (skip_type_access_control): Remove.
1372 * decl.c (grokdeclarator): Do type access control for friend
1373 declarations.
1374 * semantics.c (decl_type_access_control): Don't reset
1375 current_type_lookups.
1376 (save_type_access_control): Always save the lookups.
1377 (skip_type_access_control): Remove.
1378 (finish_class_definition): Don't change type_lookups.
1379
999cc24c
NS
13802002-03-11 Nathan Sidwell <nathan@codesourcery.com>
1381
1382 Revert 2000-12-01 Nathan Sidwell <nathan@codesourcery.com>,
1383 It is incorrect.
1384 * typeck.c (build_static_cast): Compare non-qualified types
1385 with pointer to member conversions.
1386
61eece67
DN
13872002-03-11 Dan Nicolaescu <dann@ics.uci.edu>
1388 Daniel Berlin <dan@dberlin.org>
1389
1390 * cp-lang.c (ok_to_generate_alias_set_for_type): New function.
1391 (cxx_get_alias_set): Use it.
1392
644d28d4
KG
13932002-03-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1394
1395 * cp-tree.h (stabilize_expr): Prototype.
1396
7e326356
CR
13972002-03-08 Craig Rodrigues <rodrigc@gcc.gnu.org>
1398
1399 * cp-tree.h (CLEAR_BINFO_MARKED): Make both parts of
1400 conditional return void.
1401
24965e7a
NB
14022002-03-08 Neil Booth <neil@daikokuya.demon.co.uk>
1403
1404 * cp-lang.c (LANG_HOOKS_UNSAVE): Redefine.
1405 * cp-tree.h (cxx_unsave): New.
1406 * tree.c (cp_unsave): Rename cxx_unsave, update prototype.
1407 (init_tree): Update.
1408
ca7558fc
KG
14092002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1410
1411 * decl.c (cxx_init_decl_processing): Use ARRAY_SIZE in lieu of
1412 explicit sizeof/sizeof.
1413 * decl2.c (cxx_decode_option): Likewise.
1414 * lex.c (init_reswords, REDUCE_LENGTH, TOKEN_LENGTH): Likewise.
1415
fd87b7a7
NS
14162002-03-02 Nathan Sidwell <nathan@codesourcery.com>
1417
1418 PR c++/775
1419 * decl.c (lookup_tag): Only reject enum/class mismatch, not
1420 class/union mismatch.
1421 * parse.y (check_class_key): New function.
1422 (structsp): Call it.
1423
bfba94bd
MM
14242002-03-01 Michael Matz <matz@suse.de>
1425
1426 * typeck.c (cp_pointer_int_sum): Complete inner type which is
1427 used later by size_in_bytes().
1428
fdc9bf29
PE
14292002-03-01 Phil Edwards <pme@gcc.gnu.org>
1430
1431 * cp-tree.h: Require __GNUC__ to be #defined.
1432 (build_init): Add missing prototype.
1433
6f30f1f1
JM
14342002-03-01 Jason Merrill <jason@redhat.com>
1435
1436 * except.c: Don't include decl.h or obstack.h. Do include
1437 tree-inline.h.
1438 (build_throw): Destroy temporaries from the thrown
500abaa8 1439 expression before calling __cxa_throw. Construct a thrown
6f30f1f1
JM
1440 temporary directly into the exception object.
1441 (stabilize_throw_expr): New function.
1442 (wrap_cleanups_r): New function.
1443 * tree.c (stabilize_expr): New function.
1444 * init.c (build_init): New function.
1445 * Make-lang.in (cp/except.o): Adjust .h deps.
1446
46cfb101
JM
14472002-02-28 Jason Merrill <jason@redhat.com>
1448
07f521fc
JM
1449 * search.c (lookup_base_r): Don't clear is_non_public just because
1450 we found a friendly scope.
1451
46cfb101
JM
1452 * decl.c (finish_function): Only warn about missing return
1453 statement with -Wreturn-type.
1454
63e1b1c4
NB
14552002-02-28 Neil Booth <neil@daikokuya.demon.co.uk>
1456
1457 * class.c (build_clone): Update.
1458 * cp-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
1459 * cp-tree.h (cxx_dup_lang_specific_decl): New.
1460 * lex.c (copy_lang_decl): Rename cxx_dup_lang_specific_decl.
1461 (copy_decl): Update.
1462 * method.c (make_thunk): Update.
1463
f458d1d5
ZW
14642002-02-27 Zack Weinberg <zack@codesourcery.com>
1465
1466 * decl2.c: Delete traditional-mode-related code copied from
1467 the C front end but not used, or used only to permit the
1468 compiler to link.
1469
500abaa8 14702002-02-24 Craig Rodrigues <rodrigc@gcc.gnu.org>
3387d36e
CR
1471
1472 PR c++/4093
1473 * cp-tree.h (SET_BINFO_MARKED): Cast false part of condition
1474 to void.
1475
25c8b645
JJ
14762002-02-22 Jakub Jelinek <jakub@redhat.com>
1477
1478 PR other/5746
1479 * semantics.c (finish_switch_cond): Don't call get_unwidened
1480 if error_mark_node.
1481
4f2b0fb2
NS
14822002-02-22 Nathan Sidwell <nathan@codesourcery.com>
1483
1484 PR c++/2645, DR 295
1485 * cp-tree.h (tsubst_flags_t): Add tf_ignore_bad_quals,
1486 tf_keep_type_decl.
1487 (make_typename_type): Use tsubst_flags_t.
1488 * decl.c (make_typename_type): Adjust. Return non-artificial
1489 TYPE_DECLs, if required.
1490 (grokdeclarator): Simplify CVR qualification handling. Allow bad
1491 qualifiers on typedef types.
1492 * decl2.c (handle_class_head): Adjust make_typename_type call.
1493 * parse.y (nested_name_specifier): Likewise.
1494 (typename_sub0): Likewise.
1495 (typename_sub1): Likewise.
1496 * pt.c (convert_template_argument): Adjust make_typename_type
1497 return value.
1498 (tsubst): Adjust cp_build_qualified_type_real calls.
1499 (check_cv_quals_for_unify): Cope with alowing bad qualifications
1500 on template type parms.
1501 (instantiate_decl): Recheck substitutions to give warnings on bad
1502 qualifications.
1503 * tree.c (cp_build_qualified_type_real): Use tf_allow_bad_quals.
1504
8fc2ba41
AH
15052002-02-21 Aldy Hernandez <aldyh@redhat.com>
1506
84d901be 1507 * cp/decl.c (duplicate_decls): Merge always_inline attribute.
8fc2ba41 1508
84d901be
AD
1509 * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
1510 unless DECL_ALWAYS_INLINE.
8fc2ba41 1511
7552da58
JJ
15122002-02-20 Jakub Jelinek <jakub@redhat.com>
1513
1514 * typeck.c (cp_pointer_int_sum): Renamed from
1515 pointer_int_sum, call pointer_int_sum.
1516
00fae85d
JJ
15172002-02-20 Jakub Jelinek <jakub@redhat.com>
1518
1519 * decl.c (duplicate_decls): Return 0 if issued error about
1520 redeclaration.
1521
6ea868b7
JM
15222002-02-19 Jason Merrill <jason@redhat.com>
1523
500abaa8 1524 ABI change: Mangle `void (A::*)() const' as
6ea868b7
JM
1525 M1AKFvvE, not MK1AFvvE.
1526 * mangle.c (write_function_type): Write cv-quals for member
1527 function type here.
1528 (write_pointer_to_member_type): Not here.
1529
c02f5e29
JM
15302002-02-18 Jason Merrill <jason@redhat.com>
1531
1532 * pt.c (do_type_instantiation): Don't pedwarn if in_system_header.
1533 (do_decl_instantiation): Likewise.
1534
624a5800
CR
15352002-02-17 Craig Rodrigues <rodrigc@gcc.gnu.org>
1536
1537 PR c++/5685
1538 * decl.c (duplicate_decls): Make warning unconditional
1539 if duplicate default argument declarations are present.
1540
f6f8ada3
JJ
15412002-02-17 Jakub Jelinek <jakub@redhat.com>
1542
1543 * typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
1544 shortening.
1545
8d6e459d
NS
15462002-02-15 Nathan Sidwell <nathan@codesourcery.com>
1547
1548 * decl.c (grokdeclarator): Set typedef_decl for all TYPE_DECLs,
1549 remove incorrect comment. Move #if 0'd code to common path. Use
1550 IMPLICIT_TYPENAME_P. Simplify & reformat ARRAY_TYPE duplication.
1551
ca4feb54
JM
15522002-02-13 Jason Merrill <jason@redhat.com>
1553
57d5032b
JM
1554 * decl.c (builtin_function): Set TREE_THIS_VOLATILE on return fns.
1555 (finish_function): Don't warn if current_function_returns_null.
1556
bb26522d
JM
1557 * typeck2.c (digest_init): Do handle values of vector type.
1558
ca4feb54
JM
1559 * typeck2.c (digest_init, process_init_constructor): Treat vectors
1560 like arrays.
1561
e6b9638b
JM
15622002-02-11 Jason Merrill <jason@redhat.com>
1563
1564 * parse.y (reserved_declspecs): Don't handle attributes.
1565 (reserved_typespecquals): Handle them here.
1566 * Make-lang.in (parse.c): Adjust expected conflicts.
1567
1cf537c5
JJ
15682002-02-08 Jakub Jelinek <jakub@redhat.com>
1569
1570 * parse.y (primary, primary_no_id): Use compstmt_or_stmtexpr
1571 instead of compstmt.
1572 (compstmt_or_stmtexpr): Renamed from compstmt.
1573 (compstmt): In addition to compstmt_or_stmtexpr clear last_expr_type.
1574
c2ea3a40
NS
15752002-02-07 Nathan Sidwell <nathan@codesourcery.com>
1576
1577 Rename instantiate_type_flags to tsubst_flags_t & expand use.
1578 * cp-tree.h (instantiate_type_flags): Rename to ...
1579 (tsubst_flags_t): ... here. Rename itf_complain to tf_error,
1580 add tf_warning flag.
1581 (instantiate_type): Adjust prototype.
1582 (tsubst, tsubst_expr, tsubst_copy, lookup_template_class,
1583 do_type_instantiation, cp_build_qualified_type_real): Likewise.
1584 cp_build_qualified_type: Adjust.
1585 * class.c (instantiate_type): Adjust parameter. Rename itf_* to
1586 tf_*.
1587 * call.c (standard_conversion): Rename itf_* to tf_*.
1588 (reference_binding): Likewise.
1589 (convert_like_real): Likewise.
1590 * cvt.c (cp_convert_to_pointer): Likewise.
1591 (convert_to_reference): Likewise.
1592 * decl.c (lookup_namespace_name): Use tf_* flags.
1593 (make_typename_type): Likewise.
1594 (grokdeclarator): Likewise.
1595 * pt.c (convert_nontype_argument): Adjust COMPLAIN usage.
1596 (coerce_template_template_parms, convert_template_argument,
1597 coerce_template_parms, maybe_get_template_decl_from_type_decl,
1598 lookup_template_class, tsubst_friend_function, tsubst_friend_class,
500abaa8
AJ
1599 instantiate_class_template, tsubst_template_arg_vector,
1600 tsubst_template_parms, tsubst_aggr_type, tsubst_default_argument,
c2ea3a40 1601 tsubst_decl, tsubst_arg_types, tsubst_function_type,
500abaa8 1602 tsubst_call_declarator_parms, tsubst, tsubst_copy, tsubst_expr,
c2ea3a40 1603 instantiate_template, fn_type_unification,
500abaa8
AJ
1604 resolve_overloaded_unification, verify_class_unification,
1605 unify, get_bindings_real, do_type_instantiation,
1606 regenerate_decl_from_template, instantiate_decl,
c2ea3a40
NS
1607 tsubst_initializer_list, tsubst_enum,
1608 get_mostly_instantiated_function_type,
1609 invalid_nontype_parm_type_p): Likewise.
1610 * tree.c (cp_build_qualified_type_real): Likewise.
1611 * typeck.c (build_binary_op): Rename itf_* to tf_*.
1612 (build_ptrmemfunc): Likewise.
1613 (convert_for_assignment): Likewise.
1614
d5614afb
NS
16152002-02-07 Nathan Sidwell <nathan@codesourcery.com>
1616
1617 PR c++/109
1618 * decl.c (grokdeclarator): Allow friend declarations from
8d6e459d 1619 dependent types.
d5614afb
NS
1620 * decl2.c (handle_class_head): Don't push into template parm contexts.
1621 * pt.c (push_template_decl_real): Template parm contexts are never
1622 being defined.
1623
1af6141b
AO
16242002-02-05 Alexandre Oliva <aoliva@redhat.com>
1625
1626 * class.c: Include target.h.
1627 (check_bitfield_decl): Disregard EMPTY_FIELD_BOUNDARY,
1628 BITFIELDS_NBYTES_LIMITED and PCC_BITFIELD_TYPE_MATTERS for MS
1629 bit-field layout.
1630 * Make-lang.in: Adjust deps.
1631
d8a6f584
JM
16322002-02-05 Jason Merrill <jason@redhat.com>
1633
1634 * error.c (dump_type): Be more helpful about VECTOR_TYPE.
1635
6f9fdf4d
JJ
16362002-02-04 Jakub Jelinek <jakub@redhat.com>
1637
1638 * semantics.c (begin_switch_stmt): Clear SWITCH_TYPE.
1639 (finish_switch_cond): Set SWITCH_TYPE.
1640
14691f8d
RH
16412002-02-04 Richard Henderson <rth@redhat.com>
1642
1643 * method.c (use_thunk): Always initialize the block tree. Reindent.
1644 * semantics.c (expand_body): Emit thunks after function, not before.
1645
e89a6075
JM
16462002-02-04 Jason Merrill <jason@redhat.com>
1647
1648 * decl.c (start_function): Call cplus_decl_attributes immediately
1649 after grokdeclarator.
1650
1651 * decl.c (start_function): Combine DECL_RESULT handling code.
1652
9780c24f
JM
16532002-02-03 Jason Merrill <jason@redhat.com>
1654
1655 * xref.c: Remove.
1656 * Make-lang.in (CXX_OBJS): Remove cp/xref.o
1657 (cp/xref.o): Remove dependencies.
1658 * class.c (finish_struct_1, check_methods): Don't call xref fns.
1659 (finish_struct_1): Likewise.
1660 * friend.c (make_friend_class): Likewise.
1661 * lex.c (cxx_init, cxx_finish, extract_interface_info): Likewise.
1662 * spew.c (read_process_identifier): Likewise.
1663
65f36ac8
JM
16642002-02-01 Jason Merrill <jason@redhat.com>
1665
efe49da0 1666 PR c++/4872
500abaa8 1667 * decl.c (finish_function): Warn about a non-void function with
efe49da0
JM
1668 no return statement and no abnormal exit.
1669 * cp-tree.h (struct cp_language_function): Add returns_abnormally.
1670 (current_function_returns_abnormally): New macro.
1671 * call.c (build_call): Set it.
1672
f2d9afec
JM
1673 * typeck.c (build_component_ref): Always complain about offsetof
1674 constructs on non-PODs. Only make it an error for members of
1675 virtual bases.
1676
65f36ac8
JM
1677 * error.c (dump_scope): Don't add TFF_DECL_SPECIFIERS.
1678 (dump_function_decl): Always dump parms.
1679
1680 * decl2.c (finish_static_data_member_decl): Complain about a local
1681 class with a static data member.
1682
1683 PR c++/4286
1684 * search.c (lookup_field_1): Don't xref a static data member
1685 just because we looked it up.
1686
98884b26
JM
16872002-01-31 Jason Merrill <jason@redhat.com>
1688
b88c0704
JM
1689 * Make-lang.in (parse.c): Handle .output file.
1690
a588fe25
JM
1691 PR c++/3395
1692 * decl.c (xref_tag): Remember early attributes in TYPE_ATTRIBUTES,
1693 not TREE_TYPE.
1694 * semantics.c (finish_class_definition): Adjust.
1695
98884b26
JM
1696 Allow attributes in parms and casts.
1697 * parse.y (named_parm): Don't strip attrs.
1698 (declmods): Remove 'attributes' production.
1699 (nonempty_cv_qualifiers): Accept attributes.
1700 (ATTRIBUTE): Give precedence.
1701 * decl.c (groktypename): Handle attributes.
1702 (grokparms): Likewise.
1703
ffdeea47
JJ
17042002-01-29 Jakub Jelinek <jakub@redhat.com>
1705
1706 * decl2.c (cxx_decode_option): Pass 0 as last argument to
1707 cpp_handle_option.
1708 * lang-specs.h: Use cpp_unique_options instead of cpp_options
1709 when used together with cc1_options.
1710
b8b98c66
NS
17112002-01-29 Nathan Sidwell <nathan@codesourcery.com>
1712
1713 PR c++/5132
1714 * typeck2.c (digest_init): Make sure non-array core type is
1715 instantiated.
1716 * decl2.c (reparse_absdcl_as_casts): Just store the type in the
1717 constructor, rather than build a new one.
1718 (build_expr_from_tree, CONSTRUCTOR case): Be careful with the
1719 PURPOSE of constructor elts.
1720
7437519c
ZW
17212002-01-23 Zack Weinberg <zack@codesourcery.com>
1722
1723 * Make-lang.in (parse.c): Adjust expected number of
1724 shift-reduce conflicts.
1725 (decl.o): Depend on diagnostic.h.
1726 * decl.c: Include diagnostic.h.
1727 (grokdeclarator): Check for null pointer.
1728 (finish_function): Don't abort when
1729 current_binding_level->parm_flag != 1, if errors have
1730 occurred; throw away the statement tree and extra binding
1731 levels, and continue.
1732 * lex.c (note_list_got_semicolon): Check for null pointer.
1733 * method.c (hack_identifier): Just return error_mark_node if
1734 value is error_mark_node.
1735 * parse.y (primary: TYPEID(type_id)): No need to use
1736 TYPE_MAIN_VARIANT here.
1737 (handler_seq): Accept an empty list of catch clauses and
1738 generate a fake handler block to avoid later crashes.
1739 (ansi_raise_identifier): Accept the error token too.
1740 * semantics.c (begin_class_definition,
1741 finish_class_definition): Check for error_mark_node.
1742
c588e52b
ZW
17432002-01-23 Zack Weinberg <zack@codesourcery.com>
1744
1745 * typeck2.c (friendly_abort): Delete definition.
1746 * cp-tree.h (friendly_abort): Don't prototype.
1747 (my_friendly_assert): Use fancy_abort.
1748
d55ecaa4
CR
17492002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org>
1750
1751 * cp-tree.h (my_friendly_abort): Remove.
1752
0a01c261
JJ
17532002-01-23 Jakub Jelinek <jakub@redhat.com>
1754
1755 * spew.c (pending_inlines, pending_inlines_tail,
1756 processing_these_inlines): Make static.
1757 (mark_pending_inlines): Remove static.
1758 (begin_parsing_inclass_inline): If in function, save pi
1759 for GC to cp_function_chain->unparsed_inlines instead.
1760 (process_next_inline): Likewise.
1761 * cp-tree.h (struct cp_language_function): Add unparsed_inlines.
1762 (mark_pending_inlines): Add prototype.
1763 * decl.c (spew_debug): Remove unused extern.
1764 (mark_lang_function): Call mark_pending_inlines.
1765
a98facb0
CR
17662002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org>
1767
c588e52b
ZW
1768 * call.c, class.c, decl.c, decl2.c, error.c, expr.c, friend.c,
1769 init.c, lex.c, mangle.c, method.c, pt.c, repo.c, rtti.c, search.c,
1770 semantics.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c:
a98facb0
CR
1771 Change my_fancy_abort() to abort().
1772
f893c16e
JM
17732002-01-23 Jason Merrill <jason@redhat.com>
1774
608afcc5
JM
1775 PR c++/5453
1776 * class.c (fixed_type_or_null): Fix thinko.
1777
f893c16e
JM
1778 PR c++/3331
1779 * init.c (resolve_offset_ref): Use build_indirect_ref.
6bc34b14 1780
b2115575
JM
1781 * decl2.c (grokclassfn): Don't set DECL_REGISTER on 'this'.
1782
f893c16e
JM
17832002-01-22 Jason Merrill <jason@redhat.com>
1784
b5856475
JM
1785 * parse.y (function_body): Suppress the block for the outermost
1786 curly braces.
1787 * decl.c (pushdecl): Don't try to skip it.
1788 (begin_function_body): Keep the block we create, not the next one.
1789 * init.c (emit_base_init): Don't mess with keep_next_level.
1790
6bc34b14
JM
1791 * class.c (build_base_path): Tweak formatting.
1792
3807621a
NS
17932002-01-19 Nathan Sidwell <nathan@codesourcery.com>
1794
1795 Fix regression introduced with patch for c++/775
1796 * parse.y (class_head_defn): Check for template specializations
1797 with a different class-key.
1798
cdd2559c
JM
17992002-01-17 Jason Merrill <jason@redhat.com>
1800
1801 * decl.c (begin_constructor_body, begin_destructor_body): New fns.
1802 (begin_function_body): Call them and keep_next_level.
1803 * init.c (emit_base_init): Call keep_next_level.
1804 * semantics.c (setup_vtbl_ptr): Lose.
1805 * cp-tree.h (struct cp_language_function): Remove vtbls_set_up_p.
1806 (vtbls_set_up_p): Lose.
1807 * pt.c (tsubst_expr, CTOR_INITIALIZER): Call emit_base_init.
1808 * method.c (do_build_copy_constructor): Likewise.
1809 (synthesize_method): Call finish_mem_initializers.
1810 * parse.y (nodecls): Likewise.
ad6b1795
JM
1811
1812 * error.c (dump_type_suffix): Print the exception specs before
1813 recursing.
1814 (dump_function_decl): Here, too.
1815
1816 * cp-tree.h (TMPL_PARMS_DEPTH): Cast to signed HOST_WIDE_INT.
1817
195a5def
IR
18182002-01-10 Ira Ruben <ira@apple.com>
1819
6bc34b14 1820 PR c++/907
195a5def
IR
1821 * decl.c (start_method): Handle attrlist.
1822
f21ee879
JJ
18232002-01-10 Jakub Jelinek <jakub@redhat.com>
1824
1825 * decl2.c (max_tinst_depth): Increase default limit to 500.
1826
18272002-01-10 Graham Stott <grahams@redhat.com>
8fabd4e2
GS
1828
1829 * spew.c (YYCHAR): Uppercase macro parameter and add
1830 parenthesis.
1831 (YYCODE): Likewise.
1832 (NAME): Uppercase macro parameter.
1833
c3af729a
GS
18342002-01-09 Graham Stott <grahams@redhat.com>
1835
6bc34b14 1836 * decl.h (grokdeclarator): Wrap long line.
5d8b4235 1837
c3af729a
GS
1838 * semantics.c (FINISH_COND): Uppercase macro paramaters and
1839 add parenthesis.
1840
91800747
GS
18412002-01-08 Graham Stott <grahams@redhat.com>
1842
1843 * xref.c (FILE_NAME_ABSOLUTE_P): Add parenthesis.
1844 (PALLOC): Uppercase macro parameter and whitespace.
1845 (SALLOC): Uppercase macro parameter.
1846 (SFREE): Uppercase macros parameter, add parenthese and
1847 whitespace.
1848 (STREQL): Uppercase macro parameter and whitespace.
1849 (STRNEQ): Likewise.
1850 (STRLSS): Likewise.
1851 (STRLEQ): Likewise.
1852 (STRGTR): Likewise.
1853 (STRGEQ): Likewise.
1854
1855 * call.c (convert_like): Add parenthesis and wrap.
1856 (convert_like_with_context): Likewise.
1857 (ICS_RANK): Whitespace.
1858 (NEED_TEMPORARY_P): Remove parenthesis.
1859
1860 * class.c (VTT_TOP_LEVEL_P): Uppercase macro parameter and
1861 whitespace.
1862 (VTT_MARKED_BINFO_P): Likewise.
1863
1864 * decl.c (BINDING_LEVEL): Add parenthesis.
1865 (DEF_OPERATOR): Likewise.
1866
91800747
GS
1867 * mangle.c (MANGLE_TRACE): Add parenthesis.
1868 (MANGLE_TRACE_TREE): Likewise.
1869 (write_signed_number): Likewise.
1870 (write_unsigned_number): Likewise.
1871
1872 * pt.c (ccat): Uppercase macro parameter.
1873 (cat): Likewise
1874
1875 * search.c (SET_BINFO_ACCESS): Add parenthesis.
1876
15eb1e43
JM
18772002-01-07 Jason Merrill <jason@redhat.com>
1878
1879 * decl2.c (coerce_new_type): Downgrade error for size_t mismatch
1880 to pedwarn.
1881
6bc34b14 1882 PR c++/3536
15eb1e43
JM
1883 * method.c (make_thunk): If !flag_weak, give the thunk the
1884 function's linkage.
1885 (use_thunk): Here, too.
1886
b34c06e3
GS
18872002-01-07 Graham Stott <grahams@redhat.com>
1888
6bc34b14
JM
1889 * error.c: Update copyright date.
1890 (print_scope_operator): Add parenthesis.
1891 (print_left_paren): Likewise.
1892 (print_right_paren): Likewise.
1893 (print_left_bracket): Likewise.
1894 (print_right_bracket): Likewise.
1895 (print_template_argument_list_start): Likewise.
1896 (print_template_argument_list_end): Likewise.
1897 (print_non_consecutive_character): Likewise.
1898 (print_tree_identifier): Likewise.
1899 (print_identifier): Likewise.
1900 (NEXT_CODE): Uppercase macro parameter.
1901 (ident_fndecl): Delete unused.
1902 (GLOBAL_THING): Likewise.
b34c06e3 1903
98e40e83
GS
19042002-01-06 Graham Stott <grahams@redhat.com>
1905
1906 * cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK): Add parenthesis.
1907 (VAR_FUNCTION_OR_PARM_DECL_CHECK): Likewise.
1908 (VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK) Likewise.
1909 (RECORD_OR_UNION_TYPE_CHECK): Likewise.
1910 (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Likewise.
1911 (C_IS_RESERVED_WORD): Uppercase macro parameter.
1912 (C_RID_YYCODE) Likewise.
1913 (ptrmem_cst): Use rtx.
1914 (LOCAL_BINDING_P): Add whitespace.
1915 (INHERITED_VALUE_BINDING_P): Likewise.
1916 (BINDING_SCOPE): Wrap long line.
1917 (BINDING_HAS_LEVEL_P): Remove parenthesis.
1918 (BINDING_VALUE): Wrap long line.
1919 (BINDING_TYPE): Whitespace.
1920 (IDENTIFIER_GLOBAL_VALUE): Add parenthesis.
1921 (SET_IDENTIFIER_GLOBAL_VALUE): Likewise.
c588e52b 1922 (IDENTIFIER_NAMESPACE_VALUE): Likewise.
98e40e83
GS
1923 (SET_IDENTIFIER_NAMESPACE_VALUE: Likewise.
1924 (same_type_p): Uppercase macro parameters.
1925 (same_type_ignoring_top_level_qualifiers_p): Likewise.
1926 (OVL_FUNCTION): Wrap long line.
1927 (OVL_CHAIN): Whitespace.
b34c06e3 1928 (OVL_CURRENT): Add parenthesis and whitespace.
98e40e83
GS
1929 (OVL_NEXT): Whitespace.
1930 (OVL_USED): Likewise.
1931 (IDENTIFIER_TYPE_VALUE): Likewise.
1932 (REAL_IDENTIFIER_TYPE_VALUE): Remove parenthesis.
1933 (SET_IDENTIFIER_TYPE_VALUE): Add parenthesis and whitespace.
1934 (LANG_ID_FIELD): Whitespace.
1935 (SET_LANG_ID(NODE,VALUE,NAME): Likewise.
1936 (IDENTIFIER_LABEL_VALUE): Whitespace and wrap.
1937 (SET_IDENTIFIER_LABEL_VALUE): Whitespace.
1938 (IDENTIFIER_IMPLICIT_DECL): Whitespace and wrap.
1939 (SET_IDENTIFIER_IMPLICIT_DECL); Whitespace.
1940 (IDENTIFIER_ERROR_LOCUS): Whitespace and wrap.
1941 (SET_IDENTIFIER_ERROR_LOCUS); Whitespace.
1942 (IDENTIFIER_VIRTUAL_P): Likewise.
1943 (IDENTIFIER_OPNAME_P): Likewise.
1944 (IDENTIFIER_TYPENAME_P): Remove parenthesis.
1945 (C_TYPE_FIELDS_READONLY): Uppercase macro parameters.
1946 (C_SET_EXP_ORIGINAL_CODE): Likewise.
1947 (TYPE_ASSEMBLER_NAME_STRING): Wrap long line.
1948 (TYPE_ASSEMBLER_NAME_LENGTH): Likewise.
1949 (IS_AGGR_TYPE): Uppercase macro parameter.
1950 (CLASS_TYPE_P): Likewise.
1951 (IS_AGGR_TYPE_CODE): Uppercase macro parameter and parenthesis.
1952 (IS_AGGR_TYPE_2): Whitespace.
1953 (TAGGED_TYPE_P): Uppercase macro parameter.
1954 (TYPE_BUILT_IN): Whitespace.
1955 (TYPE_FOR_JAVA): Likewise.
1956 (FUNCTION_ARG_CHAIN): Remove parenthesis.
1957 (FUNCTION_FIRST_USER_PARMTYPE): Add parenthesis.
1958 (FUNCTION_FIRST_USER_PARAM): Likewise.
1959 (PROMOTES_TO_AGGR_TYPE): Whitespace.
1960 (DERIVED_FROM_P): Add parenthesis and wrap.
1961 (UNIQUELY_DERIVED_FROM_P): Likewise.
1962 (ACCESSIBLY_UNIQUELY_DERIVED_P): Likewise.
1963 (PUBLICLY_UNIQUELY_DERIVED_P): Likewise.
1964 (CLASSTYPE_USE_TEMPLATE): Whitespace.
1965 (CLASSTYPE_INLINE_FRIENDS): Remove parenthesis.
1966 (TYPE_GETS_DELETE): Add parenthesis.
1967 (TYPE_HAS_CONVERSION): Add parenthesis and wrap.
1968 (TYPE_HAS_ASSIGN_REF): Likewise,
1969 (TYPE_HAS_CONST_ASSIGN_REF): Likewise.
1970 (TYPE_HAS_INIT_REF): Likewise.
1971 (TYPE_HAS_CONST_INIT_REF): Likewise.
1972 (TYPE_BEING_DEFINED): Likewise.
1973 (TYPE_LANG_SPECIFIC): Likewise.
1974 (CLASSTYPE_RTTI): Likewise.
1975 (TYPE_OVERLOADS_CALL_EXPR): Likewise.
1976 (TYPE_OVERLOADS_ARRAY_REF): Likewise.
1977 (TYPE_OVERLOADS_ARROW): Likewise.
1978 (TYPE_USES_MULTIPLE_INHERITANCE): Likewise.
1979 (TYPE_USES_VIRTUAL_BASECLASSES): Add parenthesis.
1980 (CLASSTYPE_METHOD_VEC): Likewise.
1981 (CLASSTYPE_MARKED_N): Likewise.
1982 (CLASSTYPE_MARKED): Likewise.
1983 (CLASSTYPE_MARKED2): Likewise.
1984 (CLASSTYPE_MARKED3): Likewise.
1985 (CLASSTYPE_MARKED4): Likewise.
1986 (CLASSTYPE_MARKED5): Likewise.
1987 (CLASSTYPE_MARKED6): Likewise.
1988 (SET_CLASSTYPE_MARKED): Whitespace.
1989 (CLEAR_CLASSTYPE_MARKED): Likewise.
1990 (SET_CLASSTYPE_MARKED2): Likewise.
1991 (CLEAR_CLASSTYPE_MARKED2): Likewise.
1992 (SET_CLASSTYPE_MARKED3): Likewise.
1993 (CLEAR_CLASSTYPE_MARKED3): Likewise.
1994 (SET_CLASSTYPE_MARKED4): Likewise.
1995 (CLEAR_CLASSTYPE_MARKED4): Likewise.
1996 (SET_CLASSTYPE_MARKED5): Likewise.
1997 (CLEAR_CLASSTYPE_MARKED5): Likewise.
1998 (SET_CLASSTYPE_MARKED6): Likewise.
1999 (CLEAR_CLASSTYPE_MARKED6): Likewise.
2000 (CLASSTYPE_TAGS): Likewise.
2001 (CLASSTYPE_VSIZE): Likewise.
2002 (CLASSTYPE_VBASECLASSES): Likewise.
2003 (CANONICAL_BINFO): Add parenthesis.
2004 (CLASSTYPE_SIZE(NODE): Likewise.
2005 (CLASSTYPE_SIZE_UNIT): Likewise.
2006 (CLASSTYPE_ALIGN(NODE): Likewise.
2007 (CLASSTYPE_USER_ALIGN): Likewise.
2008 (TYPE_JAVA_INTERFACE): Likewise.
2009 (CLASSTYPE_PURE_VIRTUALS): Likewise.
2010 (CLASSTYPE_NEEDS_VIRTUAL_REINIT): Whitespace and wrap.
2011 (TYPE_HAS_DEFAULT_CONSTRUCTOR): Likewise.
2012 (CLASSTYPE_HAS_MUTABLE): Likewise.
2013 (CLASSTYPE_FRIEND_CLASSES): Likewise. Likewise.
2014 (CLASSTYPE_DECLARED_CLASS): Whitespace and wrap.
2015 (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Likewise.
2016 (CLASSTYPE_REF_FIELDS_NEED_INIT): Likewise.
2017 (CLASSTYPE_INTERFACE_ONLY): Likewise.
2018 (CLASSTYPE_INTERFACE_KNOWN): Likewise.
2019 (CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
2020 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
2021 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
2022 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
2023 (CLASSTYPE_DEBUG_REQUESTED): Whitespace and wrap.
2024 (BINFO_UNSHARED_MARKED): Whitespace.
2025 (BINFO_MARKED): Whitespace and wrap.
2026 (SET_BINFO_MARKED): Likewise.
2027 (CLEAR_BINFO_MARKED): Likewise.
2028 (BINFO_VTABLE_PATH_MARKED): Likewise.
2029 (SET_BINFO_VTABLE_PATH_MARKED): Likewise.
2030 (CLEAR_BINFO_VTABLE_PATH_MARKED): Likewise.
2031 (BINFO_SUBVTT_INDEX): Remove parenthesis.
2032 (BINFO_VPTR_INDEX): Likewise.
2033 (BINFO_PRIMARY_BASE_OF): Likewise,
2034 (CLASSTYPE_VFIELDS): Whitespace.
2035 (VF_DERIVED_VALUE): Wrap long line.
2036 (NAMESPACE_LEVEL): Whitespace.
6bc34b14
JM
2037 (CAN_HAVE_FULL_LANG_DECL_P): Remove parenthesis.
2038 (DEFARG_POINTER): Whitespace.
2039 (DECL_NEEDED_P): Remove parenthesis.
2040 (DECL_LANGUAGE): Whitespace.
2041 (SET_DECL_LANGUAGE): Add parenthesis.
2042 (DECL_CONSTRUCTOR_P): Whitespace and wrap.
2043 (DECL_OVERLOADED_OPERATOR_P): Remove parenthesis.
2044 (DECL_IN_AGGR_P): Whitespace.
2045 (DECL_FRIEND_P): Likewise.
2046 (DECL_BEFRIENDING_CLASSES): Likewise.
2047 (DECL_STATIC_FUNCTION_P): Whitespace and wrap.
2048 (DECL_NONCONVERTING_P): Whitespace.
2049 (DECL_PURE_VIRTUAL_P): Likewise.
2050 (DECL_NEEDS_FINAL_OVERRIDER_P): Likewise.
2051 (DECL_PENDING_INLINE_INFO): Whitespace.
2052 (DECL_SORTED_FIELDS): Likewise.
2053 (DECL_DEFERRED_FN): Likewise.
2054 (DECL_TEMPLATE_INFO): Likewise.
2055 (CLASSTYPE_TEMPLATE_INFO): Whitespace and wrap.
2056 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO); Likewise.
2057 (SET_TYPE_TEMPLATE_INFO): Add parenthesis.
2058 (TMPL_ARGS_LEVEL): Likewise.
2059 (SET_TMPL_ARGS_LEVEL): Likewise.
2060 (INNERMOST_TEMPLATE_PARMS): Whitespace.
2061 (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter.
2062 (INTEGRAL_CODE_P(CODE): Add parenthesis.
2063 (CP_INTEGRAL_TYPE_P): Remove parenthesis.
2064 (TYPE_HAS_CONSTRUCTOR): Whitespace.
2065 (TREE_HAS_CONSTRUCTOR): Likewise.
2066 (TYPE_HAS_DESTRUCTOR): Likewise.
2067 (TYPE_HAS_REAL_ASSIGN_REF): Likewise.
2068 (TYPE_HAS_COMPLEX_ASSIGN_REF): Likewise.
2069 (TYPE_HAS_ABSTRACT_ASSIGN_REF): Likewise.
2070 (TYPE_HAS_COMPLEX_INIT_REF): Likewise.
2071 (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): Likewise.
2072 (TYPE_PTRMEMFUNC_P): Likewise.
2073 (TYPE_PTRMEMFUNC_FLAG): Likewise.
2074 (TYPE_GET_PTRMEMFUNC_TYPE): Likewise.
2075 (TYPE_SET_PTRMEMFUNC_TYPE): Likewise.
2076 (TYPE_PTRMEM_CLASS_TYPE): Remove parenthesis.
2077 (TYPE_PTRMEM_POINTED_TO_TYPE): Likewise.
2078 (DECL_ACCESS): Whitespace.
2079 (DECL_GLOBAL_CTOR_P): Remove parenthesis.
2080 (DECL_GLOBAL_DTOR_P): Likewise.
2081 (GLOBAL_INIT_PRIORITY): Likewise.
98e40e83 2082 (DECL_TEMPLATE_PARMS): Likewise.
6bc34b14
JM
2083 (DECL_TEMPLATE_RESULT): Likewise.
2084 (DECL_TEMPLATE_INSTANTIATIONS): Likewise.
2085 (DECL_TEMPLATE_SPECIALIZATIONS): Likewise.
2086 (DECL_IMPLICIT_TYPEDEF_P): Remove parenthesis.
2087 (SET_DECL_IMPLICIT_TYPEDEF_P): Likewise.
2088 (PRIMARY_TEMPLATE_P): Add parenthesis.
2089 (DECL_USE_TEMPLATE): Whitespace.
2090 (CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise.
2091 (SET_CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise.
2092 (CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise.
2093 (SET_CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise.
2094 (CALL_DECLARATOR_PARMS): Remove parenthesis.
2095 (CALL_DECLARATOR_QUALS): Likewise.
2096 (CALL_DECLARATOR_EXCEPTION_SPEC): Likewise.
2097 (TEMP_NAME_P): Wrap.
2098 (VFIELD_NAME_P): Likewise.
2099 (B_SET): Uppercase macro parameters and add parenthesis.
2100 (B_CLR): Likewise.
2101 (B_TST): Likewise.
2102 (LOOKUP_NAMESPACES_ONLY): Uppercase macro parameters.
2103 (LOOKUP_TYPES_ONLY): Uppercase macro parameters.
2104 (LOOKUP_QUALIFIERS_ONLY): Uppercase macro parameters.
2105 (same_or_base_type_p): Likewise.
2106 (cp_deprecated): Likewise.
98e40e83 2107
c28abdf0
RH
21082002-01-05 Richard Henderson <rth@redhat.com>
2109
15eb1e43 2110 * semantics.c (expand_body): Revert last change.
c28abdf0 2111
f11ee281
JM
21122002-01-04 Jason Merrill <jason@redhat.com>
2113
195a5def 2114 PR c++/4122
f11ee281
JM
2115 * class.c (update_vtable_entry_for_fn): Set delta to zero for a
2116 lost primary.
2117
2118 * class.c (build_vtbl_initializer): Check for a lost primary
2119 before calculating the vtable entry to throw away.
2120
a4200657
JM
21212002-01-02 Jason Merrill <jason@redhat.com>
2122
2123 * semantics.c (expand_body): Call outlining_inline_function when
2124 emitting an inline function out of line.
2125
40e593d7
NS
21262002-01-02 Nathan Sidwell <nathan@codesourcery.com>
2127
2128 PR c++/5116, c++/764 reversion
2129 * call.c (build_new_op): Revert the instantiations. They are
2130 incorrect.
c588e52b 2131
323728aa
NS
21322002-01-02 Nathan Sidwell <nathan@codesourcery.com>
2133
2134 PR c++/5089
2135 * decl2.c (reparse_absdcl_as_casts): Don't warn about casts to void.
2136
46c895ac
NS
21372002-01-02 Nathan Sidwell <nathan@codesourcery.com>
2138
2139 PR c++/3716
2140 * pt.c (tsubst_aggr_type): Move pmf handling into tsubst.
2141 (tsubst, case POINTER_TYPE): Handle pmfs here.
2142 (tsubst, case OFFSET_TYPE): Check it is not an offset to
2143 reference. If it is offset to FUNCTION_TYPE, create a METHOD_TYPE.
2144
833aa4c4
NS
21452002-01-02 Nathan Sidwell <nathan@codesourcery.com>
2146
2147 PR c++/35
2148 * cp-tree.h (DECL_LANG_FLAG_0): Used for PARM_DECL too.
2149 (DECL_TEMPLATE_PARM_P): A PARM_DECL might be one too.
2150 * pt.c (process_template_parm): SET_DECL_TEMPLATE_PARM_P on the
2151 PARM_DECL.
2152 (tsubst_template_parms): Break up loop statements.
2153 (tsubst_decl, case PARM_DECL): Copy DECL_TEMPLATE_PARM_P. Template
2154 parm PARM_DECLs don't get promoted.
2155
18976b21
NS
21562002-01-02 Nathan Sidwell <nathan@codesourcery.com>
2157
2158 PR c++/5123
2159 * typeck.c (build_component_ref): Cope with a TEMPLATE_ID_EXPR.
2160 (build_x_function_call): Cope with a COMPONENT_REF containing a
2161 TEMPLATE_ID_EXPR.
2162
303d1c55
NS
21632002-01-02 Nathan Sidwell <nathan@codesourcery.com>
2164
2165 PR c++/5213
2166 * pt.c (convert_template_argument): Be more careful determining
2167 when RECORD_TYPE templates are or are not templates.
2168
d46a33b3
NS
21692002-01-02 Nathan Sidwell <nathan@codesourcery.com>
2170
2171 PR c++/775
2172 * cp-tree.h (handle_class_head): Adjust prototype.
2173 * decl2.c (handle_class_head): Add DEFN_P and NEW_TYPE_P
2174 parameters. Use for all class heads.
2175 * parse.y (named_class_head_sans_basetype, named_class_head,
2176 named_complex_class_head_sans_basetype,
2177 named_class_head_sans_basetype_defn,
2178 unnamed_class_head): Remove.
2179 (class_head, class_head_apparent_template): Recognize class heads
2180 (class_head_decl, class_head_defn): New reductions. Process class
2181 heads.
2182 (structsp): Adjust class definition and class declaration
2183 reductions.
2184 (maybe_base_class_list): Give diagnostic on empty list.
2185
4542128e
NS
21862002-01-02 Nathan Sidwell <nathan@codesourcery.com>
2187
2188 PR c++/4379
2189 * typeck.c (build_x_unary_op): Don't destroy the OFFSET_REF on a
2190 single non-static member.
2191 (unary_complex_lvalue): If it cannot be a pointer to member, don't
2192 make it so. Check it is not pointer to reference.
2193
903c6234
NS
21942002-01-02 Nathan Sidwell <nathan@codesourcery.com>
2195
2196 PR c++/5132
2197 * decl2.c (reparse_absdcl_as_casts): Don't digest_init if we
2198 are processing a template decl.
2199
477558bf
NS
22002002-01-02 Nathan Sidwell <nathan@codesourcery.com>
2201
2202 PR c++/5116, c++/764
2203 * call.c (build_new_op): Make sure template class operands are
2204 instantiated. Simplify arglist construction.
2205
41f5d4b1
NS
22062001-12-29 Nathan Sidwell <nathan@codesourcery.com>
2207
2208 * call.c (build_user_type_conversion_1): Use my_friendly_assert
2209 rather than if ... abort.
2210 * cvt.c (convert_to_reference): Likewise.
2211 * semantics.c (setup_vtbl_ptr): Likewise.
2212 * pt.c (lookup_template_class): Comment typo.
c588e52b 2213
f3368a90
NS
22142001-12-29 Nathan Sidwell <nathan@codesourcery.com>
2215
2216 PR c++/5125
2217 * pt.c (push_template_decl_real): Make sure DECL has
2218 DECL_LANG_SPECIFIC.
2219
03c9c274
NS
22202001-12-29 Nathan Sidwell <nathan@codesourcery.com>
2221
2222 PR c++/335
2223 * init.c (resolve_offset_ref): Copy cv qualifiers of this pointer
2224 for non-reference fields.
2225 * typeck.c (require_complete_type): Use resolve_offset_ref).
2226
7d8e8369
NS
22272001-12-26 Nathan Sidwell <nathan@codesourcery.com>
2228
2229 PR c++/196
03c9c274 2230 * parse.y (bad_parm): Better diagnostic when given a SCOPE_REF.
7d8e8369 2231
a56ca899
NS
22322001-12-24 Nathan Sidwell <nathan@codesourcery.com>
2233
2234 PR c++/160
2235 * typeck.c (build_modify_expr): Remove old unreachable code & tidy
2236 up. Don't stabilize_references when initializing a reference.
2237
0b5826ac
KG
22382001-12-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2239
2240 * decl2.c (lang_f_options): Const-ify.
2241
38be19f6
JM
22422001-12-20 Joseph S. Myers <jsm28@cam.ac.uk>
2243
2244 * config-lang.in (diff_excludes): Remove.
2245
2e4cf9dc
NS
22462001-12-19 Nathan Sidwell <nathan@codesourcery.com>
2247
2248 PR c++/90
2249 * typeck.c (build_function_call_real): Use original function
2250 expression for errors.
2251
00e4119c
JM
22522001-12-18 Jason Merrill <jason@redhat.com>
2253
195a5def 2254 PR c++/3242
00e4119c
JM
2255 * class.c (add_method): Do compare 'this' quals when trying to match a
2256 used function. Don't defer to another used function.
2257
3ad97789
NS
22582001-12-18 Nathan Sidwell <nathan@codesourcery.com>
2259
2260 * pt.c (instantiate_clone): Remove, fold into ...
2261 (instantiate_template): ... here. Simplify by removing mutual
2262 recursion.
2263 * typeck2.c (build_m_component_ref): Don't cv qualify the function
2264 pointed to by a pointer to function.
2265 * class.c (delete_duplicate_fields_1): Typo.
2266
f21add07
JM
22672001-12-18 Jason Merrill <jason@redhat.com>
2268
2269 C++ ABI change: destroy value arguments in caller.
2270 * semantics.c (genrtl_start_function, genrtl_finish_function): Don't
2271 create an extra binding level for the parameters.
2272 * decl.c (store_parm_decls): Don't do parameter cleanups.
2273
ea50ad82
NS
22742001-12-18 Nathan Sidwell <nathan@codesourcery.com>
2275
2276 * call.c (build_new_method_call): Use '%#V'.
2277 * error.c (cv_to_string): Use V parameter to determine padding.
2278
3855d0d1
JM
22792001-12-18 Joseph S. Myers <jsm28@cam.ac.uk>
2280
2281 * call.c, decl2.c, init.c: Use "built-in" and "bit-field"
2282 spellings in messages.
2283
33bd39a2
ZW
22842001-12-17 Zack Weinberg <zack@codesourcery.com>
2285
2286 * cp-tree.h: Delete #defines for cp_error, cp_warning,
2287 cp_pedwarn, and cp_compiler_error.
2288 * call.c, class.c, cp-tree.h, cvt.c, decl.c, decl2.c, error.c,
2289 except.c, friend.c, init.c, lex.c, method.c, parse.y, pt.c,
2290 rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c,
2291 typeck2.c: Change calls to the above macros to use their
2292 language-independent equivalents: error, warning, pedwarn, and
2293 internal_error respectively.
2294
317c26c3
NB
22952001-12-16 Neil Booth <neil@daikokuya.demon.co.uk>
2296
2297 * decl2.c (finish_file): Remove back_end_hook.
2298
aba649ba
JM
22992001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
2300
2301 * ChangeLog.1, ChangeLog.2, ChangeLog, NEWS, call.c, class.c,
2302 cp-tree.h, decl.c, decl2.c, except.c, operators.def, optimize.c,
2303 pt.c, rtti.c, semantics.c, typeck.c: Fix spelling errors.
2304
1737c953
JM
23052001-12-15 Joseph S. Myers <jsm28@cam.ac.uk>
2306
2307 * lang-options.h: Use American spelling in messages.
2308
4a90862e
JM
23092001-12-13 Jason Merrill <jason@redhat.com>
2310
ade3dc07
JM
2311 * Make-lang.in (parse.h): Separate rule, just depend on parse.c.
2312
2313 Use cleanups to run base and member destructors.
2314 * init.c (push_base_cleanups): New function, split out from...
2315 (build_delete): ...here. Lose !TYPE_HAS_DESTRUCTOR code.
2316 * decl.c (finish_destructor_body): Move vbase destruction code to
2317 push_base_cleanups.
2318 (begin_function_body, finish_function_body): New fns.
2319 (finish_function): Move [cd]tor handling and call_poplevel to
2320 finish_function_body.
2321 (pushdecl): Skip the new level.
2322 * semantics.c (genrtl_try_block): Don't call end_protect_partials.
2323 (setup_vtbl_ptr): Call push_base_cleanups.
2324 * method.c (synthesize_method): Call {begin,end}_function_body.
2325 * pt.c (tsubst_expr): Handle COMPOUND_STMT_BODY_BLOCK.
2326 * cp-tree.h: Declare new fns.
2327 * parse.y (function_body, .begin_function_body): New nonterminals.
2328 (fndef, pending_inline, function_try_block): Use function_body.
2329 (ctor_initializer_opt, function_try_block): No longer has a value.
2330 (base_init): Remove .set_base_init token.
2331 (.set_base_init, compstmt_or_error): Remove.
2332 * Make-lang.in (parse.c): Expect two fewer s/r conflicts.
2333
4a90862e
JM
2334 * optimize.c (maybe_clone_body): Fix parameter updating.
2335
a0de9d20
JM
23362001-12-12 Jason Merrill <jason@redhat.com>
2337
2338 * decl.c (store_parm_decls): Remove parms_have_cleanups cruft.
2339 * semantics.c (genrtl_start_function): Don't pass
2340 parms_have_cleanups or push an extra binding level.
2341 (genrtl_finish_function): Lose cleanup_label cruft.
2342
2343 * cp-tree.h (struct cp_language_function): Remove x_ctor_label.
2344 (ctor_label): Remove.
2345 * semantics.c (finish_return_stmt): Lose ctor_label support.
2346 * decl.c (finish_constructor_body, mark_lang_function): Likewise.
33bd39a2 2347 * typeck.c (check_return_expr): Check DECL_DESTRUCTOR_P, not
a0de9d20
JM
2348 dtor_label.
2349
2350 * call.c (build_new_method_call): Let resolves_to_fixed_type_p
2351 check for [cd]tors.
2352 * class.c (fixed_type_or_null, case INDIRECT_REF): Fix.
2353
2354 * decl.c (finish_function): Check VMS_TARGET, not VMS.
2355
2356 * decl.c (start_cleanup_fn): Remove redundant pushlevel.
2357 (end_cleanup_fn): And poplevel.
2358
2359 * semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER
2360 if we're in a template.
2361
dc5c569a
JJ
23622001-12-12 Jakub Jelinek <jakub@redhat.com>
2363
2364 * cp-tree.h (DESTRUCTOR_DECL_PREFIX, DESTRUCTOR_NAME_P,
2365 ANON_PARMNAME_FORMAT, ANON_PARMNAME_P, DESTRUCTOR_NAME_FORMAT,
2366 THIS_NAME_P): Delete.
2367 * spew.c (read_process_identifier): Remove DESTRUCTOR_NAME_P,
2368 THIS_NAME_P and ANON_PARMNAME_P tests from warning about clash
2369 with internal naming scheme.
2370 * error.c (dump_decl): Remove DESTRUCTOR_NAME_P use.
2371
ad1a6d45
NS
23722001-12-12 Nathan Sidwell <nathan@codesourcery.com>
2373
2374 * decl.c (grokdeclarator): Deprecated implicit typename use.
2375
270d8c65
NS
23762001-12-11 Nathan Sidwell <nathan@codesourcery.com>
2377
2378 PR g++/51
2379 * parse.y (frob_specs): Indicate it is a language linkage which
2380 contained the extern.
2381 * decl.c (grokdeclarator): Allow extern language linkage with
2382 other specifiers.
2383
9aaceb4b
NS
23842001-12-10 Nathan Sidwell <nathan@codesourcery.com>
2385
2386 PR g++/72
2387 * decl.c (add_binding): Don't reject duplicate typedefs involving
2388 template parameters.
2389
a23c9413
NB
23902001-12-10 Neil Booth <neil@daikokuya.demon.co.uk>
2391
2392 * parse.y, semantics.c: Similarly.
2393
9aaceb4b 23942001-12-09 Nathan Sidwell <nathan@codesourcery.com>
271e6f02
NS
2395
2396 PR g++/87
2397 * cp-tree.h (DECL_COPY_CONSTRUCTOR_P): Use copy_fn_p.
2398 (copy_args_p): Rename to ...
2399 (copy_fn_p): ... here.
2400 (grok_special_member_properties): New function.
2401 (grok_op_properties): Lose VIRTUALP parameter.
2402 (copy_assignment_arg_p): Remove.
2403 * call.c (build_over_call): Use copy_fn_p.
2404 * decl.c (grokfndecl): Reformat. Adjust call to
2405 grok_op_properties.
2406 (copy_args_p): Rename to ...
2407 (copy_fn_p): ... here. Reject template functions. Check for pass
2408 by value.
2409 (grok_special_member_properties): Remember special functions.
2410 (grok_ctor_properties): Don't remember them here, just check.
2411 (grok_op_properties): Likewise.
2412 (start_method): Call grok_special_member_properties.
2413 * decl2.c (grokfield): Likewise.
2414 (copy_assignment_arg_p): Remove.
2415 (grok_function_init): Don't remember abstract assignment here.
2416 * pt.c (instantiate_class_template): Call
2417 grok_special_member_properties.
2418 (tsubst_decl): Adjust grok_op_properties call.
2419
bdd8737f
AH
24202001-12-08 Aldy Hernandez <aldyh@redhat.com>
2421
33bd39a2
ZW
2422 * lex.c (rid_to_yy): Add RID_CHOOSE_EXPR and
2423 RID_TYPES_COMPATIBLE_P.
bdd8737f 2424
46af705a
JDA
24252001-12-08 John David Anglin <dave@hiauly1.hia.nrc.ca>
2426
2427 * semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in
2428 call to build_aggr_init.
2429 * cp-tree.h (DIRECT_BIND): Document new use of DIRECT_BIND.
2430
cb97d97d
NB
24312001-12-08 Neil Booth <neil@daikokuya.demon.co.uk>
2432
2433 * parse.y: Replace uses of the string non-terminal with STRING.
2434 Don't perform string concatentaion here.
2435 (string): Remove non-terminal.
2436 * semantics.c (finish_asm_stmt): Don't concatenate strings here.
2437
742a37d5
JM
24382001-12-05 Jason Merrill <jason@redhat.com>
2439
2440 * cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define.
2441 (LANG_HOOKS_TREE_INLINING_END_INLINING): Define.
2442 * tree.c (cp_start_inlining, cp_end_inlining): New fns.
2443 * pt.c (push_tinst_level): No longer static.
2444 * cp-tree.h: Declare them.
2445
2446 * init.c (resolve_offset_ref): Don't check access for the base
2447 conversion to access a FIELD_DECL.
2448
2449 * cp-tree.h (TYPE_REFFN_P): New macro.
2450 * decl.c (bad_specifiers): Check it, too.
2451
2452 * rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY
2453 on the __*_type_info type if we haven't seen a definition.
2454
26f943fd
NB
24552001-12-05 Neil Booth <neil@daikokuya.demon.co.uk>
2456
2457 * decl.c: Include c-common.h.
2458 (shadow_warning): Move to c-common.c.
2459
37a08a29
RK
2460Wed Dec 5 17:00:49 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2461
2462 * decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE.
2463
9471d3e2
NS
24642001-12-04 Nathan Sidwell <nathan@codesourcery.com>
2465
2466 * pt.c (end_template_parm_list): Clear TREE_CHAIN of each parm.
2467
713ccd0c
NS
24682001-12-04 Nathan Sidwell <nathan@codesourcery.com>
2469
2470 PR g++/164
2471 * init.c (sort_base_init): Allow binfos to be directly specified.
2472 * method.c (do_build_copy_constructor): Explicitly convert to the
2473 base instance.
2474 (do_build_assign_ref): Likewise.
2475
591382c4
HPN
24762001-12-03 Hans-Peter Nilsson <hp@bitrange.com>
2477
2478 * decl.c (xref_basetypes): Don't use C99 construct in tag_code
2479 declaration and initialization.
2480
c725bd79
NB
24812001-12-03 Neil Booth <neil@daikokuya.demon.co.uk>
2482
2483 * typeck2.c: Remove leading capital from diagnostic messages, as
2484 per GNU coding standards.
2485
a5d7c4a3
MK
24862001-12-03 Mumit Khan <khan@nanotech.wisc.edu>
2487
2488 PR c++/3394
9fe038e8
HPN
2489 * decl.c (xref_basetypes): Handle attributes between
2490 'class' and name.
a5d7c4a3 2491
f1880e13
NS
24922001-12-03 Nathan Sidwell <nathan@codesourcery.com>
2493
2494 PR g++/3381
2495 * parse.y (named_complex_class_head_sans_basetype): Add new
2496 reduction.
2497 * Make-lang.in (parse.c): Adjust expected conflict count.
2498
ff668506
JM
24992001-12-03 Jason Merrill <jason@redhat.com>
2500
2501 * class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the
2502 immediate binfos for our virtual bases.
2503
1f978f5f
NB
25042001-12-02 Neil Booth <neil@daikokuya.demon.co.uk>
2505
2506 * call.c (build_java_interface_fn_ref): Similarly.
2507 * except.c (is_admissible_throw_operand): Similarly.
2508 * init.c (build_java_class_ref): Similarly.
2509 * xref.c (open_xref_file): Similarly.
2510
357351e5
NB
25112001-12-01 Neil Booth <neil@daikokuya.demon.co.uk>
2512
2513 * class.c (finish_struct): Remove trailing periods from messages.
2514 * decl.c (check_tag_decl): Similarly.
2515 * lex.c (cxx_set_yydebug): Similarly.
2516 * typeck2.c (friendly_abort): Similarly.
2517
998979e6
MM
25182001-11-29 Mark Mitchell <mark@codesourcery.com>
2519
2520 PR c++/3048
2521 * cp-tree.h (ovl_member): Remove.
33bd39a2 2522 * decl2.c (merge_functions): Handle extern "C" functions
998979e6
MM
2523 specially.
2524 * tree.c (ovl_member): Remove.
2525
7d5b8b11
MM
25262001-11-29 Mark Mitchell <mark@codesourcery.com>
2527
2528 PR c++/4842
2529 * class.c (get_basefndecls): Take an IDENTIFIER_NODE, not a
2530 FUNCTION_DECL, as input.
2531 (mark_overriders): Remove.
2532 (warn_hidden): Rework for the new ABI.
2533
b67db529
MM
25342001-11-29 Mark Mitchell <mark@codesourcery.com>
2535
2536 PR c++/3471
2537 * call.c (convert_like_real): Do not build additional temporaries
2538 for rvalues of class type.
2539
2db1ab2d
NS
25402001-11-28 Nathan Sidwell <nathan@codesourcery.com>
2541
2542 * cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base.
2543 (ACCESSIBLY_UNIQUELY_DERIVED_FROM_P): Likewise.
2544 (PUBLICLY_UNIQUELY_DERIVED_FROM_P: Likewise.
2545 (DERIVED_FROM_P): Likewise.
2546 (enum base_access): Renumber, add ba_quiet bit mask.
2547 (get_binfo): Remove.
2548 (get_base_distance): Remove.
2549 (binfo_value): Remove.
2550 (ACCESSIBLY_DERIVED_FROM_P): Remove.
2551 * call.c (standard_conversion): Use lookup_base.
2552 * class.c (strictly_overrides): Likewise.
2553 (layout_virtual_bases): Likewise.
2554 (warn_about_ambiguous_direct_bases): Likewise.
2555 (is_base_of_enclosing_class): Likewise.
2556 (add_vcall_offset_vtbl_entries_1): Likewise.
2557 * cvt.c (build_up_reference): Adjust comment.
2558 * init.c (build_member_call): Reformat.
2559 * search.c (get_binfo): Remove.
2560 (get_base_distance_recursive): Remove.
2561 (get_base_distance): Remove.
2562 (lookup_base_r): Tweak.
2563 (lookup_base): Add ba_quiet control. Complete the types here.
2564 (covariant_return_p): Use lookup_base.
2565 * tree.c (binfo_value): Remove.
2566 (maybe_dummy_object): Use lookup_base.
2567 * typeck.c (build_static_cast): Use lookup_base.
2568 (get_delta_difference): Likewise.
2569 * typeck2.c (binfo_or_else): Use lookup_base.
2570 (build_scoped_ref): Add back error_mark_check.
2571 (build_m_component_ref): Use lookup_base.
2572
d3945f0a
JM
25732001-11-29 Joseph S. Myers <jsm28@cam.ac.uk>
2574
2575 * Make-lang.in (c++.generated-manpages): New dummy target.
2576
ac79cd5a
RK
2577Tue Nov 27 09:03:47 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2578
2579 * Make-lang.in (cp-lang.o): Depends on c-common.h.
2580 * cp-lang.c (c-common.h): Include.
2581 (LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks.
2582 * decl.c (cxx_init_decl_processing): Don't set lang_safe_from_p.
2583 * expr.c (init_cplus_expand): Don't set lang_expand_constant.
2584
4d6baafa
NB
25852001-11-26 Neil Booth <neil@daikokuya.demon.co.uk>
2586
2587 * decl2.c (c_language): Move to c-common.c.
2588 * lex.c (cxx_post_options, cxx_init_options): Use c-common.c
2589 functions.
2590 (cxx_init): Update.
2591
5b0c5896
JM
25922001-11-26 Jason Merrill <jason@redhat.com>
2593
2594 * call.c (joust): Remove COND_EXPR hack.
2595
4bdd26e6
AH
25962001-11-25 Aldy Hernandez <aldyh@redhat.com>
2597
195a5def 2598 * search.c (lookup_base_r): Declare bk in variable declaration
4bdd26e6 2599 space.
33bd39a2 2600
338d90b8
NS
26012001-11-25 Nathan Sidwell <nathan@codesourcery.com>
2602
2603 PR g++/3145
2604 * class.c (build_vbase_pointer): Remove.
2605 (build_vbase_path): Remove.
2606 (build_base_path): New function.
2607 * cp-tree.h (base_access, base_kind): New enumerations.
2608 (build_base_path): Declare.
2609 (convert_pointer_to_real): Remove.
2610 (convert_pointer_to): Remove.
2611 (lookup_base): Declare.
2612 (convert_pointer_to_vbase): Remove.
2613 * call.c (build_scoped_method_call): Use lookup_base &
2614 build_base_path instead of convert_pointer_to_real,
2615 get_base_distance & get_binfo.
2616 (build_over_call): Likewise.
2617 * cvt.c (cp_convert_to_pointer): Likewise.
2618 (convert_to_pointer_force): Likewise.
2619 (build_up_reference): Likewise.
2620 (convert_pointer_to_real): Remove.
2621 (convert_pointer_to): Remove.
2622 * init.c (dfs_initialize_vtbl_ptrs): Use build_base_path
2623 instead of convert_pointer_to_vbase & build_vbase_path.
2624 (emit_base_init): Use build_base_path instead of
2625 convert_pointer_to_real.
2626 (expand_virtual_init): Lose unrequired conversions.
2627 (resolve_offset_ref): Use lookup_base and build_base_path
2628 instead of convert_pointer_to.
2629 * rtti.c (build_dynamic_cast_1): Use lookup_base &
2630 build_base_path instead of get_base_distance & build_vbase_path.
2631 * search.c (get_vbase_1): Remove.
2632 (get_vbase): Remove.
2633 (convert_pointer_to_vbase): Remove.
07f521fc 2634 (lookup_base_r): New function.
338d90b8
NS
2635 (lookup_base): New function.
2636 * typeck.c (require_complete_type): Use lookup_base &
2637 build_base_path instead of convert_pointer_to.
2638 (build_component_ref): Likewise.
2639 (build_x_function_call): Likewise.
2640 (get_member_function_from_ptrfunc): Likewise.
2641 (build_component_addr): Likewise.
2642 * typeck2.c (build_scoped_ref): Likewise.
2643
89d684bb
BM
26442001-11-22 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
2645
2646 * cp-tree.h (CP_TYPE_QUALS): Removed.
2647 * decl.c (cxx_init_decl_processing): Don't set lang_dump_tree.
33bd39a2 2648 * cp-lang.c: Set LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN and
89d684bb 2649 LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN.
33bd39a2 2650 * dump.c (cp_dump_tree): Use void* dump_info argument to match
89d684bb
BM
2651 lang-hooks prototype.
2652 * call.c, cp-tree.h, cvt.c, decl.c, init.c, mangle.c, method.c, pt.c,
2653 rtti.c, semantics.c, tree.c, typeck.c, typeck2.c: All references to
2654 CP_TYPE_QUALS changed to cp_type_quals.
2655 * Make-lang.in: References to c-dump.h changed to tree-dump.h.
2656 (CXX_C_OBJS): Remove c-dump.o.
2657
12eb9f93 26582001-11-21 Mark Mitchell <mark@codesourcery.com>
2d2e8123
MM
2659
2660 PR c++/3637
12eb9f93
MM
2661 * pt.c (lookup_template_class): Ensure that all specializations
2662 are registered on the list corresponding to the most general
2663 template.
2664
26652001-11-20 Mark Mitchell <mark@codesourcery.com>
2666
2d2e8123 2667 * call.c (non_reference): Add documentation.
33bd39a2 2668 (convert_class_to_reference): Do not strip reference types
2d2e8123
MM
2669 from conversion operators.
2670 (maybe_handle_ref_bind): Simplify.
2671 (compare_ics): Correct handling of references.
2672
78a40378
MM
26732001-11-19 John Wilkinson <johnw@research.att.com>
2674
2675 * dump.c (dump_op): New function.
2676 (cp_dump_tree): Dump CLASSTYPE_TEMPLATE_SPECIALIZATION. Use
2677 dump_op. Dump DECL_MUTABLE, access and staticness for VAR_DECLs.
2678 DECL_PURE_VIRTUAL_P, DECL_VIRTUAL_P,
33bd39a2 2679
78a40378
MM
26802001-11-19 Mark Mitchell <mark@codesourcery.com>
2681
2682 PR4629
2683 * semantics.c (finish_sizeof): Make sure that expression created
2684 while processing a template do not have a type.
2685 (finish_alignof): Likewise.
2686 * typeck.c (c_sizeof): Likewise.
2687 (expr_sizeof): Likewise.
2688
22703ccc
NB
26892001-11-18 Neil Booth <neil@daikokuya.demon.co.uk>
2690
2691 * lex.c (cxx_finish): Call c_common_finish.
2692 (finish_parse): Remove.
2693
b3faacfd
KL
26942001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2695
2696 * decl.c (create_array_type_for_decl): Check if NAME is NULL_TREE
2697 when displaying error message about missing array bounds.
2698
873ff987
KL
26992001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2700
2701 * mangle.c (write_expression): Handle CAST_EXPR, STATIC_CAST_EXPR,
2702 CONST_CAST_EXPR.
2703 * operators.def: Add CAST_EXPR, STATIC_CAST_EXPR, CONST_CAST_EXPR.
2704
08f3a861
NB
27052001-11-16 Neil Booth <neil@daikokuya.demon.co.uk>
2706
2707 * cp-tree.h (print_class_statistics): Restore.
2708
8a2b77e7
JM
27092001-11-15 Jason Merrill <jason@redhat.com>
2710
3b1a4132
JM
2711 * method.c (use_thunk): Don't emit debugging information for thunks.
2712
8a2b77e7
JM
2713 * parse.y: Add ... IDENTIFIER SCOPE and ... PTYPENAME SCOPE expansions.
2714 * decl.c (make_typename_type): Handle getting a class template.
2715 * search.c (lookup_field_r): A class template is good enough for
2716 want_type.
2717
2718 * call.c (convert_like_real): Only use cp_convert for the bad part.
2719 (standard_conversion): Also allow bad int->enum.
2720 * typeck.c (ptr_reasonably_similar): Also allow functions to
2721 interconvert. Pointers to same-size integers are reasonably
2722 similar.
2723
2724 * cvt.c (convert_to_void): If we build a new COND_EXPR, always
2725 give it void type.
2726
36a68fe7
NS
27272001-11-15 Nathan Sidwell <nathan@codesourcery.com>
2728
2729 PR g++/3154
2730 * init.c (sort_base_init): Remove unreachable code.
2731 (expand_member_init): Adjust comment to reflect reality. Simplify
2732 and remove unreachable code.
2733
f5e99456
NB
27342001-11-15 Neil Booth <neil@daikokuya.demon.co.uk>
2735
2736 * cp-tree.h (init_reswords, cxx_init_decl_processing): New.
2737 (cxx_init): Update prototype.
2738 * decl.c (init_decl_processing): Rename. Move null node init
2739 to its creation time.
2740 * lex.c (cxx_init_options): Update.
2741 (cxx_init): Combine with old init_parse; also call
2742 cxx_init_decl_processing.
2743
fe5b6c1c
RS
27442001-11-14 Richard Sandiford <rsandifo@redhat.com>
2745
8a2b77e7
JM
2746 * decl.c (check_initializer): Try to complete the type of an
2747 array element before checking whether it's complete. Don't
2748 complain about arrays with complete element types but an
2749 unknown size.
2750 (cp_finish_decl): Build the hierarchical constructor before
2751 calling maybe_deduce_size_from_array_init.
fe5b6c1c 2752
77bd67cb
JM
27532001-11-14 Joseph S. Myers <jsm28@cam.ac.uk>
2754
2755 * Make-lang.in: Change all uses of $(manext) to $(man1ext).
2756
b02922a4
NS
27572001-11-13 Nathan Sidwell <nathan@codesourcery.com>
2758
2759 PR g++/4206
2760 * parse.y (already_scoped_stmt): Remove.
2761 (simple_stmt, WHILE & FOR): Use implicitly_scoped_stmt.
2762
abfc1ef6
L
27632001-11-12 H.J. Lu <hjl@gnu.org>
2764
195a5def 2765 * cvt.c (ocp_convert): Don't warn the address of a weak
abfc1ef6
L
2766 function is always `true'.
2767
5d69f816
NB
27682001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
2769
2770 * cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE,
2771 LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE,
2772 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override.
2773 * cp-tree.h (print_class_statistics): Remove.
2774 (cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type,
2775 cxx_print_identifier, cxx_set_yydebug): New.
2776 * lex.c (set_yydebug): Rename c_set_yydebug.
2777 * ptree.c (print_lang_decl, print_lang_type, print_lang_identifier,
2778 lang_print_xnode): Rename.
2779 * tree.c (print_lang_statistics): Rename.
2780
4fdc14ca
KG
27812001-11-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2782
2783 * class.c (dump_array): Fix format specifier warning.
2784
3ac88239
NB
27852001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
2786
2787 * cp-lang.c (LANG_HOOKS_NAME): Override.
2788 (struct lang_hooks): Constify.
2789 * lex.c (cxx_init_options): Update.
2790 (lang_identify): Remove.
33bd39a2 2791 * parse.y (language_string): Remove.
3ac88239 2792
b21d216c
AF
27932001-11-08 Andreas Franck <afranck@gmx.de>
2794
2795 * Make-lang.in (CXX_INSTALL_NAME, GXX_CROSS_NAME,
2796 DEMANGLER_CROSS_NAME): Handle program_transform_name the way
2797 suggested by autoconf.
2798 (GXX_TARGET_INSTALL_NAME, CXX_TARGET_INSTALL_NAME): Define.
2799 (c++.install-common): Use the transformed target alias names.
2800
d23c55c2
NB
28012001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk>
2802
2803 * Make-lang.in: Update.
2804 * cp-lang.c: Include langhooks-def.h.
2805
2a2b1d56
KL
28062001-11-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2807
2808 * pt.c (tsubst_copy): Call tsubst for TYPEOF_EXPR.
2809
76648a8b
KG
28102001-11-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2811
2812 * lex.c (copy_lang_type): Add static prototype.
2813
fccef71e
KL
28142001-11-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2815
2816 * pt.c (unify): Handle SCOPE_REF.
2817
19989812
JJ
28182001-11-01 Jakub Jelinek <jakub@redhat.com>
2819
2820 * tree.c (cp_copy_res_decl_for_inlining): Adjust
2821 DECL_ABSTRACT_ORIGIN for the return variable.
2822
5b7874aa
ZW
28232001-10-31 Zack Weinberg <zack@codesourcery.com>
2824
2825 * Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
2826
306ef644
JM
28272001-10-28 Joseph S. Myers <jsm28@cam.ac.uk>
2828
2829 * ChangeLog.1, ChangeLog.2, ChangeLog, class.c, decl2.c, search.c,
2830 semantics.c, spew.c: Fix spelling errors.
2831
76543000
KL
28322001-10-27 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2833
2834 * decl2.c (validate_nonmember_using_decl): Handle NAMESPACE_DECL.
2835
37207ee7
ZW
28362001-10-25 Zack Weinberg <zack@codesourcery.com>
2837
2838 * cp-lang.c: Redefine LANG_HOOKS_CLEAR_BINDING_STACK to
2839 pop_everything.
2840
8ac61af7
RK
2841Tue Oct 23 14:00:20 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2842
2843 * cp-lang.c (cxx_get_alias_set): New function.
2844 Point LANG_HOOKS_GET_ALIAS_SET to it.
2845
f1e09fa2 28462001-10-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
b8c6534b
KL
2847
2848 * cp-tree.def (UNBOUND_CLASS_TEMPLATE): New tree node.
2849 * cp-tree.h (make_unbound_class_template): Prototype new function.
2850 * decl.c (make_unbound_class_template): New function.
2851 * decl2.c (arg_assoc_template_arg): Handle UNBOUND_CLASS_TEMPLATE.
2852 * error.c (dump_type): Likewise.
2853 * mangle.c (write_type): Likewise.
2854 * parse.y (template_parm): Likewise.
2855 (template_argument): Use make_unbound_class_template.
2856 * pt.c (convert_template_argument): Handle UNBOUND_CLASS_TEMPLATE.
2857 (tsubst): Likewise.
2858 (tsubst_copy): Likewise.
2859 (unify): Likewise.
2860 * tree.c (walk_tree): Likewise.
2861 * typeck.c (comptypes): Likewise.
2862
0df6c2c7
KG
28632001-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2864
2865 * xref.c (GNU_xref_member): Use safe-ctype macros and/or fold
2866 extra calls into fewer ones.
2867
97055d5c
AO
28682001-10-18 Alexandre Oliva <aoliva@redhat.com>
2869
2870 * decl.c (duplicate_decls): Propagate DECL_UNINLINABLE.
2871 Warn when merging inline with attribute noinline.
2872 (start_decl, start_function): Warn if inline and attribute
2873 noinline appear in the same declaration.
2874
b5823a44
L
28752001-10-16 H.J. Lu <hjl@gnu.org>
2876
2877 * cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Defined
2878 for tree checking disabled.
2879
dc8ad298
HPN
28802001-10-16 Hans-Peter Nilsson <hp@axis.com>
2881
2882 * cp-tree.h (VFIELD_NAME_FORMAT) [NO_DOLLAR_IN_LABEL &&
2883 NO_DOT_IN_LABEL]: Adjust to match VFIELD_NAME.
2884
d9f818d9
RS
28852001-10-15 Richard Sandiford <rsandifo@redhat.com>
2886
2887 * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Define.
2888 (unify): Only handle MINUS_EXPR specially if the above flag is set
2889 and the subtracted constant is 1. Clear the flag on recursive calls.
2890 Set it when unifying the maximum value in an INTEGER_TYPE's range.
2891
e1be26f4
RS
28922001-10-15 Richard Sandiford <rsandifo@redhat.com>
2893
2894 * decl.c (bad_specifiers): Don't allow exception specifications
2895 on any typedefs.
2896
a5da89c6
NB
28972001-10-14 Neil Booth <neil@daikokuya.demon.co.uk>
2898
2899 * cp/lex.c (init_cp_pragma): Similarly.
2900
4f96ff63
KL
29012001-10-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2902
2903 * pt.c (lookup_template_class): Build complete template arguments
2904 for BOUND_TEMPLATE_TEMPLATE_PARM.
2905
11e74ea6
KL
29062001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2907
2908 * cp-tree.h (TYPE_BINFO): Update comment.
2909 (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): New macro.
2910 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Use template_info.
2911 (TYPENAME_TYPE_FULLNAME): Use TYPE_FIELDS.
2912 (copy_type): Prototype new function.
2913 * lex.c (copy_lang_decl): Gather tree node statistics.
2914 (copy_lang_type): New function.
2915 (copy_type): Likewise.
2916 (cp_make_lang_type): Create lang_type for
2917 BOUND_TEMPLATE_TEMPLATE_PARM. Set TYPE_BINFO for TYPENAME_TYPE
2918 and BOUND_TEMPLATE_TEMPLATE_PARM.
2919 * pt.c (tsubst): Use copy_type instead of copy_node.
2920 * search.c (lookup_field_1): Ignore TYPENAME_TYPE.
2921
f5d47abd
KL
29222001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2923
2924 * pt.c (determine_specialization): Ignore functions without
2925 DECL_TEMPLATE_INFO.
2926
e60505a5
NS
29272001-10-12 Nathan Sidwell <nathan@codesourcery.com>
2928
2929 PR g++/4476
2930 * typeck2.c (abstract_virtuals_error): Ignore incomplete classes.
2931
6f32162a
JM
29322001-10-11 Jason Merrill <jason_merrill@redhat.com>
2933
2934 * typeck2.c (store_init_value): Don't re-digest a bracketed
2935 initializer.
2936
2937 * class.c (finish_struct_anon): Use TYPE_ANONYMOUS_P instead of
2938 ANON_AGGR_TYPE_P.
2939
4a8d0c9c
RH
29402001-10-11 Richard Henderson <rth@redhat.com>
2941
2942 * class.c (build_vtable_entry_ref): Create a VTABLE_REF instead
2943 of an asm statement.
2944 (build_vtbl_ref_1): Split out from build_vtbl_ref.
2945 (build_vfn_ref): Use it to handle vtable descriptors before
2946 calling build_vtable_entry_ref.
2947 * decl2.c (output_vtable_inherit): Use assemble_vtable_inherit.
2948
84b72302
RH
29492001-10-10 Richard Henderson <rth@redhat.com>
2950
37207ee7 2951 * parse.y (asm_operand): Allow named operands.
84b72302
RH
2952 * semantics.c (finish_asm_stmt): Tweek for changed location
2953 of the operand constrant.
2954
48c8b0be 29552001-10-09 Jason Merrill <jason_merrill@redhat.com>
72a08131
JM
2956
2957 * call.c (standard_conversion): Add bad conversion between
2958 integers and pointers.
2959 (convert_like_real): Don't use convert_for_initialization for bad
2960 conversions; complain here and use cp_convert.
2961 (build_over_call): Don't handle bad conversions specially.
2962 (perform_implicit_conversion): Allow bad conversions.
2963 (can_convert_arg_bad): New fn.
2964 * cp-tree.h: Declare it.
2965 * typeck.c (convert_for_assignment): Use it.
2966 (ptr_reasonably_similar): Any target type is similar to void.
2967
19551f29
AO
29682001-10-08 Alexandre Oliva <aoliva@redhat.com>
2969
2970 * Make-lang.in (CXX_OBJS): Added cp-lang.o.
2971 (cp/cp-lang.o): New rule.
2972 * cp-tree.h: Declare hooks.
2973 * tree.c: Make hooks non-static.
2974 (init_tree): Don't initialize hooks here.
2975 * lex.c: Likewise. Move definition of lang_hooks to...
2976 * cp-lang.c: ... new file.
2977
31ed8fea
RH
29782001-10-08 Richard Henderson <rth@redhat.com>
2979
2980 * cp-tree.h (struct lang_decl_flags): Remove declared_inline.
2981 (DECL_DECLARED_INLINE_P): Use the bit in struct c_lang_decl.
2982
8b60264b
KG
29832001-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2984
2985 * class.c (build_vtable_entry_ref): Const-ify.
2986 * decl.c (predefined_identifier,
37207ee7 2987 initialize_predefined_identifiers): Likewise.
8b60264b
KG
2988 * init.c (build_new_1): Likewise.
2989 * lex.c (cplus_tree_code_type, cplus_tree_code_length, resword):
2990 Likewise.
2991
bc4c7159
AO
29922001-10-05 Alexandre Oliva <aoliva@redhat.com>
2993
2994 * optimize.c (struct inline_data): Moved to ../tree-inline.c.
2995 (INSNS_PER_STMT): Likewise.
2996 (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
2997 (copy_body, initialize_inlined_parameters): Likewise.
2998 (declare_return_variable, inlinable_function_p): Likewise.
2999 (expand_call_inline, expand_calls_inline): Likewise.
3000 (optimize_inline_calls, clone_body): Likewise.
3001 * tree.c (walk_tree): Moved to ../tree-inline.c.
3002 (walk_tree_without_duplicates): Likewise.
3003 (copy_tree_r, remap_save_expr): Likewise.
3004
25af8512
AO
30052001-10-04 Alexandre Oliva <aoliva@redhat.com>
3006
3007 * Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h.
3008 (cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise.
3009 * cp-tree.h (lang_decl): Moved inlined_fns to tree_decl.
3010 (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h.
3011 (flag_inline_trees): Moved declaration to ../tree-inline.h.
3012 (walk_tree): Moved declaration to ../tree-inline.h.
3013 (walk_tree_without_duplicates, copy_tree_r): Likewise.
3014 (remap_save_expr): Likewise.
3015 * decl.c: Include tree-inline.h.
3016 (lang_mark_tree): Don't mark inlined_fns.
3017 * decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c.
3018 * optimize.c: Include tree-inline.h.
3019 (optimize_inline_calls): Move declaration to ../tree.h, as
3020 non-static.
3021 (remap_decl): Use language-independent constructs and hooks.
3022 (remap_block, copy_body_r, declare_return_variable): Likewise.
3023 (inlinable_function_p): Likewise. Don't test for
3024 DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is
3025 no longer language-specific.
3026 (optimize_inline_calls): Likewise. Make it non-static. Moved
3027 call of dump_function to...
3028 (optimize_function): Here...
3029 (clone_body): New function, extracted from...
3030 (maybe_clone_body): ... here. Build decl_map locally and pass
3031 it on to clone_body.
3032 * pt.c, semantics.c: Include tree-inline.h.
3033 * tree.c: Likewise.
3034 (cp_walk_subtrees): New language-specific hook for tree inlining.
3035 (cp_cannot_inline_tree_fn, cp_add_pending_fn_decls,
3036 cp_is_overload_p, cp_auto_var_in_fn_p,
3037 cp_copy_res_decl_for_inlining): Likewise.
3038 (walk_tree): Move language-specific constructs into...
3039 (cp_walk_subtrees): this new function.
3040 (copy_tree_r): Use language-independent constructs and hooks.
3041 (init_tree): Initialize tree inlining hooks.
3042 (remap_save_expr): Adjust prototype so that the declaration
3043 does not require the definition of splay_tree.
3044
6a4af81f
JDA
30452001-10-03 John David Anglin <dave@hiauly1.hia.nrc.ca>
3046
3047 * rtti.c (get_tinfo_decl): Call typeinfo_in_lib_p with the type used
3048 to build the declaration instead of the declaration itself.
3049
0caee1c6
JM
30502001-10-02 Jason Merrill <jason_merrill@redhat.com>
3051
48c8b0be
JM
3052 * decl2.c (cxx_decode_option): Add 'else'.
3053
0caee1c6
JM
3054 * spew.c (end_input): No longer static.
3055 * cp-tree.h: Declare it.
3056 * parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion.
3057
80a497e4
JM
30582001-10-02 Joseph S. Myers <jsm28@cam.ac.uk>
3059
3060 * call.c (build_over_call), typeck.c (build_function_call_real):
3061 Pass type attributes to check_function_format rather than name or
3062 assembler name. Don't require there to be a name or assembler
3063 name to check formats.
3064
6431177a
JM
30652001-10-02 Joseph S. Myers <jsm28@cam.ac.uk>
3066
3067 * decl.c (init_decl_processing): Don't call
3068 init_function_format_info. Initialize lang_attribute_table
3069 earlier.
3070 (builtin_function): Call decl_attributes.
3071 (insert_default_attributes): New.
3072
55b3d665
JM
30732001-10-01 Jason Merrill <jason_merrill@redhat.com>
3074
3075 * decl.c (grokdeclarator): Copy array typedef handling from C
3076 frontend.
3077
3078 * decl.c (grokdeclarator): Copy too-large array handling from C
3079 frontend.
3080
9f57ca19
AO
30812001-09-29 Alexandre Oliva <aoliva@redhat.com>
3082
3083 * config-lang.in (target_libs): Added target-gperf, so that we
3084 don't try to build it if C++ is disabled.
3085
749ced52
ZW
30862001-09-23 Zack Weinberg <zack@codesourcery.com>
3087
3088 * Make-lang.in (CXX_OBJS): Take out cp/errfn.o.
3089 (cp/errfn.o): Delete rule.
3090 (cp/error.o): Depend on flags.h.
3091 * errfn.c: Delete file.
3092 * cp-tree.h: Declare warn_deprecated. Remove definitions of
3093 TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS,
3094 and TFF_TEMPLATE_DEFAULT_ARGUMENTS. #define cp_error, cp_warning,
3095 cp_pedwarn, and cp_compiler_error to error, warning, pedwarn, and
3096 internal_error respectively. Make cp_deprecated into a macro.
3097 Don't define cp_printer typedef or declare cp_printers.
3098 * error.c: Include flags.h.
3099 Delete: struct tree_formatting_info, print_function_argument_list,
3100 print_declaration, print_expression, print_function_declaration,
3101 print_function_parameter, print_type_id, print_cv_qualifier_seq,
3102 print_type_specifier_seq, print_simple_type_specifier,
3103 print_elaborated_type_specifier, print_rest_of_abstract_declarator,
3104 print_parameter_declaration_clause, print_exception_specification,
3105 print_nested_name_specifier, and definition of cp_printers.
3106 (locate_error): New function.
3107 (cp_error_at, cp_warning_at, cp_pedwarn_at): Moved here and
3108 rewritten in terms of locate_error and diagnostic.c.
3109 (cp_tree_printer): Rename cp_printer; wire up to *_to_string
3110 instead of deleted print_* routines. Handle %C, %L, %O, %Q also.
3111 (init_error): Adjust to match.
3112
bb9f8221
RK
3113Sat Sep 22 09:15:31 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3114
3115 * Make-lang.in (CXX_C_OBJS): Add attribs.o.
3116
67231816
RH
31172001-09-21 Richard Henderson <rth@redhat.com>
3118
3119 * class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS.
3120 (build_vtbl_initializer): Likewise.
3121 (build_vfn_ref): New.
3122 * cp-tree.h: Declare it.
3123 * call.c (build_over_call): Use it.
3124 * decl2.c (mark_vtable_entries): Mark FDESC_EXPR.
3125 * typeck.c (get_member_function_from_ptrfunc): Mind descriptors.
3126
c9574c9f
R
3127Fri Sep 21 08:16:19 2001 J"orn Rennecke <amylaar@redhat.com>
3128
3129 * decl.c (grokdeclarator): Use C syntax for attr_flags declaration.
3130
91d231cb
JM
31312001-09-21 Joseph S. Myers <jsm28@cam.ac.uk>
3132
3133 Table-driven attributes.
3134 * decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
3135 * decl2.c (cplus_decl_attributes): Only take one attributes
3136 parameter.
3137 * cp-tree.c (cplus_decl_attributes): Update prototype.
3138 * class.c (finish_struct), decl.c (start_decl, start_function),
3139 decl2.c (grokfield), friend.c (do_friend), parse.y
3140 (parse_bitfield): Update calls to cplus_decl_attributes.
3141 * decl.c (grokdeclarator): Take a pointer to a single ordinary
3142 attribute list.
3143 * decl.h (grokdeclarator): Update prototype.
3144 * decl2.c (grokfield): Take a single ordinary attribute list.
3145 * friend.c (do_friend): Likewise.
3146 * decl.c (shadow_tag, groktypename, start_decl,
3147 start_handler_parms, grokdeclarator, grokparms, start_function,
3148 start_method), decl2.c (grokfield, grokbitfield, grokoptypename),
3149 parse.y (parse_field, parse_bitfield, component_decl_1), pt.c
3150 (process_template_parm, do_decl_instantiation): Pass single
3151 ordinary attribute lists around.
3152 * decl.c (grokdeclarator): Correct handling of nested attributes.
3153 Revert the patch
3154 1998-10-18 Jason Merrill <jason@yorick.cygnus.com>
3155 * decl.c (grokdeclarator): Embedded attrs bind to the right,
3156 not the left.
3157 .
3158 * cp-tree.h (cp_valid_lang_attribute): Remove declaration
3159 (cp_attribute_table): Declare.
3160 * decl.c (valid_lang_attribute): Don't define.
3161 (lang_attribute_table): Define.
3162 (init_decl_processing): Initialize lang_attribute_table instead of
3163 valid_lang_attribute.
3164 * tree.c (cp_valid_lang_attribute): Remove.
3165 (handle_java_interface_attribute, handle_com_interface_attribute,
3166 handle_init_priority_attribute): New functions.
3167 (cp_attribute_table): New array.
3168 * decl2.c (import_export_class): Don't use
3169 targetm.valid_type_attribute.
3170
a1bda5f1
GDR
31712001-09-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
3172
e6b9638b
JM
3173 * Make-lang.in (cp/error.o): Depend on real.h
3174 * error.c: #include "real.h"
a1bda5f1 3175
cb6edbcb
KG
31762001-09-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3177
3178 * mangle.c (mangle_conv_op_name_for_type): Use concat in lieu of
3179 xmalloc/strcpy/strcat.
3180
83182544
KG
31812001-09-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3182
3183 * decl.c (warn_extern_redeclared_static, cp_make_fname_decl):
3184 Const-ification.
3185 * pt.c (tsubst_decl): Likewise.
3186
40008eda
KG
31872001-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3188
3189 * decl2.c (lang_f_options): Const-ification.
3190 * lex.c (cplus_tree_code_name): Likewise.
3191 * spew.c (yyerror): Likewise.
3192
39e78d8b
NS
31932001-09-06 Nathan Sidwell <nathan@codesourcery.com>
3194
3195 PR c++/3986
3196 * class.c (force_canonical_binfo_r): Check & move an indirect
3197 primary base first.
3198 (force_canonical_binfo): Check that it's not already
3199 canonical.
3200 (mark_primary_virtual_base): Remove BINFO parameter.
3201 (mark_primary_bases): Adjust, set BINFO_LOST_PRIMARY_P here.
3202
6d0a3f67
NS
32032001-09-06 Nathan Sidwell <nathan@codesourcery.com>
3204
3205 Remove TYPE_NONCOPIED_PARTS.
3206 * cp-tree.h (CLASSTYPE_INLINE_FRIENDS): Map onto
3207 CLASSTYPE_PURE_VIRTUALS.
3208 (TYPE_RAISES_EXCEPTIONS): Map onto TYPE_BINFO.
3209 * class.c (duplicate_tag_error): Remove TYPE_NONCOPIED_PARTS.
72a08131 3210 (layout_class_type): Don't call fixup_inline_methods here ...
6d0a3f67
NS
3211 (finish_struct_1): ... call it here.
3212
4f8e1232
MM
32132001-09-04 Mark Mitchell <mark@codesourcery.com>
3214
3215 * decl.c (duplicate_decls): Remove code deadling with
3216 DECL_SAVED_INSNS.
3217 * decl2.c (finish_file): Likewise.
3218 * pt.c (instantiate_decl): Likewise.
3219 * semantics.c (expand_body): Don't defer local functions if
3220 they wouldn't be deferred for some other reason. Don't
3221 generate RTL for functions that will not be emitted.
3222 (genrtl_start_function): Remove code deadling with
3223 DECL_SAVED_INSNS.
3224 (genrtl_finish_function): Likewise.
3225
da86f08f
NS
32262001-09-04 Nathan Sidwell <nathan@codesourcery.com>
3227
3228 PR c++/4203
3229 * call.c (build_over_call): Do not optimize any empty base
3230 construction.
3231
38066e83
KL
32322001-08-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3233
3234 * error.c (dump_template_decl): Output template parameters
3235 together with their specifiers.
3236 Output `class' prefix for template template parameter.
3237 (dump_decl): Fix formatting.
3238
598e9ba5 32392001-08-30 Kurt Garloff <garloff@suse.de>
749ced52 3240
598e9ba5
KG
3241 * optimize.c (inlinable_function_p): Allow only smaller single
3242 functions. Halve inline limit after reaching recursive limit.
749ced52 3243
f232e4a5
JR
32442001-08-30 Joern Rennecke <amylaar@redhat.com>
3245 Jason Merrill <jason_merrill@redhat.com>
3246
3247 * class.c (build_vtable_entry_ref): Subtract in char*, not
3248 ptrdiff_t.
3249
0213a355
JM
32502001-08-23 Jason Merrill <jason_merrill@redhat.com>
3251
3252 * tree.c (cp_build_qualified_type_real): Use get_qualified_type.
3253 (build_cplus_array_type): Use cp_build_qualified_type, not
3254 TYPE_MAIN_VARIANT, to get an unqualified version.
3255
3256 * decl2.c (grok_alignof): Lose.
3257 (build_expr_from_tree): Use expr_sizeof and c_alignof_expr.
3258 * typeck.c (c_alignof): Lose.
3259 * semantics.c (finish_sizeof, finish_alignof): New.
3260 * parse.y: Use them.
3261 * cp-tree.h: Declare them.
3262
fd10dd09
JM
32632001-08-22 Jason Merrill <jason_merrill@redhat.com>
3264
3265 * pt.c (tsubst_expr): Hand off to the TREE_CHAIN of a statement.
3266 Don't loop in COMPOUND_STMT, FOR_STMT or TRY_BLOCK.
3267 * tree.c (cp_statement_code_p): A TAG_DEFN is a statement.
3268
baeb4732
JJ
32692001-08-19 Jakub Jelinek <jakub@redhat.com>
3270
3271 * typeck2.c (add_exception_specifier): Only require complete type if
3272 not in processing template declaration.
3273
1c0cc57e
KG
32742001-08-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3275
3276 * decl.c: Cast argument to size_t, not HOST_WIDE_INT, in calls to
3277 GNU_xref_start_scope and GNU_xref_end_scope.
3278
3279 * tree.c (TYPE_HASH): Moved to ../tree.h.
3280
9a52d09b
MM
32812001-08-16 Mark Mitchell <mark@codesourcery.com>
3282
3283 * cvt.c (convert_to_void): Preserve TREE_SIDE_EFFECTS
3284 on COMPOUND_EXPRs.
3285
b5d1cbd2
RH
32862001-08-14 Richard Henderson <rth@redhat.com>
3287
3288 * class.c, cp-tree.h (build_vfn_ref): Remove.
3289 * call.c, rtti.c: Replace all refernces with build_vtbl_ref.
3290
63d6f87a
MM
32912001-08-13 Mark Mitchell <mark@codesourcery.com>
3292
3293 * call.c (build_over_call): Mark COMPOUND_EXPRs generated for
3294 empty class assignment as having side-effects to avoid
3295 spurious warnings.
3296
e78d8e51
ZW
32972001-08-13 Zack Weinberg <zackw@panix.com>
3298
3299 * Make-lang.in (cp/except.o): Add libfuncs.h to dependencies.
3300 * except.c: Include libfuncs.h.
3301
a60af04a
GDR
33022001-08-11 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
3303
3304 * decl.c (grokdeclarator): Clarify diagnostic message.
3305
3605b283
KL
33062001-08-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3307
3308 * decl2.c (do_nonmember_using_decl): Replace using directive
3309 with using declaration in the error message.
3310
4d5f3fbd
KL
33112001-08-11 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3312
3313 * pt.c (maybe_fold_nontype_arg): Use TREE_TYPE of ARG as the
3314 criterion to avoid rebuilding expression tree instead of
3315 processing_template_decl.
3316
07b2f2fd
JM
33172001-08-07 Jason Merrill <jason_merrill@redhat.com>
3318
3319 Support named return value optimization for inlines, too.
3320 * decl.c (finish_function): Nullify returns here.
3321 * semantics.c (genrtl_start_function): Not here.
3322 (cp_expand_stmt): Don't mess with CLEANUP_STMTs.
3323 (nullify_returns_r): No longer static. Just clear RETURN_EXPR.
3324 Also nullify the CLEANUP_STMT for the nrv.
3325 * cp-tree.h: Declare it.
3326 * optimize.c (declare_return_variable): Replace the nrv with the
3327 return variable.
3328 * typeck.c (check_return_expr): Be more flexible on alignment check.
3329 Ignore cv-quals when checking for a matching type.
3330
2cc07db4
RH
33312001-08-09 Richard Henderson <rth@redhat.com>
3332
3333 * decl2.c (finish_objects): Use target hooks instead of
3334 assemble_constructor and assemble_destructor.
3335
0ca179b2
JDA
33362001-08-08 John David Anglin <dave@hiauly1.hia.nrc.ca>
3337
3338 * g++spec.c (lang_specific_driver): Quote argument after `-Xlinker'.
3339
0830ae44
NS
33402001-08-07 Nathan Sidwell <nathan@codesourcery.com>
3341
3342 PR c++/3820
3343 Stop using TYPE_NONCOPIED_PARTS.
3344 * call.c (build_over_call): Be careful when copy constructing
3345 or assigning to an empty class.
3346 * class.c (check_bases_and_members): It has a
3347 COMPLEX_ASSIGN_REF if it has a vptr.
3348 (layout_class_type): Don't add empty class padding to
3349 TYPE_NONCOPIED_PARTS.
3350 (finish_struct_1): Don't add the VFIELD either.
3351 * cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): Mention _copy_
3352 initialization.
3353
59a13e0f
JM
33542001-08-07 Jason Merrill <jason_merrill@redhat.com>
3355
3356 * tree.c (walk_tree): Walk siblings even if !walk_subtrees.
3357
47907859
RH
33582001-08-06 Richard Henderson <rth@redhat.com>
3359
3360 * decl2.c (finish_objects): Pass a symbol_ref and priority to
3361 assemble_{constructor,destructor}. Remove priority handling.
3362
eac69b8a
GDR
33632001-08-05 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
3364
3365 Don't allow template-id in using-declaration.
3366 * decl2.c (validate_nonmember_using_decl): Handle template-ids.
3367 (do_class_using_decl): Likewise.
3368
ef6e958a
NB
33692001-08-04 Neil Booth <neil@cat.daikokuya.demon.co.uk>
3370
3371 * cp/spew.c (read_token): No need to pop buffers.
3372
dff94ad7
SS
33732001-08-02 Stan Shebs <shebs@apple.com>
3374
3375 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY): Remove, no longer used.
3376 (fnaddr_from_vtable_entry): Remove decl.
3377 * method.c (use_thunk): Update comment.
3378
026c3f13
AC
33792001-08-01 Andrew Cagney <ac131313@redhat.com>
3380
3381 * repo.c (get_base_filename): Change return value to const char
3382 pointer.
3383
1dbb6023
NS
33842001-08-02 Nathan Sidwell <nathan@codesourcery.com>
3385
3386 Kill -fhonor-std.
3387 * NEWS: Document.
3388 * cp-tree.h (flag_honor_std): Remove.
3389 (CPTI_FAKE_STD): Remove.
3390 (std_node): Remove comment about it being NULL.
3391 (fake_std_node): Remove.
3392 * decl.c (in_fake_std): Remove.
3393 (walk_namespaces_r): Remove fake_std_node check.
3394 (push_namespace): Remove in_fake_std code.
3395 (pop_namespace): Likewise.
3396 (lookup_name_real): Remove fake_std_node check.
3397 (init_decl_processing): Always create std_node. Always add
3398 std:: things there.
3399 (builtin_function): Always put non '_' fns in std.
3400 * decl2.c (flag_honor_std): Remove.
3401 (lang_f_options): Remove honor-std.
3402 (unsupported_options): Add honor-std.
3403 (set_decl_namespace): Remove fake_std_node check.
3404 (validate_nonmember_using_decl): Likewise.
3405 (do_using_directive): Likewise.
3406 (handle_class_head): Likewise.
3407 * dump.c (cp_dump_tree): Likewise.
3408 * except.c (init_exception_processing): Adjust.
3409 * init.c (build_member_call): Remove fake_std_node check.
3410 (build_offset_ref): Likewise.
3411 * lang-options.h: Remove -fhonor-std, -fno-honor-std.
3412 * rtti.c (init_rtti_processing): Adjust.
3413
6ad7895a
APB
34142001-07-31 Alexandre Petit-Bianco <apbianco@redhat.com>
3415
3416 * tree.c (cp_tree_equal): WITH_CLEANUP_EXPR node to use its second
3417 operand while calling cp_tree_equal.
3418
befe7c61
NS
34192001-07-31 Nathan Sidwell <nathan@codesourcery.com>
3420
3421 The 3.0 ABI no longer has vbase pointer fields.
3422 * cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P,
3423 FORMAT_VBASE_NAME): Remove.
3424 * method.c (do_build_copy_constructor): Adjust.
3425 (do_build_assign_ref): Adjust.
3426 * search.c (lookup_field_r): Adjust.
3427 * typeck.c (build_component_ref): Adjust.
3428
3429 The 3.0 ABI always has a vtable pointer at the start of every
3430 polymorphic class.
3431 * rtti.c (build_headof_sub): Remove.
3432 (build_headof): Adjust.
3433 (get_tinfo_decl_dynamic): No need to check flag_rtti
3434 here. Adjust.
3435 (create_real_tinfo_var): Explain why we need a hidden name.
3436
20dde49d
NS
34372001-07-31 Nathan Sidwell <nathan@codesourcery.com>
3438
3439 PR c++/3631
3440 * class.c (update_vtable_entry_for_fn): The fixed adjustment
3441 of a virtual thunk should be from declaring base.
3442
b7ad2f8b
NS
34432001-07-31 Nathan Sidwell <nathan@codesourcery.com>
3444
3445 * class.c (dfs_ctor_vtable_bases_queue_p): Always walk into
3446 the shared virtual base, so preserving inheritance graph order.
3447
57cb6d52
AJ
34482001-07-30 Andreas Jaeger <aj@suse.de>
3449
749ced52 3450 * decl2.c: Remove unused var global_temp_name_counter.
57cb6d52 3451
594280a3
RH
34522001-07-28 Richard Henderson <rth@redhat.com>
3453
3454 * method.c (pending_inlines): Remove.
3455
0ab142b0
NS
34562001-07-27 Nathan Sidwell <nathan@codesourcery.com>
3457
3458 * class.c (mark_primary_virtual_base): Don't adjust base
3459 offsets here.
3460 (dfs_unshared_virtual_bases): Adjust them here.
3461 (mark_primary_bases): Explain why we adjust at the end.
3462
d60d223b
NS
34632001-07-27 Nathan Sidwell <nathan@codesourcery.com>
3464
3465 * class.c (finish_struct_1): When copying the primary base's
3466 VFIELD, make sure we find it is at offset zero.
3467
db3ef87b
KL
34682001-07-26 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3469
3470 * pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and
3471 tsubst_expr for default template arguments.
3472
312b7c9d
NS
34732001-07-26 Nathan Sidwell <nathan@codesourcery.com>
3474
d60d223b 3475 PR c++/3621
312b7c9d
NS
3476 * spew.c (yylex): Only copy the token's lineno, if it is
3477 non-zero.
3478
648c2206
NS
34792001-07-26 Nathan Sidwell <nathan@codesourcery.com>
3480
3481 PR c++/3624
3482 * call.c (resolve_args): Simplify, call
3483 convert_from_reference.
3484 (build_new_op): Resolve and convert from reference ARG1
3485 earlier. Adjust ARG2 & ARG3 resolve and conversion.
3486
969fd501
NS
34872001-07-26 Nathan Sidwell <nathan@codesourcery.com>
3488
3489 * decl.c (last_function_parm_tags): Remove.
3490 (current_function_parm_tags): Remove.
3491 (init_decl_processing): Adjust.
3492 (start_function): Adjust.
3493 (store_parm_decls): Adjust.
3494
3495 PR c++/3152
3496 * decl.c (grokdeclarator): Detect when a function typedef is
3497 declaring a function, and create last_function_parms correctly.
3498
08ac397c 34992001-07-25 Jason Merrill <jason_merrill@redhat.com>
749ced52 3500
08ac397c
JM
3501 * call.c (joust): Only prefer a non-builtin candidate to a builtin
3502 one if they have the same signature.
3503
3504 * cvt.c (build_up_reference): Take DECL parm. Check TREE_STATIC on
3505 it rather than toplevel_bindings_p. Give it a mangled name if static.
3506 (convert_to_reference): Adjust.
3507 * decl2.c (get_temp_name): Lose.
3508 * mangle.c (mangle_ref_init_variable): New fn.
3509 (mangle_guard_variable): Strip the ref-init header.
3510 * cp-tree.h: Adjust.
3511 * decl.c (cp_finish_decl): Add the DECL_STMT after processing the
3512 initializer.
3513 (grok_reference_init): Always use DECL_INITIAL.
3514
40260429
NS
35152001-07-25 Nathan Sidwell <nathan@codesourcery.com>
3516
3517 PR c++/3416
3518 * call.c (build_conditional_expr): Recheck args after
3519 conversions.
3520 * cp-tree.h (build_conditional_expr): Move to correct file.
3521 * typeck.c (decay_conversion): Diagnose any unknown types
3522 reaching here.
3523 (build_binary_op): Don't do initial decay or default
3524 conversions on overloaded functions.
3525 (build_static_cast): Don't do a decay conversion here.
3526
ab085207
NS
35272001-07-25 Nathan Sidwell <nathan@codesourcery.com>
3528
3529 PR c++/3543
3530 * typeck.c (condition_conversion): Resolve an OFFSET_REF.
3531 * expr.c (cplus_expand_expr): An OFFSET_REF should never get here.
3532
0abe00c5
NS
35332001-07-25 Nathan Sidwell <nathan@codesourcery.com>
3534
3535 * class.c (build_vtbl_or_vbase_field): Remove, move into ...
3536 (create_vtbl_ptr): ... here.
3537
90b1ca2f
NS
35382001-07-25 Nathan Sidwell <nathan@codesourcery.com>
3539
3540 * class.c (build_vbase_offset_vbtl_entries): Look for
3541 non-primary base of which we are a sub vtable.
3542
cfe5dc31
PE
35432001-07-24 Phil Edwards <pme@sources.redhat.com>
3544
3545 * semantics.c (finish_this_expr): Remove unused code.
3546
7f54a851
NS
35472001-07-24 Nathan Sidwell <nathan@codesourcery.com>
3548
3549 Simplify rtti, now we've only one ABI.
3550 * cp-tree.h (cp_tree_index): Remove CPTI_TINFO_DECL_ID,
3551 CPTI_TINFO_VAR_ID.
3552 (tinfo_decl_id, tinfo_var_id): Remove.
3553 (get_typeid_1): Remove.
3554 * rtti.c
3555 (init_rtti_processing): Remove tinfo_decl_id & tinfo_var_id.
3556 (typeid_ok_p): New function.
3557 (build_type_id): Call typeid_ok_p. Don't call tinfo_from_decl.
3558 (get_tinfo_decl): Remove old abi documentation.
3559 (tinfo_from_decl): Remove.
3560 (get_type_id): Call typeid_ok_p. Absorb get_typeid_1.
3561 (get_typeid_1): Remove.
3562 (get_base_offset): Remove.
3563 (synthesize_tinfo_var): Absorb get_base_offset.
3564 (create_real_tinfo_var): Don't use tinfo_decl_id.
3565
18fee3ee
GS
35662001-07-23 Graham Stott <grahams@redhat.com>
3567
3568 * cp/class.c (type_requires_array_cookie): Fix use of uninitialised
3569 variable has_two_argument_delete_p.
3570
c4372ef4
NS
35712001-07-21 Nathan Sidwell <nathan@codesourcery.com>
3572
3573 Remove flag_vtable_thunk. It is always on for the 3.0 ABI.
3574 * cp-tree.h (CPTI_DELTA2_IDENTIFIER): Remove.
3575 (CPTI_INDEX_IDENTIFIER): Remove.
3576 (CPT_PFN_OR_DELTA2_IDENTIFIER): Remove.
3577 (delta2_identifier): Remove.
3578 (index_identifier): Remove.
3579 (pfn_or_delta2_identifier): Remove.
3580 (flag_vtable_thunks): Remove.
3581 (VTABLE_DELTA2_NAME): Remove.
3582 (VTABLE_INDEX_NAME): Remove.
3583 (FNADDR_FROM_VTABLE_ENTRY): Adjust.
3584 (vfunc_ptr_type_node): Adjust.
3585 (VTABLE_NAME_PREFIX): Adjust.
3586 (build_vfn_ref): Lose first parameter.
3587 (fixup_all_virtual_upcast_offsets): Remove.
3588 * decl.c (initialize_predefined_identifiers): Remove
3589 delta2_identifier, index_identifier, pfn_or_delta2_identifier.
3590 (init_decl_processing): Remove no-vtable-thunk code.
3591 * decl2.c (flag_vtable_thunks): Remove.
3592 (mark_vtable_entries): Remove no-vtable-thunk code.
3593 * error.c (dump_decl): Remove no-vtable-thunk code.
3594 (dump_expr): Adjust ptr to member function code.
3595 * init.c (initialize_vtable_ptrs): Remove no-vtable-thunk
3596 code.
3597 * rtti.c (build_headof): Remove no-vtable-thunk code.
3598 (get_tinfo_decl_dynamic): Adjust build_vfn_ref call.
3599 * search.c (get_base_distance): Remove expand_upcast_fixups case.
3600 (virtual_context) Remove.
3601 (expand_upcast_fixups): Remove.
3602 (fixup_virtual_upcast_offsets): Remove.
3603 (fixup_all_virtual_upcast_offsets): Remove.
3604 * typeck.c (get_member_function_from_ptrfunc): Remove
3605 no-vtable-thunk code.
3606 * call.c (build_over_call): Adjust call to build_vfn_ref.
3607 * class.c (build_vfn_ref): Lose first parameter. Remove
3608 no-vtable-thunk code.
3609 (build_rtti_vtbl_entries): Remove no-vtable-thunk code.
3610 (build_vtable_entry): Remove no-vtable-thunk code.
3611
3461fba7
NS
36122001-07-20 Nathan Sidwell <nathan@codesourcery.com>
3613
3614 Remove old-abi remnants. Remove comments about old abi
aba649ba 3615 behaviour. Remove references to 'new-abi' in comments.
3461fba7
NS
3616 * cp-tree.h: Adjust comments.
3617 (vbase_offsets_in_vtable_p): Delete.
3618 (vcall_offsets_in_vtable_p): Delete.
3619 (vptrs_present_everywhere_p): Delete.
3620 (all_overridden_vfuns_in_vtables_p): Delete.
3621 (merge_primary_and_secondary_vtables_p): Delete.
3622 (TYPE_CONTAINS_VPTR_P): Adjust.
3623 (VTT_NAME_PREFIX): Remove.
3624 (CTOR_VTBL_NAME_PREFIX): Remove.
3625 (init_vbase_pointers): Remove.
3626 * class.c: Adjust coments.
3627 (build_vbase_pointer_fields): Delete.
3628 (build_vbase_pointer): Remove old-abi code.
3629 (build_secondary_vtable): Likewise.
3630 (modify_all_vtables): Likewise.
3631 (create_vtable_ptr): Likewise.
3632 (layout_class_type): Likewise.
3633 (finish_struct_1): Likewise.
3634 (finish_vtbls): Likewise.
3635 (dfs_finish_vtbls): Delete.
3636 (build_vbase_offset_vtbl_entries): Remove old-abi code.
3637 * cvt.c: Adjust comments.
3638 * decl.c: Adjust comments.
3639 * decl2.c: Adjust comments.
3640 * init.c: Adjust comments.
3641 (construct_virtual_bases): Remove old-abi code.
3642 * lang-specs.h: Remove -fno-new-abi.
3643 * mangle.c: Adjust comments.
3644 * rtti.c: Adjust comments.
3645 (get_base_offset): Remove old-abi-code.
3646 * search.c: Adjust comments.
3647 (dfs_init_vbase_pointers): Remove.
3648 (dfs_vtable_path_unmark): Remove.
3649 (init_vbase_pointers): Remove.
3650 * semantics.c: Adjust comments.
3651 (emit_associated_thunks): Remove old-abi code.
3652 * typeck.c: Adjust comments.
3653
1c432a87
DB
36542001-07-20 Daniel Berlin <dan@cgsoftware.com>
3655
3656 * Make-lang.in (cp/optimize.o): Depend on $(PARAMS_H), not
3657 params.h.
3658
b7076960
MM
36592001-07-19 Mark Mitchell <mark@codesourcery.com>
3660
3661 * class.c (finish_struct_anon): Forbid nested classes.
3662
2b85879e
NB
36632001-07-19 Neil Booth <neil@daikokuya.demon.co.uk>
3664
3665 * decl2.c: Don't include dwarfout.h and dwarf2out.h.
3666 * optimize.c: Include debug.h.
3667 (maybe_clone_body): Use debug hook.
3668 * semantics.c: Include debug.h.
3669 (expand_body): Use debug hook.
3670
c60e94a7
NB
36712001-07-19 Neil Booth <neil@daikokuya.demon.co.uk>
3672
3673 * spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
3674
dbc957f1
MM
36752001-07-18 Mark Mitchell <mark@codesourcery.com>
3676
3677 * class.c (type_requires_array_cookie): New function.
3678 (check_methods): Don't try to figure out whether the type needs a
3679 cookie here.
3680 (check_bases_and_members): Set TYPE_VEC_NEW_USES_COOKIE here.
3681 * cp-tree.h (TYPE_VEC_DELETE_TAKES_SIZE): Remove.
3682 (TYPE_VEC_NEW_USES_COOKIE): Reimplement.
3683 * pt.c (instantiate_class_template): Don't set
3684 TYPE_VEC_DELETE_TAKES_SIZE.
3685 * NEWS: Document ABI changes from GCC 3.0.
57cb6d52 3686
7ba0b0f7 36872001-07-18 Xavier Delacour <xavier@fmaudio.net>,
749ced52 3688 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
7ba0b0f7
XD
3689
3690 * NEWS (Changes in GCC 3.0): Fix typo.
3691
59387d2e
JM
36922001-07-13 Joseph S. Myers <jsm28@cam.ac.uk>
3693
3694 * decl2.c (cplus_decl_attributes): Take a pointer to the node to
3695 which attributes are to be attached, and a flags argument. Update
3696 call to decl_attributes.
3697 (grokfield): Update call to decl_attributes.
3698 * class.c (finish_struct): Update call to cplus_decl_attributes.
3699 * cp-tree.h (cplus_decl_attributes): Update prototype.
3700 * decl.c (start_decl, grokdeclarator, start_function): Update
3701 calls to decl_attributes and cplus_decl_attributes.
3702 * friend.c (do_friend): Update call to cplus_decl_attributes.
3703 * parse.y (parse_bitfield): Update call to cplus_decl_attributes.
3704
7ed47c04
MM
37052001-07-12 Mark Mitchell <mark@codesourcery.com>
3706
3707 * decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER
3708 for `register' variables with an asm-specification.
3709
40b18c0a
MM
37102001-07-11 Mark Mitchell <mark@codesourcery.com>
3711
3712 * semantics.c (finish_asm_stmt): Mark the output operands
3713 to an asm addressable, if necessary.
3714
517c3b80
BE
37152001-07-11 Ben Elliston <bje@redhat.com>
3716
219670f1
BE
3717 * Revert this change -- there is a subtle bug.
3718
517c3b80
BE
3719 PR c++/80
3720 * decl.c (finish_enum): New "attributes" argument; pass it to
3721 cplus_decl_attributes. Use a narrower type if the enum is packed.
3722 * cp-tree.h (finish_enum): Adjust prototype.
3723 * parse.y (enum_head): New non-terminal.
3724 (structsp): Use it. Enums now may be preceded or followed by
3725 optional attributes -- pass their chained tree to finish_enum().
3726 * pt.c (tsubst_enum): Pass NULL_TREE for the new argument.
3727
2ba9c47e
MM
37282001-07-10 Mark Mitchell <mark@codesourcery.com>
3729
3730 * pt.c (tsubst_decl): Set DECL_CONTEXT for namespace-scope
3731 variables.
3732
35241192
JM
37332001-07-10 Jason Merrill <jason_merrill@redhat.com>
3734
3735 * semantics.c (cp_expand_stmt): Fix for null
3736 current_function_return_value.
3737
07167a18
JM
37382001-07-10 Jan van Male <jan.vanmale@fenk.wau.nl>
3739
3740 * call.c (build_op_delete_call): Initialize fn.
3741 (convert_like_real): Delete conditional.
3742 (joust): Initialize *w and *l.
3743 * class.c: Add prototype for binfo_ctor_vtable.
3744 (get_primary_binfo): Initialize result.
3745 * init.c (build_java_class_ref): Initialize name.
ae818d3b 3746
35241192
JM
37472001-07-09 Erik Rozendaal <dlr@acm.org>
3748
ae818d3b
ER
3749 * typeck.c (unary_complex_lvalue): Do not duplicate the
3750 argument to modify, pre-, or post-increment when used as an
3751 lvalue and when the argument has side-effects.
3752
12a68f1f
JM
37532001-07-08 Joseph S. Myers <jsm28@cam.ac.uk>
3754
3755 * decl.c (start_decl): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
3756 (start_function): Don't call SET_DEFAULT_DECL_ATTRIBUTES. Call
3757 cplus_decl_attributes even if attrs is NULL.
3758 * friend.c (do_friend): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
3759
f7a4cec0
JM
37602001-07-08 Joseph S. Myers <jsm28@cam.ac.uk>
3761
3762 * decl.c (grokdeclarator), decl2.c (cplus_decl_attributes): Update
3763 calls to decl_attributes.
3764
c80106a4
IR
37652001-07-06 Ira Ruben <ira@apple.com>
3766
ae818d3b 3767 * cp-tree.def (TEMPLATE_DECL): Update comment. DECL_RESULT should
c80106a4
IR
3768 be DECL_TEMPLATE_RESULT.
3769
dac65501
KL
37702001-07-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3771
3772 * cp-tree.h (copy_template_template_parm): Rename to ...
3773 (bind_template_template_parm): ... here.
3774 * tree.c (copy_template_template_parm): Rename to ...
3775 (bind_template_template_parm): ... here. Remove the case when
3776 NEWARGS is NULL_TREE.
3777 (copy_tree_r): Don't copy TEMPLATE_TEMPLATE_PARM and
3778 BOUND_TEMPLATE_TEMPLATE_PARM.
3779 * pt.c (lookup_template_class): Adjust.
3780
01f9e964
JM
37812001-07-05 Jason Merrill <jason_merrill@redhat.com>
3782
3783 * cvt.c (convert_lvalue): New fn.
3784 * cp-tree.h: Declare it.
3785 * method.c (do_build_assign_ref): Use it.
3786 (do_build_copy_constructor): Convert parm to base types
3787 before calling base constructors.
3788
3789 * typeck.c (check_return_expr): Check DECL_ALIGN instead of
3790 DECL_USER_ALIGN. Check flag_elide_constructors instead of
3791 optimize.
3792 * semantics.c (cp_expand_stmt): Don't destroy the named return value.
3793
6be77748
NS
37942001-07-02 Nathan Sidwell <nathan@codesourcery.com>
3795
3796 * optimize.c (optimize_inline_calls): New function, broken out
3797 of ...
3798 (optimize_function): ... here. Call it. Don't inline if it is
3799 a thunk.
3800 (dump_function): Print name of dump flag causing this dump.
3801 * semantics.c (expand_body): Move thunk inline check to
3802 optimize_function.
3803
8d8e52be
JM
38042001-06-29 Joseph S. Myers <jsm28@cam.ac.uk>
3805
3806 * typeck.c (COMP_TYPE_ATTRIBUTES): Don't define.
3807 (comptypes): Use target.comp_type_attributes.
3808
5a0db193
NS
38092001-06-29 Nathan Sidwell <nathan@codesourcery.com>
3810
3811 * cp-tree.h (flag_dump_class_layout): Remove unneeded declaration.
3812
46f018e1
GDR
38132001-06-28 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
3814
3815 * error.c (lang_print_error_function): Add a `diagnostic_context *'
3816 parameter. Tweak.
3817
501990bb
NB
38182001-06-27 Neil Booth <neil@cat.daikokuya.demon.co.uk>
3819
3820 * decl2.c (import_export_class): Update.
3821
f68fc4db
GDR
38222001-06-26 Gabriel Dos Reis <gdr@codesourcery.com>
3823
3824 * error.c (init_error): Adjust settings.
3825
9596ddd6
GDR
38262001-06-26 Gabriel Dos Reis <gdr@codesourcery.com>
3827
3828 * error.c (init_error): Adjust settings.
3829
c93586fa
RS
38302001-06-19 Richard Sandiford <rsandifo@redhat.com>
3831
3832 * except.c (initialize_handler_parm): Expect __cxa_begin_catch to
3833 return pointers to data members by reference rather than by value.
3834
0d97bf4c
JM
38352001-06-18 Jason Merrill <jason_merrill@redhat.com>
3836
3837 Implement the Named Return Value optimization.
3838 * cp-tree.h (struct cp_language_function): Add x_return_value.
3839 (current_function_return_value): Now a macro.
3840 * decl.c: Don't define it.
3841 (define_label, finish_case_label): Don't clear it.
3842 (init_decl_processing): Don't register it with GC.
3843 * semantics.c (genrtl_finish_function): Don't check it for
3844 no_return_label. Copy the RTL from the return value to
3845 current_function_return_value and walk, calling...
3846 (nullify_returns_r): ...this new fn.
3847 * typeck.c (check_return_expr): Set current_function_return_value.
3848
13de7ec4
JM
38492001-06-15 Jason Merrill <jason_merrill@redhat.com>
3850
3851 * class.c (dfs_accumulate_vtbl_inits): Just point to the base we're
3852 sharing a ctor vtable with. Merge code for cases 1 and 2.
3853 (binfo_ctor_vtable): New fn.
3854 (build_vtt_inits, dfs_build_secondary_vptr_vtt_inits): Use it.
3855
3ea099f1
JM
38562001-06-14 Jason Merrill <jason_merrill@redhat.com>
3857
3858 * class.c (dfs_find_final_overrider): Fix logic.
3859
3860 * class.c (update_vtable_entry_for_fn): Uncomment optimization to use
3861 virtual thunk instead of non-virtual.
3862 (get_matching_virtual): Uncomment.
3863
3864 * pt.c (unify): Don't recurse between the POINTER_TYPE and the
3865 OFFSET_TYPE. If we're adding cv-quals, the extra ones would be on
3866 PARM, not ARG.
3867
87326ba8
NS
38682001-06-14 Nathan Sidwell <nathan@codesourcery.com>
3869
3870 * class.c (dfs_accumulate_vtbl_inits): For case 2 & 3, make sure
3871 we've not emerged from the hierarchy of RTTI_BINFO on reaching
3872 a non-virtual base.
3873
e065a36e
MM
38742001-06-13 Mark Mitchell <mark@codesourcery.com>
3875
3876 * NEWS: Update release number.
3877
623fe76a
NS
38782001-06-12 Nathan Sidwell <nathan@codesourcery.com>
3879
3880 PR c++/3130, c++/3131, c++/3132
3881 * cp-tree.h (BINFO_UNSHARED_MARKED): New #define.
3882 * class.c (force_canonical_binfo_r): Move
3883 BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move
3884 virtual bases unless they're primary and what they're primary
3885 too has been moved.
3886 (dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope
3887 with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and
3888 BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most
3889 derived binfo.
3890 (mark_primary_bases): Use BINFO_UNSHARED_MARKED.
3891 (layout_nonempty_base_or_field): Add most derived type
3892 parameter. Adjust.
3893 (layout_empty_base): Likewise.
3894 (build_base_field): Likewise.
3895 (build_base_fields): Likewise.
3896 (propagate_binfo_offsets): Add most derived type
3897 parameter. Skip non canonical virtual bases too.
3898 (dfs_set_offset_for_unshared_vbases): Don't skip primary
3899 bases. Do skip canonical bases.
3900 (layout_virtual_bases): Adjust.
3901 (layout_class_type): Adjust.
3902 (dfs_get_primary_binfo): Build list of virtual primary base
3903 candidates.
3904 (get_primary_binfo): Check that the shared virtual primary
3905 base candidate was found first.
3906 (accumulate_vtbl_inits): Don't do anything for non-vptr
3907 containing binfos. For case 1 primary virtual bases, keep
3908 checking that we've not emerged from the hierarchy of RTTI_BINFO.
3909
7bdcf888
NS
39102001-06-12 Nathan Sidwell <nathan@codesourcery.com>
3911
3912 PR c++/3089
3913 * class.c (dfs_accumulate_vtbl_inits): Always walk down the
3914 hierarchy looking for primary bases for a ctor
3915 vtable. Recursively call oneself, if we meet our primary via
3916 this route and haven't met it yet via inheritance graph order.
3917
25b5b465
MM
39182001-06-11 Mark Mitchell <mark@codesourcery.com>
3919
3920 * lang-options.h: Emit documentation for -fno-honor-std, not
3921 -fhonor-std.
3922
eb2d0614
AO
39232001-06-10 Alexandre Oliva <aoliva@redhat.com>
3924
3925 * typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]:
3926 Don't clobber delta.
3927 (expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn.
3928
2a2b2d43
GDR
39292001-06-10 Mark Mitchell <mark@codesourcery.com>
3930 Gabriel Dos Reis <gdr@codesourcery.com>
3931
3932 * Make-lang.in (cp/call.o): Depend on diagnostic.h
3933 (cp/typeck.o): Depend on diagnostic.h
3934 (cp/typeck2.o): Depend on diagnostic.h
07167a18 3935 (cp/repo.o): Depend on dignostic.h
2a2b2d43
GDR
3936 * typeck.c: #include diagnostic.h
3937 (convert_for_initialization): Remove extern declaration for
3938 warningcount and errorcount.
3939
3940 * call.c: #include diagnostic.h
3941 (convert_like_real): Remove extern declaration for warnincount and
07167a18 3942 errorcount.
2a2b2d43
GDR
3943
3944 * repo.c: #include diagnostic.h
3945 * typeck2.c: #include diagnostic.h
3946
06d5e633
NS
39472001-06-08 Nathan Sidwell <nathan@codesourcery.com>
3948
3949 * decl.c (duplicate_decls): Fix DECL_TEMPLATE_RESULT thinko
3950 in previous change.
3951
9ac1bd2e
NS
39522001-06-08 Nathan Sidwell <nathan@codesourcery.com>
3953
3954 PR c++/2929
3955 * friend.c (do_friend): Use push_decl_namespace for classes at
3956 namespace scope.
3957
85a9a0a2
NS
39582001-06-08 Nathan Sidwell <nathan@codesourcery.com>
3959 Jason Merrill <jason_merrill@redhat.com>
3960
3961 PR c++/3061
3962 * class.c (build_secondary_vtable): Use assert, rather than an error
3963 message.
3964 (dfs_fixup_binfo_vtbls): BINFO_VTABLE might be NULL.
3965 (dfs_accumulate_vtbl_inits): A lost primary virtual base may
3966 be between ORIG_BINFO and RTTI_BINFO, but neither of them.
3967 Don't set BINFO_VTABLE for a primary virtual base.
3968
daa8df65
MM
39692001-06-07 Mark Mitchell <mark@codesourcery.com>
3970
3971 * decl.c (duplicate_decls): Update source position information
3972 when a template function is defined.
3973
37344b9b
PE
39742001-06-07 Phil Edwards <pme@sources.redhat.com>
3975
3976 * lang-specs.h: Move -D_GNU_SOURCE to config/linux.h.
3977
fcebb2dd
NS
39782001-06-07 Nathan Sidwell <nathan@codesourcery.com>
3979
3980 PR c++/2914
3981 * decl.c (pushtag): Don't push into a complete type's scope.
3982
d0cd8b44
JM
39832001-06-06 Jason Merrill <jason_merrill@redhat.com>
3984
3985 * cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose.
3986 (struct lang_decl_flags): Lose generate_with_vtable_p.
3987 (BV_GENERATE_THUNK_WITH_VTABLE_P): Lose.
3988 * class.c (copy_virtuals): Adjust.
3989 * decl2.c (mark_vtable_entries): Adjust.
3990 * method.c (make_thunk, build_vtable_entry): Adjust.
3991 * class.c (update_vtable_entry_for_fn): Only look as far as the
3992 first defining class.
07167a18 3993 (build_vtbl_initializer): Put nothing in the slot for a function only
d0cd8b44 3994 defined in a lost primary virtual base.
07167a18 3995 (add_vcall_offset_vtbl_entries_1): Use the same code for
d0cd8b44
JM
3996 the lost primary case and the normal case.
3997 (dfs_unshared_virtual_bases): Don't lose a non-virtual primary base.
3998 (get_vfield_offset, get_derived_offset): Lose.
3999 (dfs_find_final_overrider): Use look_for_overrides_here.
4000 (get_matching_virtual): New fn.
4001 * semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P,
4002 not BV_VCALL_INDEX.
4003 * search.c (look_for_overrides_here): Split out from...
4004 (look_for_overrides_r): Here.
4005
4006 * class.c (find_final_overrider): Return error_mark_node on error.
4007
4008 * decl2.c (key_method): #if 0 accidental change.
4009
acf97e0b
JDA
40102001-06-06 John David Anglin <dave@hiauly1.hia.nrc.ca>
4011
4012 * call.c (convert_default_arg): Use INTEGRAL_TYPE_P.
4013 (build_over_call): Likewise.
4014 * decl.c (grokparms): Likewise.
4015 * pt.c (tsubst_decl): Likewise.
4016 * typeck.c (convert_arguments): Likewise.
4017
7e9abee9
MM
40182001-06-05 Mark Mitchell <mark@codesourcery.com>
4019
47ee8904
MM
4020 * semantics.c (begin_class_definition): Robustify.
4021
7e9abee9
MM
4022 * pt.c (instantiate_decl): Tell the repository code about the
4023 clones, not the cloned functions.
4024 * repo.c (repo_template_used): Explicitly instantiate the cloned
4025 function, not the clones.
4026
bea09693
NS
40272001-06-05 Nathan Sidwell <nathan@codesourcery.com>
4028
4029 * call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and
4030 ICS_BAD_FLAG on created conversion.
4031 (compare_ics): Break out rank.
4032
8f7550ca
NS
40332001-06-05 Nathan Sidwell <nathan@codesourcery.com>
4034
4035 * decl.c (xref_tag): Remove extraneous %s on dependent name
4036 lookup warning.
4037
442e01b6
NS
40382001-06-05 Nathan Sidwell <nathan@codesourcery.com>
4039
4040 * class.c (layout_vtable_decl): Fix off by one error on
4041 build_index_type.
4042 (build_vtt): Likewise.
4043 (build_ctor_vtbl_group): Likewise.
4044
b7442fb5
NS
40452001-06-05 Nathan Sidwell <nathan@codesourcery.com>
4046
4047 * class.c (maybe_indent_hierarchy): New function.
4048 (dump_class_hierarchy_r): Add flags. Dump extra binfo
4049 information, if enabled. Use maybe_indent_hierarchy. Adjust
4050 output format.
4051 (dump_class_hierarchy): Adjust prototype. Adjust output format.
4052 (dump_array, dump_vtable, dump_vtt): New functions.
4053 (finish_struct_1): Adjust hierarchy dumping.
4054 (initialize_vtable): Call dump_vtable.
4055 (build_vtt): Call dump_vtt.
4056 (build_ctor_vtbl_group): Call dump_vtable.
4057 * decl2.c (flag_dump_class_layout): Remove.
4058 (cxx_decode_option): Remove dump translation unit
4059 and dump class hierarchy check. Call dump_switch_p.
4060 (finish_file): Adjust dumping.
4061 (dump.c): Only dump base classes if not TDF_SLIM.
4062 Only dump namespace members if not TDF_SLIM.
4063 * optimize.c (dump_function): New function.
4064 (optimize_function): Call dump_function.
4065 * semantics.c (expand_body): Use dump_enabled_p.
4066
e5410b32
NS
40672001-06-01 Nathan Sidwell <nathan@codesourcery.com>
4068
4069 PR g++/2936
4070 Part missed from first commit
4071 * decl2.c (finish_anon_union): Copy context.
4072
e97c9488
NS
40732001-05-30 Nathan Sidwell <nathan@codesourcery.com>
4074
4075 PR g++/2936
e97c9488
NS
4076 * optimize.c (remap_decl): Remap anonymous aggregate members too.
4077
87d9ac49
NS
40782001-05-26 Nathan Sidwell <nathan@codesourcery.com>
4079
4080 PR g++/2823
4081 * semantics.c (expand_body): Don't optimize thunks.
4082
88657302
RH
40832001-05-25 Sam TH <sam@uchicago.edu>
4084
4085 * cp-tree.h lex.h: Fix header include guards.
4086
40872001-05-25 Mark Mitchell <mark@codesourcery.com>
10841285
MM
4088
4089 * decl.c (init_decl_processing): Tweak.
4090
0b1161fc
MM
40912001-05-24 Mark Mitchell <mark@codesourcery.com>
4092
4093 * decl.c (duplicate_decls): Tidy.
4094 (init_decl_processing): Always set flag_no_builtin.
4095
6f56d925
NS
40962001-05-24 Nathan Sidwell <nathan@codesourcery.com>
4097
4098 PR c++/2184
4099 * decl2.c (do_local_using_decl): Push the decls, even in a
4100 template.
4101
39e0656d
MM
41022001-05-22 Mark Mitchell <mark@codesourcery.com>
4103
4104 * optimize.c (initialize_inlined_parameters): Don't set
4105 TREE_READONLY for a VAR_DECL taking the place of an inlined
4106 PARM_DECL.
4107
0401d499
JM
41082001-05-22 Jason Merrill <jason_merrill@redhat.com>
4109
4110 * class.c, cp-tree.h, rtti.c: Remove com_interface attribute support.
4111 * tree.c (cp_valid_lang_attribute): Warn about use of com_interface
4112 attribute.
4113
14fc3426
JM
41142001-05-22 Joseph S. Myers <jsm28@cam.ac.uk>
4115
4116 * parse.y: Refer to compound literals as such, not as
4117 constructor-expressions.
4118
3f41ffd8
MM
41192001-05-21 Mark Mitchell <mark@codesourcery.com>
4120
4121 * call.c (build_op_delete_call): Ignore exception-specifications
4122 when looking for matching delete operators.
4123 * init.c (build_new_1): Compute whether or not the allocation
4124 function used is a placement allocation function or not, and
4125 communicate this information to build_op_delete_call.
4126
1a6025b4
JM
41272001-05-21 Jason Merrill <jason_merrill@redhat.com>
4128
90ecce3e
JM
4129 * class.c (build_vtable_entry_ref): Lose vtbl parm. Fix for new abi.
4130 (build_vtbl_ref): Adjust.
4131 (dfs_accumulate_vtbl_inits): Set TREE_CONSTANT on the vtable address.
4132 * decl2.c (lang_f_options): Remove huge-objects, vtable-thunks.
4133 Re-add vtable-gc.
4134 (unsupported_options): Correspondingly.
4135
4136 * decl2.c (maybe_make_one_only): Check flag_weak, not
4137 supports_one_only().
4138
1a6025b4
JM
4139 * cp-tree.def (START_CATCH_STMT): Lose.
4140 * dump.c (cp_dump_tree): Don't dump it. Do dump HANDLER_PARMS.
4141 * tree.c (cp_statement_code_p): Don't case it.
4142 * semantics.c (cp_expand_stmt): Likewise.
4143 * cp-tree.h (START_CATCH_TYPE): Lose.
4144 (HANDLER_TYPE): New.
4145 * except.c (expand_start_catch_block): Don't start any blocks.
4146 Return the type.
4147 (expand_end_catch_block): Don't end any blocks.
4148 * parse.y (handler): Don't pass anything from finish_handler_parms
4149 to finish_handler.
4150 * pt.c (tsubst_expr): Likewise.
4151 * semantics.c (begin_handler): Call note_level_for_catch here.
4152 (finish_handler_parms): Don't return anything.
4153 (genrtl_catch_block, begin_catch_block): Lose.
4154 (genrtl_handler): Call expand_start_catch here.
4155
41562001-05-18 Jason Merrill <jason_merrill@redhat.com>
4157
4158 * class.c (build_vtable): Set DECL_ASSEMBLER_NAME for vtables here.
4159 (get_vtable_decl, build_vtt): Not here.
4160
d30a825a
NS
41612001-05-20 Nathan Sidwell <nathan@codesourcery.com>
4162
4163 PR c++/2781
4164 * optimize.c (update_cloned_parm): Copy addressability and other
4165 flags.
4166
3b82c249
KL
41672001-05-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4168
4169 * pt.c (determine_specialization): Ignore artificial functions.
4170
2a967f3d
NB
41712001-05-20 Neil Booth <neil@daikokuya.demon.co.uk>
4172
4173 * cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update.
4174 (C_RID_CODE): Remove.
4175 * lex.c (cxx_init_options): Call set_identifier_size. Update.
4176 (init_parse): Don't do it here.
4177
f99df08e
DN
41782001-05-18 Diego Novillo <dnovillo@redhat.com>
4179
4180 * decl2.c (finish_objects): Use the original SYMBOL_REF from the
4181 function declaration to avoid stripping the symbol's attributes.
4182
2b0cbc5d
NS
41832001-05-18 Nathan Sidwell <nathan@codesourcery.com>
4184
4185 * decl.c (pushdecl): Adjust error string.
4186 (xref_tag): Adjust friend class injection warning. Remove the
4187 inherited name from the class shadowed scope.
4188
e6855a2d
MM
41892001-05-17 Mark Mitchell <mark@codesourcery.com>
4190
4191 * except.c (cp_protect_cleanup_actions): New function.
07167a18 4192 (init_exception_processing): Don't set protect_cleanup_actions
e6855a2d
MM
4193 here. Do set lang_protect_cleanup_actions.
4194
cc469ee9
NS
41952001-05-16 Nathan Sidwell <nathan@codesourcery.com>
4196
4197 * spew.c (read_token): Call yyerror on all unexpected tokens.
4198
3f0a9b35
NS
41992001-05-16 Nathan Sidwell <nathan@codesourcery.com>
4200
4201 * init.c (member_init_ok_or_else): Take a tree rather than
4202 string for name.
4203 (expand_member_init): Adjust.
4204
8d0cb60d
NC
42052001-05-14 Nick Clifton <nickc@cambridge.redhat.com>
4206
4207 * decl.c (duplicate_decls): Suppress warning about duplicate
749ced52 4208 decls if the first decl is a friend.
8d0cb60d 4209
1f730ff7
ZW
42102001-05-12 Zack Weinberg <zackw@stanford.edu>
4211
4212 * except.c (choose_personality_routine): Export. Add
4213 explanatory comment. Take an enum languages, not a boolean.
4214 (initialize_handler_parm): Adjust to match.
4215 * cp-tree.h: Prototype choose_personality_routine.
4216 * lex.c (handle_pragma_java_exceptions): New function.
4217 (init_cp_pragma): Register #pragma GCC java_exceptions.
4218
90e0c410
NB
42192001-05-12 Neil Booth <neil@cat.daikokuya.demon.co.uk>
4220
4221 * method.c (build_mangled_C99_name): Remove unused prototype.
4222
cb7fdde2
AO
42232001-05-12 Alexandre Oliva <aoliva@redhat.com>
4224
4225 * cp-tree.h (ptrmemfunc_vbit_where_t): Declare type.
4226 * typeck.c (get_member_function_from_ptrfunc,
4227 build_ptrmemfunc, expand_ptrmemfunc_cst): Take
4228 TARGET_PTRMEMFUNC_VBIT_LOCATION into account.
18ae7f63
AO
4229
4230 Reverted Geoff Keating's 2001-05-03's patch.
4231
401deb20
IR
42322001-05-11 Ira Ruben <ira@apple.com>
4233
4234 * cp/cp-tree.h (C_EXP_ORIGINAL_CODE): Delete; declared in c-common.h.
4235
8e93d446
NB
42362001-05-11 Neil Booth <neil@daikokuya.demon.co.uk>
4237
4238 * cp-tree.h (finish_label_expr, lookup_label): Delete.
4239 * parse.y: Update for '&&'; don't issue warning here.
4240 * semantics.c (finish_label_expr): Delete.
4241
5cdba4ff
MM
42422001-05-07 Mark Mitchell <mark@codesourcery.com>
4243
4244 * splay-tree.h (splay_tree_max): New function.
4245 (splay_tree_min): Likewise.
4246
8e9eff6b
GK
42472001-05-03 Geoffrey Keating <geoffk@redhat.com>
4248
4249 * cp-tree.h (enum cp_tree_index): Add CPTI_PFN_VFLAG_IDENTIFIER.
4250 (pfn_vflag_identifier): Define.
4251 Update comment about layout of pointer functions.
4252 (build_ptrmemfunc1): Update prototype.
4253 (expand_ptrmemfunc_cst): Update prototype.
4254 * decl.c (initialize_predefined_identifiers): Initialize
4255 pfn_vflag_identifier.
4256 (build_ptrmemfunc_type): When FUNCTION_BOUNDARY < 16, add
4257 an extra field to the type.
07167a18 4258 * expr.c (cplus_expand_constant): Pass 'flag' between
8e9eff6b
GK
4259 expand_ptrmemfunc_cst and build_ptrmemfunc1.
4260 * typeck.c (get_member_function_from_ptrfunc): When
4261 FUNCTION_BOUNDARY < 16, look at additional field to determine
4262 if a pointer-to-member is a real pointer or a vtable offset.
4263 (build_ptrmemfunc1): Add new parameter to contain extra field.
4264 (build_ptrmemfunc): Pass the extra field around.
4265 (expand_ptrmemfunc_cst): Add new parameter to return extra field.
4266 (pfn_from_ptrmemfunc): Ignore the extra field.
4267
acc72c37
MM
42682001-05-03 Mark Mitchell <mark@codesourcery.com>
4269
4270 * cp-tree.h (flag_inline_trees): Update documentation.
4271 * decl.c (init_decl_processing): Adjust handling of
4272 flag_inline_functions and flag_inline_trees to support -O3.
4273 (grokfndecl): Set DECL_INLINE on all functions if that's what
4274 the user requested.
4275 (save_function_data): Clear DECL_INLINE in
4276 current_function_cannot_inline is non-NULL.
4277 * decl2.c (flag_inline_trees): Update documentation.
4278
5158d7ee
NS
42792001-05-03 Nathan Sidwell <nathan@codesourcery.com>
4280
4281 * dump.c (cp_dump_tree, USING_STMT case): New case.
4282 * tree.c (cp_statement_code_p): Add USING_STMT.
4283 * decl2.c (do_using_directive): Add the using directive statement.
4284
4285 * tree.c (walk_tree): Reformat an if block.
4286
80f5bb34
MM
42872001-05-02 Mark Mitchell <mark@codesourcery.com>
4288
4289 * decl.c (compute_array_index_type): Don't try to do anything with
4290 the indices when processing a template.
4291
3e411c3f
KG
42922001-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4293
4294 * call.c: NULL_PTR -> NULL.
4295 * class.c: Likewise.
4296 * cvt.c: Likewise.
4297 * decl.c: Likewise.
4298 * decl2.c: Likewise.
4299 * except.c: Likewise.
4300 * init.c: Likewise.
4301 * rtti.c: Likewise.
4302 * search.c: Likewise.
4303 * tree.c: Likewise.
4304 * typeck.c: Likewise.
4305 * typeck2.c: Likewise.
4306
46188dca
MM
43072001-05-02 Mark Mitchell <mark@codesourcery.com>
4308
4309 * decl2.c (do_using_directive): Revert previous patch.
4310
9da99f7d
NS
43112001-05-01 Nathan Sidwell <nathan@codesourcery.com>
4312
4313 * cp-tree.def (USING_STMT): New statement node.
4314 * cp-tree.h (USING_STMT_NAMESPACE): New macro.
4315 * decl2.c (do_using_directive): Add USING_STMT to statement
4316 tree. Don't emit errors when processing template decl.
4317 * pt.c (tsubst_expr, USING_STMT case): New case.
4318 * semantics.c (cp_expand_stmt, USING_STMT case): New case.
4319
4b48a93e
NS
43202001-05-01 Nathan Sidwell <nathan@codesourcery.com>
4321
4322 * call.c (build_new_op): Convert args from reference here.
4323 (build_conditional_expr): Don't convert here.
4324
1bcea8d7
NS
43252001-05-01 Nathan Sidwell <nathan@codesourcery.com>
4326
4327 * spew.c (last_token_id): New static variable.
4328 (read_token): Set it here.
4329 (yyerror): Use it here.
4330
d72040f5
RH
43312001-04-30 Richard Henderson <rth@redhat.com>
4332
749ced52 4333 * cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations.
d72040f5
RH
4334 * decl.c: Likewise.
4335
c3aac512
MM
43362001-04-30 Mark Mitchell <mark@codesourcery.com>
4337
4338 * gxxint.texi: Remove.
4339 * Make-lang.in: Remove all traces of gxxint.texi.
4340
5fd893d5
MM
4341Mon Apr 30 16:14:10 2001 Mark P Mitchell <mark@codesourcery.com>
4342
4343 * decl2.c (start_static_initialization_or_destruction): Correct
4344 logic to handle the -fno-use-cxa-atexit case.
4345
d60e5448
MM
43462001-04-30 Mark Mitchell <mark@codesourcery.com>
4347
4348 * optimize.c (update_cloned_parm): New function.
4349 (maybe_clone_body): Use it. Update the `this' parameter too.
4350
7200764f
JM
43512001-04-29 Joseph S. Myers <jsm28@cam.ac.uk>
4352
4353 * decl2.c (unsupported_options): Add new-abi.
4354 * lang-options.h: Remove no longer supported options.
4355
2d46ec83
NS
43562001-04-27 Nathan Sidwell <nathan@codesourcery.com>
4357
4358 * except.c (can_convert_eh): Don't check template parms,
4359 typename types etc.
4360
02a1a68c
NS
43612001-04-27 Nathan Sidwell <nathan@codesourcery.com>
4362
4363 * optimize.c (maybe_clone_body): Copy parameter names and locations.
4364
5f6eeeb3
NS
43652001-04-27 Nathan Sidwell <nathan@codesourcery.com>
4366
4367 * cp-tree.h (adjust_clone_args): Prototype new function.
4368 * class.c (adjust_clone_args): New function.
4369 * decl.c (start_function): Call it for in charge ctors.
4370
1b28d441
MM
43712001-04-26 Mark Mitchell <mark@codesourcery.com>
4372
4373 * method.c (use_thunk): Make sure that thunks really are emitted
4374 when requested.
4375
0576ec13
NS
43762001-04-26 Nathan Sidwell <nathan@codesourcery.com>
4377
4378 * mangle.c (write_chars): New macro.
4379 (hwint_to_ascii): New function
4380 (write_number): Use it.
4381 (write_integer_cst): Deal with really big numbers.
4382
b96ada87
MM
43832001-04-25 Mark Mitchell <mark@codesourcery.com>
4384
4385 * optimize.c (maybe_clone_body): Copy TREE_PUBLIC before emitting
4386 the clone.
4387
6bda7a5e
NS
43882001-04-25 Nathan Sidwell <nathan@codesourcery.com>
4389
4390 * decl.c (grokdeclarator): Set context of namespace scope
4391 TYPE_DECLS.
4392
11fe225a
ZW
43932001-04-24 Zack Weinberg <zackw@stanford.edu>
4394
4395 * cp/optimize.c: Include hashtab.h.
4396 (struct inline_data): Add tree_pruner.
4397 (expand_call_inline, expand_calls_inline): Use it when calling
4398 walk_tree.
4399 (optimize_function): Initialize and free tree_pruner.
4400
0ba8a114
NS
44012001-04-24 Nathan Sidwell <nathan@codesourcery.com>
4402
4403 Lazy __FUNCTION__ generation.
4404 * cp-tree.def (FUNCTION_NAME): Remove.
4405 * cp-tree.h (function_name_declared_p): Remove.
4406 (cp_fname_init): Prototype.
4407 * decl.c (init_decl_processing): Don't generate __FUNCTION__ et al ids,
4408 don't call declare_function_name. Call start_fname_decls.
4409 (cp_make_fname_decl): Adjust parameters. Generate the name. Don't
4410 clobber the line number.
4411 (cp_fname_init): New function.
4412 (start_function): Call start_fname_decls.
4413 (finish_function): Call finish_fname_decls.
4414 * lex.c (reswords): Add slots for __FUNCTION__ et al.
4415 (rid_to_yy): Add mappings for __FUNCTION__ et al.
4416 * optimize.c (maybe_clone_body): Remove function_name_declared_p.
4417 * parse.y (VAR_FUNC_NAME): New token.
4418 (primary): Add VAR_FUNC_NAME.
4419 * pt.c (tsubst_decl): Adjust a DECL_PRETTY_FUNCTION_P's
4420 generation.
4421 (tsubst, FUNCTION_NAME case): Remove.
4422 (tsubst_copy, FUNCTION_NAME case): Remove.
4423 (tsubst_expr, DECL_STMT case): Be careful with a
4424 DECL_PRETTY_FUNCTION_P.
4425 (instantiate_decl): Remove function_name_declared_p.
4426 * semantics.c (begin_compound_statement): Don't call
4427 declare_function_name here.
4428 (setup_vtbl_ptr). Don't save & restore function_name_declared_p.
4429 (finish_translation_unit): Call finish_fname_decls.
4430 (expand_body): Remove function_name_declared_p.
4431 * typeck2.c (digest_init): Allow any ERROR_MARK.
4432
dfbb4f34
NS
44332001-04-24 Nathan Sidwell <nathan@codesourcery.com>
4434
4435 * pt.c (tsubst_decl): Use VOID_TYPE_P.
4436 * semantics.c: Fix some typos.
4437
e2584c52
PE
44382001-04-23 Phil Edwards <pme@sources.redhat.com>
4439
4440 * cp/decl2.c (flag_honor_std): Always initialize to 1.
4441
d4c3ec27
KG
44422001-04-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4443
4444 * xref.c (GNU_xref_file): Use concat in lieu of xmalloc/sprintf.
4445
2ac8a0f9
JM
44462001-04-23 Jason Merrill <jason_merrill@redhat.com>
4447
4448 * except.c (build_throw): Wrap the initialization of the exception
4449 object in a MUST_NOT_THROW_EXPR.
4450 (do_free_exception): #if 0.
4451
968b956a
MM
44522001-04-20 Mark Mitchell <mark@codesourcery.com>
4453
4454 * cp-tree.h (finish_enum): Change prototype.
4455 * decl.c (finish_enum): Reorganize.
4456 * parse.y (structsp): Adjust calls to finish_enum.
11fe225a 4457
aa1826e2
NS
44582001-04-20 Nathan Sidwell <nathan@codesourcery.com>
4459
4460 * tree.c (cp_tree_equal): Adjust final switch formatting. Add
4461 't' case.
4462
06d9f09f
NS
44632001-04-20 Nathan Sidwell <nathan@codesourcery.com>
4464
4465 * class.c (dfs_unshared_virtual_bases): Add ATTRIBUTE_UNUSED.
4466 (layout_empty_base): Return at end flag.
4467 (build_base_field): Likewise.
4468 (build_base_fields): Likewise.
4469 (layout_virtual_bases): Don't add 1 to eoc value.
4470 (end_of_class): Use full size for empty bases.
4471 (layout_class_type): Clear CLASSNEARLY_EMPTY_P if we appended
4472 empty bases. Don't add 1 to eoc value. Only add trailing padding
4473 if we're an empty class with no empty bases.
4474 (dump_class_hierarchy): Dump size and alignment.
4475
351a0f00
JJ
44762001-04-20 Jakub Jelinek <jakub@redhat.com>
4477
4478 * call.c (maybe_handle_ref_bind): Copy ICS_USER_FLAG and
4479 ICS_BAD_FLAG.
4480
881cae05
JJ
44812001-04-20 Jakub Jelinek <jakub@redhat.com>
4482
4483 * search.c (lookup_field_r): If looking for type and non-TYPE_DECL
4484 is found, look first if name does not match the structure name.
4485
5d2ed28c
MM
44862001-04-19 Mark Mitchell <mark@codesourcery.com>
4487
4488 * cp-tree.h (DECL_LANGUAGE): Don't assume DECL_LANG_SPECIFIC is
4489 set.
4490 (SET_DECL_LANGUAGE): New macro.
4491 * decl.c (duplicate_decls): Use SET_DECL_LANGUAGE.
4492 (pushdecl): Likewise.
4493 (build_library_fn_1): Likewise.
4494 (build_cp_library_fn): Likewise.
4495 (grokfndecl): Likewise.
4496 (grokvardecl): Mark `extern "C"' variables as having C linkage.
4497 * decl2.c (grokclassfn): Use SET_DECL_LANGUAGE.
4498 * lex.c (retrofit_lang_decl): Likewise.
4499 * mangle.c (mangle_decl_string): Don't mangle the names of
4500 variables declared with C language linkage.
4501 * semantics.c (finish_member_declaration): Use SET_DECL_LANGUAGE.
11fe225a 4502
41251458
JDA
45032001-04-18 John David Anglin <dave@hiauly1.hia.nrc.ca>
4504
4505 * semantics.c (simplify_aggr_init_exprs_r): Don't restore
4506 flag_access_control from uninitialized storage.
4507
1b4a93f7
MM
45082001-04-15 Mark Mitchell <mark@codesourcery.com>
4509
24272dc0
MM
4510 * cp-tree.h (TYPE_PTRMEM_CLASS_TYPE): Improve documentation.
4511 * mangle.c (write_pointer_to_member_type): Fix mangling of
4512 pointers to cv-qualified member function types.
4513
1b4a93f7
MM
4514 * init.c (build_delete): Create a SAVE_EXPR for the address if
4515 we're going to use it more than once.
4516
530ec96d
MM
45172001-04-13 Mark Mitchell <mark@codesourcery.com>
4518
4519 * cp-tree.h (DELTA2_FROM_PTRMEMFUNC): Remove.
4520 (expand_ptremfunc_cst): Change prototype.
4521 (delta2_from_ptrmemfunc): Remove.
4522 * expr.c (cplus_expand_constant): Adjust call to
4523 expand_ptrmemfunc_cst.
4524 * typeck.c (build_ptrmemfunc1): Simplify.
4525 (build_ptrmemfunc): Make sure that casting a PTRMEM_CST still
4526 results in a constant.
4527 (expand_ptrmemfunc_cst): Remove idx and delta2 parameters.
4528 (delta2_from_ptrmemfunc): Remove.
4529 (pfn_from_ptrmemfunc): Adjust call to expand_ptrmemfunc_cst.
11fe225a 4530
ee8fc32b
JM
45312001-04-12 Jason Merrill <jason_merrill@redhat.com>
4532
4533 * cp-tree.h (decl_namespace_list): New macro.
4534 (struct saved_scope): Add decl_ns_list.
4535 * decl.c (mark_saved_scope): Mark it.
4536 * decl2.c: Lose static decl_namespace_list.
4537 (init_decl2): Don't save it.
4538
48857160
KG
45392001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4540
4541 * cp-tree.h (warn_return_type, yylex): Delete redundant
4542 declarations.
11fe225a 4543
48857160
KG
4544 * decl.c (current_class_depth, global_namespace): Likewise.
4545
4546 * decl2.c (current_class_depth, flag_gnu_xref): Likewise
4547
4548 * repo.c (flag_use_repository): Likewise.
4549
845e14ed
KG
45502001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4551
4552 * cp-tree.h (pedantic, convert, global_bindings_p, insert_block,
4553 set_block, pushdecl, getdecls, gettags, init_decl_processing,
4554 maybe_build_cleanup, copy_lang_decl, prep_stmt, lvalue_p,
4555 lvalue_or_else, print_lang_statistics, comp_target_types,
4556 unsigned_type, signed_type, signed_or_unsigned_type,
4557 build_function_call, mark_addressable, incomplete_type_error):
4558 Delete redundant declarations.
4559
1951a1b6
JM
45602001-04-11 Jason Merrill <jason_merrill@redhat.com>
4561
4562 * cp-tree.h (TYPE_LINKAGE_IDENTIFIER): New macro.
4563 (TYPE_ANONYMOUS_P): New macro.
4564 (TAGGED_TYPE_P): New macro.
4565 * decl.c (check_tag_decl): Use TYPE_ANONYMOUS_P.
4566 (grokfndecl, grokvardecl, grokdeclarator): Likewise.
4567 * tree.c (no_linkage_helper): Likewise.
4568 * semantics.c (begin_class_definition): Likewise.
4569 * pt.c (convert_template_argument): Likewise.
4570 * lex.c (check_for_missing_semicolon): Likewise.
4571
0fb3018c
NS
45722001-04-12 Nathan Sidwell <nathan@codesourcery.com>
4573
4574 * class.c (dfs_unshared_virtual_bases): New function.
4575 (mark_primary_bases): Call it.
4576 (check_bases): Ignore virtual bases when determining
4577 nearly-emptiness.
4578
bbb53468
NS
45792001-04-12 Nathan Sidwell <nathan@codesourcery.com>
4580
4581 * method.c (make_thunk): Clear DECL_CLONED_FUNCTION.
4582
9b7949d5
MM
45832001-04-11 Mark Mitchell <mark@codesourcery.com>
4584
4585 * optimize.c (maybe_clone_body): Copy DECL_NUM_STMTS from the
4586 cloned function to the clone.
4587
d6684bc8
KG
45882001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4589
4590 * Make-lang.in (cp/semantics.o): Depend on $(EXPR_H).
4591
4592 * semantics.c: Include expr.h.
4593
a2095778
NS
45942001-04-11 Nathan Sidwell <nathan@codesourcery.com>
4595
4596 * method.c (implicitly_declare_fn): Commonize code for copy ctor
4597 and assignment op. Set TREE_USED for parameter.
4598
78b45a24
MM
45992001-04-10 Mark Mitchell <mark@codesourcery.com>
4600
4601 * class.c (find_final_overrider_data): Add `candidates'.
4602 (dfs_find_final_overrider): Don't issue error messages
4603 prematurely.
4604 (find_final_overrider): Issue error messages here.
4605 (build_base_field): Don't warn about amgibuous direct bases here.
4606 (warn_about_ambiguous_direct_bases): New function.
4607 (layout_class_type): Use it.
4608
0450d74d
RH
46092001-04-10 Richard Henderson <rth@redhat.com>
4610
4611 * typeck.c (build_array_ref): Push the array reference inside
4612 COMPOUND_EXPR and COND_EXPR.
4613
79065db2
MM
46142001-04-05 Mark Mitchell <mark@codesourcery.com>
4615
4616 * cp-tree.h (DECL_THIS_INLINE): Rename to DECL_DECLARED_INLINE_P.
4617 * decl.c (duplicate_decls): Adjust accordingly.
4618 (maybe_commonize_var): Likewise.
4619 (grokfndecl): Likewise.
4620 (start_function): Likewise.
4621 (start_method): Likewise.
4622 * decl2.c (key_method): Likewise.
4623 (import_export_decl): Likewise.
4624 * method.c (implicitly_declare_fn): Likewise.
4625 * optimize.c (maybe_clone_body): Likewise.
11fe225a 4626
fdecbf8a
BK
46272001-04-05 Benjamin Kosnik <bkoz@redhat.com>
4628
b03eced6 4629 * lang-specs.h: Add __DEPRECATED.
fdecbf8a 4630
0b4c1646
R
4631Thu Apr 5 16:54:29 2001 J"orn Rennecke <amylaar@redhat.com>
4632
4633 * search.c (get_dynamic_cast_base_type): When building a new
4634 constant, set its type to ssizetype.
4635
e59d6709
JJ
46362001-04-04 Jakub Jelinek <jakub@redhat.com>
4637
4638 * optimize.c (expand_call_inline): Only add newly inlined statements
4639 into inlined_stmts.
4640
0c918ce5
MM
46412001-04-03 Mark Mitchell <mark@codesourcery.com>
4642
4643 * cp-tree.h (OPERATOR_ASSIGN_FORMAT): Remove.
4644 (OPERATOR_FORMAT): Likewise.
4645 (OPERATOR_TYPENAME_FORMAT): Likewise.
4646 * operators.def: Remove old name-mangling information.
4647 * decl.c (grok_op_properties): Adjust accordingly.
4648 * lex.c (init_operators): Likewise.
4649 * rtti.c (get_tinfo_decl): Issue error messages about types that
4650 have variable size.
4651
92788413
MM
46522001-04-03 Mark Mitchell <mark@codesourcery.com>
4653
11fe225a 4654 * decl2.c (import_export_decl): Don't call import_export_class
92788413
MM
4655 when processing an inline member function.
4656 * semantics.c (expand_body): Call import_export_decl before
4657 emitting inline functions.
4658
52a11cbf
RH
46592001-03-28 Richard Henderson <rth@redhat.com>
4660
4661 IA-64 ABI Exception Handling:
4662 * cp-tree.def (EH_SPEC_BLOCK): New.
4663 (MUST_NOT_THROW_EXPR): New.
4664 * cp-tree.h: Update changed function declarations.
4665 (CPTI_PUSH_EXCEPTION_IDENTIFIER): Remove.
4666 (CPTI_CALL_UNEXPECTED): New.
4667 (struct cp_language_function): Rename x_eh_spec_try_block
4668 to x_eh_spec_block.
4669 (EH_SPEC_STMTS, EH_SPEC_RAISES): New.
11fe225a 4670 * decl.c (current_binding_level): If no current function
52a11cbf
RH
4671 bindings, revert to scope_chain.
4672 (initialize_predefined_identifiers): Remove __cp_push_exception.
4673 (store_parm_decls): Use begin_eh_spec_block.
4674 (finish_function): Use finish_eh_spec_block.
4675 (mark_lang_function): Update for name changes.
4676 * decl2.c (finish_file): No mark_all_runtime_matches.
4677 * dump.c (cp_dump_tree): Handle new tree codes.
4678 * error.c (dump_expr) [BIND_EXPR]: Fix typo.
4679 * except.c (catch_language_init, catch_language): Remove.
4680 (init_exception_processing): Don't set language code.
4681 Initialize call_unexpected_node, protect_cleanup_actions,
4682 eh_personality_libfunc, lang_eh_runtime_type.
4683 (call_eh_info, push_eh_info, get_eh_info, get_eh_value): Remove.
4684 (get_eh_type, get_eh_caught, get_eh_handlers): Remove.
4685 (prepare_eh_type): Split out type canonicalizations ...
4686 (build_eh_type_type): ... from here.
4687 (build_eh_type_type_ref): Remove.
4688 (mark_all_runtime_matches): Remove.
4689 (build_exc_ptr): New.
4690 (do_begin_catch, do_end_catch): New.
4691 (do_pop_exception): Remove.
4692 (build_terminate_handler): Remove.
4693 (choose_personality_routine): Split out language choice from ...
4694 (initialize_handler_parm): ... here.
4695 Use MUST_NOT_THROW_EXPR.
4696 (expand_start_catch_block): Use do_begin_catch. Simplify Java
4697 exception object handling.
4698 (expand_start_eh_spec, expand_end_eh_spec): Remove.
4699 (expand_exception_blocks, alloc_eh_object): Remove.
4700 (begin_eh_spec_block, finish_eh_spec_block): New.
4701 (do_allocate_exception, do_free_exception): New.
4702 (expand_throw): Merge into ...
4703 (build_throw): ... here. Update for abi.
4704 * expr.c (cplus_expand_expr): No expand_internal_throw.
4705 Handle MUST_NOT_THROW_EXPR.
4706 * pt.c (tsubst_expr): Handle EH_SPEC_BLOCK.
4707 * semantics.c (*) Update for except.h name changes.
4708 (genrtl_try_block): No protect_with_terminate.
4709 (genrtl_eh_spec_block): New.
4710 (genrtl_handler): Don't emit the goto here.
4711 (cp_expand_stmt): Handle EH_SPEC_BLOCK.
4712 (genrtl_finish_function): Don't expand_exception_blocks.
4713 * tree.c (cp_statement_code_p): Handle EH_SPEC_BLOCK.
4714
826840d9
RH
47152001-03-28 Richard Henderson <rth@redhat.com>
4716
4717 * decl.c (struct named_label_list): Rename eh_region to
4718 in_try_scope, add in_catch_scope.
4719 (struct binding_level): Rename eh_region to is_try_scope,
4720 add is_catch_scope.
4721 (note_level_for_try): Rename from note_level_for_eh.
4722 (note_level_for_catch): New.
4723 (poplevel): Copy both is_try_scope and is_catch_scope to
4724 the named_label_list struct.
4725 (check_previous_goto_1): Don't check for catch block via
4726 DECL_ARTIFICIAL; use in_try_scope instead.
4727 (check_goto): Likewise.
4728 * cp-tree.h (note_level_for_try, note_level_for_catch): Declare.
4729 * except.c (expand_start_catch_block): Call note_level_for_catch.
4730 * semantics.c (begin_compound_stmt): Update for note_level_for_try.
4731
531073e7
RH
47322001-03-27 Richard Henderson <rth@redhat.com>
4733
4734 * except.c: Use USING_SJLJ_EXCEPTIONS instead of
4735 exceptions_via_longjmp.
4736
8653a2c3
PE
47372001-03-27 Phil Edwards <pme@sources.redhat.com>
4738
4739 * pt.c (check_default_tmpl_args): Make error messages clearer.
4740
47412001-03-26 Phil Edwards <pme@sources.redhat.com>
4742
4743 * error.c: Also undefine 'A' macro used for cp_printers definition.
4744
911e6107
KG
47452001-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4746
4747 * Make-lang.in: Depend on $(SYSTEM_H), not system.h.
4748
005a5cb0
MY
47492001-03-26 Mike Yang <yang@research.att.com>
4750 Mark Mitchell <mark@codesourcery.com>
4751
4752 * dump.c (dump_access): New function.
4753 (cp_dump_tree): Use it. Dump basetype information for class
4754 types.
4755
b850de4f
MM
47562001-03-26 Mark Mitchell <mark@codesourcery.com>
4757
4758 * Makefile.in (optimize.o): Depend on params.h.
4759 (duplicate_decls): Copy DECL_NUM_STMTS, not DECL_FRAME_SIZE.
4760 (init_decl_processing): Set flag_no_inline when doing
4761 inlining-on-trees.
4762 * optimize.c: Include params.h.
4763 (struct inline_data): Improve documentation of FNS. Add
4764 FIRST_INLINED_FN, INLINED_STMTS, and CLONING_P.
4765 (INSNS_PER_STMT): New macro.
4766 (remap_block): Use CLONING_P.
4767 (inlinable_function_p): Don't inline big functions.
4768 (expand_call_inline): Keep track of how much inlining we've done.
4769 (optimize_function): Set FIRST_INLINED_FN.
4770 (maybe_clone_body): Set CLONING_P.
4771 * semantics.c (simplify_aggr_init_exprs_r): Fix typing problems in
4772 tree nodes.
4773 (genrtl_finish_function): Clear DECL_DEFER_OUTPUT before calling
4774 rest_of_compilation. Clear DECL_RTL for local variables
4775 afterwards.
4776 (clear_decl_rtl): New function.
11fe225a 4777
788bf0e3
NS
47782001-03-26 Nathan Sidwell <nathan@codesourcery.com>
4779
4780 Implement DR 209
4781 * cp-tree.h (skip_type_access_control,
4782 reset_type_access_control): Prototype.
4783 * decl.c (grokdeclarator): Access of friends is not checked.
4784 * parse.y (component_decl_list): Reset type access control.
4785 * semantics.c (decl_type_access_control): Clear
4786 current_type_lookups.
4787 (save_type_access_control): Don't save if not deferring.
4788 (skip_type_access_control, reset_type_access_control): New
4789 functions.
4790 (begin_class_definition): Do type access control for basetypes.
4791 Start deferred access control.
4792 (finish_class_definition): Resume immediate access control if
4793 this is a local class.
4794
730e1556
KG
47952001-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4796
4797 * class.c (add_method): Use memcpy/memmove, not bcopy.
4798
4799 * decl.c (duplicate_decls): Likewise.
4800
f1a0345c
JJ
48012001-03-23 Jakub Jelinek <jakub@redhat.com>
4802
4803 * mangle.c (write_discriminator): Use `_0' for discriminator 1,
4804 not `_'.
4805
8e4ce833
JJ
48062001-03-23 Jakub Jelinek <jakub@redhat.com>
4807
4808 * decl.c (local_names): Define.
4809 (push_local_name): New.
4810 (grok_reference_init): Return init if initializing static reference
4811 variable with non-constant instead of emitting it.
4812 Move expand_static_init call to cp_finish_decl.
4813 (layout_var_decl): Call push_local_name.
4814 (maybe_commonize_var): Allow inlining functions even if they have
4815 static local variables, use comdat_linkage for them if flag_weak.
4816 (check_initializer): Call obscure_complex_init if
4817 grok_reference_init returned non-zero.
4818 (save_function_data): Clear x_local_names.
4819 (pop_cp_function_context): Free x_local_names.
4820 (mark_inlined_fns): Remove.
4821 (mark_lang_function): Mark x_local_names.
4822 (lang_mark_tree): Don't mark DECL_ACCESS for DECL_DISCRIMINATOR_P.
4823 Mark inlined_fns as tree, remove call to mark_inlined_fns.
4824 * class.c (alter_access): Ensure DECL_ACCESS is never set if
4825 DECL_DISCRIMINATOR_P.
4826 * cp-tree.h (cp_language_function): Add x_local_names.
4827 (lang_decl_flags): Add discriminator into u2.
4828 (lang_decl_inlined_fns): Remove.
4829 (lang_decl): inlined_fns is now a TREE_VEC.
4830 (DECL_DISCRIMINATOR_P, DECL_DISCRIMINATOR): Define.
4831 * optimize.c (inlinable_function_p): DECL_INLINED_FNS is now a
4832 TREE_VEC, not a custom structure.
4833 (optimize_function): Likewise.
4834 * mangle.c (discriminator_for_local_entity): Discriminate among
4835 VAR_DECL local entities.
4836 * search.c (dfs_access_in_type): If DECL_DISCRIMINATOR_P, DECL_ACCESS
4837 is not valid.
4838
60c87482
BM
48392001-03-22 Bryce McKinlay <bryce@albatross.co.nz>
4840
4841 Add support for Java interface method calls.
4842 * cp-tree.h (struct lang_type): Add java_interface flag.
4843 (TYPE_JAVA_INTERFACE): New macro.
4844 * tree.c (cp_valid_lang_attribute): Handle "java_interface" attribute
4845 by setting TYPE_JAVA_INTERFACE.
4846 * call.c (java_iface_lookup_fn): New static.
11fe225a 4847 (build_over_call): If calling a method declared in a
60c87482
BM
4848 TYPE_JAVA_INTERFACE, call build_java_interface_fn_ref to generate the
4849 expression which resolves the function address.
4850 (build_java_interface_fn_ref): New function.
4851
94c7f30b
RH
48522001-03-22 Richard Henderson <rth@redhat.com>
4853
4854 * Make-lang.in (cp/except.o): Don't depend on insn-flags.h.
4855 * except.c: Don't include it.
4856
fd8b7a0e 48572001-03-22 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
826840d9 4858 based on an idea from Joe Buck <jbuck@synopsys.com>
fd8b7a0e
GP
4859
4860 * parse.y (bad_decl, template_arg_list_ignore, arg_list_ignore):
4861 New nonterminals.
4862 (data_def, component_decl): Add reductions to bad_decl.
4863
a1c2b86d
JJ
48642001-03-22 Jakub Jelinek <jakub@redhat.com>
4865
4866 * method.c (do_build_assign_ref): Don't use build_modify_expr for
4867 anonymous aggregates, since they don't have assignment operator
4868 method.
4869 * decl.c (fixup_anonymous_aggr): Disallow ctors, dtors and copy
4870 assignment operators for anonymous structure fields.
4871
46ccf50a
JM
48722001-03-21 Jason Merrill <jason@redhat.com>
4873
4874 * pt.c (instantiate_decl): Abort if we see a member constant
4875 instantiation that doesn't already have its initializer.
4876 Downgrade explicit instantiation without definition to pedwarn.
4877
4878 * cp-tree.h (DECL_TINFO_FN_P, SET_DECL_TINFO_FN_P): Remove.
4879 * class.c (build_vtable_entry): Don't check DECL_TINFO_FN_P.
4880 (import_export_decl): Check tinfo_decl_p, not DECL_TINFO_FN_P.
4881
4882 * cp-tree.h (CLASSTYPE_VTABLE_NEEDS_WRITING): Remove.
4883 (pending_vtables): Remove.
4884 * decl2.c (pending_vtables): Remove.
4885 (import_export_vtable): Use CLASSTYPE_INTERFACE_ONLY, not
4886 CLASSTYPE_VTABLE_NEEDS_WRITING.
4887 (import_export_class): Likewise.
4888 (init_decl2): Don't mark pending_vtables.
4889 * lex.c (handle_pragma_vtable): Just sorry.
4890 * pt.c (instantiate_class_template): Don't mess with
4891 CLASSTYPE_VTABLE_NEEDS_WRITING.
4892 (mark_class_instantiated): Likewise.
4893 * ptree.c (print_lang_type): Don't print it.
4894 * semantics.c (begin_class_definition): Don't set it.
4895
4896 * pt.c (template_tail): Replace with last_pending_template.
4897 (maybe_templates, maybe_template_tail): Remove.
4898 (add_pending_template): Adjust.
4899 (instantiate_pending_templates): Adjust.
4900
4901 * cp-tree.h (struct saved_scope): Remove lang_stack field.
4902 (current_lang_stack): Remove.
4903 * decl.c (maybe_push_to_top_level): Don't initialize it.
4904 (duplicate_decls): Use current_lang_depth.
4905 (xref_basetypes): Likewise.
4906 * class.c (current_lang_depth): New fn.
4907 (push_lang_context): Use more varray functionality.
4908 (pop_lang_context): Likewise.
64d9c3fe
JM
4909
4910 * error.c (GLOBAL_THING): Always use '__'.
4911
1c06710a
MM
49122001-03-21 Mark Mitchell <mark@codesourcery.com>
4913
71cb9286
MM
4914 * class.c (build_clone): Clear DECL_ASSEMBLER_NAME.
4915
1c06710a
MM
4916 * mangle.c (mangle_decl_string): Mangle the names of overloaded
4917 operators, even when they have `extern "C"' linkage.
4918
92643fea
MM
49192001-03-19 Mark Mitchell <mark@codesourcery.com>
4920
4921 * class.c (get_vtable_decl): Use SET_DECL_ASSEMBLER_NAME,
4922 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
4923 where it's not necessary.
4924 (add_method): Remove optimization involving comparison of
4925 DECL_ASSEMBLER_NAME.
4926 (build_vtbl_or_vbase_field): Use SET_DECL_ASSEMBLER_NAME,
4927 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
4928 where it's not necessary.
4929 (check_methods): Likewise.
4930 (build_clone): Likewise.
4931 (built_vtt): Likewise.
4932 * cp-tree.h (DECL_NEEDED_P): Likewise.
4933 * decl.c (pushtag): Likewise.
4934 (duplicate_decls): Likewise.
4935 (pushdecl): Likewise.
4936 (builtin_function): Likewise.
4937 (build_library_fn_1): Set DECL_LANGUAGE for library functions.
4938 (build_cp_library_fn): Likewise.
4939 (maybe_commonize_var): Use SET_DECL_ASSEMBLER_NAME,
4940 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
4941 where it's not necessary.
4942 (make_rtl_for_nonlocal_decl): Likewise.
4943 (cp_finish_decl): Likewise.
4944 (grokfndecl): Likewise.
4945 (grokvardecl): Likewise.
4946 (grokdeclarator): Likewise.
4947 (start_function): Likewise.
4948 (cp_missing_return_ok_p): Likewise.
4949 * decl2.c (grokclassfn): Likewise.
4950 (check_classfn): Likewise.
4951 (finish_static_data_member_decl): Likewise.
4952 (grokfield): Likewise.
4953 * error.c (GLOBAL_IORD_P): Remove.
4954 (dump_global_iord): Improve output.
4955 (dump_decl): Avoid using DECL_ASSEMBLER_NAME.
4956 * except.c (nothrow_libfn_p): Summarily reject any function not in
4957 namespace-scope.
4958 * init.c (build_java_class_ref): Don't explicitly set
4959 DECL_ASSEMBLER_NAME after calling mangle_decl.
4960 * mangle.c (mangle_decl_string): Handle extern "C" functions.
4961 (mangle_decl): Set the DECL_ASSEMBLER_NAME for the decl.
4962 * method.c (set_mangled_name_for_decl): Don't explicitly set
4963 DECL_ASSEMBLER_NAME after calling mangle_decl.
4964 (make_thunk): Explicitly set the DECL_ASSEMBLER_NAME and
4965 IDENTIFIER_GLOBAL_VALUE for the thunk.
4966 * pt.c (set_mangled_name_for_template_decl): Remove.
4967 (check_explicit_specialization): Don't use it.
4968 (looup_template_class): Don't set DECL_ASSEMBLER_NAME.
4969 (tsubst_friend_function): Likewise.
4970 (tsubst_decl): Likewise.
4971 (regenerate_decl_from_template): Use COPY_DECL_ASSEMBLER_NAME.
4972 * rtti.c (get_tinfo_decl): Use SET_DECL_ASSEMBLER_NAME,
4973 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
4974 where it's not necessary.
4975 (tinfo_base_init): Likewise.
4976 (create_real_tinfo_var): Likewise.
4977 * search.c (looup_field_1): Likewise.
4978 * semantics.c (finish_named_return_value): Likewise.
4979 * tree.c (init_tree): Set lang_set_decl_assembler_name.
11fe225a 4980
d064d75a
GDR
49812001-03-15 Gabriel Dos Reis <gdr@codesourcery.com>
4982
4983 Correct semantics restrictions checking in throw-expression.
4984 * except.c (is_admissible_throw_operand): New function.
4985 (build_throw): Use it.
4986
a3eab619
MM
49872001-03-14 Mark Mitchell <mark@codesourcery.com>
4988
4989 * decl.c (cp_make_fnname_decl): Set DECL_IGNORED_P on __FUNCTION__
4990 and its ilk.
4991
19e7881c
MM
49922001-03-14 Mark Mitchell <mark@codesourcery.com>
4993
4994 * class.c (build_clone): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
4995 * cp-tree.h (DECL_IN_MEMORY_P): Likewise.
4996 * decl.c (duplicate_decls): Likewise.
4997 (builtin_function): Likewise.
4998 (build_library_fn): Likewise.
4999 (build_cp_library_fn): Likewise.
5000 (check_initializer): Likewise.
5001 (cp_finish_decl): Likewise.
5002 * decl2.c (grokfield): Likewise.
5003 (grok_function_init): Remove #if 0'd code.
5004 (finish_anon_union): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
5005 * friend.c (do_friend): Likewise.
5006 * init.c (get_temp_regvar): Likewise.
5007 * method.c (make_thunk): Likewise.
5008 * pt.c (tsubst_friend_function): Likewise.
5009 (tsubst_decl): Likewise.
5010 (regenerate_decl_from_template): Likewise.
5011 * semantics.c (genrtl_named_return_value): Likewise.
5012 (expand_body): Likewise.
5013 (genrtl_finish_function): Likewise.
5014 * tree.c (cp_tree_equal): Likewise.
11fe225a 5015
78fe06c2
NS
50162001-03-12 Nathan Sidwell <nathan@codesourcery.com>
5017
5018 * call.c (convert_like_real): Add extra semantics to INNER
5019 parameter. Don't convert to temporary if a user conversion
5020 gives us an lvalue that we're about to bind to a reference.
5021 Set INNER to indicate pending reference binding on recursive
5022 calls.
5023
b3e68a79
NB
50242001-03-10 Neil Booth <neil@daikokuya.demon.co.uk>
5025
5026 * cp/lex.c: Delete duplicate pending_lang_change.
5027
50282001-03-10 Neil Booth <neil@daikokuya.demon.co.uk>
5029
5030 * cp/lex.c (handle_pragma_interface, handle_pragma_implementation):
5031 Similarly.
5032 * cp/repo.c (get_base_filename, open_repo_file): Similarly.
5033 * cp/cp-tree.h: Remove file_name_nondirectory prototype.
5034
11642c3a
ZW
50352001-03-09 Zack Weinberg <zackw@stanford.edu>
5036
5037 * Make-lang.in: Add dependencies on $(TM_P_H) as appropriate.
5038
bb6852eb 50392001-03-08 Stan Shebs <shebs@apple.com>
f7687817
SS
5040
5041 * cp-tree.h (set_identifier_local_value): Remove unused decl.
5042
cc937581
ZW
50432001-03-06 Zack Weinberg <zackw@stanford.edu>
5044
5045 * spew.c: Remove references to CPP_OSTRING.
5046
d1188d91
AH
50472001-03-06 Andrew Haley <aph@redhat.com>
5048
5049 * typeck.c (convert_arguments): Check that we have an fndecl.
5050
4eaf1d5b
AH
50512001-03-05 Andrew Haley <aph@redhat.com>
5052
5053 * typeck.c (convert_arguments): Don't do ellipsis conversion for
5054 __built_in_constant_p.
5055
7eeb553c
NS
50562001-03-02 Nathan Sidwell <nathan@codesourcery.com>
5057
5058 * typeck.c (build_static_cast): Allow enum to enum conversions
5059 as per DR 128.
5060
d282fcb2
NS
50612001-03-02 Nathan Sidwell <nathan@codesourcery.com>
5062
5063 * class.c (check_field_decls): Pointers to member do not a
5064 non-pod struct make, as per DR 148.
5065
f86fdf68
NS
50662001-03-02 Nathan Sidwell <nathan@codesourcery.com>
5067
5068 * call.c (joust): cp_pedwarn when using gnu extension concerning
5069 worst conversion sequences.
5070
d6edb99e
ZW
50712001-03-01 Zack Weinberg <zackw@stanford.edu>
5072
5073 * decl.c: Replace all uses of 'boolean' with 'bool'.
5074
f7143427
ZW
50752001-03-01 Zack Weinberg <zackw@stanford.edu>
5076
5077 * lang-specs.h: Add zero initializer for cpp_spec field to
5078 all array elements that need one. Don't put an #ifdef inside
5079 the initializer list; set a default for CPLUSPLUS_CPP_SPEC and
5080 use it.
5081
fbfe8c9e
NS
50822001-03-01 Nathan Sidwell <nathan@codesourcery.com>
5083
5084 Implement using decls inside template functions.
5085 * decl2.c (validate_nonmember_using_decl): Don't special case
5086 fake_std_node in the global namespace. Don't reject early when
5087 processing a template.
5088 (do_local_using_decl): Add to statement tree. Don't do further
5089 processing when building a template.
5090 * pt.c (tsubst_expr, DECL_STMT case): Deal with USING_DECLs.
5091
4d24a889
NS
50922001-03-01 Nathan Sidwell <nathan@codesourcery.com>
5093
5094 * decl2.c (do_nonmember_using_decl): Don't complain if we find
5095 same function. Do complain about ambiguating extern "C"
5096 declarations.
5097
e5844e6d
NS
50982001-02-28 Nathan Sidwell <nathan@codesourcery.com>
5099
5100 Remove floating point and complex type template constant parms.
5101 * pt.c (convert_nontype_argument): Remove REAL_TYPE and
5102 COMPLEX_TYPE extensions.
5103 (invalid_nontype_parm_type_p): Likewise.
5104
788f238c
JO
51052001-02-27 Jeffrey Oldham <oldham@codesourcery.com>
5106
5107 * except.c (call_eh_info): Revert "match_function"'s type.
5108
73ea87d7
NS
51092001-02-27 Nathan Sidwell <nathan@codesourcery.com>
5110
5111 Fix ctor vtable vcall offsets.
5112 * class.c (struct vtbl_init_data_s): Add rtti_binfo member.
5113 (build_rtt_vtbl_entries): Lose RTTI_BINFO parameter.
5114 (get_matching_base): Remove.
5115 (get_original_base): New function.
11fe225a 5116 (build_vtbl_initializer): Initialize vid.rtti_binfo.
73ea87d7
NS
5117 Use a virtual thunk for a ctor vtable with an index
5118 (add_vcall_offset_vtbl_entries_1): Check if binfo has lost a
5119 primary base within a constructor vtable. Only set
5120 BV_VCALL_INDEX when not a constructor vtable. Adjust vcall offset
5121 when primary base has been lost.
5122 * cp-tree.h (BINFO_VIRTUALS): Remove ambiguity from comment.
5123
fe730161
JO
51242001-02-26 Jeffrey Oldham <oldham@codesourcery.com>
5125
5126 * call.c (joust): Ensure more_specialized()'s argument length
5127 parameter has correct value for constructors.
5128
e5dd4aad
NS
51292001-02-26 Nathan Sidwell <nathan@codesourcery.com>
5130
5131 * except.c (call_eh_info): Cleanup generation of cp_eh_info struct.
11fe225a 5132
e5dd4aad
NS
5133 * decl.c (mark_inlined_fns): Prototype.
5134
25200ab2
MM
51352001-02-22 Mark Mitchell <mark@codesourcery.com>
5136
5137 * spew.c (yylex): Correct handling of friends.
5138
f58c04ac
MM
51392001-02-22 Mark Mitchell <mark@codesourcery.com>
5140
5141 * mangle.c (write_encoding): Pass write_function_type the
5142 FUNCTION_DECL for the function being encoded.
5143 (write_function_type): Pass it along to write_bare_function_type.
5144 (write_bare_function_type): Pass it along to write_method_parms.
5145 (write_method_parms): Don't mangle the compiler-generated
5146 parameters to a constructor or destructor.
5147
9c96f3f8
AJ
51482001-02-22 Andreas Jaeger <aj@suse.de>
5149
5150 * optimize.c: Include toplev.h for
5151 note_deferral_of_defined_inline_function prototype.
5152
b3bae5e2
JJ
51532001-02-22 Jakub Jelinek <jakub@redhat.com>
5154
5155 * cp-tree.h (struct lang_decl_inlined_fns): New.
5156 (struct lang_decls): Add inlined_fns.
5157 (DECL_INLINED_FNS): New macro.
5158 * optimize.c (struct inline_data): Add inlined_fns.
5159 (declare_return_variable): Use VARRAY_ACTIVE_SIZE macro.
5160 (inlinable_function_p): Likewise, fix typo in comment,
5161 function is not inlinable if it already inlined function currently
5162 being optimized.
306ef644 5163 (expand_call_inline): Add fn to inlined_fns if necessary.
b3bae5e2
JJ
5164 (optimize_function): Initialize inlined_fns.
5165 Save inlined_fns into DECL_INLINED_FNS after expanding inlines.
5166 * decl.c (mark_inlined_fns): New function.
5167 (lang_mark_tree): Call it.
5168
5daf7c0a
JM
51692001-02-21 Jason Merrill <jason@redhat.com>
5170
5171 * cp-tree.h (struct lang_decl_flags): Remove uninlinable flag.
5172 (DECL_UNINLINABLE): Move to middle-end.
5173
5174 * class.c (clone_function_decl): Set DECL_ABSTRACT on original fn.
5175 * decl.c (duplicate_decls): Preserve DECL_ABSTRACT.
5176 * class.c (build_clone): Set DECL_ABSTRACT_ORIGIN for the clone.
5177 * optimize.c (maybe_clone_body): Set DECL_ABSTRACT_ORIGIN for the
5178 parms and outer BLOCK. note_deferral_of_defined_inline_function.
5179
5180 * method.c (implicitly_declare_fn): Don't set DECL_ARTIFICIAL on
5181 second parm of op=.
5182
2c0fc02d
MM
51832001-02-19 Mark Mitchell <mark@codesourcery.com>
5184
5185 * decl2.c (set_decl_namespace): Allow explicit instantiations in
5186 any namespace.
5187
612164eb
KL
51882001-02-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5189
5190 * optimize.c (expand_call_inline): Don't walk subtrees of type
5191 nodes.
5192
69a59a49
MM
51932001-02-18 Mark Mitchell <mark@codesourcery.com>
5194
5195 * class.c (add_vcall_offset_vtbl_entries_1): Only add one entry
5196 for a destructor.
5197
e0fff4b3
JM
51982001-02-18 Jason Merrill <jason@redhat.com>
5199
5200 Do put the VTT parameter in DECL_ARGUMENTS.
5201 * cp-tree.h (struct cp_language_function): Add x_vtt_parm.
5202 (current_vtt_parm): New macro.
5203 (struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm.
5204 (DECL_HAS_VTT_PARM_P): New macro.
5205 (DECL_VTT_PARM): Remove.
5206 (FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros.
5207 * decl.c (duplicate_decls): Only copy the operator code if
5208 appropriate.
5209 (start_function): Set current_vtt_parm.
5210 (lang_mark_tree): Don't mark vtt_parm.
9c96f3f8 5211 * decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to
e0fff4b3
JM
5212 DECL_ARGUMENTS. Set DECL_HAS_VTT_PARM_P.
5213 * class.c (build_clone): Maybe remove the VTT parm.
5214 * optimize.c (maybe_clone_body): Set up the VTT parm.
5215 * pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm.
5216 * call.c (build_over_call): Just allow the VTT arg.
5217 * method.c (make_thunk): Don't set DECL_VTT_PARM.
5218 (do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM.
5219 (synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE.
5220 * decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise.
5221 * error.c (dump_function_decl): Likewise.
5222 * call.c (build_user_type_conversion_1, convert_like_real): Abort
5223 if we try to call a constructor with in-charge or VTT parms.
5224 * method.c (skip_artificial_parms_for): New fn.
5225 * call.c (add_function_candidate, build_over_call): Call it.
5226 * call.c (build_new_method_call): Use current_vtt_parm.
5227 * init.c (expand_virtual_init): Likewise.
5228 * class.c (same_signature_p): No longer static.
5229 * cp-tree.h: Declare it.
5230 * search.c (look_for_overrides_r): Use it.
5231
c750255c
MM
52322001-02-17 Mark Mitchell <mark@codesourcery.com>
5233
8fa33dfa
MM
5234 * cp-tree.h (new_abi_rtti_p): Remove.
5235 (name_mangling_version): Likewise.
5236 (flag_do_squangling): Likewise.
5237 * class.c (build_rtti_vtbl_entries): Remove old ABI support.
5238 * decl.c (grokfndecl): Likewise.
5239 * decl2.c (name_mangling_version): Remove.
5240 (flag_do_squangling): Likewise.
5241 (lang_f_options): Remove `squangle'.
5242 (unsupported_options): Add `squangle'.
5243 (cxx_decode_option): Issue a warning about uses of
5244 -fname-mangling-version.
5245 (finish_file): Remove old ABI support.
5246 * pt.c (check_explicit_specialization): Likewise.
5247 (tsubst_decl): Likewise.
5248 * rtti.c (init_rtti_processing): Likewise.
5249 (build_headof): Likewise.
5250 (get_tinfo_decl_dynamic): Likewise.
5251 (tinfo_from_decl): Likewise.
5252 (build_dynamic_cast_1): Likewise.
5253 (synthesize_tinfo_var): Likewise.
12fa82db
MM
5254 * init.c (build_new): Allow enumeration types for the array-bounds
5255 in a direct-new-declarator.
5256
5257 * semantics.c (finish_typeof): Resolve OFFSET_REFs.
5258
c750255c
MM
5259 * pt.c (check_explicit_specialization): Copy TREE_PRIVATE and
5260 TREE_PROTECTED from the template being specialized.
5261
a714e5c5
JM
52622001-02-17 Jason Merrill <jason@redhat.com>
5263
5264 * decl2.c (build_artificial_parm): Set TREE_READONLY.
5265
9c96f3f8 5266 * decl.c (bad_specifiers): Allow throw specs on things with
a714e5c5
JM
5267 pointer-to-function or -member-function type.
5268 * init.c (build_default_init): Don't use a CONSTRUCTOR to initialize
5269 a pmf.
5270
8084b91e
MM
52712001-02-17 Mark Mitchell <mark@codesourcery.com>
5272
5273 * call.c (check_dtor_name): Handle template names correctly.
5274
48f22ed2
JM
52752001-02-16 Jason Merrill <jason@redhat.com>
5276
5277 * cp-tree.h (DECL_USE_VTT_PARM): Remove.
5278 * decl2.c (maybe_retrofit_in_chrg): Don't create it.
5279 * optimize.c (maybe_clone_body): Don't substitute it.
5280 * call.c (build_new_method_call): Check in_chrg instead.
5281 * init.c (expand_virtual_init): Likewise.
5282
e8186ecf
GDR
52832001-02-16 Gabriel Dos Reis <gdr@codesourcery.com>
5284
5285 * decl.c (check_tag_decl): Make sure a typedef for an anonymous
5286 class-type introduces at least a type-name.
5287
2c1be322
JJ
52882001-02-16 Jakub Jelinek <jakub@redhat.com>
5289
5290 * call.c (convert_like_real): Create a temporary for non-lvalue.
5291
aab8454a
JO
52922001-02-16 Jeffrey Oldham <oldham@codesourcery.com>
5293
5294 * cp-tree.h: Fix typos in comments.
5295
a901fa64
JM
52962001-02-16 Jason Merrill <jason@redhat.com>
5297
5298 * optimize.c (remap_block): If we're compiling a clone, pass the
5299 new block to insert_block.
5300
8853373c
MM
53012001-02-16 Mark Mitchell <mark@codesourcery.com>
5302
5303 * semantics.c (finish_asm_stmt): Robustify.
5304
b60ecc04
MM
53052001-02-15 Mark Mitchell <mark@codesourcery.com>
5306
5307 * pt.c (push_template_decl_real): Don't remangle the name of a
5308 class template.
5309
e658449e
JM
53102001-02-15 Jim Meyering <meyering@lucent.com>
5311
fd48c9b5
DD
5312 * Make-lang.in (c++.install-common): Depend on installdirs.
5313 (c++.install-info): Likewise.
5314 (c++.install-man): Likewise.
e658449e 5315
f1a3f197
MM
53162001-02-15 Mark Mitchell <mark@codesourcery.com>
5317
5318 * typeck2.c (build_m_component_ref): Robustify.
5319
8826b15b
AO
53202001-02-15 Alexandre Oliva <aoliva@redhat.com>
5321
5322 * friend.c (do_friend): Don't take the nested [template] class
5323 into account when deciding whether to warn about the friend
5324 function not referring to a template function.
5325
7161c1a5
JJ
53262001-02-14 Jakub Jelinek <jakub@redhat.com>
5327
5328 * typeck.c (build_unary_op): Clarify error message.
5329
4806765e
AH
53302001-02-08 Aldy Hernandez <aldyh@redhat.com>
5331
a901fa64
JM
5332 * parse.y (component_constructor_declarator): allow optional
5333 parentheses around constructor class name.
4806765e 5334
bfc8e1e2
NS
53352001-02-14 Nathan Sidwell <nathan@codesourcery.com>
5336
5337 * cp-tree.h (setup_vtbl_ptr): Move prototype to semantics.c
5338 section.
5339 * init.c (emit_base_init): Remove incorrect comment about
5340 virtual bases.
5341 * method.c (make_thunk): Fix comment alignment.
5342
394fd776
NS
53432001-02-14 Nathan Sidwell <nathan@codesourcery.com>
5344
5345 Kill remnants of this is variable.
5346 * cp-tree.h (flag_this_is_variable): Remove.
5347 * decl2.c (flag_this_is_variable): Remove.
5348 * class.c (fixed_type_or_null): Add cdtor parm. Adjust.
5349 (build_vbase_path): The path is non-static, even in a cdtor.
5350 (resolves_to_fixed_type_p): Add additional return value.
5351 * search.c (init_vbase_pointers): Adjust.
5352 * tree.c (lvalue_p_1): Adjust.
5353 * typeck.c (mark_addressable): Adjust.
5354
d0ab7624
NS
53552001-02-14 Nathan Sidwell <nathan@codesourcery.com>
5356
5357 * pt.c (unify): Don't check cv quals of array types.
5358
7773899b
NS
53592001-02-14 Nathan Sidwell <nathan@codesourcery.com>
5360
5361 * tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to
5362 check whether we already have the type.
5363
52682a1b
MM
53642001-02-13 Mark Mitchell <mark@codesourcery.com>
5365
5366 * cp-tree.h (CLASSTYPE_DESTRUCTORS): Fix typo in comment.
5367 * call.c (build_op_delete_call): Simplify to remove duplicate
5368 code.
5369 * class.c (clone_function_decl): Don't build the deleting variant
5370 of a non-virtual destructor.
5371 * decl.c (finish_destructor_body): Don't call delete if this is a
5372 non-virtual destructor.
5373 * init.c (build_delete): Explicitly call `operator delete' when
5374 deleting an object with a non-virtual destructor.
9c96f3f8 5375
3b6bd115
JM
53762001-02-13 Jason Merrill <jason@redhat.com>
5377
5378 * lang-specs.h: Add more __EXCEPTIONS.
5379
45abaea8
NS
53802001-02-12 Nathan Sidwell <nathan@codesourcery.com>
5381
5382 * typeck2.c (process_init_constructor): Check
5383 TREE_HAS_CONSTRUCTOR before issuing missing init warning.
5384
996065b4
NS
53852001-02-12 Nathan Sidwell <nathan@codesourcery.com>
5386
5387 * pt.c (maybe_adjust_types_for_deduction, DEDUCE_ORDER case):
5388 Remove spurious information in comment. Allow further
5389 adjustments of REFERENCE_TYPE args.
5390
82c18d5c
NS
53912001-02-12 Nathan Sidwell <nathan@codesourcery.com>
5392
5393 * errfn.c (cp_deprecated): Tweak diagnostic text.
5394 * parse.y (new_initializer): Deprecate initializer lists
5395 extension.
5396
1f84ec23
MM
53972001-02-12 Mark Mitchell <mark@codesourcery.com>
5398
5399 Remove old ABI support.
5400
8c310e3f
MM
54012001-02-11 Mark Mitchell <mark@codesourcery.com>
5402
b1012f1b
MM
5403 * decl2.c (flag_vtable_thunks): Always set it to 1.
5404 (flag_new_abi): Likewise.
5405 * lang-specs.h: Remove conditional on ENABLE_NEW_GXX_ABI.
9c96f3f8 5406
8c310e3f
MM
5407 * Makefile.in (g++spec.o): Fix typo.
5408
3b635dfc
JM
54092001-02-09 Jason Merrill <jason@redhat.com>
5410
5411 * lang-specs.h: Restore definition of __EXCEPTIONS.
5412
bd0d5d4a
JM
54132001-02-08 Jason Merrill <jason@redhat.com>
5414
5415 * search.c (shared_member_p): New function.
5416 (lookup_field_r): Use it.
5417 * cp-tree.h (SHARED_MEMBER_P): Remove.
5418
5419 * method.c (process_overload_item): Handle template-dependent array
5420 bounds.
5421 * pt.c (type_unification_real): If we end up with undeduced nontype
5422 parms, try again.
5423
5424 * decl.c (lookup_name_real): Tweak warning to refer to decls, not
5425 types.
5426
5427 * typeck2.c (friendly_abort): Don't say anything if we have
5428 earlier errors or sorries.
5429
9c96f3f8 5430 * decl.c (check_tag_decl): Notice attempts to redefine bool and
bd0d5d4a
JM
5431 wchar_t. Ignore if in_system_header.
5432
5433 * decl.c (maybe_push_cleanup_level): New fn...
5434 (start_decl_1): ...split out from here.
5435 * cvt.c (build_up_reference): Use it.
5436 * cp-tree.h: Declare it.
5437
a9374841
MM
54382001-02-07 Mark Mitchell <mark@codesourcery.com>
5439
9c96f3f8 5440 * lang-specs.h: Use CPLUSPLUS_CPP_SPEC for the preprocessor
a9374841
MM
5441 spec.
5442
a87b4257
NS
54432001-02-06 Nathan Sidwell <nathan@codesourcery.com>
5444
5445 * pt.c (lookup_template_class): Make sure it's a primary
5446 template or template_template_parm when called from the parser.
5447 (instantiate_template_class): Add assertion.
5448
518fed76
AO
54492001-02-05 Alexandre Oliva <aoliva@redhat.com>
5450
5451 * method.c (build_mangled_name) [old abi]: Protect flush_repeats()
5452 from error_mark_node.
5453
9965d119
NS
54542001-02-05 Nathan Sidwell <nathan@codesourcery.com>
5455
5456 Fix specification and implementation bugs in V3 ABI
5457 construction vtables.
5458 * cp-tree.h (flag_dump_class_layout): New flag.
5459 (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH_P): Remove.
5460 (BINFO_LOST_PRIMARY_P): New flag.
5461 (SET_BINFO_NEW_VTABLE_MARKED): Adjust asserts.
5462 (BINFO_PRIMARY_MARKED_P): Rename to ...
5463 (BINFO_PRIMARY_P): ... here.
5464 (binfo_via_virtual): New prototype.
5465 * decl2.c (flag_dump_class_layout): New flag.
5466 (cxx_decode_option): Set it. Adjust -fdump-translation-unit to
5467 use `=' as a file name separator.
5468 * init.c (dfs_initialize_vtbl_ptrs): Walk into virtual primary
5469 bases.
5470 (build_vtbl_address): If this is a virtual primary base, then
5471 get the vtbl of what it is ultimately primary for.
5472 * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Adjust
5473 for BINFO_PRIMARY_P.
5474 (dfs_skip_nonprimary_vbases_markedp): Likewise.
5475 (get_shared_vbase_if_not_primary): Likewise.
5476 (dfs_get_pure_virtuals): Likewise.
5477 (expand_upcast_fixups): Likewise.
5478 (fixup_virtual_upcast_offsets): Likewise.
5479 (dfs_find_vbase_instance): Likewise.
5480 (find_vbase_instance): Likewise.
5481 (binfo_from_vbase): Adjust comment to reflect reality.
5482 (binfo_via_virtual): New function.
5483 * class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): New macros
5484 for binfo walking during VTT construction.
5485 (dfs_mark_primary_bases): Remove.
5486 (force_canonical_binfo_r): New function.
5487 (force_canonical_binfo): New function.
5488 (mark_primary_virtual_base): New function.
5489 (mark_primary_bases): Walk in inheritance graph order, use
5490 mark_primary_virtual_base.
5491 (determine_primary_base): Use some more intermediate variables.
5492 (dfs_find_final_overrider): Don't check for overriding along a
5493 virtual path.
5494 (dfs_modify_vtables): Walk into primary virtual bases too.
5495 (walk_subobject_offsets): Adjust for BINFO_PRIMARY_P.
5496 (build_base_fields): Likewise.
5497 (dfs_set_offset_for_unshared_vbases): Likewise.
5498 (layout_virtual_bases): Likewise.
5499 (end_of_class): Likewise.
5500 (finish_struct_1): Call dump_class_hierarchy, if requested.
5501 (dfs_get_primary_binfo): Use BINFO_TYPE for binfos.
5502 (dump_class_hierarchy_r): Add stream parameter. Emit more information.
5503 (dump_class_hierarchy): Add file parameter. Append to file, if
5504 required.
5505 (finish_vtbls): Adjust accumulate_vtbl_inits call.
5506 Use canonical base for virtual bases.
5507 (build_vtt): Add more comments. Adjust build_vtt_inits call.
5508 (build_vtt_inits): Remove VIRTUAL_VTTS_P parm.
5509 Only set BINFO_VPTR_INDEX on top level. Use VTT_TOP_LEVEL_P,
5510 VTT_MARKED_BINFO_P for binfo walking. Use canonical vbase for
5511 virtual VTTs.
5512 (dfs_build_secondary_vptr_vtt_inits): Extract VTT_TOP_LEVEL_P
5513 from DATA. We want virtual primary bases and all bases via virtual.
5514 Only set BINFO_VPTR_INDEX for top level. Look up from a primary
5515 virtual base when not a construction vtable.
5516 (dfs_ctor_vtable_bases_queue_p): New DFS predicate.
5517 (build_ctor_vtbl_group): Adjust accumulate_vtbl_inits call.
5518 Use canonical bases when processing virtual bases.
5519 (accumulate_vtbl_inits): We're interested in any base via a
5520 virtual path.
5521 (dfs_accumulate_vtbl_inits): If this is a primary virtual base
5522 within a construction vtable, determine what is being overridden.
5523 (build_vtbl_initializer): Add more comments
5524 (add_vcall_offset_vtbl_entries_1): Adjust comment.
5525 (build_rtti_vtbl_entries): Check if the base has lost its
5526 primary.
5527
39d6f2e8
MM
55282001-02-05 Mark Mitchell <mark@codesourcery.com>
5529
5530 * Makefile.in (g++spec.o): Adjust use of DRIVER_DEFINES.
5531
400500c4
RK
5532Sun Feb 4 15:52:44 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
5533
5534 * decl.c (pushdecl): Call abort instead of fatal.
5535 * except.c (decl_is_java_type): Call fatal_error instead of fatal.
5536 * init.c (build_new_1): Likewise.
5537 (build_java_class_ref): Call internal_error and fatal_error, not fatal.
5538 * decl.c (build_typename_type): hash_table_init now returns void.
5539 decl.c (init_decl_processing): Make an error non-fatal.
5540
97458258
MM
55412001-02-04 Mark Mitchell <mark@codesourcery.com>
5542
5543 * cp-tree.h (CLASSTYPE_INTERFACE_UNKNOWN): Fix formatting.
5544 Document.
5545 (CLASSTYPE_INTERFACE_KNOWN): Likewise.
5546 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
5547 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
5548 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
5549 * decl.c (maybe_commonize_var): Use the new name-mangling where
5550 appropriate.
5551 * decl2.c (comdat_linkage): Enhance comments. Make all
5552 compiler-generated things static, if COMDAT is not available.
5553 (get_tinfo_decl): Do not make typeinfo objects that belong in the
5554 library COMDAT.
5555 (tinfo_base_init): Use the correct mangled name for typeinfo
5556 strings, and push them into the global scope.
5557 (typeinfo_in_lib_p): New function.
5558 (synthesize_tinfo_var): Use it.
5559 (create_real_tinfo_var): Likewise.
9c96f3f8 5560
55de1b66
JJ
55612001-02-03 Jakub Jelinek <jakub@redhat.com>
5562
5563 * decl.c (push_class_binding): Use context_for_name_lookup instead
5564 of CP_DECL_CONTEXT.
5565 * search.c (context_for_name_lookup): Remove static. Check for NULL
5566 context in the loop.
5567 * cp-tree.h (context_for_name_lookup): Add prototype.
5568
e92730aa
JJ
55692001-02-02 Jakub Jelinek <jakub@redhat.com>
5570
5571 * cp-tree.h (build_expr_ptr_wrapper, can_free): Remove.
5572 * tree.c (build_expr_ptr_wrapper, can_free, permanent_obstack):
5573 Remove.
5574 * call.c (convert_class_to_reference, build_user_type_conversion_1,
5575 add_warning): Change build_expr_ptr_wrapper to build_ptr_wrapper.
5576
049f6ec9
MM
55772001-02-02 Mark Mitchell <mark@codesourcery.com>
5578
5579 * Make-lang.in (g++spec.o): Add DRIVER_DEFINES to the list
5580 of macros used when compiling g++spec.c.
5581 * g++spec.c (lang_specific_driver): Link with the shared
5582 libgcc by default.
5583
718b8ea5
JM
55842001-01-29 Joseph S. Myers <jsm28@cam.ac.uk>
5585
5586 * decl2.c (build_expr_from_tree), lex.c (make_pointer_declarator,
5587 make_reference_declarator, make_call_declarator), method.c
5588 (implicitly_declare_fn), parse.y (namespace_using_decl,
5589 notype_unqualified_id, expr_or_declarator, new_type_id,
5590 after_type_declarator, direct_after_type_declarator,
5591 notype_declarator, complex_notype_declarator,
5592 complex_direct_notype_declarator, qualified_id,
5593 notype_qualified_id, overqualified_id, direct_new_declarator,
5594 absdcl, direct_abstract_declarator, conversion_declarator), pt.c
5595 (tsubst), semantics.c (begin_constructor_declarator): Use build_nt
5596 instead of build_parse_node.
5597
f2d1f0ba
KG
55982001-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5599
5600 * cp-tree.h (cp_tree_index): Delete CPTI_MINUS_ONE.
5601 (minus_one_node): Moved to top level gcc directory. Renamed
5602 to integer_minus_one_node.
5603
5604 * init.c (init_init_processing): Don't set minus_one_node.
5605 (build_vec_init): Use integer_minus_one_node.
5606
5607 * rtti.c (get_tinfo_decl_dynamic): Likewise.
5608
6001735e
JJ
56092001-01-28 Jakub Jelinek <jakub@redhat.com>
5610
5611 * optimize.c (copy_body_r): If MODIFY_EXPR has both arguments
5612 identical and they would be replaced with constant, remove
5613 MODIFY_EXPR from the tree.
5614
c913b6f1
KG
56152001-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5616
5617 * Make-lang.in: Remove all dependencies on defaults.h.
5618 * call.c: Don't include defaults.h.
5619 * decl.c: Likewise.
5620 * decl2.c: Likewise.
5621 * except.c: Likewise.
5622 * pt.c: Likewise.
5623 * rtti.c: Likewise.
5624 * tree.c: Likewise.
5625 * typeck.c: Likewise.
5626
324ffb8c
JJ
56272001-01-25 Jakub Jelinek <jakub@redhat.com>
5628
5629 * mangle.c (write_mangled_name, write_encoding): Mangle overloaded
5630 operators even in "C" linkage.
5631 * method.c (set_mangled_name_for_decl): Likewise.
5632 * decl.c (grokfndecl): Call set_mangled_name_for_decl even for
5633 overloaded operators in "C" linkage.
5634
4b2811e9
NS
56352001-01-24 Nathan Sidwell <nathan@codesourcery.com>
5636
5637 * pt.c (tsubst_decl): Remove IN_DECL parameter.
5638 (tsubst_arg_types): Check parameter is not void.
5639 (tsubst): Adjust tsubst_decl call.
5640
d8caf48e
NS
56412001-01-24 Nathan Sidwell <nathan@codesourcery.com>
5642
5643 * call.c (add_builtin_candidate): Quote std properly, from
5644 previous change.
5645
08511114
KL
56462001-01-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5647
5648 * pt.c (check_explicit_specialization): Clone constructors and
5649 destructors.
5650
92ecdfb7
NS
56512001-01-23 Nathan Sidwell <nathan@codesourcery.com>
5652
5653 * decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC
5654 indicates anything special about template depth. Make sure we
5655 only count the user visible template classes.
5656
4cff6abe
NS
56572001-01-23 Nathan Sidwell <nathan@codesourcery.com>
5658
5659 * call.c (build_conv): Typo in comment.
5660 (add_builtin_candidate): Add more explanation.
5661 Remove extra test for ENUMERAL_TYPE in {PRE,POST}INCREMENT_EXPR.
5662 Allow ENUMERAL_TYPEs for relops and eqops. Add both candidates
5663 when we have enumeral types.
5664 (add_builtin_candidates): Add more explanation. Add ENUMERAL_TYPE
5665 candidates for relops and eqops.
5666 (joust): Simplify control flow. Allow a non-template user
5667 function to hide a builtin.
5668
62e4a758
NS
56692001-01-22 Nathan Sidwell <nathan@codesourcery.com>
5670
5671 * cp-tree.h (unification_kind_t): Add DEDUCE_ORDER.
5672 (more_specialized): Add deduction parameter.
5673 * call.c (joust): Adjust more_specialized call.
5674 * pt.c (UNIFY_ALLOW_OUTER_MORE_CV_QUAL,
5675 UNIFY_ALLOW_OUTER_LESS_CV_QUAL): New unify flags.
5676 (get_bindings_order): Remove.
5677 (get_bindings_real): Add DEDUCE parameter.
5678 (maybe_adjust_types_for_deduction): Return extra unify flags. Do
5679 REFERENCE_TYPE jig for DEDUCE_ORDER.
5680 (type_unification_real): Deal with DEDUCE_ORDER. Use result of
5681 maybe_adjust_types_for_deduction.
5682 (more_specialized): Add DEDUCE parameter. Call get_bindings_real
5683 directly.
5684 (try_one_overload): Use result of maybe_adjust_types_for_deduction.
5685 (check_cv_quals_for_unify): Use new unify qualifier flags.
5686 (unify): Clear new unify qualifier flags.
5687 (get_bindings_real): Add DEDUCE parameter.
5688 (get_bindings): Adjust call to get_bindings_real.
5689 (get_bindings_overload): Likewise.
5690 (most_specialized_instantiation): Adjust call to
5691 more_specialized.
5692
2a2a9e5a
JM
56932001-01-19 Jason Merrill <jason@redhat.com>
5694
5695 * decl2.c (flag_vtable_thunks): Also depend on ENABLE_NEW_GXX_ABI.
5696
5697 * decl.c (init_decl_processing): Just force -fvtable-thunks on if
5698 -fnew-abi.
5699
60696c53
JM
57002001-01-19 Ute Pelkmann <scope.muc@t-online.de>
5701
5702 * decl2.c (arg_assoc_class): Fix double iteration logic.
5703
57042001-01-19 Jason Merrill <jason@redhat.com>
5705
5706 * init.c (build_delete): Always call convert_force to strip cv-quals.
5707
5708 * decl2.c (flag_new_abi): Depend on ENABLE_NEW_GXX_ABI.
5709 * lang-specs.h: Default ABI depends on ENABLE_NEW_GXX_ABI.
5710 * g++spec.c: Don't look at ENABLE_NEW_GXX_ABI.
5711
1e00f18c
NS
57122001-01-19 Nathan Sidwell <nathan@codesourcery.com>
5713
5714 * search.c (get_vbase_1): Count only virtual bases.
5715
e13bced2
NS
57162001-01-19 Nathan Sidwell <nathan@codesourcery.com>
5717
5718 * class.c (duplicate_tag_error): Robustify flag clearing.
5719
f9c244b8
NS
57202001-01-19 Nathan Sidwell <nathan@codesourcery.com>
5721
5722 * cp-tree.h (lookup_template_class): Add complain parm.
5723 * decl.c (lookup_namespace_name): Adjust call to
5724 lookup_template_class.
5725 (make_typename_type): Likewise.
5726 * semantics.c (finish_template_type): Likewise.
5727 * pt.c (lookup_template_class): Add complain parm. Adjust.
5728 (tsubst_aggr_type): Pass COMPLAIN down to lookup_template_class.
5729 (tsubst): Likewise.
5730
08c2df0f
NS
57312001-01-19 Nathan Sidwell <nathan@codesourcery.com>
5732
5733 * pt.c (copy_default_args_to_explicit_spec): Preserve
5734 object's CV quals. Reorganize.
5735
f5ceeec8
NS
57362001-01-18 Nathan Sidwell <nathan@codesourcery.com>
5737
5738 * typeck.c (build_modify_expr): Say `initialization' for
5739 INIT_EXPRs.
5740 * init.c (build_default_init): Convert to enumeral type, if
5741 needed.
5742
a1cfa434
JJ
57432001-01-18 Jakub Jelinek <jakub@redhat.com>
5744
5745 * parse.y (nomods_initdcl0): Properly set things up for
5746 initdcl0_innards.
5747
028d1f20
NS
57482001-01-18 Nathan Sidwell <nathan@codesourcery.com>
5749
5750 * pt.c (UNIFY_ALLOW_OUTER_LEVEL): New unify flag.
5751 (type_unification_real): Set it.
5752 (unify): Use it.
5753
9f724b6a
NS
57542001-01-18 Nathan Sidwell <nathan@codesourcery.com>
5755
5756 * decl.c (finish_destructor_body): Convert to vbase pointer here.
5757
522d6614
NS
57582001-01-18 Nathan Sidwell <nathan@codesourcery.com>
5759
5760 * semantics.c (begin_class_definition): Check we're not inside a
5761 template parm list.
5762
7f805b8f
NS
57632001-01-18 Nathan Sidwell <nathan@codesourcery.com>
5764
5765 * tree.c (walk_tree, TREE_LIST): Don't walk the TREE_PURPOSE of
5766 BASELINK_P.
5767
dc3799c1
KL
57682001-01-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5769
5770 * typeck.c (build_function_call_real): Call fold on the CALL_EXPR.
5771 * call.c (build_over_call): Add comment.
5772
bb37c4a5
DB
57732001-01-16 Daniel Berlin <dberlin@redhat.com>
5774
826840d9
RH
5775 * cvt.c (ocp_convert): Handle vector type conversion
5776 * typeck2.c (digest_init): Handle vector type initializations
9c96f3f8 5777
a26e7fb5
PE
57782001-01-16 Phil Edwards <pme@sources.redhat.com>
5779
5780 * g++spec.c: Don't add libraries needlessly if -fsyntax-only
5781 was given.
5782
11b810f1
NS
57832001-01-15 Nathan Sidwell <nathan@codesourcery.com>
5784
5785 * pt.c (check_nontype_parm): Rename to ...
5786 (invalid_nontype_parm_type_p): ... here.
5787 (process_template_parm): Adjust.
5788 (convert_template_argument): Adjust.
5789
db3f4e4e
NS
57902001-01-15 Nathan Sidwell <nathan@codesourcery.com>
5791
5792 * pt.c (check_nontype_parm): New function.
5793 (process_template_parm): Use it.
5794 (convert_template_argument): Use it.
5795 (convert_nontype_argument, RECORD_TYPE): Assert it's a ptr to
5796 member.
5797
ea4f1fce
JO
57982001-01-14 Jeffrey Oldham <oldham@codesourcery.com>
5799
5800 * tree.c: Add defaults.h
5801 (cp_valid_lang_attribute): Incorporate SUPPORTS_INIT_PRIORITY.
5802 * Make-lang.in (cp/tree.o): Add defaults.h.
5803
1312c143
JM
58042001-01-13 Joseph S. Myers <jsm28@cam.ac.uk>
5805
5806 * Make-lang.in (CXX_C_OBJS): Add c-format.o.
5807
4bc1997b
JM
58082001-01-13 Joseph S. Myers <jsm28@cam.ac.uk>
5809
5810 * g++.1: Change to be ".so man1/gcc.1".
5811
23de1fbf
JM
58122001-01-13 Joseph S. Myers <jsm28@cam.ac.uk>
5813
5814 * Make-lang.in (c++.info, c++.install-info): Build and install g++
5815 internals info.
5816 (c++.uninstall, c++.maintainer-clean): Remove g++ internals info.
5817 ($(srcdir)/cp/g++int.info): New target.
5818 * gxxint.texi: Add info directory entry. Use @@ in email address.
5819 * .cvsignore: Update.
5820
0949f723
NS
58212001-01-12 Nathan Sidwell <nathan@codesourcery.com>
5822
5823 * typeck.c (build_c_cast): Do template processing earlier.
5824 Always pedwarn on array casts.
5825
a8641661
NS
58262001-01-12 Nathan Sidwell <nathan@codesourcery.com>
5827
5828 * friend.c (make_friend_class): Make sure a templated class is
5829 actually a template.
5830
844511c8
NS
58312001-01-11 Nathan Sidwell <nathan@codesourcery.com>
5832
5833 * decl2.c (get_guard): Set linkage from guarded decl.
5834
96a1e32d
NS
58352001-01-11 Nathan Sidwell <nathan@codesourcery.com>
5836
5837 * call.c (convert_default_arg): Check for unprocessed
5838 DEFAULT_ARG.
5839 * cp-tree.h (replace_defarg): Move to spew.c.
5840 (maybe_snarf_defarg, add_defarg_fn, do_pending_defargs): Move to
5841 spew.c, which is where they really are.
5842 (done_pending_defargs): Declare.
5843 (unprocessed_defarg_fn): Declare.
5844 * decl.c (replace_defarg): Move to spew.c
5845 * parse.y (structsp): Call done_pending_defargs.
5846 * spew.c (defarg_fns): Rearrange list structure.
5847 (defarg_fnsdone): New static variable.
5848 (defarg_depfns): New static variable.
5849 (init_spew): Adjust.
5850 (add_defarg_fn): Store the type in TREE_TYPE.
5851 (do_pending_defargs): Detect and deal with ordering constraints
5852 and circularity.
5853 (done_pending_defargs): New function.
5854 (unprocessed_defarg_fn): New function.
5855 (replace_defarg): Moved from decl.c. Robustify. Don't save
5856 if circularity detected.
5857
34e225a3
NS
58582001-01-11 Nathan Sidwell <nathan@codesourcery.com>
5859
5860 * pt.c (unify): Check array has a domain, before checking
5861 whether it is variable sized.
5862
98979fe0
NS
58632001-01-11 Nathan Sidwell <nathan@codesourcery.com>
5864
5865 * decl.c (grokparms): Unobfuscate and get correct diagnostic for
5866 parameters with pointers to arrays of unknown bound.
5867
b37bf5bd
NS
58682001-01-11 Nathan Sidwell <nathan@codesourcery.com>
5869
5870 * parse.y (template_parm_header, template_spec_header): New
5871 reductions. Split out from ...
5872 (template_header): ... here. Use them.
5873 (template_template_parm): Use template_parm_header.
5874 * semantics.c (finish_template_template_parm): Add assert.
5875
6c418184
MM
58762001-01-10 Mark Mitchell <mark@codesourcery.com>
5877
792508b5
MM
5878 * mangle.c (write_builtin_type): Fix thinko.
5879
8afa707f
MM
5880 * pt.c (copy_default_args_to_explicit_spec_1): New function.
5881 (copy_default_args_to_explicit_spec): Likewise.
5882 (check_explicit_specialization): Use it.
5883
6c418184
MM
5884 * class.c (finish_struct_1): Remove last argument in call to
5885 make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
5886 * decl.c (builtin_function): Likewise.
5887 (build_cp_library_fn): Likewise.
5888 (check_initializer): Likewise.
5889 (make_rtl_for_nonlocal_decl): Likewise.
5890 (cp_finish_decl): Likewise.
5891 (start_function): Likewise.
5892 * decl2.c (finish_anon_union): Likewise.
5893 * friend.c (do_friend): Likewise.
5894 * init.c (build_java_class_ref): Likewise.
5895 * method.c (make_thunk): Likewise.
5896 * pt.c (tsubst_friend_function): Likewise.
5897 * semantics.c (expand_body): Likewise.
5898
31d95fc6
MM
58992001-01-10 Mark Mitchell <mark@codesourcery.com>
5900
5901 * cp-tree.h (DECL_CLONED_FUNCTION_P): Avoid wild reads by not
5902 looking at DECL_CLONED_FUNCTION for non-functions.
5903
31bb3027
NS
59042001-01-10 Nathan Sidwell <nathan@codesourcery.com>
5905
5906 * error.c (dump_template_parameter): Use parm to determine how
5907 to print default value.
5908
fd3f43e7
NS
59092001-01-10 Nathan Sidwell <nathan@codesourcery.com>
5910
5911 * class.c (duplicate_tag_error): Clear more flags.
5912
042b4c4e
NS
59132001-01-10 Nathan Sidwell <nathan@codesourcery.com>
5914
5915 * call.c (build_new_method_call): Use binfo_for_vbase.
5916
a7537031
JM
59172001-01-10 Joseph S. Myers <jsm28@cam.ac.uk>
5918
5919 * cp-tree.h (flag_cond_mismatch): Don't declare.
5920 * decl2.c (flag_cond_mismatch): Don't define.
5921 (lang_f_options): Remove cond-mismatch.
5922 (unsupported_options): Add cond-mismatch.
5923
186c0fbe
NS
59242001-01-09 Nathan Sidwell <nathan@codesourcery.com>
5925
5926 * class.c (handle_using_decl): Reject using of constructor name
5927 of sourcing class. Allow injecting of a method with same name as
5928 nested class. Fixup error messages.
5929
28ec8d6b
JM
59302001-01-09 Joseph S. Myers <jsm28@cam.ac.uk>
5931
5932 * decl2.c (lang_decode_option): Handle -Wformat=2.
5933
3febd123
NS
59342001-01-08 Nathan Sidwell <nathan@codesourcery.com>
5935
5936 * cp-tree.h (lang_decl_flags): Rename defined_in_class to
5937 initialized_in_class.
5938 (DECL_DEFINED_IN_CLASS_P): Rename to ...
5939 (DECL_INITIALIZED_IN_CLASS_P): ... here, to reflect true meaning.
5940 * decl.c (duplicate_decls): Preseve DECL_INITIALIZED_IN_CLASS_P.
5941 (cp_finish_decl): Adjust for DECL_INITIALIZED_IN_CLASS_P.
5942 * pt.c (check_default_tmpl_args): Adjust for
5943 DECL_INITIALIZED_IN_CLASS_P.
5944 (instantiate_class_template): Likewise.
5945 (instantiate_decl): Check DECL_INITIALIZED_IN_CLASS_P.
9c96f3f8 5946
3febd123
NS
5947 * class.c (finish_struct): Constify saved_filename.
5948
1f0d71c5
NS
59492001-01-08 Nathan Sidwell <nathan@codesourcery.com>
5950
5951 * class.c (duplicate_tag_error): Adjust diagnostic.
5952 (finish_struct): Locally set location to start of struct.
5953 * decl.c (fixup_anonymous_aggr): Use cp_error_at.
5954
5bf15e84 59552001-01-08 Nathan Sidwell <nathan@codesourcery.com>
76191fdd
NS
5956
5957 * decl.c (struct binding_level): Adjust class_shadowed comments
5958 to reflect reality.
aba649ba 5959 (push_class_level_binding): Adjust comments to reflect reality.
76191fdd
NS
5960 Set IDENTIFIER_CLASS_VALUE when replacing an existing binding.
5961 Don't set TREE_VALUE on the class_shadowed list.
5962
23d4e4cc 59632001-01-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
9c96f3f8
AJ
5964
5965 * decl2.c (acceptable_java_type): Allow references too.
23d4e4cc
APB
5966 * init.c (build_java_class_ref): When using the new ABI, search
5967 `class$' and have it mangled with `mangle_decl.'
5968 * mangle.c (write_java_integer_type_codes): New function.
5969 (write_builtin_type): Detect and mangle Java integer and real
5970 types.
9c96f3f8 5971
0c58da3e
MM
59722001-01-07 Mark Mitchell <mark@codesourcery.com>
5973
5974 * decl2.c (grokfield): Don't accept `asm' specifiers for
5975 non-static data members.
5976
45b8ddb4
KG
59772001-01-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5978
5979 * expr.c (cplus_expand_expr): Don't reset `target'.
5980
96302433
NB
59812001-01-07 Neil Booth <neil@daikokuya.demon.co.uk>
5982
826840d9 5983 * cp/decl2.c (cxx_post_options): Call cpp_post_options.
96302433 5984
220bce48
NS
59852001-01-05 Nathan Sidwell <nathan@codesourcery.com>
5986
5987 * parse.y (template_datadef): Check for error_mark_node.
5988
bfa2cb33
NS
59892001-01-05 Nathan Sidwell <nathan@codesourcery.com>
5990
5991 * cp-tree.def (DEFAULT_ARG): Make `x' class.
5992
eaa7c03f
JM
59932001-01-04 Joseph S. Myers <jsm28@cam.ac.uk>
5994
5995 * decl.c (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Don't define.
5996 (record_builtin_type): Make non-static.
5997 (flag_short_double): Don't declare.
5998 (init_decl_processing): Remove the creation of many tree nodes now
5999 in c_common_nodes_and_builtins.
6000 (build_void_list_node): New function.
6001 * decl2.c (flag_short_double, flag_short_wchar): Don't define.
6002 * cp-tree.h (flag_short_wchar): Don't declare.
6003
3af4c257
MM
60042001-01-04 Mark Mitchell <mark@codesourcery.com>
6005
6006 * call.c (build_conv): Don't use build1 for USER_CONV.
6007 * pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes.
6008
03dc0325
JM
60092001-01-03 Joseph S. Myers <jsm28@cam.ac.uk>
6010
6011 * lex.c (lang_init): Call c_common_lang_init.
6012
3c505507
NS
60132001-01-03 Nathan Sidwell <nathan@codesourcery.com>
6014
6015 * search.c (lookup_fnfields_here): Remove.
6016 (look_for_overrides_r): Use lookup_fnfields_1.
6017 Ignore functions from using declarations.
6018
03378143
NS
60192001-01-03 Nathan Sidwell <nathan@codesourcery.com>
6020
6021 Implement exceptions specifiers for implicit member functions.
6022 * cp-tree.h (merge_exceptions_specifiers): Declare new function.
6023 * method.c (synthesize_exception_spec): New function.
6024 (locate_dtor, locate_ctor, locate_copy): New functions.
6025 (implicitly_declare_fn): Generate the exception spec too.
6026 * search.c (check_final_overrider): Check artificial functions
6027 too.
9c96f3f8 6028 * typeck2.c (merge_exception_specifiers): New function.
03378143 6029
f30efcb7
JM
60302001-01-03 Jason Merrill <jason@redhat.com>
6031
6032 * init.c (build_default_init): New fn.
6033 (perform_member_init): Split out from here.
6034 (build_new_1): Use it. Simplify initialization logic.
6035 (build_vec_init): Take an array, rather than a pointer and maxindex.
6036 Speed up simple initializations. Don't clean up if we're assigning.
6037 * cp-tree.h: Adjust.
6038 * decl2.c (do_static_initialization): Remove TREE_VEC case.
6039 * parse.y (new_initializer): Return void_zero_node for ().
6040 * typeck.c (build_modify_expr): Handle getting a CONSTRUCTOR.
6041 * typeck2.c (digest_init): Only complain about user-written
6042 CONSTRUCTORs.
6043
a412bf75
MS
60442000-12-22 Mike Stump <mrs@wrs.com>
6045
6046 * decl2.c: (max_tinst_depth): Increase to 50.
6047
4890c2f4
MM
60482001-01-02 Mark Mitchell <mark@codesourcery.com>
6049
6050 * class.c (invalidate_class_lookup_cache): Zero the
6051 previous_class_values.
6052 * cp-tree.h (TMPL_PARMS_DEPTH): Use TREE_INT_CST_LOW, not
6053 TREE_INT_CST_HIGH.
6054 (CLASSTYPE_TEMPLATE_LEVEL): Likewise.
6055 * decl.c (free_bindings): New variable.
6056 (push_binding): Don't create a new binding if we have one on the
6057 free list.
6058 (pop_binding): Put old bindings on the free list.
6059 (init_decl_processing): Use size_int, not build_int_2.
6060 Register free_bindings as a GC root.
6061 (cp_make_fname_decl): Use size_int, not build_int_2.
6062 (push_inline_template_parms_recursive): Likewise.
6063 (end_template_parm_list): Likewise.
6064 (for_each_tempalte_parm): Do not use walk_tree_without_duplicates.
6065 (tsubst_template_parms): Use size_int, not build_int_2.
6066 (tsubst): Likewise.
6067 * rtti.c (get_vmi_pseudo_type_info): Likewise.
9c96f3f8 6068
4f78b9a8
RH
60692001-01-02 Richard Henderson <rth@redhat.com>
6070
6071 * parse.y (asm): Set ASM_INPUT_P.
6072
3c8c2a0a
JM
60732001-01-02 Jason Merrill <jason@redhat.com>
6074
96d6c610
JM
6075 * tree.c (cp_valid_lang_attribute): Don't set CLASSTYPE_COM_INTERFACE
6076 for v3 ABI.
6077
6078 * typeck.c (cp_truthvalue_conversion): New fn.
6079 * cvt.c (ocp_convert): Use it.
6080
6081 * cp-tree.h: Lose c-common.c decls.
6082
6083 * typeck.c (build_unary_op): Restore old &a.f diagnostic code.
6084 * cvt.c (convert_to_void): Use type_unknown_p.
6085
9c96f3f8 6086 * typeck.c (strip_all_pointer_quals): Also strip quals from
3c8c2a0a
JM
6087 pointer-to-member types.
6088
6089 * Make-lang.in (cp/TAGS): Use --no-globals. Ignore parse.c, and treat
6090 parse.y as C.
6091
6092 * call.c (build_new_method_call): Do evaluate the object parameter
6093 when accessing a static member.
6094 * typeck.c (build_component_ref): Likewise.
6095
d363e7bf
AJ
60962001-01-02 Andreas Jaeger <aj@suse.de>
6097
6098 * decl.c (cp_missing_noreturn_ok_p): New.
6099 (init_decl_processing): Set lang_missing_noreturn_ok_p.
6100
77f5250d
JJ
61012000-12-29 Jakub Jelinek <jakub@redhat.com>
6102
6103 * decl.c (init_decl_processing): Fix sign of wchar_type_node.
6104
31a714f6
MM
61052000-12-29 Mark Mitchell <mark@codesourcery.com>
6106
6107 * class.c (pushclass): Remove #if 0'd code.
6108 * cp-tree.h (overload_template_name): Remove.
6109 * decl.c (store_bindings): Simplify.
6110 (pop_from_top_level): Likewise.
6111 * pt.c (overload_template_name): Remove.
d363e7bf 6112 (instantiate_decl): Don't call push_to_top_level if it's not
31a714f6
MM
6113 needed.
6114
414ea4aa
MM
61152000-12-28 Mark Mitchell <mark@codesourcery.com>
6116
6117 * pt.c (register_local_specialization): Don't return a value.
6118 (lookup_template_class): Use move-to-front heuristic when looking
6119 up template instantiations.
6120 (instantiate_decl): Only push_to_top_level when we're actually
6121 going to instantiate the template.
6122
6f18f7e9
HPN
61232000-12-29 Hans-Peter Nilsson <hp@bitrange.com>
6124
6125 * search.c (binfo_for_vtable): Return least derived class, not
6126 most. Handle secondary vtables.
6127
e5214479
JM
61282000-12-22 Jason Merrill <jason@redhat.com>
6129
3c8c2a0a
JM
6130 * pt.c (more_specialized): Don't optimize len==0.
6131 (fn_type_unification): If we're adding the return type, increase len.
6132
ebb1abc3
JM
6133 * typeck.c (build_binary_op): Fix pmf comparison logic.
6134
c939ca5f
JM
6135 * call.c (joust): Use DECL_NONSTATIC_MEMBER_FUNCTION_P, not
6136 DECL_STATIC_FUNCTION_P.
6137
e6fe680d
JM
6138 * semantics.c (genrtl_finish_function): Don't try to jump to
6139 return_label unless it exists.
6140
e5214479
JM
6141 In partial ordering for a call, ignore parms for which we don't have
6142 a real argument.
6143 * call.c (joust): Pass len to more_specialized.
6144 (add_template_candidate_real): Strip 'this', pass len.
6145 * pt.c (more_specialized): Pass len down. Lose explicit_args parm.
6146 (get_bindings_order): New fn. Pass len down.
6147 (get_bindings_real): Strip 'this', pass len.
6148 (fn_type_unification): Likewise.
6149 (type_unification_real): Succeed after checking 'len' args.
6150 (most_specialized_instantiation): Lose explicit_args parm.
d363e7bf 6151 * class.c (resolve_address_of_overloaded_function): Strip 'this',
e5214479
JM
6152 pass len.
6153
61542000-12-21 Jason Merrill <jason@redhat.com>
477f6664
JM
6155
6156 * pt.c (tsubst_decl): A FUNCTION_DECL has DECL_RESULT, not
6157 DECL_TEMPLATE_RESULT.
6158
6159 * search.c (lookup_field_r): Call lookup_fnfields_1, not
6160 lookup_fnfields_here.
6161
6162 * parse.y (typename_sub2): Return the TYPE_DECL, not the type.
6163
6164 * call.c (build_object_call): Also allow conversions that return
6165 reference to pointer to function.
6166 (add_conv_candidate): Handle totype being ref to ptr to fn.
6167 (build_field_call): Also allow members of type reference to function.
6168 Lose support for calling pointer to METHOD_TYPE fields.
6169
6170 * error.c (dump_expr): Handle *_CAST_EXPR.
6171
6172 * typeck2.c (build_scoped_ref): Always convert to the naming class.
6173
6174 * tree.c (break_out_cleanups): Lose.
6175 * cp-tree.h: Remove prototype.
6176 * typeck.c (build_component_ref): Don't break_out_cleanups.
6177 (build_compound_expr): Likewise.
6178 * semantics.c (finish_expr_stmt): Likewise.
6179
3e4d04a1
RH
61802000-12-20 Richard Henderson <rth@redhat.com>
6181
6182 * cp-tree.h: Update declarations.
6183 * decl.c (finish_case_label): Return the new stmt node.
6184 * semantics.c (finish_goto_stmt): Likewise.
6185 (finish_expr_stmt, finish_return_stmt): Likewise.
6186 (finish_break_stmt, finish_continue_stmt): Likewise.
6187 (finish_asm_stmt): Likewise.
6188 * parse.y (already_scoped_stmt): Set STMT_LINENO.
6189 (compstmt, implicitly_scoped_stmt, stmt): Likewise.
6190 (simple_if, simple_stmt): Return the new stmt node.
6191 (save_lineno): New.
6192
20d380b1
JM
61932000-12-18 Joseph S. Myers <jsm28@cam.ac.uk>
6194
6195 * cp-tree.h: Don't declare warn_long_long.
6196
221c7a7f
KL
61972000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6198
6199 * tree.c (no_linkage_helper): Use CLASS_TYPE_P instead of
6200 IS_AGGR_TYPE.
6201
b429fdf0
KL
62022000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6203
6204 * pt.c (unify): Handle when both ARG and PARM are
6205 BOUND_TEMPLATE_TEMPLATE_PARM.
6206
c2beae77
KL
62072000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6208
6209 * pt.c (reduce_template_parm_level): Set DECL_ARTIFICIAL and
6210 DECL_TEMPLATE_PARM_P.
6211
c3e899c1
JM
62122000-12-15 Jason Merrill <jason@redhat.com>
6213
96790071
JM
6214 * init.c (build_new_1): Reorganize. Now with 100% fewer SAVE_EXPRs!
6215
8d42565b
JM
6216 * init.c (build_new_1): Don't strip quals from type.
6217
fab09a24
JM
6218 * decl.c (pushdecl): Don't check for linkage on a non-decl.
6219
c3e899c1
JM
6220 * call.c (build_op_delete_call): See through ARRAY_TYPEs.
6221
6222 * call.c (build_new_function_call): Lose space before paren in
6223 error message.
6224 (build_new_method_call): Likewise.
6225
6226 * typeck2.c (build_m_component_ref): Propagate quals from datum.
6227
edac124d
KL
62282000-12-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6229
6230 * pt.c (check_explicit_specialization): Propagate default
6231 function arguments to explicit specializations.
6232
31750649 62332000-12-13 DJ Delorie <dj@redhat.com>
8d3b081e
DD
6234
6235 * typeck.c (build_binary_op): Do signed/unsigned warnings for >?
6236 and <? operators.
6237
5e818b93
JM
62382000-12-08 Jason Merrill <jason@redhat.com>
6239
6240 * error.c (dump_function_name): Don't let the user see __comp_ctor.
6241
6242 Clean up copy-initialization in overloading code.
6243 * call.c (build_user_type_conversion_1): Die if we are asked to
6244 convert to the same or a base type.
6245 (implicit_conversion): Avoid doing so. Lose reference binding code.
6246 (convert_like_real): Treat BASE_CONV and RVALUE_CONV as implicit
6247 direct-initialization. Also do direct-init part of copy-init.
6248 (build_user_type_conversion): Don't provide context to convert_like.
6249 * cvt.c (ocp_convert): build_user_type_conversion will now provide
6250 the constructor call for copy-init.
6251
6252 * pt.c (tsubst_decl): Call clone_function_decl here if this is an
6253 instantiation of a member template.
6254 (do_decl_instantiation): Not here.
6255
38da6039
NS
62562000-12-07 Nathan Sidwell <nathan@codesourcery.com>
6257
6258 * class.c (check_field_decls): Don't special case anonymous
6259 fields in error messages.
c9407e4c 6260 (note_name_declared_in_class): Use %D on diagnostic.
d363e7bf 6261
38da6039
NS
6262 * tree.c (pod_type_p): Use strip_array_types.
6263 (cp_valid_lang_attribute): Likewise.
6264 * typeck.c (cp_type_quals): Strip arrays separately, to avoid
6265 multiple evaluations.
d363e7bf 6266 (cp_has_mutable_p): Use strip_array_types.
38da6039 6267
a11d04b5
NS
62682000-12-07 Nathan Sidwell <nathan@codesourcery.com>
6269
6270 * cp-tree.h (sufficient_parms_p): Declare new function.
6271 * call.c (sufficient_parms_p): New function, broken out of ...
6272 (add_function_candidate): ... here. Use it.
6273 (add_conv_candidate): Use it.
6274 * decl.c (grok_ctor_properties): Use it.
6275
5eec2847
JJ
62762000-12-07 Jakub Jelinek <jakub@redhat.com>
6277
6278 * optimize.c (copy_body_r): Set STMT_IS_FULL_EXPR_P on EXPR_STMT.
6279
c907e684
JM
62802000-12-07 Joseph S. Myers <jsm28@cam.ac.uk>
6281
6282 * decl2.c (lang_decode_option): Handle -Wformat-security.
6283
74601d7c
KL
62842000-12-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6285
6286 * pt.c (verify_class_unification): New function.
6287 (get_class_bindings): Use it.
6288 (try_class_unification): Tidy.
6289 (unify): Handle when argument of a template-id is not
6290 template parameter dependent.
6291 (template_args_equal): Handle when TREE_CODE's do not match.
6292
8954e858
AO
62932000-12-06 Alexandre Oliva <aoliva@redhat.com>
6294
6295 * lang-specs.h (c++): When invoking the stand-alone preprocessor
6296 for -save-temps, pass all relevant -Defines to it, and then don't
6297 pass them to cc1plus.
6298
3dc9aec6
WC
62992000-12-05 Will Cohen <wcohen@redhat.com>
6300
6301 * decl.c (finish_case_label): Cleared
6302 more_cleanups_ok in surrounding function scopes.
6303 (define_label): Likewise.
6304
cbb40945
NS
63052000-12-05 Nathan Sidwell <nathan@codesourcery.com>
6306
6307 * cp-tree.h (IDENTIFIER_VIRTUAL_P): Document.
6308 (get_matching_virtual): Remove.
6309 (look_for_overrides): Declare new function.
6310 * decl.c (grokfndecl): Don't set IDENTIFIER_VIRTUAL_P or
6311 DECL_VINDEX here.
6312 * class.c (check_for_override): Move base class iteration code
6313 to look_for_overrides.
6314 * search.c (next_baselink): Remove.
6315 (get_virtuals_named_this): Remove.
6316 (get_virtual_destructor): Remove.
6317 (tree_has_any_destructors_p): Remove.
6318 (struct gvnt_info): Remove.
6319 (check_final_overrider): Remove `virtual' from error messages.
6320 (get_matching_virtuals): Remove. Move functionality to ...
6321 (look_for_overrides): ... here, and ...
6322 (look_for_overrides_r): ... here. Set DECL_VIRTUAL_P, if found
6323 to be overriding.
6324
61402b80
NS
63252000-12-05 Nathan Sidwell <nathan@codesourcery.com>
6326
6327 * typeck.c (get_delta_difference): If via a virtual base,
6328 return zero.
6329 * cvt.c (cp_convert_to_pointer): If via a virtual base, do no
6330 adjustment.
6331
39abc9a6
RH
63322000-12-04 Richard Henderson <rth@redhat.com>
6333
6334 * error.c (dump_tree): Use output_add_string not OB_PUTS.
6335
c00996a3
JM
63362000-12-04 Jason Merrill <jason@redhat.com>
6337
6338 * mangle.c (write_type): Mangle VECTOR_TYPE with "U8__vector".
d363e7bf 6339 (write_builtin_type): Pass intSI_type_node and the like through
c00996a3
JM
6340 type_for_mode.
6341 * method.c (process_overload_item): Mangle VECTOR_TYPEs with 'o'.
6342 Pass intSI_type_node and the like through type_for_mode.
6343 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE like COMPLEX_TYPE.
6344 * pt.c (tsubst, unify): Likewise.
6345 * tree.c (walk_tree): Likewise.
6346 * error.c (dump_type): Likewise.
6347 (dump_type_prefix, dump_type_suffix): Don't bother with VECTOR_TYPE.
d363e7bf 6348
c00996a3
JM
6349 * Make-lang.in: Tweak top comment for emacs.
6350 (cp/TAGS): Restore.
6351
6352 * except.c (expand_throw): Use push_throw_library_fn for _Jv_Throw.
6353
c00996a3
JM
6354 * class.c (clone_function_decl): Robustify.
6355
63562000-12-04 Michael Matz <matzmich@cs.tu-berlin.de>
6357
6358 * decl.c (store_bindings): Only search in the non modified
6359 old_bindings for duplicates.
6360
00bb3dad
NS
63612000-12-04 Nathan Sidwell <nathan@codesourcery.com>
6362
6363 * error.c (dump_function_decl): Use DECL_VIRTUAL_P, not
6364 TYPE_POLYMORPHIC_P.
d363e7bf 6365
00bb3dad
NS
6366 * typeck.c (build_static_cast): Remove unused variable.
6367
dc957d14
KL
63682000-12-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6369
6370 * pt.c: Fix typo in comment.
6371
4d808927
JM
63722000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
6373
6374 * decl2.c (warn_format): Remove definition.
6375 (lang_decode_option): Handle -Wformat-nonliteral,
6376 -Wno-format-extra-args and -Wno-format-y2k. Use set_Wformat.
6377
5fd8e536
JM
63782000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
6379
6380 * decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define.
6381 (init_decl_processing): Don't create string_type_node,
6382 const_string_type_node, wint_type_node, intmax_type_node,
6383 uintmax_type_node, default_function_type, ptrdiff_type_node and
6384 unsigned_ptrdiff_type_node. Adjust position of call to
6385 c_common_nodes_and_builtins.
6386 (identifier_global_value): New function.
6387
13f9714b
NS
63882000-12-01 Nathan Sidwell <nathan@codesourcery.com>
6389
6390 * call.c (standard_conversion): Reject pointer to member
6391 conversions from ambiguous, inaccessible or virtual bases.
6392 * typeck.c (build_static_cast): Don't check pointers to members
6393 specially.
6394
31b1b957
NS
63952000-11-30 Nathan Sidwell <nathan@codesourcery.com>
6396
6397 * method.c (do_build_copy_constructor): Preserve cv
6398 qualifications when accessing source object members.
6399 (do_build_assign_ref): Likewise. Remove separate diagnostics for
6400 unnamed fields.
6401
717e3f73
NS
64022000-11-30 Nathan Sidwell <nathan@codesourcery.com>
6403
6404 * method.c (do_build_assign_ref): Construct appropriately
6405 CV-qualified base reference. Don't allow const casts in base
6406 conversion.
6407
2c92b94d
NS
64082000-11-30 Nathan Sidwell <nathan@codesourcery.com>
6409
6410 * call.c (build_over_call): Use VOID_TYPE_P. Don't die on
6411 incomplete return type.
6412
bb92901d
NS
64132000-11-28 Nathan Sidwell <nathan@codesourcery.com>
6414
6415 * parse.y (base_class.1): Produce a _TYPE not a _DECL.
6416 * semantics.c (finish_base_specifier): Accept a _TYPE not a
6417 _DECL.
6418
2f3608c3
NS
64192000-11-28 Nathan Sidwell <nathan@codesourcery.com>
6420
6421 * spew.c (yyerror): Cope if yylval.ttype is NULL.
6422
eeb75383
NS
64232000-11-28 Nathan Sidwell <nathan@codesourcery.com>
6424
6425 * decl.c (grokdeclarator): Diagnose undefined template contexts.
6426
5ee4cc26
NS
64272000-11-28 Nathan Sidwell <nathan@codesourcery.com>
6428
6429 * decl.c (grokdeclarator): Do type access control on friend
6430 class.
6431
76e57b45
NS
64322000-11-27 Nathan Sidwell <nathan@codesourcery.com>
6433
6434 * decl.c (grokfndecl): Undo COMPONENT_REF damage caused by
6435 bison parser ickiness.
6436 * pt.c (tsubst_friend_function): Enter namespace scope when
6437 tsubsting the function name.
6438 * cp-tree.h (DECL_TI_TEMPLATE): Update comment to reflect reality.
6439
f9825168
NS
64402000-11-27 Nathan Sidwell <nathan@codesourcery.com>
6441
6442 * cp-tree.h (binfo_from_vbase): Return the virtual base's binfo.
6443 * cvt.c (cp_convert_to_pointer): Add force parameter.
6444 Allow conversions via virtual base if forced.
6445 (convert_to_pointer_force): Adjust call to cp_convert_to_pointer.
6446 (ocp_convert): Likewise.
6447 * search.c (binfo_from_vbase): Return the virtual base's binfo.
6448 * typeck.c (get_delta_difference): Adjust handling of virtual
6449 bases.
6450
9ccb25d5
MM
64512000-11-26 Mark Mitchell <mark@codesourcery.com>
6452
6453 * tree.c (struct list_hash): Remove.
6454 (list_hash_table): Make it be an htab.
6455 (struct list_proxy): New type.
6456 (list_hash_eq): New function.
6457 (list_hash_pieces): Renamed from ...
6458 (list_hash): ... this.
6459 (list_hash_lookup): Remove.
6460 (list_hash_add): Remove.
6461 (hash_tree_cons): Use the generic hashtable.
6462 (mark_list_hash): Remove.
6463 (init_tree): Create the hashtable.
6464
9399bad3
JM
64652000-11-25 Joseph S. Myers <jsm28@cam.ac.uk>
6466
6467 * method.c (build_mangled_C9x_name): Rename to
6468 build_mangled_C99_name. Change C9X references in comments to
6469 refer to C99.
6470
2f401cc8
NS
64712000-11-24 Nathan Sidwell <nathan@codesourcery.com>
6472
6473 * parse.y (unary_expr): Move VA_ARG from here ...
6474 (primary): ... to here.
6475
3d7e9ba4
NS
64762000-11-24 Nathan Sidwell <nathan@codesourcery.com>
6477
6478 * semantics.c (finish_id_expr): If type is error_mark, return
6479 error_mark.
6480
ab097535
NS
64812000-11-23 Nathan Sidwell <nathan@codesourcery.com>
6482
6483 * pt.c (lookup_template_class): Simplify loop exit constructs.
6484 Cope when there is no partial instantiation of a template
6485 template member.
6486
9196ece5
R
6487Thu Nov 23 02:16:47 2000 J"orn Rennecke <amylaar@redhat.com>
6488
6489 * Make-lang.in (g++spec.o, cxxmain.o): Depend on $(CONFIG_H).
6490
cac78ea2
MM
64912000-11-22 Mark Mitchell <mark@codesourcery.com>
6492
6e1b44bc
MM
6493 * mangle.c (mangle_conv_op_name_for_type): Don't use `__op'
6494 prefix.
6495
cac78ea2
MM
6496 * pt.c (do_decl_instantiate): Explicitly clone constructors and
6497 destructors that haven't already been cloned.
6498
3aac38d7
RH
64992000-11-20 Richard Henderson <rth@redhat.com>
6500
6501 * parse.y (yyparse_1): Rename the parser entry point.
6502
65032000-11-20 Alex Samuel <samuel@codesourcery.com>
beac9b93
AS
6504
6505 * mangle.c (write_name): Use <unscoped-name> for names directly in
6506 function scope.
6507 (write_unscoped_name): Accept names directly in function scope.
d363e7bf 6508
447306fa
NS
65092000-11-20 Nathan Sidwell <nathan@codesourcery.com>
6510
6511 * lex.c (rid_to_yy, RID_EXPORT): Make unique keyword.
6512 * parse.y (extdef): Add EXPORT reduction.
6513 * spew.c (yylex): Don't skip export here.
6514
2650255a
MM
65152000-11-19 Mark Mitchell <mark@codesourcery.com>
6516
6517 * decl.c (init_decl_processing): Correct name of pure virtual
6518 function under the new ABI.
6519 * rtti.c (throw_bad_cast): Likewise, for bad cast function.
6520 (throw_bad_typeid): Likewise for bad typeid function.
6521
0657c69c
MM
65222000-11-18 Mark Mitchell <mark@codesourcery.com>
6523
04f3dc2b
MM
6524 * decl.c (grokparms): Don't even function types of `void' type,
6525 either.
6526 * mangle.c (write_type): Don't crash when confronted with the
6527 error_mark_node.
6528
0657c69c
MM
6529 * decl.c (grokparms): Don't create parameters of `void' type.
6530
a8a05998
ZW
65312000-11-17 Zack Weinberg <zack@wolery.stanford.edu>
6532
6533 * lex.c (mark_impl_file_chain): Delete.
6534 (init_parse): Remove call to ggc_add_string_root. No need to
6535 ggc_strdup a string constant. Do not add impl_file_chain to GC
6536 roots.
6537 (handle_pragma_implementation): No need to ggc_strdup main_filename.
6538
35728a80
NS
65392000-11-17 Nathan Sidwell <nathan@codesourcery.com>
6540
6541 * pt.c (tsubst_expr, DECL_STMT): Instantiate decl's type.
6542
5cce22b6
NS
65432000-11-17 Nathan Sidwell <nathan@codesourcery.com>
6544
6545 * cp-tree.h (PARMLIST_ELLIPSIS_P): New macro.
6546 * decl.c (grokdeclarator): Don't reject void parms here.
6547 (require_complete_types_for_parms): Simplify, use
6548 complete_type_or_else.
6549 (grokparms): Remove bitrot. Remove funcdef parm.
6550 Deal with ellipsis parm lists here.
6551 * semantics.c (finish_parmlist): Don't append void_list_node
6552 here. Set PARMLIST_ELLIPSIS_P.
6553
146c8d60
NS
65542000-11-17 Nathan Sidwell <nathan@codesourcery.com>
6555
6556 * typeck2.c (incomplete_type_error): Reorganise to avoid
6557 excessive diagnostics.
6558
520a57c8
ZW
65592000-11-16 Zack Weinberg <zack@wolery.stanford.edu>
6560
6561 * lex.c (struct impl_files, internal_filename): Constify a char *.
6562
43048a06
MM
65632000-11-16 Mark Mitchell <mark@codesourcery.com>
6564
6565 * mangle.c (write_special_name_constructor): Don't generate
6566 assembler junk when confronted with an old-style constructor.
6567 (write_special_name_destructor): Likewise.
6568 (mangle_decl_string): Do it here instead.
6569
cdb71673
NS
65702000-11-16 Nathan Sidwell <nathan@codesourcery.com>
6571
6572 * call.c (op_error): Make error messages clearer.
6573
62136084
MM
65742000-11-15 Mark Mitchell <mark@codesourcery.com>
6575
6576 * decl.c (wrapup_globals_for_namespace): Don't mark things
6577 TREE_ASM_WRITTEN when they're not.
6578
ee3400e8
JM
65792000-11-15 Jason Merrill <jason@redhat.com>
6580
6581 * typeck2.c (friendly_abort): Uncount the error before handing
6582 off to fancy_abort.
6583
71631a1f
NS
65842000-11-15 Nathan Sidwell <nathan@codesourcery.com>
6585
6586 * typeck.c (lookup_anon_field): Cope with qv qualifiers.
6587
79cda2d1
MM
65882000-11-14 Mark Mitchell <mark@codesourcery.com>
6589
6590 * class.c (build_vtbl_initializer): Fix typo in comment.
6591 * typeck.c (expr_sizeof): Don't crash on errors.
6592
2567bc56
JW
65932000-11-14 Jim Wilson <wilson@redhat.com>
6594
6595 * lang-specs.h: Add %2 after %(cc1_options).
6596
8422942c
RH
65972000-11-14 Richard Henderson <rth@redhat.com>
6598
6599 * typeck.c (c_sizeof): Be strict about casting result value
6600 back to c_size_type_node.
6601 (expr_sizeof, c_sizeof_nowarn, c_alignof): Likewise.
6602
19552aa5
JM
66032000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
6604
6605 * typeck.c (build_unary_op): Use boolean_increment from
6606 c-common.c, moving the relevant code there.
6607
d96a6d1a
JM
66082000-11-11 Jason Merrill <jason@redhat.com>
6609
6610 * typeck.c (mark_addressable): Don't call put_var_into_stack.
492cca24
JM
6611
6612 * decl.c (maybe_commonize_var): Set DECL_UNINLINABLE for statics
6613 in inlines.
6614
4e135bdd
KG
66152000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6616
6617 * decl.c (grokdeclarator, save_function_data): Use memcpy, not bcopy.
6618 * lex.c (copy_lang_decl): Likewise.
6619
0a7394bc
MM
66202000-11-09 Mark Mitchell <mark@codesourcery.com>
6621
13507bd8
MM
6622 * dump.c (cp_dump_tree): Don't dump function bodies here.
6623
0a7394bc
MM
6624 * Make-lang.in (CXX_C_OBJS): Add c-dump.o.
6625 (dump.o): Update dependency list.
6626 * cp-tree.h (DECL_MAYBE_TEMPLATE): Remove.
6627 (flag_dump_translation_unit): Likewise.
6628 (CP_TYPE_QUALS): Adjust definition.
6629 (DECL_C_BIT_FIELD): Remove.
6630 (SET_DECL_C_BIT_FIELD): Likewise.
6631 (CLEAR_DECL_C_BIT_FIELD): Likewise.
6632 (add_maybe_template): Likewise.
6633 (strip_array_types): Likewise.
6634 (dump_node_to_file): Likewise.
6635 (cp_dump_tree): New function.
6636 * decl.c (init_decl_processing): Set lang_dump_tree.
6637 * decl2.c (flag_dump_translation_unit): Remove.
6638 * dump.c: Move most of it to ../c-dump.c.
6639 (cp_dump_tree): New function.
6640 * pt.c (add_maybe_template): Remove.
6641 * typeck.c (strip_array_types): Likewise.
a8a05998 6642
5362b086
EC
66432000-11-07 Eric Christopher <echristo@redhat.com>
6644
492cca24
JM
6645 * decl.c (init_decl_processing): Change definition of
6646 __wchar_t to wchar_t. Remove artificial declaration of
6647 wchar_t.
6648 * lex.c: Change instances of __wchar_t to wchar_t.
5362b086 6649
5361cbb7
NS
66502000-11-09 Nathan Sidwell <nathan@codesourcery.com>
6651
6652 * lex.c (do_identifier): Don't lookup_name for operators.
6653 * parse.y (operator): Save looking_for_typename.
6654 (unoperator): Restore it.
6655 * spew.c (frob_opname): Use nth_token for lookahead.
6656
36791f1e
NS
66572000-11-08 Nathan Sidwell <nathan@codesourcery.com>
6658
6659 * decl.c (grok_op_properties): Always use coerce_new_type and
6660 coerce_delete_type.
6661 * decl2.c (coerce_new_type): Use c_size_type_node. Preserve
6662 exception specification. Tidy up.
6663 (coerce_delete_type): Preserve exception specification. Tidy up.
6664
961192e1
JM
66652000-11-07 Joseph S. Myers <jsm28@cam.ac.uk>
6666
6667 * class.c (duplicate_tag_error, build_vtbl_initializer), decl.c
6668 (push_binding_level), error.c (cp_tree_printer), pt.c
6669 (process_partial_specialization, tsubst_template_arg_vector),
6670 search.c (lookup_member): Use memset () instead of bzero ().
6671
d48ebde1
NS
66722000-11-07 Nathan Sidwell <nathan@codesourcery.com>
6673
6674 * decl.c (build_ptrmemfunc_type): Allow error_mark_node.
6675
436a88a6
JM
66762000-11-05 Joseph S. Myers <jsm28@cam.ac.uk>
6677
6678 * Make-lang.in (c++.distdir): Remove.
6679
7a4e5091
MM
66802000-11-04 Mark Mitchell <mark@codesourcery.com>
6681
6682 * decl2.c (do_nonmember_using_decl): Allow `extern "C"'
6683 declarations from different namespaces to be combined.
6684
0e9295cf
ZW
66852000-11-03 Zack Weinberg <zack@wolery.stanford.edu>
6686
6687 * decl.c: Include tm_p.h.
6688
da61dec9
JM
66892000-11-03 Joseph S. Myers <jsm28@cam.ac.uk>
6690
6691 * tree.c (cp_tree_equal): Use memcmp () instead of bcmp ().
6692
9473c522
JM
66932000-11-02 Joseph S. Myers <jsm28@cam.ac.uk>
6694
6695 * dump.c (dequeue_and_dump), lex.c (interface_strcmp), method.c
6696 (build_overload_value), repo.c (open_repo_file), xref.c
6697 (open_xref_file): Use strchr () and strrchr () instead of index ()
6698 and rindex ().
6699
b0b3afb2
BS
67002000-11-01 Bernd Schmidt <bernds@redhat.co.uk>
6701
6702 * call.c (build_over_call): Call fold on the CALL_EXPR.
6703
faafaee6
GDR
67042000-11-01 Gabriel Dos Reis <gdr@codesourcery.com>
6705
6706 * error.c (dump_template_decl): Separate template hearders with
6707 space not comma.
6708
761f0855
GDR
67092000-10-31 Gabriel Dos Reis <gdr@codesourcery.com>
6710
6711 * error.c: Move TFF_ macros into cp-tree.h. Throughout, replace
6712 TS_* flags with corresponding TFF_*. Adjust prototypes of
6713 functions (which used to take a tree_string_flags) to take an int.
6714
6715 * cp-tree.h (enum tree_string_flags): Remove
6716 (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE,
6717 TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPEDEF, TFF_DECL_SPECIFIERS,
6718 TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE,
6719 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION,
6720 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS,
6721 TFF_TEMPLATE_NAME, TFF_EXPR_IN_PARENS, TFF_SCOPE): New macros.
6722 (type_as_string, decl_as_string, expr_as_string,
6723 context_as_string): Adjust prototype.
6724
6725 * class.c (dump_class_hierarchy_r): Use TFF_PLAIN_IDENTIFIER
6726 instead of TS_PLAIN.
6727
6728 * pt.c (mangle_class_name_for_template): Use TFF_CHASE_TYPEDEF
6729 instead of TF_CHASE_TYPEDEFS. Use TFF_PLAIN_IDENTIFIER instead of
6730 plain `0'.
6731
ad50e811
MM
67322000-10-30 Mark Mitchell <mark@codesourcery.com>
6733
6734 * cp-tree.h (DECL_EXTERNAL_LINKAGE_P): New macro.
6735 (linkage_kind): New enumeration.
6736 (decl_linkage): New function.
6737 * decl2.c (comdat_linkage): Extend comment.
6738 * error.c (dump_function_decl): Print the arguments used to
6739 instantiate a template, even when not printing the type of the
6740 function.
6741 * pt.c (convert_nontype_argument): Use DECL_EXTERNAL_LINKAGE_P,
6742 not TREE_PUBLIC, to test for external linkage.
6743 * tree.c (decl_linkage): New function.
6744
930cd796
MM
67452000-10-28 Mark Mitchell <mark@codesourcery.com>
6746
6747 * pt.c (instantiate_decl): Always instantiate static data members
6748 initialized in-class.
6749
b8dad04b
ZW
67502000-10-27 Zack Weinberg <zack@wolery.stanford.edu>
6751
6752 * Make-lang.in: Move all build rules here from Makefile.in,
6753 adapt to new context. Wrap all rules that change the current
6754 directory in parentheses. Expunge all references to $(P).
6755 When one command depends on another and they're run all at
6756 once, use && to separate them, not ;. Add OUTPUT_OPTION to
6757 all object-file generation rules. Delete obsolete variables.
6758
6759 * Makefile.in: Delete.
6760 * config-lang.in: Delete outputs= line.
6761
5f9cd837
GDR
67622000-10-26 Gabriel Dos Reis <gdr@codesourcery.com>
6763
6764 * error.c (dump_function_decl): Print no space between
6765 `ptr-operator' the `type-specifier' of the return type.
6766 (dump_type_prefix): Make sure we put space at the appropriate
5362b086 6767 place.
5f9cd837 6768
6c6ed0ef
JM
67692000-10-23 Jason Merrill <jason@redhat.com>
6770
6771 * call.c (equal_functions): Also call decls_match for extern "C" fns.
6772
67732000-10-22 Jason Merrill <jason@redhat.com>
6774
6775 * call.c (build_conditional_expr): Use ocp_convert to force
6776 rvalue conversion.
6777
e36308b0
MM
67782000-10-22 Mark Mitchell <mark@codesourcery.com>
6779
583ca5a0
MM
6780 * call.c (standard_conversion): Use RVALUE_CONVs for all
6781 expressions that satisfy lvalue_p, not just those that satisfy
6782 real_lvalue_p.
6783
f9808f81
MM
6784 * optimize.c (copy_body_r): Don't treat CALL_EXPRs specially.
6785
5362b086 6786 * typeck.c (c_sizeof): Return an expression of `size_t' type,
e36308b0
MM
6787 not one with TYPE_IS_SIZETYPE set.
6788 (dubious_conversion_warnings): Remove special-case code.
6789
3b9ae6f0
GK
67902000-10-21 Geoffrey Keating <geoffk@cygnus.com>
6791
7a0f14e5
GK
6792 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE.
6793 * error.c (dump_type): Handle VECTOR_TYPE like POINTER_TYPE.
6794 (dump_type_prefix): Print vector-of-int as 'int vector'.
6795 (dump_type_suffix): Handle VECTOR_TYPE like POINTER_TYPE.
6796 * tree.c (walk_tree): Handle VECTOR_TYPE.
6797
3b9ae6f0 6798 * decl.c (init_decl_processing): Call MD_INIT_BUILTINS.
5362b086 6799
aca77bd1
JM
68002000-10-21 Jason Merrill <jason@redhat.com>
6801
6802 * parse.y (operator): Set got_object from got_scope.
6803 Set looking_for_typename.
6804 * decl.c (lookup_name_real): Clear val after setting from_obj.
6805 Reorganize diagnostic.
6806
ba523395
JM
68072000-10-20 Jason Merrill <jason@redhat.com>
6808
6809 * tree.c (walk_tree): Don't walk into default args.
6810
6811 * error.c (dump_expr): Use host_integerp.
6812
2e44948d
DE
68132000-10-20 David Edelsohn <edelsohn@gnu.org>
6814
6815 * typeck2.c (abstract_virtuals_error): Use "because" instead of
6816 "since" in error message.
6817
44475138
RK
6818Fri Oct 20 13:54:59 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6819
6820 * typeck.c (dubious_conversion_warning): Suppress if TYPE_IS_SIZETYPE.
6821
11306230
JO
68222000-10-20 Jeffrey Oldham <oldham@codesourcery.com>
6823
6824 * decl.c (revert_static_member_fn): Fixed typo.
6825
97ba1e3c
MM
68262000-10-19 Mark Mitchell <mark@codesourcery.com>
6827
c20118a8
MM
6828 * class.c (subobject_offset_fn): New type.
6829 (dfs_record_base_offsets): Remove.
6830 (record_base_offsets): Likewise.
6831 (dfs_search_base_offsets): Likewise.
6832 (record_subobject_offset): New function.
6833 (check_subobject_offset): Likewise.
6834 (walk_subobject_offsets): Likewise.
6835 (record_subobject_offsets): Likewise.
6836 (layout_conflict_p): Reimplement.
6837 (layout_nonempty_base_or_field): Correct handling of type
6838 conflicts during layout.
6839 (layout_empty_base): Likewise.
6840 (build_base_field): Adjust to handle new representation of empty
6841 base offset table.
6842 (build_base_fields): Likewise.
6843 (layout_virtual_bases): Likewise.
6844 (splay_tree_compare_integer_csts): New function.
6845 (layout_class_type): Use a splay_tree, rather than a varray, to
6846 represent the offsets of empty bases.
5362b086 6847
97ba1e3c
MM
6848 * cp-tree.h (DECL_ANTICIPATED): Don't require a FUNCTION_DECL.
6849 * decl.c (select_decl): Don't return declarations that are
6850 DECL_ANTICIPATED.
6851
6bcedb4e
MM
68522000-10-18 Mark Mitchell <mark@codesourcery.com>
6853
6854 * cp-tree.h (cp_tree_index): Add CPTI_FAKE_STD.
6855 (fake_std_node): New macro.
6856 * decl.c (in_std): Rename to ...
6857 (in_fake_std): ... this.
6858 (flag_no_builtin): Remove.
6859 (flag_no_nonansi_builtin): Likewise.
6860 (walk_namespaces_r): Use fake_std_node.
6861 (push_namespace): Use std_identifier.
6862 (pop_namespace): Use in_fake_std.
6863 (lookup_name_real): Use fake_std_node.
6864 (init_decl_processing): When -fhonor-std, create the `std'
6865 namespace. Don't create a dummy fake_std_node in that case.
6866 Adjust call to c_common_nodes_and_builtins. Use std_identifier.
6867 (builtin_function): Put builtins whose names don't begin
6868 with `_' in the std namespace.
6869 * decl2.c (flag_no_builtin): Remove.
6870 (flag_no_nonansi_builtin): Likewise.
6871 (set_decl_namespace): Use fake_std_node.
6872 (validate_nonmember_using_decl): Likewise.
6873 (do_using_directive): Likewise.
6874 (handle_class_head): Likewise.
6875 * dump.c (dequeue_and_dump): Likewise.
6876 * except.c (init_exception_processing): Use std_identifier.
6877 * init.c (build_member_call): Use fake_std_node.
6878 * rtti.c (init_rtti_processing): Use std_identifier.
5362b086 6879
67673f5c
MM
68802000-10-17 Mark Mitchell <mark@codesourcery.com>
6881
6882 * cp-tree.h (back_end_hook): Remove declaration.
6883 * decl2.c (back_end_hook): Remove definition.
6884
6885 * dump.c (dequeue_and_dump): Dump TREE_USED.
6886
8fef2e47
BL
6887Tue Oct 17 20:19:06 2000 Brad Lucier <lucier@math.purdue.edu>
6888
6889 * spew.c (snarf_defarg): Cast 2nd arg to obstack_blank to (int).
6890
652469d0
JM
68912000-10-17 Joseph S. Myers <jsm28@cam.ac.uk>
6892
6893 * decl.c (WINT_TYPE): Define.
6894 (init_decl_processing): Create types unsigned_ptrdiff_type_node,
6895 c_size_type_node, signed_size_type_node and wint_type_node.
6896
74ff4629
JM
68972000-10-17 Joseph S. Myers <jsm28@cam.ac.uk>
6898
6899 * decl2.c (warn_missing_format_attribute): New variable.
6900 (lang_decode_option): Decode -Wmissing-format-attribute.
6901
634790f4
MM
69022000-10-16 Mark Mitchell <mark@codesourcery.com>
6903
6904 * typeck.c (qualify_type): Remove.
6905 (composite_pointer_type): Fix handling of conversions to `cv void*'.
6906
bb12da9d
KG
69072000-10-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6908
6909 * Makefile.in (parse.c, parse.h): Fix think-o in last patch.
6910
4b945402
KG
69112000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6912
6913 * Makefile.in (parse.c, parse.h): Create atomically.
6914
1f8f4a0b
MM
69152000-10-12 Mark Mitchell <mark@codesourcery.com>
6916
6917 * class.c (current_obstack): Remove.
6918 * decl.c (ggc_p): Remove.
6919 (start_decl): Don't use decl_tree_cons.
6920 (grokdeclarator): Don't use build_decl_list.
6921 (start_function): Don't use decl_tree_cons.
6922 (finish_function): Don't mess with obstacks.
6923 * decl2.c (grok_x_components): Don't use build_decl_list.
6924 * lex.c (make_call_declarator): Don't call decl_tree_cons.
6925 (implicitly_declare_fn): Don't call build_decl_list.
6926 * parse.y (frob_specs): Don't call build_decl_list or
6927 decl_tree_cons.
6928 (expr_or_declarator_intern): Don't call decl_tree_cons.
6929 (primary): Don't call build_decl_list.
6930 (fcast_or_absdcl): Likewise.
6931 (typed_declspecs): Don't call decl_tree_cons.
6932 (reserved_declspecs): Don't call build_decl_list.
6933 (declmods): Likewise.
6934 (reserved_typespecquals): Likewise.
6935 (aggr): Likewise.
6936 (new_type_id): Likewise.
6937 (cv_qualifiers): Likewise.
6938 (after_type_declarator_intern): Likewise.
6939 (notype_declarator_intern): Likewise.
6940 (absdcl_intern): Likewise.
6941 (named_parm): Likewise.
6942 * pt.c (most_specialized_class): Likewise.
6943 * repo.c (temporary_obstack): Make it a structure, not a pointer.
6944 (init_repo): Initialize it.
6945 * search.c (current_obstack): Remove.
6946 * typeck2.c (add_exception_specifier): Don't call build_decl_list.
5362b086 6947
8dc54971
RH
69482000-10-09 Richard Henderson <rth@cygnus.com>
6949
6950 * Make-lang.in (CXX_EXTRA_HEADERS): Remove.
6951 (c++ language support bits for libgcc): Remove.
6952 (c++.clean): Remove cplib2.txt cleanup.
6953 * config-lang.in (headers, lib2funcs): Remove.
6954
6955 * exception.cc, new.cc, new1.cc, new2.cc: Remove files.
6956 * tinfo.cc, tinfo.h, tinfo2.cc, vec.cc: Remove files.
6957 * inc/cxxabi.h, inc/exception, inc/new: Remove files.
6958 * inc/new.h, inc/typeinfo: Remove files.
6959
b15ad712
JM
69602000-10-08 Joseph S. Myers <jsm28@cam.ac.uk>
6961
6962 * decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already
6963 defined.
6964 (init_decl_processing): Initialize intmax_type_node and
6965 uintmax_type_node.
6966
156ce211
RH
69672000-10-06 Richard Henderson <rth@cygnus.com>
6968
6969 * cp-tree.h (struct cp_language_function): Remove x_result_rtx.
6970 (original_result_rtx): Remove.
6971 * decl.c (save_function_data): Don't clear x_result_rtx.
6972 (mark_lang_function): Don't mark it either.
6973 * expr.c (fixup_result_decl): Remove.
6974 * semantics.c (genrtl_named_return_value): Frob the return decl
6975 before calling emit_local_var.
6976 (genrtl_finish_function): Don't call fixup_result_decl.
6977 Always emit the jump to return_label.
6978
92777ce4
NS
69792000-10-06 Nathan Sidwell <nathan@codesourcery.com>
6980
6981 * pt.c (lookup_template_class): Set current access for enum.
6982 (tsubst_enum): Set file & line for enum decl.
5362b086 6983
92777ce4
NS
6984 * spew.c (yylex): Remove unused variable.
6985
63c16fc5
RH
69862000-10-05 Richard Henderson <rth@cygnus.com>
6987
6988 * semantics.c (genrtl_finish_function): Don't init or check
6989 can_reach_end; remove noreturn and return value checks.
6990
d1a458c4
TT
69912000-10-05 Tom Tromey <tromey@cygnus.com>
6992
6993 * init.c (build_java_class_ref): Use `build_static_name' with a
6994 suffix, not a prefix, to build the class object's name.
6995
509fc277
NS
69962000-10-05 Nathan Sidwell <nathan@codesourcery.com>
6997
6998 * cp-tree.h (access_kind): Fix comment typo.
6999 * decl2.c (grokfield): Fix diagnostic typo.
7000 * semantics.c (finish_template_type): Fix comment typo.
7001 (finish_qualified_object_call_expr): Likewise.
7002
ce2e5191
NS
70032000-10-05 Nathan Sidwell <nathan@codesourcery.com>
7004
7005 * pt.c (tsubst_expr, DECL_STMT case): Don't process if
5362b086 7006 tsubsting fails.
ce2e5191 7007
79cc5312
NS
70082000-10-05 Nathan Sidwell <nathan@codesourcery.com>
7009
7010 * spew.c (frob_id): New static function.
7011 (frob_opname): Use it.
7012 (yylex): Use it.
7013
f15b9af9
MM
70142000-10-01 Mark Mitchell <mark@codesourcery.com>
7015
7016 * decl.c (lang_mark_false_label_stack): Remove.
7017 * lex.c (cp_mang_lang_type): Use ggc_alloc_cleared.
5362b086 7018
28e6b1c2
JM
70192000-09-30 Joseph S. Myers <jsm28@cam.ac.uk>
7020
7021 * gxxint.texi: Use @email for formatting email addresses.
7022
99885b3f
GDR
70232000-09-29 Gabriel Dos Reis <gdr@codesourcery.com>
7024
7025 * error.c: Remove direct obstack manipulation. Replace with
7026 output_buffer-based formatting. Adjust calls to removed macros.
7027 (obstack_chunk_alloc, obstack_chunk_free): Remove.
7028 (OB_INIT, OB_PUTC, OB_PUTC2, OB_PUTS, OB_PUTID, OB_PUTCP,
7029 OB_FINISH, OB_PUTI, OB_END_TEMPLATE): Likewise.
7030
c06aa51e
MM
70312000-09-24 Mark Mitchell <mark@codesourcery.com>
7032
7033 * ir.texi: Move to ../c-tree.texi.
7034
99fada40
JM
70352000-09-20 Jason Merrill <jason@redhat.com>
7036
7037 * decl2.c (get_guard): Check DECL_FUNCTION_SCOPE_P.
7038
bb20cc46
AJ
70392000-09-21 Andreas Jaeger <aj@suse.de>
7040
7041 * errfn.c: Move declaration of cp_printer and cp_printers to ...
7042 * cp-tree.h: ... here.
7043
7044 * error.c: Remove declaration of cp_printer.
7045
fab701da
MM
70462000-09-20 Mark Mitchell <mark@codesourcery.com>
7047
7048 * tree.c (mark_local_for_remap_r): Handle CASE_LABELs.
7049
0370fea1
HPN
70502000-09-20 Hans-Peter Nilsson <hp@axis.com>
7051
7052 * except.c: Delete #if 0:d EXCEPTION_SECTION_ASM_OP-default and
7053 users.
7054
78c120b5
MM
70552000-09-18 Mark Mitchell <mark@codesourcery.com>
7056
7057 * decl.c (start_function): Robustify.
7058
3f80e6ac
KG
70592000-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7060
7061 * cp-tree.h (check_function_format): Accept a `status' parameter.
bb20cc46 7062
3f80e6ac
KG
7063 * call.c, typeck.c: Updates calls to `check_function_format'.
7064
fc928afe
GK
70652000-09-17 Geoffrey Keating <geoffk@cygnus.com>
7066
7067 * decl2.c (handle_class_head): Always push some scope even
7068 in the error case.
7069
8f17b5c5
MM
70702000-09-16 Mark Mitchell <mark@codesourcery.com>
7071
7072 * cp-tree.h (struct cp_language_function): Remove
7073 x_scope_stmt_stack and name_declared.
7074 (current_scope_stmt_stack): Remove.
7075 (function_name_declared_p): New macro.
7076 (struct lang_decl_flags): Use c_lang_decl as a base class.
7077 (context): Remove.
7078 (struct lang_decl): Replace saved_tree with context.
7079 (DECL_FRIEND_CONTEXT): Adjust accordingly.
7080 (SET_DECL_FRIEND_CONTEXT): Likewise.
7081 (DECL_VIRTUAL_CONTEXT): Likewise.
7082 (DECL_SAVED_TREE): Remove.
7083 (C_DECLARED_LABEL_FLAG): Likewise.
7084 (cplus_expand_expr_stmt): Don't declare.
7085 (add_decl_stmt): Likewise.
7086 (add_scope_stmt): Likewise.
7087 * decl.c (mark_stmt_tree): Remove.
7088 (case_compare): Likewise.
7089 (finish_case_label): Use c_add_case_label.
7090 (init_decl_processing): Set more language-specific hooks.
7091 (build_enumerator): Fix typo in comment.
7092 (cplus_expand_expr_stmt): Remove.
7093 (mark_lang_function): Use mark_c_language_function.
7094 (lang_mark_tree): Use c_mark_lang_decl.
7095 * decl2.c: Change order of inclusion.
7096 * except.c: Likewise.
7097 * expr.c (cplus_expand_expr): Remove handling of STMT_EXPR. Fall
7098 back on c_expand_expr.
7099 * friend.c: Include expr.h.
7100 * init.c: Change order of inclusion.
7101 * Makefile.in: Update dependencies.
7102 * lex.h (free_lang_decl_chain): Remove.
7103 * optimize.c (maybe_clone_body): Use function_name_declared_p.
7104 * pt.c (build_template_decl): Don't copy DECL_VIRTUAL_CONTEXT if
7105 it doesn't exist.
7106 (instantiate_decl): Use function_name_declared_p.
7107 * semantics.c (lang_expand_expr_stmt): Remove.
7108 (set_current_function_name_declared): Likewise.
7109 (current_function_name_declared): Likewise.
7110 (begin_compound_stmt): Use function_name_declared_p.
7111 (add_decl_stmt): Remove.
7112 (setup_vtbl_ptr): Use function_name_declared_p.
7113 (add_scope_stmt): Remove.
7114 (current_scope_stmt_stack): New function.
7115 (cp_expand_stmt): Don't handle SCOPE_STMTs.
7116 (expand_body): Use function_name_declared_p.
7117 * tree.c (cp_statement_code_p): Don't include SCOPE_STMT.
7118 * typeck.c: Change order of includes.
7119 (convert_sequence): Remove.
bb20cc46 7120
d9dbd9b1
JM
71212000-09-14 Joseph S. Myers <jsm28@cam.ac.uk>
7122
7123 * lex.c (reswords): Add _Complex.
7124
9985f210
RK
7125Thu Sep 14 12:10:45 2000 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
7126
7127 * Make-lang.in (cplib2.txt): Depend on cp/Makefile.
7128
f903ebb1
DA
71292000-09-13 J. David Anglin <dave@hiauly1.hia.nrc.ca>
7130
7131 * init.c (begin_init_stmts): Don't use // comments.
7132
f2ae0c45
JM
71332000-09-12 Jason Merrill <jason@redhat.com>
7134
7135 * decl.c (maybe_deduce_size_from_array_init): Set do_default for
7136 all non-extern arrays.
7137
7138 * decl.c (grokdeclarator): Complain about 'friend T' for implicit
7139 typenames, too. Downgrade complaint to pedwarn.
7140 (xref_tag): Warn about surprising behavior of 'friend struct T'.
7141 * decl2.c (handle_class_head): Generate a TYPENAME_TYPE for
7142 'class This::Inherited'.
7143
71ad4a16
MM
71442000-09-12 Mark Mitchell <mark@codesourcery.com>
7145
7146 * decl.c (finish_case_label): Given the LABEL_DECL a
7147 DECL_CONTEXT.
7148
c3e76028
GDR
71492000-09-12 Gabriel Dos Reis <gdr@codesourcery.com>
7150
7151 * error.c (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE,
7152 TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPDEF,
7153 TFF_DECL_SPECIFIERS, TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE,
7154 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION,
7155 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, TFF_SCOPE):
7156 New macros.
7157 (sorry_for_unsupported_tree, print_scope_operator,
7158 print_left_paren, print_right_paren, print_left_bracket,
7159 print_right_bracket, print_whitespace): Likewise.
7160 (aggr_variety): Rename to class_key_or_enum.
7161 (print_type): Rename to print_type_id.
7162 (print_type_specifier_seq, print_simple_type_specifier,
7163 print_elaborated_type_specifier,
7164 print_rest_of_abstract_declarator,
7165 print_parameter_declaration_clause, print_exception_specification,
7166 print_nested_name_specifier, print_template_id,
7167 typedef_original_name, print_template_argument_list_start,
7168 print_template_argument_list_end): New functions.
7169
eb50138b
GDR
71702000-09-11 Gabriel Dos Reis <gdr@codesourcery.com>
7171
a8a05998 7172 * ir.texi: Add more documentation.
eb50138b 7173
f444e36b
MM
71742000-09-11 Mark Mitchell <mark@codesourcery.com>
7175
7176 * cp-tree.h (struct saved_scope): Remove x_function_parms.
7177 (current_function_parms): Don't define.
7178 (struct cp_language_function): Remove parms_stored.
7179 (current_function_just_assigned_this): Don't define.
7180 (current_function_parms_stored): Likewise.
7181 (static_ctors): Declare.
7182 (static_dtors): Likewise.
7183 (SF_EXPAND): Don't define.
7184 (expand_start_early_try_stmts): Remove declaration.
7185 (store_parm_decls): Likewise.
7186 * decl.c (static_ctors): Don't declare.
7187 (static_dtors): Likewise.
7188 (struct binding_level): Remove this_block.
7189 (poplevel): Remove dead code.
7190 (set_block): Likewise.
7191 (mark_binding_level): Don't mark this_block.
7192 (mark_saved_scope): Don't mark x_function_parms.
7193 (init_decl_processing): Don't add current_function_parms as a GC
7194 root.
7195 (check_function_type): Change prototype.
7196 (start_function): Remove RTL-generation code.
7197 (expand_start_early_try_stmts): Remove.
7198 (store_parm_decls): Give it internal linkage. Remove
7199 RTL-generation code.
7200 (finish_function): Remove RTL-generation code.
7201 * decl2.c (static_ctors): Fix formatting.
7202 (static_dtors): Likewise.
7203 * method.c (use_thunk): Don't call store_parm_decls.
7204 (synthesize_method): Likewise.
7205 * optimize.c (maybe_clone_body): Likewise.
7206 * parse.y (fn.def2): Likewise.
7207 (.set_base_init): Likewise.
7208 (nodecls): Likewise.
7209 * pt.c (instantiate_decl): Likewise.
7210 * rtti.c (synthesize_tinfo_fn): Likewise.
7211 * semantics.c (genrtl_try_block): Simplify.
7212 (expand_body): Use genrtl_start_function and
7213 genrtl_finish_function.
7214 (genrtl_start_function): New function.
7215 (genrtl_finish_function): Likewise.
7216
181d2ba0
NS
72172000-09-11 Nathan Sidwell <nathan@codesourcery.com>
7218
7219 * error.c (cp_tree_printer, case 'P'): Append break.
7220
f2d71db6
NS
72212000-09-11 Nathan Sidwell <nathan@codesourcery.com>
7222
7223 * cp-tree.h (frob_opname): Declare.
7224 * parse.y (saved_scopes): New static variable.
7225 (cp_parse_init): Adjust.
7226 (do_id): If lastiddecl is NULL, do do_identifier.
7227 (operator): Save scope information.
aca77bd1 7228 (unoperator): New reduction. Restore scope information.
f2d71db6
NS
7229 (operator_name): Append unoperator. Call frob_opname.
7230 * spew.c (frob_opname): Define.
7231
d8ea8f28
ZW
72322000-09-10 Zack Weinberg <zack@wolery.cumb.org>
7233
7234 * decl.c, rtti.c: Include defaults.h if not already included.
7235 Don't define the *_TYPE_SIZE macros.
7236
56cb9733
MM
72372000-09-09 Mark Mitchell <mark@codesourcery.com>
7238
7239 * cp-tree.h (push_switch): Change prototype.
7240 (check_cp_case_value): Remove declaration.
7241 (decl_constant_value): Likewise.
7242 * decl.c (struct cp_switch): Add switch_stmt and cases.
7243 (case_compare): New function.
7244 (push_switch): Set switch_stmt. Initialize cases.
7245 (pop_switch): Clean up cases.
7246 (define_case_label): Rename to ...
7247 (finish_case_label): ... this. Do semantic analysis for case
7248 labels here.
7249 (start_function): Correct comment.
7250 * decl2.c (check_cp_case_value): Remove.
7251 * expr.c (do_case): Remove.
7252 * pt.c (tsubst_expr): Adjust call to finish_case_label.
7253 * semantics.c (genrtl_do_poplevel): Remove declaration.
7254 (RECHAIN_STMTS): Remove.
7255 (finish_break_stmt): Use build_break_stmt.
7256 (finish_continue_stmt): Use build_continue_stmt.
7257 (finish_switch_cond): Adjust condition here, rater than in
7258 c_expand_start_case.
7259 (finish_case_label): Remove.
7260 * typeck.c (c_expand_return): Remove.
7261 (c_expand_start_case): Likewise.
bb20cc46 7262
990a9693
GDR
72632000-09-07 Gabriel Dos Reis <gdr@codesourcery.com>
7264
7265 * ir.texi: Document type nodes.
7266
ae499cce
MM
72672000-09-06 Mark Mitchell <mark@codesourcery.com>
7268
54f7877c
MM
7269 * cp-tree.h (init_cp_semantics): Declare.
7270 (genrtl_try_block): Don't declare.
7271 (genrtl_handler): Likewise.
7272 (genrtl_catch_block): Likewise.
7273 (genrtl_ctor_stmt): Likewise.
7274 (genrtl_subobject): Likewise.
7275 (genrtl_do_poplevel): Likewise.
7276 (genrtl_named_return_value): Likewise.
7277 * lex.c (init_parse): Call init_cp_semantics.
7278 * semantics.c (genrtl_try_block): Give it internal linkage.
7279 (genrtl_handler): Likewise.
7280 (genrtl_catch_block): Likewise.
7281 (genrtl_ctor_stmt): Likewise.
7282 (genrtl_subobject): Likewise.
7283 (genrtl_do_poplevel): Likewise.
7284 (genrtl_named_return_value): Likewise.
7285 (lang_expand_stmt): Rename to ...
7286 (cp_expand_stmt): ... this. Only handle C++-specific nodes.
7287 (init_cp_semantics): Define.
7288
3a0d3e1e
MM
7289 * decl.c (initialize_local_var): Remove RTL-generating code.
7290 * semantics.c (genrtl_try_block): Fix formatting.
7291
ae499cce
MM
7292 Move statement-tree facilities from C++ to C front-end.
7293 * cp-tree.h (cp_tree_index): Remove CPTI_VOID_ZERO.
7294 (void_zero_node): Remove.
7295 (stmt_tree): Likewise.
7296 (scope_chain): Adjust.
7297 (language_function): Rename to cp_language_function.
7298 (cp_function_chain): Adjust.
7299 (current_stmt_tree): Remove.
7300 (last_tree): Likewise.
7301 (last_expr_type): Likewise.
7302 (struct lang_decl): Adjust.
7303 (STMT_IS_FULL_EXPR_P): Remove.
7304 (add_tree): Remove.
7305 (begin_stmt_tree): Likewise.
7306 (finish_stmt_tree): Likewise.
7307 (walk_tree_fn): Likewise.
7308 (walk_stmt_tree): Likewise.
7309 * class.c (finish_struct): Replace use of add_tree with add_stmt.
7310 * decl.c (mark_stmt_tree): Adjust type.
7311 (init_decl_processing): Don't build void_zero_node.
7312 (initialize_local_var): Adjust usage of current_stmt_tree.
7313 (finish_enum): Use add_stmt, not add_tree.
7314 (save_function_data): Adjust use of language_function.
7315 (finish_constructor_body): Use add_stmt, not add_tree.
7316 (finish_destructor_body): Likewise.
7317 (push_cp_function_context): Adjust use of language_function.
7318 (pop_cp_function_context): Likewise.
7319 (mark_lang_function): Likewise.
7320 (mark_cp_function_context): Likewise.
7321 * init.c (build_aggr_init): Adjust use of current_stmt_tree.
7322 (build_vec_init): Likewise.
7323 * semantics.c (SET_LAST_STMT): Remove.
7324 (RECHAIN_STMTS): Don't use it.
7325 (stmts_are_full_exprs_p): Adjust use of current_stmt_tree.
7326 (current_stmt_tree): Define.
7327 (add_tree): Remove.
7328 (finish_goto_stmt): Use add_stmt, not add_tree.
7329 (finish_expr_stmt): Likewise.
7330 (begin_if_stmt): Likewise.
7331 (finish_then_clause): Likewise.
7332 (begin_while_stmt): Likewise.
7333 (begin_do_stmt): Likewise.
7334 (finish_return_stmt): Likewise.
7335 (begin_for_stmt): Likewise.
7336 (finish_break_stmt): Likewise.
7337 (finish_continue_stmt): Likewise.
7338 (begin_switch_stmt): Likewise.
7339 (finish_case_label): Likewise.
7340 (begin_try_block): Likewise.
7341 (begin_function_try_block): Likewise.
7342 (begin_handler): Likewise.
7343 (begin_catch_block): Likewise.
7344 (begin_compound_stmt): Likewise.
7345 (begin_asm_stmt): Likewise.
7346 (finish_asm_stmt): Likewise.
7347 (finish_label_stmt): Likewise.
7348 (add_decl_stmt): Likewise.
7349 (finish_subobject): Likewise.
7350 (finish_decl_cleanup): Likewise.
7351 (finish_named_return_value): Likewise.
7352 (setup_vtbl_ptr): Likewise.
7353 (add_scope_stmt): Likewise.
7354 (finish_stmt_expr): Likewise.
7355 (prune_unused_decls): Remove.
7356 (begin_stmt_tree): Likewise.
7357 (finish_stmt_tree): Likewise.
7358 (prep_stmt): Adjust use of current_stmt_tree.
7359 (lang_expand_stmt): Likewise.
7360 * tree.c (statement_code_p): Remove.
7361 (cp_statement_code_p): New function.
7362 (walk_stmt_tree): Remove.
7363 (init_tree): Set lang_statement_code_p.
bb20cc46 7364
0e5921e8
ZW
73652000-09-06 Zack Weinberg <zack@wolery.cumb.org>
7366
7367 Integrated preprocessor.
7368
7369 * Make-lang.in, Makefile.in: Remove all references to input.c,
7370 gxx.gperf, and hash.h. Add ../c-lex.o to C_OBJS.
7371 * gxx.gperf, hash.h, input.c: Delete.
7372 * lang-specs.h: Pass -lang-c++ to cc1plus so cpplib is
7373 initialized properly.
7374
7375 * class.c (fixup_pending_inline): Take a tree, not a
7376 struct pending_inline *. All callers changed.
7377 (init_class_processing): Set RID_PUBLIC, RID_PRIVATE,
7378 RID_PROTECTED entries in ridpointers[] array here.
7379 * decl.c (duplicate_decls): Do not refer to struct
7380 pending_inline.
7381 (record_builtin_type, init_decl_processing): Use RID_MAX not
7382 CP_RID_MAX.
7383 (grokdeclarator): Use C_IS_RESERVED_WORD.
7384 * decl2.c (lang_decode_option): Ignore -lang-c++ for sake of
7385 cpplib.
7386 (grok_x_components): Do not inspect pending_inlines chain.
7387
7388 * cp-tree.h (struct lang_identifier): Add rid_code entry.
7389 (C_IS_RESERVED_WORD, C_RID_CODE, C_RID_YYCODE): New.
7390 (flag_no_gnu_keywords, flag_operator_names, rid_to_yy): Declare.
7391 (DEFARG_LENGTH, struct pending_inline, TIME_IDENTIFIER_TIME,
7392 TIME_IDENTIFIER_FILEINFO): Kill.
7393 Update prototypes.
7394 * lex.h: Expunge cp_rid. Rewrite RIDBIT macros to use just a
7395 single 32-bit word.
7396 * parse.y: Call do_pending_inlines unconditionally.
7397 reinit_parse_for_method is now snarf_method. fn.defpen is no
7398 longer necessary. Remove unnecessary <itype> annotation on
7399 SCOPE. Do not refer to end_of_file or struct pending_inline.
7400 * semantics.c (begin_inline_definitions): Call
7401 do_pending_inlines unconditionally.
7402
7403 * lex.c: Remove all code now shared with C front end.
7404 Initialize cpplib properly if USE_CPPLIB. Put reserved words
7405 into the get_identifier table. Rewrite pragma handling to
7406 work with the registry. Move code to save tokens for later
7407 processing to spew.c.
7408
7409 * spew.c: Rewrite everything in terms of token streams instead
7410 of text. Move routines here from lex.c / input.c as
7411 appropriate. GC-mark trees hanging off the pending inlines
7412 chain.
7413
44835fdd
MM
74142000-09-06 Mark Mitchell <mark@codesourcery.com>
7415
7416 * NEWS: Mention that the named return value extension has been
7417 deprecated.
7418 * cp-tree.h (original_result_rtx): Define.
7419 (TREE_REFERENCE_EXPR): Remove.
7420 (DECL_VPARENT): Likewise.
7421 (pushdecl_nonclass_level): Likewise.
7422 (store_return_init): Likewise.
7423 (reinit_lang_specific): Likewise.
7424 (genrtl_named_return_value): Change prototype.
7425 * decl.c (original_result_rtx): Remove.
7426 (cp_finish_decl): Don't build DECL_STMTs for RESULT_DECLs.
7427 Do not generate RTL for local variables here.
7428 (store_return_init): Remove.
7429 * semantics.c (genrtl_named_return_value): Simplify. Fold in
7430 store_return_init.
7431 (finish_named_return_value): Adjust accordingly. Warn that this
7432 extension is deprecated.
7433 (lang_expand_stmt): Adjust call to genrtl_named_return_value.
7434
d7c4edd0
NS
74352000-09-06 Nathan Sidwell <nathan@codesourcery.com>
7436
7437 * pt.c (type_unification_real): Replace switch with if.
7438 (unify): Tsubst non-type parms before comparing.
7439
46e2747c
NS
74402000-09-06 Nathan Sidwell <nathan@codesourcery.com>
7441
7442 * error.c (dump_typename): New function, broken out of ...
7443 (dump_type): ... here. Use it.
7444 * typeck.c (same_type_p): Use cp_tree_equal for TYPENAME_TYPE.
7445
c833d2be
NS
74462000-09-06 Nathan Sidwell <nathan@codesourcery.com>
7447
7448 * init.c (build_offset_ref): Deal with namespace scoped
7449 TEMPLATE_ID_EXPRs.
7450
b1ce3eb2
NS
74512000-09-06 Nathan Sidwell <nathan@codesourcery.com>
7452
7453 * class.c (resolve_address_of_overloaded_function): Add
7454 explanation message.
7455 * decl.c (define_case_label): Reformat explanation.
7456 * decl2.c (finish_static_data_member_decl): Likewise.
7457 (grokfield): Likewise.
7458 * friend.c (do_friend): Likewise.
7459
11f53b6a
ZW
74602000-09-05 Zack Weinberg <zack@wolery.cumb.org>
7461
7462 * tree.c (walk_tree): Expose tail recursion.
7463 (walk_stmt_tree): New function.
7464 * cp-tree.h: Prototype walk_stmt_tree.
7465 * semantics.c (prune_unused_decls): Operate on SCOPE_STMTs not
7466 the BLOCKs directly. If a BLOCK has no variables after
7467 pruning, discard it.
7468 (finish_stmt_tree): Use walk_stmt_tree. No need to save and
7469 restore the line number.
7470
ee94fce6
MM
74712000-09-05 Mark Mitchell <mark@codesourcery.com>
7472
7473 * Makefile.in (CXX_TREE_H): Add dependency on HTAB_H.
7474 (pt.o): Remove dependency on HTAB_H.
7475 * cp-tree.h: Include hashtab.h.
7476 (walk_tree): Change prototype.
7477 (walk_tree_without_duplicates): New function.
7478 * decl.c (check_default_argument): Use it.
7479 * optimize.c (remap_decl): Adjust calls to walk_tree.
7480 (copy_body): Likewise.
7481 (expand_calls_inline): Likewise.
7482 (calls_setjmp_p): Use walk_tree_without_duplicates.
7483 * pt.c: Don't include hashtab.h.
7484 (for_each_template_parm): Use walk_tree_without_duplicates.
7485 * semantics.c (finish-stmt_tree): Likewise.
7486 (expand_body): Likewise.
7487 * tree.c (walk_tree): Add additional parameter.
7488 (walk_tree_without_duplicates): New function.
7489 (count_trees): Use it.
7490 (verify_stmt_tree): Adjust call to walk_tree.
7491 (find_tree): Use walk_tree_without_duplicates.
7492 (no_linkage_check): Likewise.
7493 (break_out_target_exprs): Adjust call to walk_tree.
7494 (cp_unsave): Likewise.
7495
a1281f45
KL
74962000-09-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
7497
7498 * cp-tree.def (BOUND_TEMPLATE_TEMPLATE_PARM): New tree code.
7499 (TEMPLATE_TEMPLATE_PARM): Adjust comment.
7500 * cp-tree.h (TYPE_BINFO): Adjust comment.
7501 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise.
7502 (TEMPLATE_TYPE_PARM_INDEX): Likewise.
7503 (IS_AGGR_TYPE): Use BOUND_TEMPLATE_TEMPLATE_PARM instead.
7504 (TYPE_TEMPLATE_INFO): Likewise.
7505 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): Likewise.
7506 * class.c (push_nested_class): Likewise.
7507 * decl.c (lookup_name_real): Likewise.
7508 (grokdeclarator): Likewise.
7509 (grok_op_properties): Likewise.
7510 (xref_tag): Likewise.
7511 (xref_basetypes): Likewise.
7512 * decl2.c (constructor_name_full): Likewise.
7513 (arg_assoc_template_arg): Add TEMPLATE_TEMPLATE_PARM case.
7514 (arg_assoc_type): Use BOUND_TEMPLATE_TEMPLATE_PARM instead.
7515 * error.c (dump_type): Split TEMPLATE_TEMPLATE_PARM case.
7516 (dump_type_prefix): Add BOUND_TEMPLATE_TEMPLATE_PARM.
7517 (dump_type_suffix): Likewise.
7518 * init.c (is_aggr_type): Use BOUND_TEMPLATE_TEMPLATE_PARM
7519 instead.
7520 (get_aggr_from_typedef): Likewise.
7521 * mangle.c (write_type): Split TEMPLATE_TEMPLATE_PARM case.
7522 (write_expression): Add BOUND_TEMPLATE_TEMPLATE_PARM.
7523 (write_template_parm): Likewise.
7524 (write_template_template_parm): Check tree code instead of
7525 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
0e5921e8 7526 * method.c (build_overload_nested_name): Add
a1281f45
KL
7527 BOUND_TEMPLATE_TEMPLATE_PARM.
7528 (process_overload_item): Split TEMPLATE_TEMPLATE_PARM case.
7529 * parse.y (bad_parm): Add BOUND_TEMPLATE_TEMPLATE_PARM.
7530 * pt.c (convert_template_argument): Check tree code instead of
7531 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
7532 (for_each_template_parm_r): Split TEMPLATE_TEMPLATE_PARM case.
7533 (for_each_template_parm): Adjust comment.
7534 (tsubst): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize.
7535 (tsubst_copy): Add BOUND_TEMPLATE_TEMPLATE_PARM.
7536 (unify): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize. Use
7537 template_args_equal to compare template template parameter cases.
7538 * ptree.c (print_lang_type): Add BOUND_TEMPLATE_TEMPLATE_PARM.
7539 * search.c (lookup_field_1): Use BOUND_TEMPLATE_TEMPLATE_PARM
7540 instead.
7541 * tree.c (copy_template_template_parm): Decide whether to create
7542 a TEMPLATE_TEMPLATE_PARM or BOUND_TEMPLATE_TEMPLATE_PARM node.
7543 (walk_tree): Add BOUND_TEMPLATE_TEMPLATE_PARM.
7544 (copy_tree_r): Likewise.
7545 * typeck.c (comptypes): Likewise. Check tree code instead of
7546 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
7547
c9672d45
ME
75482000-09-04 Mark Elbrecht <snowball3@bigfoot.com>
7549
7550 * decl.c (finish_function): Move the code for handling functions
7551 marked with the constructor and destructor attributes inside the
7552 expand_p block.
7553
67804825
NS
75542000-09-04 Nathan Sidwell <nathan@codesourcery.com>
7555
7556 * init.c (resolve_offset_ref): Deal with TEMPLATE_ID_EXPR.
7557
1bc0793e
NS
75582000-09-04 Nathan Sidwell <nathan@codesourcery.com>
7559
7560 * pt.c (lookup_template_class): Remove abort.
7561 * tree.c (get_type_decl): Allow error_mark_node.
7562
3338663b
NS
75632000-09-04 Nathan Sidwell <nathan@codesourcery.com>
7564
7565 * decl2.c (arg_assoc): Deal with COMPONENT_REFs inside
7566 TEMPLATE_ID_EXPRs.
7567
1b84dc37
MM
75682000-09-03 Mark Mitchell <mark@codesourcery.com>
7569
7570 * operators.def (ALIGNOF_EXPR, MAX_EXPR, MIN_EXPR): Change
c9672d45 7571 new ABI mangling.
1b84dc37 7572
9687f8f4
NS
75732000-09-01 Nathan Sidwell <nathan@codesourcery.com>
7574
7575 * parse.y (named_class_head): Check for TYPENAME_TYPE. Simplify
c9672d45 7576 union tag mismatch error reporting.
9687f8f4 7577
4f8025eb
NS
75782000-09-01 Nathan Sidwell <nathan@codesourcery.com>
7579
c9672d45 7580 * call.c (build_scoped_method_call): Check it is not a namespace.
4f8025eb 7581
495d26d6
JM
75822000-08-30 Jason Merrill <jason@redhat.com>
7583
7584 * cp-tree.h (LOCAL_CLASS_P): Use decl_function_context.
7585
7586 * tree.c (bot_manip): Check TREE_CONSTANT rather than
7587 !TREE_SIDE_EFFECTS. Call break_out_target_exprs and
7588 build_target_expr_with_type for the non-AGGR_INIT_EXPR case.
7589
7590 * decl.c (start_function): Always call make_function_rtl.
7591
7efcf466
ZW
75922000-08-29 Zack Weinberg <zack@wolery.cumb.org>
7593
495d26d6 7594 * semantics.c (prune_unused_decls): New function.
7efcf466
ZW
7595 (finish_stmt_tree): Call it via walk_tree.
7596
63ad61ed
ZW
75972000-08-29 Zack Weinberg <zack@wolery.cumb.org>
7598
7599 * class.c (build_secondary_vtable): Constify a char *.
7600 * decl.c (init_decl_processing): Initialize function_id_node,
7601 pretty_function_id_node, and func_id_node.
7602 * input.c (struct input_source): Constify 'str'.
7603 (feed_input): Constify first argument.
7604 * mangle.c (write_identifier): Constify argument.
7605 * pt.c (mangle_class_name_for_template): Constify argument.
7606
4361b41d
MM
76072000-08-29 Mark Mitchell <mark@codesourcery.com>
7608
7609 * typeck.c (mark_addressable): Remove code that pokes around in
7610 RTL.
7611
881c6935
JM
76122000-08-28 Jason Merrill <jason@redhat.com>
7613
7614 * lex.c (file_name_nondirectory): Move to toplev.c.
7615
7616 * cp-tree.h (LOCAL_CLASS_P): New macro.
7617 * class.c (finish_struct_1): Use it.
7618
f0f33848
AS
76192000-08-27 Alex Samuel <samuel@codesourcery.com>
7620
7621 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Remove unexplained voodoo.
7622 (write_encoding): Pass another argument to write_name.
7623 (write_name): Add ignore_local_scope parameter. Fix handling of
7624 local names.
7625 (write_nested_name): Use write_unqualified_name.
7626 (write_prefix): Likewise. Skip out on FUNCTION_DECLs.
7627 (write_template_prefix): Use write_unqualified_name.
7628 (write_component): Remove.
7629 (write_local_name): Add parameter. Use direct local entity to
7630 discriminator calculation.
0e5921e8 7631 (write_class_enum_type): Pass another argument to write_name.
f0f33848
AS
7632 (write_template_template_arg): Likewise.
7633 (make_guard_variable): Likewise.
0e5921e8 7634
94dfccd1
JM
76352000-08-27 Jason Merrill <jason@redhat.com>
7636
7637 * decl.c (pushdecl): Matching decls for local externs are found in
7638 the current level. Propagate linkage information from previous
7639 declarations.
7640
14fdf4b6
GDR
76412000-08-26 Gabriel Dos Reis <gdr@codesourcery.com>
7642
7643 * ir.texi (Expressions): Fix typo.
7644
b5232c64
GM
76452000-08-25 Greg McGary <greg@mcgary.org>
7646
7647 * tree.c (init_tree): Use ARRAY_SIZE.
7648
22a4158c
GDR
76492000-08-25 Gabriel Dos Reis <gdr@codesourcery.com>
7650
7651 * error.c (cp_tree_printer): Rework.
7652
f22967f3
MM
76532000-08-25 Mark Mitchell <mark@codesourcery.com>
7654
a0c182fe
MM
7655 * Make-lang.in (CXX_LIB2FUNCS): Remove cp-demangle.o and
7656 dyn-string.o.
7657 (CXX_LIB2SRCS): Remove cp-demangle.c and dyn-string.c.
7658 (cp-demangle.o): Remove target.
7659 (dyn-string.o): Likewise.
7660
f22967f3
MM
7661 * decl.c (grokfndecl): Require that `main' return an `int'.
7662 * mangle.c (write_encoding): Don't mangle return types for
7663 conversion functions.
7664
a1066c99
GDR
76652000-08-25 Gabriel Dos Reis <gdr@codesourcery.com>
7666
7667 * error.c (tree_formatting_info): New data type.
7668 (tree_being_formatted): New macro.
7669 (tree_formatting_flags): Likewise.
7670 (put_whitespace): Likewise.
7671 (print_tree_identifier): Likewise.
7672 (print_identifier): Likewise.
7673 (cp_tree_printer, print_function_argument_list, print_declaration,
7674 print_expression, print_function_declaration,
7675 print_function_parameter, print_type, print_cv_qualifier): New
0e5921e8 7676 functions.
a1066c99
GDR
7677 (init_error): Initialize lang_printer.
7678
3f2b640a
JM
76792000-08-24 Jason Merrill <jason@redhat.com>
7680
7681 * typeck.c (build_ptrmemfunc): Just reinterpret if there's no
7682 adjustment necessary.
7683
7ec09bf7
GM
76842000-08-24 Greg McGary <greg@mcgary.org>
7685
7686 * cp-tree.h (MAIN_NAME_P): Remove macro.
7687
2ab99c46
GDR
76882000-08-24 Gabriel Dos Reis <gdr@codesourcery.com>
7689
7690 * error.c (print_instantiation_context): Don't forget to flush the
7691 buffer.
7692
7def1251
JM
76932000-08-23 Jason Merrill <jason@redhat.com>
7694
7695 * typeck.c (build_ptrmemfunc): Save the input pmf.
7696
7697 * method.c (process_modifiers): Use same_type_p.
7698
94350948
MM
76992000-08-23 Mark Mitchell <mark@codesourcery.com>
7700
7701 * cp-tree.h (DECL_CLONED_FUNCTION_P): Check DECL_LANG_SPECIFIC.
7702 * mangle.c (write_function_type): Change prototype.
7703 (write_encoding): Don't mangle return types for
7704 constructors or destructors.
7705 (write_type): Adjust call to write_function_type.
7706 * pt.c (instantiate_template): Instantiate alternate entry points
7707 when instantiating the main function.
0e5921e8 7708
a64e7329
GDR
77092000-08-23 Gabriel Dos Reis <gdr@codesourcery.com>
7710
7711 * error.c (cp_print_error_function): Don't use embedded '\n' in
0e5921e8 7712 output_printf.
a64e7329 7713
a72462a4
GDR
77142000-08-23 Gabriel Dos Reis <gdr@codesourcery.com>
7715
7716 * decl.c (init_decl_processing): Remove bogus initialization.
7717 * error.c (lang_print_error_function): Restore here.
0e5921e8
ZW
7718 (init_error): Initialize print_error_function.
7719
3add6264
TP
77202000-08-22 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
7721
7722 * decl2.c (arg_assoc): Revert my 2000-08-11 change.
7723
cb753e49
GDR
77242000-08-22 Gabriel Dos Reis <gdr@codesourcery.com>
7725
7726 * Makefile.in (error.o): Depends on diagnostic.h
7727
7728 * cp-tree.h (problematic_instantiation_changed,
7729 record_last_problematic_instantiation, current_instantiation,
7730 print_instantiation_context): Declare.
7731 (maybe_print_template_context): Remove.
7732
7733 * decl.c (init_decl_processing): Set print_error_function to NULL.
7734 (lang_print_error_function): Remove, since we're using a new
7735 machinery.
7736
7737 * error.c: #include diagnostic.h
7738 (function_category): New function.
7739 (cp_diagnostic_starter): Likewise.
7740 (cp_diagnostic_finalizer): Likewise.
7741 (cp_print_error_function): Likewise.
7742 (maybe_print_instantiation_context): Likewise.
7743 (print_instantiation_full_context): Likewise.
7744 (print_instantiation_partial_context): Likewise.
7745 (print_instantiation_context): Define.
7746 (init_error): Initialize diagnostic pager and finalizer.
7747
7748 * pt.c (problematic_instantiation_changed): Define.
7749 (record_last_problematic_instantiation): Likewise.
7750 (current_instantiation): Likewise.
7751 (maybe_print_template_context): Remove.
7752 (print_template_context): Likewise.
7753 (current_tinst_level): Make static to reflect Brendan Kehoe's
7754 change of 1995-04-13.
0e5921e8
ZW
7755 (push_tinst_level): Call print_instantiation_context.
7756
05a3d06e 77572000-08-21 Nix <nix@esperi.demon.co.uk>
0e5921e8 7758
05a3d06e
N
7759 * lang-specs.h: Do not process -o or run the assembler if
7760 -fsyntax-only.
7761
93e2382f
JM
77622000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
7763
7764 * decl.c (flag_hosted, flag_noniso_default_format_attributes): New
7765 variables.
7766 * decl2.c (lang_decode_option): Disable gettext attributes for
7767 -ansi.
7768
24805e80
GDR
77692000-08-21 Gabriel Dos Reis <gdr@codesourcery.com>
7770
7771 * lex.c (lang_init_options): Default diagnostic message maximum
7772 length to 80, when line-wrapping.
7773
b485e15b
MM
77742000-08-20 Mark Mitchell <mark@codesourcery.com>
7775
7776 * class.c (build_vtbl_initializer): Clear the entire
7777 vtbl_init_data. Start keeping track of the functions for which we
7778 have created vcall offsets here.
7779 (dfs_build_vcall_offset_vtbl_entries): Remove.
7780 (build_vcall_offset_vtbl_entries): Reimplement.
7781 (add_vcall_offset_vtbl_entries_r): New function.
7782 (add_vcall_offset_vtbl_entries_1): Likewise. Tweak logic for
7783 computing when vcall offsets are necessary.
7784
2ae7bada
NS
77852000-08-18 Nathan Sidwell <nathan@codesourcery.com>
7786
7787 * decl.c (member_function_or_else): Use cp_error ... %T.
7788 (grokdeclarator): Likewise.
7789 (start_method): Likewise.
0e5921e8 7790 * friend.c (make_friend_class): Use cp_pedwarn ... %T.
2ae7bada 7791
7a8b1375
NS
77922000-08-18 Nathan Sidwell <nathan@codesourcery.com>
7793
7794 * decl2.c (grokfield): Set CLASSTYPE_GOT_SEMICOLON on class
0e5921e8 7795 TYPE_DECLs.
7a8b1375 7796
19420d00
NS
77972000-08-18 Nathan Sidwell <nathan@codesourcery.com>
7798
7799 * cp-tree.h (PTRMEM_OK_P): New macro.
7800 (itf_ptrmem_ok): New enumeration value.
7801 * class.c (resolve_address_of_overloaded_function): Add PTRMEM
7802 argument. Diagnose implicit pointer to member.
7803 (instantiate_type): Don't diagnose implicit pointer to member
7804 here. Pass itf_ptrmem_ok if ok. Adjust calls to
7805 resolve_address_of_overloaded_function.
7806 * init.c (build_offset_ref): Set PTRMEM_OK_P.
7807 (resolve_offset_ref): Don't diagnose implicit pointer to member here.
7808 * semantics.c (finish_parenthesized_expr): Clear OFFSET_REFs here.
7809 * typeck.c (build_x_unary_op): Calculate PTRMEM_OK_P.
7810 (build_unary_op): Deal with single non-static member in
7811 microsoft-land.
7812
66081283
NS
78132000-08-18 Nathan Sidwell <nathan@codesourcery.com>
7814
7815 * decl2.c (arg_assoc_type): Cope with TYPENAME_TYPE.
7816
fa40aa12
NS
78172000-08-18 Nathan Sidwell <nathan@codesourcery.com>
7818
7819 * cp-tree.h (enum_name_string): Remove prototype.
7820 (report_case_error): Remove prototype.
7821 * cp/typeck2.c (enum_name_string): Remove.
7822 (report_case_error): Remove.
7823 * error.c (dump_expr): Deal with enum values directly.
7824 Correctly negate integer constant.
7825
d13b34e9
NS
78262000-08-17 Nathan Sidwell <nathan@codesourcery.com>
7827
7828 * inc/cxxabi.h (__cxa_vec_new2, __cxa_vec_new3): Declare.
7829 (__cxa_vec_delete2, __cxa_vec_delete3): Declare.
7830 * vec.cc (__cxa_vec_new2, __cxa_vec_new3): Implement.
7831 (__cxa_vec_delete2, __cxa_vec_delete3): Implement.
7832 (__cxa_vec_new): Use __cxa_vec_new2.
7833 (__cxa_vec_delete): Use __cxa_vec_delete2.
7834
2f1b80af
NS
78352000-08-17 Nathan Sidwell <nathan@codesourcery.com>
7836
7837 * vec.cc (__cxa_vec_new): Set "C" linkage.
7838 (__cxa_vec_ctor): Likewise.
7839 (__cxa_vec_cctor): Likewise.
7840 (__cxa_vec_dtor): Likewise.
7841 (__cxa_vec_delete): Likewise.
7842 * inc/cxxabi.h (__cxa_vec_new): Set "C" linkage.
7843 (__cxa_vec_ctor): Likewise.
7844 (__cxa_vec_cctor): Likewise.
7845 (__cxa_vec_dtor): Likewise.
7846 (__cxa_vec_delete): Likewise.
7847
105d8e1f
NS
78482000-08-17 Nathan Sidwell <nathan@codesourcery.com>
7849
7850 * class.c (instantiate_type): Reinstate local variable
7851 deleted in previous change.
0e5921e8 7852
f1819d9a
NS
7853 * cvt.c (cp_convert_to_pointer): Pass itf_complain, not
7854 itf_no_attributes.
105d8e1f 7855
5e76004e
NS
78562000-08-17 Nathan Sidwell <nathan@codesourcery.com>
7857
7858 * cp-tree.h (instantiate_type_flags): New enumeration.
7859 (instantiate_type): Change parameter.
7860 * class.c (instantiate_type): Adjust prototype. Adjust.
7861 * call.c (standard_conversion): Adjust instantiate_type call.
7862 (reference_binding): Likewise.
7863 (build_op_delete_call): Likewise.
7864 (convert_like_real): Likewise.
7865 * cvt.c (cp_convert_to_pointer): Likewise.
7866 (convert_to_reference): Likewise.
7867 * pt.c (convert_nontype_argument): Likewise.
7868 * typeck.c (build_binary_op): Likewise.
7869 (build_ptrmemfunc): Likewise.
7870 (convert_for_assignment): Likewise.
7871
4b054b80
NS
78722000-08-17 Nathan Sidwell <nathan@codesourcery.com>
7873
7874 * cp-tree.h (CPTR_AGGR_TAG): New global tree node.
7875 (current_aggr): Define.
7876 * decl.c (grokdeclarator): Make sure a friend class is an
7877 elaborated type specifier.
7878 * parse.y (current_aggr): Remove static definition.
7879 (cp_parse_init): Adjust.
7880 (structsp): Clear and restore current_aggr.
7881 (component_decl_list): Clear current_aggr.
0e5921e8 7882
4b054b80
NS
7883 * error.c (dump_type, case TYPENAME_TYPE): Don't emit the
7884 aggregate tag on the typename's context.
0e5921e8 7885
321cba97
NS
7886 * pt.c (tsubst_friend_class): Return error_mark_node, if
7887 parms becomes NULL.
7888 (instantiate_class_template): Ignore error_mark_node friend types.
4b054b80 7889
08aead78
NS
78902000-08-14 Nathan Sidwell <nathan@codesourcery.com>
7891
7892 * cvt.c (warn_ref_binding): New static function, broken out of ...
0e5921e8 7893 (convert_to_reference): ... here. Use it.
08aead78 7894
fa1f3ebc
KL
78952000-08-11 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu>
7896
7897 * parse.y (template_arg): Add rule for template qualified with
7898 global scope.
7899
9845b52b
TP
79002000-08-11 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
7901
7902 * decl2.c (add_function): Reorganize.
7903 (arg_assoc): Do not consider function template decls.
7904
e69c8072
JM
79052000-08-11 Jason Merrill <jason@redhat.com>
7906
7907 * decl.c (lookup_name_real): Don't forget the TYPENAME_TYPE we're
7908 looking inside.
7909
5c1e5476
NS
79102000-08-11 Nathan Sidwell <nathan@codesourcery.com>
7911
7912 * cp-tree.h (resolve_scope_to_name): Remove unused prototype.
7913 (lookup_nested_tag): Likewise.
0e5921e8 7914
5c1e5476
NS
7915 * decl2.c (grokfield): Fix comment to reflect many types of _DECLs
7916 can be produced.
7917
5426aa7f
NS
79182000-08-11 Nathan Sidwell <nathan@codesourcery.com>
7919
7920 * parse.y (named_complex_class_head_sans_basetype): Remove
7921 always true if.
7922
fd037e0d
NS
79232000-08-11 Nathan Sidwell <nathan@codesourcery.com>
7924
7925 * decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Build
7926 explicit TEMPLATE_ID_EXPR args.
7927 (build_expr_from_tree, case CALL_EXPR): Likewise.
7928
73ae5c34
NS
79292000-08-11 Nathan Sidwell <nathan@codesourcery.com>
7930
7931 * decl.c (check_tag_decl): Diagnose typename's which don't
7932 declare anything.
7933
aa54df09
NS
79342000-08-10 Nathan Sidwell <nathan@codesourcery.com>
7935
7936 * init.c (build_aggr_init): Reject bogus array initializers
7937 early.
7938
7e8dad18
NS
79392000-08-09 Nathan Sidwell <nathan@codesourcery.com>
7940
7941 * rtti.c (build_dynamic_cast_1): Set "C" linkage for new abi
7942 runtime.
7943 * cp/tinfo.cc (__dynamic_cast): Likewise.
0e5921e8 7944 * cp/inc/cxxabi.h (__dynamic_cast): Likewise.
7e8dad18 7945
0f586b9b
NS
79462000-08-09 Nathan Sidwell <nathan@codesourcery.com>
7947
7948 * cvt.c (convert_to_pointer_force): Fix error message when
0e5921e8 7949 attempting to cast from ambiguous base.
0f586b9b 7950
08e72a19
JM
79512000-08-08 Jason Merrill <jason@redhat.com>
7952
7953 * pt.c (tsubst_aggr_type): Bail if creating the argvec fails.
7954 (tsubst_template_arg_vector): Likewise.
7955
7956 * decl2.c (build_anon_union_vars): Choose the largest field; don't
7957 assume that one will be as large as the union.
7958
0811ea8f
KH
79592000-08-07 Kazu Hirata <kazu@hxi.com>
7960
7961 * cp-tree.h (CLASSTYPE_HAS_PRIMARY_BASE_P): Fix a comment typo.
7962 * decl.c (pop_labels): Likewise.
7963
f9fcf62b
JO
79642000-08-04 Jeffrey Oldham <oldham@codesourcery.com>
7965
7966 * inc/cxxabi.h (__pbase_type_info): Changed member names to match
7967 specifications.
7968 (__pointer_to_member_type_info): Likewise.
7969 (__base_class_info): Likewise.
7970 (__class_type_info): Likewise.
7971 (__si_class_type_info): Likewise.
7972 (__vmi_class_type_info): Likewise.
7973 * tinfo.cc (__si_class_type_info::__do_find_public_src):
7974 Changed member names to match specifications.
7975 (__vmi_class_type_info::__do_find_public_src): Likewise.
7976 (__si_class_type_info::__do_dyncast): Likewise.
7977 (__vmi_class_type_info::__do_dyncast): Likewise.
7978 (__si_class_type_info::__do_upcast): Likewise.
7979 (__vmi_class_type_info::__do_upcast): Likewise.
7980 * tinfo2.cc (__pbase_type_info::__do_catch): Likewise.
7981 (__pbase_type_info::__pointer_catch): Likewise.
7982 (__pointer_type_info::__pointer_catch): Likewise.
7983 (__pointer_to_member_type_info::__pointer_catch): Likewise.
7984
a36556a8
ZW
79852000-08-04 Zack Weinberg <zack@wolery.cumb.org>
7986
0e5921e8
ZW
7987 * Make-lang.in (cc1plus): Depend on $(BACKEND), not stamp-objlist.
7988 * Makefile.in: Add C_OBJS, BACKEND; delete OBJS, OBJDEPS.
7989 (cc1plus): Link with $(BACKEND) and $(C_OBJS).
a36556a8 7990
452a394b
MM
79912000-08-04 Mark Mitchell <mark@codesourcery.com>
7992
7993 * cp-tree.h (add_method): Change prototype.
7994 * class.c (add_method): Remove FIELDS parameter. Add ERROR_P.
7995 Don't double the size of the method vector in the error case.
7996 (handle_using_decl): Adjust call to add_method.
7997 (add_implicitly_declared_members): Likewise.
7998 (clone_function_decl): Likewise.
7999 * decl2.c (check_classfn): Likewise.
8000 * semantics.c (finish_member_declaration): Likewise.
0e5921e8 8001
b8458e3e
JM
80022000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
8003
8004 * decl.c (flag_isoc94): New variable.
8005
a1bcc528
JM
80062000-08-02 Jason Merrill <jason@redhat.com>
8007
8008 * pt.c (do_type_instantiation): Add complain parm; don't complain
8009 if called recursively.
8010 * cp-tree.h, parse.y: Adjust.
8011
50e60bc3
ZW
80122000-08-02 Zack Weinberg <zack@wolery.cumb.org>
8013
eae51189
ZW
8014 * decl2.c: Silently ignore -Wstrict-prototypes; warn about
8015 -Wno-strict-prototypes.
8016
37620334
ZW
8017 * g++spec.c: Adjust type of second argument to
8018 lang_specific_driver, and update code as necessary.
8019
50e60bc3
ZW
8020 * cp-tree.h: Don't prototype min_precision here.
8021 (my_friendly_assert): Cast expression to void.
8022 * semantics.c (do_poplevel): Initialize scope_stmts.
8023
3f954fc3
MM
80242000-08-02 Mark Mitchell <mark@codesourcery.com>
8025
8026 * cp-tree.h (DECL_NEEDED_P): Tweak.
8027
ab4fa7ed
JM
80282000-07-28 Jason Merrill <jason@redhat.com>
8029
8030 * lang-specs.h: Use %i in rule for .ii files.
8031
4871239e
ZW
80322000-07-31 Zack Weinberg <zack@wolery.cumb.org>
8033
8034 * lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
8035
911a71a7
MM
80362000-07-30 Mark Mitchell <mark@codesourcery.com>
8037
8038 Allow indirect primary bases.
8039 * cp-tree.h (struct lang_type): Remove vfield_parent. Add
8040 primary_base.
8041 (CLASSTYPE_VFIELD_PARENT): Remove.
8042 (CLASSTYPE_PRIMARY_BINFO): Reimplement.
8043 (BINFO_PRIMARY_BINFO): Remove.
8044 (CLASSTYPE_HAS_PRIMARY_BASE_P): Reimplement.
8045 (BINFO_VBASE_PRIMARY_P): Likewise.
8046 (BINFO_PRIMARY_BASE_OF): New macro.
8047 (BINFO_INDIRECT_PRIMARY_P): Likewise.
8048 (get_primary_binfo): New function.
8049 * decl.c (lang_mark_tree): Make lang_type::primary_base.
8050 * class.c (vcall_offset_data_s): Rename to ...
8051 (vtbl_init_data_s): ... this. Rename primary_p to primary_vtbl_p,
8052 and add ctor_vtbl_p.
8053 (get_derived_offset): Use get_primary_binfo.
8054 (dfs_mark_primary_bases): Adjust handling of virtual primary
8055 bases.
8056 (mark_primary_bases): Likewise.
8057 (set_primary_base): Take a binfo, not an integer, as a
8058 representation of the primary base.
8059 (indirect_primary_base_p): Remove.
8060 (determine_primary_base): Adjust for indirect primary bases.
8061 (dfs_find_final_overrider): Fix typo in coment.
8062 (update_vtable_entry_for_fn): Use get_primary_binfo.
8063 (layout_nonempty_base_or_field): Tweak.
8064 (build_base_fields): Adjust for new primary base semantics.
8065 (dfs_propagate_binfo_offsets): Remove.
8066 (propagate_binfo_offsets): Rewrite.
8067 (dfs_set_offset_for_shared_vbases): Remove.
8068 (layout_virtual_bases): Don't use it.
8069 (layout_class_type): Set CLASSTYPE_SIZE correctly under the new
8070 ABI.
8071 (finish_struct_1): Set CLASSTYPE_PRIMARY_BINFO, not
8072 CLASSTYPE_VFIELD_PARENT.
8073 (dfs_get_primary_binfo): New function.
8074 (get_primary_binfo): Likewise.
8075 (dump_class_hierarchy_r): Tweak printing of primary bases.
8076 (build_vtbl_initializer): Fix typo in comments. Use
8077 vtbl_init_data.
8078 (build_vcall_and_vbase_vtbl_entries): Likewise.
8079 (build_vbaes_offset_vtbl_entries): Likewise.
8080 (dfs_build_vcall_offset_vtbl_entries): Adjust setting of
8081 BV_VCALL_INDEX to handle indirect primary bases.
8082 (build_vcall_offset_vtbl_entries): Use vtbl_init_data.
8083 (build_rtti_vtbl_entries): Likewise.
8084 * search.c (get_shared_vbase_if_not_primary): Tweak.
8085 (find_vbase_instance): Likewise.
8086 (binfo_for_vtable): Simplify.
8087 * tree.c (unshare_base_binfos): Clear BINFO_PRIMARY_BASE_OF.
8088 (make_binfo): Make it have 11 entries.
0e5921e8 8089
722bed0f
AS
80902000-07-30 Alex Samuel <samuel@codesourcery.com>
8091
8092 * mangle.c (DECL_TEMPLATE_ID_P): Remove.
8093 (CLASSTYEP_TEMPLATE_ID_P): Check template info, and context when
8094 ascertaining primaryness.
8095 (G): Remove template_args.
8096 (decl_is_template_id): New function.
8097 (write_encoding): Use decl_is_template_id.
8098 (write_name): Likewise. Handle type_decls. Get main variant of
8099 type decls.
8100 (write_nested_name): Likewise.
8101 (write_prefix): Likewise.
8102 (write_template_prefix): Likewise.
8103 (write_special_name_constructor): Remove defunct production from
8104 comment.
8105 (write_bare_function_type): Remove comment about absent parameter.
8106 (write_template_template_arg): Add missing grammar production to
8107 comment.
8108
9076e292
JM
81092000-07-27 Jason Merrill <jason@redhat.com>
8110
8111 * decl.c (duplicate_decls): If common_type produces a non-typedef
8112 type for a typedef, just use the old type.
8113
b2244c65
MM
81142000-07-27 Mark Mitchell <mark@codesourcery.com>
8115
8116 * cp-tree.h (function_depth): Declare.
8117 (verify_stmt_tree): Likewise.
8118 (find_tree): Likewise.
8119 * decl.c (function_depth): Give it external linkage.
8120 * optimize.c (optimize_function): Increment and decrement it.
8121 * tree.c (verify_stmt_tree_r): New function.
8122 (verify_stmt_tree): Likewise.
8123 (find_tree_r): Likewise.
8124 (find_tree): Likewise.
8125
62e3bf54
JM
81262000-07-27 Jason Merrill <jason@redhat.com>
8127
9076e292
JM
8128 * pt.c (for_each_template_parm_r, case RECORD_TYPE): Use
8129 TYPE_PTRMEMFUNC_P.
8130 * cp-tree.h (TYPE_TEMPLATE_INFO): Check for TYPE_LANG_SPECIFIC.
62e3bf54 8131
5a728aca
MM
81322000-07-26 Mark Mitchell <mark@codesourcery.com>
8133
8134 * decl.c (start_cleanup_fn): Mark the function as `inline'.
8135 * decl2.c (get_guard): Call cp_finish_decl, not
8136 rest_of_decl_compilation, for local guards.
8137 * lex.c (do_identifier): Remove unused variable.
8138
6a1fa5f9
ME
8139Wed Jul 26 15:05:51 CEST 2000 Marc Espie <espie@cvs.openbsd.org>
8140
8141 * parse.y: Add missing ';'.
8142
0c10a805
MM
81432000-07-26 Mark Mitchell <mark@codesourcery.com>
8144
8145 * parse.y (empty_parms): Use `()', not `(...)', when in the scope
8146 of `extern "C++"'.
8147
8b27e9ef
NS
81482000-07-25 Nathan Sidwell <nathan@codesourcery.com>
8149
8150 Kill strict_prototype. Backwards compatibility only for
8151 non NO_IMPLICIT_EXTERN_C systems.
8152 * cp-tree.h (flag_strict_prototype): Remove.
8153 (strict_prototype): Remove.
8154 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove.
8155 * decl.c (maybe_push_to_top_level): Adjust.
8156 (pop_from_top_level): Adjust.
8157 (decls_match): Only allow sloppy parm matching for ancient
8158 system headers.
8159 (init_decl_processing): Adjust.
8160 (grokdeclarator): Adjust.
8161 * decl2.c (flag_strict_prototype): Remove.
8162 (strict_prototype): Remove.
8163 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove.
8164 (lang_f_options): Remove "strict-prototype".
8165 (unsupported-options): Add "strict-prototype".
8166 * lex.c (do_identifier): Adjust.
8167 (do_scoped_id): Adjust.
8168 * parse.y (empty_parms): Adjust.
8169 * class.c (push_lang_context): Adjust.
8170 (pop_lang_context): Adjust.
8171 * typeck.c (comp_target_parms): Adjust.
8172
c3783399
NS
81732000-07-25 Nathan Sidwell <nathan@codesourcery.com>
8174
8175 * decl.c (poplevel): Deal with anonymous variables at for scope.
8176 (maybe_inject_for_scope_var): Likewise.
8177
a7023245
ZW
81782000-07-25 Zack Weinberg <zack@wolery.cumb.org>
8179
8180 * decl.c: Remove all signal handling code, now done in toplev.c.
8181
95ee998c
MM
81822000-07-23 Mark Mitchell <mark@codesourcery.com>
8183
8184 * decl.c (make_rtl_for_nonlocal_decl): Rework.
8185
8186 * pt.c (lookup_template_class): Ensure that TYPE_CONTEXT is set
8187 correctly.
8188
1b493b81
ZW
81892000-07-20 Zack Weinberg <zack@wolery.cumb.org>
8190
8191 * cp-tree.h: Use __FUNCTION__ not __PRETTY_FUNCTION__.
8192 Define my_friendly_assert and my_friendly_abort as macros
8193 which may call friendly_abort. Prototype friendly abort, not
8194 my_friendly_abort or my_friendly_assert.
8195 * decl.c (signal_catch): Report the signal caught in the error
8196 message. Call fatal directly.
8197 * typeck2.c (ack, my_friendly_assert): Delete.
8198 (my_friendly_abort): Rename to friendly_abort. Expect file,
8199 line, and function parameters. Report the abort code, then
8200 call fancy_abort. Do not mask an abort if errors have
8201 already occurred.
8202
a306451c
NS
82032000-07-18 Nathan Sidwell <nathan@codesourcery.com>
8204
8205 * typeck.c (comp_target_parms): Remove obsolete parameter.
8206 (comp_target_types): Adjust.
8207
f49fad00
JM
82082000-07-17 Jason Merrill <jason@redhat.com>
8209
8210 * typeck.c (mark_addressable): Never set TREE_USED.
8211 * call.c (build_call): Don't abort on calls to library functions
8212 that have been declared normally.
8213
8214 * typeck.c (build_binary_op): Fix grammar in warning.
8215
8216 * exception.cc (__eh_free): Fix prototype.
8217
8218 * decl2.c (finish_decl_parsing): Handle TEMPLATE_ID_EXPR.
8219
0e5921e8 8220 * decl.c (pushdecl): Handle seeing an OVERLOAD in
f49fad00
JM
8221 IDENTIFIER_NAMESPACE_VALUE.
8222
69690d98
MM
82232000-07-16 Mark Mitchell <mark@codesourcery.com>
8224
8225 * cp-tree.h (THUNK_VCALL_OFFSET): Update documentation.
8226 * method.c (use_thunk): Correct handling of vcall offsets.
8227
bfbbc080
ZW
82282000-07-14 Zack Weinberg <zack@wolery.cumb.org>
8229
8230 * .cvsignore: parse.h and parse.c have no cp- prefix.
8231
83a90717
MM
82322000-07-13 Mark Mitchell <mark@codesourcery.com>
8233
8234 * .cvsignore: New file.
8235
ea414c97
ZW
82362000-07-13 Zack Weinberg <zack@wolery.cumb.org>
8237
8238 * lang-specs.h: Use the new named specs. Remove unnecessary braces.
8239
792abd35
MM
82402000-07-12 Mark Mitchell <mark@codesourcery.com>
8241
8242 * Makefile.in ($(PARSE_H)): Depend directly on parse.y.
8243 * parse.c: Remove.
8244 * parse.h: Likewise.
8245
72a50ab0
MM
82462000-07-11 Mark Mitchell <mark@codesourcery.com>
8247
8248 * class.c (layout_class_type): Add pointers to virtual bases after
8249 base classes under the old ABI.
8250
0dfdeca6
BC
82512000-07-10 Benjamin Chelf <chelf@codesourcery.com>
8252
8253 * semantics.c (finish_for_stmt): Remove call to emit_line_note.
8254 (finish_continue_stmt): Likewise.
8255 (begin_for_stmt): Remove call to note_level_for_for.
8256 (finish_goto_stmt): Change call from build_min_nt
8257 to build_stmt.
8258 (finish_expr_stmt): Likewise.
8259 (begin_if_stmt): Likewise.
8260 (begin_while_stmt): Likewise.
8261 (finish_while_stmt): Likewise.
8262 (finish_return_stmt): Likewise.
8263 (begin_for_stmt): Likewise.
8264 (finish_for_stmt): Likewise.
8265 (finish_break_stmt): Likewise.
8266 (begin_switch_stmt): Likewise.
8267 (finish_case_label): Likewise.
8268 (genrtl_try_block): Likewise.
8269 (begin_try_block): Likewise.
8270 (begin_handler): Likewise.
8271 (begin_compound_stmt): Likewise.
8272 (finish_asm_stmt): Likewise.
8273 (finish_label_stmt): Likewise.
8274 (add_decl_stmt): Likewise.
8275 (finish_subobject): Likewise.
8276 (finish_decl_cleanup): Likewise.
8277 (finish_named_return_value): Likewise.
8278 (setup_vtbl_ptr): Likewise.
8279 (add_scope_stmt): Likewise.
8280 * decl.c (finish_constructor_body): Likewise.
8281 (finish_destructor_body): Likewise.
8282 * optimize.c (copy_body_r): Likewise.
8283 (initialize_inlined_parameters): Likewise.
8284 (declare_return_variable): Likewise.
8285 (expand_call_inline): Likewise.
0e5921e8 8286
f12eef58
JJ
82872000-07-10 Jakub Jelinek <jakub@redhat.com>
8288
8289 * semantics.c (expand_body): Sync interface information
8290 at the end of function body expansion.
8291
2bb5d995
JM
82922000-07-09 Jason Merrill <jason@redhat.com>
8293
8294 * init.c (build_new_1): Bail early if the call to new fails.
8295
0e5921e8 8296 * decl.c (compute_array_index_type): Check specifically for
2bb5d995
JM
8297 an INTEGER_CST, not just TREE_CONSTANT.
8298
0e5921e8 8299 * decl.c (duplicate_decls): Don't call duplicate_decls on
2bb5d995
JM
8300 the DECL_TEMPLATE_RESULT.
8301 (decls_match): Return 0 if the DECL_TEMPLATE_RESULTs have different
8302 codes.
8303
8304 * error.c (dump_template_bindings): Don't crash if we had an
8305 invalid argument list.
8306
8307 * typeck.c (c_expand_start_case): Do narrowing here.
8308 * semantics.c (finish_switch_cond): Not here.
8309
83102000-07-09 Hidvegi Zoli <hzoli@austin.ibm.com>
8311
8312 * parse.y (asm_clobbers): Do string concatenation.
8313
089acd57
MM
83142000-07-09 Mark Mitchell <mark@codesourcery.com>
8315
8316 * decl.c (pushtag): Don't put local classes in template functions
8317 on the local_classes list.
8318
83192000-07-04 Scott Snyder <snyder@fnal.gov>
8320
8321 * decl2.c (get_guard): Add missing return for old ABI local
8322 variable case.
8323
7b019c19
MM
83242000-07-09 Mark Mitchell <mark@codesourcery.com>
8325
8326 * cp-tree.h (char_type_p): New function.
8327 * decl.c (init_decl_processing): Don't initialize
8328 signed_wchar_type_node or unsigned_wchar_type_node.
8329 (complete_array_type): Handle brace-enclosed string-constants.
8330 * rtti.c (emit_support_tinfos): Remove #if 0'd code.
8331 * tree.c (char_type_p): New function.
8332 * typeck2.c (digest_init): Use char_type_p.
8333
a5f1c5f8
NS
83342000-07-06 Nathan Sidwell <nathan@codesourcery.com>
8335
8336 * pt.c (tsubst): Don't layout type, if it's error_mark.
8337
84e5ca0f
NS
83382000-07-06 Nathan Sidwell <nathan@codesourcery.com>
8339
8340 * pt.c (instantiate_pending_templates): Reset template level.
8341
ab785305
JM
83422000-07-05 Jason Merrill <jason@redhat.com>
8343
8344 * call.c (joust): Don't complain about `operator char *()' beating
8345 `operator const char *() const'.
8346
90418208
JM
83472000-07-04 scott snyder <snyder@fnal.gov>
8348 Jason Merrill <jason@redhat.com>
8349
0e5921e8 8350 * repo.c (repo_get_id): Handle the case where a class with virtual
90418208
JM
8351 bases has a null TYPE_BINFO_VTABLE.
8352
83532000-07-04 Kevin Buhr <buhr@stat.wisc.edu>
8354 Jason Merrill <jason@redhat.com>
8355
8356 * parse.y (member_init): Just pass in the type.
8357 * init.c (expand_member_init): Handle getting a type.
8358
8359