]> gcc.gnu.org Git - gcc.git/blame - gcc/cp/ChangeLog
postreload.c (reload_cse_simplify_set): Call cselib_lookup earlier.
[gcc.git] / gcc / cp / ChangeLog
CommitLineData
2f54a1db
GB
12003-06-26 Giovanni Bajo <giovannibajo@libero.it>
2
3 PR c++/8266
4 * pt.c (check_explicit_specialization): When looking up a
5 template function from an identifier outside class-scope, bind
6 it to CP_DECL_CONTEXT.
7
3fe18f1d
MM
82003-06-25 Mark Mitchell <mark@codesourcery.com>
9
e80706c4
MM
10 PR c++/10990
11 * search.c (lookup_base_r): Rely on accessible_p, rather than
12 trying to emulate that logic here.
13
3fe18f1d
MM
14 PR c++/10931
15 * call.c (convert_like): Pass issue_conversion_warnings.
16 (convert_like_with_context): Likewise.
17 (convert_like_real): Add issue_conversion_warnings parameter.
18 (perform_direct_initialization_if_possible): New function.
19 * cp-tree.h (perform_direct_initialization_if_possible): Declare it.
20 * typeck.c (check_for_casting_away_constness): New function.
21 (build_static_cast): Rewrite.
22
6df5158a
NS
232003-06-24 Nathan Sidwell <nathan@codesourcery.com>
24
25 * call.c (enforce_access): Assert we get a binfo.
26 (build_op_delete_call): Pass a binfo to
27 perform_or_defer_access_check.
28 * class.c (alter_access): Likewise.
29 * decl.c (make_typename_type): Likewise.
30 (make_unbound_class_template): Likewise.
31 * lex.c (do_identifier): Likewise.
32 * method.c (hack_identifier): Likewise.
33 * parser.c (cp_parser_lookup_name): Likewise.
34 * search.c (lookup_member): Likewise. Move IDENTIFIER_CLASS_VALUE
35 test.
36 * semantics.c (finish_non_static_data_member): Likewise.
37 (perform_or_defer_access_check): Expect a binfo.
38 * typeck.c (comptypes): Expect types.
39
40 * mangle.c (find_substitution): Don't pass a non-type to same_type_p
41 * friend.c (make_friend_class): Likewise.
42 * pt.c (check_default_tmpl_args): Likewise.
43 (lookup_template_class): Likewise.
44
cebebe72
JH
45Tue Jun 24 15:30:05 CEST 2003 Jan Hubicka <jh@suse.cz>
46
47 * method.c (thunk_labelno): Move outside ifdef block to make garbage
48 collector happy.
49
d35543c0
JH
50Tue Jun 24 13:52:34 CEST 2003 Jan Hubicka <jh@suse.cz>
51
52 * class.c (build_vtable): Make vtables.
53 * cp-tree.h (DECL_VTABLE_OR_VTT_P): New macro.
54 * decl2.c (output_vtable_inherit): Rename to ...
55 (prepare_assemble_variable): ... this one; change interface.
56 (maybe_emit_vtables): Do not call output_vtable_inherit.
57 * cp-lang.c (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): Define.
58 * cp-tree.h (prepare_assemble_variable): New.
59
d46c570d
AP
602003-06-23 Andrew Pinski <pinskia@physics.uc.edu>
61
62 * method.c: add prototype for make_alias_for_thunk.
63 (thunk_labelno, make_alias_for_thunk): only define
64 if ASM_OUTPUT_DEF is defined.
65
89ce1c8f
JJ
662003-06-23 Jakub Jelinek <jakub@redhat.com>
67
68 * method.c (thunk_labelno): New variable.
69 (make_alias_for_thunk): New function.
70 (use_thunk): Use it if defined ASM_OUTPUT_DEF. Put the thunk
71 into the same section as the function it is calling.
72 Include gt-cp-method.h.
73 * Make-lang.in (gt-cp-method.h): Depend on s-gtype.
74 (cp/method.o): Depend on gt-cp-method.h.
75 * config-lang.in (gtfiles): Add $(srcdir)/cp/method.c.
76
bb4f6e6b
JH
77Mon Jun 23 19:41:27 CEST 2003 Jan Hubicka <jh@suse.cz>
78
79 * decl.c (register_dtor_fn): Mark cleanup as used.
80 * decl2.c (mark_vtable_entries): Skip nops.
81 * rtti.c (get_tinfo_ptr): Mark tinfo as used.
82 (build_dynamic_cast_1): Likewise.
83 (tinfo_base_init): Likewise.
84 (emit_tinfo_decl): Likewise.
85
98decfaf
JJ
862003-06-23 Jakub Jelinek <jakub@redhat.com>
87
6df5158a 88 * mangle.c (hash_type): Val is the TREE_LIST itself, not a pointer
98decfaf
JJ
89 to it.
90
25abc0a5
GDR
912003-06-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
92
93 PR c++/10784
94 * call.c (joust): Warn about choosing conversion sequence only if
95 -Wconversion.
96
84cc377e
GDR
972003-06-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
98
25abc0a5 99 PR c++/10864
84cc377e
GDR
100 * call.c (op_error): Tidy.
101 * error.c (dump_expr): Properly format 'T()' when T is an
102 aggregate type.
103
dfbeb061
GDR
1042003-06-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
105
106 PR c++/10915
107 * decl.c (grok_op_properties): Warn possible confusing conversion
108 only if -Wconversion.
109
68361a03
MM
1102003-06-20 Mark Mitchell <mark@codesourcery.com>
111
66d418e6
MM
112 PR c++/10749
113 * parser.c (cp_parser_class_head): See through dependent names
114 when parsing a class-head.
115
68361a03
MM
116 PR c++/10845
117 * pt.c (try_class_unification): Correct handling of member class
118 templates.
119
1f9cc6db
NS
1202003-06-20 Nathan Sidwell <nathan@codesourcery.com>
121
122 * semantics.c (genrtl_finish_function): Adjust
123 expand_function_end call.
124
170b020f
MM
1252003-06-19 Mark Mitchell <mark@codesourcery.com>
126
00cf3e31
MM
127 PR c++/10939
128 * pt.c (tsubst_decl): Do not try to substitute into non-dependent
129 functions.
130 (value_dependent_expression_p): Correct logic for FUNCTION_DECLs.
131
f139561c
MM
132 PR c++/9649
133 * cp-tree.h (pushdecl_class_level): Change prototype.
134 (push_class_level_binding): Likewise.
135 * decl.c (add_binding): Reject duplicate static data members.
136 (pushdecl_class_level): Return a value indicating whether or not
137 the binding was valid.
138 (push_class_level_binding): Likewise.
139 * semantics.c (finish_member_declaration): Don't keep invalid
140 declarations.
141
170b020f
MM
142 PR c++/11041
143 * call.c (initialize_reference): Do not use cp_finish_decl to emit
144 temporary variables.
145 * cp-tree.h (static_aggregates): Declare.
146 (pushdecl_top_level_and_finish): Likewise.
147 * decl.c (pushdecl_top_level_1): New function.
148 (pushdecl_top_level): Use it.
149 (pushdecl_top_level_and_finish): New function.
150 (initialize_local_var): Remove redundant code.
151 (cp_finish_decl): Remove support for RESULT_DECLs. Don't check
152 building_stmt_tree.
153 * decl.h (static_aggregates): Remove.
154 * decl2.c (get_guard): Use pushdecl_top_level_and_finish.
155 * rtti.c (get_tinfo_decl): Use pushdecl_top_level_and_finish.
156 (tinfo_base_init): Likewise.
157
7a1d37e9
MA
1582003-06-19 Matt Austern <austern@apple.com>
159
160 PR c++/11228
161 * init.c (build_zero_init): Assert that number of array elements
162 is an integer constant.
163 (build_default_init) Don't use build_zero_init for arrays with
164 variable number of elements.
165
e295f317
AJ
1662003-06-19 Andreas Jaeger <aj@suse.de>
167
168 * cp-tree.h: Remove duplicated declarations.
169
3a978d72
NN
1702003-06-18 Nathanael Nerode <neroden@gcc.gnu.org>
171
172 * pt.c: Convert to ISO C.
173 * semantics.c: Convert to ISO C.
174
acd8e2d0
NS
1752003-06-18 Nathan Sidwell <nathan@codesourcery.com>
176
177 * cp-tree.h (comp_except_specs, compparms, cp_has_mutable_p,
178 at_least_as_qualified_p, more_qualified_p): Return bool.
179 * typeck.c: ANSIFY function definitions.
180 (comp_array_types): Take redeclaration bool parameter.
181 (comptypes): Rearrange STRICT handling.
182 (at_least_as_qualified_p, more_qualified_p,
183 comp_cv_qualification): Cache cv quals.
184 (compparms): Rearrange loop.
e295f317 185
c8a209ca
NS
1862003-06-18 Nathan Sidwell <nathan@codesourcery.com>
187
188 * cp-tree.h (COMPARE_RELAXED): Rename to ...
189 (COMPARE_DERIVED): ... here. Adjust comment.
190 (resolve_typename_type_in_current_instantiation): Remove.
191 (cp_tree_equal, comptypes): Return a bool.
192 * cvt.c (convert_to_reference): Adjust comptypes call.
193 * pt.c (template_args_equal, unify,): Adjust cp_tree_equal call.
194 (resolve_typename_type_in_current_instantiation): Remove.
195 * tree.c (cp_tree_equal): Return bool. Cope with TEMPLATE_DECLs and
196 IDENTIFIER_NODEs. Abort if undeciderable. Adjust recursive
197 calls. Refactor code.
198 * typeck.c (comp_array_types): Return bool. Lose callback.
199 parameter. Adjust cp_tree_equal calls.
200 (comptypes): Return bool. Adjust strict handling. Remove relaxed
201 enumeration and java type handling. Deal with typename types here.
202 Adjust recursive and cp_tree_equals calls. Adjust base and derived
203 checking.
204 (comp_target_types): Remove unreachable code. Adjust
205 same_or_base_type_p calls.
206 (ptr_reasonably_similar): Adjust base and derived check.
e295f317 207
c8a209ca
NS
208 * typeck.c (maybe_warn_about_returning_address_of_local): Remove
209 unused calculation.
210 (check_return_expr): Adjust error messages.
211 * cp-tree.def (SCOPE_REF): Correct comment.
212
a26574f5
MM
2132003-06-17 Mark Mitchell <mark@codesourcery.com>
214
215 * mangle.c (mangle_conv_op_name_for_type): Correct sprintf format
216 string again.
217
f3f735eb
RA
2182003-06-17 Robert Abeles <rabeles@archaelogic.com>
219
220 * optimize.c (dump_function): Form complete flag name by
221 prefixing 'fdump-' to string returned by dump_flag_name().
222
f2d90304
MM
2232003-06-17 Mark Mitchell <mark@codesourcery.com>
224
225 * mangle.c (mangle_conv_op_name_for_type): Correct sprintf format
226 string.
227
9da32fe1
JM
2282003-06-17 Jason Merrill <jason@redhat.com>
229
230 PR c++/10929
231 * decl.c (grokfndecl): Don't mark a function inline for
232 -finline-functions if it isn't defined.
233
ca90f3e1
MM
2342003-06-17 Mark Mitchell <mark@codesourcery.com>
235
019bb98e 236 PR c++/10712
3cedc9d8
MM
237 * class.c (handle_using_decl): Robustify.
238
ca90f3e1
MM
239 PR c++/11105
240 * cp-tree.h (DECL_CONV_FN_TYPE): New method.
241 * mangle.c (struct globals): Remove internal_mangling_p.
242 (write_unqualified_name): Use DECL_CONV_FN_TYPE.
243 (write_template_parm): Don't write out the level number.
244 (conv_type_names): New variable.
245 (hash_type): New function.
246 (compare_type): Likewise.
247 (mangle_conv_op_name_for_type): Don't try to mangle conversion
248 operator names.
249 * search.c (lookup_conversion_operator): New function.
250 (lookup_fnfields_1): Use it.
251
4c168c6e
AJ
2522003-06-17 Andreas Jaeger <aj@suse.de>
253
254 * except.c: Remove duplicate declaration of push_eh_cleanup.
255
256 * call.c: Remove extra declaration of inhibit_warnings.
257
89aec4b1
NN
2582003-06-16 Nathanael Nerode <neroden@gcc.gnu.org>
259
260 2003-06-16 Jens-Michael Hoffmann <jensmh@gmx.de>
261 * mangle.c: Convert to ISO C.
262
fad205ff
KG
2632003-06-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
264
265 * cp/decl.c, cp/pt.c, cp/search.c, cp/tree.c: Don't use the PTR
266 macro.
267
b57b79f7
NN
2682003-06-16 Nathanael Nerode <neroden@gcc.gnu.org>
269
270 * tree.c: Convert to ISO C.
271
4de8668e
KH
2722003-06-16 Kazu Hirata <kazu@cs.umass.edu>
273
274 * cp-tree.h: Follow spelling conventions.
275 * mangle.c: Likewise.
276 * method.c: Likewise.
277 * parser.c: Likewise.
278
ee6b0296
NS
2792003-06-14 Nathan Sidwell <nathan@codesourcery.com>
280
281 * decl.c (start_function): Adjust init_function_start call.
282 * method.c (use_thunk): Likewise.
283 * semantics.c (genrtl_start_function): Likewise.
284
d7b42618
NB
2852003-06-14 Neil Booth <neil@daikokuya.co.uk>
286
287 * Make-lang.in: Remove c-options.o.
288
0a8cb79e
NN
2892003-06-13 Nathanael Nerode <neroden@gcc.gnu.org>
290
9e7d1164
NN
291 * lex.c: Convert to ISO C.
292
362efdc1
NN
293 2003-05-19 Jens-Michael Hoffmann <jensmh@gmx.de>
294 * init.c: removes use of PARAMS macro. Use ISO style function
295 declarations. (Not copyright-significant change.)
296
cec57f72
NN
297 * rtti.c: Remove PARAMS.
298
0a8cb79e
NN
299 * typeck2.c: Convert to ISO C.
300
79b59cc3
MM
3012003-06-12 Mark Mitchell <mark@codesourcery.com>
302
303 PR c++/10635
304 * typeck.c (build_c_cast): Check that the destination type is
305 complete.
306
df7f7b9c
MM
3072003-06-11 Mark Mitchell <mark@codesourcery.com>
308
309 PR c++/10432
310 * cp-tree.h (finish_declarator): Remove.
311 * decl.c (cp_finish_decl): Make sure to pop_nested_class even for
312 erroneous declarations.
313 * semantics.c (finish_declarator): Remove.
314
35b4a576
RS
3152003-06-11 Roger Sayle <roger@eyesopen.com>
316
e295f317 317 * decl2.c (generate_ctor_or_dtor_function): Avoid expanding a
35b4a576
RS
318 global static constructor/destructor if it will be empty, i.e.
319 either doesn't call any ctors/dtors or only calls pure or const
320 ctors/dtors.
321
a5512a2f
MM
3222003-06-11 Mark Mitchell <mark@codesourcery.com>
323
24386c5e
MM
324 * mangle.c (tm_p.h): Include it.
325 * Make-lang.in (cp/mangle.o): Depend on $(TM_P_H).
326
a5512a2f
MM
327 PR c++/11131
328 * tree.c (cp_cannot_inline_fn): Check for "inline" before
329 instantiation.
330
0c16e8d6
JM
3312003-06-10 Jason Merrill <jason@redhat.com>
332
333 PR c++/10968
e9bbabab 334 * pt.c (mark_decl_instantiated): Clear DECL_COMDAT.
0c16e8d6 335
d192828a
GK
3362003-06-10 Andrew Pinski <pinskia@physics.uc.edu>
337
338 * decl.c (start_cleanup_fn): Move static 'counter' out, mark with GTY.
339 (start_cleanup_cnt): New.
340
d58b7c2d
MM
3412003-06-10 Mark Mitchell <mark@codesourcery.com>
342
343 PR c++/11131
344 * cp-tree.h (template_for_substitution): Declare.
345 * decl2.c (mark_used): Use it when figuring out whether or not a
346 function is inline.
347 * pt.c (template_for_substitution): Give it external linkage.
348 * tree.c (cp_cannot_inline_tree_fn): Instantiate as early as
349 possible.
350
94d3ea58
ZW
3512003-06-09 Zack Weinberg <zack@codesourcery.com>
352
353 PR 8861
354 * mangle.c (write_real_cst): New function. Implement
355 ABI-compliant mangling of floating-point literals when
356 -fabi-version>=2; provide backward compatibility with 3.3 when
357 -fabi-version=1 (with warning). Clarify commentary.
358 (write_template_arg_literal): Use write_real_cst.
359
55c6e1a6
AJ
3602003-06-07 Andreas Jaeger <aj@suse.de>
361
362 * cp/decl.c (xref_tag): Remove undefined macro NONNESTED_CLASSES.
363
2772ef3e
NB
3642003-06-07 Neil Booth <neil@daikokuya.co.uk>
365
366 * cp-lang.c (LANG_HOOKS_DECODE_OPTON): Drop.
367 (LANG_HOOKS_HANDLE_OPTION): Override.
368 * cp-tree.h (cxx_init_options): Update.
369 * lex.c (cxx_init_options): Update.
370
8f231b5d
JH
371Thu Jun 5 18:33:40 CEST 2003 Jan Hubicka <jh@suse.cz>
372
373 * Make-lang.in: Add support for stageprofile and stagefeedback
374
88d5a16e
R
3752003-06-04 J"orn Rennecke <joern.rennecke@superh.com>
376
377 * decl.c (grokdeclarator): Error_mark_node in, error_mark_node out.
378
81c0e50a
AJ
3792003-06-04 Andreas Jaeger <aj@suse.de>
380
381 * g++spec.c (lang_specific_driver): Remove ALT_LIBM usage.
382
dbe85b80
JM
3832003-06-03 Jason Merrill <jason@redhat.com>
384
94d3ea58 385 * cp/cp-tree.h (CP_AGGREGATE_TYPE_P): Accept vectors.
dbe85b80 386
94d3ea58 387 * cp/decl.c (reshape_init): Handle vectors.
dbe85b80 388
94d3ea58 389 * testsuite/g++.dg/init/array10.C: New.
dbe85b80 390
6c07f448
KL
3912003-06-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
392
393 PR c++/10940
394 * pt.c (check_explicit_specialization): Check for 'static'
395 earlier.
396
522801e7
DN
3972003-05-31 Diego Novillo <dnovillo@redhat.com>
398
399 * class.c (dump_array): Call CONSTRUCTOR_ELTS to access
400 the operand of a CONSTRUCTOR node.
401
82a2669e
GDR
4022003-05-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
403
404 * decl.c (cp_binding_level::this_entity): Rename from this_class.
405 (cxx_scope_descriptor): New function.
406 (cxx_scope_debug): Likewise.
407 (push_binding_level): Use it.
408 (pop_binding_level): Likewise.
409 (suspend_binding_level): Likewise.
410 (resume_binding_level): Likewise.
411 (pushlevel_class): Adjust use of this_class.
412 (pushtag): Likewise.
413 (lookup_name_real): Likewise.
414 (global_scope_name): New variable.
415 (initialize_predefined_identifiers): Initialize it.
416 (push_namespace): Use it.
417 (make_cxx_scope): New function.
418 (pushlevel): Use it.
419 (pushlevel_class): Likewise.
420 (push_binding_level): Simplify. Loose the last two arguments.
421 (make_binding_level): Remove.
422 (initial_push__namespace_scope): New function.
423 (push_namespace): Use it. Simplify.
55c6e1a6 424 (cxx_init_decl_processing): Likewise.
82a2669e
GDR
425 (declare_namespace_level): Remove.
426
76d3baad
KL
4272003-05-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
428
429 PR c++/10956
430 * pt.c (instantiate_decl): Don't use full template arguments if
431 we are dealing with specializations.
432
f37e2274
GDR
4332003-05-29 Gabriel Dos Reis <gdr@integrable-solutions.net>
434
435 * decl.c (ENABLE_SCOPE_CHECKING): Rename from DEBUG_BINDING_LEVELS.
436 (binding_depth): Unconditionally define.
437 (is_class_level): Likewise.
438 (indent): Likewise. Take an indenting parameter.
55c6e1a6 439 (push_binding_level): Remove conditional definittion.
f37e2274
GDR
440 (pop_binding_level): Likewise.
441 (suspend_binding_level): Likewise.
442 (resume_binding_level): Likewise.
443 (pushlevel): Likewise.
444 (pushlevel_class): Likewise.
445 (poplevel_class): Likewise.
446 (pop_everything): Likewise.
447
5f52c0e0
GDR
4482003-05-27 Gabriel Dos Reis <gdr@integrable-solutions.net>
449
450 * name-lookup.h (global_scope_p): New macro.
451 * decl.c (pop_binding_level): Use it. Don't refer directly to
55c6e1a6 452 global_binding_level.
5f52c0e0
GDR
453 (suspend_binding_level): Likewise.
454 (global_bindings_p): Likewise.
455 (print_other_binding_stack): Likewise.
456 (print_binding_stack): Likewise.
457 (maybe_push_to_top_level): Likewise.
458 (pushdecl_namespace_level): Likewise.
459 (cxx_init_decl_processing): Likewise.
460 (start_decl): Likewise.
461 (cp_finish_decl): Likewise.
462 (start_function): Likewise.
463 (global_binding_level): Remove.
464
b7fc8b57
KL
4652003-05-25 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
466
467 * parser.c (cp_parser_explicit_instantiation): Restore old
468 access before template instantiation.
469
0de12fcc
GK
4702003-05-23 Geoffrey Keating <geoffk@apple.com>
471
472 * lang-specs.h: Use -o to specify preprocessor's output file.
473 Make -no-integrated-cpp work when building PCH files.
474
43b26a01
KL
4752003-05-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
476
477 PR c++/10682
478 * pt.c (instantiate_class_template): Use DECL_ARTIFICIAL to
479 check for implicitly created typedef to an enum.
480
49b7aacb
JM
4812003-05-21 Jason Merrill <jason@redhat.com>
482
483 * init.c (build_vec_delete): Copy the address into a temporary
484 variable before calling build_vec_delete_1.
485 * decl2.c (delete_sanity): Don't call stabilize_reference.
486
b190f239
NS
4872003-05-21 Nathan Sidwell <nathan@codesourcery.com>
488
489 * pt.c (register_specialization): Update the decl's location,
490 if necessary.
491 (check_explicit_specialization): Likewise.
492
58228df6
KG
4932003-05-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
494
495 * error.c (dump_expr): Use HOST_WIDE_INT_PRINT_DOUBLE_HEX.
496
16e31964
DS
4972003-05-21 Danny Smith <dannysmith@users.sourceforge.net>
498
499 PR c++/9738
500 * decl.c (duplicate_decls): Re-invoke make_decl_rtl
501 if the old decl had instantiated DECL_RTL.
502 (Base on Richard Henderson 2003-05-13 patch to c-decl.c).
503
a01fff59
MA
5042003-05-19 Matt Austern <austern@apple.com>
505
506 * lang-options.h: Document -Wno-invalid-offsetof
507 * typeck.c (build_class_member_access_expr): Don't complain about
508 (Foo *)p->x for non-POD Foo if warn_invalid_offset is zero.
55c6e1a6 509
7e8f3096
AP
5102003-05-18 Andrew Pinski <pinskia@physics.uc.edu>
511
512 * name-lookup.c (free_binding_entry): fix where the GTY markers are.
513 (binding_entry_make): Make entry->chain NULL after getting an entry.
514 fix the spelling of chain in a comment.
515 (binding_table_free): speed up by having temporary variable.
516 (binding_table_new): set table->chain to be NULL after allocating
55c6e1a6 517 a table.
7e8f3096
AP
518 (cxx_binding_make): use gcc_alloc instead of ggc_alloc_cleared and set
519 binding->previous to NULL after getting an binding for speed.
55c6e1a6 520
5e0c54e5
GDR
5212003-05-18 Gabriel Dos Reis <gdr@integrable-solutions.net>
522
523 * cp-tree.h (struct lang_type_class): Replace data member tags
524 with hash-table nested_udts.
525 (CLASSTYPE_NESTED_UTDS): Rename from CLASSTYPE_TAGS.
526 * class.c (unreverse_member_declarations): Don't touch
55c6e1a6 527 CLASSTYPE_TAGS.
5e0c54e5
GDR
528 (pushclass): Use cxx_remember_type_decls.
529 * decl.c (struct cp_binding_level): Replace data member tags with
530 hash-table type_decls.
531 (pop_binding_level): Handle level->type_decls.
532 (kept_level_p): Adjust.
533 (poplevel): Remove unused local variable.
534 (bt_print_entry): New function.
535 (print_binding_level): Use it.
536 (push_namespace): Build current_binding_level->type_decls.
537 (maybe_process_template_type_declaration): Adjust.
538 (pushtag): Likewise.
539 (clear_anon_tags): Use binding_table_remove_anonymous_types.
540 (gettags): Remove.
541 (cxx_remember_type_decls): Rename from storetags. Adjust.
542 (lookup_tag): Use binding_table_find_anon_type. Tidy.
543 (lookup_tag_reverse): Use binding_table_reverse_maybe_remap.
544 (cxx_init_decl_processing): Build global_binding_level->type_decls.
545 (store_parm_decls): Remove pointless code.
546 * name-lookup.c (free_binding_entry): New variable.
547 (ENTRY_INDEX): New macro.
548 (struct binding_table_s): New datatype.
549 (binding_entry_make): New function.
550 (binding_entry_free): Likewise.
551 (binding_table_construct): Likewise.
552 (binding_table_free): Likewise.
553 (binding_table_new): Likewise.
554 (binding_table_expand): Likewise.
555 (binding_table_insert): Likewise.
556 (binding_table_find): Likewise.
557 (binding_table_find_anon_type): Likewise.
558 (binding_table_reverse_maybe_remap): Likewise.
559 (binding_table_remove_anonymous_types): Likewise.
560 (binding_table_foreach): Likewise.
561 * name-lookup.h (binding_table): New type.
562 (binding_entry): Likewise.
563 (bt_foreach_proc): Likewise.
564 (struct binding_entry_s): New datatype.
565 (SCOPE_DEFAULT_HT_SIZE): New macro.
566 (CLASS_SCOPE_HT_SIZE): Likewise.
567 (NAMESPACE_ORDINARY_HT_SIZE): Likewise.
568 (NAMESPACE_STD_HT_SIZE): Likewise.
569 (GLOBAL_SCOPE_HT_SIZE): Likewise.
570 (binding_table_new): Declare.
571 (binding_table_free): Likewise.
572 (binding_table_insert): Likewise.
573 (binding_table_find_anon_type): Likewise.
574 (binding_table_reverse_maybe_remap): Likewise.
575 (binding_table_remove_anonymous_types): Likewise.
576 (binding_table_foreach): Likewise.
577 (binding_table_find): Likewise.
578 (cxx_remember_type_decls): Likewise.
579 * pt.c (bt_instantiate_type_proc): New function.
580 (do_type_instantiation): Use it.
581 * search.c (lookup_field_r): Use binding_table_find.
582
25903d03
KL
5832003-05-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
584
585 * semantics.c (perform_deferred_access_checks): Don't discard
586 checked access.
587
e34d07f2
KG
5882003-05-17 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
589
590 * error.c (cp_error_at, cp_warning_at, cp_pedwarn_at): Eliminate
591 libiberty VA_ macros, always use stdarg.
592 * rtti.c (create_pseudo_type_info): Likewise.
593 * tree.c (build_min_nt, build_min): Likewise.
594
90ff44cf
KG
5952003-05-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
596
597 * ptree.c (cxx_print_type, cxx_print_xnode): Use string
598 concatentation on HOST_WIDE_INT_PRINT_* format specifier to
599 collapse multiple function calls into one.
55c6e1a6 600 * tree.c (debug_binfo): Likewise.
90ff44cf 601
9cefd2ca
JM
6022003-05-15 Jason Merrill <jason@redhat.com>
603
604 PR c++/5388
605 * call.c (conditional_conversion): Don't consider implicit
55c6e1a6 606 conversions if T2 is a base of T1.
9cefd2ca
JM
607 * cp-tree.h (DERIVED_FROM_P, UNIQUELY_DERIVED_FROM_P): Make boolean.
608 (ACCESSIBLY_UNIQUELY_DERIVED_P, PUBLICLY_UNIQUELY_DERIVED_P): Likewise.
609
610 * parser.c (cp_parser_primary_expression): Convert a static data
611 member from reference.
612
dffbbe80
MM
6132003-05-15 Mark Mitchell <mark@codesourcery.com>
614
8f4b394d
MM
615 * call.c (build_op_delete_call): Avoid creating unnecessary types.
616 * class.c (instantiate_type): Remove tests for tf_no_attributes.
617 * cp-tree.h (tsubst_flags_t): Remove tf_no_attributes.
618 (COMPARE_NO_ATTRIBUTES): Remove.
619 * typeck.c (comptypes): Do not check COMPARE_NO_ATTRIBUTES.
620
dffbbe80
MM
621 PR c++/8385
622 * semantics.c (finish_typeof): Refine type-dependency check.
623
a65cddcf
JM
6242003-05-13 Jason Merrill <jason@redhat.com>
625
626 * typeck.c (build_modify_expr): Don't always stabilize the lhs and
627 rhs. Do stabilize the lhs of a MODIFY_EXPR used on the lhs.
628
afb19ffb
KL
6292003-05-11 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
630
631 * method.c (synthesize_method): Call push/pop_deferring_access_checks.
632
9f01ded6
KL
6332003-05-11 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
634
635 PR c++/10230, c++/10481
636 * semantics.c (finish_non_static_data_member): Handle when the
637 non-static member is not from a base of the current class type.
638
fcea7401
KL
6392003-05-11 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
640
641 PR c++/10552
642 * pt.c (tsubst_copy): Handle TEMPLATE_DECL that is a member class
643 template and has dependent context.
644
7d021397
KL
6452003-05-10 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
646
647 * pt.c (instantiate_decl): Call push/pop_deferring_access_checks.
648
78757caa
KL
6492003-05-10 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
650
651 PR c++/9252
652 * cp-tree.h (saved_scope): Remove check_access field.
653 (tsubst_flags_t): Remove tf_parsing.
654 * decl.c (maybe_push_to_top_level): Don't initialize
655 scope_chain->check_access.
656 (make_typename_type, make_unbound_class_template): Don't use
657 tf_parsing.
658 (register_dtor_fn): Use push/pop_deferring_access_checks
659 instead of scope_chain->check_access.
660 * method.c (use_thunk): Likewise.
661 * parser.c (cp_parser_explicit_instantiation
662 (cp_parser_constructor_declarator_p): Don't call
663 push/pop_deferring_access_checks here.
664 (cp_parser_template_argument, cp_parser_class_name): Don't use
665 tf_parsing.
666 (yyparse): Check flag_access_control.
667 * pt.c (instantiate_class_template): Call
668 push/pop_deferring_access_checks.
669 * semantics.c (push_deferring_access_checks): Propagate
670 dk_no_check.
671 (perform_or_defer_access_check): Make sure basetype_path is
672 a type before comparison.
673 * call.c (build_op_delete_call, build_over_call): Use
674 perform_or_defer_access_check.
675 * class.c (alter_access): Likewise.
676 * init.c (build_offset_ref): Likewise.
677 * lex.c (do_identifier): Likewise.
678 * method.c (hack_identifier): Likewise.
679 * search.c (lookup_member): Likewise.
680 * semantics.c (finish_non_static_data_member): Likewise.
681 (simplify_aggr_init_exprs_r): Use push/pop_deferring_access_checks
682 instead of flag_access_control.
683
8d241e0b
KL
6842003-05-10 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
685
686 PR c++/9554
687 * parser.c (cp_parser_class_name): Remove check_access parameter.
688 All caller adjusted. Update declaration.
689 (cp_parser_lookup_name): Likewise.
690 * semantics.c (push_deferring_access_checks): Change parameter type
691 to enum deferring_kind. All caller adjusted.
692 (resume_deferring_access_checks): Adjust to use new enum.
693 (stop_deferring_access_checks): Likewise.
694 (perform_or_defer_access_check): Likewise.
695 * cp-tree.h (deferring_kind): New enum.
696 (deferred_access): Adjust field type.
697 (push_deferring_access_checks): Update declaration.
698
88e98cfe
KL
6992003-05-09 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
700
701 PR c++/10555, c++/10576
702 * pt.c (lookup_template_class): Handle class template with
703 multiple levels of parameters when one of the levels contain
704 errors.
705
8b5e2ce4
JM
7062003-05-08 Jason Merrill <jason@redhat.com>
707
708 * init.c (build_new_1): Don't reuse a TARGET_EXPR in an
709 expression. Undo some of the recent reorg.
710
a944ceb9
RH
7112003-05-07 Richard Henderson <rth@redhat.com>
712
9cefd2ca
JM
713 PR c++/10570
714 * cfns.gperf: Comment out POSIX thread cancellation points,
715 plus abort and raise.
716 * cfns.h: Regenerate.
a944ceb9 717
a65fd2d7
JM
7182003-05-07 Jason Merrill <jason@redhat.com>
719
720 * call.c (build_conditional_expr): Don't assume that the folded
721 expression has result_type.
722
d219f3ff
KL
7232003-05-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
724
725 * typeck.c (build_unary_op): Deal with const qualifier in
726 invalid pointer-to-member earlier.
727
5f7262e6
JM
7282003-05-05 Jason Merrill <jason@redhat.com>
729
730 PR c++/9537
731 * call.c (conditional_conversion): Build an RVALUE_CONV if
732 we're just changing the cv-quals.
733 (build_conditional_expr): Don't call convert to change
734 cv-quals.
735
16692dd5
KL
7362003-05-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
737
738 PR c++/10496
739 * typeck.c (build_unary_op): Don't output const qualifier when
740 output invalid pointer-to-member diagnostics.
741
7df87825
KL
7422003-05-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
743
744 * decl.c: Fix typos.
745
4b41d9eb
KL
7462003-05-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
747
748 PR c++/4494
749 * decl.c (start_function): Use same_type_p to check return type
750 of main.
751
87f85ea0
ZW
7522003-05-03 Zack Weinberg <zack@codesourcery.com>
753
754 PR c/10604
755 * cp/typeck.c (build_x_compound_expr): No need to check
756 extra_warnings as well as warn_unused_value.
757
5dc5d13c
KL
7582003-05-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
759
760 PR c++/9364, c++/10553, c++/10586
761 * decl.c (make_typename_type): Don't crash on illegal code.
762
82a98427
NS
7632003-05-03 Nathan Sidwell <nathan@codesourcery.com>
764
765 * class.c (finish_struct): Use location_t and input_location
766 directly.
767 * decl.c (make_label_decl): Likewise.
768 (use_label): Likewise.
769 * decl2.c (warn_if_unknown_interface): Likewise.
770 (start_static_initialization_or_destruction): Likewise.
771 (generate_ctor_or_dtor_function): Likewise.
772 (finish_file): Likewise.
773 * error.c (print_instantiation_full_context): Likewise.
774 * init.c (create_temporary_var): Likewise.
775 * method.c (synthesize_method): Likewise.
776 * parser.c (cp_token): Likewise.
777 (cp_lexer_set_source_position_from_token): Likewise.
778 (cp_lexer_get_preprocessor_token): Likewise.
779 (cp_parser_statement): Likewise.
780 * pt.c (tsubst_friend_function): Likewise.
781 (instantiate_class_template): Likewise.
782 (tsubst_decl): Likewise.
783 (tsubst): Likewise.
784 (instantiate_decl): Likewise.
785 * semantics.c (begin_class_definition): Likewise.
786 (expand_body): Likewise.
787
3489e061
NS
7882003-05-01 Nathan Sidwell <nathan@codesourcery.com>
789
790 * class.c (finish_struct): Rename lineno to input_line.
791 * decl.c (push_binding_level, pop_binding_level,
792 suspend_binding_level, resume_binding_level, make_label_decl,
793 use_label, start_function): Likewise.
794 * decl2.c (warn_if_unknown_interface,
795 start_static_initialization_or_destruction,
796 generate_ctor_or_dtor_function, finish_file): Likewise.
797 * error.c (cp_line_of, print_instantiation_full_context,
798 print_instantiation_context): Likewise.
799 * except.c (check_handlers_1, check_handlers): Likewise.
800 * init.c (create_temporary_var): Likewise.
801 * method.c (use_thunk, synthesize_method): Likewise.
802 * parser.c (cp_lexer_set_source_position_from_token,
803 cp_lexer_get_preprocessor_token): Likewise.
804 * pt.c (push_tinst_level, pop_tinst_level,
805 tsubst_friend_function, instantiate_class_template, tsubst_decl,
806 tsubst, tsubst_expr, instantiate_decl): Likewise.
807 * semantics.c (genrtl_try_block, finish_label_stmt,
808 begin_class_definition, expand_body,
87f85ea0 809 genrtl_finish_function): Likewise.
3489e061
NS
810 * tree.c (build_min_nt, build_min): Likewise.
811
49bf4577
MM
8122003-05-01 Mark Mitchell <mark@codesourcery.com>
813
814 * decl2.c (comdat_linkage): Don't externalize explicit
815 instantiations.
816
d0af00af
KL
8172003-05-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
818
819 PR c++/10554
820 * decl2.c (do_class_using_decl): Check if operand 0 of SCOPE_REF
821 is not NULL.
822
85209a3c
SB
8232003-05-01 Steven Bosscher <steven@gcc.gnu.org>
824
825 * cp-tree.h (struct lang_id2): Remove. Move fields from here...
826 (struct lang_identifier): ... to here.
827 (LANG_ID_FIELD): Remove.
828 (SET_LANG_ID): Remove.
829 (IDENTIFIER_LABEL_VALUE): Adjust for new lang_identifier.
830 (SET_IDENTIFIER_LABEL_VALUE): Likewise.
831 (IDENTIFIER_IMPLICIT_DECL): Likewise.
832 (SET_IDENTIFIERL_IMPLICIT_DECL): Likewise.
833 (IDENTIFIER_ERROR_LOCUS): Likewise.
834 (SET_IDENTIFIER_ERROR_LOCUS): Likewise.
835
d12a7283
KL
8362003-05-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
837
838 PR c++/8772
839 * pt.c (convert_template_argument): Correct diagnostic.
840
d7ed5e55
KL
8412003-04-30 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
842
843 PR c++/9432, c++/9528
844 * decl2.c (validate_nonmember_using_decl): Handle SCOPE_REF.
845
152c16a9
GDR
8462003-04-30 Garbiel Dos Reis <gcc@integrable-solutions.net>
847
848 * decl.c (check_previous_goto_1): Adjust prototype.
849 (check_previous_goto): Adjust use.
850 (check_switch_goto): Likewise.
851 (use_label): Adjust.
852 (check_previous_goto_1): Don't use pedwarn_with_file_and_line.
853 (struct named_label_use_list): Use location_t datatype.
854
1f6f0cb6
MM
8552003-04-29 Mark Mitchell <mark@codesourcery.com>
856
857 PR c++/10551
858 * pt.c (mark_decl_instantiated): Defer all explicit instantiations
859 that have not yet been written out.
860
60cde936
MM
8612003-04-29 Mark Mitchell <mark@codesourcery.com>
862
555456b1
MM
863 PR c++/10549
864 * class.c (layout_class_type): Mark overlong bitfields as having
865 the maximum size permitted by their type, after layout.
866
60cde936
MM
867 PR c++/10527
868 * error.c (dump_expr): Correctly handling of NEW_EXPR.4
869
8e854b76
KL
8702003-04-29 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
871
872 * call.c (build_operator_new_call): Fix typo.
873 * lang-options.h: Likewise.
874
0dbc5cd3
MM
8752003-04-29 Mark Mitchell <mark@codesourcery.com>
876
75135253
MM
877 PR c++/10515
878 * cp-tree.h (lookup_field_1): Declare it.
879 * search.c (lookup_field_1): Make it public.
880 * decl.c (reshape_init): Handle designated initializers.
881
0dbc5cd3
MM
882 * decl.c (maybe_commonize_var): Further tweak support for systems
883 without weak symbols.
884
9e6aaf5e
MM
8852003-04-27 Mark Mitchell <mark@codesourcery.com>
886
887 * decl.c (maybe_commonize_var): Fix thinko in last patch.
888
0b50d7f1
MM
8892003-04-27 Mark Mitchell <mark@codesourcery.com>
890
772f8889
MM
891 PR c++/10506
892 * method.c (use_thunk): Decrement immediate_size_expand.
893
894 PR c++/10503
895 * cp-tree.h (DECL_VAR_MARKED_P): New macro.
896 (DECL_MAYBE_TEMPLATE): Remove.
897 * class.c (fixed_type_or_null): Avoid infinite recursion.
898
0b50d7f1
MM
899 * decl.c (maybe_commonize_var): Make the code match the comments.
900 * pt.c (instantiate_decl): Move call to import_export_decl.
901
e2b69423
MM
9022003-04-26 Mark Mitchell <mark@codesourcery.com>
903
904 * decl2.c (finish_file): Fix merge botch.
905
ea56c40c
MM
9062003-04-25 Mark Mitchell <mark@codesourcery.com>
907
908 * decl2.c (finish_file): Don't call import_export_decl for
909 functions that are not defined.
910 (handle_class_head): Robustify.
911 * pt.c (instantiate_decl): Do not call cp_finish_decl for
912 variables that are not defined.
913
9804b5b8
SP
9142003-04-24 Sylvain Pion <Sylvain.Pion@mpi-sb.mpg.de>
915
87f85ea0 916 * call.c (print_z_candidates): Fix off by one error.
9804b5b8 917
f8986275
NS
9182003-04-24 Nathan Sidwell <nathan@codesourcery.com>
919
920 PR c++/10337
921 * call.c (joust): Don't warn about conversion ops that are exact
922 or cv-conversions. Rearrange to avoid multiple type comparisons.
923
374ca7f7
MM
9242003-04-23 Mark Mitchell <mark@codesourcery.com>
925
926 PR c++/10471
927 * call.c (build_cxx_call): Robustify.
928
6338b358
NB
9292003-04-23 Neil Booth <neil@daikokuya.co.uk>
930
931 * Make-lang.in (lex.o): Remove mbchar.h.
932 * lex.c (MULTIBYTE_CHARS): Lose.
933 * parser.c (cp_lexer_get_preprocessor_token): CPP_OTHER handled
934 in c-lex.c.
935
4223f82f
MM
9362003-04-23 Mark Mitchell <mark@codesourcery.com>
937
938 PR c++/9847
939 * cp-tree.h (duplicate_tag_error): Remove.
940 * class.c (duplicate_tag_error): Remove.
941 * semantics.c (begin_class_definition): Return immediately for a
942 duplicate class definition.
943
944 PR c++/10451
945 * decl.c (grokdeclarator): Correct logic for "mutable" errors.
946
6adb9463
MM
9472003-04-22 Mark Mitchell <mark@codesourcery.com>
948
ae2196c2
MM
949 PR c++/10446
950 * search.c (lookup_fnfields_1): Handle empty slots in the method
951 vector.
87f85ea0 952
befcd99b
MM
953 PR c++/10428
954 * decl.c (check_elaborated_type_specifier): New function, split
955 out from ...
956 (xref_tag): ... here. Use the new function in more places.
957
6adb9463
MM
958 * rtti.c (throw_bad_typeid): Use build_cxx_call.
959
b2dd096b
MM
9602003-04-21 Mark Mitchell <mark@codesourcery.com>
961
962 * call.c (build_over_call): Use build_cxx_call.
963 (build_cxx_call): New method, split out of build_over_call.
964 * cp-tree.h (language_function): Add can_throw.
965 (build_cxx_call): Declare it.
966 * decl.c (finish_function): If a function does not contain any
967 calls to functions that can throw an exception, indicate that
968 fact.
969 * decl2.c (mark_used): Do not defer the instantiation of
970 functions, if the current function does not throw.
971 * optimize.c (maybe_clone_body): Copy TREE_NOTHROW to the clones.
972 * pt.c (instantiate_decl): Make sure import_export_decl is called
973 before emitting things.
974 * rtti.c (throw_bad_cast): Use build_cxx_call.
975 (build_dynamic_cast_1): Likewise.
976 * typeck.c (build_function_call): Likewise.
977
8de9bb0e
NS
9782003-04-21 Nathan Sidwell <nathan@codesourcery.com>
979
980 PR c++/9881
981 * typeck.c (build_unary_op): Fold all COMPONENT_REF addr
982 expressions. Reverts my 2002-08-08 patch.
87f85ea0 983
8de9bb0e
NS
984 * typeck.c (comp_ptr_ttypes_real): Swap final && operands for
985 cheaper early exit.
986
299f79b5
NS
9872003-04-20 Nathan Sidwell <nathan@codesourcery.com>
988
989 * cp/decl2.c (start_static_storage_duration_function): Take count
990 arg, don't check if it wraps round.
991 (generate_ctor_or_dtor_function): Add locus arg, use it.
992 (generate_ctor_and_dtor_functions_for_priority): Data arg is a
993 locus.
994 (finish_file): Set line numbers to past EOF for synthesized
995 functions.
996
9972003-04-20 Nathan Sidwell <nathan@codesourcery.com>
de0c0e69
NS
998
999 PR c++/10405
1000 * search.c (lookup_field_1): Final scan goes backwards for
1001 types, forwards for non-types.
1002
220a35cc
RS
10032003-04-17 Roger Sayle <roger@eyesopen.com>
1004
1005 PR c/10375
1006 * decl.c (duplicate_decls): Preserve "const", "noreturn" and
1007 "nothrow" function attributes.
1008
09d2f85f
KL
10092003-04-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1010
1011 PR c++/10347
1012 * pt.c (type_dependent_expression_p): Handle array new.
1013
5eb10628
MM
10142003-04-15 Mark Mitchell <mark@codesourcery.com>
1015
1016 PR c++/10381
1017 * parser.c (cp_parser_primary_expression): Reorganize logic for
1018 dealing with name lookup failures.
1019
ac5f3b67
JM
10202003-04-15 Jason Merrill <jason@redhat.com>
1021
1022 * decl2.c (mark_used): Don't instantiate anything if
1023 skip_evaluation.
1024
e6237031
ZL
10252003-04-14 Ziemowit Laski <zlaski@apple.com>
1026
1027 * tree.c (build_cplus_array_type_1): Do not call
1028 uses_template_parms() on a NULL index_type.
1029
1331d16f
RS
10302003-04-13 Roger Sayle <roger@eyesopen.com>
1031
1032 * decl.c (duplicate_decls): Preserve pure and malloc attributes.
1033
f4f4610e
MM
10342003-04-12 Mark Mitchell <mark@codesourcery.com>
1035
1036 PR c++/10300
1037 * init.c (build_new_1): Reorganize.
1038
dcf92453
ZW
10392003-04-12 Zack Weinberg <zack@codesourcery.com>
1040
1041 * class.c (initialize_array)
1042 * decl.c (reshape_init)
1043 * decl2.c (build_expr_from_tree)
1044 * init.c (build_zero_init)
1045 * pt.c (tsubst_copy, tsubst_copy_and_build)
1046 * rtti.c (tinfo_base_init, generic_initializer, ptr_initializer)
1047 (ptm_initializer, class_initializer, get_pseudo_ti_init)
1048 * semantics.c (finish_compound_literal)
1049 * typeck.c (build_ptrmemfunc1)
1050 * typeck2.c (store_init_value, process_init_constructor)
1051 (build_functional_cast): Use build_constructor.
1052
2bd02043
ZW
10532003-04-12 Zack Weinberg <zack@codesourcery.com>
1054
1055 * call.c (print_z_candidates): Use gcc_gettext_width, not
1056 strlen, to determine how much padding to use.
1057
339a28b9
ZW
10582003-04-10 Zack Weinberg <zack@codesourcery.com>
1059
1060 * decl.c: Update all calls to shadow_warning.
1061
1e099144
MM
10622003-04-10 Mark Mitchell <mark@codesourcery.com>
1063
1064 * class.c (layout_class_type): Correct handling for overlong
1065 bit-fields whose width is the same as an integer type.
1066
d78e771d
ZW
10672003-04-06 Zack Weinberg <zack@codesourcery.com>
1068
1069 * cp-tree.def: Make fourth element for all 'c' and 'x' nodes zero.
1070 * cp-lang.c (cp_tree_size): New function.
1071 (LANG_HOOKS_TREE_SIZE): Override.
1072
1073 * cp-tree.h (SOURCE_LOCUS, SRCLOC_FILE, SRCLOC_LINE, struct
1074 tree_srcloc, TS_CP_COMMON, TS_CP_SRCLOC): Kill.
1075 (union lang_tree_node): Remove common and srcloc members.
1076 (build_srcloc_here): Don't prototype.
1077 * decl.c (cp_tree_node_structure): Kill SRCLOC case.
1078 * pt.c (pending_templates): Correct comment.
1079 * tree.c (build_srcloc, build_srcloc_here): Kill.
1080
d2a6f3c0
ZW
10812003-04-06 Zack Weinberg <zack@codesourcery.com>
1082
1083 * call.c: Include intl.h.
1084 (print_z_candidate): Always use inform; get rid of errfn
1085 argument. Reorganize so that all the strings get picked up
1086 by xgettext. Note obligation of caller to pass first argument
1087 through gettext.
1088 (print_z_candidates): Update to match. Indent second and
1089 successive candidates by strlen() of translated message.
1090 (joust): Restructure ambiguous-conversion pedwarn so that
1091 translators see a complete sentence. Update calls to
1092 print_z_candidate.
1093
1094 * Make-lang.in (cp/call.o): Update dependencies.
1095
ff955512
KG
10962003-04-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1097
1098 * decl.c (set_current_binding_level): Delete, revert last change.
1099 (current_binding_level): Modify to allow it as as lvalue.
1100
da247ccc
KG
11012003-04-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1102
1103 * name-lookup.c (find_binding): Pass appropriate pointer type to
1104 POP_TIMEVAR_AND_RETURN.
1105
d893ff33
KG
11062003-04-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1107
1108 * Make-lang.in (cp-warn): Add $(STRICT_WARN).
1109 * cp-tree.h: Don't insist on having GNUC.
1110
78d55cc8
JM
11112003-04-03 Jason Merrill <jason@redhat.com>
1112
55a2af0c
JM
1113 * cvt.c (ocp_convert): Only abort if we try to convert an object
1114 of TREE_ADDRESSABLE type.
1115
78d55cc8
JM
1116 * class.c (build_vtable): Set DECL_ALIGN here.
1117 (get_vtable_decl): Not here.
1118 (layout_vtable_decl): Or here.
1119 (create_vtable_ptr): Or here.
1120 (layout_class_type): Or here.
1121 (check_bitfield_decl): Don't mess with field alignment.
1122
de94b46c
KG
11232003-04-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1124
1125 * operators.def (DEF_SIMPLE_OPERATOR, DEF_ASSN_OPERATOR,
1126 DEF_ASSN_OPERATOR): Delete spurious semi-colon.
1127 * rtti.c (dfs_class_hint_mark): Likewise.
1128
1129 * decl.c (push_local_name, push_class_level_binding,
1130 maybe_inject_for_scope_var): Don't use POP_TIMEVAR_AND_RETURN in
1131 functions returning void.
1132 * decl2.c (add_using_namespace): Likewise.
1133
1134 * decl.c (print_binding_level, print_other_binding_stack,
1135 print_binding_stack): Cast argument of %p specifier to void*.
1136 * ptree.c (cxx_print_decl): Likewise.
1137
1138 * cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK,
1139 VAR_FUNCTION_OR_PARM_DECL_CHECK,
1140 VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK, RECORD_OR_UNION_TYPE_CHECK,
1141 BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK, LANG_TYPE_CLASS_CHECK,
1142 LANG_TYPE_PTRMEM_CHECK, LANG_DECL_U2_CHECK): Add __extension__.
1143
1144 * decl.c (set_current_binding_level): New macro. Use throughout
1145 when setting the current binding level.
1146
1147 * cp-tree.h (cp_lvalue_kind, base_access): Delete trailing comma
1148 in enum.
1149 * method.c (mangling_flags): Likewise.
1150
1151 * cp-tree.h (lang_type_header): Add __extension__ and use
1152 CHAR_BITFIELD for members.
1153
0de298af
GK
11542003-04-02 Geoffrey Keating <geoffk@apple.com>
1155
1156 PR other/9274
1157 * mangle.c: Include gt-cp-mangle.h.
1158 (subst_identifiers): Mark with GTY.
1159 * config-lang.in (gtfiles): Add cp/mangle.c.
1160 * Make-lang.in: (gt-cp-mangle.h): New rule.
1161 (cp/mangle.o): Depends on gt-cp-mangle.h.
1162
28ea4c88
AP
11632003-04-01 Andrew Pinski <pinskia@physics.uc.edu>
1164
0de298af 1165 * config-lang.in (gtfiles): Add \$(srcdir)/cp/name-lookup.c
28ea4c88
AP
1166 after \$(srcdir)/cp/name-lookup.h.
1167 * name-lookup.c: (cxx_binding_make): Use ggc_alloc_clearedinstead
1168 of ggc_alloc. Include gt-cp-name-lookup.h at the end of the file.
0de298af
GK
1169 * Make-lang.in: (gt-cp-name-lookup.h): Is generated by gengtype.
1170 (cp/name-lookup.o): Depends on gt-cp-name-lookup.h.
d2a6f3c0 1171
adff28c3
JM
11722003-03-31 Jason Merrill <jason@redhat.com>
1173
1174 PR java/10145
1175 * class.c (check_field_decl): Don't set DECL_ALIGN.
1176
c717c5af
MM
11772003-03-30 Mark Mitchell <mark@codesourcery.com>
1178
1179 PR c++/7647
1180 * decl.c (grokdeclarator): Tidy, slightly.
1181 * search.c (lookup_field_1): Add want_type parameter.
1182 (lookup_field_r): Adjust call to lookup_field_1.
1183
7c71dc2b
GDR
11842003-03-30 Gabriel Dos Reis <gdr@integrable-solutions.net>
1185
1186 * Make-lang.in (cp/name-lookup.o): Add more dependencies.
1187
ed3cf953
GDR
11882003-03-30 Gabriel Dos Reis <gdr@integrable-solutions.net>
1189
1190 * cp-tree.h (binding_for_name: Move to name-lookup.h Adjust
d2a6f3c0 1191 prototype.
ed3cf953
GDR
1192 (cxx_scope_find_binding_for_name): Likewise.
1193 * decl.c (find_binding: Move to name-lookup.c.
1194 (binding_for_name): Likewise.
1195 (cxx_scope_find_binding_for_name): Likewise.
1196 (BINDING_LEVEL): Remove.
1197 (push_binding): Tidy.
1198 (push_class_binding): Likewise.
1199 (pop_binding): Likewise.
1200 (poplevel): Likewise.
1201 (poplevel_class): Likewise.
1202 (set_identifier_type_value_with_scope): Likewise.
1203 (push_overloaded_decl): Likewise.
1204 (lookup_tag): Likewise.
1205 (unqualified_namespace_lookup): Likewise.
1206 (lookup_name_current_level): Likewise.
1207 (maybe_inject_for_scope_var): Likewise.
1208 (namespace_binding): Move to name-lookup.c.
1209 (set_namespace_binding): Likewise.
1210 * decl2.c (lookup_using_namespace): Tidy.
1211 (qualified_lookup_using_namespace): Likewise.
1212 (do_toplevel_using_decl): Likewise.
1213 * name-lookup.c: Include "timevar.h"
1214 * name-lookup.h (cxx_scope): Declare.
1215 (struct cxx_binding): Lose member "has_level". Adjust "scope"
1216 member declaration.
1217 (BINDING_SCOPE): Adjust definition.
1218 (BINDING_HAS_LEVEL_P): Remove.
1219
aed81407
GDR
12202003-03-30 Gabriel Dos Reis <gdr@integrable-solutions.net>
1221
1222 * name-lookup.c: New file.
1223 * name-lookup.h: Likewise..
1224 * decl.c (push_binding): Adjust use cxx_binding_make.
1225 (free_bindings): Move to name-lookup.c
1226 (pop_binding): Use cxx_binding_free.
1227 (binding_for_name): Tidy.
1228 * cp-tree.h: Include "name-lookup.h"
1229 (cxx_binding_make): Move to name-lookup.h
1230 (cxx_binding_clear): Likewise.
1231 (struct cxx_binding): Likewise.
1232 (LOCAL_BINDING_P): Likewise.
1233 (INHERITED_VALUE_BINDING_P): Likewise.
1234 (BINDING_SCOPE): Likewise.
1235 (BINDING_HAS_LEVEL_P): Likewise.
1236 (BINDING_VALUE): Likewise.
1237 (BINDING_TYPE): Likewise.
1238 * config-lang.in (gtfiles): Add cp/name-lookup.h
1239 * Make-lang.in (cp/name-lookup.o): New rule.
1240 (CXX_OBJS): Add cp/name-lookup.o
1241 (CXX_TREE_H): Add cp/name-lookup.h
1242
f7b9026e
JM
12432003-03-28 Jason Merrill <jason@redhat.com>
1244
1245 PR c++/10245
1246 * cvt.c (force_rvalue): New fn.
1247 * call.c (build_conditional_expr): Use it.
1248 * cp-tree.h: Declare it.
1249
2d30fe53
MS
12502003-03-28 Mike Stump <mrs@apple.com>
1251
1252 * error.c (dump_expr): Add 0x to printed hex numbers to make
1253 output match source code better.
1254
400fbc08
MM
12552003-03-28 Mark Mitchell <mark@codesourcery.com>
1256
316a2456
MM
1257 PR c++/10218
1258 * decl.c (grokfndecl): Return NULL_TREE for bogus out-of-class
1259 definitions.
1260
400fbc08
MM
1261 * decl2.c (generate_ctor_or_dtor_function): Tolerate a
1262 non-existant ssdf_decls array.
1263 (finish_file): Call generator_ctor_or_dtor_function when there are
1264 static constructors or destructors and no other static
1265 initializations.
1266
433cd9c9
NS
12672003-03-28 Nathan Sidwell <nathan@codesourcery.com>
1268
1269 PR c++/10047
1270 * decl2.c (finish_file): Don't warn about explicitly instantiated
1271 inline decls.
1272
544aef8c
NS
12732003-03-27 Nathan Sidwell <nathan@codesourcery.com>
1274
1275 PR c++/10224
1276 * pt.c (lookup_template_class): Only check instantiated args if
1277 they do not contain template parameters.
1278
649fc72d
NS
12792003-03-27 Nathan Sidwell <nathan@codesourcery.com>
1280
1281 PR c++/10158
1282 * parser.c (cp_parser_function_definition): Set
1283 DECL_INITIALIZED_IN_CLASS for members.
1284 * pt.c (instantiate_decl): Only reduce the template args for
1285 friends that are not defined in class.
1286
d8c8524d
JM
12872003-03-25 Jason Merrill <jason@redhat.com>
1288
1289 * call.c (print_z_candidate): Change name of first arg to msgid.
1290 (joust): Add comment for translators.
1291
1c82cc90 12922003-03-24 Nathan Sidwell <nathan@codesourcery.com>
d2a6f3c0 1293
1c82cc90 1294 PR c++/9898, PR c++/383, DR 322
649fc72d 1295 * pt.c (maybe_adjust_types_for_deduction) <DEDUCE_CONV>: Look
1c82cc90
NS
1296 through reference types on both PARM and ARG.
1297
a5fcc895
NS
12982003-03-24 Nathan Sidwell <nathan@codesourcery.com>
1299
1300 PR c++/10119
649fc72d 1301 * error.c (dump_expr) <BASELINK>: Use dump_expr.
a5fcc895 1302 * pt.c (maybe_fold_nontype_args): New function.
649fc72d
NS
1303 (tsubst_copy) <SCOPE_REF>: Subst any template_id args.
1304 <TEMPLATE_ID_EXPR>: Break out folding code, call it.
1305 (tsubst_copy_and_build) <TEMPLATE_ID_EXPR>: Call
a5fcc895
NS
1306 maybe_fold_nontype_args.
1307
2ef6c975
NS
13082003-03-24 Nathan Sidwell <nathan@codesourcery.com>
1309
1310 PR c++/10026
649fc72d 1311 * decl2.c (arg_assoc_type) <ERROR_MARK>: Don't die.
2ef6c975 1312
f29a2bd1
MM
13132003-03-23 Mark Mitchell <mark@codesourcery.com>
1314
1315 PR c++/7086
2ef6c975
NS
1316 * typeck.c (cxx_mark_addressable): Adjust call to
1317 gen_mem_addressof or put_var_into_stack.
f29a2bd1 1318
3e4a3562
NS
13192003-03-22 Nathan Sidwell <nathan@codesourcery.com>
1320
1321 PR c++/9978, c++/9708
1322 * cp-tree.h (instantiate_template): Add tsubst_flags parameter.
1323 * call.c (add_template_candidate_real): Adjust
1324 instantiate_template call.
1325 * class.c (resolve_address_of_overloaded_function): Likewise.
1326 * decl.c (build_enumerator): Set TREE_CONSTANT.
1327 * pt.c (check_instantiated_args): New.
1328 (push_inline_template_parms_recursive): Set TREE_CONSTANT,
1329 TREE_READONLY.
1330 (build_template_parm_index): Copy TREE_CONSTANT, TREE_READONLY.
1331 (reduce_template_parm_level): Likewise.
1332 (process_template_parm): Likewise.
1333 (check_explicit_specialization): Adjust instantiate_template call.
1334 (convert_template_argument): Don't check non-type argument here.
1335 (lookup_template_class): Check them here.
1336 (tsubst_friend_function): Adjust instantiate_template call.
1337 (instantiate_template): Add tsubst_flags parameter, use it. Check
1338 instantiated args.
1339
d9b2742a
ZW
13402003-03-21 Zack Weinberg <zack@codesourcery.com>
1341
1342 * decl.c: Update calls to shadow_warning.
1343
f3146d75
NS
13442003-03-21 Nathan Sidwell <nathan@codesourcery.com>
1345
1346 PR c++/9898
1347 * error.c (dump_decl) [CONST_DECL]: Print '<enumerator>'.
1348 (dump_expr) [CONSTRUCTOR]: Print default ctor as a function call.
1349
963142fc
MM
13502003-03-20 Mark Mitchell <mark@codesourcery.com>
1351
1352 * cp/decl2.c (arg_assoc_class): Correct check for namespace-scope
1353 friends.
1354 * cp/pt.c (instantiate_class_template): Fix formatting.
1355
a260bce6
MA
13562003-03-14 Matt Austern <austern@apple.com>
1357
1358 * cp-tree.h (unemitted_tinfo_decls): Declaration of a new varray.
1359 (unemitted_tinfo_decl_p): Remove.
1360 (emit_tinfo_decl): Change declaration to remove unused parameter.
1361 * decl2.c (finish_file): Change tinfo emission to loop through
1362 unemitted_tinfo_decls array instead of looping through all decls.
1363 * rtti.c (unemitted_tinfo_decl_p): Declare as static, remove
1364 unused second parameter.
1365 (init_rtti_processing): initialize unemitted_tinfo_decls varray.
1366 (get_tinfo_decls): push new tinfo decl on unemitted_tinfo_decls.
1367 (emit_tinfo_decl): remove unused second parameter, add assertion
d9b2742a
ZW
1368 that decl hasn't already been emitted.
1369
2bd3ecad
NN
13702003-03-19 Nathanael Nerode <neroden@gcc.gnu.org>
1371
1372 * dump.c (cp_dump_tree), cp-tree.h (cp_dump_tree): Change return
1373 type from 'int' to 'bool'. Replace 0 and 1 with true and false in
1374 return statements.
1375
b9747e59
JM
13762003-03-19 Jason Merrill <jason@redhat.com>
1377
1378 PR c++/8316, c++/9315, c++/10136
1379 * call.c (print_z_candidate): Split out from...
1380 (print_z_candidiates): ...here.
1381 (joust): Use it.
1382
10326855
RS
13832003-03-17 Roger Sayle <roger@eyesopen.com>
1384
b9747e59 1385 PR c++/10031
10326855
RS
1386 * decl.c (duplicate_decls): Use the new type when prototyping
1387 anticipated decls, even when the types match. This defines the
1388 exception list for the built-in function.
1389
bdaa131b
JM
13902003-03-17 Jason Merrill <jason@redhat.com>
1391
1392 PR c++/10091
d9b2742a 1393 * typeck.c (build_class_member_access_expr): Compare
bdaa131b
JM
1394 TYPE_MAIN_VARIANTs.
1395
ec20aa6c
MM
13962003-03-17 Mark Mitchell <mark@codesourcery.com>
1397
1398 PR c++/9639
1399 * parser.c (cp_parser_declarator_id): Clear parser->scope.
1400
35e939ae
JM
14012003-03-16 Jason Merrill <jason@redhat.com>
1402
1403 PR c++/9993
1404 * decl.c (finish_function): Only allow the NRVO to use variables
1405 declared at function scope.
1406
40a4184c
AJ
14072003-03-17 Andreas Jaeger <aj@suse.de>
1408
1409 * Make-lang.in (cp/TAGS): Remove.
1410
1f5a253a
NS
14112003-03-16 Nathan Sidwell <nathan@codesourcery.com>
1412
1413 PR c++/9629
1414 * cp-tree.h (struct language_function): Add in_base_initializer.
1415 (in_base_initializer): define it.
1416 (expand_member_init): Remove INIT param.
1417 * init.c (expand_member_init): Remove INIT param, return the member.
1418 (emit_mem_initializers): Set in_base_initializer.
1419 * class.c (build_base_path): Check in_base_initializer.
1420 * parser.c (cp_parser_mem_initializer): Set in_base_initializer.
1421 * pt.c (tsubst_initializer_list): Likewise.
1422
4f907b59
GDR
14232003-03-16 Gabriel Dos Reis <gdr@integrable-solutions.net>
1424
1425 * decl.c (binding_for_name): Fix initialization thinko.
1426
ac2768ff 14272003-03-15 Gabriel Dos Reis <gdr@integrable-solutions.net>
40a4184c 1428
af6fd53f
GDR
1429 Compile-time improvement: 2/n.
1430 * cp-tree.h (struct cxx_binding): New datatype;
1431 (struct lang_identifier): Use it.
1432 (LOCAL_BINDING_P): Adjust definition.
1433 (INHERITED_VALUE_BINDING_P): Likewise.
1434 (BINDING_SCOPE): Likewise.
1435 (BINDING_HAS_LEVEL_P): Likewise.
1436 (BINDING_VALUE): Likewise.
1437 (BINDING_TYPE): Likewise.
1438 (IDENTIFIER_VALUE): Likewise.
1439 (struct tree_binding): Remove.
1440 (TS_CP_BINDING): Likewise.
1441 ((union lang_tree_node): Remove field "binding".
1442 (cxx_binding_clear): New macro.
1443 (binding_for_name): Adjust return type.
1444 (qualified_lookup_using_namespace): Adjust prototype.
1445 (lookup_using_namespace): Adjust prototype.
1446 (cxx_scope_find_binding_for_name): Declare.
1447 * cp-tree.def: Remove CPLUS_BINDING definition.
1448 * decl.c (push_binding): Adjust local variable type.
1449 (add_binding): Likewise.
1450 (push_class_binding): Likewise.
1451 (pop_binding): Likewise.
1452 (poplevel): Likewise.
1453 (poplevel_class): Likewise.
1454 (free_bindings): Adjust type.
1455 (find_binding): Adjust return type, add a third parameter. Remove
40a4184c 1456 non-useful assertion now that we use static typing.
af6fd53f 1457 (cxx_scope_find_binding_for_name): New function.
40a4184c 1458 (binding_for_name): Use it. Adjust local variable type. Simplify.
af6fd53f
GDR
1459 (namespace_binding): Simplify.
1460 (set_namespace_binding): Likewise.
1461 (set_identifier_type_value_with_scope): Adjust local variable type.
1462 (lookup_tag): Don't type-abuse of local variable 'old'.
1463 (lookup_namespace_name): Likewise. Allocate binding on stack.
1464 (select_decl): Adjust prototype.
1465 (unqualified_namespace_lookup): Allocate binding on stack.
1466 Don't type-abuse of local variable 'val'.
1467 (lookup_name_real): Likewise.
1468 (maybe_inject_for_scope_var): Adjust local variable type.
1469 (cp_tree_node_structure): Remove CPLUS_BINDING case label.
1470 (namespace_binding): Adjust logic, simplify.
1471 (BINDING_LEVEL): Adjust definition.
1472 (push_class_level_binding): Adjust local variable type.
1473 (struct cxx_saved_binding): Adjust field 'binding' type.
1474 * decl2.c (ambiguous_decl): Adjust prototype.
1475 (lookup_using_namespace): Adjust local variable type.
1476 (qualified_lookup_using_namespace): Catch type error and correct
1477 ensueing logic error.
1478 (do_nonmember_using_decl): Adjust local variable type. Allocate
1479 temporary cxx_binding on stack.
1480 (do_toplevel_using_decl): Adjust local variable type.
1481 * ptree.c (cxx_print_cxx_binding): New function.
1482 (cxx_print_identifier): Use it.
1483 (cxx_print_xnode): Delete CPLUS_BINDING case label.
1484
6a87d634
RS
14852003-03-15 Roger Sayle <roger@eyesopen.com>
1486
1487 * tree.c (count_functions): Fix whitespace.
1488
c1bad961
NB
14892003-03-15 Neil Booth <neil@daikokuya.co.uk>
1490
1491 * Make-lang.in: Update.
1492
6e049fcd
KL
14932003-03-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1494
1495 PR c++/6440
1496 * pt.c (maybe_process_partial_specialization): Handle
1497 member class template when enclosing class template is
1498 explicit specialized.
1499 (most_general_template): Stop looking when DECL is already
1500 specialized.
1501
0171b21c
JM
15022003-03-13 Jason Merrill <jason@redhat.com>
1503
1504 PR c++/9420
1505 * search.c (lookup_conversions): Call complete_type here.
1506 * call.c (implicit_conversion): Not here.
1507
26f86471
MM
15082003-03-13 Mark Mitchell <mark@codesourcery.com>
1509
45707d31
MM
1510 * decl2.c (do_nonmember_using_decl): Correct handling of
1511 simultaneous type/non-type bindings.
1512
26f86471
MM
1513 * call.c (initialize_reference): Remove bogus assertion.
1514 * decl.c (build_ptrmemfunc_type): Revert change of 2003-03-09.
1515
847311f4
AL
15162003-03-12 Andrew Lewycky <andrew@mxc.ca>
1517
1518 PR c++/7050
1519 * expr.c (cxx_expand_expr): Return const0_rtx for throw
1520 expressions.
1521
2601a4ee
MM
15222003-03-11 Mark Mitchell <mark@codesourcery.com>
1523
e1145e7f 1524 PR c++/9474
2601a4ee
MM
1525 * decl2.c (do_nonmember_using_decl): Do not call duplicate decls
1526 to merge old and new declarations.
1527
2bfe542b
AO
15282003-03-12 Alexandre Oliva <aoliva@redhat.com>
1529
1530 * g++.1: Remove.
1531 * Make-lang.in (c++.generated-manpages): Build cp/g++.1.
1532 (cp/g++.1): Build it from scratch in the build tree.
1533 (c++.install-man): Depend on it. Install it from the build tree.
1534 (c++.mostlyclean): Clean it.
1535
0c33daff
MM
15362003-03-11 Mark Mitchell <mark@codesourcery.com>
1537
3033f0ed 1538 PR c++/9474
2601a4ee
MM
1539 * decl2.c (do_nonmember_using_decl): Do not call duplicate decls
1540 to merge old and new declarations.
1541
0c33daff
MM
1542 PR c++/9924
1543 * decl2.c (do_nonmember_using_decl): Ignore anticipated builtins.
1544
cf237c19
JM
15452003-03-11 Jason Merrill <jason@redhat.com>
1546
1547 PR c++/9820
40a4184c 1548 * search.c (lookup_member): Fix handling of functions in a class
cf237c19
JM
1549 being defined.
1550
436f8a4c
MM
15512003-03-11 Mark Mitchell <mark@codesourcery.com>
1552
1553 PR c++/8700
1554 * call.c (convert_class_to_reference): Adjust usage of
1555 splice_viable.
1556 (any_viable): Remove.
1557 (splice_viable): Combine with any_viable.
1558 (print_z_candidates): Avoid printing duplicates.
1559 (build_user_type_conversion_1): Adjust usage of splice_viable.
1560 (build_new_function_call): Likewise.
1561 (build_operator_new_call): Likewise.
1562 (build_object_call): Likewise.
1563 (build_conditional_expr): Likewise.
1564 (build_new_op): Likewise.
1565 (build_new_method_call): Likewise.
1566 (joust): Remove spurious comment.
1567 * cp-tree.h (DECL_FRIENDLIST): Correct documentation.
1568 * decl2.c (arg_assoc_class): Simplify.
1569 * friend.c (add_friend): Likewise.
1570
5b8e011c
JM
15712003-03-11 Jason Merrill <jason@redhat.com>
1572
1573 PR c++/8660
40a4184c 1574 * decl2.c (check_classfn): A member template only matches a
5b8e011c
JM
1575 member template.
1576
cb60f38d
NB
15772003-03-11 Neil Booth <neil@daikokuya.co.uk>
1578
1579 * Make-lang.in (CXX_C_OBJS): Update.
1580 * lang-specs.h: Don't define __GNUG__ here.
1581
125e6594
MM
15822003-03-10 Mark Mitchell <mark@codesourcery.com>
1583
1584 * call.c (perform_overload_resolution): New function.
1585 (build_new_function_call): Use it.
1586 (build_operator_new_call): Likewise.
1587 (add_candidates): Add explicit_targs and template_only parameters.
1588 (build_new_op): Adjust accordingly.
1589 * cp-tree.h (build_operator_new_call): New function.
1590 (build_function_call_real): Remove.
1591 (build_function_call_maybe): Likewise.
1592 * init.c (build_new_1): Use build_operator_new_call.
1593 * typeck.c (build_function_call_real): Rename to ...
1594 (build_function_call): ... this.
1595
87d7d780 15962003-03-10 Devang Patel <dpatel@apple.com>
40a4184c 1597
87d7d780
DP
1598 PR c++/9394
1599 * g++spec.c (lang_specific_driver): Use DEFAULT_WORD_SWTCH_TAKES_ARG.
125e6594 1600
6e9554e1
JM
16012003-03-10 Jason Merrill <jason@redhat.com>
1602
70f0e288
JM
1603 PR c++/9798
1604 * decl.c (push_using_directive): Push before recursing.
1605
1606 PR c++/9868, c++/9524
6e9554e1
JM
1607 * call.c (resolve_scoped_fn_name): Handle the case of a function
1608 pointer member.
1609
1610 * decl2.c (build_offset_ref_call_from_tree): Only mess with 'this'
1611 argument in the pointer-to-member case.
1612
f6d19bfe
MM
16132003-03-09 Mark Mitchell <mark@codesourcery.com>
1614
1d719415
MM
1615 PR c++/9373
1616 * cp-lang.c (cxx_get_alias_set): Use alias set zero for
1617 pointers to member functions.
1618
f6d19bfe
MM
1619 PR c++/8534
1620 * decl.c (build_ptrmemfunc_type): Do not allow default arugments
1621 in pointer-to-member-function types.
1622
d9b4e85e
GDR
16232003-03-10 Gabriel Dos Reis <gdr@integrable-solutions.net>
1624
1625 * expr.c (cplus_expand_constant): Use C90 prototype style.
1626 (cxx_expand_expr): Likewise.
1627
ca9e1382
KL
16282003-03-09 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1629
1630 PR c++/9970
1631 * decl.c (duplicate_decls): Only copy DECL_THUNKS for virtual
1632 functions.
1633
00a221f0
GK
16342003-03-08 Geoffrey Keating <geoffk@apple.com>
1635
1636 * lang-specs.h (c++-header): Change .pch to .gch.
1637
4bfec483
NB
16382003-03-08 Neil Booth <neil@daikokuya.co.uk>
1639
1640 * cp-tree.h (cxx_init): Update prototype.
1641 * lex.c (cxx_init): Similarly.
1642
089d6ea7
MM
16432003-03-08 Mark Mitchell <mark@codesourcery.com>
1644
0e136342
MM
1645 PR c++/9823
1646 * cp-tree.h (begin_mem_initializers): Remove.
1647 * parser.c (cp_parser_mem_initializer_list): Inline it here.
1648 Do not call finish_mem_initializers if not in a constructor.
1649 (cp_parser_class_head): Fix typo in error message.
1650 * semantics.c (begin_mem_initializers): Remove.
1651 * testsuite/g++.dg/parser/constructor1.C: New test.
1652
089d6ea7
MM
1653 PR c++/9809
1654 * call.c (add_function_candidate): Skip builtin fuctions that have
1655 not yet been declared.
1656
1657 PR c++/9982
1658 * init.c (build_new_1): Correct logic for determining whether or
1659 not to use an array cookie.
1660
1661 PR c++/9524
1662 * parser.c (cp_parser_postfix_expression): Call
1663 finish_non_static_data_member, even when processing_template_decl.
1664
1665 PR c++/9912
1666 * cp-tree.h (is_ancestor): New function.
1667 (handle_class_head): Change prototype.
1668 * decl2.c (is_namespace_ancestor): Rename to ...
1669 (namespace_anecestor): ... this.
1670 (set_decl_namespace): Adjust accordingly.
1671 (handle_class_head): Remove unncessary parameters.
1672 * parser.c (cp_parser_class_head): Check that
1673 nested-name-specifiers are used appropriately.
40a4184c 1674
aa6e8ed3
MM
16752003-03-07 Mark Mitchell <mark@codesourcery.com>
1676
1677 * call.c (reference_binding): Remove REF_IS_VAR parameter.
1678 (implicit_conversion): Adjust call to reference_binding.
1679 (make_temporary_var_for_ref_to_type): Add TYPE parameter.
1680 (initialize_reference): Adjust handling for references bound to
1681 rvalues.
1682 * cp-tree.h (make_temporary_var_for_ref_to_temp): Change
1683 prototype.
1684 (real_non_cast_lvalue_p): New method.
1685 * cvt.c (build_up_reference): Adjust use of
1686 make_temporary_var_for_ref_to_temp.
89d11511 1687 * tree.c (real_non_cast_lvalue_p): New method.
40a4184c 1688
5cc3d3b8
GDR
16892003-03-07 Gabriel Dos Reis <gdr@integrable-solutions.net>
1690
1691 * except.c (init_exception_processing): Use C90 prototype style.
1692 (cp_protect_cleanup_actions): Likewise.
1693 (prepare_eh_type): Likewise.
1694 (build_eh_type_type): Likewise.
1695 (build_exc_ptr): Likewise.
1696 (do_begin_catch): Likewise.
1697 (dtor_nothrow): Likewise.
1698 (do_end_catch): Likewise.
1699 (push_eh_cleanup): Likewise.
1700 (decl_is_java_type): Likewise.
1701 (choose_personality_routine): Likewise.
1702 (initialize_handler_parm): Likewise.
1703 (expand_start_catch_block): Likewise.
1704 (expand_end_catch_block): Likewise.
1705 (begin_eh_spec_block): Likewise.
1706 (finish_eh_spec_block): Likewise.
1707 (do_allocate_exception): Likewise.
1708 (do_free_exception): Likewise.
1709 (wrap_cleanups_r): Likewise.
1710 (stabilize_throw_expr): Likewise.
1711 (build_throw): Likewise.
1712 (complete_ptr_ref_or_void_ptr_p): Likewise.
1713 (is_admissible_throw_operand): Likewise.
1714 (nothrow_libfn_p): Likewise.
1715 (can_convert_eh): Likewise.
1716 (check_handlers_1): Likewise.
1717 (check_handlers): Likewise.
40a4184c 1718
3d938426
MM
17192003-03-06 Mark Mitchell <mark@codesourcery.com>
1720
1721 * call.c (merge_conversion_sequences): New function.
1722 (build_conv): Set ICS_USER_FLAG for USER_CONVs.
1723 (convert_class_to_reference): Correct handling of second
1724 standard conversion sequence in a user-defined conversion
1725 sequence.
1726 (build_user_type_conversion_1): Use merge_conversion_sequences.
1727 * cp-tree.def: Add comments for CONV nodes.
9534f4bc 1728 * rtti.c (get_tinfo_decl): Use build_address/build_nop.
40a4184c 1729
3f8548e7
GDR
17302003-03-07 Gabriel Dos Reis <gdr@integrable-solutions.net>
1731
1732 * error.c (init_error): Use C90 prototype style.
1733 (dump_scope): Likewise.
1734 (dump_qualifiers): Likewise.
1735 (dump_template_argument): Likewise.
1736 (dump_template_argument_list): Likewise.
1737 (dump_template_parameter): Likewise.
1738 (dump_template_bindings): Likewise.
1739 (dump_type): Likewise.
1740 (dump_typename): Likewise.
1741 (class_key_or_enum): Likewise.
1742 (dump_aggr_type): Likewise.
1743 (dump_type_prefix): Likewise.
1744 (dump_type_suffix): Likewise.
1745 (dump_global_iord): Likewise.
1746 (dump_simple_decl): Likewise.
1747 (dump_decl): Likewise.
1748 (dump_template_decl): Likewise.
1749 (dump_function_decl): Likewise.
1750 (dump_parameters): Likewise.
1751 (dump_exception_spec): Likewise.
1752 (dump_function_name): Likewise.
1753 (dump_template_parms): Likewise.
1754 (dump_char): Likewise.
1755 (dump_expr_list): Likewise.
1756 (dump_expr): Likewise.
1757 (dump_binary_op): Likewise.
1758 (dump_unary_op): Likewise.
1759 (type_as_string): Likewise.
1760 (expr_as_string): Likewise.
1761 (decl_as_string): Likewise.
1762 (context_as_string): Likewise.
1763 (lang_decl_name): Likewise.
1764 (cp_file_of): Likewise.
1765 (cp_line_of): Likewise.
1766 (decl_to_string): Likewise.
1767 (expr_to_string): Likewise.
1768 (fndecl_to_string): Likewise.
1769 (code_to_string): Likewise.
1770 (language_to_string): Likewise.
1771 (parm_to_string): Likewise.
1772 (op_to_string): Likewise.
1773 (type_to_string): Likewise.
1774 (assop_to_string): Likewise.
1775 (args_to_string): Likewise.
1776 (cv_to_string): Likewise.
1777 (cxx_print_error_function): Likewise.
1778 (cp_diagnostic_starter): Likewise.
1779 (cp_diagnostic_finalizer): Likewise.
1780 (cp_print_error_function): Likewise.
1781 (function_category): Likewise.
1782 (print_instantiation_full_context): Likewise.
1783 (print_instantiation_partial_context): Likewise.
1784 (maybe_print_instantiation_context): Likewise.
1785 (print_instantiation_context): Likewise.
1786 (cp_printer): Likewise.
1787 (print_integer): Likewise.
1788 (print_non_consecutive_character): Likewise.
1789 (locate_error): Likewise.
1790
3d1df1fa
MM
17912003-03-06 Mark Mitchell <mark@codesourcery.com>
1792
5e256996
MM
1793 PR c++/9965
1794 * call.c (reference_binding): Add ref_is_var parameter.
1795 (implicit_conversion): Adjust call to reference_binding.
1796 (initialize_reference): Likewise.
1797
07681121
MM
1798 PR c++/9400
1799 * decl.c (pushdecl): Don't check for shadowing of DECL_ARTIFICIAL
1800 PARM_DECLs.
1801
3d1df1fa
MM
1802 PR c++/9791
1803 * class.c (get_basefndecls): Use lookup_fnfields_1.
1804
8a6393df
KL
18052003-03-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1806
1807 PR c++/9188
1808 * parser.c (cp_parser_type_parameter): Remove redundant `expect'
1809 in error message.
1810 (cp_parser_single_declaration): Likewise.
1811
c965b169
JM
18122003-03-05 Jason Merrill <jason@redhat.com>
1813
1814 PR c++/9440
1815 * call.c (build_conditional_expr): Use convert rather than an
1816 explicit NOP_EXPR.
1817
1d555f7a
MA
18182003-03-02 Matt Austern <austern@apple.com>
1819
1820 * decl.c (cp_binding_level): Add static_decls varray member.
1821 (add_decl_to_level): Add static/inline namespace scope
1822 declarations to static_decls array.
1823 (wrapup_global_for_namespace): Pass static_decls only, instead of
1824 all decls, to wrapup_global_declarations/check_global_declarations.
1825 (push_namespace): Initialize static_decls for ordinary namespaces.
1826 (cxx_init_decl_processing): Initialize static_decls for global
1827 namespace.
40a4184c 1828
8234c6c1
MM
18292003-03-05 Mark Mitchell <mark@codesourcery.com>
1830
1831 * class.c (end_of_class): Correct thinko.
1832
dc2b3526
NN
18332003-03-04 Nathanael Nerode <neroden@gcc.gnu.org>
1834
1835 * config-lang.in: Replace ${libstdcxx_version} by its value.
1836
000d38ea
GDR
18372003-03-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
1838
d9b2742a
ZW
1839 * cp-tree.h (cxx_saved_binding): Declare.
1840 (struct saved_scope): Adjust type of field 'old_binding'.
1841 * decl.c (cxx_saved_binding_make): New macro.
1842 (struct cxx_saved_binding): Define.
1843 (store_bindings): Adjust prototype. Use cxx_saved_binding to save
1844 C++ bindings.
1845 (maybe_push_to_top_level): Adjust local variable type.
1846 (pop_from_top_level): Likewise.
40a4184c 1847
b87141b3
TT
18482003-03-04 Tom Tromey <tromey@redhat.com>
1849
1850 * Make-lang.in (c++.tags): New target.
1851
f20d8e39
NB
18522003-03-04 Neil Booth <neil@daikokuya.co.uk>
1853
1854 * Make-lang.in: Update.
1855
f5d70cc0
JM
18562003-03-03 Jason Merrill <jason@redhat.com>
1857
1858 * decl.c (finish_enum): Do set the type in a template. Simplify.
1859 * pt.c (tsubst_enum, tsubst_copy): Revert last patch.
1860
7993382e
MM
18612003-03-03 Mark Mitchell <mark@codesourcery.com>
1862
1863 PR c++/9878
1864 * call.c (convert_class_to_reference): Correct conversion
1865 sequences.
1866 (reference_binding): Add ref_bound_directly_to_rvalue_p parameter.
1867 (implicit_conversion): Adjust call to reference_binding.
1868 (add_candidate): Change type of candidates parameter.
1869 (add_function_candidate): Likewise.
1870 (add_conv_candidate): Likewise.
1871 (build_builtin_candidate): Likewise.
1872 (add_builtin_candidate): Likewise.
1873 (add_builtin_candidates): Likewise.
1874 (add_template_candidate_real): Likewise.
1875 (add_template_candidate): Likewise.
1876 (add_template_conv_candidate): Likewise.
1877 (build_user_type_conversion_1): Adjust accordingly.
1878 (build_object_call): Likewise.
1879 (build_conditional_expr): Likewise.
1880 (add_candidates): Likewise.
1881 (build_new_op): Likewise.
1882 (convert_like_real): Use USER_CONV_CAND. Use build_nop.
1883 (build_new_method_call): Adjust calls to add_function_candidate.
1884 (make_temporary_var_for_ref_to_temp): New function.
1885 (initialize_reference): Add decl parameter.
1886 * class.c (build_rtti_vtbl_entries): Use build_address and
1887 build_nop.
1888 * cp-tree.h (initialize_reference): Change prototype.
1889 (make_temporary_var_for_ref_to_temp): New function.
1890 (build_type_conversion): Change prototype.
1891 (build_address): New function.
1892 (build_nop): Likewise.
1893 * cvt.c (cp_convert_to_pointer): Adjust call to
1894 build_type_conversion. Avoid indicating redundant NOP_EXPRs.
1895 Use build_nop.
1896 (convert_to_pointer_force): Use build_nop.
1897 (build_up_reference): Use make_temporary_var_for_ref_to_temp.
1898 (convert_to_reference): Adjust call to build_type_conversion.
1899 (ocp_convert): Likewise.
1900 (build_type_conversion): Remove for_sure parameter.
1901 * decl.c (grok_reference_init): Use initialize_reference.
1902 * typeck.c (build_address): New function.
1903 (build_nop): Likewise.
1904 (build_unary_op): Use them.
1905 (build_ptrmemfunc): Tidy slightly.
1906 (convert_for_initialization): Adjust call to
1907 initialize_reference.
1908 * typeck2.c (store_init_value): Remove #if 0'd code.
40a4184c 1909
d1a74aa7
JM
19102003-03-03 Jason Merrill <jason@redhat.com>
1911
1912 * decl.c (start_function): Clear DECL_NUM_STMTS.
1913
1914 * class.c (get_vtable_decl): Use vtbl_type_node.
1915 (build_primary_vtable): Check for it.
1916
6e1b3a7c
AH
19172003-03-02 Aldy Hernandez <aldyh@redhat.com>
1918
08162287 1919 * decl.c (check_initializer): Check for vector_opaque_p.
6e1b3a7c 1920
8a035a6b
AH
19212003-03-02 Ashif Harji <asharji@uwaterloo.ca>
1922
1923 * lang-specs.h (default_compilers): Add -no-integrated-cpp flag to
1924 invoke an external cpp during compilation.
1925
456d8864
GDR
19262003-03-01 Gabriel Dos Reis <gdr@integrable-solutions.net>
1927
1928 * decl.c (duplicate_decls): Convert use of warning_with_decl() to
1929 that of warning().
1930 (start_decl): Likewise.
1931 (start_function): Likewise.
1932
5793b276
NB
19332003-03-01 Neil Booth <neil@daikokuya.co.uk>
1934
1935 * Make-lang.in (CXX_C_OBJS): Update.
1936
b063b379 19372003-02-28 Mark Mitchell <mark@codesourcery.com>
1d62c33e
MM
1938
1939 PR c++/9892
1940 * pt.c (instantiate_decl): Clear DECL_RTL for a VAR_DECL when
1941 instantiating it.
1942
704a0bbd
AH
19432003-02-28 Aldy Hernandez <aldyh@redhat.com>
1944
d9b2742a
ZW
1945 * parser.c (cp_parser_init_declarator): Revert opaque
1946 vector_opaque_p change.
1947 Do not include target.h.
704a0bbd 1948
1cb8292f
MM
19492003-02-28 Mark Mitchell <mark@codesourcery.com>
1950
1951 PR c++/9879
1952 * cp-tree.h (build_zero_init): Add parameter.
1953 * decl.c (cp_finish_decl): Adjust call.
1954 * init.c (build_zero_init): Add nelts parameter. Adjust recursive
1955 calls.
1956 (build_default_init): Add nelts parameter. Adjust calls to
1957 build_zero_init.
1958 (build_new_1): Adjust call to build_default_init.
1959 * typeck2.c (process_init_constructor): Adjust call to build_zero_init.
40a4184c 1960
fdedded1
DP
19612003-02-26 Devang Patel <dpatel@apple.com>
1962
2ef6c975
NS
1963 * decl.c (finish_enum): Merge two 'for' loops. Copy value node if
1964 required. Postpone enum setting for template decls.
1965 (build_enumerator): Delay copying value node until finish_enum
1966 (). Remove #if 0'ed code.
fdedded1
DP
1967 * pt.c (tsubst_enum): Set TREE_TYPE and copy value node.
1968 (tsubst_copy): Add check for enum type.
40a4184c 1969
cec24319
MM
19702003-02-25 Mark Mitchell <mark@codesourcery.com>
1971
1972 PR c++/9683
1973 * decl2.c (prune_vars_needing_no_initialization): Do not throw
1974 away initializations for DECL_EXTERNAL VAR_DECLs.
1975 (finish_file): Adjust accordingly.
1976 * pt.c (instantiate_decl): Do not defer VAR_DECLs.
1977
7d9f2df2
GDR
19782003-02-24 Gabriel Dos Reis <gdr@integrable-solutions.net>
1979
08162287
JM
1980 * decl.c (add_binding): Time TV_NAME_LOOKUP.
1981 (push_class_binding): Likewise.
1982 (set_namespace_binding): Likewise.
7d9f2df2 1983
353b4fc0
MM
19842003-02-24 Mark Mitchell <mark@codesourcery.com>
1985
1986 PR c++/9836
1987 * cp-tree.h (CLASSTYPE_PRIMARY_TEMPLATE): Do not skip from
1988 specializations back to the main template.
1989 * parser.c (cp_parser_diagnose_invalid_type_name):Adjust use.
1990 * pt.c (resolve_typename_type): Likewise.
1991
8b6a662e
JO
19922003-02-24 Jeffrey D. Oldham <oldham@codesourcery.com>
1993
1994 PR c++/9778
1995 * pt.c (tsubst_copy_and_build): For a templated function inside a
1996 scope, process template arguments.
1997
9e236a9d
KL
19982003-02-24 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
1999
2000 PR c++/9602
2001 * typeck2.c (abstract_virtuals_error): Don't check when
2002 TYPE is still template parameter dependent.
2003
ca099ac8
MM
20042003-02-23 Mark Mitchell <mark@codesourcery.com>
2005
2006 PR c++/5333
2007 * cp-tree.h (CLASSTYPE_PRIMARY_TEMPLATE): New macro.
2008 * parser.c (cp_parser_diagnose_invalid_type_name): Use it.
2009 * pt.c (instantiate_class_template): Don't try to instantiate
2010 dependent types.
2011 (resolve_typename_type): Use CLASSTYPE_PRIMARY_TEMPLATE.
40a4184c 2012
2fff6d71
MM
20132003-02-21 Mark Mitchell <mark@codesourcery.com>
2014
2015 PR c++/9749
2016 * decl.c (grokdeclarator): Do not allow parameters with variably
2017 modified types.
2018
7fb1c86d
NS
20192003-02-21 Nathan Sidwell <nathan@codesourcery.com>
2020
1f5a253a 2021 * search.c (grow_bfs_bases): Remove. Fold into ...
7fb1c86d
NS
2022 (bfs_walk): ... here, fix fencepost error. Fix merge lossage
2023 in previous patch.
2024
63a3cd3e
MM
20252003-02-20 Mark Mitchell <mark@codesourcery.com>
2026
2027 PR c++/9729
2028 * mangle.c (mangle_conv_op_name_for_type): Issue an error message
2029 when the G++ 3.2 ABI prevents correct compilation.
2030
dbbf88d1
NS
20312003-02-20 Nathan Sidwell <nathan@codesourcery.com>
2032
2033 Change base class access representation. Share virtual base
2034 binfos.
2035 * cp/call.c (build_special_member_call): Remove binfo_for_vbase
2036 call.
2037 * cp/class.c (build_base_path): Likewise.
2038 (build_primary_vtable): Adjust BINFO_NEW_VTABLE_MARKED use.
2039 (build_secondary_vtable): Remove FOR_TYPE arg. Adjust.
2040 (make_new_vtable): Adjust.
2041 (force_canonical_binfo_r): Delete.
2042 (force_canonical_binfo): Delete.
2043 (mark_primary_virtual_base): Delete.
2044 (dfs_unshared_virtual_bases): Delete.
2045 (mark_primary_bases): Adjust.
2046 (maybe_warn_about_overly_private_class): Adjust.
2047 (dfs_base_derived_from): Delete.
2048 (base_derived_from): Follow the inheritance chain.
2049 (struct find_final_overrider_data): Add vpath member.
2050 (dfs_find_final_overrider): Adjust.
2051 (dfs_find_final_overrider_q, dfs_find_final_overrider_post): New.
2052 (find_final_overrider): Adjust.
2053 (update_vtable_entry_for_fn): Adjust.
2054 (modify_all_vtables): Adjust.
2055 (walk_subobject_offsets): Adjust.
2056 (layout_nonempty_base_or_field): Adjust.
2057 (layout_empty_base): Remove last parameter. Adjust.
2058 (build_base_field): Adjust.
2059 (build_base_fields): Adjust.
2060 (propagate_binfo_offsets): Remove last parameter. Adjust.
2061 (dfs_set_offset_for_unshared_vbases): Delete.
2062 (layout_virtual_bases): Adjust.
2063 (finish_struct_1): Adjust.
2064 (init_class_processing): Don't init access nodes.
2065 (dfs_get_primary_binfo): Delete.
2066 (get_primary_binfo): Adjust.
2067 (dump_class_hierarchy_r): Remove most derived arg, add IGO
2068 parameter. Adjust.
2069 (dump_class_hierarchy): Adjust.
2070 (finish_vtbls): Adjust.
2071 (get_original_base): Delete.
2072 (build_vtt_inits): Adjust.
2073 (dfs_build_secondary_vptr_vtt_inits): Adjust.
2074 (dfs_ctor_vtable_bases_queue_p): Adjust.
2075 (build_ctor_vtbl_group): Adjust.
2076 (dfs_accumulate_vtbl_inits): Adjust.
2077 (build_vtbl_initializer): Adjust.
2078 (build_vbase_offset_vtbl_entries): Adjust.
2079 (add_vcall_offset_vtbl_entries_1): Adjust.
2080 * cp/cp-tree.h (CPTI_ACCESS_*): Remove.
2081 (access_*_node): Remove.
2082 (CANONICAL_BINFO): Delete.
2083 (BINFO_UNSHARED_MARKED): Remove.
2084 (BINFO_MARKED): Set LANG_FLAG_0 directly.
2085 (SET_BINFO_MARKED, CLEAR_BINFO_MARKED): Delete.
2086 (BINFO_VTABLE_PATH_MARKED): Set LANG_FLAG_3 directly.
2087 (SET_BINFO_VTABLE_PATH_MARKED, CLEAR_BINFO_VTABLE_PATH_MARKED):
2088 Delete.
2089 (BINFO_NEW_VTABLE_MARKED): Set LANG_FLAG_4 directly.
2090 (SET_BINFO_NEW_VTABLE_MARKED): Adjust.
2091 (SET_BINFO_PUSHDECLS_MARKED, CLEAR_BINFO_PUSHDECLS_MARKED):
2092 Delete.
2093 (BINFO_DEPENDENT_BASE_P): New.
2094 (dfs_walk, dfs_walk_real): Queue function takes derived binfo and
2095 index.
2096 (markedp, unmarkedp): Adjust.
2097 (dfs_unmarked_real_bases_queue_p, dfs_marked_real_bases_queue_p,
2098 dfs_skip_vbases, marked_vtable_pathp, unmarked_vtable_pathp,
2099 find_vbase_instance, binfo_for_vbase): Delete.
2100 (copied_binfo, original_binfo): Declare.
2101 (finish_base_specifier): Add virtual_p arg.
2102 (unshare_base_binfos): Delete.
2103 (copy_base_binfos): Declare.
2104 (reverse_path): Delete.
2105 * cp/decl.c (xref_basetypes): Access and virtuality passed
2106 differently. Don't copy direct base binfos here. Call
2107 copy_base_binfos.
2108 * cp/init.c (dfs_initialize_vtbl_ptrs): Adjust.
2109 (initialize_vtbl_ptrs): Adjust.
2110 (expand_member_init): Adjust.
2111 * cp/parser.c (cp_parser_base_specifier): Adjust.
2112 * cp/pt.c (instantiate_class_template): Adjust.
2113 (get_template_base_recursive): Adjust.
2114 * cp/rtti.c (get_pseudo_ti_init): Adjust.
2115 (get_pseudo_ti_desc): Adjust.
2116 * cp/tree.c (unshare_base_binfos): Rename to ...
2117 (copy_base_binfos): ... here, reimplement.
2118 (make_binfo): Set BINFO_DEPENDENT_BASE_P.
2119 (reverse_path): Remove.
2120 * cp/typeck.c (get_delta_difference): Adjust error messages.
2121 * cp/semantics.c (finish_base_specifier): Add virtual arg, adjust.
2122 * cp/search.c (lookup_base_r): Adjust.
2123 (dynamic_cast_base_recurse): Adjust.
2124 (canonical_binfo): Remove.
2125 (dfs_canonical_queue): Remove.
2126 (dfs_assert_unmarked_p): Remove.
2127 (assert_canonical_unmarked): Remove.
2128 (shared_marked_p, shared_unmarked_p): Remove.
2129 (BINFO_ACCESS, SET_BINFO_ACCESS): Use TREE_PUBLIC & TREE_PRIVATE.
2130 (dfs_access_in_type): Adjust.
2131 (access_in_type): Adjust.
2132 (dfs_accessible_queue_p): Adjust.
2133 (dfs_accessible_p): Adjust.
2134 (is_subobject_of_p_1, is_subobject_of_p): Remove.
2135 (struct lookup_field_info): Remove from_dep_base_p field.
2136 (lookup_field_queue_p): Adjust, test BINFO_DEPENDENT_BASE_P.
2137 (lookup_field_r): Remove dependent base code.
2138 (lookup_member): Likewise.
2139 (dfs_walk, dfs_walk_real): Add access arg to queue fn.
2140 (dfs_unmarked_real_bases_queue_p): Remove.
2141 (dfs_marked_real_bases_queue_p): Remove.
2142 (dfs_skip_vbases): Remove.
2143 (dfs_get_pure_virtuals): Adjust.
2144 (markedp, unmarkedp): Adjust.
2145 (marked_vtable_pathp, unmarked_vtable_pathp): Remove.
2146 (marked_pushdecls_p, unmarked_pushdecls_p): Adjust.
2147 (dfs_unmark): Adjust.
2148 (dfs_get_vbase_types):Remove.
2149 (dfs_build_inheritance_graph_order): Remove.
2150 (get_vbase_types): Remove
2151 (dfs_find_vbase_instance): Remove.
2152 (find_vbase_instance): Remove.
2153 (dfs_debug_unmarkedp): Adjust.
2154 (dependent_base_p): Remove.
2155 (dfs_push_type_decls): Adjust.
2156 (dfs_push_decls): Adjust.
2157 (dfs_no_overlap_yet): Adjust.
2158 (copied_binfo): New function.
2159 (original_binfo): New function.
2160 (binfo_for_vbase): Remove.
2161
860c9ea6
ZW
21622003-02-18 Zack Weinberg <zack@codesourcery.com>
2163
2164 * cp/search.c (grow_bfs_bases): New subroutine of bfs_walk.
2165 (bfs_walk): Rewritten using circular queue of BINFO_BASETYPES
2166 vectors, for speed.
2167
6b99d1c0
MM
21682003-02-18 Mark Mitchell <mark@codesourcery.com>
2169
2170 PR c++/9704
2171 * class.c (layout_class_type): In the 3.2 ABI, take into account
2172 trailing bit fields when computing CLASSTYPE_SIZE_UNIT.
2173
2b59501b 21742003-02-18 Matt Austern <austern@apple.com>
40a4184c 2175
2b59501b
MA
2176 * cp/cp-lang.c: Change lang hooks so that final_write_globals does
2177 nothing for C++.
2178 * cp/decl.c (wrapup_globals_for_namespace): Remove special
2179 handling of global namespace.
40a4184c 2180
e17aafd1
GK
21812003-02-18 Geoffrey Keating <geoffk@apple.com>
2182
2183 * cp-tree.h (rid_to_yy): Delete.
2184 (C_RID_YYCODE): Delete.
2185 (finish_file): Delete redundant declaration.
2186
04b03085
JM
21872003-02-18 Jason Merrill <jason@redhat.com>
2188
2189 PR c++/9623
2190 * decl.c (reshape_init): Don't mess with initializer labels.
2191
08162287
JM
2192 PR c++/9485
2193 * parser.c (cp_parser_postfix_expression): Set idk properly for
2194 object->scope::member.
2195
bf7c02dd
BE
21962003-02-18 Ben Elliston <bje@redhat.com>
2197
2198 PR other/7350
2199 * decl.c (duplicate_decls): Fix typo in comment.
2200
0f3a8219
MEC
22012003-02-17 Michael Elizabeth Chastain <mec@shout.net>
2202
c7adfa01 2203 PR debug/9717
0f3a8219
MEC
2204 * class.c (build_base_field): Mark fields for base classes with
2205 DECL_IGNORED_P.
2206
db77ef4c
KL
22072003-02-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2208
2209 PR c++/9457
2210 * pt.c (tsubst_copy_and_build) [CONSTRUCTOR]: Substitute
2211 CONSTRUCTOR_ELTS only once.
2212
0df4ae96
KL
22132003-02-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2214
2215 PR c++/9459
2216 * error.c (dump_type_prefix): Handle TYPEOF_TYPE.
2217 (dump_type_suffix): Likewise.
2218
86ac0575
NS
22192003-02-14 Nathan Sidwell <nathan@codesourcery.com>
2220
2221 * search.c: ANSIfy function declarations and definitions.
2222 * cp-tree.h (lookup_field, lookup_member): Last parameter is a bool.
2223 * call.c (build_method_call, resolve_scoped_fn_name,
2224 build_java_interface_fn_ref): Adjust lookup_field, lookup_member
2225 calls.
2226 * class.c (handle_using_decl): Likewise.
2227 * decl.c (make_typename_type, make_unmound_class_template,
2228 start_decl, compute_array_index_type): Likewise.
2229 * decl2.c (build_expr_from_tree, build_call_from_tree): Likewise.
2230 * init.c (expand_member_init, build_member_call): Likewise.
2231 * pt.c (tsubst_copy, tsubst_copy_and_build, do_decl_instantiation,
2232 resolve_typename_type): Likewise.
2233 * typeck.c (lookup_destructor, finish_class_member_access_exprm
2234 build_prememfunc_access_expr): Likewise.
2235
fd295cb2
GDR
22362003-02-13 Gabriel Dos Reis <gdr@integrable-solutions.net>
2237
2238 * decl2.c: Include "timevar.h".
2239 (namespace_ancestor): Time name lookup.
2240 (add_using_namespace): Likewise.
2241 (lookup_using_namespace): Likewise.
2242 (qualified_lookup_using_namespace): Likewise.
2243 (decl_namespace): Likewise.
2244 (lookup_arg_dependent): Likewise.
2245 * lex.c (do_identifier): Likewise.
2246 (do_scoped_id): Likewise.
2247 * pt.c (lookup_template_class): Likewise.
2248
62ed060f
AP
22492003-02-14 Andrew Pinski <pinskia@physics.uc.edu>
2250
d9b2742a 2251 * decl.c: (define_label): Fix warning for return 0 instead of NULL.
40a4184c 2252
22ffcc6f
GDR
22532003-02-13 Gabriel Dos Reis <gdr@integrable-solutions.net>
2254
2255 * decl.c: Include "timevar.h".
2256 (poplevel): Time name lookup.
2257 (find_binding): Likewise.
2258 (push_namespace): Likewise.
2259 (pop_nested_namespace): Likewise.
2260 (store_bindings): Likewise.
2261 (maybe_push_to_top_level): Likewise.
2262 (pop_from_top_level): Likewise.
2263 (push_local_name): Likewise.
2264 (pushtag): Likewise.
2265 (pushdecl): Likewise.
2266 (pushdecl_with_scope): Likewise.
2267 (pushdecl_namespace_level): Likewise.
2268 (pushdecl_top_level): Likewise.
2269 (pushdecl_class_level): Likewise.
2270 (push_class_level_binding): Likewise.
2271 (push_using_decl): Likewise.
2272 (push_using_directive): Likewise.
2273 (push_overloaded_decl): Likewise.
2274 (lookup_label): Likewise.
2275 (define_label): Likewise.
2276 (lookup_tag): Likewise.
2277 (lookup_tag_reverse): Likewise.
2278 (lookup_namespace_name): Likewise.
2279 (select_decl): Likewise.
2280 (unqualified_namespace_lookup): Likewise.
2281 (lookup_name_real): Likewise.
2282 (lookup_name_current_level): Likewise.
2283 (lookup_type_current_level): Likewise.
2284 (maybe_inject_for_scope_var): Likewise.
2285 (xref_tag): Likewise.
2286
2287 * Make-lang.in (cp/decl.o): Add dependency on timevar.h
40a4184c 2288
6a540f3c
PE
22892003-02-12 Phil Edwards <pme@gcc.gnu.org>
2290
2291 * decl.c (build_enumerator): Remove unneeded test.
2292
7a93f739
DN
22932003-02-09 Dan Nicolaescu <dann@ics.uci.edu>
2294
2295 * cp-tree.h (struct lang_type_header): Make all fields unsigned
2296 char.
2297
b80f8ef3
MM
22982003-02-03 Mark Mitchell <mark@codesourcery.com>
2299
2300 PR c++/7129
2301 * call.c (z_candidate): Add args.
2302 (convert_class_to_reference): Set it.
2303 (implicit_conversion): Tidy.
2304 (add_candidate): Add args parameter.
2305 (add_function_candidate): Adjust call to add_candidate.
2306 (add_conv_candidate): Likewise.
2307 (build_builtin_candidate): Likewise.
2308 (build_user_type_conversion_1): Eliminate wasteful tree_cons
2309 usage.
2310 (build_new_function_call): Likewise.
2311 (build_object_call): Likewise.
2312 (add_candidates): New function.
2313 (build_new_op): Use it.
2314 (covert_like_real): Adjust call to build_over_call.
2315 (build_over_call): Remove args parameter.
2316 * operators.def: Add <?= and >?=.
2317
271bd540
RS
23182003-02-01 Richard Sandiford <rsandifo@redhat.com>
2319
2320 * typeck.c (build_indirect_ref): Don't check flag_volatile.
2321
db0f613d
KL
23222003-01-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2323
2324 PR c++/8849
2325 * pt.c (resolve_overloaded_unification): Handle FUNCTION_DECL.
2326
1824b90d
NS
23272003-01-31 Nathan Sidwell <nathan@codesourcery.com>
2328
2329 * cp-tree.h (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX,
2330 BINFO_PRIMARY_BASE_OF): Use BINFO_ELTS.
2331 (BINFO_LANG_ELTS): New #define.
2332 * tree.c (make_binfo): Use BINFO_LANG_ELTS.
2333
f099d360
GK
23342003-01-30 Geoffrey Keating <geoffk@apple.com>
2335
2336 * cp/Make-lang.in: Remove -Wno-error from cp/decl.o.
2337
5552b43c
MM
23382003-01-30 Mark Mitchell <mark@codesourcery.com>
2339
2340 * class.c (check_field_decls): Only check C_TYPE_FIELDS_READONLY
2341 for class types.
2342 * cp-tree.h (C_TYPE_FIELDS_READONLY): Use a lang-specific bit
2343 rather than TYPE_LANG_FLAG_0.
2344 (TYPE_BUILT_IN): Remove.
2345 (TYPE_DEPENDENT_P): New macro.
2346 (TYPE_DEPENDENT_P_VALID): Likewise.
2347 (lang_type_class): Add fields_readonly.
2348 * decl.c (record_builtin_type): Don't set TYPE_BUILT_IN.
2349 * pt.c (dependent_type_p_r): New function, split out from ...
2350 (dependent_type_p): ... here. Memoize results.
2351 * search.c (dependent_base_p): Use dependent_type_p, not
2352 uses_template_parms.
2353 * typeck.c (build_modify_expr): Only check C_TYPE_FIELDS_READONLY
2354 for class types.
2355
14d22dd6
MM
23562003-01-29 Mark Mitchell <mark@codesourcery.com>
2357
2358 * call.c (build_field_call): Use build_new_op, not build_opfncall.
2359 (prep_operand): New function.
2360 (build_new_op): Use it. Remove dead code.
2361 * class.c (pushclass): Change "modify" parameter type from int to
2362 bool.
2363 (currently_open_class): Use same_type_p, not pointer equality.
2364 (push_nested_class): Adjust calls to pushclass, remove modify
2365 parameter.
2366 * cp-tree.h (INTEGRAL_OR_ENUMERATION_TYPE_P): New macro.
2367 (pushclass): Change prototype.
2368 (push_nested_class): Likewise.
2369 (grokoptypename): Remove.
2370 (build_opfncall): Remove.
2371 (value_dependent_expression_p): Declare.
2372 (resolve_typename_type): Likewise.
2373 (resolve_typename_type_in_current_instantiation): Likewise.
2374 (enter_scope_of): Remove.
2375 (tsubst): Remove.
2376 (tsubst_expr): Likewise.
2377 (tsubst_copy): Likewise.
2378 (tsubst_copy_and_build): Likewise.
2379 * decl.c (warn_about_implicit_typename_lookup): Remove.
2380 (finish_case_label): Return error_mark_node for erroneous labels.
2381 (start_decl): Adjust calls to push_nested_class.
2382 (grokfndecl): Call push_scope/pop_scope around call to
2383 duplicate_decls.
2384 (grokdeclarator): Do not call tsubst.
2385 (start_function): Adjust calls to push_nested_class.
2386 * decl2.c (grok_array_decl): Use build_new_op, not build_opfncall.
2387 (check_classfn): Use push_scope/pop_scope around type comparisions.
2388 (grokoptypename): Remove.
2389 (push_sscope): Adjust call to push_nested_class.
2390 * error.c (dump_type): Show cv-qualification of typename types.
2391 * init.c (build_member_call): Use build_new_op, not
2392 build_opfncall.
2393 * method.c (build_opfncall): Remove.
2394 * parser.c (cp_parser): Add allow_non_constant_expression_p and
2395 non_constant_expression_p.
2396 (cp_parser_constant_expression): Adjust prototype.
2397 (cp_parser_resolve_typename_type): Remove.
2398 (cp_parser_non_constant_expression): New function.
2399 (cp_parser_non_constant_id_expression): Likewise.
2400 (cp_parser_new): Set allow_non_constant_expression_p and
2401 non_constant_expression_p.
2402 (cp_parser_primary_expression): Reject `this' and `va_arg' in
2403 constant-expressions. Note that dependent names aren't really
2404 constant.
2405 (cp_parser_postfix_expression): Reject conversions to non-integral
2406 types in constant-expressions. Neither are increments or
2407 decrements.
2408 (cp_parser_unary_expression): Reject increments and decrements in
2409 constant-expressions.
2410 (cp_parser_direct_new_declarator): Adjust call to
2411 cp_parser_constant_expression.
2412 (cp_parser_cast_expression): Reject conversions to non-integral
2413 types in constant-expressions.
2414 (cp_parser_assignment_expression): Rejects assignments in
2415 constant-expressions.
2416 (cp_parser_expression): Reject commas in constant-expressions.
2417 (cp_parser_labeled_statement): Adjust call to
2418 cp_parser_constant_expression.
2419 (cp_parser_direct_declarator): Simplify array bounds, even in
2420 templates, when they are non-dependent. Use
2421 resolve_typename_type, not cp_parser_resolve_typename_type.
2422 (cp_parser_class_head): Use resolve_typename_type, not
2423 cp_parser_resolve_typename_type.
2424 (cp_parser_member_declaration): Adjust call to
2425 cp_parser_constant_expression.
2426 (cp_parser_constant_initializer): Likewise.
2427 (cp_parser_constructor_declarator): Use resolve_typename_type, not
2428 cp_parser_resolve_typename_type.
2429 (cp_parser_late_parsing_default_args): Adjust call to
2430 push_nested_class.
2431 * pt.c (tsubst): Give it internal linkage.
2432 (tsubst_expr): Likewise.
2433 (tsubst_copy): Likewise.
2434 (tsubst_copy_and_build): Likewise.
2435 (push_access_scope_real): Likewise.
2436 (tsubst_friend_class): Likewise.
2437 (instantiate_class_template): Adjust call to pushclass.
2438 (value_dependent_expression_p): Give it external linkage.
2439 Robustify.
2440 (resolve_typename_type): New function.
2441 * semantics.c (finish_call_expr): Use build_new_op, not
2442 build_opfncall.
2443 (begin_constructor_declarator): Remove.
2444 (begin_class_definition): Adjust call to pushclass.
2445 (enter_scope_of): Remove.
2446 * typeck.c (comptypes): Resolve typename types as appropriate.
2447 (build_x_indirect_ref): Use build_new_op, not build_opfncall.
2448 (build_x_compound_expr): Likewise.
2449 (build_modify_expr): Likewise.
2450 (build_x_modify_expr): Likewise.
2451 * typeck2.c (build_x_arrow): Likewise.
40a4184c 2452
be5a07ac
FJ
24532003-01-29 Fariborz Jahanian <fjahanian@apple.com>
2454
d9b2742a 2455 * pt.c (last_pending_template) Declare GTY().
be5a07ac 2456
710b73e6
KL
24572003-01-29 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2458
2459 PR c++/8591
2460 * parser.c (cp_parser_elaborated_type_specifier): Convert
2461 TEMPLATE_DECL to TYPE_DECL only when processing template friends.
2462 (cp_parser_maybe_treat_template_as_class): Remove redundant tests.
2463
f2ce60b8
NS
24642003-01-28 Nathan Sidwell <nathan@codesourcery.com>
2465
9ae58faf
NS
2466 PR c++/9437
2467 * pt.c (unify): Don't unify '*T' with 'U C::*'.
2468
f2ce60b8
NS
2469 PR c++/3902
2470 * parser.c (cp_parser_decl_specifier_seq): Cannot have constructor
2471 inside a declarator.
2472
a2ddc397
NS
24732003-01-27 Nathan Sidwell <nathan@codesourcery.com>
2474
2475 * class.c (update_vtable_entry_for_fn): Add index parameter.
2476 Generate vcall thunk for covariant overriding from a virtual
2477 primary base.
2478 (dfs_modify_vtables): Adjust.
2479
bbaab916
NS
24802003-01-25 Nathan Sidwell <nathan@codesourcery.com>
2481
2482 PR c++/9403
2483 * parser.c (cp_parser_class_or_namespace_name): Reject duplicate
2484 template keyword.
2485 (cp_parser_base_specifier): Look for and consume a
2486 TEMPLATE keyword. Replace switch with array index.
2487
2488 PR c++/795
2489 * semantics.c (finish_non_static_data_member): Remember the
2490 field's type even in a template.
2491
2492 PR c++/9415
2493 * pt.c (tsubst_copy_and_build, CALL_EXPR): BASELINK exprs are
2494 already scoped.
40a4184c 2495
bbaab916
NS
2496 PR c++/8545
2497 * parser.c (cp_parser_cast_expression): Be more tentative.
2498
fb8eab96
KL
24992003-01-25 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2500
2501 * cp-tree.h (flagged_type_tree_s): Remove.
2502 (check_for_new_type): Likewise.
2503 * typeck2.c (check_for_new_type): Likewise.
2504
c38e9817
NN
25052003-01-23 Nathanael Nerode <neroden@gcc.gnu.org>
2506
ee42dd9d
NN
2507 * dump.c: ANSIfy function declarations and definitions.
2508
c38e9817
NN
2509 * cp-tree.h, decl.h: Get rid of PARAMS. Again.
2510
c006d942
MM
25112003-01-22 Mark Mitchell <mark@codesourcery.com>
2512
2513 PR c++/9354
2514 * init.c (build_new): Set the type of the new-expression, even
2515 when processing_templte_decl.
2516
2517 PR c++/9216
2518 * parser.c (cp_parser_primary_expression): Improve error message
2519 for templates used in an expression context.
2520
2521 PR c++/8696
2522 * parser.c (cp_parser_decl_specifier_seq): Commit to tentative
2523 parse when encountering "typedef".
2524
94edc4ab
NN
25252003-01-22 Nathanael Nerode <neroden@gcc.gnu.org>
2526
2527 * class.c, parser.c: ANSIfy function definitions and declarations.
2528
e0860732
MM
25292003-01-22 Mark Mitchell <mark@codesourcery.com>
2530
65a5559b
MM
2531 PR c++/9328
2532 * error.c (dump_decl): For an OVERLOAD, just print the name of the
2533 function; it doesn't make sense to try to print its type.
2534 * semantics.c (finish_typeof): Issue errors about invalid uses.
2535
e0860732
MM
2536 PR c++/9298
2537 * parser.c (cp_parser_consume_semicolon_at_end_of_statement): New
2538 function.
2539 (cp_parser_expression_statement): Use it.
2540 (cp_parser_explicit_instantiation): Likewise.
2541 * pt.c (do_decl_instantiation): Improve error handling logic.
40a4184c 2542
1fb3244a
MM
25432003-01-22 Mark Mitchell <mark@codesourcery.com>
2544
4eb6d609
MM
2545 PR c++/9384
2546 * parser.c (cp_parser_using_declaration): Issue error messages
2547 about name resolution failures here.
2548
1fb3244a
MM
2549 PR c++/9388
2550 * class.c (currently_open_derived_class): Use dependent_type_p.
2551 * cp-tree.h (dependent_type_p): New function.
2552 (dependent_template_arg_p): Likewise.
2553 (dependent_template_p): Likewise.
2554 (type_dependent_expression_p): Likewise.
2555 * parser.c (cp_parser_dependent_type_p): Remove.
2556 (cp_parser_value_dependent_type_p): Likewise.
2557 (cp_parser_type_dependent_expression_p): Likewise.
2558 (cp_parser_dependent_template_arg_p): Likewise.
2559 (cp_parser_dependent_template_id_p): Likewise.
2560 (cp_parser_dependent_template_p): Likewise.
2561 (cp_parser_diagnose_invalid_type_name): Replace
2562 cp_parser_dependent_type_p with dependent_type_p, etc.
2563 (cp_parser_primary_expresion): Likewise.
2564 (cp_parser_nested_name_specifier_opt): Likewise.
2565 (cp_parser_postfix_expression): Likewise.
2566 (cp_parser_unary_expression): Likewise.
2567 (cp_parser_template_name): Likewise.
2568 (cp_parser_class_name): Likewise.
2569 (cp_parser_lookup_name): Likewise.
2570 * pt.c (dependent_type_p): New function.
2571 (value_dependent_expression_p): Likewise.
2572 (type_dependent_expression_p): Likewise.
2573 (dependent_template_arg_p): Likewise.
2574 (dependent_template_id_p): Likewise.
2575 (dependent_template_p): Likewise.
40a4184c 2576
1fb3244a
MM
2577 PR c++/9285
2578 PR c++/9294
00b51d29 2579 * parser.c (cp_parser_simple_declaration): Return quickly when
d9b2742a 2580 encountering errors.
1fb3244a 2581
dd859b8a
KG
25822003-01-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2583
2584 Make-lang.in (cp/decl.o-warn): Add -Wno-error.
2585
753225c1
JM
25862003-01-17 Jason Merrill <jason@redhat.com>
2587
2588 PR c++/9167, c++/9358
2589 * decl.c (require_complete_types_for_parms): Also update DECL_ARG_TYPE.
2590
77b996cc
JM
25912003-01-17 Jason Merrill <jason@redhat.com>
2592
2593 PR c++/9342
2594 * call.c (build_conditional_expr): Always do lvalue-rvalue
2595 conversion.
2596
5dae1114
MM
25972003-01-17 Mark Mitchell <mark@codesourcery.com>
2598
2599 PR c++/9294
2600 * cp-tree.def (BASELINK): Make it class 'x', not class 'e'.
2601 * cp-tree.h (BASELINK_BINFO): Adjust.
2602 (BASELINK_FUNCTIONS): Likewise.
2603 (BASELINK_ACCESS_BINFO): Likewise.
2604 (tree_baselink): New structure.
2605 (cp_tree_node_structure_enum): Add TS_CP_BASELINK.
2606 (lang_tree_node): Add baselink.
2607 * decl.c (cp_tree_node_structure): Add BASELINK case.
2608 * search.c (build_baselink): Adjust.
2609 * tree.c (cp_walk_subtrees): Add BASELINK case. Remove BASELINK_P
2610 test from TREE_LIST case.
2611
2612 PR c++/9272
2613 * parser.c (cp_parser_constructor_declarator_p): Do not assume
2614 that a constructor cannot be declared outside of its own class.
40a4184c 2615
5dae1114
MM
2616 * parser.c (cp_parser_resolve_typename_type): If the scope cannot
2617 be resolved, neither can the qualified name.
2618
2619 * rtti.c (get_pseudo_ti_desc): Fix thinko.
2620
a48cccea
JM
26212003-01-16 Jason Merrill <jason@redhat.com>
2622
2623 PR c++/8564
2624 * init.c (build_vec_init): Re-add maxindex parm.
2625 (perform_member_init, build_aggr_init): Pass it.
2626 (build_new_1): Pass it. Use an incomplete array type for full_type.
2627 * typeck.c (build_modify_expr): Pass it.
2628 * cp-tree.h: Adjust.
2629
cc23546e
JO
26302003-01-16 Jeffrey D. Oldham <oldham@codesourcery.com>
2631
2632 * cp-tree.h (tsubst_copy_and_build): New declaration.
2633 * pt.c (tsubst_copy): Remove 'build_expr_from_tree' from comment.
2634 (tsubst_expr): Use 'tsubst_copy_and_build'. Update initial comment.
2635 (tsubst_copy_and_build): New function.
2636
8fbc5ae7
MM
26372003-01-16 Mark Mitchell <mark@codesourcery.com>
2638
2639 * cp-tree.h (lang_type_class): Remove is_partial_instantiation.
2640 (PARTIAL_INSTANTIATION_P): Remove.
2641 (IMPLICIT_TYPENAME_P): Likewise.
2642 (IMPLICIT_TYPENAME_TYPE_DECL_P): Likewise.
2643 (build_typename_type): Remove declaration.
2644 (parmlist_is_exprlist): Likewise.
2645 * decl.c (build_typename_type): Make it static, remove third
2646 parameter.
2647 (push_class_binding): Don't do implicit typename stuff.
2648 (make_typename_type): Likewise.
2649 (lookup_name_real): Likewise.
2650 (grokdeclarator): Don't try to convert declarations into
2651 initializations. Don't do implicit typename stuff.
2652 (parmlist_is_exprlist): Remove.
2653 (xref_basetypes): Simplify.
2654 * decl2.c (grokfield): Don't try to convert declarations into
2655 initializations.
2656 (build_anon_union_vars): Do this while processing templates, too.
2657 (finish_anon_union): Likewise.
2658 * error.c (dump_type): Remove implicit typename handling.
2659 * parser.c (cp_parser_diagnose_invalid_type_name): New method.
2660 (cp_parser_primary_expression): Correct handling of names not
2661 found by unqualified name lookup in templates.
2662 (cp_parser_nested_name_specifier_opt): Avoid checking dependency
2663 of types when possible.
2664 (cp_parser_simple_declaration): Complain intelligently about some
2665 invalid declarations.
2666 (cp_parser_member_declaration): Likewise.
2667 (cp_parser_constructor_declarator_p): Don't check when we're in a
2668 function scope.
2669 * pt.c (instantiate_class_template): Remove
2670 PARTIAL_INSTANTIATION_P gunk.
2671 * search.c (lookup_field_r): Don't build implicit typenames.
2672 (marked_pushdecls_p): Don't enter dependent base types.
2673 (unmarked_pushdecls_p): Likewise.
2674 * semantics.c (begin_class_definition): Remove implicit typename
2675 stuff.
2676
712becab
NS
26772003-01-16 Nathan Sidwell <nathan@codesourcery.com>
2678
2679 PR c++/9212
2680 * parser.c (cp_parser_direct_declarator): If accepting either
2681 abstract or named, the name must be an unqualified-id.
2682
fc555370
KG
26832003-01-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2684
2685 * class.c (layout_virtual_bases): Avoid signed/unsigned warning.
2686
dd1b7476
KG
26872003-01-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2688
2689 * decl2.c (check_classfn): Fix uninitialized warning.
2690 (build_anon_union_vars): Likewise.
2691 * pt.c (tsubst_copy): Likewise.
2692
a7189b49
JO
26932003-01-14 Jeffrey D. Oldham <oldham@codesourcery.com>
2694
2695 Further conform g++'s __vmi_class_type_info to the C++ ABI
2696 specification.
2697 * rtti.c (dfs_class_hint_mark): Do not set hints not specified by
2698 the specification.
2699 (class_hint_flags): Likewise.
2700
cf22909c
KL
27012003-01-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2702
2703 * config-lang.in: Add semantics.c to gtfiles.
2704 * cp-tree.h (flagged_type_tree_s): Remove lookups field.
2705 (saved_scope): Likewise.
2706 (type_lookups): Remove.
2707 (deferred_access): New structure.
2708 (type_access_control): Remove.
2709 (save_type_access_control): Likewise.
2710 (reset_type_access_control): Likewise.
2711 (decl_type_access_control): Likewise.
2712 (push_deferring_access_checks): Declare.
2713 (resume_deferring_access_checks): Likewise.
2714 (stop_deferring_access_checks): Likewise.
2715 (pop_deferring_access_checks): Likewise.
2716 (get_deferred_access_checks): Likewise.
2717 (pop_to_parent_deferring_access_checks): Likewise.
2718 (perform_deferred_access_checks): Likewise.
2719 (perform_or_defer_access_check): Likewise.
2720 * decl.c (make_typename_type): Use perform_or_defer_access_check.
2721 (make_unbound_class_template): Likewise.
2722 (grokdeclarator): Don't call decl_type_access_control.
2723 * parser.c (cp_parser_context): Remove deferred_access_checks
2724 and deferring_access_checks_p fields.
2725 (cp_parser_context_new): Adjust.
2726 (cp_parser): Remove access_checks_lists.
2727 (cp_parser_defer_access_check): Remove.
2728 (cp_parser_start_deferring_access_checks): Remove.
2729 (cp_parser_stop_deferring_access_checks): Remove.
2730 (cp_parser_perform_deferred_access_checks): Remove.
2731 (cp_parser_nested_name_specifier_opt): Use new deferred access
2732 functions.
2733 (cp_parser_simple_declaration): Likewise.
2734 (cp_parser_template_id): Likewise.
2735 (cp_parser_function_definition): Likewise.
2736 (cp_parser_class_specifier): Likewise.
2737 (cp_parser_lookup_name): Likewise.
2738 (cp_parser_single_declaration): Likewise.
2739 (cp_parser_pre_parsed_nested_name_specifier): Likewise.
2740 (cp_parser_parse_tentatively): Likewise.
2741 (cp_parser_parse_definitely): Likewise.
2742 (yyparse): Likewise.
2743 (cp_parser_init_declarator): Remove access_checks parameter.
2744 Use new deferred access functions.
2745 (cp_parser_function_definition_from_specifiers_and_declarator):
2746 Likewise.
2747 (cp_parser_class_head): Remove deferring_access_checks_p and
2748 saved_access_checks parameters. Use new deferred access functions.
2749 (cp_parser_member_specification_opt): Don't call
2750 reset_type_access_control.
2751 * search.c (type_access_control): Remove.
2752 * semantics.c: Include "gt-cp-semantics.h".
2753 (deferred_type_access_control): Remove.
2754 (deferred_access_stack): New variable.
2755 (deferred_access_free_list): Likewise.
2756 (push_deferring_access_checks): New function.
2757 (resume_deferring_access_checks): Likewise.
2758 (stop_deferring_access_checks): Likewise.
2759 (pop_deferring_access_checks): Likewise.
2760 (get_deferred_access_checks): Likewise.
2761 (pop_to_parent_deferring_access_checks): Likewise.
2762 (perform_deferred_access_checks): New function, adapted from
2763 cp_parser_perform_deferred_access_checks.
2764 (perform_or_defer_access_check): New function, adapted from
2765 cp_parser_defer_access_check.
2766 (current_type_lookups): Remove.
2767 (deferred_type_access_control): Likewise.
2768 (decl_type_access_control): Likewise.
2769 (save_type_access_control): Likewise.
2770 (reset_type_access_control): Likewise.
2771 (begin_function_definition): Adjust.
2772 (begin_class_definiton): Likewise.
2773
f576dfc4
JM
27742003-01-13 Jason Merrill <jason@redhat.com>
2775
2776 PR c++/8748
2777 * class.c (build_base_path): Take the address before calling save_expr.
2778
2779 * call.c (build_user_type_conversion_1): Do set ICS_BAD_FLAG if
2780 all the ambiguous conversions are bad.
2781
2782 * class.c (maybe_warn_about_overly_private_class): Don't stop
2783 searching when we find a nonprivate method.
2784
2785 * typeck.c (build_class_member_access_expr): Use unary_complex_lvalue.
2786
8fa1ad0e
MM
27872003-01-12 Mark Mitchell <mark@codesourcery.com>
2788
2789 * cp-tree.h (get_arglist_len_in_bytes): Remove.
2790
2791 PR c++/9264
2792 * parser.c (cp_parser_elaborated_type_specifier): Handle erroneous
2793 typeame types more robustly.
2794
15d2cb19
PE
27952003-01-11 Phil Edwards <pme@gcc.gnu.org>
2796
2797 * parser.c: Fix comment typos.
2798
a6f6052a
MM
27992003-01-10 Mark Mitchell <mark@codesourcery.com>
2800
99152b95 2801 PR c++/9099
a6f6052a
MM
2802 * parser.c (cp_parser_scope_through_which_access_occurs): Handle
2803 an object_type which is not a class type.
2804
3466b292
GK
28052003-01-10 Geoffrey Keating <geoffk@apple.com>
2806
2807 * parser.c (cp_parser_late_parsing_for_member): Don't cast to void.
2808 (cp_parser_late_parsing_default_args): Likewise.
2809
b2f29cd9
NN
28102003-01-10 Nathanael Nerode <neroden@gcc.gnu.org>
2811
2812 * cfns.gperf: ANSIfy function declarations.
2813 * cfns.h: Regenerate.
2814 * cp-tree.h: ANSIfy function declarations.
2815
2050a1bb
MM
28162003-01-10 Mark Mitchell <mark@codesourcery.com>
2817
2818 * cp-tree.h (reparse_absdcl_as_expr): Remove.
2819 (reparse_absdcl_as_casts): Likewise.
2820 (reparse_decl_as_expr): Likewise.
2821 (finish_decl_parsing): Likewise.
2822 * decl2.c (reparse_absdcl_as_expr): Remove.
2823 (reparse_absdcl_as_casts): Likewise.
2824 (repase_decl_as_expr): Likewise.
2825 (finish_decl_parsing): Likewise.
2826
2827 PR c++/9128
2828 PR c++/9153
2829 PR c++/9171
2830 * parser.c (cp_parser_pre_parsed_nested_name_specifier): New
2831 function.
2832 (cp_parser_nested_name_specifier_opt): Correct the
2833 check_dependency_p false.
2834 (cp_parser_postfix_expression): Fix formatting.
2835 (cp_parser_decl_specifier_seq): Avoid looking for constructor
2836 declarators when possible.
2837 (cp_parser_template_id): Avoid performing name-lookup when
2838 possible.
2839 (cp_parser_class_head): Do not count specializations when counting
2840 levels of templates.
2841 (cp_parser_constructor_declarator_p): Return immediately if
2842 there's no chance that the tokens form a constructor declarator.
2843 * rtti.c (throw_bad_typeid): Add comment. Do not return an
2844 expression with reference type.
2845 (get_tinfo_decl_dynamic): Do not return an expression with
2846 reference type.
2847 (build_typeid): Add comment. Do not return an expression with
2848 reference type.
2849 * typeck.c (build_class_member_access_expr): Improve handling of
2850 conditionals and comma-expressions as objects.
2851
45225759
NN
28522003-01-09 Nathanael Nerode <neroden@gcc.gnu.org>
2853
d9b2742a
ZW
2854 * cfns.gperf: ANSIfy function declarations.
2855 * cfns.h: Regenerate.
2856 * cp-tree.h: ANSIfy function declarations.
2857 * parser.c: ANSIfy function declarations & definitions.
b2f29cd9 2858
45225759
NN
2859 * decl.c (bad_specifiers): Fix parameter order error I introduced.
2860
17211ab5
GK
28612003-01-09 Geoffrey Keating <geoffk@apple.com>
2862
2863 Merge from pch-branch:
2864
2865 2003-01-09 Geoffrey Keating <geoffk@apple.com>
2866
2867 Merge to tag pch-merge-20030102:
40a4184c 2868
17211ab5
GK
2869 * semantics.c (finish_translation_unit): Don't call finish_file.
2870 * parser.c: Don't include ggc.h.
2871 (cp_lexer_new_main): Rename from cp_lexer_new, only create main lexer,
2872 read first token here. Don't allow PCH files after the first
2873 token is read.
2874 (cp_lexer_new_from_tokens): Duplicate functionality from cp_lexer_new.
2875 (cp_lexer_get_preprocessor_token): Allow LEXER to be NULL.
2876 (cp_parser_new): Call cp_lexer_new_main before allocating GCed memory.
2877 (cp_parser_late_parsing_for_member): Don't duplicate call to
2878 cp_lexer_set_source_position_from_token.
2879 (cp_parser_late_parsing_default_args): Likewise.
2880 (yyparse): Call finish_file after clearing the_parser.
2881
2882 2002-12-11 Geoffrey Keating <geoffk@apple.com>
2883
2884 * Make-lang.in: Remove $(GGC_H) from all dependencies.
2885 (CXX_TREE_H): Add $(GGC_H).
40a4184c 2886 * class.c: Don't include ggc.h.
17211ab5
GK
2887 (field_decl_cmp): Make parameters be 'const void *' to match qsort.
2888 (method_name_cmp): Likewise.
2889 (resort_data): New variable.
2890 (resort_field_decl_cmp): New.
2891 (resort_method_name_cmp): New.
2892 (resort_sorted_fields): New.
2893 (resort_type_method_vec): New.
2894 (finish_struct_methods): Delete cast.
2895 (finish_struct_1): Delete cast.
2896 * cp-tree.h: Include ggc.h.
2897 (struct lang_type_class): Add reorder attribute to field `methods'.
2898 (union lang_decl_u3): Add reorder attribute to field `sorted_fields'.
2899 (resort_sorted_fields): New prototype.
2900 (resort_type_method_vec): New prototype.
2901 * call.c: Don't include ggc.h.
2902 * decl.c: Likewise.
2903 * decl2.c: Likewise.
2904 * init.c: Likewise.
2905 * lex.c: Likewise.
2906 * method.c: Likewise.
2907 * optimize.c: Likewise.
2908 * parse.y: Likewise.
2909 * pt.c: Likewise.
2910 * repo.c: Likewise.
2911 * search.c: Likewise.
2912 * semantics.c: Likewise.
2913 * spew.c: Likewise.
2914 * tree.c: Likewise.
2915
2916 * lang-specs.h: Remove comment.
2917
2918 2002-12-03 Geoffrey Keating <geoffk@apple.com>
2919
2920 * cp-tree.h (struct operator_name_info_t): Mark for GTY machinery.
2921 (operator_name_info): Mark to be saved for PCH, specify size.
2922 (assignment_operator_name_info): Likewise.
2923
2924 2002-11-19 Geoffrey Keating <geoffk@apple.com>
2925
2926 * decl.c (anon_cnt): Mark to be saved for PCH.
2927
2928 2002-10-25 Geoffrey Keating <geoffk@apple.com>
2929
2930 * lex.c (init_reswords): Delete now-untrue comment.
2931 Allocate ridpointers using GGC.
2932
2933 2002-10-04 Geoffrey Keating <geoffk@apple.com>
2934
2935 * cp-tree.h (union lang_decl_u2): Add tags to all fields.
2936
2937 * g++spec.c (lang_specific_driver): Don't include standard
2938 libraries in `added'.
2939
2940 2002-08-27 Geoffrey Keating <geoffk@redhat.com>
2941
2942 * decl2.c (finish_file): Call c_common_write_pch.
2943 * Make-lang.in (CXX_C_OBJS): Add c-pch.o.
2944
2945 2002-08-17 Geoffrey Keating <geoffk@redhat.com>
2946
2947 * g++spec.c (lang_specific_driver): Treat .h files as C++ header
2948 files when using g++.
2949 * lang-specs.h: Handle compiling C++ header files.
2950
ca5dd8b7
JJ
29512003-01-09 Jakub Jelinek <jakub@redhat.com>
2952
2953 * decl.c (start_decl): Only check DECL_THREAD_LOCAL for VAR_DECLs.
2954
0f399e5f
KL
29552003-01-09 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2956
2957 * pt.c (push_access_scope_real): Call push_to_top_level for
2958 function in namespace scope.
2959 (pop_access_scope): Call pop_from_top_level for function in
2960 namespace scope.
2961
c456a45a
JJ
29622003-01-09 Jakub Jelinek <jakub@redhat.com>
2963
2964 * decl.c (start_decl): Don't set DECL_COMMON for __thread variables.
2965
2c6ce97e
CC
29662003-01-09 Christian Cornelssen <ccorn@cs.tu-berlin.de>
2967
2968 * Make-lang.in (c++.install-common, c++.install-man,
2969 c++.uninstall): Prepend $(DESTDIR) to destination paths in
2970 all (un)installation commands.
2971 (c++.install-common): Rewrite $(LN) commands to support
2972 DESTDIR with "ln" as well as with "ln -s".
2973
f74dbcec
JM
29742003-01-08 Jason Merrill <jason@redhat.com>
2975
2976 * parser.c (cp_parser_primary_expression): See through explicitly
2977 scoped ALIAS_DECLs, too.
2978
11f6b451
NN
29792003-01-08 Nathanael Nerode <neroden@gcc.gnu.org>
2980
1774f99d
NN
2981 * decl.c: Remove some #if 0 code.
2982
11f6b451
NN
2983 * decl.c: ANSIfy function declarations.
2984
8caf4c38
MM
29852003-01-07 Mark Mitchell <mark@codesourcery.com>
2986
2987 * parser.c (cp_parser_asm_definition): Correct handling of omitted
2988 operands.
2989
2b59fc25
KL
29902003-01-08 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
2991
2992 PR c++/9030
2993 * decl.c (make_typename_type): Check access only when tf_error.
2994 (make_unbound_class_template): Likewise.
2995 * pt.c (saved_access_scope): New variable.
2996 (push_access_scope_real): New function.
2997 (push_access_scope): Likewise.
2998 (pop_access_scope): Likewise.
2999 (tsubst_default_argument): Use them.
3000 (instantiate_template): Likewise.
3001 (regenerate_decl_from_template): Likewise.
3002 (instantiate_decl): Likewise.
3003 (get_mostly_instantiated_function_type): Likewise.
3004
3f7617e4
NN
30052003-01-07 Nathanael Nerode <neroden@gcc.gnu.org>
3006
3007 * tree.c: Delete bogus #if 0 code.
3008
c9372112
AS
30092003-01-07 Andreas Schwab <schwab@suse.de>
3010
3011 * class.c (layout_class_type): Don't use
3012 PCC_BITFIELD_TYPE_MATTERS if not defined.
3013
8218bd34
MM
30142003-01-06 Mark Mitchell <mark@codesourcery.com>
3015
c10cdb3d
MM
3016 PR c++/9165
3017 * decl2.c (build_cleanup): Mark the object as used.
3018
69f794a7
MM
3019 * pt.c (retrieve_local_specialization): Revert 2003-01-05 change.
3020 (hash_local_specialization): New function.
3021 (register_local_specialization): Revert 2003-01-05 change.
3022 (instantiate_decl): Use hash_local_specialization when creating
3023 the local_specializations table.
40a4184c 3024
4c4646b5
MM
3025 * decl2.c (mark_used): Do not synthesize thunks.
3026
63e5f567
MM
3027 * class.c (layout_class_type): Correct handling of unnamed
3028 bitfields wider than their types.
3029
8218bd34
MM
3030 PR c++/9189
3031 * parser.c (cp_parser): Remove default_arg_types. Update
3032 documentation for unparsed_functions_queues.
3033 (cp_parser_late_parsing_default_args): Take a FUNCTION_DECL as the
3034 parameter.
3035 (cp_parser_new): Don't set parser->default_arg_types.
3036 (cp_parser_function_definition): Adjust usage of
3037 unparsed_funtions_queues.
3038 (cp_parser_class_specifier): Don't mess with
3039 parser->default_arg_types. Handle default argument processing in
3040 a separate phase from function body processing.
3041 (cp_parser_template_declaration_after_export): Adjust usage of
3042 unparsed_functions_queues.
3043 (cp_parser_late_parsing_for_member): Do not handle default
3044 arguments.
3045
62b8a44e
NS
30462003-01-06 Nathan Sidwell <nathan@codesourcery.com>
3047
3048 PR c++/9109
3049 * parser.c (cp_parser_declarator_kind): New enum.
3050 (cp_parser_declarator): Adjust.
3051 (cp_parser_direct_declarator): Adjust. Allow for either named or
3052 abstract declarator. Prefer abstract, if possible. Allow
3053 parenthesized function name.
3054 (cp_parser_condition): Adjust cp_parser_declarator call.
3055 (cp_parser_explicit_instantiation): Likewise.
3056 (cp_parser_init_declarator): Likewise.
3057 (cp_parser_type_id): Likewise.
3058 (cp_parser_function_definition): Likewise.
3059 (cp_parser_member_declaration): Likewise.
3060 (cp_parser_parameter_declaration): Use cp_parser_declarator to do
3061 the tentative parsing.
3062 (cp_parser_exception_declaration): Likewise.
3063
ec194454
MM
30642003-01-05 Mark Mitchell <mark@codesourcery.com>
3065
3066 * parser.c (cp_parser_template_parameter): Adjust call to
3067 cp_parser_parameter_declaration.
3068 (cp_parser_parameter_declaration_list): Likewise.
3069 (cp_parser_parameter_declaration): Replace
3070 greater_than_is_operator_p with template_parm_p parameter. Do not
3071 cache tokens for template default arguments.
3072
3073 * pt.c (retrieve_local_specialization): Use htab_find, not
3074 htab_find_with_hash.
3075 (register_local_specialization): Use htab_find_slot, not
3076 htab_find_slot_with_hash.
3077 (instantiate_decl): Pass a hash function to htab_create.
40a4184c 3078
39b1af70
KG
30792003-01-04 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3080
3081 * parser.c (cp_parser_binary_expression,
3082 cp_parser_multiplicative_expression,
3083 cp_parser_additive_expression, cp_parser_shift_expression,
3084 cp_parser_relational_expression, cp_parser_equality_expression,
3085 cp_parser_and_expression, cp_parser_exclusive_or_expression,
3086 cp_parser_inclusive_or_expression,
3087 cp_parser_logical_and_expression, cp_parser_logical_or_expression,
3088 cp_parser_binary_expression): Const-ify.
3089
1bb2cc34
MM
30902003-01-04 Mark Mitchell <mark@codesourcery.com>
3091
3092 * method.c (use_thunk): Disable access control while building the
3093 body of the thunk.
3094
3fd5abcf
NN
30952003-01-03 Nathanael Nerode <neroden@gcc.gnu.org>
3096
40a4184c 3097 * cvt.c, decl.c, decl2.c: This is the C++ front end, not the C
3fd5abcf
NN
3098 front end.
3099
9aad8f83
MA
31002003-01-03 Matt Austern <austern@apple.com>
3101
3102 * cp-tree.h (struct lang_type_class): add field for key method
3103 (cp_global_trees): rename dynamic_classes to keyed_classes
3104 (key_method): add definition
3105 * class.c (finish_struct_1): compute class's key method, and add
3106 the class to keyed_classes list if there is no key method.
3107 * decl.c (finish_function): add class to keyed_classes list if we
3108 see a definition of the class's key method.
3109 * pt.c (instantiate_class_template): add template specialization
3110 of a dynamic class to keyed_classes list.
3111 * decl2.c (key_method): remove
3112 (finish_file): iterate only through keyed_classes list when
3113 deciding whether to emit vtables, remove class from its list after
3114 we do the emission.
40a4184c 3115
6cce57b0
JM
31162003-01-02 Jason Merrill <jason@redhat.com>
3117
4e8dca1c
JM
3118 * call.c (build_conditional_expr): Stabilize lvalues properly.
3119 * cvt.c (ocp_convert): Don't build NOP_EXPRs of class type.
3120 * tree.c (lvalue_p_1): Don't allow sloppy NOP_EXPRs as lvalues.
3121 Don't allow CALL_EXPR or VA_ARG_EXPR, either.
3122
3123 * call.c (convert_like_real): Call decl_constant_value for an
3124 IDENTITY_CONV even if there are no more conversions.
3125
3126 * cvt.c (build_up_reference): Don't push unnamed temps.
3127
3128 * decl2.c (do_namespace_alias): Namespace aliases are DECL_EXTERNAL.
3129
3130 * dump.c (cp_dump_tree): Don't try to dump class-specific fields
3131 for a backend struct.
3132
3133 * except.c (wrap_cleanups_r, build_throw): Make
3134 MUST_NOT_THROW_EXPRs void.
3135 * init.c (expand_default_init): Update to handle MUST_NOT_THROW_EXPR.
3136
3137 * init.c (build_vec_delete_1): Pre-evaluate the base address.
3138
3139 * init.c (get_temp_regvar): Simplify logic.
3140
3141 * tree.c (cp_copy_res_decl_for_inlining): Only do debug tweaks if
3142 our replacement is a decl.
3143
6cce57b0
JM
3144 * decl.c (cp_make_fname_decl): Push the decls inside the
3145 outermost scope.
3146
31758337
NS
31472003-01-03 Nathan Sidwell <nathan@codesourcery.com>
3148
3149 PR c++/45, c++/3784
3150 * tree.c (cp_tree_equal, TEMPLATE_PARM_INDEX): The types must be
3151 the same too.
3152
24c0ef37
GS
31532003-01-03 Graham Stott <graham.stott@btinternet.com>
3154
3155 * parser.c (struct cp_parser): Add access_checks_lists field
3156 (cp_parser_simple_declaration): Use.
40a4184c 3157 (cp_parser_init_declarator): Likewise.
24c0ef37 3158
5e8a153a
MM
31592003-01-02 Mark Mitchell <mark@codesourcery.com>
3160
1092805d
MM
3161 * parser.c (cp_parser_declaration): Accept the __extension__
3162 keyword before the declaration.
3163
4971227d
MM
3164 PR c++/2843
3165 * parser.c (cp_parser_parameter_declaration): Allow attributes to
3166 appear after the declarator.
3167
5e8a153a
MM
3168 * call.c (build_new_method_call): Fix typo in message format
3169 string.
3170
3beb3abf
MM
31712003-01-02 Mark Mitchell <mark@codesourcery.com>
3172
f7b5ecd9
MM
3173 * parser.c (cp_lexer_next_token_is): Declare it inline.
3174 (cp_lexer_set_source_position_from_token): Likewise.
3175 (cp_lexer_debugging_p): Likewise.
3176 (cp_parser_parsing_tentatively): Likewise.
3177 (cp_parser_nested_name_specifier_opt): Reduce the number of calls
3178 to the cp_lexer_peek_token.
1092805d 3179
3beb3abf
MM
3180 * parser.c (cp_parser_sizeof_operand): Do not evaluate the
3181 expression.
3182
43c6a96a
SB
31832003-01-02 Steven Bosscher <s.bosscher@student.tudelft.nl>
3184
3185 * cp/except.c, cp/expr.c, cp/friend.c, cp/g++spec.c,
3186 cp/lang-options.h, cp/lang-specs.h, cp/lex.h, cp/ptree.c,
3187 cp/repo.c: Fix copyright years.
3188
c58b209a
NB
31892003-01-01 Neil Booth <neil@daikokuya.co.uk>
3190
3191 * lex.c: Remove superfluous include of cpplib.h.
3192 (CONSTRAINT): Define without conditions.
3193 (init_cp_pragma): Use c_register_pragma.
3194
7347c2c5
NB
31952002-12-31 Neil Booth <neil@daikokuya.co.uk>
3196
3197 * .cvsignore: Remove.
3198
f5adbb8d
SB
31992002-12-31 Steven Bosscher <s.bosscher@student.tudelft.nl>
3200
3201 * call.c, class.c, cp-lang.c, cp-tree.h, cvt.c, dump.c, error.c,
3202 except.c, expr.c friend.c, g++spec.c, init.c, lang-options.h,
3203 lang-specs.h, lex.c, mangle.c, method.c, optimize.c, parser.c,
3204 pt.c, ptree.c, repo.c, rtti.c, search.c, semantics.c, tree.c,
3205 typeck.c, typeck2.c: Replace "GNU CC" with "GCC" in the
3206 copyright header.
3207 * lex.h: parse.y is dead, so don't mention it. Also replace the
3208 copyright header with the default GNU copyright header.
3209
f1aba0a5
MM
32102002-12-31 Mark Mitchell <mark@codesourcery.com>
3211
eea9800f
MM
3212 * cp-tree.h (LOOKUP_TEMPLATES_EXPECTED): Remove.
3213 (lookup_name_namespace_only): Likewise.
3214 (begin_only_namespace_names): Likewise.
3215 (end_only_namespace_names): Likewise.
3216 * decl.c (only_namespace_names): Remove.
3217 (qualify_lookup): Do not check LOOKUP_TEMPLATES_EXPECTED.
3218 (lookup_name_real): Do not check only_namespace_names.
3219 (lookup_name_namespace_only): Remove.
3220 (begin_only_namespace_names): Likewise.
3221 (end_only_namespace_names): Likewise.
3222 * parser.c (cp_parser_nested_name_specifier_opt): Handle erroneous
3223 nested-name-specifiers more gracefully.
3224 (cp_parser_class_or_namespace_name): Avoid looking up namespace
3225 names when they cannot possibly appear.
3226 (cp_parser_template_name): Adjust call to cp_parser_lookup_name.
3227 (cp_parser_elaborated_type_specifier): Likewise.
3228 (cp_parser_namespace_name): Only look for namespace names.
3229 (cp_parser_lookup_name): Add is_namespace parameter.
3230 (cp_parser_lookup_name_simple): Adjust call to
3231 cp_parser_lookup_name.
3232
f1aba0a5
MM
3233 * parser.c (cp_parser_dependent_type_p): Fix thinko.
3234
eea9800f
MM
32352002-12-31 Neil Booth <neil@daikokuya.co.uk>
3236
3237 * .cvsignore: Update.
3238
3cfabe60
NS
32392002-12-31 Nathan Sidwell <nathan@codesourcery.com>
3240
3241 * class.c (modify_vtable_entry): Remove unused variable.
3242 (get_vcall_index): Always expect a non-thunk.
3243 (update_vtable_entry_for_fn): Combine covariant adjustments, when
3244 overriding a thunk. Pass get_vcall_index a non-thunk.
3245
3246 * decl2.c (finish_file): Mark undefined inlines as extern.
3247
92bc1323
MM
32482002-12-31 Mark Mitchell <mark@codesourcery.com>
3249
3250 * cp-tree.def (RETURN_INIT): Remove.
3251 * cp-tree.h (DECL_IN_MEMORY_P): Remove.
3252 (scope_kind): Add sk_block, sk_try, sk_catch, sk_for.
3253 (note_level_for_for): Remove.
3254 (note_level_for_try): Likewise.
3255 (note_level_for_catch): Likewise.
3256 (finish_named_return_value): Likewise.
3257 (do_pushlevel): Change prototype.
3258 (pending_lang_change): Remove.
3259 * decl.c (begin_scope): Handle sk_block, sk_try, sk_catch,
3260 sk_for.
3261 (note_level_for_for): Remove.
3262 (note_level_for_try): Likewise.
3263 (note_level_for_catch): Likewise.
3264 (maybe_inject_for_scope_var): Remove use of DECL_IN_MEMORY_P.
3265 * parser.c (cp_parser_context_free_list): Make it "deletable".
3266 (cp_parser_template_argument): Remove misleading comment.
3267 * pt.c (tsubst_expr): Remove RETURN_INIT code.
3268 * semantics.c (genrtl_named_return_value): Remove.
3269 (do_pushlevel): Take a scope kind as an argument.
3270 (begin_if_stmt): Adjust.
3271 (begin_while_stmt): Likewise.
3272 (begin_for_stmt): Likewise.
3273 (finish_for_init_stmt): Likewise.
3274 (begin_switch_stmt): Likewise.
3275 (begin_handler): Likewise.
3276 (begin_compound_stmt): Likewise.
3277 (finish_named_return_value): Remove.
3278 (cp_expand_stmt): Remove RETURN_INIT case.
3279 * tree.c (cp_statement_code_p): Remove RETURN_INIT case.
43c6a96a 3280
abda8efe
MM
32812002-12-31 Mark Mitchell <mark@codesourcery.com>
3282
3283 PR c++/9112
3284 * parser.c (cp_parser_direct_declarator): Handle erroneous
3285 parenthesized declarators correctly.
3286
eddcae5a
GDR
32872002-12-31 Gabriel Dos Reis <gdr@integrable-solutions.net>
3288
3289 * cp-tree.h (pending_lang_change): Declare.
3290
c838d82f
MM
32912002-12-30 Mark Mitchell <mark@codesourcery.com>
3292
e5976695
MM
3293 * parser.c (cp_parser_context_free_list): New variable.
3294 (cp_parser_context_new): Use it.
3295 (cp_parser_error): Check return code from
3296 cp_parser_simulate_error.
3297 (cp_parser_simulate_error): Return a value.
3298 (cp_parser_id_expression): Optimize common case.
3299 (cp_parser_class_name): Likewise.
3300 (cp_parser_class_specifier): Adjust call to
3301 cp_parser_late_parsing_default_args.
3302 (cp_parser_lookup_name): Optimize common case.
3303 (cp_parser_late_parsing_for_member): Adjust call to
3304 cp_parser_late_parsing_default_args.
3305 (cp_parser_late_parsing_default_args): Add scope parameter.
3306 (cp_parser_require): Avoid creating the error message unless it's
3307 needed.
3308 (cp_parser_parse_definitely): Place free'd contexts on the free
3309 list.
3310
c838d82f
MM
3311 * parser.c (cp_parser_declaration_seq_opt): Handle pending_lang_change.
3312
c73aecdf
DE
33132002-12-30 David Edelsohn <edelsohn@gnu.org>
3314
3315 * parser.c (cp_parser_parameter_declaration_clause): Treat system
3316 header as extern "C" if NO_IMPLICIT_EXTERN_C undefined.
3317
b599b135
NN
33182002-12-30 Nathanael Nerode <neroden@gcc.gnu.org>
3319
43c6a96a 3320 * config-lang.in, Make-lang.in, operators.def, cp-tree.def:
b599b135
NN
3321 GCC, not GNU CC.
3322
946d5e45
MM
33232002-12-30 Mark Mitchell <mark@codesourcery.com>
3324
afd9b9dd
MM
3325 * parse.y: Remove.
3326 * spew.c: Likewise.
3327 * Make-lang.in (gt-cp-spew.h): Remove.
3328 * cp-tree.h (do_pending_lang_change): Remove.
3329 (do_identifier): Change prototype.
3330 (finish_id_expr): Remove.
3331 * decl.c (lookup_name_real): Remove yylex variable.
3332 * decl2.c (build_expr_from_tree): Adjust call to do_identifier.
3333 * lex.c (init_cpp_parse): Remove.
3334 (reduce_cmp): Likewise.
3335 (token_cmp): Likewise.
3336 (yychar): Likewise.
3337 (lastiddecl): Likewise.
3338 (token_count): Likewise.
3339 (reduce_count): Likewise.
3340 (yyhook): Likewise.
3341 (print_parse_statistics): Likewise.
3342 (do_pending_lang_change): Likewise.
3343 (do_identifier): Remove parsing parameter.
3344 * lex.h (lastiddecl): Remove.
3345 (looking_for_typename): Remove.
3346 (looking_for_template): Likewise.
3347 (pending_lang_change): Likewise.
3348 (yylex): Likewise.
3349 * semantics.c (finish_id_expr): Remove.
43c6a96a 3350
946d5e45
MM
3351 * decl.c (grokdeclarator): Diagnost "extern thread" and "static
3352 thread" correctly.
3353
1c313945
NN
33542002-12-30 Nathanael Nerode <neroden@gcc.gnu.org>
3355
3356 * decl.c, decl2.c, decl.h: GCC, not GNU CC. This is the C++ front
3357 end, not the C front end.
3358
8e268f72
NS
33592002-12-30 Nathan Sidwell <nathan@codesourcery.com>
3360
3361 * cp-tree.h (THUNK_TARGET): New macro.
3362 (THUNK_VIRTUAL_OFFSET): For result thunks it is always a binfo.
3363 (finish_thunk): Remove offset parms.
3364 * class.c (find_final_overrider): Look through thunks.
3365 (get_vcall_index): Use THUNK_TARGET.
3366 (update_vtable_entry_for_fn): Look through thunks. Set covariant
3367 fixed offset here. Adjust finish_thunk call.
3368 (build_vtbl_initializer): Adjust finish_thunk calls.
3369 * mangle.c (mangle_call_offset): Remove superfluous if.
3370 (mangle_thunk): Adjust.
3371 * method.c (make_thunk): Adjust.
3372 (finish_thunk): Adjust.
3373 (thunk_adjust): Remove assert.
3374 (use_thunk): Use THUNK_TARGET
3375 * dump1.c (cp_dump_tree): Adjust thunk dumping.
3376
3377 PR c++/9054
3378 * class.c (layout_class_type): Set TYPE_CONTEXT of type for base.
3379 * dump.c (cp_dump_tree, RECORD_TYPE): Deal with type for base types.
3380
848eed92
GDR
33812002-12-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
3382
3383 Remove traditional C constructs 4/n.
3384 * decl2.c (grok_method_quals, warn_if_unknown_interface,
3385 grok_x_components, cp_build_parm_decl, build_artificial_parm,
3386 maybe_retrofit_in_chrg, grokclassfn, grok_array_decl,
3387 delete_sanity, check_member_template, check_java_method,
3388 check_classfn, finish_static_data_member_decl, grokfield,
3389 grokbitfield, grokoptypename, grok_function_init,
3390 cplus_decl_attributes, constructor_name, defer_fn,
3391 build_anon_union_vars, finish_anon_union, coerce_new_type,
3392 coerce_delete_type, comdat_linkage, maybe_make_one_only,
3393 key_method, import_export_vtable, import_export_class,
3394 output_vtable_inherit, import_export_decl, import_export_tinfo,
3395 build_cleanup, get_guard, get_guard_bits, get_guard_cond,
3396 set_guard, start_objects, finish_objects,
3397 start_static_storage_duration_function,
3398 finish_static_storage_duration_function, get_priority_info,
3399 start_static_initialization_or_destruction,
3400 finish_static_initialization_or_destruction,
3401 do_static_initialization, do_static_destruction,
3402 prune_vars_needing_no_initialization, write_out_vars,
3403 reparse_decl_as_expr, finish_decl_parsing, namespace_ancestor,
3404 add_using_namespace, merge_functions, ambiguous_decl,
3405 lookup_using_namespace, lookup_using_namespace,
3406 qualified_lookup_using_namespace, set_decl_namespace,
3407 decl_namespace, current_decl_namespace, push_decl_namespace,
3408 pop_decl_namespace, push_scope, pop_scope, add_function,
3409 arg_assoc_namespace, arg_assoc_template_arg, arg_assoc,
3410 lookup_arg_dependent, do_namespace_alias,
3411 validate_nonmember_using_decl, do_nonmember_using_decl,
3412 do_toplevel_using_decl, do_local_using_decl,
3413 do_class_using_decl, do_using_directive, check_default_args,
3414 mark_used, handle_class_head): Use C90 prototypings. Use booleans.
3415 * parser.c (cp_parser_class_head): Use booleanss.
3416 * decl.c (walk_globals, walk_vtables): Likewise.
3417 * cp-tree.h (walk_globals_pred, walk_globals_fn, walk_vtables,
3418 walk_globals): Change return type from 'int' to 'bool'.
3419 * rtti.c (init_rtti_processing, build_headof, throw_bad_cast
3420 throw_bad_typeid, get_tinfo_decl_dynamic, typeid_ok_p,
3421 build_typeid, tinfo_name, get_tinfo_decl, get_tinfo_ptr,
3422 get_typeid, ifnonnull, build_dynamic_cast_1, build_dynamic_cast,
3423 qualifier_flags, tinfo_base_init, generic_initializer,
3424 ptr_initializer, dfs_class_hint_mark, ptm_initializer,
3425 dfs_class_hint_unmark, class_hint_flags, class_initializer,
3426 typeinfo_in_lib_p, get_pseudo_ti_init, create_pseudo_type_info,
3427 get_pseudo_ti_desc, create_tinfo_types, emit_support_tinfos,
3428 unemitted_tinfo_decl_p, emit_tinfo_decl): Likewise.
3429 * repo.c (repo_compile_flags, repo_template_declared,
3430 repo_template_defined, repo_class_defined, repo_get_id,
3431 repo_template_used, repo_vtable_used, repo_inline_used,
3432 repo_tinfo_used, repo_template_instantiated, extract_string,
3433 open_repo_file, afgets, init_repo, reopen_repo_file_for_write,
3434 finish_repo): Likewise.
3435 * ptree.c (cxx_print_decl, cxx_print_type, cxx_print_identifier,
3436 cxx_print_xnode): Likewise..
3437 * cp-lang.c (ok_to_generate_alias_set_for_type, cxx_get_alias_set,
3438 cxx_warn_unused_global_decl, cp_expr_size): Likewise.
3439 * cxxfilt.c (demangle_it, print_demangler_list, usage,
3440 standard_symbol_characters, hp_symbol_characters, main, fatal):
43c6a96a 3441 Likewise.
848eed92
GDR
3442 (strip_underscore): Change type from 'int' to 'bool'.
3443 (main): Use boolean constants.
3444
b746c5dc
GDR
34452002-12-28 Gabriel Dos Reis <gdr@integrable-solutions.net>
3446
3447 Remove traditional C constructs 3/n.
3448 * cvt.c (cp_convert_to_pointer, convert_to_pointer_force,
3449 build_up_reference, warn_ref_binding, convert_to_reference,
3450 convert_from_reference, convert_lvalue, cp_convert, ocp_convert,
3451 convert_to_void, convert, convert_force, build_type_conversion,
3452 build_expr_type_conversion, type_promotes_to,
3453 perform_qualification_conversions): Use C90 prototyping style.
3454 * decl2.c (grok_array_decl): Use boolean constant.
3455 (delete_sanity): Likewise.
3456 * typeck.c (build_unary_op): Likewise.
3457 * semantics.c (finish_switch_cond): Likewise.
3458 * parser.c (cp_parser_direct_new_declarator): Likewise.
3459 * init.c (build_new): Likewise.
3460
a723baf1
MM
34612002-12-27 Mark Mitchell <mark@codesourcery.com>
3462
3463 * Make-lang.in (po-generated): Remove parse.c.
3464 (CXX_OBJS): Remove parse.o and spew.o. Add parser.o.
3465 ($(srcdir)/cp/parse.h): Remove target.
3466 ($(srcdir)/cp/parse.c): Likewise.
3467 (gt-cp-parse.h): Likewise.
3468 (gt-cp-parser.h): New target.
3469 (c++.distclean): Do not remove parse.output.
3470 (c++.maintainer-clean): Do not remove parse.c or parse.h.
3471 (cp/spew.o): Remove target.
3472 (cp/lex.o): Adjust dependencies.
3473 (cp/pt.o): Likewise.
3474 (cp/parse.o): Likewise.
3475 (cp/TAGS): Do not mention parse.c.
3476 (cp/parser.o): New target.
3477 * NEWS: Mention the new parser.
3478 * call.c (build_scoped_method_call): Simplify.
3479 (build_method_call): Likewise.
3480 (build_new_function_call): Adjust calls to add_function_candidate
3481 and add_template_candidate.
3482 (build_new_op): Improve handling of erroroneous operands.
3483 (convert_default_arg): Remove circular argument processing.
3484 (name_as_c_string): New function.
3485 (build_new_method_call): Use it.
3486 (perform_implicit_conversion): Use error_operand_p.
3487 * class.c (finish_struct_anon): Use constructor_name_p.
3488 (check_field_decls): Likewise.
3489 (pop_nested_class): Use OVL_NEXT, not OVL_CHAIN.
3490 (resolve_address_of_overloaded_function): Likewise.
3491 (instantiate_type): Tweak pointer-to-member handling.
3492 (get_primary_binfo): Remove incorrect assertion.
3493 * config-lang.in (gtfiles): Add parser.c, remove parse.c.
3494 * cp-tree.h (DEFARG_TOKENS): New macro.
3495 (default_arg): New structure.
3496 (cp_tree_node_structure_enum): Add TS_CP_DEFAULT_ARG.
3497 (lang_tree_node): Add default_arg.
3498 (cp_tree_index): Add CPTI_TYPE_INFO_REF_TYPE.
3499 (type_info_ref_type): New macro.
3500 (saved_scope): Make processing_explicit_instantiation a boolean.
3501 (check_access): New field.
3502 (unparsed_text): Remove.
3503 (language_function): Remove unparsed_inlines.
3504 (error_operand_p): New macro.
3505 (lang_decl): Adjust pending_inline_info.
3506 (DEFARG_POINTER): Remove.
3507 (tag_types): Add typenames.
3508 (lookup_ualified_name): Declare.
3509 (lookup_name_real): Likewise.
3510 (shadow_tag): Adjust prototype.
3511 (get_scope_of_declarator): Declare it.
3512 (process_next_inline): Remove it.
3513 (check_for_missing_semicolon): Likewise.
3514 (maybe_get_template_decl_from_type_decl): Declare it.
3515 (finish_label_stmt): Adjust prototype.
3516 (finish_non_static_data_meber): Declare it.
3517 (finish_pseudo_destructor_call_expr): Rename to ...
3518 (finish_pseudo_destructor_expr): ... this.
3519 (finish_compound_literal): Declare it.
3520 (begin_inline_definitions): Remove it.
3521 (init_spew): Remove.
3522 (peekyylex): Likewise.
3523 (arbitrate_lookup): Likewise.
3524 (frob_opname): Likewise.
3525 (maybe_snarf_defarg): Likewise.
3526 (add_defarg_fn): Likewise.
3527 (do_pending_defargs): Likewise.
3528 (done_pending_defargs): Likewise.
3529 (unprocessed_defarg_fn): Likewise.
3530 (replace_defarg): Likewise.
3531 (end_input): Likewise.
3532 (get_overloaded_fn): Likewise.
3533 * cvt.c (convert_to_reference): Improve error handling.
3534 * decl.c (lookup_name_real): Do not declare it static.
3535 (maybe_push_to_top_level): Set check_access.
3536 (identifier_type_value): Adjust call to lookup_name_real.
3537 (lookup_qualified_name): New method.
3538 (lookup_name_real): Remove special-case parsing code.
3539 (lookup_name-nonclass): Adjust call to lookup_name_real.
3540 (lookup_name_namespace_only): Likewise.
3541 (lookup_name): Likewise.
3542 (check_tag_decl): Return the type declared.
3543 (shadow_tag): Likewise.
3544 (register_dtor_fn): Tweak check_access.
3545 (grokfndecl): Use constructor_name_p.
3546 (get_scope_of_declarator): New function.
3547 (grokdeclarator): Obscure tweaks for slightly different declarator
3548 representations.
3549 (start_method): Return error_mark_node to indicate failure.
43c6a96a 3550 (cp_tree_node_structure_enum): Use TS_CP_DEFAULT_ARG for DEFAULT_ARGs.
a723baf1
MM
3551 * decl2.c (constructor_name_full): Simplify.
3552 (constructor_name): Use it.
3553 (build_expr_from_tree): Adjust for changes to do new parser.
3554 (push_scope): Improve robustness.
3555 (validate_nonmember_using_decl): Process declarations, not names.
3556 (do_class_using_decl): Likewise.
3557 (handle_class_head): Do not mess with CLASSTYPE_DECLARED_CLASS
3558 here.
3559 * error.c (dump_expr): Handle IDENTIFIER_NODEs and BASELINKs.
3560 * expr.c (cxx_expand_expr): Handle BASELINKs.
3561 * init.c (member_init_ok_or_else): Issue more errors.
3562 (build_offset_ref): Tweak handling of FUNCTION_DECLs.
3563 * lex.c: Do not include parse.h.
3564 (yypring): Do not declare.
3565 (yylval): Likewise.
3566 (make_reference_declarator): Remove error-generating code.
3567 (rid_to_yy): Remove.
3568 (cxx_init): Do not call init_spew.
3569 (yypring): Remove.
3570 (check_for_missing_semicolon): Remove.
3571 * lex.h (got_scope): Remove.
3572 (got_object): Remove.
3573 * method.c (hack_identifier): Use finish_non_static_data_member.
3574 (implicitly_declare_fn): Adjust use of constructor_name.
3575 * parser.c: New file.
3576 * pt.c (parse.h): Do not include it.
3577 (maybe_get_template_decl_from_template): Do not declare it.
3578 (finish_member_template_decl): Tweak.
3579 (begin_explicit_instantiation): Adjust for
3580 processing_explicit_instantiation being boolean.
3581 (end_explicit_instantiation): Likewise.
3582 (maybe_process_partial_specialization): Tighten specialization
3583 test.
3584 (retrieve_local_specialization): Adjust ue of hash table.
3585 (eq_local_specializations): New function.
3586 (register_local_specialization): Likewise.
3587 (push_template_decl_real): Remove unnecessary test.
3588 (maybe_get_template_decl_from_type_decl): Don't make it static.
3589 (for_each_template_parm_r): Handle TYPEOF_TYPE.
3590 (tsubst_copy): Use retrieive_local_specialization to handle
3591 PARM_DECL. Adjust handling of CONST_DECLs. Handle BASELINKs.
3592 Handle COMPONENT_REFs with pseudo-destructor-expressions.
3593 Simplify handling of CALL_EXPR and METHOD_CALL_EXPR.
3594 (tsubst_expr): Pass decls, not names, to do_local_using_decl.
3595 (unify): Tweak handling of CONST_DECLs.
3596 (regenerate_decl_from_template): Use push_nested_class.
3597 (template_for_substitution): New funciton.
3598 (instantiate_decl): Use it. Register parameters as local
3599 specializations.
3600 * rtti.c (init_rtti_processing): Set type_info_ref_type.
3601 (build_typeid): Use it.
3602 (get_typeid): Likeise.
3603 * search.c (accessible_p): Use check_access, not
3604 flag_access_control.
3605 (adjust_result_of_qualified_name_lookup): Pay attention to the
3606 context_class.
3607 * semantics.c (finish_asm_stmt): Adjust error handling.
3608 (finish_label_stmt): Return the statement.
3609 (finish_non_static_data_member): New function.
3610 (finish_class_expr): Handle BASELINKs.
3611 (finish_call_expr): Handle PSEUDO_DTOR_EXPR.
3612 (finish_object_call_expr): Simplify handling during templates.
3613 (finish_pseudo_destructor_call_expr): Rename to ...
3614 (finish_pseudo_dtor_expr): ... this.
3615 (finish_compound_literal): New function.
3616 (begin_inline_definitions): Remove.
3617 (finish_sizeof): Remove special template handling.
3618 * spew.c: Do not include parse.h.
3619 * tree.c (get_overloaded_fn): Remove.
3620 * typeck.c (build_class_member_access_expr): Handle
3621 PSEUDO_DTOR_EXPR. Adjust handling of static member functions.
3622 (lookup_destructor): New function.
3623 (finish_class_member_access_expr): Use it.
3624 (convert_arguments): Simplify.
3625 (build_unary_op): Handle BASELINKs.
43c6a96a 3626
aac1406f
NS
36272002-12-26 Nathan Sidwell <nathan@codesourcery.com>
3628
eab5474f
NS
3629 PR c++/4803
3630 * decl2.c (mark_used): Defer inline functions.
3631 (finish_file): Merge deferred_fns loops. Check all used
3632 inline functions have a definition.
3633 * method.c (make_thunk): Thunks are not inline.
3634
aac1406f
NS
3635 PR c++/5116, c++/764
3636 * call.c (build_new_op): Make sure template class operands are
3637 instantiated.
3638
b9201622
NS
36392002-12-24 Nathan Sidwell <nathan@codesourcery.com>
3640
3e14cd30
NS
3641 PR C++/7964
3642 * cp-tree.h (resolve_scoped_fn_name): Prototype.
3643 * call.c (resolve_scoped_fn_name): New function. Deal with
3644 more template expansion. Broken out of ...
3645 * parse.y (parse_finish_call_expr): ... here. Call it.
3646 * decl2.c (build_expr_from_tree, CALL_EXPR): Use
3647 resolve_scoped_fn_name and build_call_from_tree.
3648
b9201622
NS
3649 PR c++/9053
3650 * decl.c (duplicate_decls): Templates may be disambiguated by
3651 return type.
43c6a96a 3652
b9201622
NS
3653 PR c++/8702
3654 * decl2.c (check_classfn): Use lookup_fnfield_1. List all
3655 conversion operators on failure.
3656
94be8403
GDR
36572002-12-23 Gabriel Dos Reis <gdr@integrable-solutions.net>
3658
b746c5dc
GDR
3659 Remove traditional C constructs 2/n.
3660 * call.c (tourney, build_field_call, equal_functions, joust,
3661 compare_ics, build_over_call, build_java_interface_fn_ref,
3662 convert_like_real, op_error, build_object_call, resolve_args,
3663 build_vfield_ref, check_dtor_name, build_scoped_method_call,
3664 build_addr_func, build_call, build_method_call, null_ptr_cst_p,
3665 sufficient_parms_p, build_conv, non_reference, strip_top_quals,
3666 standard_conversion, reference_related_p,
3667 reference_compatible_p, convert_class_to_reference,
3668 direct_reference_binding, reference_binding,
3669 ,implicit_conversion, is_complete, promoted_arithmetic_type_p,
3670 add_template_conv_candidate, any_viable, any_strictly_viable,
3671 build_this, splice_viable, print_z_candidates,
3672 build_user_type_conversion, build_new_function_call,
3673 conditional_conversion, build_conditional_expr, build_new_op,
3674 build_op_delete_call, enforce_access, call_builtin_trap,
3675 convert_arg_to_ellipsis, build_x_va_arg, cxx_type_promotes_to,
3676 convert_default_arg, type_passed_as, convert_for_arg_passing,
3677 in_charge_arg_for_name, is_properly_derived_from,
3678 maybe_handle_implicit_object, maybe_handle_ref_bind,
3679 source_type, add_warning, can_convert, can_convert_arg,
3680 perform_implicit_conversion, can_convert_arg_bad,
3681 initialize_reference, add_conv_candidate,
3682 add_template_candidate_real, add_template_candidate): Ansify.
94be8403 3683
081cebb2
NS
36842002-12-22 Nathan Sidwell <nathan@codesourcery.com>
3685
3686 PR c++/8572
3687 * cp-tree.h (grokoptypename): Add SCOPE parameter.
3688 * decl2.c (grokoptypename): Add SCOPE parameter. tsubst the type
3689 if in a template scope.
3690 * parse.y (unoperator): Return the scope.
3691 (operator_name): Adjust grokoptypename call.
3692
4f09be91
KL
36932002-12-22 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3694
3695 * cp-tree.h (make_unbound_class_template): Use tsubst_flags_t.
3696 * decl.c (make_unbound_class_template): Adjust. Check for tf_error.
3697 * pt.c (tsubst) [OFFSET_TYPE]: Check for tf_error.
3698
4639c5c6
KH
36992002-12-20 Kazu Hirata <kazu@cs.umass.edu>
3700
3701 * ChangeLog: Fix a typo.
3702 * class.c: Fix comment typos.
3703 * cp-tree.h: Likewise.
3704
0ca7178c
JM
37052002-12-18 Jason Merrill <jason@redhat.com>
3706
3707 Handle anonymous unions at the tree level.
3708 C++ ABI change: Mangle anonymous unions using the name of their
3709 first named field (by depth-first search). Should not cause
3710 binary compatibility problems, though, as the compiler previously
3711 didn't emit anything for affected unions.
3712 * cp-tree.def (ALIAS_DECL): New tree code.
3713 * decl2.c (build_anon_union_vars): Build ALIAS_DECLs. Return the
3714 first field, not the largest.
3715 (finish_anon_union): Don't mess with RTL. Do set DECL_ASSEMBLER_NAME,
3716 push the decl, and write it out at namespace scope.
3717 * decl.c (lookup_name_real): See through an ALIAS_DECL.
3718 (pushdecl): Add namespace bindings for ALIAS_DECLs.
3719 * rtti.c (unemitted_tinfo_decl_p): Don't try to look at the name
3720 of a decl which doesn't have one.
3721 * typeck.c (build_class_member_access_expr): Don't recurse if
3722 we already have the type we want.
3723
da9701a6
KL
37242002-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3725
3726 PR c++/8099
3727 * friend.c (make_friend_class): Allow partial specialization
3728 when declaration is not a template friend.
3729
cab7a9a3
KL
37302002-12-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3731
3732 PR c++/3663
3733 * pt.c (lookup_template_class): Copy TREE_PRIVATE and
3734 TREE_PROTECTED to created decl nodes.
3735
50cb9059
MM
37362002-12-18 Mark Mitchell <mark@codesourcery.com>
3737
3738 * class.c (build_base_field): Do not set DECL_PACKED on the
3739 FIELD_DECL.
3740
e220f0a4
GDR
37412002-12-18 Gabriel Dos Reis <gdr@integrable-solutions.net>
3742
3743 * cp-tree.h (struct tree_srcloc): Use location_t.
3744 (SOURCE_LOCUS): New.
3745 (SRCLOC_FILE, SRCLOC_LINE): Adjust.
3746
efc7052d
JM
37472002-12-17 Jason Merrill <jason@redhat.com>
3748
3749 * decl.c (finish_function): Also complain about no return in
3750 templates.
43c6a96a 3751 * semantics.c (finish_return_stmt): Also call check_return_expr in
efc7052d
JM
3752 templates.
3753 * typeck.c (check_return_expr): In a template, just remember that we
3754 saw a return.
3755
9f175208
JM
37562002-12-16 Jason Merrill <jason@redhat.com>
3757
89ea02fb
JM
3758 * semantics.c (simplify_aggr_init_exprs_r): Don't change the type
3759 of the CALL_EXPR.
3760
9f175208
JM
3761 * semantics.c (do_pushlevel): Call pushlevel after adding the
3762 SCOPE_STMT.
3763 (do_poplevel): Call poplevel before adding the SCOPE_STMT.
3764 * parse.y (function_body): Go back to using compstmt.
3765 * decl.c (pushdecl): Skip another level to get to the parms level.
3766
3767 * call.c (build_new_method_call): Use is_dummy_object to determine
3768 whether or not to evaluate the object parameter to a static member
3769 function.
3770
4977bab6
ZW
37712002-12-14 Jason Merrill <jason@redhat.com>
3772
3773 * semantics.c (simplify_aggr_init_exprs_r): Also prepend the
3774 return slot for normal functions. Set CALL_EXPR_HAS_RETURN_SLOT_ADDR.
3775 * tree.c (build_cplus_new): If the type isn't TREE_ADDRESSABLE,
3776 don't bother with an AGGR_INIT_EXPR.
3777 (cp_copy_res_decl_for_inlining): If the type isn't TREE_ADDRESSABLE,
3778 just generate a new decl normally. Take return slot parm.
3779 * cp-tree.h: Adjust prototype.
3780
75c525d7
GDR
37812002-12-13 Gabriel Dos Reis <gdr@integrable-solutions.net>
3782
3783 PR C++/8031
43c6a96a 3784 * cvt.c (convert_to_pointer_force): Don't try comparing against
75c525d7
GDR
3785 erronous type.
3786
8c6ae51f
GK
37872002-12-13 Geoffrey Keating <geoffk@apple.com>
3788
3789 * cp-tree.h: Have the multiple-include guards around
3790 the entire file.
3791
4977bab6
ZW
37922002-12-10 David Edelsohn <edelsohn@gnu.org>
3793
3794 * cp/spew.c (feed_input): Change limit to last_pos and pos to cur_pos
3795 for SPEW_DEBUG.
3796 (snarf_method): Same.
3797 (snarf_defarg): Same.
3798
d23faea1
MM
37992002-12-10 Mark Mitchell <mark@codesourcery.com>
3800
3801 PR c++/8372
3802 * pt.c (tsubst_copy): Handle destructor names more correctly.
3803
3932057c 38042002-12-10 Matt Austern <austern@apple.com>
d23faea1 3805
3932057c 3806 * cp-tree.h: get rid of needs_virtual_reinit bit.
43c6a96a 3807
dcba9b0f
MM
38082002-12-09 Mark Mitchell <mark@codesourcery.com>
3809
43c6a96a 3810 * NEWS: Document removal of in-class initialization extension for
dcba9b0f
MM
3811 static data members of non-arithmetic, non-enumeration type.
3812 * decl.c (check_static_variable_definition): Do not allow that
3813 extension.
3814 * decl2.c (grokfield): Do not call digest_init when processing
3815 templates.
3816
42b99e03
KG
38172002-12-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
3818
3819 * error.c (dump_expr): Fix format specifier warning.
3820
6c73ad72
GK
38212002-12-04 Geoffrey Keating <geoffk@apple.com>
3822
3823 * class.c (finish_struct_1): Correct comment.
3824 * cp-tree.c (DECL_SORTED_FIELDS): Likewise.
3825
8c048a52
GDR
38262002-12-04 Gabriel Dos Reis <gdr@integrable-solutions.net>
3827
3828 PR C++/8799
3829 * error.c (dump_expr): Don't ever try to dump a non-existent
43c6a96a 3830 expression.
8c048a52 3831
4977bab6
ZW
38322002-12-03 Nathan Sidwell <nathan@codesourcery.com>
3833
3834 Implement covariant returns.
3835 * cp-tree.h (IS_AGGR_TYPE_2): Remove.
3836 (struct lang_decl_flags): Add this_thunk_p flag.
3837 Rename vcall_offset to virtual_offset.
3838 (struct lang_decl): Rename delta to fixed_offset.
3839 (DECL_THIS_THUNK_P, DECL_RESULT_THUNK_P): New #defines.
3840 (SET_DECL_THUNK_P): Add THIS_ADJUSTING arg.
3841 (THUNK_DELTA, THUNK_VCALL_OFFSET): Rename to ...
3842 (THUNK_FIXED_OFFSET, THUNK_VIRTUAL_OFFSET): ... here.
3843 (make_thunk): Add this_adjusting arg.
3844 (finish_thunk): Declare.
3845 (mangle_thunk): Add this_adjusting arg.
3846 * class.c (get_vcall_index): Use base function for lookup.
3847 (update_vtable_entry_for_fn): Generate covariant thunk.
3848 (finish_struct_1): Set DECL_VINDEX to NULL for thunks.
3849 (build_vtbl_initializer): Use base function for lookup.
3850 Finish covariant thunk here. Adjust thunk generation.
3851 * dump.c (cp_dump_tree): Simplify DECL_GLOBAL_[CD]TOR_P handling.
3852 Adjust thunk dumping.
3853 * mangle.c (mangle_call_offset): New function.
3854 (mangle_thunk): Adjust for covariant thunks.
3855 * method.c (make_thunk): Adjust. Do not set name here.
3856 (finish_thunk): New function. Set name here.
3857 (use_thunk): Generate covariant thunks too.
3858 (thunk_adjust): New function.
3859 * search.c (covariant_return_p): Remove. Fold into ...
3860 (check_final_overrider): ... here. Simplify.
3861 * semantics.c (emit_associated_thunks): Walk covariant thunk lists.
3862
c203334d
JM
38632002-12-03 Jason Merrill <jason@redhat.com>
3864
c246c65d
JM
3865 PR c++/8674
3866 * call.c (build_over_call): Check specifically for TARGET_EXPR
3867 when eliding.
3868
3869 PR c++/8461, c++/8625
3870 * call.c (convert_for_arg_passing): Don't mess with error_mark_node.
3871 (cp_convert_parm_for_inlining): Remove.
43c6a96a 3872 * cp-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
c246c65d
JM
3873 Remove.
3874 * cp-tree.h (ADDR_IS_INVISIREF): Remove.
3875 * except.c (stabilize_throw_expr): Remove ADDR_IS_INVISIREF code.
3876
c203334d
JM
3877 * call.c (build_user_type_conversion_1): Don't set ICS_BAD_FLAG on
3878 an ambiguous conversion.
3879
ee7ecb29
MM
38802002-12-03 Mark Mitchell <mark@codesourcery.com>
3881
3882 PR c++/8688
3883 * decl.c (reshape_init): Handle erroneous initializers.
3884
5089de93
MM
38852002-12-02 Mark Mitchell <mark@codesourcery.com>
3886
3887 PR c++/8720
3888 * spew.c (remove_last_token): Make sure that last_chunk is set
3889 correctly.
3890
3891 PR c++/8615
3892 * error.c (dump_expr): Handle character constants with
3893 TREE_OVERFLOW set.
43c6a96a 3894
218e0eb6
KL
38952002-12-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
3896
3897 DR 180
3898 * decl.c (grokdeclarator): Require class-key for all friend class.
3899 Output the correct type and context in the error message.
3900
a82d6da5
MM
39012002-12-01 Mark Mitchell <mark@codesourcery.com>
3902
94fc547c
MM
3903 PR c++/5919
3904 * pt.c (unify): Use variably_modified_type_p to test validity of
3905 template argument types.
43c6a96a 3906
a82d6da5
MM
3907 PR c++/8727
3908 * cp-tree.h (lang_type_class): Add typeinfo_var.
3909 (CLASSTYPE_TYPEINFO_VAR): New macro.
3910 * rtti.c (get_tinfo_decl): Use it.
3911
3912 PR c++/8663
3913 * init.c (expand_member_init): Always get the main variant of a
3914 base class.
3915
c9f8536c
MM
39162002-12-01 Mark Mitchell <mark@codesourcery.com>
3917
3918 PR c++/8332
3919 PR c++/8493
3920 * decl.c (cxx_init_decl_processing): Use size_type_node, not
3921 c_size_type_node.
3922 * decl2.c (coerce_new_type): Likewise.
3923 * except.c (do_allocate_exception): Likewise.
3924
4977bab6
ZW
39252002-11-30 Zack Weinberg <zack@codesourcery.com>
3926
3927 * call.c, class.c, cp-lang.c, cvt.c, cxxfilt.c, decl.c, decl2.c,
3928 dump.c, error.c, except.c, expr.c, friend.c, g++spec.c, init.c,
3929 lex.c, mangle.c, method.c, optimize.c, parse.y, pt.c, ptree.c,
3930 repo.c, rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c,
3931 typeck2.c: Include coretypes.h and tm.h.
3932 * Make-lang.in: Update dependencies.
3933
c17707f1
MM
39342002-11-30 Mark Mitchell <mark@codesourcery.com>
3935
328de7c2
MM
3936 PR c++/8227
3937 * decl.c (layout_var_decl): Deal gracefully with erroneous types.
3938 (check_initializer): Validate the type of the initialized
3939 variable, even if the initializer is absent.
3940 * typeck.c (cp_type_quals): Deal gracefully with erroneous types.
43c6a96a 3941
c17707f1
MM
3942 PR c++/8214
3943 * typeck.c (convert_for_assignment): Do not use
3944 decl_constant_value on the operand.
3945
65f8b0fb
MM
3946 PR c++/8511
3947 * pt.c (instantiate_decl): Handle template friends defined outside
3948 of the class correctly.
3949
f6a83eb0
JB
39502002-11-29 Joe Buck <jbuck@synopsys.com>
3951
3952 * parse.y (class_head_defn): Set CLASSTYPE_DECLARED_CLASS for
3953 anonymous structs.
43c6a96a 3954
ff944b49
MM
39552002-11-29 Mark Mitchell <mark@codesourcery.com>
3956
3957 * class.c (walk_subobject_offsets): Recur on binfos as well as on
3958 types.
3959 (layout_nonempty_base_or_field): Pass it a binfo when processing a
3960 base class.
3961 (layout_empty_base): Likewise.
3962 (build_base_field): Likewise.
43c6a96a 3963
21b3d0ba
MM
39642002-11-27 Mark Mitchell <mark@codesourcery.com>
3965
3966 * class.c (build_base_field): Make sure we get the canonical base
3967 when descending through primary bases.
3968
a16f2357
GK
39692002-11-26 Geoffrey Keating <geoffk@apple.com>
3970
3971 * decl.c (check_initializer): Don't error on initialisation of
3972 a scalar with a brace-enclosed expression.
3973
688f6688
NS
39742002-11-26 Nathan Sidwell <nathan@codesourcery.com>
3975
3976 * cp-tree.h (DECL_LANG_FLAG_4): Document more uses.
3977 (template_parms_equal): Remove prototype.
3978 * typeck.c (buuld_indirect_ref): Reformat.
3979
4977bab6
ZW
39802002-11-25 Jason Merrill <jason@redhat.com>
3981
3982 * init.c (build_vec_init): Use a FOR_STMT instead of an IF_STMT
3983 and a DO_STMT.
3984
b82ddab4
MM
39852002-11-25 Mark Mitchell <mark@codesourcery.com>
3986
2003cd37
MM
3987 * tree.c (cp_build_qualified_type_real): Correct handling of
3988 array types.
3989 * class.c (walk_subobject_offsets): Fix thinko.
3990 (build_base_field): Record offsets of empty bases in primary
3991 virtual bases.
3992 (layout_class_type): Record offsets of empty bases in fields.
43c6a96a 3993
b82ddab4
MM
3994 * search.c (is_subobject_of_p_1): Fix thinko.
3995 (lookup_field_queue_p): Likewise.
3996
8a874cb4
MM
39972002-11-24 Mark Mitchell <mark@codesourcery.com>
3998
3999 * class.c (layout_class_type): Reuse tail padding when laying out
4000 virtual bases.
4001
05abed76
MM
40022002-11-22 Mark Mitchell <mark@codesourcery.com>
4003
4004 * rtti.c (qualifier_flags): Fix thinko.
4005
4977bab6
ZW
40062002-11-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
4007
4008 Remove traditional C constructs 1/n.
4009 * cp-tree.h (init_method, set_mangled_name_for_decl,
4010 build_opfncall, hack_identifier, make_thunk, use_thunk,
4011 synthesize_method, implicitly_declare_fn,
4012 skip_artificial_parms_for, optimize_function, calls_setjmp_p,
4013 maybe_clone_body): Remove use of PARAMS.
4014
4015 * method.c (do_build_assign_ref, do_build_copy_constructor,
4016 synthesize_exception_spec, locate_dtor, locate_ctor, locate_copy):
4017 Likewise.
4018 (synthesize_method): Use 'bool' type and constants instead of
4019 'int'.
4020 (locate_copy): Likewise.
4021 (implicitly_declare_fn): Likewise.
4022
4023 * optimize.c (calls_setjmp_r, update_cloned_parm, dump_function):
4024 Remove old-style declaration.
4025 (maybe_clone_body): Use 'bool' type and constants.
4026
1c83ea9f
GN
40272002-11-21 Glen Nakamura <glen@imodulo.com>
4028
4029 PR c++/8342
4030 * typeck.c (get_member_function_from_ptrfunc): Make sure that a
4031 SAVE_EXPR for instance_ptr doesn't get evaluated first inside one
4032 of the branches of a COND_EXPR.
4033
ad2ae3b2
MM
40342002-11-19 Mark Mitchell <mark@codesourcery.com>
4035
4036 * pt.c (for_each_template_parm): Free allocated memory.
4037 * search.c (is_subobject_of_p_1): New function.
4038 (is_subobject_of_p): Avoid walking virtual bases multiple times.
4039
f3226a90
JT
40402002-11-19 Jason Thorpe <thorpej@wasabisystems.com>
4041
4042 * g++spec.c (lang_specific_spec_functions): New.
4043
90024bdc
KH
40442002-11-15 Kazu Hirata <kazu@cs.umass.edu>
4045
4046 * ChangeLog: Follow spelling conventions.
4047 * class.c: Likewise.
4048 * decl2.c: Likewise.
4049
fa7b533b
ZW
40502002-11-14 Zack Weinberg <zack@codesourcery.com>
4051
4052 * search.c (dfs_push_decls): Do not try to reorder elements
4053 3..n of method_vec if method_vec has only two elements.
4054 Reverse order of two tests to avoid accessing unallocated
4055 memory.
4056
95675950
MM
40572002-11-14 Mark Mitchell <mark@codesourcery.com>
4058
4059 * class.c (dfs_find_final_overrider): Adjust so that the most
4060 derived object is a binfo, rather than a class type.
4061 (find_final_overrider): Likewise.
4062 (add_vcall_offset_vtbl_entries_1): Simplify accordingly.
4063 (add_vcall_offset): Likewise.
4064
5c74d5b0
KL
40652002-11-09 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4066
4067 PR c++/8389
4068 * pt.c (instantiate_template): Push class scope for member
4069 functions.
4070 (get_mostly_instantiated_function_type): Likewise. Don't call
4071 tsubst on context. Remove CONTEXTP and TPARMSP parameters.
4072 * cp-tree.h (get_mostly_instantiated_function_type): Adjust.
4073 * mangle.c (write_encoding, write_unqualified_name): Adjust.
4074
4f2c9d7e
MM
40752002-11-07 Mark Mitchell <mark@codesourcery.com>
4076
e6a66567
MM
4077 * class.c (add_vcall_offset_vtbl_entries_1): Correct ordering of
4078 vcall offfsets. Split out ...
4079 (add_vcall_offset): ... new function.
4080
4f2c9d7e
MM
4081 PR c++/8338
4082 * pt.c (for_each_template_parm): Add htab parameter.
4083 (process_partial_specialization): Adjust call.
4084 (push_template_decl_real): Likewise.
4085 (pair_fn_data): Add visited.
4086 (for_each_template_parm_r): Avoid walking duplicates more than
4087 once.
4088 (uses_template_parms): Adjust call to for_each_template_parm.
4089
f72ab53b
MM
40902002-11-07 Mark Mitchell <mark@codesourcery.com>
4091
4092 * class.c (add_implicitly_declared_members): Put implicitly
4093 declared functions at the end of TYPE_METHODs when -fabi-version
4094 is at least 2.
4095
0a288b9a
GK
40962002-11-05 Geoffrey Keating <geoffk@apple.com>
4097
4098 * decl2.c (finish_file): Correct spelling.
4099
548502d3
MM
41002002-11-03 Mark Mitchell <mark@codesourcery.com>
4101
4102 * call.c (build_special_member_call): Do not try to lookup VTTs by
4103 name.
4104 * class.c (vtbl_init_data): Add generate_vcall_entries.
4105 (get_vtable_decl): Do not look up virtual tables by name.
4106 (copy_virtuals): Do not use BV_USE_VCALL_INDEX_P.
4107 (set_primary_base): Do not set CLASSTYPE_RTTI.
4108 (determine_primary_base): Likewise.
4109 (get_matching_virtual): Remove.
4110 (get_vcall_index): New function.
4111 (update_vtable_entry_for_fn): Do not try to use virtual thunks
4112 when they are not required. Assign vcall indices at this point.
4113 (finish_struct_1): Do not set CLASSTYPE_NEEDS_VIRTUAL_REINIT.
4114 Do update dynamic_classes.
4115 (build_vtt): Do not add VTTs to the symbol table.
4116 (build_ctor_vtbl_group): Likewise.
4117 (build_vtbl_initializer): Simplify handling of vcall indices.
4118 (build_vcall_offset_vtbl_entries): Pretend to build vcall offsets
4119 for the most derived class.
4120 (add_vcall_offset_vtbl_entries_1): But do not actually add them to
4121 the vtable.
4122 * cp-tree.h (dynamic_classes): New macro.
4123 (lang_type_class): Remove rtti. Add vtables. Add vcall_indices.
4124 (CLASSTYPE_RTTI): Remove.
4125 (CLASSTYPE_NEEDS_VIRTUAL_REINIT): Remove.
4126 (CLASSTYPE_VCALL_INDICES): New macro.
4127 (CLASSTYPE_VTABLES): Likewise.
4128 (BV_USE_VCALL_INDEX_P): Remove.
4129 (build_vtable_path): Remove.
4130 * decl2.c (finish_vtable_vardecl): Remove.
4131 (key_method): Remove #if 0'd code.
4132 (finish_vtable_vardecl): Rename to ...
4133 (maybe_emit_vtables): ... this.
4134 (finish_file): Use it.
4135 * search.c (look_for_overrides_here): Update comment.
4136
04d57dd5
ZW
41372002-11-01 Zack Weinberg <zack@codesourcery.com>
4138
4139 PR c/7353 redux
4140 * decl2.c (grokfield): Reject TYPE_DECLs with initializers.
4141
bab076f7
JM
41422002-10-30 Jason Merrill <jason@redhat.com>
4143
4144 PR c++/8186
4145 * cp-tree.h (ADDR_IS_INVISIREF): New macro.
4146 * call.c (convert_for_arg_passing): Set it.
4147 * except.c (stabilize_throw_expr): Recurse for such an arg.
4148
14b4829d
MM
41492002-10-31 Mark Mitchell <mark@codesourcery.com>
4150
4151 * cp-tree.h (lang_decl_flags): Remove init_priority.
4152 (lang_decl): Add delta.
4153 (GLOBAL_INIT_PRIORITY): Remove.
4154 (THUNK_DELTA): Revise definition.
4155 * decl2.c (start_objects): Don't set GLOBAL_INIT_PRIORITY.
4156 * dump.c (cp_dump_tree): Don't dump it.
4157
8c081e84
MM
41582002-10-30 Mark Mitchell <mark@codesourcery.com>
4159
4160 PR c++/8160
4161 * typeck2.c (process_init_constructor): Call complete_array_type.
4162
4163 PR c++/8149
4164 * decl.c (make_typename_type): Issue errors about invalid results.
04d57dd5 4165
7088fca9
KL
41662002-10-30 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4167
4168 Core issue 287, PR c++/7639
4169 * cp-tree.h (lang_type_class): Add decl_list field.
4170 (CLASSTYPE_DECL_LIST): New macro.
4171 (maybe_add_class_template_decl_list): Add declaration.
4172 * class.c (duplicate_tag_error): Initialize CLASSTYPE_DECL_LIST.
4173 (unreverse_member_declarations): Reverse CLASSTYPE_DECL_LIST.
4174 (maybe_add_class_template_decl_list): New function.
4175 (add_implicitly_declared_members): Use it.
4176 * decl.c (maybe_process_template_type_declaration): Likewise.
4177 (pushtag): Likewise.
4178 * friend.c (add_friend): Likewise.
4179 (make_friend_class): Likewise.
4180 * semantics.c (finish_member_declaration): Likewise.
4181 (begin_class_definition): Initialize CLASSTYPE_DECL_LIST.
4182 * pt.c (instantiate_class_template): Use CLASSTYPE_DECL_LIST
4183 to process members and friends in the order of declaration.
4184
5633b37c
MM
41852002-10-29 Mark Mitchell <mark@codesourcery.com>
4186
4187 PR c++/8287
4188 * decl.c (finish_destructor_body): Create the label to jump to
4189 when returning from a destructor here.
4190 (finish_function_body): Rather than here.
4191
f65e1183
ZW
41922002-10-25 Zack Weinberg <zack@codesourcery.com>
4193
4194 PR c++/7266
4195 * decl.c (grokdeclarator): Check that TREE_OPERAND 0 of a
4196 SCOPE_REF is not null before dereferencing it.
4197
bb5e8a7f
MM
41982002-10-25 Mark Mitchell <mark@codesourcery.com>
4199
e93ee644
MM
4200 * call.c (build_over_call): Use DECL_CONTEXT, not
4201 DECL_VIRTUAL_CONTEXT.
4202 * class.c (modify_vtable_entry): Don't mess with
4203 DECL_VIRTUAL_CONTEXT.
4204 (set_vindex): Remove.
4205 (set_primary_base): Remove vfuns_p parameter.
4206 (determine_primary_base): Likewise.
4207 (modify_all_vtables): Likewise.
4208 (layout_class_type): Likewise. Adjust calls to other functions
4209 accordingly.
4210 (finish_struct_1): Adjust calls to modified functions. Set
4211 DECL_VINDEX here.
4212 * cp-tree.h (lang_type_class): Remove vsize.
4213 (CLASSTYPE_VSIZE): Remove.
4214 (lang_decl): Remove thunks.
4215 (DECL_THUNKS): Adjust.
4216 (DECL_VIRTUAL_CONTEXT): Remove.
4217 (duplicate_decls): Don't copy it.
4218 * pt.c (build_template_decl): Don't set it.
4219 (tsubst_decl): Likewise.
4220 * typeck.c (expand_ptrmemfunc_cst): Don't use it.
04d57dd5 4221
bb5e8a7f
MM
4222 * class.c (build_vtbl_initializer): Don't use build_vtable_entry.
4223 (build_vtable_entry): Remove.
4224 * cp-tree.h (BINFO_VIRTUALS): Expand documentation.
4225 (lang_decl): Add thunks.
4226 (DECL_THUNKS): New macro.
4227 * decl.c (duplicate_decls): Copy it.
4228 * method.c (make_thunk): Simplify, and add thunks to DECL_THUNKS.
4229 * semantics.c (emit_associated_thunks): Simplify.
f65e1183 4230
6eb35968
DE
42312002-10-24 David Edelsohn <edelsohn@gnu.org>
4232
4233 PR c++/7228
4234 * cp-tree.h (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Check that
4235 lang_type structure exists before accessing field.
4236 (SET_CLASSTYPE_READONLY_FIELDS_NEED_INIT): New macro.
4237 (CLASSTYPE_REF_FIELDS_NEED_INIT): Similar.
4238 (SET_CLASSTYPE_REF_FIELDS_NEED_INIT): New macro.
4239 * class.c (check_field_decls): Use new macros.
4240 * typeck2.c (process_init_constructor): Remove redundant check for
4241 existence of lang_type structure.
4242
0cee073d
MM
42432002-10-24 Mark Mitchell <mark@codesourcery.com>
4244
ba9a991f
MM
4245 * class.c (end_of_base): New method.
4246 (end_of_class): Use it. Check indirect virtual bases.
4247
0cee073d
MM
4248 * class.c (check_field_decls): Fix typo.
4249
e6f052b7
MM
42502002-10-23 Mark Mitchell <mark@codesourcery.com>
4251
6b607ffd
MM
4252 PR c++/8067
4253 * decl.c (maybe_inject_for_scope_var): Ignore __FUNCTION__ and
4254 related variables.
4255
e6f052b7
MM
4256 PR c++/7679
4257 * spew.c (next_token): Do not return an endless stream of
4258 END_OF_SAVED_INPUT tokens.
4259 (snarf_method): Add three END_OF_SAVED_INPUT tokens to the end of
4260 the cached token stream.
4261 (snarf_defarg): Likewise.
4262
8bcefb43
ZW
42632002-10-23 Zack Weinberg <zack@codesourcery.com>
4264
4265 * cp-lang.c (cp_var_mod_type_p): New: C++ hook for
4266 variably_modified_type_p.
4267 * cp-tree.h: Remove prototype of variably_modified_type_p.
4268 * tree.c (variably_modified_type_p): Remove; now implemented
4269 in language-independent code.
4270
ad4f9910
MM
42712002-10-22 Mark Mitchell <mark@codesourcery.com>
4272
4273 PR c++/6579
4274 * spew.c (snarf_parenthesized_expression): New function.
4275 (snarf_block): Use it.
4276
3961e8fe
RH
42772002-10-22 Richard Henderson <rth@redhat.com>
4278
4279 * method.c (use_thunk): Always compute vcall_value; assert that
4280 it is not zero. Use can_output_mi_thunk; use output_mi_thunk
4281 for vcall thunks as well.
4282
5ec1192e
MM
42832002-10-21 Mark Mitchell <mark@codesourcery.com>
4284
7ba539c6
MM
4285 * class.c (empty_base_at_nonzero_offset_p): New function.
4286 (layout_nonempty_base_or_field): Do not check for conflicts when
4287 laying out a virtual base using the GCC 3.2 ABI.
4288 (build_base_field): Correct checking for presence of empty classes
90024bdc 4289 at nonzero offsets when clearing CLASSTYPE_NEARLY_EMPTY_P.
7ba539c6 4290
e3ccdd50
MM
4291 * class.c (include_empty_classes): Use normalize_rli.
4292 (layout_class_type): Likewise.
4293
42328048
MM
4294 * decl.c (reshape_init): Tweak handling of character arrays.
4295
5ec1192e
MM
4296 PR c++/8218
4297 * cp-tree.h (lang_type_class): Add contains_empty_class_p.
4298 (CLASSTYPE_CONTAINS_EMPTY_CLASS_P): New macro.
4299 * class.c (check_bases): Update CLASSTYPE_CONTAINS_EMPTY_CLASS_P.
4300 (check_field_decls): Likewise.
4301 (layout_class_type): Likewise.
4302 (finish_struct_1): Initialize it.
4303 (walk_subobject_offsets): Use it to prune searches.
4304
eb0424da
MM
43052002-10-20 Mark Mitchell <mark@codesourcery.com>
4306
4307 * method.c (use_thunk): Compute the vcall index as a HOST_WIDE_INT.
4308 * optimize.c (optimize_function): Replace ASM_OUTPUT_MI_THUNK with
4309 TARGET_ASM_OUTPUT_MI_THUNK in comments.
8bcefb43 4310
4a7510cb
ZW
43112002-10-18 Zack Weinberg <zack@codesourcery.com>
4312
4313 * decl.c (start_decl): Point users of the old initialized-
4314 typedef extension at __typeof__.
4315
483ab821
MM
43162002-10-18 Mark Mitchell <mark@codesourcery.com>
4317
4318 * Make-lang.in (method.o): Depend on TARGET_H.
4319 * method.c (target.h): Include it.
4320 (use_thunk): Use target hooks. Use vcall thunks, if available.
4321
e4f4feba
MM
43222002-10-18 Mark Mitchell <mark@codesourcery.com>
4323
4324 * class.c (base_derived_from): Make sure return value is a bool.
4325
9368208b
MM
43262002-10-18 Mark Mitchell <mark@codesourcery.com>
4327
4328 * class.c (find_final_overrider_data_s): Remove overriding_fn and
4329 overriding_base.
4330 (dfs_base_derived_from): New function.
4331 (base_derived_from): Likewise.
4332 (dfs_find_final_overrider): Use base_derived_from.
4333 (find_final_overrider): Adjust.
4334
5275f2bf
JM
43352002-10-18 Jason Merrill <jason@redhat.com>
4336
4337 PR c++/8080
4338 * semantics.c (finish_for_cond, finish_while_cond): Don't mess
4339 with condition decls in a template.
4340
8a188e24
NS
43412002-10-17 Nathan Sidwell <nathan@codesourcery.com>
4342
4343 * class.c (add_method): Compare template parms too.
4344
b216f69b
MM
43452002-10-17 Mark Mitchell <mark@codesourcery.com>
4346
982216be
MM
4347 PR c++/7584
4348 * class.c (handle_using_decl): Allow the declaration used to be
4349 from an ambiguous base.
4350
d768a589
MM
4351 * pt.c (convert_template_argument): Revert this change:
4352 2002-10-16 Mark Mitchell <mark@codesourcery.com>
4353 * pt.c (convert_template_argument): Do not fold non-type
4354 template rguments when inside a template.
4355
b216f69b
MM
4356 * init.c (expand_default_init): Handle brace-enclosed initializers
4357 correctly.
4358
2303a079
MM
43592002-10-16 Mark Mitchell <mark@codesourcery.com>
4360
d3133e68
MM
4361 * mangle.c (write_expression): Correct handling of enumeration
4362 constants.
4363 (write_template_arg): Likewise.
4364 * pt.c (convert_template_argument): Do not fold non-type template
4365 arguments when inside a template.
4366
2303a079
MM
4367 PR c++/7478
4368 * cvt.c (convert_to_reference): Allow references as the incoming
4369 type.
4370
451c0899
MM
43712002-10-16 Mark Mitchell <mark@codesourcery.com>
4372
4373 PR c++/7524
4374 * method.c (do_build_assign_ref): Use cp_build_qualified_type, not
4375 build_qualified_type.
4376
da6eec72
RH
43772002-10-15 Richard Henderson <rth@redhat.com>
4378
4379 * error.c (dump_expr): Use real_to_decimal directly, and with
4380 the new arguments.
4381
3fa3c4bd
MM
43822002-10-15 Mark Mitchell <mark@codesourcery.com>
4383
4384 * decl.c (reshape_init): Fix typo.
4385
4386 * cp-tree.h (operator_name_info_t): Add arity.
4387 * lex.c (init_operators): Initialize it.
4388 * mangle.c (write_conversion_operator_name): New function.
4389 (write_unqualified_name): Use it.
4390 (write_template_args): Accept template arguments as a TREE_LIST.
4391 (write_expression): Adjust handling of qualified names to match
4392 specification.
4393
1a55127d
JM
43942002-10-15 Jason Merrill <jason@redhat.com>
4395
4396 * call.c (call_builtin_trap): New fn.
4397 (convert_arg_to_ellipsis): Use it. Downgrade error to warning.
4398 (build_call): Don't set current_function_returns_abnormally outside
4399 a function.
4400
58731fd1
MM
44012002-10-14 Mark Mitchell <mark@codesourcery.com>
4402
4403 * class.c (check_field_decls): Remove empty_p parameter. Instead,
4404 clear CLASSTYPE_EMPTY_P.
4405 (build_base_field): Likewise.
4406 (build_base_fields): Likewise.
4407 (check_bases_and_members): Likewise.
4408 (create_vtbl_ptr): Likewise.
4409 (layout_class_type): Likewise. Ensure that empty classes have
4410 size zero when used as base classes in the 3.2 ABI.
4411 (finish_struct_1): Initialize CLASSTYPE_EMPTY_P and
4412 CLASSTYPE_NEARLY_EMPTY_P. Adjust calls to avoid passing empty_p
4413 parameter.
4414 (is_empty_class): Correct definition when using post-3.2 ABI.
4415 * cp-tree.h (lang_type_class): Add empty_p.
4416 (CLASSTYPE_EMPTY_P): New macro.
4417
6742d92b
NS
44182002-10-12 Nathan Sidwell <nathan@codesourcery.com>
4419
4420 * init.c (build_delete): Do not apply save_expr for arrays.
4421 (build_vec_delete): Likewise.
4422
77631fa7
MM
44232002-10-14 Mark Mitchell <mark@codesourcery.com>
4424
4a7510cb 4425 * decl.c (layout_var_decl): Call layout_decl even for variables
7de85f7e
MM
4426 whose type is an array with unspecified bounds.
4427
77631fa7
MM
4428 PR c++/7176
4429 * lex.c (do_identifier): Add another option for the parsing
4430 parameter.
4431 * parse.y (do_id): Use it.
4432
2ee366b5
GDR
44332002-10-11 Gabriel Dos Reis <gdr@integrable-solutions.net>
4434
4435 PRs C++/6803, C++/7721 and C++/7803
4436 * decl.c (grokdeclarator): Gracefully handle template-name as
4437 decl-specifier.
4438
01c3fb15
JM
44392002-10-11 Jason Molenda <jmolenda@apple.com>
4440
4441 * init.c (build_field_list): Provide uses_unions_p with a default
4442 value.
4443
8e3df2de
MM
44442002-10-11 Mark Mitchell <mark@codesourcery.com>
4445
dac45b5c
MM
4446 PR c++/5661
4447 * cp-tree.h (variably_modified_type_p): New function.
4448 (grokdeclarator) Tighten check for variably modified types as
4449 fields.
4450 * pt.c (convert_template_argument): Do not allow variably modified
4451 types as template arguments.
4a7510cb 4452 * tree.c (variably_modified_type_p): New function.
dac45b5c 4453
8e3df2de
MM
4454 * NEWS: Document removal of "new X = ..." extension.
4455 * class.c (initialize_array): Set TREE_HAS_CONSTRUCTOR on
4456 brace-enclosed initializers.
4457 * cp-tree.h (CP_AGGREGATE_TYPE_P): New macro.
4458 (initialize_local_var): Remove declaration.
4459 (expand_static_init): Likewise.
4460 * decl.c (next_initializable_field): New function.
4461 (reshape_init): Likewise.
4462 (check_initializer): Use them. Build dynamic initializer for
4463 aggregates here too.
4464 (initialize_local_var): Simplify, and incorporate cleanup
4465 insertion code as well.
4466 (destroy_local_var): Remove.
4467 (cp_finish_decl): Tidy.
4468 (expand_static_init): Fold checks for whether or not a variable
4469 needs initialization into this function. Simplify.
4470 * decl2.c (do_static_initialization): Simplify.
4471 * init.c (build_init): Do not set TREE_SIDE_EFFECTS when it will
4472 be done for us automatically.
4473 (expand_default_init): Handle brace-enclosed initializers
4474 correctly.
4475 (expand_aggr_init_1): Remove RTL-generation code.
4476 (build_vec_init): Remove "new X = ..." support.
4477 * parse.y (new_initializer): Likewise.
4478 * rtti.c (get_pseudo_ti_init): Set TREE_HAS_CONSTRUCTOR on
4479 brace-enclosed initializer.
4480 (create_pseudo_type_info): Likewise.
4481 * typeck2.c (store_init_value): Don't try to handle digest_init
4482 being called more than once.
4483 (digest_init): Tidy handling of brace-enclosed initializers.
01c3fb15 4484
7bdfd72e
KG
44852002-10-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4486
4487 * decl.c (typename_hash): Use htab_hash_pointer.
4488
e89fe41c
JW
44892002-10-10 Jim Wilson <wilson@redhat.com>
4490
4491 * decl.c (duplicate_decls): Don't call decl_attributes.
4492
95f79357
ZW
44932002-10-09 Zack Weinberg <zack@codesourcery.com>
4494
85cd7be8 4495 PR c/7353
95f79357
ZW
4496 * decl.c (start_decl): Unconditionally issue error for
4497 'typedef foo = bar'.
4498 (cp_finish_decl): Remove special case for TYPE_DECL with initializer.
4499 (grokdeclarator): Remove redundant error for 'typedef foo = bar'.
4500
10a38dba
KG
45012002-10-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4502
4503 * decl2.c (prune_vtable_vardecl): Delete unused function.
4504
edebf865
MM
45052002-10-03 Mark Mitchell <mark@codesourcery.com>
4506
4507 PR c++/7754
4508 * decl2.c (finish_anon_union): Do not expand anonymous unions when
4509 procesing template functions.
4510 * pt.c (tsubst_decl, case VAR_DECL): Try to complete the variable
4511 type. Call layout_decl.
4512 (tsubst_expr, case DECL_STMT): Handle anonymous unions.
4513
01f4137f
RH
45142002-10-07 Richard Henderson <rth@redhat.com>
4515
4516 * decl2.c, pt.c: Revert c++/7754 fix.
4517
eb55ce4b
KL
45182002-10-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
4519
4520 PR c++/7804
4521 * error.c (dump_expr) [REAL_CST]: Output in decimal format.
4522
bd9bb3d2
MM
45232002-10-03 Mark Mitchell <mark@codesourcery.com>
4524
43c6a96a 4525 PR c++/7931
bd9bb3d2
MM
4526 * pt.c (for_each_template_parm_r): Handle BASELINKs.
4527
4528 PR c++/7754
4529 * decl2.c (finish_anon_union): Do not expand anonymous unions when
4530 procesing template functions.
4531 * pt.c (tsubst_decl, case VAR_DECL): Try to complete the variable
4532 type. Call layout_decl.
4533 (tsubst_expr, case DECL_STMT): Handle anonymous unions.
4534
6397d80b
MM
45352002-10-03 Mark Mitchell <mark@codesourcery.com>
4536
4537 PR c++/8006
4538 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Handle instances of template
4539 template parameters.
4540 (globals): Add entity and need_abi_warning.
4541 (decl_is_template_id): Use TYPE_TEMPLATE_INFO, not
4542 CLASSTYPE_TEMPLATE_INFO.
4543 (is_std_substitution): Use CLASSTYPE_TI_TEMPLATE, not
4544 TYPE_TI_TEMPLATE.
4545 (write_prefix): Handle typename types correctly.
4546 (write_template_prefix): Handle template template parameters
4547 correctly.
4548 (start_mangling): Add entity parameter.
4549 (finish_mangling): Warn about names whose mangling will change.
4550 (mangle_decl_string): Adjust.
4551 (mangle_type_string): Likewise.
4552 (mangle_special_for_type): Likewise.
4553 (mangle_ctor_vtbl_for_type): Likewise.
4554 (mangle_thunk): Likewise.
4555 (mangle_guard_variable): Likewise.
4556 (mangle_ref_init_variable): Likewise.
4557
2282d28d
MM
45582002-10-02 Mark Mitchell <mark@codesourcery.com>
4559
4560 PR c++/7188.
4561 * cp-tree.def (CTOR_INITIALIZER): Use one slot, not two.
4562 * cp-tree.h (emit_base_init): Rename to ....
4563 (emit_mem_initializers): ... this.
4564 (expand_member_init): Change prototype.
4565 * init.c (perform_member_init): Compute explicit, rather than
4566 requiring it as a parameter.
4567 (sort_member_init): Rename to ...
4568 (sort_mem_initializers): ... this. Process bases and data members
4569 together.
4570 (sort_base_init): Remove.
4571 (emit_base_init): Rename to ...
4572 (emit_mem_initializers): ... this.
4573 (expand_aggr_vbase_init_1): Remove.
4574 (construct_virtual_bases): Rename to ...
4575 (construct_virtual_base): ... this.
4576 (expand_member_init): Rework handling of base initializers.
4577 * method.c (do_build_copy_constructor): Use
4578 finish_mem_initializers.
4579 * parse.y (member_init): Adjust calls to expand_member_init.
4580 * pt.c (tsubst_expr): Simplify CTOR_INITIALIZER case.
4581 (tsubst_initializer_list): Use expand_member_init.
4582 * semantics.c (finish_mem_intiailizers): Simplify.
69788039
MA
4583
45842002-10-02 Matt Austern <austern@apple.com>
4585 * decl.c (walk_vtables_r): Fixed typo that caused result to
4586 never get a nonzero value.
95f79357 4587
f963b5d9
RS
45882002-10-02 Roger Sayle <roger@eyesopen.com>
4589
4590 PR optimization/6627
4591 * cp-tree.h (enum ptrmemfunc_vbit_where_t): Delete definition
4592 from here, and move it to tree.h.
4593 * decl.c (cxx_init_decl_processing): If storing the vbit
4594 in function pointers, ensure that force_align_functions_log
4595 is atleast one.
4596
69788039
MA
45972002-10-02 Matt Austern <austern@apple.com>
4598
4599 * class.c (check_field_decls): Changed warning about const member
4600 variables so that it doesn't get issued for a class aggregate.
95f79357 4601
d881ff25
MM
46022002-10-01 Mark Mitchell <mark@codesourcery.com>
4603
4604 * decl.c (cp_finish_decl): Make sure array types are laid out,
4605 even if the array bounds are unknown.
4606
2e88ae22
SE
46072002-10-01 Steve Ellcey <sje@cup.hp.com>
4608
d881ff25 4609 * class.c (build_vtbl_initializer): Change build_c_cast
2e88ae22
SE
4610 to build1.
4611
b4c20e52
MM
46122002-10-01 Mark Mitchell <mark@codesourcery.com>
4613
d881ff25
MM
4614 * decl.c (cp_finish_decl): Make sure array types are laid out,
4615 even if the array bounds are unknown.
4616
b4c20e52
MM
4617 * decl.c (cp_finish_decl): Correct check for dynamic
4618 initialization of thread-local storage.
4619
5a9a1961
NS
46202002-09-30 Nathan Sidwell <nathan@codesourcery.com>
4621
4622 * tree.c (really_overloaded_fn): TEMPLATE_ID_EXPRs are also
4623 overloaded.
4624
7befdb9f
SE
46252002-09-30 Steve Ellcey <sje@cup.hp.com>
4626
4627 * class.c (build_vtbl_initializer): Add cast.
4628 (add_vcall_offset_vtbl_entries_1):
4629 Use TARGET_VTABLE_DATA_ENTRY_DISTANCE for offset.
4630
17bbb839
MM
46312002-09-30 Mark Mitchell <mark@codesourcery.com>
4632
4633 * class.c (walk_subobject_offsets): Correct the calculation of
4634 offsets for virtual bases. Correct the counting of array
4635 elements.
4636 (layout_nonempty_base_or_field): Simplify. Correct the
4637 calculation of offsets to be propagated through the binfo
4638 hierarchy.
4639 (build_base_field): Avoid creating a FIELD_DECL for empty bases.
4640 Add the FIELD_DECL to TYPE_FIELDS.
4641 (build_base_fields): Adjust accordingly.
4642 (layout_virtual_bases): Use build_base_field.
4643 (end_of_class): Return a tree, not an integer.
4644 (warn_about_ambiguous_direct_bases): Rename to ...
4645 (warn_about_ambiguous_bases): ... this.
4646 (include_empty_classes): New function.
4647 (layout_class_type): Create an alternative version of the type to
4648 be used when as a base class type. Do not call
4649 finish_record_layout until we are done laying out the class.
4650 * cp-tree.h (lang_type_class): Remove size, size_unit. Add
4651 as_base.
4652 (CLASSTYPE_SIZE): Reimplement.
4653 (CLASSTYPE_SIZE_UNIT): Likewise.
4654 (CLASSTYPE_ALIGN): Likweise.
4655 (CLASSTYPE_USER_ALIGN): Likewise.
4656 (CLASSTYPE_AS_BASE): New macro.
4657 (DECL_INITIALIZED_P): Likewise.
4658 (extract_init): Remove prototype.
4659 (build_forced_zero_init): Rename to ...
4660 (build_zero_init): ... this.
4661 (force_store_init_value): Remove.
4662 * decl.c (obscure_complex_init): Remove.
4663 (duplicate_decls): Copy DECL_INITIALIZED_P.
4664 (check_initializer): Do not leave junk in DECL_INITIAL.
4665 (cp_finish_decl): Handle zero-initialization of entities with
4666 static storage duration.
4667 * expr.c (extract_init): Remove.
4668 * init.c (build_forced_zero_init): Remove.
4669 (build_zero_init): New function.
4670 (build_default_init): Use it.
4671 (build_field_list): Skip FIELD_DECLs for base subobjects.
4672 (push_base_cleanups): Likewise.
4673 * method.c (do_build_assign_ref): Likewise.
4674 (synthesize_exception_spec): Likewise.
4675 * pt.c (tsubst_decl): Clear DECL_INITIALIZED_P.
4676 (regenerate_decl_from_template): To not set DECL_INITIAL for a
4677 static data member whose initialization took place in its class.
4678 (instantiate_decl): Do not pass an initializer to cp_finish_decl
4679 in that situation.
4680 * search.c (dfs_push_decls): Skip FIELD_DECLs for base subobjects.
4681 (dfs_unuse_fields): Likewise.
4682 * tree.c (pod_type_p): Handle error_mark_node.
4683 (zero_init_p): Likewise.
95f79357 4684 * typeck.c (lookup_anon_field): Skip FIELD_DECLs for base
17bbb839
MM
4685 subobjects.
4686 * typeck2.c (store_init_value): Remove #if 0'd code.
4687 (force_store_init_value): Remove.
4688 (process_init_constructor): Use build_zero_init.
95f79357 4689
03357c23
NS
46902002-09-29 Nathan Sidwell <nathan@codesourcery.com>
4691
4692 PR c++/7788
4693 * rtti.c (unemitted_tinfo_decl_p): Check it has a field.
4694
27631dae
KH
46952002-09-29 Kazu Hirata <kazu@cs.umass.edu>
4696
4697 * cp-tree.h: Fix comment typos.
4698 * decl.c: Likewise.
4699 * pt.c: Likewise.
4700
956d9305
MM
47012002-09-25 Mark Mitchell <mark@codesourcery.com>
4702
4703 * cp/class.c (contains_empty_class_p): New method.
4704 (walk_subobject_offsets): Correct computation of field offset.
4705 (layout_empty_base): Correct placement of emtpy base classes.
4706 (layout_class_type): Warn about ABI changes.
4707
2d3e278d
MM
47082002-09-23 Mark Mitchell <mark@codesourcery.com>
4709
4710 * cp/class.c (layout_virtual_bases): Do not round the size of the
4711 type to a multiple of the alignment before laying out virtual bases.
4712 (layout_class_type): Correct handling of bit-fields that are wider
4713 than their type inside unions. Round the size of the type to a
4714 even number of bytes when computing the size without virtual
4715 bases.
4716 * cp/cp-tree.h (abi_version_at_least): New macro.
95f79357 4717
838dfd8a
KH
47182002-09-21 Kazu Hirata <kazu@cs.umass.edu>
4719
4720 * ChangeLog: Follow spelling conventions.
4721 * ChangeLog.2: Likewise.
4722 * call.c: Likewise.
4723 * class.c: Likewise.
4724 * cp-tree.h: Likewise.
4725 * cvt.c: Likewise.
4726 * decl.c: Likewise.
4727 * decl2.c: Likewise.
4728 * except.c: Likewise.
4729 * friend.c: Likewise.
4730 * g++spec.c: Likewise.
4731 * init.c: Likewise.
4732 * lex.c: Likewise.
4733 * mangle.c: Likewise.
4734 * method.c: Likewise.
4735 * operators.def: Likewise.
4736 * optimize.c: Likewise.
4737 * pt.c: Likewise.
4738 * rtti.c: Likewise.
4739 * search.c: Likewise.
4740 * semantics.c: Likewise.
4741 * spew.c: Likewise.
4742 * tree.c: Likewise.
4743 * typeck.c: Likewise.
4744
9ced0328
DP
47452002-09-18 Devang Patel <dpatel@apple.com>
4746
4747 * cp/cp-tree.h: New prototype for walk_vtabls().
4748 * cp/decl.c (walk_vtables_r): New function.
4749 (struct cp_binding_level): Add new members, namespaces,
4750 names_size and vtables.
4751 (add_decl_to_level): Add decl in namespaces or vtables
4752 chain, if conditions match.
4753 (walk_vtables): New function.
4754 (walk_namespaces_r): Travers separate namespace chain
4755 for namespace decls.
4756 (wrapup_globals_for_namespace): Use names_size instead
4757 of list_length().
4758 * cp/decl2.c (finish_file): Use walk_vtables() instead of
4759 walk_globals() to walk vtable decls.
4760
dd29188b
NS
47612002-09-18 Nathan Sidwell <nathan@codesourcery.com>
4762
4763 * decl.c (grokdeclarator): Use assert, not internal_error. Don't
4764 ICE with invalid pointers & references.
4765
f989ed67
ZW
47662002-09-17 Zack Weinberg <zack@codesourcery.com>
4767
4768 * Make-lang.in: Remove all references to the demangler.
4769 * cxxfilt.c: Moved to binutils.
4770
171d2f50
NS
47712002-09-16 Nathan Sidwell <nathan@codesourcery.com>
4772
3ec83083
NS
4773 PR c++/7718
4774 * pt.c (tsubst_decl): Remove assert.
4775
171d2f50
NS
4776 Remove DR 295 implementation.
4777 * pt.c (check_cv_quals_for_unify): Disable function & method cases.
4778 * tree.c (cp_build_qualified_type_real): Likewise. Don't warn
4779 about ignoring volatile qualifiers.
4780
4781 * search.c (lookup_member): Correct documentation.
4782
36a5eadd
GK
47832002-09-16 Geoffrey Keating <geoffk@apple.com>
4784
4785 * cp-tree.h (union lang_tree_node): Add chain_next option.
4786
28c56d25
NS
47872002-09-16 Nathan Sidwell <nathan@codesourcery.com>
4788
7979434d
NS
4789 * parse.y (parse_finish_call_expr): Check lookup_member result.
4790
28c56d25
NS
4791 PR c++/7015
4792 * semantic.c (finish_asm_stmt): Fix operand/output_operands
4793 thinko.
4794 * typeck.c (c_expand_asm_operands): Protect from error_mark_node.
4795
3baab484
NS
47962002-09-15 Nathan Sidwell <nathan@codesourcery.com>
4797
4798 PR c++/7919
4799 * call.c (build_over_call): Convert this pointer for fns found by
4800 using decls.
4801
d30d6e7a
KH
48022002-09-15 Kazu Hirata <kazu@cs.umass.edu>
4803
4804 * ChangeLog: Follow spelling conventions.
4805 * ChangeLog.1: Likewise.
4806
c8460010
NS
48072002-09-14 Nathan Sidwell <nathan@codesourcery.com>
4808
4809 PR c++/7768
4810 * pt.c (build_template_decl): Copy DECL_DESTRUCTOR_P.
4811
c6002625
KH
48122002-09-14 Kazu Hirata <kazu@cs.umass.edu>
4813
4814 * error.c: Fix comment formatting.
4815 * except.c: Likewise.
4816 * expr.c: Likewise.
4817 * friend.c: Likewise.
4818 * g++spec.c: Likewise.
4819 * init.c: Likewise.
4820 * lex.c: Likewise.
4821 * mangle.c: Likewise.
4822 * method.c: Likewise.
4823 * optimize.c: Likewise.
4824 * pt.c: Likewise.
4825 * rtti.c: Likewise.
4826 * search.c: Likewise.
4827 * semantics.c: Likewise.
4828 * spew.c: Likewise.
4829 * tree.c: Likewise.
4830 * typeck.c: Likewise.
4831 * typeck2.c: Likewise.
4832
46dd3884
GDR
48332002-09-13 Matt Austern <austern@apple.com>
4834
4a7510cb 4835 PR C++/7828
46dd3884
GDR
4836 * cp/cp-tree.h, cp/tree.c: New function non_cast_lvalue_p.
4837 * cp/call.c: Change call-by-const-reference mechanism to use
4838 non_cast_lvalue_p when deciding whether the create a temporary.
4839 We need a temporary when passing, e.g. (long) x by const ref.
4840
712467a4
NS
48412002-09-13 Nathan Sidwell <nathan@codesourcery.com>
4842
4843 * pt.c (unify, ARRAY_TYPE): Element type can be more qualified.
4844
a1c65f9f
KH
48452002-09-13 Kazu Hirata <kazu@cs.umass.edu>
4846
4847 * decl.c: Fix comment formatting.
4848 * decl2.c: Likewise.
4849
00a17e31
KH
48502002-09-12 Kazu Hirata <kazu@cs.umass.edu>
4851
4852 * call.c: Fix comment formatting.
4853 * class.c: Likewise.
4854 * cp-lang.c: Likewise.
4855 * cp-tree.h: Likewise.
4856 * cvt.c: Likewise.
4857
3fd9d606
ZW
48582002-09-11 Zack Weinberg <zack@codesourcery.com>
4859
4860 * Make-lang.in: Build cp/cxxfilt.o from $(srcdir)/cp/cxxfilt.c,
4861 and c++filt from cxxfilt.o + version.o + $(LIBDEPS).
4862 * cxxfilt.c: New file: split from libiberty/cplus-dem.c, with
4863 minor adjustments (use version_string, eliminate yet another
4864 duplicate of xmalloc)
4865
2515a7ea
KG
48662002-09-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4867
4868 * cp-tree.h (require_complete_eh_spec_types): Add prototype.
4869
5aa3396c
JM
48702002-09-05 Jason Merrill <jason@redhat.com>
4871
4872 * typeck2.c (add_exception_specifier): Only pedwarn for an
4873 incomplete type.
4874 (require_complete_eh_spec_types): New fn.
4875 (cxx_incomplete_type_diagnostic): Also support pedwarning.
4876 * typeck.c (complete_type_or_diagnostic): Likewise.
4877 * call.c (build_call): Call require_complete_eh_spec_types.
4878 * rtti.c (get_pseudo_ti_desc): Give an error rather than aborting
4879 on an incomplete type.
4880
23ccd1f3
JJ
48812002-09-04 Jakub Jelinek <jakub@redhat.com>
4882
4883 * decl.c (start_cleanup_fn): Clear interface_only before
4884 start_function, restore it afterwards.
4885
4977bab6
ZW
48862002-09-02 Nathan Sidwell <nathan@codesourcery.com>
4887
4888 * cp-tree.h (finish_builtin_type): Remove.
4889 * decl2.c (finish_builtin_type): Move to common code.
4890 * decl.c (build_ptrmemfunc_type): Adjust.
4891 * rtti.c (create_pseudo_type_info): Adjust.
4892 (create_tinfo_types): Adjust.
4893
d99f015c
JM
48942002-08-31 Jason Merrill <jason@redhat.com>
4895
4896 * cp-lang.c (cp_expr_size): Allow initialization from a
4897 CONSTRUCTOR.
4898
8a3c9180
RH
48992002-08-30 Richard Henderson <rth@redhat.com>
4900
c9989d09 4901 PR opt/7515
8a3c9180
RH
4902 * tree.c: Include target.h.
4903 (cp_cannot_inline_tree_fn): Don't auto-inline functions that
4904 don't bind locally.
4905 * Makefile.in (tree.o): Update.
4906
eca7f13c
MM
49072002-08-27 Mark Mitchell <mark@codesourcery.com>
4908
4909 * class.c (layout_virtual_bases): Warn about bugs in G++ that
4910 result in incorrect object layouts.
4911 (layout_class_type): Likewise.
f989ed67 4912
13d3f0b6
MA
49132002-08-24 Matt Austern <austern@apple.com>
4914
4915 * tree.c (lvalue_p_1): Add argument for whether casts of lvalues
4916 are allowable.
4917 (real_lvalue_p): Update caller.
4918 (lvalue_p): Ditto.
4919 (non_cast_lvalue_or_else): New.
4920 * tree.h: Declare it.
f989ed67 4921 * typeck.c (build_unary_op): Use non_cast_lvalue_or_else.
13d3f0b6 4922
5b770a96
MM
49232002-08-22 Mark Mitchell <mark@codesourcery.com>
4924
4925 * typeck.c (build_class_member_access_expr): Handle COMPOUND_EXPR
4926 and COND_EXPR specially; fix error message output.
4927
d65b1d77
JM
49282002-08-22 Jason Merrill <jason@redhat.com>
4929
4930 * pt.c (tsubst_expr): RETURN_EXPR is now RETURN_STMT_EXPR.
4931 * semantics.c (nullify_returns_r): Likewise.
4932
8a5f4379
GDR
49332002-08-17 Gabriel Dos Reis <gdr@integrable-solutions.net>
4934
4935 Fix PR/7621
4936 * typeck.c (finish_class_member_access_expr): Diagnose cases where
4937 name lookup finds nothing.
4938
5d764395
JM
49392002-08-15 Jason Merrill <jason@redhat.com>
4940
4941 * semantics.c (finish_then_clause): Remove redundant assignment.
4942 (finish_if_stmt, begin_switch_stmt, finish_switch_stmt): Move the
4943 extra binding level outside the if/switch statement.
4944 (finish_while_cond, finish_for_cond): Rewrite complex condition
4945 into the loop body.
4946
c01b9ec8
AO
49472002-08-15 Alexandre Oliva <aoliva@redhat.com>
4948
4949 * parse.y (sizeof, alignof, typeof): New non-terminals to
4950 increment skip_evaluation. Replace terminals with them and
4951 decrement skip_evaluation at the end of rules using them.
4952 * decl2.c (mark_used): Don't assemble_external if
4953 skipping evaluation.
4954
e8fe46d4
GDR
49552002-08-15 Gabriel Dos Reis <gdr@nerim.net>
4956
4957 Fix PR/7504
4958 * parse.y (parse_finish_call_expr): Handle incomplete
4959 type used to name a scope.
4960
eac5ce6c
NS
49612002-08-15 Nathan Sidwell <nathan@codesourcery.com>
4962
4963 PR c++/7598
4964 * typeck.c (build_unary_op): Fold offsetof idiom. Fixes
4965 regression caused by my 2002-08-08 patch.
4966
22eadedb
MM
49672002-08-13 Mark Mitchell <mark@codesourcery.com>
4968
4969 * decl.c (pushdecl_class_level): Honor requests to bind names to
4970 OVERLOADs.
4971
e65e6212
KG
49722002-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
4973
4974 * decl2.c (build_call_from_tree): Fix uninitialized variable.
4975 * parse.y (parse_finish_call_expr): Likewise.
4976 * repo.c (old_args, old_dir, old_main): Const-ify.
4977
3e72ec9a
GDR
49782002-08-11 Gabriel Dos Reis <gdr@nerim.net>
4979
d78e771d 4980 * decl.c (duplicate_decls): Replace DECL_SOURCE_FILE
3e72ec9a
GDR
4981 DECL_SOURCE_LINE with DECL_SOURCE_LOCATION.
4982 * optimize.c (maybe_clone_body): Likewise.
4983 * pt.c (tsubst_enum): Likewise.
4984 (lookup_template_class): Likewise.
4985 * tree.c (cp_copy_res_decl_for_inlining): Likewise.
4986
f749a36b
NB
49872002-08-10 Neil Booth <neil@daikokuya.co.uk>
4988
4989 * lang-specs.h: Remove -ansi.
4990
3ebf5204
NS
49912002-08-10 Nathan Sidwell <nathan@codesourcery.com>
4992
4993 * tree.c (maybe_dummy_object): Replace // with /* */
4994
9e259dd1
MM
49952002-08-09 Mark Mitchell <mark@codesourcery.com>
4996
4997 * call.c (standard_conversion): Use build_ptrmem_type.
4998 * cp-tree.h (build_ptrmem_type): New function.
4999 (adjust_result_of_qualified_name_lookup): Likewise.
5000 * decl.c (grokvardecl): Do not look for OFFSET_TYPEs to indicate
5001 static data members.
5002 (build_ptrmem_type): New function.
5003 (grokdeclarator): Do not use build_offset_type when encountering a
5004 qualified name.
5005 * parse.y (parse_finish_call_expr): Use
5006 adjust_result_of_qualified_name_lookup.
5007 * search.c (adjust_result_of_qualified_name_lookup): New function.
5008 * typeck.c (qualify_type_recursive): Use TYPE_PTRMEM_* rather than
5009 accessing OFFSET_TYPEs directly.
f989ed67 5010
0e339752
MS
50112002-08-08 Mike Stump <mrs@apple.com>
5012
5013 * call.c (add_builtin_candidate): legal -> valid, illegal -> invalid.
5014 (type_decays_to): Likewise.
5015 * class.c (find_final_overrider): Likewise.
5016 (maybe_note_name_used_in_class): Likewise.
5017 * decl.c (current_tmpl_spec_kind): Likewise.
5018 (add_binding): Likewise.
5019 (push_class_binding): Likewise.
5020 (duplicate_decls): Likewise.
5021 (layout_var_decl): Likewise.
5022 (grokfndecl): Likewise.
5023 (grokdeclarator): Likewise.
5024 (check_default_argument): Likewise.
5025 * decl2.c (handle_class_head): Likewise.
5026 * error.c (dump_template_decl): Likewise.
5027 * init.c (build_offset_ref): Likewise.
5028 * pt.c (check_specialization_scope): Likewise.
5029 (determine_specialization): Likewise.
5030 (check_explicit_specialization): Likewise.
5031 (maybe_check_template_type): Likewise.
5032 (process_partial_specialization): Likewise.
5033 (check_default_tmpl_args): Likewise.
5034 (push_template_decl_real): Likewise.
5035 (convert_template_argument): Likewise.
5036 (try_class_unification): Likewise.
5037 (get_bindings_real): Likewise.
5038 (do_decl_instantiation): Likewise.
5039 * semantics.c (begin_function_definition): Likewise.
5040 (finish_member_declaration): Likewise.
5041 (check_multiple_declarators): Likewise.
5042 * typeck.c (comp_array_types): Likewise.
5043 (comptypes): Likewise.
5044 (expr_sizeof): Likewise.
5045 (build_binary_op): Likewise.
5046 (dubious_conversion_warnings): Likewise.
5047 (check_return_expr): Likewise.
b6ce26ac 5048
a6f5b2d3
MM
50492002-08-08 Mark Mitchell <mark@codesourcery.com>
5050
5051 * typeck.c (build_class_member_access_expr): Do not return
5052 error_mark_node when no error has occurred.
b6ce26ac 5053
c93a26f5
NS
50542002-08-08 Nathan Sidwell <nathan@codesourcery.com>
5055
5056 * typeck.c (build_component_addr): Remove.
5057 (build_unary_op): Just check it's not a bitfield, and then build
5058 an ADDR_EXPR.
5059
5bfc90de
NS
50602002-08-08 Nathan Sidwell <nathan@codesourcery.com>
5061
5062 * class.c (convert_to_base): Correct check for error_mark_node.
5063 (create_vtable_ptr): Remove unused VFUNS_P parm.
5064
22aa533e
NS
50652002-08-08 Nathan Sidwell <nathan@codesourcery.com>
5066
5067 * cp/Make-lang.in (c++.mostlyclean): Remove coverage files.
5068
50ad9642
MM
50692002-08-07 Mark Mitchell <mark@codesourcery.com>
5070
5071 Rework build_component_ref.
5072 * call.c (build_vfield_ref): Do not go through build_component_ref.
5073 (build_field_call): Use build_class_member_access_expr.
5074 (build_user_type_conversion_1): Use BASELINK_FUNCTIONS.
5075 (build_object_call): Likewise.
5076 * class.c (convert_to_base): New function.
5077 (type_requires_array_cookie): Use BASELINK_FUNCTIONS.
5078 (instantiate_type): Handle BASELINKs.
5079 * cp-tree.def (BASELINK): New tree code.
5080 * cp-tree.h (BASELINK_P): Reimplement.
5081 (SET_BASELINK_P): Remove.
5082 (BASELINK_BINFO): Reimplement.
5083 (BASELINK_FUNCTIONS): Likewise.
5084 (BASELINK_ACCESS_BINFO): Likewise.
5085 (BASELINK_OPTYPE): Likewise.
5086 (convert_to_base): New function.
5087 (name_p): Likewise.
5088 (build_object_ref): Remove.
5089 (build_component_ref_1): Likewise.
5090 (build_component_ref): Likewise.
5091 (build_x_component_ref): Likewise.
5092 (build_class_member_access_expr): New function.
5093 (finish_class_member_access_expr): Likewise.
5094 (build_ptrmemfunc_access_expr): Likewise.
5095 * decl.c (grokdeclarator): Handle BASELINKs.
5096 * decl2. (build_expr_from_tree): Handle COMPONENT_REFs by using
5097 finish_class_member_access_expr.
5098 (arg_assoc): Handle BASELINKs.
5099 (do_class_using_decl): Likewise.
5100 * error.c (dump_decl): Likewise.
5101 (dump_expr): Use build_ptrmemfunc_access_expr.
5102 * except.c (dtor_nothrow): Use CLASSTYPE_DESTRUCTORS to find
5103 destructors.
5104 (build_throw): Use BASELINK_FUNCTIONS.
5105 * init.c (perform_member_init): Use
5106 build_class_member_access_expr.
5107 (build_offset_ref): Handle BASELINKs. Use
5108 build_class_member_access_expr.
5109 * method.c (hack_identifier): Likewise.
5110 * parse.y (do_id): Use BASELINK, not TREE_LIST.
5111 (primary): Remove uses of build_object_ref.
5112 * pt.c (lookup_template_function): Handle BASELINKs.
5113 (resolve_overloaded_unification): Likewise.
5114 * search.c (build_baselink): Build a BASELINK, not a TREE_LIST.
5115 (lookup_field): Use BASELINK, not TREE_LIST.
5116 (lookup_fnfiels): Likewise.
5117 (setup_class_bindings): Likewise.
5118 * semantics.c (finish_object_call_expr): Do not use
5119 build_method_call when we already know what function is being
5120 called.
5121 * spew.c (identifier_type): Use BASELINK, not TREE_LIST.
5122 * tree.c (really_overloaded_fn): Use OVL_CHAIN for OVERLOADs, not
5123 TREE_CHAIN.
5124 (name_p): New function.
5125 * typeck.c (build_object_ref): Remove.
5126 (build_component_ref_1): Likewise.
5127 (build_x_component_ref): Likewise.
5128 (build_class_member_access_expr): New function.
5129 (finish_class_member_access_expr): Likewise.
5130 (build_ptrmemfunc_access_expr): Likewise.
5131 (get_member_function_from_ptrfunc): Use
5132 build_ptrmemfunc_access_expr.
5133 (build_binary_op): Likewise.
5134 (build_unary_op): Likewise.
5135 (build_ptrmemfunc): Likewise.
5136 (pfn_from_ptrmemfunc): Likewise.
5137 * typeck2.c (build_m_component_ref): Adjust comment.
b6ce26ac 5138
0b6f2917
NB
51392002-08-07 Neil Booth <neil@daikokuya.co.uk>
5140
5141 * Make-lang.in (CXX_C_OBJS): Update.
5142 * cp-lang.c (LANG_HOOKS_DECODE_OPTION): Use c_common_decode_option.
5143 * cp-tree.h (cxx_decode_option): Remove.
5144 * decl2.c (compare_options, lang_f_options, unsupported_options,
5145 cxx_decode_option): Remove.
5146
1e14c7f0
GDR
51472002-08-06 Gabriel Dos Reis <gdr@nerim.net>
5148
5149 * typeck.c (build_x_unary_op): Handle pointer-to-member.
5150
b3426eb9
GK
51512002-08-05 Geoffrey Keating <geoffk@redhat.com>
5152
5153 * class.c: Don't include obstack.h.
b6ce26ac 5154 (popclass):
b3426eb9
GK
5155 * decl2.c: Delete bogus comment.
5156 * error.c: Don't include obstack.h.
5157 * except.c: Likewise.
5158 (dump_type): Correct comment.
5159 * method.c: Don't include obstack.h.
5160 * tree.c: Likewise.
5161
201fbb7f
GDR
51622002-08-04 Gabriel Dos Reis <gdr@nerim.net>
5163
5164 Fix PR/2213
5165 * cvt.c (cp_convert_to_pointer): Reject conversions from integral
5166 expressions to pointer-to-data-member of pointer-to-member-functions.
5167
6d9f628e
GK
51682002-08-04 Geoffrey Keating <geoffk@redhat.com>
5169
5170 * cvt.c (ocp_convert): Delete obsolete code.
5171 * parse.y (permanent_obstack): Delete declaration.
5172 * pt.c (permanent_obstack): Delete declaration.
5173 * repo.c (permanent_obstack): Delete declaration.
5174 (open_repo_file): Use xmalloc instead of permanent_obstack.
5175 (init_repo): Use xstrdup instead of permanent_obstack.
5176
dd98e14f
NS
51772002-08-04 Nathan Sidwell <nathan@codesourcery.com>
5178
5179 * cp-tree.h (VF_DERIVED_VALUE): Remove.
5180 * class.c (finish_struct_1): Use VF_BINFO_VALUE not VF_DERIVED_VALUE.
5181
e6858a84
NS
51822002-08-03 Nathan Sidwell <nathan@codesourcery.com>
5183
5184 PR 7470.
5185 C++ ABI change - vfunc ordering.
5186 * class.c (add_virtual_function): Remove.
5187 (dfs_modify_all_vtables): Take list of all declared
5188 virtuals. Assign all that are not in primary base.
5189 (check_for_override): Adjust comments.
5190 (create_vtable_ptr): Take single list of virtuals. Build chain
5191 of declared virtuals here.
5192 (layout_class_type): Take single list of virtuals. Adjust.
5193 (finish_struct_1): Keep virtuals on single list. Adjust.
5194
55765de4
MM
51952002-08-02 Mark Mitchell <mark@codesourcery.com>
5196
5197 * init.c (build_member_call): Use build_new_method_call, not
5198 build_method_call.
5199
d0067571
KW
52002002-08-02 Krister Walfridsson <cato@df.lth.se>
5201
5202 * Make-lang.in (spew.o, lex.o, pt.o): Add path to parse.h dependencies.
5203
4a34e0e8
MM
52042002-08-02 Mark Mitchell <mark@codesourcery.com>
5205
5206 * call.c (build_method_call): Issue a more helpful error message
5207 about ambiguous method names.
5208
41ab2ae2
NS
52092002-08-02 Nathan Sidwell <nathan@codesourcery.com>
5210
5211 * tree.c (build_shared_int_cst): Make cache file scope, and
5212 GTY it.
5213
367aa585
JM
52142002-08-02 Jason Merrill <jason@redhat.com>
5215
a77a9a18
JM
5216 * cp-lang.c (LANG_HOOKS_EXPR_SIZE): Define.
5217 (cp_expr_size): New fn.
5218 * call.c (build_over_call): Lose empty class hackery.
5219 (convert_arg_to_ellipsis): Promote non-POD warning to error.
5220 * typeck.c (build_modify_expr): Don't use save_expr on an lvalue.
5221
367aa585
JM
5222 * semantics.c (expand_body): Do tree optimization in the function
5223 context, too.
5224
4078b403
NB
52252002-08-01 Neil Booth <neil@daikokuya.co.uk>
5226
5227 * cp-tree.h: Move all warning and flag declarations to c-common.h.
5228 * decl.c: Move all warning and flag variables to c-common.c.
5229 * decl2.c: Move all warning and flag variables to c-common.c.
5230 * lex.c (flag_digraphs): Remove.
5231 (warn_traditional): Now in c-common.c.
5232
4ba126e4
MM
52332002-07-31 Mark Mitchell <mark@codesourcery.com>
5234
5235 * call.c (build_field_call): Do not look up the field by name.
5236 (build_method_call): Simplify.
5237 (struct z_candidate): Add access_path and conversion_path. Remove
5238 basetype_path.
5239 (convert_class_to_reference): Adjust use of
5240 add_function_candidate.
5241 (add_candidate): Add conversion_path argument.
5242 (add_function_candidate): Use it.
5243 (add_conv_dndidate): Likewise.
5244 (build_builtin_candidate): Likewise.
5245 (add_template_candidate_real): Add conversion_path argument.
5246 (add_template_conv_candidate): Likewise.
5247 (add_template_candidate): Likewise.
5248 (build_user_type_conversion_1): Use it.
5249 (build_new_function_call): Remove name lookup code. Adjust use of
5250 add_template_candidate and add_function_candidate.
5251 (build_new_op): Likewise.
5252 (convert_like_real): Use build_special_member_call.
5253 (build_over_call): Use cand->conversion_path.
5254 (build_special_member_call): New method.
5255 (build_new_method_call): Remove name lookup code.
5256 * cp-tree.def (OFFSET_REF): Update documentation.
5257 (TEMPLATE_ID_EXPR): Likewise.
5258 * cp-tree.h (BASELINK_ACCESS_BINFO): New macro.
5259 (BASELINK_OPTYPE): Likewise.
5260 (build_new_method_call): Adjust prototype.
5261 (build_special_member_call): New method.
5262 (build_baselink): New method.
5263 (build_offset_ref_call_from_tree): Likewise.
5264 (build_call_from_tree): Likewise.
5265 (finish_qualified_call_expr): Remove.
5266 (finish_call_expr): Adjust prototype.
5267 (build_x_function_call): Remove.
5268 * cvt.c (ocp_convert): Use build_special_member_call.
5269 * decl2.c (reparse_absdcl_as_expr): Use finish_call_expr.
5270 (build_expr_from_tree): Adjust handling for TEMPLATE_ID_EXPR and
5271 CALL_EXPR.
5272 (build_offset_ref_call_from_tree): New function.
5273 (build_call_from_tree): Likewise.
5274 * init.c (expand_cleanup): Use build_special_member_call.
5275 (expand_default_init): Likewise.
5276 (build_member_call): Use finish_call_expr.
5277 (build_new_1): Use build_special_member_call.
5278 (push_base_cleanups): Likewise.
5279 * method.c (do_build_assign_ref): Likewise.
5280 * parse.y (template_id): Do not pass a COMPONENT_REF to
5281 lookup_template_function.
5282 (primary): Use parse_finish_call_epxr, not finish_call_expr.
5283 (parse_finish_call_expr): New function.
5284 * pt.c (lookup_template_function): Add assertions.
5285 * search.c (lookup_base): Allow T to be a binfo.
5286 (build_baselink): New function.
5287 (lookup_member): Use it.
5288 * semantics.c (finish_call_expr): Do not do name lookup.
5289 (finish_object_call_expr): Remove #if 0'd code.
5290 (finish_qualified_call_expr): Remove.
5291 * typeck.c (build_x_function_call): Remove.
5292 (build_static_case): Use build_special_member_call.
5293 * typeck2.c (build_functional_cast): Likewise.
b6ce26ac 5294
60b8aa94
FS
52952002-07-30 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
5296
5297 * lang-specs.h: Remove __GXX_ABI_VERSION, moved to gcc.c.
5298
8a4a7242
GDR
52992002-07-30 Gabriel Dos Reis <gdr@nerim.net>
5300
5301 * cp-tree.h (VF_DERIVED_VALUE): Restore from previous deletion.
5302
03fc215c
NS
53032002-07-30 Nathan Sidwell <nathan@codesourcery.com>
5304
5305 * cp-tree.h (CLASSTYPE_VFIELDS, VF_*, BV_*): Add more
5306 documentation.
5307
3f16a8f3
AM
53082002-07-29 Alan Modra <amodra@bigpond.net.au>
5309
5310 * cp-tree.h: Comment typo fix.
5311
c03d566f
RE
53122002-07-29 Richard Earnshaw <rearnsha@arm.com>
5313
5314 * spew.c (space_for_token): Allocate zeroed memory for a new token
5315 chunk.
5316
c2ef6d34
RS
53172002-07-27 Roger Sayle <roger@eyesopen.com>
5318
5319 * decl.c (builtin_function_1): No need to explicitly mark
5320 BUILT_IN_RETURN and BUILT_IN_EH_RETURN as noreturn.
5321
a3926fe1
RS
53222002-07-27 Roger Sayle <roger@eyesopen.com>
5323
5324 * decl2.c (cxx_decode_option): Support -fno-builtin-foo.
5325
8e51619a
JM
53262002-07-26 Jason Merrill <jason@redhat.com>
5327
5328 * call.c (build_over_call): Likewise.
5329 (cp_convert_parm_for_inlining): New fn.
f989ed67
ZW
5330 (convert_for_arg_passing): New fn.
5331 (convert_default_arg, build_over_call): Use it.
8e51619a
JM
5332 (type_passed_as): New fn.
5333 * pt.c (tsubst_decl): Use it.
5334 * decl2.c (cp_build_parm_decl): New fn.
5335 (build_artificial_parm): Use it.
5336 (start_static_storage_duration_function): Likewise.
5337 * decl.c (start_cleanup_fn, grokdeclarater): Likewise.
5338 (grokparms): Don't mess with DECL_ARG_TYPE.
5339 * typeck.c (convert_arguments): Use convert_for_arg_passing.
5340 * cp-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING):
5341 Define.
5342 * cp-tree.h: Declare new fns.
b6ce26ac 5343
c372b0fa
NB
53442002-07-26 Neil Booth <neil@daikokuya.co.uk>
5345
5346 * cp-tree.h (flag_operator_names): Remove.
5347 * decl2.c (flag_operator_names): Remove.
5348 (lang_f_options): Remove operator-names.
5349 * lex.c (D_OPNAME): Remove.
5350 (reswords): Remove operator names.
5351 (rid_to_yy): Remove operator names.
5352 (init_reswords): No need to handle D_OPNAME.
5353 * spew.c (read_process_identifier): There are no operator
5354 names.
5355
558ee214
JM
53562002-07-26 Jason Merrill <jason@redhat.com>
5357
5358 * dump.c (cp_dump_tree): Call c_dump_tree.
5359 * Make-lang.in (CXX_C_OBJS): Add c-dump.o.
5360
81a1552d
NB
53612002-07-25 Neil Booth <neil@daikokuya.co.uk>
5362
5363 * error.c (print_whitespace): Remove.
5364 * g++spec.c (LIBUNWIND): Move.
5365 * mangle.c (mangled_position, write_signed_number): Remove.
5366
cad2c6b6
NB
53672002-07-25 Neil Booth <neil@daikokuya.co.uk>
5368
5369 * decl2.c (cxx_decode_option): Similarly.
5370
ea793912
GDR
53712002-07-25 Gabriel Dos Reis <gdr@nerim.net>
5372
5373 * cp-tree.h (cxx_sizeof_nowarn): Now a macro.
5374 (cxx_sizeof_or_alignof_type): Take a third argument.
5375 (cxx_sizeof): Adjust definition.
5376 (cxx_alignof): Likewise.
5377 * init.c (build_delete): Use cxx_sizeof_nowarn to reflect reality.
5378 * typeck.c (cxx_sizeof_or_alignof_type): Take a third argument for
5379 complaining.
5380 (c_sizeof_nowarn): Remove definition.
5381 (build_unary_op): Use cxx_sizeof_nowarn.
5382
3cfab7ec
GK
53832002-07-24 Geoffrey Keating <geoffk@redhat.com>
5384
5385 * tree.c (cp_build_qualified_type_real): When copying
5386 pointer-to-method types, unshare the record that holds
5387 the cached pointer-to-member-function type.
5388
c0667597
NB
53892002-07-23 Neil Booth <neil@daikokuya.co.uk>
5390
5391 * cp-tree.h (FILE_FUNCTION_PREFIX_LEN): Remove.
5392
fa72b064
GDR
53932002-07-23 Gabriel Dos Reis <gdr@nerim.net>
5394
5395 Fix PR/7363:
5396 * typeck.c (cxx_sizeof_or_alignof_type): New function.
5397 (c_sizeof): Remove definition.
5398 (expr_sizeof): Use cxx_sizeof.
5399 * decl2.c (build_expr_from_tree): Use cxx_sizeof_or_alignof_type.
5400 * decl.c (finish_destructor_body): Use cxx_sizeof.
5401 * semantics.c (finish_alignof): Likewise.
5402 (finish_alignof): Use cxx_alignof.
5403 * cp-tree.h (cxx_sizeof, cxx_alignof): New macros.
5404 (cxx_sizeof_or_alignof_type): Declare.
5405 (my_friendly_assert): Move to ../c-common.h.
5406
4fa31c2a
NB
54072002-07-23 Neil Booth <neil@daikokuya.co.uk>
5408
5409 * class.c, method.c, pt.c, search.c: Don't define obstack macros.
5410
0e902d98
KL
54112002-07-22 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5412
5413 PR c++/7347, c++/7348
5414 * cp-tree.h (tsubst_flags_t): Add tf_parsing.
5415 * decl.c (make_typename_type): Use it.
5416 (make_unbound_class_template): Likewise.
5417 (lookup_name_real): Don't call type_access_control if scope is
5418 template parameter dependent.
5419 * parse.y (template_arg): Call make_unbound_class_template with
5420 tf_parsing set.
5421 (nest_name_specifier): Call make_typename_type with tf_parsing set.
5422 (typename_sub0): Likewise.
5423 (typename_sub1): Likewise.
5424 (instantiate_decl): Push class scope.
5425 * pt.c (regenerate_decl_from_template): Call pushclass and popclass
5426 for both static variable and member function template.
5427 (instantiate_decl) Call pushclass and popclass when tsubst'ing type
5428 and arguments.
5429 * search.c (type_access_control): Do type access for TEMPLATE_DECL
5430 too.
5431
b886c620
RS
54322002-07-20 Roger Sayle <roger@eyesopen.com>
5433
5434 * decl2.c (cxx_decode_option): Simplify -fhandle-exceptions
5435 test by using positive_option. Make whitespace consistent.
5436
7a561142
GDR
54372002-07-20 Gabriel Dos Reis <gdr@nerim.net>
5438
fa72b064 5439 * spew.c (struct unparsed_test): Replace 'filename' and 'lineno'
7a561142
GDR
5440 members with 'locus'. Adjust use throughout.
5441 (struct feed): Likewise.
5442 (alloc_unparsed_test): Change prototype, take a 'const location_t *'.
5443 Adjust use.
5444 (snarf_defarg): Use error(), not error_with_file_and_line().
5445
059ba716
CD
54462002-07-19 Chris Demetriou <cgd@broadcom.com>
5447
5448 * lang-specs.h (@c++): Include "%2" (cc1plus_spec) wherever
5449 cpp_options is included.
5450
d955f6ea
KL
54512002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5452
5453 PR c++/2862, c++/2863
5454 * pt.c (determine_specialization): Compare the length of
5455 TYPE_ARG_TYPES. Tidy.
5456
d03d18e8
KL
54572002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5458
5459 PR c++/3797
5460 * decl.c (duplicate_decls): Don't propagate inlining parameters from
b6ce26ac 5461 olddecl to newdecl when newdecl is a specialization of the
d03d18e8
KL
5462 instantiation olddecl.
5463
ba59df78
KL
54642002-07-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5465
5466 PR c++/4802, c++/5387
5467 * decl.c (make_typename_type): Use enforce_access.
5468
58f05188
SS
54692002-07-17 Scott Snyder <snyder@fnal.gov>
5470
5471 PR c++/7320
5472 * rtti.c (get_tinfo_decl): Set DECL_COMDAT.
5473
04ec0065
MM
54742002-07-12 Mark Mitchell <mark@codesourcery.com>
5475
5476 * class.c (add_method): Correct handling of conversion operators.
5477
f0ab6bf2
MM
54782002-07-11 Mark Mitchell <mark@codesourcery.com>
5479
5480 PR c++/7224
5481 * class.c (add_method): Simplify.
5482
34902e16
JM
54832002-07-11 Jason Merrill <jason@redhat.com>
5484
5485 PR c++/7279
5486 * tree.c (cp_copy_res_decl_for_inlining): Also copy
5487 TREE_ADDRESSABLE.
5488
6e04241f
GS
54892002-07-10 Graham Stott <graham.stott@btinternet.com>
5490
5491 * pt.c (template_parm_this_level_p, push_template_decl_real):
b6ce26ac 5492 Pass depth as int pointer.
6e04241f 5493
8ac9d31f
TJ
54942002-07-11 Tim Josling <tej@melbpc.org.au>
5495
b6ce26ac 5496 Remove front end hard coding from gengtype.c.
8ac9d31f
TJ
5497
5498 * config-lang.in (gtfiles): Add files needed for this front end.
5499
15c7fb9c
MM
55002002-07-10 Mark Mitchell <mark@codesourcery.com>
5501
5502 * cp-tree.h (unqualified_name_lookup_error): Declare it.
5503 (begin_function_definition): Adjust prototype.
5504 * lex.c (unqualified_name_lookup_error): New function, split out
5505 from ...
5506 (do_identifier): ... here.
5507 * parse.y (parse_begin_function_definition): New function.
5508 (fn.def1): Use it.
5509 * semantics.c (begin_function_definition): Accept decl-specifiers
5510 and attributes as separate parameters.
5511
abf92e26
JM
55122002-07-10 Jason Merrill <jason@redhat.com>
5513
5514 PR c++/6255
5515 * decl.c (lookup_name_real): Build a new TYPENAME_TYPE rather than
5516 modifying the old one.
5517
8ba658ee
MM
55182002-07-09 Mark Mitchell <mark@codesourcery.com>
5519
5520 * cp-tree.h (constructor_name_p): Declare it.
5521 (check_template_template_default_arg): Likewise.
5522 * class.c (handle_using_decl): Use constructor_name_p.
5523 * decl.c (grokdeclarator): Likewise.
5524 * decl2.c (constructor_name_p): Define it.
5525 * init.c (build_member_call): Use constructor_name_p.
5526 * parse.y (template_parm): Use check_template_template_default_arg.
5527 * pt.c (check_explicit_specialization): Use constructor_name_p.
5528 * semantics.c (check_template_template_default_arg): New function.
b6ce26ac 5529
d5372501
KL
55302002-07-08 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5531
5532 * pt.c (can_complete_type_without_circularity): Add static to
5533 function definition.
5534
594bb0e7
MM
55352002-07-08 Mark Mitchell <mark@codesourcery.com>
5536
5537 * cp-tree.h (have_extern_spec): Declare it
5538 * decl.c (have_extern_spec): Define it.
5539 (start_decl): Eliminate use of used_extern_spec.
5540 (start_function): Likewise.
5541 * parse.y (have_extern_spec): Remove declaration.
5542 (used_extern_spec): Likewise.
5543 (frob_specs): Eliminate use of used_extern_spec.
5544 (.hush_warning): Likewise.
5545
eb8845be
MM
55462002-07-07 Mark Mitchell <mark@codesourcery.com>
5547
5548 * Make-lang.in (cp/parse.o): Depend on decl.h.
5549 * cp-tree.h (do_decl_instantiation): Change prototype.
5550 * parse.y: Include decl.h.
5551 (parse_decl_instantiation): New function.
5552 (explicit_instantiation): Use it.
5553 * pt.c (do_decl_instantiation): Accept a DECL, not a DECLARATOR
5554 and DECLSPECS.
b6ce26ac 5555
78abea27
RS
55562002-07-07 Roger Sayle <roger@eyesopen.com>
5557
5558 * error.c (dump_function_name): Use DECL_TEMPLATE_RESULT for
5559 constructor and destructor tests when passed a TEMPLATE_DECL.
5560
98c07d7b
JM
55612002-07-05 Jason Merrill <jason@redhat.com>
5562
212e17fd
JM
5563 * cvt.c (cp_convert_to_pointer): Call force_fit_type for null
5564 pointers.
5565
98c07d7b
JM
5566 PR optimization/7145
5567 * tree.c (cp_copy_res_decl_for_inlining): Also copy DECL_INITIAL.
5568
c6f553d1
NS
55692002-07-05 Nathan Sidwell <nathan@codesourcery.com>
5570
5571 Repair damage on weak-impared targets caused by my previous patch.
5572 * cp-tree.h (import_export_tinfo): Add parameter.
5573 * decl2.c (import_export_tinfo): Add parameter, post adjust
5574 DECL_COMDAT.
5575 * rtti.c (emit_tinfo_decl): DECL_COMDAT is (nearly) always setup by
5576 import_export_tinfo.
5577
b2153b98
KL
55782002-07-03 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5579
5580 PR c++/6944
5581 * init.c (build_aggr_init): Remove qualifiers of init before calling
5582 build_vec_init.
5583 (build_vec_init): Flatten multi-dimensional array during cleanup.
5584 (build_vec_delete_1): Abort if the type of each element is array.
5585
492ff760
GS
55862002-07-03 Graham Stott <graham.stott@btinternet.com>
5587
5588 * pt.c (instantiate_class_template): Fix typo.
5589
04c4491d
KL
55902002-07-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5591
06728f70
KL
5592 * typeck2.c (cxx_incomplete_type_diagnostic): Fix typo caused
5593 by CVS conflict in my last patch.
04c4491d 5594
17f29637
KL
55952002-07-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5596
5597 PR c++/6716
5598 * pt.c (can_complete_type_without_circularity): New function.
5599 (instantiate_class_template): Use it.
06728f70
KL
5600 * typeck2.c (cxx_incomplete_type_diagnostic): Improve error
5601 message due to incomplete fields.
17f29637 5602
5d69ba1f
MM
56032002-07-01 Mark Mitchell <mark@codesourcery.com>
5604
5605 PR c++/7112
5606 * mangle.c (write_expression): Add mangling for sizeof when
5607 applied to a type.
5608 * operators.def: Remove stale comment.
5609
d689a8f1
NS
56102002-06-30 Nathan Sidwell <nathan@codesourcery.com>
5611
5612 * cp-tree.h (CPTI_TINFO_DECL_TYPE): Replace with ...
5613 (CPTI_TYPE_INFO_PTR_TYPE): ... this.
5614 (tinfo_decl_type): Replace with ...
5615 (type_info_ptr_type): ... this.
5616 (import_export_tinfo): Declare.
5617 (tinfo_decl_p): Rename to ...
5618 (unemitted_tinfo_decl_p): ... this.
5619 * decl2.c (import_export_decl): Break out tinfo handling into ...
5620 (import_export_tinfo): ... here. New function.
5621 (finish_file): Adjust.
5622 * rtti.c (TINFO_REAL_NAME): New macro.
5623 (init_rtti_processing): Create the tinfo types.
5624 (get_tinfo_decl_dynamic): Use type_info_ptr_type, get_tinfo_ptr.
5625 (get_tinfo_decl): Adjust.
5626 (get_tinfo_ptr): New function.
5627 (get_type_id): Use it.
5628 (tinfo_base_init): Create vtable decl here, if it doesn't exist.
5629 (ptr_initializer): Use get_tinfo_ptr.
5630 (ptm_initializer): Likewise.
5631 (synthesize_tinfo_var): Break into ...
5632 (get_pseudo_ti_init): ... this. Just create the initializer.
5633 (get_pseudo_ti_desc): .. and this.
5634 (create_real_tinfo_var): Remove.
5635 (create_pseudo_type_info): Don't create the vtable decl here.
5636 (get_vmi_pseudo_type_info): Remove.
5637 (create_tinfo_types): Adjust.
5638 (tinfo_decl_p): Rename to ...
5639 (unemitted_tinfo_decl_p): ... here. Adjust.
5640 (emit_tinfo_decl): Adjust. Create the initializer.
5641
5ce49b4b
MM
56422002-06-27 Mark Mitchell <mark@codesourcery.com>
5643
5644 PR c++/6695
5645 * pt.c (tsubst_friend_class): Substitute into the context of the
5646 friend before using it.
5647
88e5899c
MM
56482002-06-26 Mark Mitchell <mark@codesourcery.com>
5649
5650 * cp-tree.h (xref_tag): Change prototype.
5651 (handle_class_head): Likewise.
5652 (build_x_component_ref): Likewise.
5653 * decl.c (cxx_init_decl_processing): Adjust call to xref_tag.
5654 (xref_tag): Take attributes as a separate parameter.
5655 (xref_tag_from_type): Adjust call to xref_tag.
5656 * decl2.c (build_expr_from_tree): Adjust call to
5657 build_x_component_ref.
5658 (handle_class_head): Take attributes as a separate parameter.
5659 * parse.y (parse_xref_tag): New function.
5660 (parse_handle_class_head): Likewise.
5661 (primary): Use parse_xref_tag.
5662 (class_head_decl): Use parse_handle_class_head.
5663 (class_head_defn): Likewise.
5664 * rtti.c (init_rtti_processing): Adjust call to xref_tag.
5665 (build_dynamic_cast_1): Likewise.
5666 (create_pseudo_type_info): Likewise.
5667 (emit_support_tinfos): Likewise.
5668 * typeck.c (build_object_ref): Adjust call to
5669 build_x_component_ref.
5670 (build_x_component_ref): Remove protect parameter.
b6ce26ac 5671
da15dae6
MM
56722002-06-25 Mark Mitchell <mark@codesourcery.com>
5673
5674 * call.c (build_op_delete_call): Use BASELINK_FUNCTIONS.
5675 * class.c (handle_using_decl): Likewise.
5676 (instantiate_type): Likewise.
5677 * cp-tree.h (BASELINK_FUNCTIONS): New macro.
5678 (xref_basetypes): Change prototype.
5679 (begin_mem_initializers): New function.
5680 (get_overloaded_fn): Likewise.
5681 * decl.c (xref_basetypes): Simplify.
5682 * error.c (dump_expr): Use BASELINK_FUNCTIONS.
5683 * init.c (build_offset_ref): Likewise.
5684 * parse.y (base_init): Use begin_mem_initializers().
5685 (structsp): Adjust call to xref_basetypes.
5686 * pt.c (determine_specialization): Use BASELINK_FUNCTIONS.
5687 (instantiate_class_template): Adjust call to xref_basetypes.
5688 * semantics.c (begin_mem_initializers): New function.
5689 * tree.c (is_overloaded_fn): Use BASELINK_FUNCTIONS.
5690 (really_overlaoded_fn): Likewise.
5691 (get_overloaded_fn): New function.'
5692 (get_first_fn): USe BASELINK_FUNCTIONS.
b6ce26ac 5693
5f261ba9
MM
56942002-06-24 Mark Mitchell <mark@codesourcery.com>
5695
5696 * cp-tree.h (SCALAR_TYPE_P): New macro.
5697 (check_for_out_of_scope_variable): New function.
5698 (at_class_scope_p): Likewise.
5699 (finish_fname): Likewise.
5700 * class.c (finish_struct): Use at_function_scope_p.
5701 * decl.c (check_for_out_of_scope_variable): New function, split
5702 out from do_identifier.
5703 (finish_enum): Use at_function_scope_p.
5704 * lex.c (do_identifier): Use check_for_out_of_scope_variable.
5705 * parse.y (VAR_FUNC_NAME): Give it <ttype>. Use finish_fname.
5706 (primary): Use at_function_scope_p.
5707 * search.c (at_class_scope_p): New function.
5708 * semantics.c (finish_fname): Likewise.
5709 (check_multiple_declarators): Use at_function_scope_p.
b6ce26ac 5710
80b1331c
MM
57112002-06-23 Mark Mitchell <mark@codesourcery.com>
5712
5713 * parse.y (parse_scoped_id): New function.
5714 (primary): Use it.
5715 * cp-tree.h (do_scoped_id): Adjust declaration.
5716 * lex.c (do_scoped_id): Remove call to yylex.
5717 * decl2.c (build_expr_from_tree): Adjust use of do_scoped_id.
5718 * typeck2.c (add_exception_specifier): Use tree_cons, rather than
5719 expanding it inline.
b6ce26ac 5720
08c7ae5a
MT
57212002-06-23 Matt Thomas <matt@3am-software.com>
5722
5723 * decl.c (finish_function): Change "#ifdef VMS_TARGET" to
5724 "#if VMS_TARGET".
5725
eb6b51b9
KG
57262002-06-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5727
5728 * mangle.c (integer_type_codes): Const-ify.
5729
aa8dea09
RH
57302002-06-20 Richard Henderson <rth@redhat.com>
5731
5732 PR c++/6747
f989ed67
ZW
5733 * typeck.c (mark_addressable): Don't test TREE_ADDRESSABLE early.
5734 Call put_var_into_stack.
aa8dea09 5735
62c71f4b
KG
57362002-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
5737
5738 * spew.c (remove_last_token): Use ARRAY_SIZE in lieu of explicit
5739 array size calculation.
5740
aa16c0fa
KL
57412002-06-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5742
5743 PR c++/6892
5744 * pt.c (tsubst_expr): Handle FILE_STMT.
5745
342cea95
KL
57462002-06-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
5747
5748 PR c++/6723
5749 * pt.c (lookup_template_class): Don't build complete argument of
5750 BOUND_TEMPLATE_TEMPLATE_PARM if appeared as a default template
5751 argument.
5752
84d901be
AD
57532002-06-19 Akim Demaille <akim@epita.fr>
5754
5755 * parse.y (TYPENAME): Rename as tTYPENAME to avoid the clash with
5756 decl.h's TYPENAME.
5757 * spew.c, lex.c: Adjust.
5758 * parse.y (explicit_instantiation): Add empty action to override
5759 the default $$ = $1 where it introduces a type clash.
5760
83b14b88
JM
57612002-06-14 Jason Merrill <jason@redhat.com>
5762
18ba380b
JM
5763 * semantics.c (begin_for_stmt): Push the 'for' scope before
5764 adding the FOR_STMT.
5765
83b14b88
JM
5766 C++ ABI changes.
5767 * class.c (build_base_field): Set DECL_PACKED.
5768 (layout_class_type): Don't use tail padding of PODs.
5769 * mangle.c (write_unqualified_name): Fix template conversion op
5770 mangling.
5771
fd852454
RH
57722002-06-16 Richard Henderson <rth@redhat.com>
5773
5774 PR opt/6793
5775 * tree.c (cp_cannot_inline_tree_fn): Don't short-circuit test
5776 after template instantiation.
5777
750491fc
RH
57782002-06-16 Richard Henderson <rth@redhat.com>
5779
5780 * cp-tree.h, decl2.c (flag_ms_extensions): Move to c-common.
5781
f7d3c5f0
GDR
57822002-06-15 Gabriel Dos Reis <gdr@codesourcery.com>
5783
5784 * cp-tree.h (compiler_error): Remove declaration.
5785 * lex.c (compiler_error): Remove definition.
5786
893a047c
SE
57872002-06-14 Steve Ellcey <sje@cup.hp.com>
5788
5789 * g++spec.c (LIBUNWIND): New.
5790 (lang_specific_driver): Add it if USE_UNWIND_EXCEPTIONS is set.
5791
a6f5e048
RH
57922002-06-13 Jessica Han <jessica@cup.hp.com>
5793
5794 * class.c (build_vtable): Use TARGET_VTABLE_ENTRY_ALIGN.
5795 (build_vtbl_initializer): Honor TARGET_VTABLE_DATA_ENTRY_DISTANCE.
5796 (build_vbase_offset_vtbl_entries): Likewise.
5797 * rtti.c (build_headof): Likewise.
5798 (get_tinfo_decl_dynamic): Likewise.
5799 (create_pseudo_type_info): Likewise.
5800
e4dadd2a
SS
58012002-06-12 Stan Shebs <shebs@apple.com>
5802
5803 * mpw-config.in: Remove file, no longer used.
5804 * mpw-make.sed: Ditto.
5805
09e77dee
ZW
58062002-06-07 Zack Weinberg <zack@codesourcery.com>
5807
5808 * decl2.c: Update call to cpp_handle_option.
5809
4bafaa6f
L
58102002-06-07 H.J. Lu (hjl@gnu.org)
5811
5812 * decl2.c (flag_use_cxa_atexit): Set to DEFAULT_USE_CXA_ATEXIT.
5813
3cb8660c
GDR
58142002-06-06 Gabriel Dos Reis <gdr@codesourcery.com>
5815
5816 * error.c (cp_error_at): Fix typo.
5817
47b69537
GDR
58182002-06-04 Gabriel Dos Reis <gdr@codesourcery.com>
5819
5820 * error.c (cp_diagnostic_starter): Adjust call.
5821 (maybe_print_instantiation_context): Change prototype to take a
5822 'diagnostic_info *'.
5823 (print_instantiation_full_context): Likewise.
5824 (print_instantiation_partial_context): Likewise.
5825 (cp_diagnostic_starter): Likewise.
5826 (cp_diagnostic_finalizer): Likewise.
5827 (cp_print_error_function): Likewise.
5828 (cp_printer): Take a secondary parameter as a 'text_info *'.
5829 Remove output_state savings. Adjust calls.
5830
e2500fed
GK
58312002-06-03 Geoffrey Keating <geoffk@redhat.com>
5832
5833 * pt.c (inline_parm_levels): Mark for GC.
5834
5835 * mangle.c (start_mangling): Allocate G.substitutions here...
5836 (init_mangle): ... rather than here.
5837 (finish_mangling): Clear the varray pointer when done with it.
84d901be
AD
5838 * spew.c (yylexstring): Don't use VARRAY_FREE.
5839 * search.c (bfs_walk): Don't use VARRAY_FREE.
e2500fed
GK
5840 * decl2.c (pending_statics): Use gengtype to mark.
5841 (deferred_fns): Likewise.
5842 (ssdf_decls): Likewise.
5843 (init_decl2): Delete.
5844 * decl.c (pop_from_top_level): Don't use VARRAY_FREE.
5845 (cxx_init_decl_processing): Don't call init_decl2.
5846 (cxx_pop_function_context): Don't use VARRAY_FREE.
5847 * cp-tree.h (struct saved_scope): No need for special marking
5848 of varrays.
5849 (struct language_function): Likewise.
5850 (local_classes): Use gengtype to mark.
5851 (init_decl2): Delete prototype.
5852 * class.c (init_class_processing): Don't use
5853 ggc_add_tree_varray_root.
5854 (build_vtbl_initializer): Don't use VARRAY_FREE.
5855
5856 * decl.c (typename_compare): Don't use same_type_p.
5857
5858 * decl.c: Include hashtab.h instead of hash.h.
5859 (typename_hash): Update to use htab_h.
5860 (typename_compare): Likewise.
5861 (typename_htab): Use gengtype to mark.
5862 (build_typename_type): Update to use htab_h.
5863 * Make-lang.in (cp/decl.o): Use HASHTAB_H instead of hash.h.
5864
5865 * Make-lang.in (gt-cp-tree.h): New rule.
5866 (cp/tree.o): Depend on gt-cp-tree.h.
5867 * config-lang.in (gtfiles): Add cp/tree.c.
5868 * tree.c: Include gt-cp-tree.h.
5869 (list_hash_table): Use gengtype to mark.
5870 (init_tree): Use gengtype to mark trees.
5871
5872 * Make-lang.in (cp/decl.o): Add debug.h dependency.
5873 * call.c (struct z_candidate): Use gengtype.
5874 (USER_CONV_CAND): Use WRAPPER_ZC.
5875 (convert_class_to_reference): Use build_zc_wrapper.
5876 (build_type_conversion_1): Likewise.
5877 (build_over_call): Use WRAPPER_ZC.
5878 (add_warning): Use build_zc_wrapper.
5879 * cp-lang.c (LANG_HOOKS_MARK_TREE): Delete.
5880 * cp-tree.h (struct lang_identifier): Use gengtype.
5881 (struct template_parm_index_s): Likewise.
5882 (struct ptrmem_cst): Likewise.
5883 (struct tree_binding): Likewise.
5884 (struct tree_overload): Likewise.
5885 (struct tree_srcloc): Likewise.
5886 (struct tree_wrapper): Likewise. Also modify to have a pointer
5887 to struct z_candidate rather than void.
5888 (enum cp_tree_node_structure_enum): New.
5889 (union lang_tree_node): New.
5890 (cxx_mark_tree): Delete prototype.
5891 (cp_tree_node_structure): New prototype.
5892 (build_ptr_wrapper): Delete prototype.
5893 (build_int_wrapper): Delete prototype.
5894 (build_zc_wrapper): New prototype.
5895 * decl.c: Include debug.h
5896 (cxx_mark_tree): Delete.
5897 (cp_tree_node_structure): New.
5898 * tree.c (build_ptr_wrapper): Delete.
5899 (build_int_wrapper): Delete.
5900 (build_zc_wrapper): New.
5901
5902 * cp-tree.h [! ENABLE_TREE_CHECKING] (LANG_TYPE_PTRMEM_CHECK):
5903 Correct typo. Patch from k_fukui@highway.ne.jp.
5904
5905 * semantics.c (current_stmt_tree): Update for change to
5906 struct language_function.
5907 (finish_mem_initializers): Likewise.
5908 * decl.c (cxx_init_decl_processing): Don't set mark_lang_status.
5909 * cp-tree.h (struct language_function): Rename from
5910 cp_language_function. Change all uses.
5911 (cp_function_chain): Don't need to cast.
5912
5913 * class.c (duplicate_tag_error): Reset discriminator.
5914 (check_bases_and_members): Update for data structure changes.
5915 * cp-tree.h (struct lang_id2): Use gengtype.
5916 (flagged_type_tree): Likewise.
5917 (SET_LANG_ID): Use GGC on struct lang_id2.
5918 (struct cp_language_function): Use gengtype. Remove field
5919 'x_vcalls_possible_p'.
5920 (current_vcalls_possible_p): Delete.
5921 (struct lang_type_header): New.
5922 (struct lang_type_class): Rename from struct lang_type. Include
5923 struct lang_type_header.
5924 (struct lang_type_ptrmem): New.
5925 (struct lang_type): New.
5926 (LANG_TYPE_CLASS_CHECK): New. Use it in all the appropriate macros.
5927 (LANG_TYPE_PTRMEM_CHECK): New. Use it in all the appropriate macros.
5928 (TYPE_SET_PTRMEMFUNC_TYPE): Set discriminator, update for changes.
5929 (struct lang_decl_flags): Use gengtype. Add discriminators.
5930 (struct lang_decl): Use gengtype. Add and use discriminators.
5931 Update the macros that reference moved fields.
5932 (LANG_DECL_U2_CHECK): New function. Use it when appropriate.
5933 (SET_DECL_THUNK_P): Set discriminator too.
5934 (clear_inline_text_obstack): Delete prototype.
5935 (finish_inline_definitions): Delete prototype.
5936 (mark_pending_inlines): Delete prototype.
5937 (lang_check_failed): New prototype.
5938 * decl.c (struct named_label_use_list): Use gengtype.
5939 (struct named_label_list): Likewise.
5940 (mark_binding_level): Delete.
5941 (mark_named_label_lists): Delete.
5942 (push_local_name): Set discriminator on DECL_LANG_SPECIFIC.
5943 (cxx_init_decl_processing): Use generated marker routine.
5944 (begin_destructor_body): Delete dead set to
5945 current_vcalls_possible_p.
5946 (mark_lang_function): Delete.
5947 (mark_cp_function_context): Delete.
5948 (lang_mark_tree): Use generated marker routines.
5949 * decl2.c (start_objects): Set discriminator when setting
5950 GLOBAL_INIT_PRIORITY.
5951 * lex.c (retrofit_lang_decl): Set discriminators.
5952 (copy_lang_type): Update for changes to lang_type structure.
5953 (cp_make_lang_type): Set discriminator.
5954 * parse.y: Use gengtype on YYLVAL. Don't use dots in identifiers.
5955 * search.c: Include ggc.h.
5956 * semantics.c (anon_aggr_type_p): Use the macro, don't hand-code it.
5957 (finish_inline_definitions): Delete.
5958 * spew.c (struct token): Use gengtype.
5959 (struct token_chunk): New.
5960 (struct unparsed_text): Use gengtype. Store tokens in chunks.
5961 (struct feed): Use gengtype.
5962 (feed_obstack): Delete.
5963 (feed): Mark as GC root.
5964 (pending_inlines): Mark as GC root.
5965 (pending_inlines_tail): Likewise.
5966 (processing_these_inlines): Likewise.
5967 (token_obstack): Make static.
5968 (first_token): Likewise.
d30d6e7a 5969 (init_spew): Don't initialize deleted things; use gengtype for roots.
e2500fed
GK
5970 (clear_inline_text_obstack): Delete.
5971 (feed_input): Use GC for struct feed. Update for changes to
5972 struct unparsed_text.
5973 (mark_pending_inlines): Delete.
5974 (next_token): Rename from add_token. Change all callers. Update
5975 for changes to struct unparsed_text.
5976 (space_for_token): New.
5977 (remove_last_token): New.
5978 (alloc_unparsed_text): New.
5979 (snarf_block): Take an unparsed_text. Update for changes to struct
5980 unparsed_text.
5981 (snarf_method): Update for changes to struct unparsed_text.
5982 (snarf_defarg): Update for changes to struct unparsed_text.
5983 * tree.c (lang_check_failed): New.
5984
5985 * Make-lang.in (gt-cp-call.h gt-cp-decl2.h gt-cp-parse.h
5986 gt-cp-pt.h gt-cp-repo.h gt-cp-spew.h): New rules.
5987 (cp/spew.o): Add dependency on gt-<filename>.h.
5988 (cp/decl2.o): Add dependency on gt-<filename>.h.
5989 (cp/call.o): Add dependency on gt-<filename>.h.
5990 (cp/pt.o): Add dependency on gt-<filename>.h.
5991 (cp/repo.o): Add dependency on gt-<filename>.h.
5992 (cp/parse.o): Add dependency on gt-<filename>.h.
5993 * call.c: Use gengtype for roots.
5994 * config-lang.in (gtfiles): Add cp-tree.h decl.h lex.h call.c
5995 decl2.c parse.y pt.c repo.c spew.c.
5996 * cp-tree.h: Use gengtype for roots.
5997 (struct saved_scope): Use GGC, gengtype.
5998 (cp_parse_init): Delete prototype.
5999 (init_pt): Delete prototype.
6000 * decl.c: Use gengtype for roots.
6001 (mark_saved_scope): Delete.
6002 (cxx_init_decl_processing): Don't call deleted initilisation
6003 routines.
6004 (signed_size_zero_node): Delete, unused.
6005 * decl.h: Use gengtype for roots.
6006 * decl2.c: Use gengtype for roots.
6007 * lex.h: Use gengtype for roots.
6008 * parse.y: Use gengtype for roots.
6009 (cp_parse_init): Delete.
6010 * pt.c: Use gengtype for roots.
6011 (init_pt): Delete.
6012 * repo.c: Use gengtype for roots.
6013 * spew.c: Use gengtype for roots.
6014
6015 * Make-lang.in: Allow for filename changes. Add gtype-cp.h.
6016 (cp/decl.o): Add dependency on gtype-cp.h.
6017 * decl.c: Remove use of add_deletable_root, use GTY marker instead.
6018 Include gtype-cp.h. Allow for filename changes.
6019
6020 * Make-lang.in (cp/gt-decl.h): Generate using gengtype.
6021 (cp/decl.o): Add cp/gt-decl.h dependency.
6022 * config-lang.in (gtfiles): New.
6023 * tree.h: Rename struct binding_level to struct cp_binding_level.
6024 * decl.c: Rename struct binding_level to struct cp_binding_level.
6025 Include cp/gt-decl.h.
6026 (struct cp_binding_level): Use gengtype.
6027 (make_binding_level): Use GGC on struct cp_binding_level.
6028 (mark_binding_level): Use gt_ggc_m_cp_binding_level.
6029 (cxx_init_decl_processing): Mark free_binding_level as
6030 deletable.
6031
6032 * decl.c (mark_cp_function_context): Update calling sequence.
6033
6034 * decl.c (start_function): Don't free 'struct
6035 cp_language_function'.
6036 (pop_cp_function_context): Likewise.
6037 (save_function_data): Allocate it using GC.
6038 * semantics.c (genrtl_start_function): Don't free 'struct
6039 cp_language_function'.
6040
8b968bd1
MW
60412002-05-31 Matthew Woodcraft <mattheww@chiark.greenend.org.uk>
6042
6043 * lang-specs.h: Use cpp_debug_options.
6044
11ad4784
ZW
60452002-05-28 Zack Weinberg <zack@codesourcery.com>
6046
6047 * mangle.c, tree.c: Include real.h.
6048 * Make-lang.in: Update dependency lists.
6049
81a75f0f
NB
60502002-05-25 Neil Booth <neil@daikokuya.demon.co.uk>
6051
6052 * lex.c: Don't include c-lex.h.
6053 * parse.y, spew.c: Don't include c-lex.h; include c-pragma.h.
6054
a97d1398
NB
60552002-05-23 Neil Booth <neil@daikokuya.demon.co.uk>
6056
6057 * spew.c (yyungetc, snarf_block): Remove indent_level handling.
6058
6f001fdf
RH
60592002-05-22 Richard Henderson <rth@redhat.com>
6060
6061 * decl.c (obscure_complex_init): Check for VAR_DECL
6062 before using DECL_THREAD_LOCAL.
6063
7a1f3f5f
RH
60642002-05-22 Richard Henderson <rth@redhat.com>
6065
6066 * decl.c (check_tag_decl): Handle RID_THREAD.
6067 (obscure_complex_init): Reject run-time init of tls.
6068 (grokvardecl, grokdeclarator): Handle RID_THREAD.
6069 * lex.c (reswords): Add __thread.
6070 (rid_to_yy): Map RID_THREAD to SCSPEC.
6071
e5f3b786
NB
60722002-05-22 Neil Booth <neil@daikokuya.demon.co.uk>
6073
6074 * cp-lang.c (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options.
6075 * cp-tree.h (cxx_post_options): Kill.
6076 * cp-lex.c (cxx_post_options): Kill.
6077
3d78f2e9
RH
60782002-05-21 Richard Henderson <rth@redhat.com>
6079
6080 * lex.c (rid_to_yy): Add RID_THREAD.
6081
c8a3d889
AO
60822002-05-21 Alexandre Oliva <aoliva@redhat.com>
6083
6084 * init.c (build_vec_init): Test for trivial copy-assignment when
6085 copy-assigning arrays.
6086
500abaa8
AJ
60872002-05-20 Andreas Jaeger <aj@suse.de>
6088
6089 * init.c (build_default_init): Remove unused variable.
6090
ecc42c14
AO
60912002-05-20 Alexandre Oliva <aoliva@redhat.com>
6092
6093 * call.c (any_strictly_viable): New.
6094 (build_new_op): Use it for COMPOUND_EXPR and ADDR_EXPRs.
6095
4e664ef1
KL
60962002-05-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6097
6098 * error.c (dump_type) [TYPEOF_TYPE]: Fix parenthesis printing.
6099
07782718
KL
61002002-05-19 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6101
6102 PR c++/186, DR 259
6103 * pt.c (do_decl_instantiation): Don't complain explicit
6104 instantiation after explicit specialization.
6105 (do_type_instantiation): Likewise.
6106
23b4deba
AO
61072002-05-19 Alexandre Oliva <aoliva@redhat.com>
6108
6109 * cp-tree.h (complete_type_or_diagnostic): Changed prototype,
6110 renamed from...
6111 (complete_type_or_else): ... this. Redefined as macro.
6112 (cxx_incomplete_type_diagnostic): Declare.
6113 (cxx_incomplete_type_error): Define as macro.
6114 * init.c (build_delete): Warn about incomplete types other than
6115 void, and use the built-in operator delete for them.
6116 * typeck.c (complete_type_or_diagnostic): Renamed from
6117 complete_type_or_else. Added warn_only argument, passed to...
6118 * typeck2.c (cxx_incomplete_type_diagnostic): ... this. Print
6119 warnings or errors depending on new warn_only argument. Renamed
6120 from...
6121 (cxx_incomplete_type_error): ... this. New implementation in
6122 terms of cxx_incomplete_type_diagnostic.
6123
b41d214e
JM
61242002-05-18 Jason Merrill <jason@redhat.com>
6125
98c07d7b 6126 PR c++/6611
b41d214e
JM
6127 * decl2.c (import_export_decl): If we clear
6128 DECL_NOT_REALLY_EXTERN, make sure DECL_EXTERNAL is set.
6129
e2005c8d
KL
61302002-05-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
6131
6132 PR c++/6620
6133 * pt.c (verify_class_unification): Don't check if PARM is template
6134 parameter dependent. Simplify.
6135 (unify) [TEMPLATE_PARM_INDEX]: Handle when ARG is a template
6136 parameter dependent expression.
6137
ff48be5c
JM
61382002-05-14 Jason Merrill <jason@redhat.com>
6139
6140 * rtti.c (get_tinfo_decl): Don't call comdat_linkage.
6141 Do set DECL_COMDAT.
6142 (synthesize_tinfo_var): Take the public decl.
6143 (create_real_tinfo_var): Likewise. Check DECL_COMDAT.
6144 (emit_tinfo_decl): Adjust. Call import_export_decl.
6145 * decl2.c (import_export_decl): Simplify tinfo decl handling.
6146
94e6e4c4
AO
61472002-05-14 Alexandre Oliva <aoliva@redhat.com>
6148
6149 * cp-tree.h (struct lang_type): Added non_zero_init.
0fe1cd70 6150 (CLASSTYPE_NON_ZERO_INIT_P): New macro.
94e6e4c4
AO
6151 (zero_init_p, force_store_init_value, build_forced_zero_init): Declare.
6152 * class.c (check_field_decls): Test non_zero_init.
6153 * cvt.c (convert_to_pointer_force): Use cp_convert_to_pointer for
6154 zero-to-NULL conversions.
6155 * decl.c (obscure_complex_init): Don't reset DECL_INITIAL of a
6156 type that needs zero-initialization without zeros.
6157 (check_initializer_decl): Compute zero-initializer for types
6158 that require a non-trivial one.
6159 * init.c (build_forced_zero_init): New function.
6160 (build_default_init): Use it.
6161 * tree.c (zero_init_p): New function.
6162 * typeck2.c (force_store_init_value): New function.
6163 (process_init_constructor): Create non-trivial zero-initializers
6164 for array members and class fields.
6165
e5f5feea
NB
61662002-05-14 Neil Booth <neil@daikokuya.demon.co.uk>
6167
6168 * lang-specs.h: Remove redundant -lang-c++.
6169
f63ab951
JM
61702002-05-13 Jason Merrill <jason@redhat.com>
6171
6172 * class.c (build_vtbl_ref_1): Use fixed_type_or_null.
6173 (fixed_type_or_null): See through reference vars.
6174 (build_base_path): Vtable contents are constant.
6175 * typeck.c (get_member_function_from_ptrfunc): Likewise.
6176
0d08ea48
JM
61772002-05-12 Jason Merrill <jason@redhat.com>
6178
6179 * cp-lang.c (ok_to_generate_alias_set_for_type): Backend-created
6180 structs are safe.
6181
3df89291
NB
61822002-05-09 Neil Booth <neil@daikokuya.demon.co.uk>
6183
6184 * cp-tree.h (flag_ansi): Remove.
6185 * decl2.c (flag_ansi): Remove.
6186 (cxx_decode_option): Set flag_iso and flag_undef.
6187
c87978aa
JM
61882002-05-09 Jason Merrill <jason@redhat.com>
6189
6190 * typeck.c (get_member_function_from_ptrfunc): Reorganize.
6191 Use subtraction rather than a bitmask to get the index.
6192 * cvt.c (cp_convert_to_pointer): Bail on an error_mark_node.
6193
6194 * pt.c (tsubst_expr) [ASM_STMT]: Copy ASM_INPUT_P.
6195
a5a49440
NB
61962002-05-07 Neil Booth <neil@daikokuya.demon.co.uk>
6197
6198 * Make-lang.in (decl2.o): Update.
6199 * cp-tree.h (warn_multichar): Remove.
6200 * decl2.c: Include c-common.h.
6201 (warn_multichar): Remove.
6202
609688f3
JM
62032002-05-03 Jason Merrill <jason@redhat.com>
6204
0abc082a
JM
6205 * tree.c (build_cplus_array_type): Only const and volatile get
6206 special handling.
6207
609688f3
JM
6208 * decl.c (BOOL_TYPE_SIZE): Move default to defaults.h.
6209
8b16faa2
MM
62102002-04-30 Mark Mitchell <mark@codesourcery.com>
6211
394ab947 6212 ABI change, returning simple classes from functions.
8b16faa2
MM
6213 * class.c (finish_struct_bits): Only mark TREE_ADDRESSABLE if
6214 TYPE_HAS_TRIVIAL_INIT_REF is false or
6215 TYPE_HAS_NONTRIVIAL_DESTRUCTOR is true.
6216
ac905924
JM
62172002-04-30 Jason Merrill <jason@redhat.com>
6218
2cb008af 6219 PR debug/6436
ac905924
JM
6220 * decl.c (grokdeclarator): Don't override TYPE_NAME of an
6221 anonymous class with a typedef if there are attributes.
6222
e6e81f1c 62232002-04-29 Paul Eggert <eggert@twinsun.com>
b819d9e0 6224
e6e81f1c 6225 * parse.y (nomods_initdcl0): Replace $<ttype>3 with $<ttype>$.
b819d9e0 6226
3a73bffb
JJ
62272002-04-29 Jakub Jelinek <jakub@redhat.com>
6228
6229 PR c++/6477
6230 * decl.c (follow_tag_typedef): Check if TYPE_NAME (original) is
6231 non-NULL first.
6232
33dd07ee
MM
62332002-04-29 Mark Mitchell <mark@codesourcery.com>
6234
6235 PR c++/6492
6236 * pt.c (tsubst_friend_class): If the friend has an explicit scope,
6237 enter that scope before name lookup.
6238
6239 PR c++/6486
6240 * method.c (do_build_copy_constructor): Avoid building
6241 cv-qualified reference types.
500abaa8 6242
4bd7c270
NS
62432002-04-29 Nathan Sidwell <nathan@codesourcery.com>
6244
6245 PR c++/5719
500abaa8 6246 * decl.c (grok_op_properties): Assignment ops don't have to return
4bd7c270
NS
6247 by value. operator% should.
6248
45806a3f
FS
62492002-04-28 Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
6250
6251 PR c/6343
6252 * decl.c (duplicate_decls): Call merge_weak.
6253
94a50397
RH
62542002-04-26 Richard Henderson <rth@redhat.com>
6255
6256 * parse.y (malloced_yyss, malloced_yyvs): New.
6257 (yyoverflow): Re-add. Set them.
6258 (free_parser_stacks): New.
6259
7d793e9b
MM
62602002-04-26 Mark Mitchell <mark@codesourcery.com>
6261
6262 PR c++/6497
6263 * method.c (do_build_assign_ref): Pass a derivation to
6264 build_method_call when calling base class assignment operators.
6265
bde3c0c0
RH
62662002-04-26 Richard Henderson <rth@redhat.com>
6267
6268 * parse.y (yyoverflow): Revert.
6269
b84a3874
RH
62702002-04-26 Richard Henderson <rth@redhat.com>
6271
6272 PR c/3581
6273 * parse.y (string): Remove. Update all uses to use STRING
6274 instead, and not call combine_strings.
6275 * rtti.c (tinfo_name): Use fix_string_type.
6276 * semantics.c (finish_asm_stmt): Don't call combine_strings.
6277 * spew.c (yylexstring): New.
6278 (read_token): Use it.
6279
6052bef0
RH
62802002-04-25 Richard Henderson <rth@redhat.com>
6281
6282 PR c/2161
6283 * parse.y (yyoverflow): New.
6284
8d1f0f67
JM
62852002-04-25 Jason Merrill <jason@redhat.com>
6286
6287 PR c++/5607
6288 * search.c (check_final_overrider): No longer static.
6289 * class.c (update_vtable_entry_for_fn): Call it.
6290 * cp-tree.h: Adjust.
6291
ff45c01e
NB
62922002-04-25 Neil Booth <neil@daikokuya.demon.co.uk>
6293
6294 * cp-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
6295 * cp-tree.h (cxx_set_yydebug): Die.
6296 * lex.c (YYDEBUG): Get from c-lex.h.
6297 (cxx_set_yydebug): Remove.
6298 * parse.y: Include c-lex.h.
6299 (YYDEBUG): Get from c-lex.h.
6300
a62d375f
MM
63012002-04-24 Mark Mitchell <mark@codesourcery.com>
6302
6303 PR c++/6438.
6304 * cvt.c (convert_to_void): Don't unconditionally make COND_EXPRs
6305 void.
6306
349ae713
NB
63072002-04-24 Neil Booth <neil@daikokuya.demon.co.uk>
6308
6309 * cp-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
6310 LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE):
6311 Redefine.
6312 * cp-tree.h (cp_attribute_table): Rename.
6313 * decl.c (lang_attribute_table): Remove declaration.
6314 (cxx_init_decl_processing): Don't set it.
6315 * tree.c (cp_attribute_table): Rename.
6316
b602511f
JM
63172002-04-24 Jason Merrill <jason@redhat.com>
6318
985723ce
JM
6319 PR c++/6331
6320 * method.c (do_build_copy_constructor): Use cp_build_qualified_type.
6321 * typeck.c (build_modify_expr): Allow arrays to differ in cv-quals.
a49cfba8
JM
6322 The pedwarn for array assignment is now unconditional.
6323 * tree.c (build_cplus_array_type_1): Still process simple array types
6324 normally in templates.
985723ce 6325
b602511f
JM
6326 PR c++/6395
6327 * decl.c (make_rtl_for_nonlocal_decl): Don't mess with #pragma i/i
6328 stuff for comdats.
6329
29cece2e
JJ
63302002-04-23 Jakub Jelinek <jakub@redhat.com>
6331
6332 * parse.y (check_class_key): Allow KEY to be union/enum/struct/class
6333 node with attributes.
6334
515387dc
DB
63352002-2-23 David O'Brien <obrien@FreeBSD.org>
6336
6337 * g++spec.c (MATH_LIBRARY_PROFILE, LIBSTDCXX_PROFILE): Add.
6338 Use MATH_LIBRARY_PROFILE and LIBSTDCXX_PROFILE if profile flag given.
6339
77adef84
MM
63402002-04-23 Mark Mitchell <mark@codesourcery.com>
6341
6342 PR c++/6256:
6343 * pt.c (tsubst_friend_class): Handle templates with explicit
6344 nested names.
6345
6346 PR c++/6331:
6347 * typeck.c (merge_types): Remember the cv-qualification of pointer
6348 types when merging them.
6349
b03e38e1
NB
63502002-04-20 Neil Booth <neil@daikokuya.demon.co.uk>
6351
6352 * cp-lang.c (LANG_HOOKS_FUNCTION_INIT,
6353 LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_MARK): Redefine.
6354 * cp-tree.h (cxx_push_function_context, cxx_pop_function_context,
6355 cxx_mark_function_context): New.
6356 * decl.c (push_cp_function_context, pop_cp_function_context,
6357 mark_cp_function_context): Rename for consistency.
6358 (cxx_init_decl_processing): Don't set old hooks.
6359
ab393bf1
NB
63602002-04-19 Neil Booth <neil@daikokuya.demon.co.uk>
6361
6362 * call.c (convert_type_from_ellipsis): Rename, update.
6363 * cp-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine.
6364 * cp-tree.h (convert_type_from_ellipsis): Rename.
6365 * decl.c (cxx_init_decl_processing): Don't set hook.
6366
7a228918
NB
63672002-04-18 Neil Booth <neil@daikokuya.demon.co.uk>
6368
6369 * call.c (build_new_method_call): Update.
6370 * cp-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine.
6371 * cp-tree.h (cxx_incomplete_type_error): New.
6372 * decl.c (grokdeclarator, grokparms): Update.
6373 * decl2.c (check_classfn): Update.
6374 * pt.c (tsubst): Update.
6375 * typeck.c (complete_type_or_else, expr_sizeof,
6376 decay_conversion): Update.
6377 * typeck2.c (incomplete_type_error): Rename.
6378 (add_exception_specifier): Update.
6379
8152c320
JM
63802002-04-18 Jason Merrill <jason@redhat.com>
6381
6382 PR c++/5658
6383 * search.c (setup_class_bindings): A class template qualifies as a
6384 type binding.
6385
32121b96
JJ
63862002-04-17 Jakub Jelinek <jakub@redhat.com>
6387
6388 PR c++/6316
6389 * decl2.c (finish_file): Clear DECL_EXTERNAL in a separate loop
6390 before expanding.
6391
b2123dc0
MM
63922002-04-16 Mark Mitchell <mark@codesourcery.com>
6393
6394 * init.c (begin_init_stmts): Remove commented out code.
6395 (finish_init_stmts): Set STMT_EXPR_NO_SCOPE.
6396 * semantics.c (begin_gobal_stmt_expr): Adjust call to
6397 expand_start_stmt_expr.
500abaa8 6398
0f268005
MM
63992002-04-15 Mark Mitchell <mark@codesourcery.com>
6400
6401 * decl.c (register_dtor_fn): Pass the address of dso_handle, not
6402 dso_handle itself, to __cxa_atexit.
6403
bd6bec6b
GDR
64042002-04-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
6405
6406 * error.c (cxx_print_error_function): Adjust call to macros.
6407
0f490a2b
JJ
64082002-04-14 Jakub Jelinek <jakub@redhat.com>
6409
6410 * class.c (layout_virtual_bases): Do all dsize computation on trees.
6411
85b7def6
JM
64122002-04-14 Jason Merrill <jason@redhat.com>
6413
6414 * typeck.c (get_member_function_from_ptrfunc): Don't do
6415 gratuitious division and multiplication on
6416 ptrmemfunc_vbit_in_delta targets.
6417
0481bc21
MM
64182002-04-12 Mark Mitchell <mark@codesourcery.com>
6419
6420 PR c++/5373.
6421 * semantics.c (finish_expr_stmt): Remember the type of the
6422 expression before any conversions are performed.
6423
9928a3d5
MM
64242002-04-12 Mark Mitchell <mark@codesourcery.com>
6425
6426 PR c++/5189.
6427 * call.c (add_template_candidate_real): Do not treat member
6428 templates as copy constructors.
6429
c740732f
MM
64302002-04-12 Mark Mitchell <mark@codesourcery.com>
6431
6432 * decl.c (duplicate_decls): Do not copy the RTL for a variable
6433 declaration if the old variable had an incomplete type and the new
6434 variable does not.
6435 (complete_vars): Do not call layout_decl for completed variables.
6436
4782bd5b
RS
64372002-04-12 Richard Sandiford <rsandifo@redhat.com>
6438
6439 * decl.c (duplicate_decls): Don't try to unify an implicit typedef
6440 with an explicit one.
6441 (follow_tag_typedef): New.
6442 (lookup_tag): Use it to extract the tag of an explicit typedef.
6443 (xref_tag): Likewise.
6444
2f4d058f
AH
64452002-04-11 Andrew Haley <aph@redhat.com>
6446
6447 * typeck.c (type_after_usual_arithmetic_conversions):
6448 If two types have the same variant, return immediately.
500abaa8 6449 When two floating-point operands are the same precision:
2f4d058f
AH
6450 convert to float if one of the operands is float;
6451 if neither operand is one of the standard types, return the type
6452 of the first operand.
500abaa8 6453
ba3307c0
NS
64542002-04-10 Nathan Sidwell <nathan@codesourcery.com>
6455
6456 PR c++/5507
6457 * decl.c (make_typename_type): Remove implicit typenameness.
6458
cd6af0c1
JM
64592002-04-09 Jason Merrill <jason@redhat.com>
6460
edf5cd1d
JM
6461 PR optimization/6189
6462 * semantics.c (genrtl_start_function): Don't free
6463 DECL_SAVED_FUNCTION_DATA for inline functions.
6464
cd6af0c1
JM
6465 * init.c (build_member_call): For now, don't convert to
6466 intermediate base if it would cause an error.
6467
224e6091
PC
64682002-04-08 Paolo Carlini <pcarlini@unitus.it>
6469
6470 * parse.y (namespace_qualifier, maybe_identifier,
6471 begin_explicit_instantiation, end_explicit_instantiation,
6472 apparent_template_type, .finish_template_type,
6473 do_id, maybe_init, defarg_again, component_decl_1):
6474 Add ending ';', in accordance with POSIX.
6475
0154eaa8
MM
64762002-04-06 Mark Mitchell <mark@codesourcery.com>
6477
6478 PR c++/5571
6479 * class.c (layout_class_type): Remember incomplete static
6480 variables.
6481 (finish_struct_1): Call complete_vars, not
6482 hack_incomplete_structures.
6483 * cp-tree.h (hack_incomplete_structures): Rename to ...
6484 (complete_vars): ... this.
6485 (struct saved_scope): Remove incomplete.
6486 (namespace_scope_incomplete): Remove.
6487 * decl.c (struct binding_level): Remove incomplete.
6488 (incomplete_vars): New variable.
6489 (mark_binding_level): Don't mark incomplete.
6490 (print_binding_level): Don't print it.
6491 (mark_saved_scope): Don't mark incomplete.
6492 (pushdecl): Use maybe_register_incopmlete_var.
6493 (cxx_init_decl_processing): Register incomplete_vars for GC.
6494 (start_decl_1): Clarify error message.
6495 (hack_incomplete_vars): Remove.
6496 (maybe_register_incomplete_var): New function.
6497 (complete_vars): Likewise.
6498
f62ea157
JM
64992002-04-06 Jason Merrill <jason@redhat.com>
6500
03da5286
JM
6501 PR c++/4934
6502 * error.c (dump_expr) [CONVERT_EXPR]: Make sure TREE_TYPE (t) is
6503 set before checking it.
6504
a29e1034
JM
6505 PR c++/525
6506 * init.c (build_member_call): Use build_scoped_ref.
6507 (resolve_offset_ref): Likewise.
6508 * call.c (build_scoped_method_call): Likewise.
500abaa8 6509 * tree.c (maybe_dummy_object): Kludge around current_class_type being
a29e1034
JM
6510 wrong.
6511 * typeck2.c (build_scoped_ref): Return the binfo via binfo_p parm.
6512 * cp-tree.h: Adjust.
500abaa8 6513
a29e1034
JM
6514 * init.c (push_base_cleanups): Just use build_scoped_method_call.
6515
f62ea157 6516 PR c++/6179
500abaa8 6517 * method.c (implicitly_declare_fn): Pass unqualified type to
f62ea157
JM
6518 synthesize_exception_spec.
6519
78ef5b89
NB
65202002-04-04 Neil Booth <neil@daikokuya.demon.co.uk>
6521
6522 * cp-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine.
6523 * cvt.c: Update comment.
6524 * init.c (expand_cleanup_for_base): Update.
6525 * semantics.c (finish_parenthesized_expr): Update.
6526 * typeck.c (cp_truthvalue_conversion): Update.
6527
dffa4176
JM
65282002-04-04 Jason Merrill <jason@redhat.com>
6529
659e5a7a
JM
6530 * semantics.c (finish_eh_cleanup): New fn.
6531 * cp-tree.h: Add prototype.
500abaa8 6532 * init.c (perform_member_init, expand_cleanup_for_base): Use
659e5a7a
JM
6533 finish_eh_cleanup.
6534 * cp-tree.def (SUBOBJECT, CTOR_STMT): Remove.
6535 * cp-tree.h: Remove references.
6536 * decl.c (begin_constructor_body, end_constructor_body): Likewise.
6537 * dump.c (cp_dump_tree): Likewise.
6538 * pt.c (tsubst_expr): Likewise.
6539 * semantics.c (genrtl_ctor_stmt, genrtl_subobject): Remove.
6540 (cp_expand_stmt): Remove handling of CTOR_STMT and SUBOBJECT.
6541 * tree.c (cp_statement_code_p): Likewise.
6542
6543 * init.c (build_new_1): Set CLEANUP_EH_ONLY on deleting cleanup.
6544
6545 PR c++/5636
6546 * semantics.c (nullify_returns_r): Just set CLEANUP_EH_ONLY on
6547 cleanup for nrv.
6548
dffa4176
JM
6549 PR c++/5104
6550 * typeck.c (comptypes) [FUNCTION_TYPE]: Don't compare exception
6551 specifiers.
6552 [METHOD_TYPE]: Use same code as FUNCTION_TYPE.
6553
ef4f94ac
RH
65542002-04-03 Richard Henderson <rth@redhat.com>
6555
6556 * cp-lang.c (cxx_warn_unused_global_decl): New.
6557 (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New.
6558
599bba86
NB
65592002-04-03 Neil Booth <neil@daikokuya.demon.co.uk>
6560
6561 * cp-lang.c (LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): Redefine.
6562 * tree.c (init_tree): Don't set hook.
6563
cba2004a
RS
65642002-04-03 Roger Sayle <roger@eyesopen.com>
6565
6566 PR c++/5998:
6567 * decl.c (duplicate_decls): Don't mess with assembler names when
6568 redeclaring builtin functions as static.
6569
dffd7eb6
NB
65702002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
6571
6572 * call.c (build_addr_func): Update.
6573 * class.c (resolve_address_of_overloaded_function): Update.
6574 * cp-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine.
6575 * cp-tree.h (cxx_mark_addressable): New.
6576 * decl.c (register_dtor_fn, cxx_maybe_build_cleanup): Update.
6577 * decl2.c (build_cleanup): Update.
6578 * except.c (build_throw): Update.
6579 * init.c (resolve_offset_ref): Update.
6580 * pt.c (convert_nontype_argument): Update.
6581 * semantics.c (finish_asm_stmt, simplify_affr_init_exprs_r): Update.
6582 * typeck.c (decay_conversion, build_array_ref, build_unary_op,
6583 unary_complex_lvalue): Update.
6584 (mark_addressable): Rename.
6585
04a9d080
RS
65862002-04-01 Roger Sayle <roger@eyesopen.com>
6587
6588 PR c++/5998:
6589 * decl.c (duplicate_decls): Overwrite the RTL when (and only
6590 when) overwriting a built-in function. Don't use COPY_DECL_RTL,
6591 but follow the SET_DECL_RTL idiom used elsewhere in the function.
6592
ceef8ce4
NB
65932002-04-01 Neil Booth <neil@daikokuya.demon.co.uk>
6594
6595 * cp-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE,
6596 LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New.
6597 * decl.c (grokdeclarator): Update.
6598 * mangle.c (write_integer_cst): Update.
6599 * typeck.c (build_binary_op): Update.
6600
48a7a235
NB
66012002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
6602
6603 * cp-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine.
6604 * lex.c (cxx_init): Don't set hook.
6605
7cb32822
NB
66062002-03-31 Neil Booth <neil@daikokuya.demon.co.uk>
6607
6608 * Make-lang.in (error.o): Update.
6609 * cp-lang.c (LANG_HOOKS_PRINT_ERROR_FUNCTION): Redefine.
6610 * cp-tree.h (struct diagnostic_context): Predeclare.
6611 (cxx_print_error_function): New.
6612 * error.c: Include langhooks-def.h.
6613 (lang_print_error_function): Rename. Update.
6614 (init_error): Don't set hook.
6615
b0c48229
NB
66162002-03-29 Neil Booth <neil@daikokuya.demon.co.uk>
6617
6618 * cp-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE):
6619 Redefine.
6620 * cvt.c (cp_convert_to_pointer, type_promotes_to): Use new hooks.
6621 * decl.c (finish_enum): Similarly.
6622 * error.c (dump_type): Similarly.
6623 * lex.c (cxx_init): Similarly.
6624 * mangle.c (write_builtin_type): Similarly.
6625 * typeck.c (comptypes): Similarly.
6626
d52e4867
RS
66272002-03-28 Roger Sayle <roger@eyesopen.com>
6628
6629 PR c++/5998:
6630 * decl.c (cxx_init_decl_processing): Re-enable built-in functions
6631 in the g++ front-end.
6632 (duplicate_decl): Allow redefinition of anticipated built-ins.
6633 Fix inlining problem by over-writing the old DECL_RTL.
6634 (lookup_namespace_name): Fail to find an identifier in the
6635 specified namespace if its still anticipated.
6636 (builtin_function_1): New function split out from builtin_function
6637 to create a builtin in the current namespace with given context.
6638 (builtin_function): Call builtin_function_1 to define the
6639 appropriate builtins in both the std and global namespaces.
6640 (select_decl): Don't test for anticipated decls here.
6641 (unqualified_namespace_lookup): Instead ignore them whilst
6642 searching through scopes and namespaces.
6643 * decl2.c (do_nonmember_using_decl): If a using declaration
6644 specifies an anticipated built-in function, mark it as no longer
6645 anticipated in that scope.
6646 (ambiguous_decl): Avoid resolving to an anticipated decl.
6647 * lex.c (do_scoped_id): Fail to find an identifier in the global
6648 namespace if its still anticipated.
6649
f1e639b1
NB
66502002-03-29 Neil Booth <neil@daikokuya.demon.co.uk>
6651
6652 * cp-lang.c (LANG_HOOKS_MAKE_TYPE): Redefine.
6653 * cp-tree.h (cp_make_lang_type): Rename.
6654 * lex.c (cp_make_lang_type): Rename.
6655 (make_aggr_type): Update.
6656 * tree.c (init_tree): Don't set make_lang_type_fn.
6657
c7f4981a
JJ
66582002-03-29 Jakub Jelinek <jakub@redhat.com>
6659
6660 PR c++/6073
6661 * class.c (finish_struct_1): Update static field's DECL_MODE even
6662 if its type is a variant of t.
6663
7ffb4fd2
NB
66642002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
6665
6666 * cp-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine.
6667 * cp-tree.h (cxx_insert_default_attributes): New.
6668 * decl.c (insert_default_attributes): Rename.
6669
cd4e8331
MM
66702002-03-27 Mark Mitchell <mark@codesourcery.com>
6671
6672 PR c++/4884
6673 * call.c (build_op_delete_call): Allow for the fact the placement
6674 may be a COMPOUND_EXPR.
500abaa8 6675
c9d892a8
NB
66762002-03-27 Neil Booth <neil@daikokuya.demon.co.uk>
6677
6678 * cp-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine.
6679 * cp-tree.h (init_cplus_expand): Remove.
6680 (cxx_expand_expr): New.
6681 * expr.c (cplus_expand_expr): Rename cxx_expand_expr,
6682 fix prototype.
6683 (init_cplus_expand): Remove.
6684 * lex.c (cxx_init): Don't call init_cplus_expand.
6685
46ff5047
MM
66862002-03-26 Mark Mitchell <mark@codesourcery.com>
6687
6688 PR c++/4884.
6689 * init.c (build_new_1): Allow for the fact the result of
6690 build_function_call may be a COMPOUND_EXPR.
6691
6d4c57a0
NS
66922002-03-26 Nathan Sidwell <nathan@codesourcery.com>
6693
6694 PR c++/5682
6695 * cp-tree.h (BINFO_PRIMARY_P): Explain meaning better.
6696 (dfs_skip_nonprimary_vbases_unmarkedp): Remove.
6697 (dfs_skip_nonprimary_vbases_markedp): Remove.
6698 * search.c (get_shared_vbase_if_not_primary): Remove.
6699 (dfs_skip_nonprimary_vbases_unmarkedp): Remove.
6700 (dfs_skip_nonprimary_vbases_markedp): Remove.
6701 (dfs_unmarked_real_bases_queue_p): Just get the canonical binfo.
6702 (dfs_marked_real_bases_queue_p): Likewise.
6703
4f0ade92
NB
67042002-03-26 Neil Booth <neil@daikokuya.demon.co.uk>
6705
6706 * cp-lang.c (LANG_HOOKS_MARK_TREE): Redefine.
6707 * cp-tree.h (cxx_mark_tree): New.
6708 * decl.c (lang_mark_tree): Rename cxx_mark_tree.
6709
c88770e9
NB
67102002-03-25 Neil Booth <neil@daikokuya.demon.co.uk>
6711
6712 * cp-tree.h (cxx_maybe_build_cleanup): New.
6713 * decl.c (destroy_local_var, hack_incomplete_structures): Update.
6714 (maybe_build_cleanup): Rename cxx_maybe_build_cleanup.
6715 * tree.c (build_target_expr): Update.
7b3e5198 6716 * cp-lang.c (LANG_HOOKS_MAYBE_BUILD_CLEANUP): Redefine.
c88770e9 6717
aaf93206
NB
67182002-03-24 Neil Booth <neil@daikokuya.demon.co.uk>
6719
6720 * decl2.c (cxx_decode_option): Handle -E.
6721 * lang-specs.h (default_compilers): Preprocess with cc1plus.
6722 * lex.c (cxx_init): Exit quickly if c_common_init returns NULL.
6723
e756a7da
JJ
67242002-03-23 Jakub Jelinek <jakub@redhat.com>
6725
6726 PR c++/6037
6727 * decl.c (start_enum): Don't set TREE_ADDRESSABLE on TREE_LIST node.
6728
ea9264e9
GDR
67292002-03-23 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
6730
6731 * error.c (dump_type): Be careful about implicit typenames.
6732
acb044ee
GDR
67332002-03-21 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
6734
6735 PR C++/3656
6736 * semantics.c (finish_base_specifier): Handle erronous base
500abaa8 6737 classes.
acb044ee 6738
b216cd4a
ZW
67392002-03-22 Zack Weinberg <zack@codesourcery.com>
6740
6741 * error.c: Always use REAL_VALUE_TO_DECIMAL; don't test
6742 REAL_IS_NOT_DOUBLE.
6743
9181f8db
JK
67442002-03-22 Jeff Knaggs <jknaggs@redhat.com>
6745
cd6af0c1
JM
6746 * typeck.c (get_member_function_from_ptrfunc): Scale idx down to
6747 an index into the vtable_entry array regardless of
9181f8db
JK
6748 TARGET_PTRMEMFUNC_VBIT_LOCATION.
6749
e019cf95
AH
67502002-03-21 Aldy Hernandez <aldyh@redhat.com>
6751
84d901be 6752 * tree.c (cp_cannot_inline_tree_fn): Same.
e019cf95 6753
43577e6b
NB
67542002-03-21 Neil Booth <neil@daikokuya.demon.co.uk>
6755
6756 * cp-tree.h (pushdecl, pushlevel, poplevel, set_block,
6757 insert_block, getdecls, global_bindings_p): New.
6758
8c152bad
NS
67592002-03-20 Nathan Sidwell <nathan@codesourcery.com>
6760
6761 PR c++/4361
6762 * mangle.c (struct globals) Add internal_mangling_p member.
6763 (write_template_param): Do internal mangling, if needed.
6764 (mangle_conv_op_name_for_type): Request internal mangling.
6765
e3fe84e5
JM
67662002-03-20 Jason Merrill <jason@redhat.com>
6767
6768 PR c++/2136
6769 * init.c (build_delete): Check access for a member op delete here.
6770 * decl2.c (delete_sanity): Not here.
6771
ea122333
JM
67722002-03-19 Jason Merrill <jason@redhat.com>
6773
6774 PR c++/5118
6775 * class.c (get_vfield_name): Use the constructor_name.
6776
7afff7cf
NB
67772002-03-20 Neil Booth <neil@daikokuya.demon.co.uk>
6778
6779 * cp-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine.
6780 * cp-tree.h (lang_printable_name): Rename.
6781 * error.c (lang_decl_name): Use new hook.
6782 * lex.c (cxx_init): Remove old hook.
6783 * pt.c (tsubst_decl): Use new hook.
6784 * tree.c (lang_printable_name): Rename.
6785
ff77ac85
EB
67862002-03-18 Eric Botcazou <ebotcazou@multimania.com>
6787
6788 PR c++/3882
6789 * pt.c (tsubst_decl): Move __PRETTY_FUNCTION__ handling...
6790 (tsubst_expr) [DECL_STMT]: ...here. And substitute the initializer
6791 only after recording the declaration.
6792
ffd696af
JM
67932002-03-18 Jason Merrill <jason@redhat.com>
6794
097955f2
JM
6795 PR c++/2039
6796 * init.c (resolve_offset_ref): Hand off to build_component_ref.
6797
b663bcf3
JM
6798 PR c++/4222, c++/5995
6799 * call.c (build_over_call): Fix empty class logic.
6800
0f4237c2
JM
6801 PR c++/3870
6802 * cp-tree.h (struct saved_scope): Add last_parms field.
6803 * decl.c (maybe_push_to_top_level): Save last_function_parms.
6804 (pop_from_top_level): Restore it.
6805
001ad76c
JM
6806 PR c++/4377
6807 * mangle.c (write_expression): Strip NOP_EXPRs sooner. Also strip
6808 NON_LVALUE_EXPRs.
6809
6810 PR c++/4003
ed2fa432
JM
6811 * pt.c (tsubst_friend_function): Use decl_namespace_context.
6812
ffd696af
JM
6813 PR c++/3948 -- C++ ABI change, followup to 2001-12-18 patch.
6814 * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE for a
6815 type with a nontrivial destructor.
6816
f2606a97
JM
68172002-03-17 Jason Merrill <jason@redhat.com>
6818
6819 PR c++/4460
6820 * class.c (build_base_path): Virtual base layout is fixed in
6821 in-charge [cd]tors.
6822
52dabb6c
NB
68232002-03-17 Neil Booth <neil@daikokuya.demon.co.uk>
6824
6825 * cp-lang.c (LANG_HOOKS_PARSE_FILE): Redefine.
6826 * parse.y (yyparse): Remove macro.
6827
beb9c8a2
JM
68282002-03-17 Jason Merrill <jason@redhat.com>
6829
6830 PR c++/5757
6831 * init.c (build_new_1): Pass the right pointer to op delete.
6832
5dd236e2
NS
68332002-03-16 Nathan Sidwell <nathan@codesourcery.com>
6834
6835 PR c++/4361
6836 * cp-tree.h (CLASSTYPE_METHOD_VEC): Document where templated
6837 conversion operators go.
6838 (struct lang_decl_flags): Add template_conv_p and unused
6839 bitfields.
6840 (DECL_TEMPLATE_CONV_FN_P): New macro.
6841 * call.c (build_user_type_conversion_1): Don't check second type
6842 conversion of overload set first.
6843 * class.c (add_method): Make sure templated conversion operators
6844 all end up on slot 2.
6845 * lex.c (do_identifier): A conversion operator token might be
6846 satisfied by a templated conversion operator.
5dd236e2
NS
6847 * pt.c (check_explicit_specialization): Use
6848 CLASSTYPE_FIRST_CONVERSION_SLOT.
6849 (template_parm_this_level_p): New function.
6850 (push_template_decl_real): Determine DECL_TEMPLATE_CONV_FN_P.
8c152bad 6851 * search.c (lookup_fnfields_1): Template conversions will be on
5dd236e2
NS
6852 the first slot.
6853 * typeck.c (build_component_ref): Preserve the type of an
6854 conversion operator name on the overload type.
6855 (build_x_function_call): Retrieve the conversion operator name.
6856
0ba20759
RH
68572002-03-15 Richard Henderson <rth@redhat.com>
6858
6859 * init.c (build_new_1): Use size_binop instead of cp_build_binary_op.
6860
6e4ae815
MM
68612002-03-15 Mark Mitchell <mark@codesourcery.com>
6862
6863 * cp-tree.h (CLEANUP_DECL): Remove.
6864 (CLEANUP_EXPR): Likewise.
6865 * decl.c (destroy_local_var): Simplify.
6866 (maybe_build_cleanup): Tidy.
6867 * dump.c (cp_dump_tree): Remove handling of CLEANUP_STMT.
6868 * semantics.c (cp_expand_stmt): Likewise.
6869 * cp/tree.c (cp_statement_code_p): Likewise.
6870
5cc90635
JM
68712002-03-15 Jason Merrill <jason@redhat.com>
6872
6da794e8
JM
6873 PR c++/5857
6874 * decl.c (duplicate_decls): Use merge_types instead of common_type.
6875 * typeck.c (common_type): Just hand off to
6876 type_after_usual_arithmetic_conversions and
6877 composite_pointer_type.
6878 (merge_types): New fn.
6879 (commonparms): Use it instead of common_type.
6880 (type_after_usual_arithmetic_conversions): Also handle COMPLEX_TYPE.
6881 (composite_pointer_type): Also handle attributes.
6882 * cp-tree.h: Declare merge_types.
6883
5cc90635
JM
6884 * decl.c (make_rtl_for_nonlocal_decl): Also defer COMDAT
6885 variables.
6886 * decl2.c (maybe_make_one_only): Also mark the decl as needed.
6887
ecb0eece
RH
68882002-03-14 Richard Henderson <rth@redhat.com>
6889
6890 * decl.c: Include c-pragma.h.
6891 (start_decl, start_function): Invoke maybe_apply_pragma_weak.
6892 * Make-lang.in: Update dependencies.
6893
d3f129b3
JJ
68942002-03-14 Jakub Jelinek <jakub@redhat.com>
6895
f6562b37 6896 PR c++/5908
d3f129b3
JJ
6897 * call.c (build_over_call): Set TREE_NO_UNUSED_WARNING too.
6898 * cvt.c (convert_to_void): Preserve TREE_NO_UNUSED_WARNING.
6899
049e6879
RS
69002002-03-12 Richard Sandiford <rsandifo@redhat.com>
6901
6902 * mangle.c (write_builtin_type): Handle 128-bit integers even if
6903 they are not a standard integer type.
6904
872c9284
RS
69052002-03-12 Richard Sandiford <rsandifo@redhat.com>
6906
6907 * cp-tree.h (init_init_processing): Remove declaration.
6908 * init.c (BI_header_type, init_init_processing): Remove old ABI stuff.
6909 * decl.c (cxx_init_decl_processing): Don't call init_init_processing.
6910
2f9834e8
KG
69112002-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6912
6913 * cp-lang.c (tree_code_type, tree_code_length, tree_code_name):
6914 Define.
6915 * decl.c (duplicate_decls): Use TREE_CODE_LENGTH, not
6916 tree_code_length.
6917 * lex.c (cplus_tree_code_type, cplus_tree_code_length,
6918 cplus_tree_code_name): Delete.
6919 (cxx_init): Don't call add_c_tree_codes, instead set
6920 lang_unsafe_for_reeval. Don't try to copy into the various
6921 tree_code arrays.
6922
df867456
NS
69232002-03-12 Nathan Sidwell <nathan@codesourcery.com>
6924
6925 PR c++/5659
6926 * decl.c (xref_tag): Don't set CLASSTYPE_DECLARED_CLASS here.
6927 * decl2.c (handle_class_head): Set CLASSTYPE_DECLARED_CLASS for
6928 definitions.
6929
ab04e34b
NS
69302002-03-11 Nathan Sidwell <nathan@codesourcery.com>
6931
6932 Revert 2001-03-26 Nathan Sidwell <nathan@codesourcery.com>,
6933 DR209 is now not a defect.
6934 * cp-tree.h (skip_type_access_control): Remove.
6935 * decl.c (grokdeclarator): Do type access control for friend
6936 declarations.
6937 * semantics.c (decl_type_access_control): Don't reset
6938 current_type_lookups.
6939 (save_type_access_control): Always save the lookups.
6940 (skip_type_access_control): Remove.
6941 (finish_class_definition): Don't change type_lookups.
6942
999cc24c
NS
69432002-03-11 Nathan Sidwell <nathan@codesourcery.com>
6944
6945 Revert 2000-12-01 Nathan Sidwell <nathan@codesourcery.com>,
6946 It is incorrect.
6947 * typeck.c (build_static_cast): Compare non-qualified types
6948 with pointer to member conversions.
6949
61eece67
DN
69502002-03-11 Dan Nicolaescu <dann@ics.uci.edu>
6951 Daniel Berlin <dan@dberlin.org>
6952
6953 * cp-lang.c (ok_to_generate_alias_set_for_type): New function.
6954 (cxx_get_alias_set): Use it.
6955
644d28d4
KG
69562002-03-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6957
6958 * cp-tree.h (stabilize_expr): Prototype.
6959
7e326356
CR
69602002-03-08 Craig Rodrigues <rodrigc@gcc.gnu.org>
6961
6962 * cp-tree.h (CLEAR_BINFO_MARKED): Make both parts of
6963 conditional return void.
6964
24965e7a
NB
69652002-03-08 Neil Booth <neil@daikokuya.demon.co.uk>
6966
6967 * cp-lang.c (LANG_HOOKS_UNSAVE): Redefine.
6968 * cp-tree.h (cxx_unsave): New.
6969 * tree.c (cp_unsave): Rename cxx_unsave, update prototype.
6970 (init_tree): Update.
6971
ca7558fc
KG
69722002-03-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
6973
6974 * decl.c (cxx_init_decl_processing): Use ARRAY_SIZE in lieu of
6975 explicit sizeof/sizeof.
6976 * decl2.c (cxx_decode_option): Likewise.
6977 * lex.c (init_reswords, REDUCE_LENGTH, TOKEN_LENGTH): Likewise.
6978
fd87b7a7
NS
69792002-03-02 Nathan Sidwell <nathan@codesourcery.com>
6980
6981 PR c++/775
6982 * decl.c (lookup_tag): Only reject enum/class mismatch, not
6983 class/union mismatch.
6984 * parse.y (check_class_key): New function.
6985 (structsp): Call it.
6986
bfba94bd
MM
69872002-03-01 Michael Matz <matz@suse.de>
6988
6989 * typeck.c (cp_pointer_int_sum): Complete inner type which is
6990 used later by size_in_bytes().
6991
fdc9bf29
PE
69922002-03-01 Phil Edwards <pme@gcc.gnu.org>
6993
6994 * cp-tree.h: Require __GNUC__ to be #defined.
6995 (build_init): Add missing prototype.
6996
6f30f1f1
JM
69972002-03-01 Jason Merrill <jason@redhat.com>
6998
6999 * except.c: Don't include decl.h or obstack.h. Do include
7000 tree-inline.h.
7001 (build_throw): Destroy temporaries from the thrown
500abaa8 7002 expression before calling __cxa_throw. Construct a thrown
6f30f1f1
JM
7003 temporary directly into the exception object.
7004 (stabilize_throw_expr): New function.
7005 (wrap_cleanups_r): New function.
7006 * tree.c (stabilize_expr): New function.
7007 * init.c (build_init): New function.
7008 * Make-lang.in (cp/except.o): Adjust .h deps.
7009
46cfb101
JM
70102002-02-28 Jason Merrill <jason@redhat.com>
7011
07f521fc
JM
7012 * search.c (lookup_base_r): Don't clear is_non_public just because
7013 we found a friendly scope.
7014
46cfb101
JM
7015 * decl.c (finish_function): Only warn about missing return
7016 statement with -Wreturn-type.
7017
63e1b1c4
NB
70182002-02-28 Neil Booth <neil@daikokuya.demon.co.uk>
7019
7020 * class.c (build_clone): Update.
7021 * cp-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
7022 * cp-tree.h (cxx_dup_lang_specific_decl): New.
7023 * lex.c (copy_lang_decl): Rename cxx_dup_lang_specific_decl.
7024 (copy_decl): Update.
7025 * method.c (make_thunk): Update.
7026
f458d1d5
ZW
70272002-02-27 Zack Weinberg <zack@codesourcery.com>
7028
7029 * decl2.c: Delete traditional-mode-related code copied from
7030 the C front end but not used, or used only to permit the
7031 compiler to link.
7032
500abaa8 70332002-02-24 Craig Rodrigues <rodrigc@gcc.gnu.org>
3387d36e
CR
7034
7035 PR c++/4093
7036 * cp-tree.h (SET_BINFO_MARKED): Cast false part of condition
7037 to void.
7038
25c8b645
JJ
70392002-02-22 Jakub Jelinek <jakub@redhat.com>
7040
7041 PR other/5746
7042 * semantics.c (finish_switch_cond): Don't call get_unwidened
7043 if error_mark_node.
7044
4f2b0fb2
NS
70452002-02-22 Nathan Sidwell <nathan@codesourcery.com>
7046
7047 PR c++/2645, DR 295
7048 * cp-tree.h (tsubst_flags_t): Add tf_ignore_bad_quals,
7049 tf_keep_type_decl.
7050 (make_typename_type): Use tsubst_flags_t.
7051 * decl.c (make_typename_type): Adjust. Return non-artificial
7052 TYPE_DECLs, if required.
7053 (grokdeclarator): Simplify CVR qualification handling. Allow bad
7054 qualifiers on typedef types.
7055 * decl2.c (handle_class_head): Adjust make_typename_type call.
7056 * parse.y (nested_name_specifier): Likewise.
7057 (typename_sub0): Likewise.
7058 (typename_sub1): Likewise.
7059 * pt.c (convert_template_argument): Adjust make_typename_type
7060 return value.
7061 (tsubst): Adjust cp_build_qualified_type_real calls.
1a55127d 7062 (check_cv_quals_for_unify): Cope with allowing bad qualifications
4f2b0fb2
NS
7063 on template type parms.
7064 (instantiate_decl): Recheck substitutions to give warnings on bad
7065 qualifications.
7066 * tree.c (cp_build_qualified_type_real): Use tf_allow_bad_quals.
7067
8fc2ba41
AH
70682002-02-21 Aldy Hernandez <aldyh@redhat.com>
7069
84d901be 7070 * cp/decl.c (duplicate_decls): Merge always_inline attribute.
8fc2ba41 7071
84d901be
AD
7072 * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
7073 unless DECL_ALWAYS_INLINE.
8fc2ba41 7074
7552da58
JJ
70752002-02-20 Jakub Jelinek <jakub@redhat.com>
7076
7077 * typeck.c (cp_pointer_int_sum): Renamed from
7078 pointer_int_sum, call pointer_int_sum.
7079
00fae85d
JJ
70802002-02-20 Jakub Jelinek <jakub@redhat.com>
7081
7082 * decl.c (duplicate_decls): Return 0 if issued error about
7083 redeclaration.
7084
6ea868b7
JM
70852002-02-19 Jason Merrill <jason@redhat.com>
7086
500abaa8 7087 ABI change: Mangle `void (A::*)() const' as
6ea868b7
JM
7088 M1AKFvvE, not MK1AFvvE.
7089 * mangle.c (write_function_type): Write cv-quals for member
7090 function type here.
7091 (write_pointer_to_member_type): Not here.
7092
c02f5e29
JM
70932002-02-18 Jason Merrill <jason@redhat.com>
7094
7095 * pt.c (do_type_instantiation): Don't pedwarn if in_system_header.
7096 (do_decl_instantiation): Likewise.
7097
624a5800
CR
70982002-02-17 Craig Rodrigues <rodrigc@gcc.gnu.org>
7099
7100 PR c++/5685
7101 * decl.c (duplicate_decls): Make warning unconditional
7102 if duplicate default argument declarations are present.
7103
f6f8ada3
JJ
71042002-02-17 Jakub Jelinek <jakub@redhat.com>
7105
7106 * typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
7107 shortening.
7108
8d6e459d
NS
71092002-02-15 Nathan Sidwell <nathan@codesourcery.com>
7110
7111 * decl.c (grokdeclarator): Set typedef_decl for all TYPE_DECLs,
7112 remove incorrect comment. Move #if 0'd code to common path. Use
7113 IMPLICIT_TYPENAME_P. Simplify & reformat ARRAY_TYPE duplication.
7114
ca4feb54
JM
71152002-02-13 Jason Merrill <jason@redhat.com>
7116
57d5032b
JM
7117 * decl.c (builtin_function): Set TREE_THIS_VOLATILE on return fns.
7118 (finish_function): Don't warn if current_function_returns_null.
7119
bb26522d
JM
7120 * typeck2.c (digest_init): Do handle values of vector type.
7121
ca4feb54
JM
7122 * typeck2.c (digest_init, process_init_constructor): Treat vectors
7123 like arrays.
7124
e6b9638b
JM
71252002-02-11 Jason Merrill <jason@redhat.com>
7126
7127 * parse.y (reserved_declspecs): Don't handle attributes.
7128 (reserved_typespecquals): Handle them here.
7129 * Make-lang.in (parse.c): Adjust expected conflicts.
7130
1cf537c5
JJ
71312002-02-08 Jakub Jelinek <jakub@redhat.com>
7132
7133 * parse.y (primary, primary_no_id): Use compstmt_or_stmtexpr
7134 instead of compstmt.
7135 (compstmt_or_stmtexpr): Renamed from compstmt.
7136 (compstmt): In addition to compstmt_or_stmtexpr clear last_expr_type.
7137
c2ea3a40
NS
71382002-02-07 Nathan Sidwell <nathan@codesourcery.com>
7139
7140 Rename instantiate_type_flags to tsubst_flags_t & expand use.
7141 * cp-tree.h (instantiate_type_flags): Rename to ...
7142 (tsubst_flags_t): ... here. Rename itf_complain to tf_error,
7143 add tf_warning flag.
7144 (instantiate_type): Adjust prototype.
7145 (tsubst, tsubst_expr, tsubst_copy, lookup_template_class,
7146 do_type_instantiation, cp_build_qualified_type_real): Likewise.
7147 cp_build_qualified_type: Adjust.
7148 * class.c (instantiate_type): Adjust parameter. Rename itf_* to
7149 tf_*.
7150 * call.c (standard_conversion): Rename itf_* to tf_*.
7151 (reference_binding): Likewise.
7152 (convert_like_real): Likewise.
7153 * cvt.c (cp_convert_to_pointer): Likewise.
7154 (convert_to_reference): Likewise.
7155 * decl.c (lookup_namespace_name): Use tf_* flags.
7156 (make_typename_type): Likewise.
7157 (grokdeclarator): Likewise.
7158 * pt.c (convert_nontype_argument): Adjust COMPLAIN usage.
7159 (coerce_template_template_parms, convert_template_argument,
7160 coerce_template_parms, maybe_get_template_decl_from_type_decl,
7161 lookup_template_class, tsubst_friend_function, tsubst_friend_class,
500abaa8
AJ
7162 instantiate_class_template, tsubst_template_arg_vector,
7163 tsubst_template_parms, tsubst_aggr_type, tsubst_default_argument,
c2ea3a40 7164 tsubst_decl, tsubst_arg_types, tsubst_function_type,
500abaa8 7165 tsubst_call_declarator_parms, tsubst, tsubst_copy, tsubst_expr,
c2ea3a40 7166 instantiate_template, fn_type_unification,
500abaa8
AJ
7167 resolve_overloaded_unification, verify_class_unification,
7168 unify, get_bindings_real, do_type_instantiation,
7169 regenerate_decl_from_template, instantiate_decl,
c2ea3a40
NS
7170 tsubst_initializer_list, tsubst_enum,
7171 get_mostly_instantiated_function_type,
7172 invalid_nontype_parm_type_p): Likewise.
7173 * tree.c (cp_build_qualified_type_real): Likewise.
7174 * typeck.c (build_binary_op): Rename itf_* to tf_*.
7175 (build_ptrmemfunc): Likewise.
7176 (convert_for_assignment): Likewise.
7177
d5614afb
NS
71782002-02-07 Nathan Sidwell <nathan@codesourcery.com>
7179
7180 PR c++/109
7181 * decl.c (grokdeclarator): Allow friend declarations from
8d6e459d 7182 dependent types.
d5614afb
NS
7183 * decl2.c (handle_class_head): Don't push into template parm contexts.
7184 * pt.c (push_template_decl_real): Template parm contexts are never
7185 being defined.
7186
1af6141b
AO
71872002-02-05 Alexandre Oliva <aoliva@redhat.com>
7188
7189 * class.c: Include target.h.
7190 (check_bitfield_decl): Disregard EMPTY_FIELD_BOUNDARY,
7191 BITFIELDS_NBYTES_LIMITED and PCC_BITFIELD_TYPE_MATTERS for MS
7192 bit-field layout.
7193 * Make-lang.in: Adjust deps.
7194
d8a6f584
JM
71952002-02-05 Jason Merrill <jason@redhat.com>
7196
7197 * error.c (dump_type): Be more helpful about VECTOR_TYPE.
7198
6f9fdf4d
JJ
71992002-02-04 Jakub Jelinek <jakub@redhat.com>
7200
7201 * semantics.c (begin_switch_stmt): Clear SWITCH_TYPE.
7202 (finish_switch_cond): Set SWITCH_TYPE.
7203
14691f8d
RH
72042002-02-04 Richard Henderson <rth@redhat.com>
7205
7206 * method.c (use_thunk): Always initialize the block tree. Reindent.
7207 * semantics.c (expand_body): Emit thunks after function, not before.
7208
e89a6075
JM
72092002-02-04 Jason Merrill <jason@redhat.com>
7210
7211 * decl.c (start_function): Call cplus_decl_attributes immediately
7212 after grokdeclarator.
7213
7214 * decl.c (start_function): Combine DECL_RESULT handling code.
7215
9780c24f
JM
72162002-02-03 Jason Merrill <jason@redhat.com>
7217
7218 * xref.c: Remove.
7219 * Make-lang.in (CXX_OBJS): Remove cp/xref.o
7220 (cp/xref.o): Remove dependencies.
7221 * class.c (finish_struct_1, check_methods): Don't call xref fns.
7222 (finish_struct_1): Likewise.
7223 * friend.c (make_friend_class): Likewise.
7224 * lex.c (cxx_init, cxx_finish, extract_interface_info): Likewise.
7225 * spew.c (read_process_identifier): Likewise.
7226
65f36ac8
JM
72272002-02-01 Jason Merrill <jason@redhat.com>
7228
efe49da0 7229 PR c++/4872
500abaa8 7230 * decl.c (finish_function): Warn about a non-void function with
efe49da0
JM
7231 no return statement and no abnormal exit.
7232 * cp-tree.h (struct cp_language_function): Add returns_abnormally.
7233 (current_function_returns_abnormally): New macro.
7234 * call.c (build_call): Set it.
7235
f2d9afec
JM
7236 * typeck.c (build_component_ref): Always complain about offsetof
7237 constructs on non-PODs. Only make it an error for members of
7238 virtual bases.
7239
65f36ac8
JM
7240 * error.c (dump_scope): Don't add TFF_DECL_SPECIFIERS.
7241 (dump_function_decl): Always dump parms.
7242
7243 * decl2.c (finish_static_data_member_decl): Complain about a local
7244 class with a static data member.
7245
7246 PR c++/4286
7247 * search.c (lookup_field_1): Don't xref a static data member
7248 just because we looked it up.
7249
98884b26
JM
72502002-01-31 Jason Merrill <jason@redhat.com>
7251
b88c0704
JM
7252 * Make-lang.in (parse.c): Handle .output file.
7253
a588fe25
JM
7254 PR c++/3395
7255 * decl.c (xref_tag): Remember early attributes in TYPE_ATTRIBUTES,
7256 not TREE_TYPE.
7257 * semantics.c (finish_class_definition): Adjust.
7258
98884b26
JM
7259 Allow attributes in parms and casts.
7260 * parse.y (named_parm): Don't strip attrs.
7261 (declmods): Remove 'attributes' production.
7262 (nonempty_cv_qualifiers): Accept attributes.
7263 (ATTRIBUTE): Give precedence.
7264 * decl.c (groktypename): Handle attributes.
7265 (grokparms): Likewise.
7266
ffdeea47
JJ
72672002-01-29 Jakub Jelinek <jakub@redhat.com>
7268
7269 * decl2.c (cxx_decode_option): Pass 0 as last argument to
7270 cpp_handle_option.
7271 * lang-specs.h: Use cpp_unique_options instead of cpp_options
7272 when used together with cc1_options.
7273
b8b98c66
NS
72742002-01-29 Nathan Sidwell <nathan@codesourcery.com>
7275
7276 PR c++/5132
7277 * typeck2.c (digest_init): Make sure non-array core type is
7278 instantiated.
7279 * decl2.c (reparse_absdcl_as_casts): Just store the type in the
7280 constructor, rather than build a new one.
7281 (build_expr_from_tree, CONSTRUCTOR case): Be careful with the
7282 PURPOSE of constructor elts.
7283
7437519c
ZW
72842002-01-23 Zack Weinberg <zack@codesourcery.com>
7285
7286 * Make-lang.in (parse.c): Adjust expected number of
7287 shift-reduce conflicts.
7288 (decl.o): Depend on diagnostic.h.
7289 * decl.c: Include diagnostic.h.
7290 (grokdeclarator): Check for null pointer.
7291 (finish_function): Don't abort when
7292 current_binding_level->parm_flag != 1, if errors have
7293 occurred; throw away the statement tree and extra binding
7294 levels, and continue.
7295 * lex.c (note_list_got_semicolon): Check for null pointer.
7296 * method.c (hack_identifier): Just return error_mark_node if
7297 value is error_mark_node.
7298 * parse.y (primary: TYPEID(type_id)): No need to use
7299 TYPE_MAIN_VARIANT here.
7300 (handler_seq): Accept an empty list of catch clauses and
7301 generate a fake handler block to avoid later crashes.
7302 (ansi_raise_identifier): Accept the error token too.
7303 * semantics.c (begin_class_definition,
7304 finish_class_definition): Check for error_mark_node.
7305
c588e52b
ZW
73062002-01-23 Zack Weinberg <zack@codesourcery.com>
7307
7308 * typeck2.c (friendly_abort): Delete definition.
7309 * cp-tree.h (friendly_abort): Don't prototype.
7310 (my_friendly_assert): Use fancy_abort.
7311
d55ecaa4
CR
73122002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org>
7313
7314 * cp-tree.h (my_friendly_abort): Remove.
7315
0a01c261
JJ
73162002-01-23 Jakub Jelinek <jakub@redhat.com>
7317
7318 * spew.c (pending_inlines, pending_inlines_tail,
7319 processing_these_inlines): Make static.
7320 (mark_pending_inlines): Remove static.
7321 (begin_parsing_inclass_inline): If in function, save pi
7322 for GC to cp_function_chain->unparsed_inlines instead.
7323 (process_next_inline): Likewise.
7324 * cp-tree.h (struct cp_language_function): Add unparsed_inlines.
7325 (mark_pending_inlines): Add prototype.
7326 * decl.c (spew_debug): Remove unused extern.
7327 (mark_lang_function): Call mark_pending_inlines.
7328
a98facb0
CR
73292002-01-23 Craig Rodrigues <rodrigc@gcc.gnu.org>
7330
c588e52b
ZW
7331 * call.c, class.c, decl.c, decl2.c, error.c, expr.c, friend.c,
7332 init.c, lex.c, mangle.c, method.c, pt.c, repo.c, rtti.c, search.c,
7333 semantics.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c:
a98facb0
CR
7334 Change my_fancy_abort() to abort().
7335
f893c16e
JM
73362002-01-23 Jason Merrill <jason@redhat.com>
7337
608afcc5
JM
7338 PR c++/5453
7339 * class.c (fixed_type_or_null): Fix thinko.
7340
f893c16e
JM
7341 PR c++/3331
7342 * init.c (resolve_offset_ref): Use build_indirect_ref.
6bc34b14 7343
b2115575
JM
7344 * decl2.c (grokclassfn): Don't set DECL_REGISTER on 'this'.
7345
f893c16e
JM
73462002-01-22 Jason Merrill <jason@redhat.com>
7347
b5856475
JM
7348 * parse.y (function_body): Suppress the block for the outermost
7349 curly braces.
7350 * decl.c (pushdecl): Don't try to skip it.
7351 (begin_function_body): Keep the block we create, not the next one.
7352 * init.c (emit_base_init): Don't mess with keep_next_level.
7353
6bc34b14
JM
7354 * class.c (build_base_path): Tweak formatting.
7355
3807621a
NS
73562002-01-19 Nathan Sidwell <nathan@codesourcery.com>
7357
7358 Fix regression introduced with patch for c++/775
7359 * parse.y (class_head_defn): Check for template specializations
7360 with a different class-key.
7361
cdd2559c
JM
73622002-01-17 Jason Merrill <jason@redhat.com>
7363
7364 * decl.c (begin_constructor_body, begin_destructor_body): New fns.
7365 (begin_function_body): Call them and keep_next_level.
7366 * init.c (emit_base_init): Call keep_next_level.
7367 * semantics.c (setup_vtbl_ptr): Lose.
7368 * cp-tree.h (struct cp_language_function): Remove vtbls_set_up_p.
7369 (vtbls_set_up_p): Lose.
7370 * pt.c (tsubst_expr, CTOR_INITIALIZER): Call emit_base_init.
7371 * method.c (do_build_copy_constructor): Likewise.
7372 (synthesize_method): Call finish_mem_initializers.
7373 * parse.y (nodecls): Likewise.
ad6b1795
JM
7374
7375 * error.c (dump_type_suffix): Print the exception specs before
7376 recursing.
7377 (dump_function_decl): Here, too.
7378
7379 * cp-tree.h (TMPL_PARMS_DEPTH): Cast to signed HOST_WIDE_INT.
7380
195a5def
IR
73812002-01-10 Ira Ruben <ira@apple.com>
7382
6bc34b14 7383 PR c++/907
195a5def
IR
7384 * decl.c (start_method): Handle attrlist.
7385
f21ee879
JJ
73862002-01-10 Jakub Jelinek <jakub@redhat.com>
7387
7388 * decl2.c (max_tinst_depth): Increase default limit to 500.
7389
73902002-01-10 Graham Stott <grahams@redhat.com>
8fabd4e2
GS
7391
7392 * spew.c (YYCHAR): Uppercase macro parameter and add
7393 parenthesis.
7394 (YYCODE): Likewise.
7395 (NAME): Uppercase macro parameter.
7396
c3af729a
GS
73972002-01-09 Graham Stott <grahams@redhat.com>
7398
6bc34b14 7399 * decl.h (grokdeclarator): Wrap long line.
5d8b4235 7400
c3af729a
GS
7401 * semantics.c (FINISH_COND): Uppercase macro paramaters and
7402 add parenthesis.
7403
91800747
GS
74042002-01-08 Graham Stott <grahams@redhat.com>
7405
7406 * xref.c (FILE_NAME_ABSOLUTE_P): Add parenthesis.
7407 (PALLOC): Uppercase macro parameter and whitespace.
7408 (SALLOC): Uppercase macro parameter.
7409 (SFREE): Uppercase macros parameter, add parenthese and
7410 whitespace.
7411 (STREQL): Uppercase macro parameter and whitespace.
7412 (STRNEQ): Likewise.
7413 (STRLSS): Likewise.
7414 (STRLEQ): Likewise.
7415 (STRGTR): Likewise.
7416 (STRGEQ): Likewise.
7417
7418 * call.c (convert_like): Add parenthesis and wrap.
7419 (convert_like_with_context): Likewise.
7420 (ICS_RANK): Whitespace.
7421 (NEED_TEMPORARY_P): Remove parenthesis.
7422
7423 * class.c (VTT_TOP_LEVEL_P): Uppercase macro parameter and
7424 whitespace.
7425 (VTT_MARKED_BINFO_P): Likewise.
7426
7427 * decl.c (BINDING_LEVEL): Add parenthesis.
7428 (DEF_OPERATOR): Likewise.
7429
91800747
GS
7430 * mangle.c (MANGLE_TRACE): Add parenthesis.
7431 (MANGLE_TRACE_TREE): Likewise.
7432 (write_signed_number): Likewise.
7433 (write_unsigned_number): Likewise.
7434
7435 * pt.c (ccat): Uppercase macro parameter.
7436 (cat): Likewise
7437
7438 * search.c (SET_BINFO_ACCESS): Add parenthesis.
7439
15eb1e43
JM
74402002-01-07 Jason Merrill <jason@redhat.com>
7441
7442 * decl2.c (coerce_new_type): Downgrade error for size_t mismatch
7443 to pedwarn.
7444
6bc34b14 7445 PR c++/3536
15eb1e43
JM
7446 * method.c (make_thunk): If !flag_weak, give the thunk the
7447 function's linkage.
7448 (use_thunk): Here, too.
7449
b34c06e3
GS
74502002-01-07 Graham Stott <grahams@redhat.com>
7451
6bc34b14
JM
7452 * error.c: Update copyright date.
7453 (print_scope_operator): Add parenthesis.
7454 (print_left_paren): Likewise.
7455 (print_right_paren): Likewise.
7456 (print_left_bracket): Likewise.
7457 (print_right_bracket): Likewise.
7458 (print_template_argument_list_start): Likewise.
7459 (print_template_argument_list_end): Likewise.
7460 (print_non_consecutive_character): Likewise.
7461 (print_tree_identifier): Likewise.
7462 (print_identifier): Likewise.
7463 (NEXT_CODE): Uppercase macro parameter.
7464 (ident_fndecl): Delete unused.
7465 (GLOBAL_THING): Likewise.
b34c06e3 7466
98e40e83
GS
74672002-01-06 Graham Stott <grahams@redhat.com>
7468
7469 * cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK): Add parenthesis.
7470 (VAR_FUNCTION_OR_PARM_DECL_CHECK): Likewise.
7471 (VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK) Likewise.
7472 (RECORD_OR_UNION_TYPE_CHECK): Likewise.
7473 (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Likewise.
7474 (C_IS_RESERVED_WORD): Uppercase macro parameter.
7475 (C_RID_YYCODE) Likewise.
7476 (ptrmem_cst): Use rtx.
7477 (LOCAL_BINDING_P): Add whitespace.
7478 (INHERITED_VALUE_BINDING_P): Likewise.
7479 (BINDING_SCOPE): Wrap long line.
7480 (BINDING_HAS_LEVEL_P): Remove parenthesis.
7481 (BINDING_VALUE): Wrap long line.
7482 (BINDING_TYPE): Whitespace.
7483 (IDENTIFIER_GLOBAL_VALUE): Add parenthesis.
7484 (SET_IDENTIFIER_GLOBAL_VALUE): Likewise.
c588e52b 7485 (IDENTIFIER_NAMESPACE_VALUE): Likewise.
98e40e83
GS
7486 (SET_IDENTIFIER_NAMESPACE_VALUE: Likewise.
7487 (same_type_p): Uppercase macro parameters.
7488 (same_type_ignoring_top_level_qualifiers_p): Likewise.
7489 (OVL_FUNCTION): Wrap long line.
7490 (OVL_CHAIN): Whitespace.
b34c06e3 7491 (OVL_CURRENT): Add parenthesis and whitespace.
98e40e83
GS
7492 (OVL_NEXT): Whitespace.
7493 (OVL_USED): Likewise.
7494 (IDENTIFIER_TYPE_VALUE): Likewise.
7495 (REAL_IDENTIFIER_TYPE_VALUE): Remove parenthesis.
7496 (SET_IDENTIFIER_TYPE_VALUE): Add parenthesis and whitespace.
7497 (LANG_ID_FIELD): Whitespace.
7498 (SET_LANG_ID(NODE,VALUE,NAME): Likewise.
7499 (IDENTIFIER_LABEL_VALUE): Whitespace and wrap.
7500 (SET_IDENTIFIER_LABEL_VALUE): Whitespace.
7501 (IDENTIFIER_IMPLICIT_DECL): Whitespace and wrap.
7502 (SET_IDENTIFIER_IMPLICIT_DECL); Whitespace.
7503 (IDENTIFIER_ERROR_LOCUS): Whitespace and wrap.
7504 (SET_IDENTIFIER_ERROR_LOCUS); Whitespace.
7505 (IDENTIFIER_VIRTUAL_P): Likewise.
7506 (IDENTIFIER_OPNAME_P): Likewise.
7507 (IDENTIFIER_TYPENAME_P): Remove parenthesis.
7508 (C_TYPE_FIELDS_READONLY): Uppercase macro parameters.
7509 (C_SET_EXP_ORIGINAL_CODE): Likewise.
7510 (TYPE_ASSEMBLER_NAME_STRING): Wrap long line.
7511 (TYPE_ASSEMBLER_NAME_LENGTH): Likewise.
7512 (IS_AGGR_TYPE): Uppercase macro parameter.
7513 (CLASS_TYPE_P): Likewise.
7514 (IS_AGGR_TYPE_CODE): Uppercase macro parameter and parenthesis.
7515 (IS_AGGR_TYPE_2): Whitespace.
7516 (TAGGED_TYPE_P): Uppercase macro parameter.
7517 (TYPE_BUILT_IN): Whitespace.
7518 (TYPE_FOR_JAVA): Likewise.
7519 (FUNCTION_ARG_CHAIN): Remove parenthesis.
7520 (FUNCTION_FIRST_USER_PARMTYPE): Add parenthesis.
7521 (FUNCTION_FIRST_USER_PARAM): Likewise.
7522 (PROMOTES_TO_AGGR_TYPE): Whitespace.
7523 (DERIVED_FROM_P): Add parenthesis and wrap.
7524 (UNIQUELY_DERIVED_FROM_P): Likewise.
7525 (ACCESSIBLY_UNIQUELY_DERIVED_P): Likewise.
7526 (PUBLICLY_UNIQUELY_DERIVED_P): Likewise.
7527 (CLASSTYPE_USE_TEMPLATE): Whitespace.
7528 (CLASSTYPE_INLINE_FRIENDS): Remove parenthesis.
7529 (TYPE_GETS_DELETE): Add parenthesis.
7530 (TYPE_HAS_CONVERSION): Add parenthesis and wrap.
7531 (TYPE_HAS_ASSIGN_REF): Likewise,
7532 (TYPE_HAS_CONST_ASSIGN_REF): Likewise.
7533 (TYPE_HAS_INIT_REF): Likewise.
7534 (TYPE_HAS_CONST_INIT_REF): Likewise.
7535 (TYPE_BEING_DEFINED): Likewise.
7536 (TYPE_LANG_SPECIFIC): Likewise.
7537 (CLASSTYPE_RTTI): Likewise.
7538 (TYPE_OVERLOADS_CALL_EXPR): Likewise.
7539 (TYPE_OVERLOADS_ARRAY_REF): Likewise.
7540 (TYPE_OVERLOADS_ARROW): Likewise.
7541 (TYPE_USES_MULTIPLE_INHERITANCE): Likewise.
7542 (TYPE_USES_VIRTUAL_BASECLASSES): Add parenthesis.
7543 (CLASSTYPE_METHOD_VEC): Likewise.
7544 (CLASSTYPE_MARKED_N): Likewise.
7545 (CLASSTYPE_MARKED): Likewise.
7546 (CLASSTYPE_MARKED2): Likewise.
7547 (CLASSTYPE_MARKED3): Likewise.
7548 (CLASSTYPE_MARKED4): Likewise.
7549 (CLASSTYPE_MARKED5): Likewise.
7550 (CLASSTYPE_MARKED6): Likewise.
7551 (SET_CLASSTYPE_MARKED): Whitespace.
7552 (CLEAR_CLASSTYPE_MARKED): Likewise.
7553 (SET_CLASSTYPE_MARKED2): Likewise.
7554 (CLEAR_CLASSTYPE_MARKED2): Likewise.
7555 (SET_CLASSTYPE_MARKED3): Likewise.
7556 (CLEAR_CLASSTYPE_MARKED3): Likewise.
7557 (SET_CLASSTYPE_MARKED4): Likewise.
7558 (CLEAR_CLASSTYPE_MARKED4): Likewise.
7559 (SET_CLASSTYPE_MARKED5): Likewise.
7560 (CLEAR_CLASSTYPE_MARKED5): Likewise.
7561 (SET_CLASSTYPE_MARKED6): Likewise.
7562 (CLEAR_CLASSTYPE_MARKED6): Likewise.
7563 (CLASSTYPE_TAGS): Likewise.
7564 (CLASSTYPE_VSIZE): Likewise.
7565 (CLASSTYPE_VBASECLASSES): Likewise.
7566 (CANONICAL_BINFO): Add parenthesis.
7567 (CLASSTYPE_SIZE(NODE): Likewise.
7568 (CLASSTYPE_SIZE_UNIT): Likewise.
7569 (CLASSTYPE_ALIGN(NODE): Likewise.
7570 (CLASSTYPE_USER_ALIGN): Likewise.
7571 (TYPE_JAVA_INTERFACE): Likewise.
7572 (CLASSTYPE_PURE_VIRTUALS): Likewise.
7573 (CLASSTYPE_NEEDS_VIRTUAL_REINIT): Whitespace and wrap.
7574 (TYPE_HAS_DEFAULT_CONSTRUCTOR): Likewise.
7575 (CLASSTYPE_HAS_MUTABLE): Likewise.
7576 (CLASSTYPE_FRIEND_CLASSES): Likewise. Likewise.
7577 (CLASSTYPE_DECLARED_CLASS): Whitespace and wrap.
7578 (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Likewise.
7579 (CLASSTYPE_REF_FIELDS_NEED_INIT): Likewise.
7580 (CLASSTYPE_INTERFACE_ONLY): Likewise.
7581 (CLASSTYPE_INTERFACE_KNOWN): Likewise.
7582 (CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
7583 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
7584 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
7585 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
7586 (CLASSTYPE_DEBUG_REQUESTED): Whitespace and wrap.
7587 (BINFO_UNSHARED_MARKED): Whitespace.
7588 (BINFO_MARKED): Whitespace and wrap.
7589 (SET_BINFO_MARKED): Likewise.
7590 (CLEAR_BINFO_MARKED): Likewise.
7591 (BINFO_VTABLE_PATH_MARKED): Likewise.
7592 (SET_BINFO_VTABLE_PATH_MARKED): Likewise.
7593 (CLEAR_BINFO_VTABLE_PATH_MARKED): Likewise.
7594 (BINFO_SUBVTT_INDEX): Remove parenthesis.
7595 (BINFO_VPTR_INDEX): Likewise.
7596 (BINFO_PRIMARY_BASE_OF): Likewise,
7597 (CLASSTYPE_VFIELDS): Whitespace.
7598 (VF_DERIVED_VALUE): Wrap long line.
7599 (NAMESPACE_LEVEL): Whitespace.
6bc34b14
JM
7600 (CAN_HAVE_FULL_LANG_DECL_P): Remove parenthesis.
7601 (DEFARG_POINTER): Whitespace.
7602 (DECL_NEEDED_P): Remove parenthesis.
7603 (DECL_LANGUAGE): Whitespace.
7604 (SET_DECL_LANGUAGE): Add parenthesis.
7605 (DECL_CONSTRUCTOR_P): Whitespace and wrap.
7606 (DECL_OVERLOADED_OPERATOR_P): Remove parenthesis.
7607 (DECL_IN_AGGR_P): Whitespace.
7608 (DECL_FRIEND_P): Likewise.
7609 (DECL_BEFRIENDING_CLASSES): Likewise.
7610 (DECL_STATIC_FUNCTION_P): Whitespace and wrap.
7611 (DECL_NONCONVERTING_P): Whitespace.
7612 (DECL_PURE_VIRTUAL_P): Likewise.
7613 (DECL_NEEDS_FINAL_OVERRIDER_P): Likewise.
7614 (DECL_PENDING_INLINE_INFO): Whitespace.
7615 (DECL_SORTED_FIELDS): Likewise.
7616 (DECL_DEFERRED_FN): Likewise.
7617 (DECL_TEMPLATE_INFO): Likewise.
7618 (CLASSTYPE_TEMPLATE_INFO): Whitespace and wrap.
7619 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO); Likewise.
7620 (SET_TYPE_TEMPLATE_INFO): Add parenthesis.
7621 (TMPL_ARGS_LEVEL): Likewise.
7622 (SET_TMPL_ARGS_LEVEL): Likewise.
7623 (INNERMOST_TEMPLATE_PARMS): Whitespace.
7624 (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter.
7625 (INTEGRAL_CODE_P(CODE): Add parenthesis.
7626 (CP_INTEGRAL_TYPE_P): Remove parenthesis.
7627 (TYPE_HAS_CONSTRUCTOR): Whitespace.
7628 (TREE_HAS_CONSTRUCTOR): Likewise.
7629 (TYPE_HAS_DESTRUCTOR): Likewise.
7630 (TYPE_HAS_REAL_ASSIGN_REF): Likewise.
7631 (TYPE_HAS_COMPLEX_ASSIGN_REF): Likewise.
7632 (TYPE_HAS_ABSTRACT_ASSIGN_REF): Likewise.
7633 (TYPE_HAS_COMPLEX_INIT_REF): Likewise.
7634 (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): Likewise.
7635 (TYPE_PTRMEMFUNC_P): Likewise.
7636 (TYPE_PTRMEMFUNC_FLAG): Likewise.
7637 (TYPE_GET_PTRMEMFUNC_TYPE): Likewise.
7638 (TYPE_SET_PTRMEMFUNC_TYPE): Likewise.
7639 (TYPE_PTRMEM_CLASS_TYPE): Remove parenthesis.
7640 (TYPE_PTRMEM_POINTED_TO_TYPE): Likewise.
7641 (DECL_ACCESS): Whitespace.
7642 (DECL_GLOBAL_CTOR_P): Remove parenthesis.
7643 (DECL_GLOBAL_DTOR_P): Likewise.
7644 (GLOBAL_INIT_PRIORITY): Likewise.
98e40e83 7645 (DECL_TEMPLATE_PARMS): Likewise.
6bc34b14
JM
7646 (DECL_TEMPLATE_RESULT): Likewise.
7647 (DECL_TEMPLATE_INSTANTIATIONS): Likewise.
7648 (DECL_TEMPLATE_SPECIALIZATIONS): Likewise.
7649 (DECL_IMPLICIT_TYPEDEF_P): Remove parenthesis.
7650 (SET_DECL_IMPLICIT_TYPEDEF_P): Likewise.
7651 (PRIMARY_TEMPLATE_P): Add parenthesis.
7652 (DECL_USE_TEMPLATE): Whitespace.
7653 (CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise.
7654 (SET_CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise.
7655 (CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise.
7656 (SET_CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise.
7657 (CALL_DECLARATOR_PARMS): Remove parenthesis.
7658 (CALL_DECLARATOR_QUALS): Likewise.
7659 (CALL_DECLARATOR_EXCEPTION_SPEC): Likewise.
7660 (TEMP_NAME_P): Wrap.
7661 (VFIELD_NAME_P): Likewise.
7662 (B_SET): Uppercase macro parameters and add parenthesis.
7663 (B_CLR): Likewise.
7664 (B_TST): Likewise.
7665 (LOOKUP_NAMESPACES_ONLY): Uppercase macro parameters.
7666 (LOOKUP_TYPES_ONLY): Uppercase macro parameters.
7667 (LOOKUP_QUALIFIERS_ONLY): Uppercase macro parameters.
7668 (same_or_base_type_p): Likewise.
7669 (cp_deprecated): Likewise.
98e40e83 7670
c28abdf0
RH
76712002-01-05 Richard Henderson <rth@redhat.com>
7672
15eb1e43 7673 * semantics.c (expand_body): Revert last change.
c28abdf0 7674
f11ee281
JM
76752002-01-04 Jason Merrill <jason@redhat.com>
7676
195a5def 7677 PR c++/4122
f11ee281
JM
7678 * class.c (update_vtable_entry_for_fn): Set delta to zero for a
7679 lost primary.
7680
7681 * class.c (build_vtbl_initializer): Check for a lost primary
7682 before calculating the vtable entry to throw away.
7683
a4200657
JM
76842002-01-02 Jason Merrill <jason@redhat.com>
7685
7686 * semantics.c (expand_body): Call outlining_inline_function when
7687 emitting an inline function out of line.
7688
40e593d7
NS
76892002-01-02 Nathan Sidwell <nathan@codesourcery.com>
7690
7691 PR c++/5116, c++/764 reversion
7692 * call.c (build_new_op): Revert the instantiations. They are
7693 incorrect.
c588e52b 7694
323728aa
NS
76952002-01-02 Nathan Sidwell <nathan@codesourcery.com>
7696
7697 PR c++/5089
7698 * decl2.c (reparse_absdcl_as_casts): Don't warn about casts to void.
7699
46c895ac
NS
77002002-01-02 Nathan Sidwell <nathan@codesourcery.com>
7701
7702 PR c++/3716
7703 * pt.c (tsubst_aggr_type): Move pmf handling into tsubst.
7704 (tsubst, case POINTER_TYPE): Handle pmfs here.
7705 (tsubst, case OFFSET_TYPE): Check it is not an offset to
7706 reference. If it is offset to FUNCTION_TYPE, create a METHOD_TYPE.
7707
833aa4c4
NS
77082002-01-02 Nathan Sidwell <nathan@codesourcery.com>
7709
7710 PR c++/35
7711 * cp-tree.h (DECL_LANG_FLAG_0): Used for PARM_DECL too.
7712 (DECL_TEMPLATE_PARM_P): A PARM_DECL might be one too.
7713 * pt.c (process_template_parm): SET_DECL_TEMPLATE_PARM_P on the
7714 PARM_DECL.
7715 (tsubst_template_parms): Break up loop statements.
7716 (tsubst_decl, case PARM_DECL): Copy DECL_TEMPLATE_PARM_P. Template
7717 parm PARM_DECLs don't get promoted.
7718
18976b21
NS
77192002-01-02 Nathan Sidwell <nathan@codesourcery.com>
7720
7721 PR c++/5123
7722 * typeck.c (build_component_ref): Cope with a TEMPLATE_ID_EXPR.
7723 (build_x_function_call): Cope with a COMPONENT_REF containing a
7724 TEMPLATE_ID_EXPR.
7725
303d1c55
NS
77262002-01-02 Nathan Sidwell <nathan@codesourcery.com>
7727
7728 PR c++/5213
7729 * pt.c (convert_template_argument): Be more careful determining
7730 when RECORD_TYPE templates are or are not templates.
7731
d46a33b3
NS
77322002-01-02 Nathan Sidwell <nathan@codesourcery.com>
7733
7734 PR c++/775
7735 * cp-tree.h (handle_class_head): Adjust prototype.
7736 * decl2.c (handle_class_head): Add DEFN_P and NEW_TYPE_P
7737 parameters. Use for all class heads.
7738 * parse.y (named_class_head_sans_basetype, named_class_head,
7739 named_complex_class_head_sans_basetype,
7740 named_class_head_sans_basetype_defn,
7741 unnamed_class_head): Remove.
7742 (class_head, class_head_apparent_template): Recognize class heads
7743 (class_head_decl, class_head_defn): New reductions. Process class
7744 heads.
7745 (structsp): Adjust class definition and class declaration
7746 reductions.
7747 (maybe_base_class_list): Give diagnostic on empty list.
7748
4542128e
NS
77492002-01-02 Nathan Sidwell <nathan@codesourcery.com>
7750
7751 PR c++/4379
7752 * typeck.c (build_x_unary_op): Don't destroy the OFFSET_REF on a
7753 single non-static member.
7754 (unary_complex_lvalue): If it cannot be a pointer to member, don't
7755 make it so. Check it is not pointer to reference.
7756
903c6234
NS
77572002-01-02 Nathan Sidwell <nathan@codesourcery.com>
7758
7759 PR c++/5132
7760 * decl2.c (reparse_absdcl_as_casts): Don't digest_init if we
7761 are processing a template decl.
7762
477558bf
NS
77632002-01-02 Nathan Sidwell <nathan@codesourcery.com>
7764
7765 PR c++/5116, c++/764
7766 * call.c (build_new_op): Make sure template class operands are
7767 instantiated. Simplify arglist construction.
7768
41f5d4b1
NS
77692001-12-29 Nathan Sidwell <nathan@codesourcery.com>
7770
7771 * call.c (build_user_type_conversion_1): Use my_friendly_assert
7772 rather than if ... abort.
7773 * cvt.c (convert_to_reference): Likewise.
7774 * semantics.c (setup_vtbl_ptr): Likewise.
7775 * pt.c (lookup_template_class): Comment typo.
c588e52b 7776
f3368a90
NS
77772001-12-29 Nathan Sidwell <nathan@codesourcery.com>
7778
7779 PR c++/5125
7780 * pt.c (push_template_decl_real): Make sure DECL has
7781 DECL_LANG_SPECIFIC.
7782
03c9c274
NS
77832001-12-29 Nathan Sidwell <nathan@codesourcery.com>
7784
7785 PR c++/335
7786 * init.c (resolve_offset_ref): Copy cv qualifiers of this pointer
7787 for non-reference fields.
7788 * typeck.c (require_complete_type): Use resolve_offset_ref).
7789
7d8e8369
NS
77902001-12-26 Nathan Sidwell <nathan@codesourcery.com>
7791
7792 PR c++/196
03c9c274 7793 * parse.y (bad_parm): Better diagnostic when given a SCOPE_REF.
7d8e8369 7794
a56ca899
NS
77952001-12-24 Nathan Sidwell <nathan@codesourcery.com>
7796
7797 PR c++/160
7798 * typeck.c (build_modify_expr): Remove old unreachable code & tidy
7799 up. Don't stabilize_references when initializing a reference.
7800
0b5826ac
KG
78012001-12-23 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
7802
7803 * decl2.c (lang_f_options): Const-ify.
7804
38be19f6
JM
78052001-12-20 Joseph S. Myers <jsm28@cam.ac.uk>
7806
7807 * config-lang.in (diff_excludes): Remove.
7808
2e4cf9dc
NS
78092001-12-19 Nathan Sidwell <nathan@codesourcery.com>
7810
7811 PR c++/90
7812 * typeck.c (build_function_call_real): Use original function
7813 expression for errors.
7814
00e4119c
JM
78152001-12-18 Jason Merrill <jason@redhat.com>
7816
195a5def 7817 PR c++/3242
00e4119c
JM
7818 * class.c (add_method): Do compare 'this' quals when trying to match a
7819 used function. Don't defer to another used function.
7820
3ad97789
NS
78212001-12-18 Nathan Sidwell <nathan@codesourcery.com>
7822
7823 * pt.c (instantiate_clone): Remove, fold into ...
7824 (instantiate_template): ... here. Simplify by removing mutual
7825 recursion.
7826 * typeck2.c (build_m_component_ref): Don't cv qualify the function
7827 pointed to by a pointer to function.
7828 * class.c (delete_duplicate_fields_1): Typo.
7829
f21add07
JM
78302001-12-18 Jason Merrill <jason@redhat.com>
7831
7832 C++ ABI change: destroy value arguments in caller.
7833 * semantics.c (genrtl_start_function, genrtl_finish_function): Don't
7834 create an extra binding level for the parameters.
7835 * decl.c (store_parm_decls): Don't do parameter cleanups.
7836
ea50ad82
NS
78372001-12-18 Nathan Sidwell <nathan@codesourcery.com>
7838
7839 * call.c (build_new_method_call): Use '%#V'.
7840 * error.c (cv_to_string): Use V parameter to determine padding.
7841
3855d0d1
JM
78422001-12-18 Joseph S. Myers <jsm28@cam.ac.uk>
7843
7844 * call.c, decl2.c, init.c: Use "built-in" and "bit-field"
7845 spellings in messages.
7846
33bd39a2
ZW
78472001-12-17 Zack Weinberg <zack@codesourcery.com>
7848
7849 * cp-tree.h: Delete #defines for cp_error, cp_warning,
7850 cp_pedwarn, and cp_compiler_error.
7851 * call.c, class.c, cp-tree.h, cvt.c, decl.c, decl2.c, error.c,
7852 except.c, friend.c, init.c, lex.c, method.c, parse.y, pt.c,
7853 rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c,
7854 typeck2.c: Change calls to the above macros to use their
7855 language-independent equivalents: error, warning, pedwarn, and
7856 internal_error respectively.
7857
317c26c3
NB
78582001-12-16 Neil Booth <neil@daikokuya.demon.co.uk>
7859
7860 * decl2.c (finish_file): Remove back_end_hook.
7861
aba649ba
JM
78622001-12-16 Joseph S. Myers <jsm28@cam.ac.uk>
7863
7864 * ChangeLog.1, ChangeLog.2, ChangeLog, NEWS, call.c, class.c,
7865 cp-tree.h, decl.c, decl2.c, except.c, operators.def, optimize.c,
7866 pt.c, rtti.c, semantics.c, typeck.c: Fix spelling errors.
7867
1737c953
JM
78682001-12-15 Joseph S. Myers <jsm28@cam.ac.uk>
7869
7870 * lang-options.h: Use American spelling in messages.
7871
4a90862e
JM
78722001-12-13 Jason Merrill <jason@redhat.com>
7873
ade3dc07
JM
7874 * Make-lang.in (parse.h): Separate rule, just depend on parse.c.
7875
7876 Use cleanups to run base and member destructors.
7877 * init.c (push_base_cleanups): New function, split out from...
7878 (build_delete): ...here. Lose !TYPE_HAS_DESTRUCTOR code.
7879 * decl.c (finish_destructor_body): Move vbase destruction code to
7880 push_base_cleanups.
7881 (begin_function_body, finish_function_body): New fns.
7882 (finish_function): Move [cd]tor handling and call_poplevel to
7883 finish_function_body.
7884 (pushdecl): Skip the new level.
7885 * semantics.c (genrtl_try_block): Don't call end_protect_partials.
7886 (setup_vtbl_ptr): Call push_base_cleanups.
7887 * method.c (synthesize_method): Call {begin,end}_function_body.
7888 * pt.c (tsubst_expr): Handle COMPOUND_STMT_BODY_BLOCK.
7889 * cp-tree.h: Declare new fns.
7890 * parse.y (function_body, .begin_function_body): New nonterminals.
7891 (fndef, pending_inline, function_try_block): Use function_body.
7892 (ctor_initializer_opt, function_try_block): No longer has a value.
7893 (base_init): Remove .set_base_init token.
7894 (.set_base_init, compstmt_or_error): Remove.
7895 * Make-lang.in (parse.c): Expect two fewer s/r conflicts.
7896
4a90862e
JM
7897 * optimize.c (maybe_clone_body): Fix parameter updating.
7898
a0de9d20
JM
78992001-12-12 Jason Merrill <jason@redhat.com>
7900
7901 * decl.c (store_parm_decls): Remove parms_have_cleanups cruft.
7902 * semantics.c (genrtl_start_function): Don't pass
7903 parms_have_cleanups or push an extra binding level.
7904 (genrtl_finish_function): Lose cleanup_label cruft.
7905
7906 * cp-tree.h (struct cp_language_function): Remove x_ctor_label.
7907 (ctor_label): Remove.
7908 * semantics.c (finish_return_stmt): Lose ctor_label support.
7909 * decl.c (finish_constructor_body, mark_lang_function): Likewise.
33bd39a2 7910 * typeck.c (check_return_expr): Check DECL_DESTRUCTOR_P, not
a0de9d20
JM
7911 dtor_label.
7912
7913 * call.c (build_new_method_call): Let resolves_to_fixed_type_p
7914 check for [cd]tors.
7915 * class.c (fixed_type_or_null, case INDIRECT_REF): Fix.
7916
7917 * decl.c (finish_function): Check VMS_TARGET, not VMS.
7918
7919 * decl.c (start_cleanup_fn): Remove redundant pushlevel.
7920 (end_cleanup_fn): And poplevel.
7921
7922 * semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER
7923 if we're in a template.
7924
dc5c569a
JJ
79252001-12-12 Jakub Jelinek <jakub@redhat.com>
7926
7927 * cp-tree.h (DESTRUCTOR_DECL_PREFIX, DESTRUCTOR_NAME_P,
7928 ANON_PARMNAME_FORMAT, ANON_PARMNAME_P, DESTRUCTOR_NAME_FORMAT,
7929 THIS_NAME_P): Delete.
7930 * spew.c (read_process_identifier): Remove DESTRUCTOR_NAME_P,
7931 THIS_NAME_P and ANON_PARMNAME_P tests from warning about clash
7932 with internal naming scheme.
7933 * error.c (dump_decl): Remove DESTRUCTOR_NAME_P use.
7934
ad1a6d45
NS
79352001-12-12 Nathan Sidwell <nathan@codesourcery.com>
7936
7937 * decl.c (grokdeclarator): Deprecated implicit typename use.
7938
270d8c65
NS
79392001-12-11 Nathan Sidwell <nathan@codesourcery.com>
7940
7941 PR g++/51
7942 * parse.y (frob_specs): Indicate it is a language linkage which
7943 contained the extern.
7944 * decl.c (grokdeclarator): Allow extern language linkage with
7945 other specifiers.
7946
9aaceb4b
NS
79472001-12-10 Nathan Sidwell <nathan@codesourcery.com>
7948
7949 PR g++/72
7950 * decl.c (add_binding): Don't reject duplicate typedefs involving
7951 template parameters.
7952
a23c9413
NB
79532001-12-10 Neil Booth <neil@daikokuya.demon.co.uk>
7954
7955 * parse.y, semantics.c: Similarly.
7956
9aaceb4b 79572001-12-09 Nathan Sidwell <nathan@codesourcery.com>
271e6f02
NS
7958
7959 PR g++/87
7960 * cp-tree.h (DECL_COPY_CONSTRUCTOR_P): Use copy_fn_p.
7961 (copy_args_p): Rename to ...
7962 (copy_fn_p): ... here.
7963 (grok_special_member_properties): New function.
7964 (grok_op_properties): Lose VIRTUALP parameter.
7965 (copy_assignment_arg_p): Remove.
7966 * call.c (build_over_call): Use copy_fn_p.
7967 * decl.c (grokfndecl): Reformat. Adjust call to
7968 grok_op_properties.
7969 (copy_args_p): Rename to ...
7970 (copy_fn_p): ... here. Reject template functions. Check for pass
7971 by value.
7972 (grok_special_member_properties): Remember special functions.
7973 (grok_ctor_properties): Don't remember them here, just check.
7974 (grok_op_properties): Likewise.
7975 (start_method): Call grok_special_member_properties.
7976 * decl2.c (grokfield): Likewise.
7977 (copy_assignment_arg_p): Remove.
7978 (grok_function_init): Don't remember abstract assignment here.
7979 * pt.c (instantiate_class_template): Call
7980 grok_special_member_properties.
7981 (tsubst_decl): Adjust grok_op_properties call.
7982
bdd8737f
AH
79832001-12-08 Aldy Hernandez <aldyh@redhat.com>
7984
33bd39a2
ZW
7985 * lex.c (rid_to_yy): Add RID_CHOOSE_EXPR and
7986 RID_TYPES_COMPATIBLE_P.
bdd8737f 7987
46af705a
JDA
79882001-12-08 John David Anglin <dave@hiauly1.hia.nrc.ca>
7989
7990 * semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in
7991 call to build_aggr_init.
7992 * cp-tree.h (DIRECT_BIND): Document new use of DIRECT_BIND.
7993
cb97d97d
NB
79942001-12-08 Neil Booth <neil@daikokuya.demon.co.uk>
7995
7996 * parse.y: Replace uses of the string non-terminal with STRING.
7997 Don't perform string concatentaion here.
7998 (string): Remove non-terminal.
7999 * semantics.c (finish_asm_stmt): Don't concatenate strings here.
8000
742a37d5
JM
80012001-12-05 Jason Merrill <jason@redhat.com>
8002
8003 * cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define.
8004 (LANG_HOOKS_TREE_INLINING_END_INLINING): Define.
8005 * tree.c (cp_start_inlining, cp_end_inlining): New fns.
8006 * pt.c (push_tinst_level): No longer static.
8007 * cp-tree.h: Declare them.
8008
8009 * init.c (resolve_offset_ref): Don't check access for the base
8010 conversion to access a FIELD_DECL.
8011
8012 * cp-tree.h (TYPE_REFFN_P): New macro.
8013 * decl.c (bad_specifiers): Check it, too.
8014
8015 * rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY
8016 on the __*_type_info type if we haven't seen a definition.
8017
26f943fd
NB
80182001-12-05 Neil Booth <neil@daikokuya.demon.co.uk>
8019
8020 * decl.c: Include c-common.h.
8021 (shadow_warning): Move to c-common.c.
8022
d2a6f3c0 80232001-12-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
37a08a29
RK
8024
8025 * decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE.
8026
9471d3e2
NS
80272001-12-04 Nathan Sidwell <nathan@codesourcery.com>
8028
8029 * pt.c (end_template_parm_list): Clear TREE_CHAIN of each parm.
8030
713ccd0c
NS
80312001-12-04 Nathan Sidwell <nathan@codesourcery.com>
8032
8033 PR g++/164
8034 * init.c (sort_base_init): Allow binfos to be directly specified.
8035 * method.c (do_build_copy_constructor): Explicitly convert to the
8036 base instance.
8037 (do_build_assign_ref): Likewise.
8038
591382c4
HPN
80392001-12-03 Hans-Peter Nilsson <hp@bitrange.com>
8040
8041 * decl.c (xref_basetypes): Don't use C99 construct in tag_code
8042 declaration and initialization.
8043
c725bd79
NB
80442001-12-03 Neil Booth <neil@daikokuya.demon.co.uk>
8045
8046 * typeck2.c: Remove leading capital from diagnostic messages, as
8047 per GNU coding standards.
8048
a5d7c4a3
MK
80492001-12-03 Mumit Khan <khan@nanotech.wisc.edu>
8050
8051 PR c++/3394
9fe038e8
HPN
8052 * decl.c (xref_basetypes): Handle attributes between
8053 'class' and name.
a5d7c4a3 8054
f1880e13
NS
80552001-12-03 Nathan Sidwell <nathan@codesourcery.com>
8056
8057 PR g++/3381
8058 * parse.y (named_complex_class_head_sans_basetype): Add new
8059 reduction.
8060 * Make-lang.in (parse.c): Adjust expected conflict count.
8061
ff668506
JM
80622001-12-03 Jason Merrill <jason@redhat.com>
8063
8064 * class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the
8065 immediate binfos for our virtual bases.
8066
1f978f5f
NB
80672001-12-02 Neil Booth <neil@daikokuya.demon.co.uk>
8068
8069 * call.c (build_java_interface_fn_ref): Similarly.
8070 * except.c (is_admissible_throw_operand): Similarly.
8071 * init.c (build_java_class_ref): Similarly.
8072 * xref.c (open_xref_file): Similarly.
8073
357351e5
NB
80742001-12-01 Neil Booth <neil@daikokuya.demon.co.uk>
8075
8076 * class.c (finish_struct): Remove trailing periods from messages.
8077 * decl.c (check_tag_decl): Similarly.
8078 * lex.c (cxx_set_yydebug): Similarly.
8079 * typeck2.c (friendly_abort): Similarly.
8080
998979e6
MM
80812001-11-29 Mark Mitchell <mark@codesourcery.com>
8082
8083 PR c++/3048
8084 * cp-tree.h (ovl_member): Remove.
33bd39a2 8085 * decl2.c (merge_functions): Handle extern "C" functions
998979e6
MM
8086 specially.
8087 * tree.c (ovl_member): Remove.
8088
7d5b8b11
MM
80892001-11-29 Mark Mitchell <mark@codesourcery.com>
8090
8091 PR c++/4842
8092 * class.c (get_basefndecls): Take an IDENTIFIER_NODE, not a
8093 FUNCTION_DECL, as input.
8094 (mark_overriders): Remove.
8095 (warn_hidden): Rework for the new ABI.
8096
b67db529
MM
80972001-11-29 Mark Mitchell <mark@codesourcery.com>
8098
8099 PR c++/3471
8100 * call.c (convert_like_real): Do not build additional temporaries
8101 for rvalues of class type.
8102
2db1ab2d
NS
81032001-11-28 Nathan Sidwell <nathan@codesourcery.com>
8104
8105 * cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base.
8106 (ACCESSIBLY_UNIQUELY_DERIVED_FROM_P): Likewise.
8107 (PUBLICLY_UNIQUELY_DERIVED_FROM_P: Likewise.
8108 (DERIVED_FROM_P): Likewise.
8109 (enum base_access): Renumber, add ba_quiet bit mask.
8110 (get_binfo): Remove.
8111 (get_base_distance): Remove.
8112 (binfo_value): Remove.
8113 (ACCESSIBLY_DERIVED_FROM_P): Remove.
8114 * call.c (standard_conversion): Use lookup_base.
8115 * class.c (strictly_overrides): Likewise.
8116 (layout_virtual_bases): Likewise.
8117 (warn_about_ambiguous_direct_bases): Likewise.
8118 (is_base_of_enclosing_class): Likewise.
8119 (add_vcall_offset_vtbl_entries_1): Likewise.
8120 * cvt.c (build_up_reference): Adjust comment.
8121 * init.c (build_member_call): Reformat.
8122 * search.c (get_binfo): Remove.
8123 (get_base_distance_recursive): Remove.
8124 (get_base_distance): Remove.
8125 (lookup_base_r): Tweak.
8126 (lookup_base): Add ba_quiet control. Complete the types here.
8127 (covariant_return_p): Use lookup_base.
8128 * tree.c (binfo_value): Remove.
8129 (maybe_dummy_object): Use lookup_base.
8130 * typeck.c (build_static_cast): Use lookup_base.
8131 (get_delta_difference): Likewise.
8132 * typeck2.c (binfo_or_else): Use lookup_base.
8133 (build_scoped_ref): Add back error_mark_check.
8134 (build_m_component_ref): Use lookup_base.
8135
d3945f0a
JM
81362001-11-29 Joseph S. Myers <jsm28@cam.ac.uk>
8137
8138 * Make-lang.in (c++.generated-manpages): New dummy target.
8139
d2a6f3c0 81402001-11-27 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
ac79cd5a
RK
8141
8142 * Make-lang.in (cp-lang.o): Depends on c-common.h.
8143 * cp-lang.c (c-common.h): Include.
8144 (LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks.
8145 * decl.c (cxx_init_decl_processing): Don't set lang_safe_from_p.
8146 * expr.c (init_cplus_expand): Don't set lang_expand_constant.
8147
4d6baafa
NB
81482001-11-26 Neil Booth <neil@daikokuya.demon.co.uk>
8149
8150 * decl2.c (c_language): Move to c-common.c.
8151 * lex.c (cxx_post_options, cxx_init_options): Use c-common.c
8152 functions.
8153 (cxx_init): Update.
8154
5b0c5896
JM
81552001-11-26 Jason Merrill <jason@redhat.com>
8156
8157 * call.c (joust): Remove COND_EXPR hack.
8158
4bdd26e6
AH
81592001-11-25 Aldy Hernandez <aldyh@redhat.com>
8160
195a5def 8161 * search.c (lookup_base_r): Declare bk in variable declaration
4bdd26e6 8162 space.
33bd39a2 8163
338d90b8
NS
81642001-11-25 Nathan Sidwell <nathan@codesourcery.com>
8165
8166 PR g++/3145
8167 * class.c (build_vbase_pointer): Remove.
8168 (build_vbase_path): Remove.
8169 (build_base_path): New function.
8170 * cp-tree.h (base_access, base_kind): New enumerations.
8171 (build_base_path): Declare.
8172 (convert_pointer_to_real): Remove.
8173 (convert_pointer_to): Remove.
8174 (lookup_base): Declare.
8175 (convert_pointer_to_vbase): Remove.
8176 * call.c (build_scoped_method_call): Use lookup_base &
8177 build_base_path instead of convert_pointer_to_real,
8178 get_base_distance & get_binfo.
8179 (build_over_call): Likewise.
8180 * cvt.c (cp_convert_to_pointer): Likewise.
8181 (convert_to_pointer_force): Likewise.
8182 (build_up_reference): Likewise.
8183 (convert_pointer_to_real): Remove.
8184 (convert_pointer_to): Remove.
8185 * init.c (dfs_initialize_vtbl_ptrs): Use build_base_path
8186 instead of convert_pointer_to_vbase & build_vbase_path.
8187 (emit_base_init): Use build_base_path instead of
8188 convert_pointer_to_real.
8189 (expand_virtual_init): Lose unrequired conversions.
8190 (resolve_offset_ref): Use lookup_base and build_base_path
8191 instead of convert_pointer_to.
8192 * rtti.c (build_dynamic_cast_1): Use lookup_base &
8193 build_base_path instead of get_base_distance & build_vbase_path.
8194 * search.c (get_vbase_1): Remove.
8195 (get_vbase): Remove.
8196 (convert_pointer_to_vbase): Remove.
07f521fc 8197 (lookup_base_r): New function.
338d90b8
NS
8198 (lookup_base): New function.
8199 * typeck.c (require_complete_type): Use lookup_base &
8200 build_base_path instead of convert_pointer_to.
8201 (build_component_ref): Likewise.
8202 (build_x_function_call): Likewise.
8203 (get_member_function_from_ptrfunc): Likewise.
8204 (build_component_addr): Likewise.
8205 * typeck2.c (build_scoped_ref): Likewise.
8206
89d684bb
BM
82072001-11-22 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
8208
8209 * cp-tree.h (CP_TYPE_QUALS): Removed.
8210 * decl.c (cxx_init_decl_processing): Don't set lang_dump_tree.
33bd39a2 8211 * cp-lang.c: Set LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN and
89d684bb 8212 LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN.
33bd39a2 8213 * dump.c (cp_dump_tree): Use void* dump_info argument to match
89d684bb
BM
8214 lang-hooks prototype.
8215 * call.c, cp-tree.h, cvt.c, decl.c, init.c, mangle.c, method.c, pt.c,
8216 rtti.c, semantics.c, tree.c, typeck.c, typeck2.c: All references to
8217 CP_TYPE_QUALS changed to cp_type_quals.
8218 * Make-lang.in: References to c-dump.h changed to tree-dump.h.
8219 (CXX_C_OBJS): Remove c-dump.o.
8220
12eb9f93 82212001-11-21 Mark Mitchell <mark@codesourcery.com>
2d2e8123
MM
8222
8223 PR c++/3637
12eb9f93
MM
8224 * pt.c (lookup_template_class): Ensure that all specializations
8225 are registered on the list corresponding to the most general
8226 template.
8227
82282001-11-20 Mark Mitchell <mark@codesourcery.com>
8229
2d2e8123 8230 * call.c (non_reference): Add documentation.
33bd39a2 8231 (convert_class_to_reference): Do not strip reference types
2d2e8123
MM
8232 from conversion operators.
8233 (maybe_handle_ref_bind): Simplify.
8234 (compare_ics): Correct handling of references.
8235
78a40378
MM
82362001-11-19 John Wilkinson <johnw@research.att.com>
8237
8238 * dump.c (dump_op): New function.
8239 (cp_dump_tree): Dump CLASSTYPE_TEMPLATE_SPECIALIZATION. Use
8240 dump_op. Dump DECL_MUTABLE, access and staticness for VAR_DECLs.
8241 DECL_PURE_VIRTUAL_P, DECL_VIRTUAL_P,
33bd39a2 8242
78a40378
MM
82432001-11-19 Mark Mitchell <mark@codesourcery.com>
8244
8245 PR4629
8246 * semantics.c (finish_sizeof): Make sure that expression created
8247 while processing a template do not have a type.
8248 (finish_alignof): Likewise.
8249 * typeck.c (c_sizeof): Likewise.
8250 (expr_sizeof): Likewise.
8251
22703ccc
NB
82522001-11-18 Neil Booth <neil@daikokuya.demon.co.uk>
8253
8254 * lex.c (cxx_finish): Call c_common_finish.
8255 (finish_parse): Remove.
8256
b3faacfd
KL
82572001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
8258
8259 * decl.c (create_array_type_for_decl): Check if NAME is NULL_TREE
8260 when displaying error message about missing array bounds.
8261
873ff987
KL
82622001-11-17 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
8263
8264 * mangle.c (write_expression): Handle CAST_EXPR, STATIC_CAST_EXPR,
8265 CONST_CAST_EXPR.
8266 * operators.def: Add CAST_EXPR, STATIC_CAST_EXPR, CONST_CAST_EXPR.
8267
08f3a861
NB
82682001-11-16 Neil Booth <neil@daikokuya.demon.co.uk>
8269
8270 * cp-tree.h (print_class_statistics): Restore.
8271
8a2b77e7
JM
82722001-11-15 Jason Merrill <jason@redhat.com>
8273
3b1a4132
JM
8274 * method.c (use_thunk): Don't emit debugging information for thunks.
8275
8a2b77e7
JM
8276 * parse.y: Add ... IDENTIFIER SCOPE and ... PTYPENAME SCOPE expansions.
8277 * decl.c (make_typename_type): Handle getting a class template.
8278 * search.c (lookup_field_r): A class template is good enough for
8279 want_type.
8280
8281 * call.c (convert_like_real): Only use cp_convert for the bad part.
8282 (standard_conversion): Also allow bad int->enum.
8283 * typeck.c (ptr_reasonably_similar): Also allow functions to
8284 interconvert. Pointers to same-size integers are reasonably
8285 similar.
8286
8287 * cvt.c (convert_to_void): If we build a new COND_EXPR, always
8288 give it void type.
8289
36a68fe7
NS
82902001-11-15 Nathan Sidwell <nathan@codesourcery.com>
8291
8292 PR g++/3154
8293 * init.c (sort_base_init): Remove unreachable code.
8294 (expand_member_init): Adjust comment to reflect reality. Simplify
8295 and remove unreachable code.
8296
f5e99456
NB
82972001-11-15 Neil Booth <neil@daikokuya.demon.co.uk>
8298
8299 * cp-tree.h (init_reswords, cxx_init_decl_processing): New.
8300 (cxx_init): Update prototype.
8301 * decl.c (init_decl_processing): Rename. Move null node init
8302 to its creation time.
8303 * lex.c (cxx_init_options): Update.
8304 (cxx_init): Combine with old init_parse; also call
8305 cxx_init_decl_processing.
8306
fe5b6c1c
RS
83072001-11-14 Richard Sandiford <rsandifo@redhat.com>
8308
8a2b77e7
JM
8309 * decl.c (check_initializer): Try to complete the type of an
8310 array element before checking whether it's complete. Don't
8311 complain about arrays with complete element types but an
8312 unknown size.
8313 (cp_finish_decl): Build the hierarchical constructor before
8314 calling maybe_deduce_size_from_array_init.
fe5b6c1c 8315
77bd67cb
JM
83162001-11-14 Joseph S. Myers <jsm28@cam.ac.uk>
8317
8318 * Make-lang.in: Change all uses of $(manext) to $(man1ext).
8319
b02922a4
NS
83202001-11-13 Nathan Sidwell <nathan@codesourcery.com>
8321
8322 PR g++/4206
8323 * parse.y (already_scoped_stmt): Remove.
8324 (simple_stmt, WHILE & FOR): Use implicitly_scoped_stmt.
8325
abfc1ef6
L
83262001-11-12 H.J. Lu <hjl@gnu.org>
8327
195a5def 8328 * cvt.c (ocp_convert): Don't warn the address of a weak
abfc1ef6
L
8329 function is always `true'.
8330
5d69f816
NB
83312001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
8332
8333 * cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE,
8334 LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE,
8335 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override.
8336 * cp-tree.h (print_class_statistics): Remove.
8337 (cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type,
8338 cxx_print_identifier, cxx_set_yydebug): New.
8339 * lex.c (set_yydebug): Rename c_set_yydebug.
8340 * ptree.c (print_lang_decl, print_lang_type, print_lang_identifier,
8341 lang_print_xnode): Rename.
8342 * tree.c (print_lang_statistics): Rename.
8343
4fdc14ca
KG
83442001-11-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8345
8346 * class.c (dump_array): Fix format specifier warning.
8347
3ac88239
NB
83482001-11-09 Neil Booth <neil@daikokuya.demon.co.uk>
8349
8350 * cp-lang.c (LANG_HOOKS_NAME): Override.
8351 (struct lang_hooks): Constify.
8352 * lex.c (cxx_init_options): Update.
8353 (lang_identify): Remove.
33bd39a2 8354 * parse.y (language_string): Remove.
3ac88239 8355
b21d216c
AF
83562001-11-08 Andreas Franck <afranck@gmx.de>
8357
8358 * Make-lang.in (CXX_INSTALL_NAME, GXX_CROSS_NAME,
8359 DEMANGLER_CROSS_NAME): Handle program_transform_name the way
8360 suggested by autoconf.
8361 (GXX_TARGET_INSTALL_NAME, CXX_TARGET_INSTALL_NAME): Define.
8362 (c++.install-common): Use the transformed target alias names.
8363
d23c55c2
NB
83642001-11-06 Neil Booth <neil@cat.daikokuya.demon.co.uk>
8365
8366 * Make-lang.in: Update.
8367 * cp-lang.c: Include langhooks-def.h.
8368
2a2b1d56
KL
83692001-11-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
8370
8371 * pt.c (tsubst_copy): Call tsubst for TYPEOF_EXPR.
8372
76648a8b
KG
83732001-11-03 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8374
8375 * lex.c (copy_lang_type): Add static prototype.
8376
fccef71e
KL
83772001-11-02 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
8378
8379 * pt.c (unify): Handle SCOPE_REF.
8380
19989812
JJ
83812001-11-01 Jakub Jelinek <jakub@redhat.com>
8382
8383 * tree.c (cp_copy_res_decl_for_inlining): Adjust
8384 DECL_ABSTRACT_ORIGIN for the return variable.
8385
5b7874aa
ZW
83862001-10-31 Zack Weinberg <zack@codesourcery.com>
8387
8388 * Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
8389
306ef644
JM
83902001-10-28 Joseph S. Myers <jsm28@cam.ac.uk>
8391
8392 * ChangeLog.1, ChangeLog.2, ChangeLog, class.c, decl2.c, search.c,
8393 semantics.c, spew.c: Fix spelling errors.
8394
76543000
KL
83952001-10-27 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
8396
8397 * decl2.c (validate_nonmember_using_decl): Handle NAMESPACE_DECL.
8398
37207ee7
ZW
83992001-10-25 Zack Weinberg <zack@codesourcery.com>
8400
8401 * cp-lang.c: Redefine LANG_HOOKS_CLEAR_BINDING_STACK to
8402 pop_everything.
8403
d2a6f3c0 84042001-10-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
8ac61af7
RK
8405
8406 * cp-lang.c (cxx_get_alias_set): New function.
8407 Point LANG_HOOKS_GET_ALIAS_SET to it.
8408
f1e09fa2 84092001-10-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
b8c6534b
KL
8410
8411 * cp-tree.def (UNBOUND_CLASS_TEMPLATE): New tree node.
8412 * cp-tree.h (make_unbound_class_template): Prototype new function.
8413 * decl.c (make_unbound_class_template): New function.
8414 * decl2.c (arg_assoc_template_arg): Handle UNBOUND_CLASS_TEMPLATE.
8415 * error.c (dump_type): Likewise.
8416 * mangle.c (write_type): Likewise.
8417 * parse.y (template_parm): Likewise.
8418 (template_argument): Use make_unbound_class_template.
8419 * pt.c (convert_template_argument): Handle UNBOUND_CLASS_TEMPLATE.
8420 (tsubst): Likewise.
8421 (tsubst_copy): Likewise.
8422 (unify): Likewise.
8423 * tree.c (walk_tree): Likewise.
8424 * typeck.c (comptypes): Likewise.
8425
0df6c2c7
KG
84262001-10-21 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8427
8428 * xref.c (GNU_xref_member): Use safe-ctype macros and/or fold
8429 extra calls into fewer ones.
8430
97055d5c
AO
84312001-10-18 Alexandre Oliva <aoliva@redhat.com>
8432
8433 * decl.c (duplicate_decls): Propagate DECL_UNINLINABLE.
8434 Warn when merging inline with attribute noinline.
8435 (start_decl, start_function): Warn if inline and attribute
8436 noinline appear in the same declaration.
8437
b5823a44
L
84382001-10-16 H.J. Lu <hjl@gnu.org>
8439
8440 * cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Defined
8441 for tree checking disabled.
8442
dc8ad298
HPN
84432001-10-16 Hans-Peter Nilsson <hp@axis.com>
8444
8445 * cp-tree.h (VFIELD_NAME_FORMAT) [NO_DOLLAR_IN_LABEL &&
8446 NO_DOT_IN_LABEL]: Adjust to match VFIELD_NAME.
8447
d9f818d9
RS
84482001-10-15 Richard Sandiford <rsandifo@redhat.com>
8449
8450 * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Define.
8451 (unify): Only handle MINUS_EXPR specially if the above flag is set
8452 and the subtracted constant is 1. Clear the flag on recursive calls.
8453 Set it when unifying the maximum value in an INTEGER_TYPE's range.
8454
e1be26f4
RS
84552001-10-15 Richard Sandiford <rsandifo@redhat.com>
8456
8457 * decl.c (bad_specifiers): Don't allow exception specifications
8458 on any typedefs.
8459
a5da89c6
NB
84602001-10-14 Neil Booth <neil@daikokuya.demon.co.uk>
8461
8462 * cp/lex.c (init_cp_pragma): Similarly.
8463
4f96ff63
KL
84642001-10-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
8465
8466 * pt.c (lookup_template_class): Build complete template arguments
8467 for BOUND_TEMPLATE_TEMPLATE_PARM.
8468
11e74ea6
KL
84692001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
8470
8471 * cp-tree.h (TYPE_BINFO): Update comment.
8472 (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): New macro.
8473 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Use template_info.
8474 (TYPENAME_TYPE_FULLNAME): Use TYPE_FIELDS.
8475 (copy_type): Prototype new function.
8476 * lex.c (copy_lang_decl): Gather tree node statistics.
8477 (copy_lang_type): New function.
8478 (copy_type): Likewise.
8479 (cp_make_lang_type): Create lang_type for
8480 BOUND_TEMPLATE_TEMPLATE_PARM. Set TYPE_BINFO for TYPENAME_TYPE
8481 and BOUND_TEMPLATE_TEMPLATE_PARM.
8482 * pt.c (tsubst): Use copy_type instead of copy_node.
8483 * search.c (lookup_field_1): Ignore TYPENAME_TYPE.
8484
f5d47abd
KL
84852001-10-12 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
8486
8487 * pt.c (determine_specialization): Ignore functions without
8488 DECL_TEMPLATE_INFO.
8489
e60505a5
NS
84902001-10-12 Nathan Sidwell <nathan@codesourcery.com>
8491
8492 PR g++/4476
8493 * typeck2.c (abstract_virtuals_error): Ignore incomplete classes.
8494
6f32162a
JM
84952001-10-11 Jason Merrill <jason_merrill@redhat.com>
8496
8497 * typeck2.c (store_init_value): Don't re-digest a bracketed
8498 initializer.
8499
8500 * class.c (finish_struct_anon): Use TYPE_ANONYMOUS_P instead of
8501 ANON_AGGR_TYPE_P.
8502
4a8d0c9c
RH
85032001-10-11 Richard Henderson <rth@redhat.com>
8504
8505 * class.c (build_vtable_entry_ref): Create a VTABLE_REF instead
8506 of an asm statement.
8507 (build_vtbl_ref_1): Split out from build_vtbl_ref.
8508 (build_vfn_ref): Use it to handle vtable descriptors before
8509 calling build_vtable_entry_ref.
8510 * decl2.c (output_vtable_inherit): Use assemble_vtable_inherit.
8511
84b72302
RH
85122001-10-10 Richard Henderson <rth@redhat.com>
8513
37207ee7 8514 * parse.y (asm_operand): Allow named operands.
84b72302 8515 * semantics.c (finish_asm_stmt): Tweek for changed location
4639c5c6 8516 of the operand constraint.
84b72302 8517
48c8b0be 85182001-10-09 Jason Merrill <jason_merrill@redhat.com>
72a08131
JM
8519
8520 * call.c (standard_conversion): Add bad conversion between
8521 integers and pointers.
8522 (convert_like_real): Don't use convert_for_initialization for bad
8523 conversions; complain here and use cp_convert.
8524 (build_over_call): Don't handle bad conversions specially.
8525 (perform_implicit_conversion): Allow bad conversions.
8526 (can_convert_arg_bad): New fn.
8527 * cp-tree.h: Declare it.
8528 * typeck.c (convert_for_assignment): Use it.
8529 (ptr_reasonably_similar): Any target type is similar to void.
8530
19551f29
AO
85312001-10-08 Alexandre Oliva <aoliva@redhat.com>
8532
8533 * Make-lang.in (CXX_OBJS): Added cp-lang.o.
8534 (cp/cp-lang.o): New rule.
8535 * cp-tree.h: Declare hooks.
8536 * tree.c: Make hooks non-static.
8537 (init_tree): Don't initialize hooks here.
8538 * lex.c: Likewise. Move definition of lang_hooks to...
8539 * cp-lang.c: ... new file.
8540
31ed8fea
RH
85412001-10-08 Richard Henderson <rth@redhat.com>
8542
8543 * cp-tree.h (struct lang_decl_flags): Remove declared_inline.
8544 (DECL_DECLARED_INLINE_P): Use the bit in struct c_lang_decl.
8545
8b60264b
KG
85462001-10-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8547
8548 * class.c (build_vtable_entry_ref): Const-ify.
8549 * decl.c (predefined_identifier,
37207ee7 8550 initialize_predefined_identifiers): Likewise.
8b60264b
KG
8551 * init.c (build_new_1): Likewise.
8552 * lex.c (cplus_tree_code_type, cplus_tree_code_length, resword):
8553 Likewise.
8554
bc4c7159
AO
85552001-10-05 Alexandre Oliva <aoliva@redhat.com>
8556
8557 * optimize.c (struct inline_data): Moved to ../tree-inline.c.
8558 (INSNS_PER_STMT): Likewise.
8559 (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
8560 (copy_body, initialize_inlined_parameters): Likewise.
8561 (declare_return_variable, inlinable_function_p): Likewise.
8562 (expand_call_inline, expand_calls_inline): Likewise.
8563 (optimize_inline_calls, clone_body): Likewise.
8564 * tree.c (walk_tree): Moved to ../tree-inline.c.
8565 (walk_tree_without_duplicates): Likewise.
8566 (copy_tree_r, remap_save_expr): Likewise.
8567
25af8512
AO
85682001-10-04 Alexandre Oliva <aoliva@redhat.com>
8569
8570 * Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h.
8571 (cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise.
8572 * cp-tree.h (lang_decl): Moved inlined_fns to tree_decl.
8573 (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h.
8574 (flag_inline_trees): Moved declaration to ../tree-inline.h.
8575 (walk_tree): Moved declaration to ../tree-inline.h.
8576 (walk_tree_without_duplicates, copy_tree_r): Likewise.
8577 (remap_save_expr): Likewise.
8578 * decl.c: Include tree-inline.h.
8579 (lang_mark_tree): Don't mark inlined_fns.
8580 * decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c.
8581 * optimize.c: Include tree-inline.h.
8582 (optimize_inline_calls): Move declaration to ../tree.h, as
8583 non-static.
8584 (remap_decl): Use language-independent constructs and hooks.
8585 (remap_block, copy_body_r, declare_return_variable): Likewise.
8586 (inlinable_function_p): Likewise. Don't test for
8587 DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is
8588 no longer language-specific.
8589 (optimize_inline_calls): Likewise. Make it non-static. Moved
8590 call of dump_function to...
8591 (optimize_function): Here...
8592 (clone_body): New function, extracted from...
8593 (maybe_clone_body): ... here. Build decl_map locally and pass
8594 it on to clone_body.
8595 * pt.c, semantics.c: Include tree-inline.h.
8596 * tree.c: Likewise.
8597 (cp_walk_subtrees): New language-specific hook for tree inlining.
8598 (cp_cannot_inline_tree_fn, cp_add_pending_fn_decls,
8599 cp_is_overload_p, cp_auto_var_in_fn_p,
8600 cp_copy_res_decl_for_inlining): Likewise.
8601 (walk_tree): Move language-specific constructs into...
8602 (cp_walk_subtrees): this new function.
8603 (copy_tree_r): Use language-independent constructs and hooks.
8604 (init_tree): Initialize tree inlining hooks.
8605 (remap_save_expr): Adjust prototype so that the declaration
8606 does not require the definition of splay_tree.
8607
6a4af81f
JDA
86082001-10-03 John David Anglin <dave@hiauly1.hia.nrc.ca>
8609
8610 * rtti.c (get_tinfo_decl): Call typeinfo_in_lib_p with the type used
8611 to build the declaration instead of the declaration itself.
8612
0caee1c6
JM
86132001-10-02 Jason Merrill <jason_merrill@redhat.com>
8614
48c8b0be
JM
8615 * decl2.c (cxx_decode_option): Add 'else'.
8616
0caee1c6
JM
8617 * spew.c (end_input): No longer static.
8618 * cp-tree.h: Declare it.
8619 * parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion.
8620
80a497e4
JM
86212001-10-02 Joseph S. Myers <jsm28@cam.ac.uk>
8622
8623 * call.c (build_over_call), typeck.c (build_function_call_real):
8624 Pass type attributes to check_function_format rather than name or
8625 assembler name. Don't require there to be a name or assembler
8626 name to check formats.
8627
6431177a
JM
86282001-10-02 Joseph S. Myers <jsm28@cam.ac.uk>
8629
8630 * decl.c (init_decl_processing): Don't call
8631 init_function_format_info. Initialize lang_attribute_table
8632 earlier.
8633 (builtin_function): Call decl_attributes.
8634 (insert_default_attributes): New.
8635
55b3d665
JM
86362001-10-01 Jason Merrill <jason_merrill@redhat.com>
8637
8638 * decl.c (grokdeclarator): Copy array typedef handling from C
8639 frontend.
8640
8641 * decl.c (grokdeclarator): Copy too-large array handling from C
8642 frontend.
8643
9f57ca19
AO
86442001-09-29 Alexandre Oliva <aoliva@redhat.com>
8645
8646 * config-lang.in (target_libs): Added target-gperf, so that we
8647 don't try to build it if C++ is disabled.
8648
749ced52
ZW
86492001-09-23 Zack Weinberg <zack@codesourcery.com>
8650
8651 * Make-lang.in (CXX_OBJS): Take out cp/errfn.o.
8652 (cp/errfn.o): Delete rule.
8653 (cp/error.o): Depend on flags.h.
8654 * errfn.c: Delete file.
8655 * cp-tree.h: Declare warn_deprecated. Remove definitions of
8656 TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS,
8657 and TFF_TEMPLATE_DEFAULT_ARGUMENTS. #define cp_error, cp_warning,
8658 cp_pedwarn, and cp_compiler_error to error, warning, pedwarn, and
8659 internal_error respectively. Make cp_deprecated into a macro.
8660 Don't define cp_printer typedef or declare cp_printers.
8661 * error.c: Include flags.h.
8662 Delete: struct tree_formatting_info, print_function_argument_list,
8663 print_declaration, print_expression, print_function_declaration,
8664 print_function_parameter, print_type_id, print_cv_qualifier_seq,
8665 print_type_specifier_seq, print_simple_type_specifier,
8666 print_elaborated_type_specifier, print_rest_of_abstract_declarator,
8667 print_parameter_declaration_clause, print_exception_specification,
8668 print_nested_name_specifier, and definition of cp_printers.
8669 (locate_error): New function.
8670 (cp_error_at, cp_warning_at, cp_pedwarn_at): Moved here and
8671 rewritten in terms of locate_error and diagnostic.c.
8672 (cp_tree_printer): Rename cp_printer; wire up to *_to_string
8673 instead of deleted print_* routines. Handle %C, %L, %O, %Q also.
8674 (init_error): Adjust to match.
8675
d2a6f3c0 86762001-09-22 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
bb9f8221
RK
8677
8678 * Make-lang.in (CXX_C_OBJS): Add attribs.o.
8679
67231816
RH
86802001-09-21 Richard Henderson <rth@redhat.com>
8681
8682 * class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS.
8683 (build_vtbl_initializer): Likewise.
8684 (build_vfn_ref): New.
8685 * cp-tree.h: Declare it.
8686 * call.c (build_over_call): Use it.
8687 * decl2.c (mark_vtable_entries): Mark FDESC_EXPR.
8688 * typeck.c (get_member_function_from_ptrfunc): Mind descriptors.
8689
d2a6f3c0 86902001-09-21 J"orn Rennecke <amylaar@redhat.com>
c9574c9f
R
8691
8692 * decl.c (grokdeclarator): Use C syntax for attr_flags declaration.
8693
91d231cb
JM
86942001-09-21 Joseph S. Myers <jsm28@cam.ac.uk>
8695
8696 Table-driven attributes.
8697 * decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
8698 * decl2.c (cplus_decl_attributes): Only take one attributes
8699 parameter.
8700 * cp-tree.c (cplus_decl_attributes): Update prototype.
8701 * class.c (finish_struct), decl.c (start_decl, start_function),
8702 decl2.c (grokfield), friend.c (do_friend), parse.y
8703 (parse_bitfield): Update calls to cplus_decl_attributes.
8704 * decl.c (grokdeclarator): Take a pointer to a single ordinary
8705 attribute list.
8706 * decl.h (grokdeclarator): Update prototype.
8707 * decl2.c (grokfield): Take a single ordinary attribute list.
8708 * friend.c (do_friend): Likewise.
8709 * decl.c (shadow_tag, groktypename, start_decl,
8710 start_handler_parms, grokdeclarator, grokparms, start_function,
8711 start_method), decl2.c (grokfield, grokbitfield, grokoptypename),
8712 parse.y (parse_field, parse_bitfield, component_decl_1), pt.c
8713 (process_template_parm, do_decl_instantiation): Pass single
8714 ordinary attribute lists around.
8715 * decl.c (grokdeclarator): Correct handling of nested attributes.
8716 Revert the patch
8717 1998-10-18 Jason Merrill <jason@yorick.cygnus.com>
8718 * decl.c (grokdeclarator): Embedded attrs bind to the right,
8719 not the left.
8720 .
8721 * cp-tree.h (cp_valid_lang_attribute): Remove declaration
8722 (cp_attribute_table): Declare.
8723 * decl.c (valid_lang_attribute): Don't define.
8724 (lang_attribute_table): Define.
8725 (init_decl_processing): Initialize lang_attribute_table instead of
8726 valid_lang_attribute.
8727 * tree.c (cp_valid_lang_attribute): Remove.
8728 (handle_java_interface_attribute, handle_com_interface_attribute,
8729 handle_init_priority_attribute): New functions.
8730 (cp_attribute_table): New array.
8731 * decl2.c (import_export_class): Don't use
8732 targetm.valid_type_attribute.
8733
a1bda5f1
GDR
87342001-09-15 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
8735
e6b9638b
JM
8736 * Make-lang.in (cp/error.o): Depend on real.h
8737 * error.c: #include "real.h"
a1bda5f1 8738
cb6edbcb
KG
87392001-09-15 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8740
8741 * mangle.c (mangle_conv_op_name_for_type): Use concat in lieu of
8742 xmalloc/strcpy/strcat.
8743
83182544
KG
87442001-09-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8745
8746 * decl.c (warn_extern_redeclared_static, cp_make_fname_decl):
8747 Const-ification.
8748 * pt.c (tsubst_decl): Likewise.
8749
40008eda
KG
87502001-09-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8751
8752 * decl2.c (lang_f_options): Const-ification.
8753 * lex.c (cplus_tree_code_name): Likewise.
8754 * spew.c (yyerror): Likewise.
8755
39e78d8b
NS
87562001-09-06 Nathan Sidwell <nathan@codesourcery.com>
8757
8758 PR c++/3986
8759 * class.c (force_canonical_binfo_r): Check & move an indirect
8760 primary base first.
8761 (force_canonical_binfo): Check that it's not already
8762 canonical.
8763 (mark_primary_virtual_base): Remove BINFO parameter.
8764 (mark_primary_bases): Adjust, set BINFO_LOST_PRIMARY_P here.
8765
6d0a3f67
NS
87662001-09-06 Nathan Sidwell <nathan@codesourcery.com>
8767
8768 Remove TYPE_NONCOPIED_PARTS.
8769 * cp-tree.h (CLASSTYPE_INLINE_FRIENDS): Map onto
8770 CLASSTYPE_PURE_VIRTUALS.
8771 (TYPE_RAISES_EXCEPTIONS): Map onto TYPE_BINFO.
8772 * class.c (duplicate_tag_error): Remove TYPE_NONCOPIED_PARTS.
72a08131 8773 (layout_class_type): Don't call fixup_inline_methods here ...
6d0a3f67
NS
8774 (finish_struct_1): ... call it here.
8775
4f8e1232
MM
87762001-09-04 Mark Mitchell <mark@codesourcery.com>
8777
8778 * decl.c (duplicate_decls): Remove code deadling with
8779 DECL_SAVED_INSNS.
8780 * decl2.c (finish_file): Likewise.
8781 * pt.c (instantiate_decl): Likewise.
8782 * semantics.c (expand_body): Don't defer local functions if
8783 they wouldn't be deferred for some other reason. Don't
8784 generate RTL for functions that will not be emitted.
8785 (genrtl_start_function): Remove code deadling with
8786 DECL_SAVED_INSNS.
8787 (genrtl_finish_function): Likewise.
8788
da86f08f
NS
87892001-09-04 Nathan Sidwell <nathan@codesourcery.com>
8790
8791 PR c++/4203
8792 * call.c (build_over_call): Do not optimize any empty base
8793 construction.
8794
38066e83
KL
87952001-08-31 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
8796
8797 * error.c (dump_template_decl): Output template parameters
8798 together with their specifiers.
8799 Output `class' prefix for template template parameter.
8800 (dump_decl): Fix formatting.
8801
598e9ba5 88022001-08-30 Kurt Garloff <garloff@suse.de>
749ced52 8803
598e9ba5
KG
8804 * optimize.c (inlinable_function_p): Allow only smaller single
8805 functions. Halve inline limit after reaching recursive limit.
749ced52 8806
f232e4a5
JR
88072001-08-30 Joern Rennecke <amylaar@redhat.com>
8808 Jason Merrill <jason_merrill@redhat.com>
8809
8810 * class.c (build_vtable_entry_ref): Subtract in char*, not
8811 ptrdiff_t.
8812
0213a355
JM
88132001-08-23 Jason Merrill <jason_merrill@redhat.com>
8814
8815 * tree.c (cp_build_qualified_type_real): Use get_qualified_type.
8816 (build_cplus_array_type): Use cp_build_qualified_type, not
8817 TYPE_MAIN_VARIANT, to get an unqualified version.
8818
8819 * decl2.c (grok_alignof): Lose.
8820 (build_expr_from_tree): Use expr_sizeof and c_alignof_expr.
8821 * typeck.c (c_alignof): Lose.
8822 * semantics.c (finish_sizeof, finish_alignof): New.
8823 * parse.y: Use them.
8824 * cp-tree.h: Declare them.
8825
fd10dd09
JM
88262001-08-22 Jason Merrill <jason_merrill@redhat.com>
8827
8828 * pt.c (tsubst_expr): Hand off to the TREE_CHAIN of a statement.
8829 Don't loop in COMPOUND_STMT, FOR_STMT or TRY_BLOCK.
8830 * tree.c (cp_statement_code_p): A TAG_DEFN is a statement.
8831
baeb4732
JJ
88322001-08-19 Jakub Jelinek <jakub@redhat.com>
8833
8834 * typeck2.c (add_exception_specifier): Only require complete type if
8835 not in processing template declaration.
8836
1c0cc57e
KG
88372001-08-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
8838
8839 * decl.c: Cast argument to size_t, not HOST_WIDE_INT, in calls to
8840 GNU_xref_start_scope and GNU_xref_end_scope.
8841
8842 * tree.c (TYPE_HASH): Moved to ../tree.h.
8843
9a52d09b
MM
88442001-08-16 Mark Mitchell <mark@codesourcery.com>
8845
8846 * cvt.c (convert_to_void): Preserve TREE_SIDE_EFFECTS
8847 on COMPOUND_EXPRs.
8848
b5d1cbd2
RH
88492001-08-14 Richard Henderson <rth@redhat.com>
8850
8851 * class.c, cp-tree.h (build_vfn_ref): Remove.
8852 * call.c, rtti.c: Replace all refernces with build_vtbl_ref.
8853
63d6f87a
MM
88542001-08-13 Mark Mitchell <mark@codesourcery.com>
8855
8856 * call.c (build_over_call): Mark COMPOUND_EXPRs generated for
8857 empty class assignment as having side-effects to avoid
8858 spurious warnings.
8859
e78d8e51
ZW
88602001-08-13 Zack Weinberg <zackw@panix.com>
8861
8862 * Make-lang.in (cp/except.o): Add libfuncs.h to dependencies.
8863 * except.c: Include libfuncs.h.
8864
a60af04a
GDR
88652001-08-11 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
8866
8867 * decl.c (grokdeclarator): Clarify diagnostic message.
8868
3605b283
KL
88692001-08-13 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
8870
8871 * decl2.c (do_nonmember_using_decl): Replace using directive
8872 with using declaration in the error message.
8873
4d5f3fbd
KL
88742001-08-11 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
8875
8876 * pt.c (maybe_fold_nontype_arg): Use TREE_TYPE of ARG as the
8877 criterion to avoid rebuilding expression tree instead of
8878 processing_template_decl.
8879
07b2f2fd
JM
88802001-08-07 Jason Merrill <jason_merrill@redhat.com>
8881
8882 Support named return value optimization for inlines, too.
8883 * decl.c (finish_function): Nullify returns here.
8884 * semantics.c (genrtl_start_function): Not here.
8885 (cp_expand_stmt): Don't mess with CLEANUP_STMTs.
8886 (nullify_returns_r): No longer static. Just clear RETURN_EXPR.
8887 Also nullify the CLEANUP_STMT for the nrv.
8888 * cp-tree.h: Declare it.
8889 * optimize.c (declare_return_variable): Replace the nrv with the
8890 return variable.
8891 * typeck.c (check_return_expr): Be more flexible on alignment check.
8892 Ignore cv-quals when checking for a matching type.
8893
2cc07db4
RH
88942001-08-09 Richard Henderson <rth@redhat.com>
8895
8896 * decl2.c (finish_objects): Use target hooks instead of
8897 assemble_constructor and assemble_destructor.
8898
0ca179b2
JDA
88992001-08-08 John David Anglin <dave@hiauly1.hia.nrc.ca>
8900
8901 * g++spec.c (lang_specific_driver): Quote argument after `-Xlinker'.
8902
0830ae44
NS
89032001-08-07 Nathan Sidwell <nathan@codesourcery.com>
8904
8905 PR c++/3820
8906 Stop using TYPE_NONCOPIED_PARTS.
8907 * call.c (build_over_call): Be careful when copy constructing
8908 or assigning to an empty class.
8909 * class.c (check_bases_and_members): It has a
8910 COMPLEX_ASSIGN_REF if it has a vptr.
8911 (layout_class_type): Don't add empty class padding to
8912 TYPE_NONCOPIED_PARTS.
8913 (finish_struct_1): Don't add the VFIELD either.
8914 * cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): Mention _copy_
8915 initialization.
8916
59a13e0f
JM
89172001-08-07 Jason Merrill <jason_merrill@redhat.com>
8918
8919 * tree.c (walk_tree): Walk siblings even if !walk_subtrees.
8920
47907859
RH
89212001-08-06 Richard Henderson <rth@redhat.com>
8922
8923 * decl2.c (finish_objects): Pass a symbol_ref and priority to
8924 assemble_{constructor,destructor}. Remove priority handling.
8925
eac69b8a
GDR
89262001-08-05 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
8927
8928 Don't allow template-id in using-declaration.
8929 * decl2.c (validate_nonmember_using_decl): Handle template-ids.
8930 (do_class_using_decl): Likewise.
8931
ef6e958a
NB
89322001-08-04 Neil Booth <neil@cat.daikokuya.demon.co.uk>
8933
8934 * cp/spew.c (read_token): No need to pop buffers.
8935
dff94ad7
SS
89362001-08-02 Stan Shebs <shebs@apple.com>
8937
8938 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY): Remove, no longer used.
8939 (fnaddr_from_vtable_entry): Remove decl.
8940 * method.c (use_thunk): Update comment.
8941
026c3f13
AC
89422001-08-01 Andrew Cagney <ac131313@redhat.com>
8943
8944 * repo.c (get_base_filename): Change return value to const char
8945 pointer.
8946
1dbb6023
NS
89472001-08-02 Nathan Sidwell <nathan@codesourcery.com>
8948
8949 Kill -fhonor-std.
8950 * NEWS: Document.
8951 * cp-tree.h (flag_honor_std): Remove.
8952 (CPTI_FAKE_STD): Remove.
8953 (std_node): Remove comment about it being NULL.
8954 (fake_std_node): Remove.
8955 * decl.c (in_fake_std): Remove.
8956 (walk_namespaces_r): Remove fake_std_node check.
8957 (push_namespace): Remove in_fake_std code.
8958 (pop_namespace): Likewise.
8959 (lookup_name_real): Remove fake_std_node check.
8960 (init_decl_processing): Always create std_node. Always add
8961 std:: things there.
8962 (builtin_function): Always put non '_' fns in std.
8963 * decl2.c (flag_honor_std): Remove.
8964 (lang_f_options): Remove honor-std.
8965 (unsupported_options): Add honor-std.
8966 (set_decl_namespace): Remove fake_std_node check.
8967 (validate_nonmember_using_decl): Likewise.
8968 (do_using_directive): Likewise.
8969 (handle_class_head): Likewise.
8970 * dump.c (cp_dump_tree): Likewise.
8971 * except.c (init_exception_processing): Adjust.
8972 * init.c (build_member_call): Remove fake_std_node check.
8973 (build_offset_ref): Likewise.
8974 * lang-options.h: Remove -fhonor-std, -fno-honor-std.
8975 * rtti.c (init_rtti_processing): Adjust.
8976
6ad7895a
APB
89772001-07-31 Alexandre Petit-Bianco <apbianco@redhat.com>
8978
8979 * tree.c (cp_tree_equal): WITH_CLEANUP_EXPR node to use its second
8980 operand while calling cp_tree_equal.
8981
befe7c61
NS
89822001-07-31 Nathan Sidwell <nathan@codesourcery.com>
8983
8984 The 3.0 ABI no longer has vbase pointer fields.
8985 * cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P,
8986 FORMAT_VBASE_NAME): Remove.
8987 * method.c (do_build_copy_constructor): Adjust.
8988 (do_build_assign_ref): Adjust.
8989 * search.c (lookup_field_r): Adjust.
8990 * typeck.c (build_component_ref): Adjust.
8991
8992 The 3.0 ABI always has a vtable pointer at the start of every
8993 polymorphic class.
8994 * rtti.c (build_headof_sub): Remove.
8995 (build_headof): Adjust.
8996 (get_tinfo_decl_dynamic): No need to check flag_rtti
8997 here. Adjust.
8998 (create_real_tinfo_var): Explain why we need a hidden name.
8999
20dde49d
NS
90002001-07-31 Nathan Sidwell <nathan@codesourcery.com>
9001
9002 PR c++/3631
9003 * class.c (update_vtable_entry_for_fn): The fixed adjustment
9004 of a virtual thunk should be from declaring base.
9005
b7ad2f8b
NS
90062001-07-31 Nathan Sidwell <nathan@codesourcery.com>
9007
9008 * class.c (dfs_ctor_vtable_bases_queue_p): Always walk into
9009 the shared virtual base, so preserving inheritance graph order.
9010
57cb6d52
AJ
90112001-07-30 Andreas Jaeger <aj@suse.de>
9012
749ced52 9013 * decl2.c: Remove unused var global_temp_name_counter.
57cb6d52 9014
594280a3
RH
90152001-07-28 Richard Henderson <rth@redhat.com>
9016
9017 * method.c (pending_inlines): Remove.
9018
0ab142b0
NS
90192001-07-27 Nathan Sidwell <nathan@codesourcery.com>
9020
9021 * class.c (mark_primary_virtual_base): Don't adjust base
9022 offsets here.
9023 (dfs_unshared_virtual_bases): Adjust them here.
9024 (mark_primary_bases): Explain why we adjust at the end.
9025
d60d223b
NS
90262001-07-27 Nathan Sidwell <nathan@codesourcery.com>
9027
9028 * class.c (finish_struct_1): When copying the primary base's
9029 VFIELD, make sure we find it is at offset zero.
9030
db3ef87b
KL
90312001-07-26 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
9032
9033 * pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and
9034 tsubst_expr for default template arguments.
9035
312b7c9d
NS
90362001-07-26 Nathan Sidwell <nathan@codesourcery.com>
9037
d60d223b 9038 PR c++/3621
312b7c9d 9039 * spew.c (yylex): Only copy the token's lineno, if it is
838dfd8a 9040 nonzero.
312b7c9d 9041
648c2206
NS
90422001-07-26 Nathan Sidwell <nathan@codesourcery.com>
9043
9044 PR c++/3624
9045 * call.c (resolve_args): Simplify, call
9046 convert_from_reference.
9047 (build_new_op): Resolve and convert from reference ARG1
9048 earlier. Adjust ARG2 & ARG3 resolve and conversion.
9049
969fd501
NS
90502001-07-26 Nathan Sidwell <nathan@codesourcery.com>
9051
9052 * decl.c (last_function_parm_tags): Remove.
9053 (current_function_parm_tags): Remove.
9054 (init_decl_processing): Adjust.
9055 (start_function): Adjust.
9056 (store_parm_decls): Adjust.
9057
9058 PR c++/3152
9059 * decl.c (grokdeclarator): Detect when a function typedef is
9060 declaring a function, and create last_function_parms correctly.
9061
08ac397c 90622001-07-25 Jason Merrill <jason_merrill@redhat.com>
749ced52 9063
08ac397c
JM
9064 * call.c (joust): Only prefer a non-builtin candidate to a builtin
9065 one if they have the same signature.
9066
9067 * cvt.c (build_up_reference): Take DECL parm. Check TREE_STATIC on
9068 it rather than toplevel_bindings_p. Give it a mangled name if static.
9069 (convert_to_reference): Adjust.
9070 * decl2.c (get_temp_name): Lose.
9071 * mangle.c (mangle_ref_init_variable): New fn.
9072 (mangle_guard_variable): Strip the ref-init header.
9073 * cp-tree.h: Adjust.
9074 * decl.c (cp_finish_decl): Add the DECL_STMT after processing the
9075 initializer.
9076 (grok_reference_init): Always use DECL_INITIAL.
9077
40260429
NS
90782001-07-25 Nathan Sidwell <nathan@codesourcery.com>
9079
9080 PR c++/3416
9081 * call.c (build_conditional_expr): Recheck args after
9082 conversions.
9083 * cp-tree.h (build_conditional_expr): Move to correct file.
9084 * typeck.c (decay_conversion): Diagnose any unknown types
9085 reaching here.
9086 (build_binary_op): Don't do initial decay or default
9087 conversions on overloaded functions.
9088 (build_static_cast): Don't do a decay conversion here.
9089
ab085207
NS
90902001-07-25 Nathan Sidwell <nathan@codesourcery.com>
9091
9092 PR c++/3543
9093 * typeck.c (condition_conversion): Resolve an OFFSET_REF.
9094 * expr.c (cplus_expand_expr): An OFFSET_REF should never get here.
9095
0abe00c5
NS
90962001-07-25 Nathan Sidwell <nathan@codesourcery.com>
9097
9098 * class.c (build_vtbl_or_vbase_field): Remove, move into ...
9099 (create_vtbl_ptr): ... here.
9100
90b1ca2f
NS
91012001-07-25 Nathan Sidwell <nathan@codesourcery.com>
9102
9103 * class.c (build_vbase_offset_vbtl_entries): Look for
9104 non-primary base of which we are a sub vtable.
9105
cfe5dc31
PE
91062001-07-24 Phil Edwards <pme@sources.redhat.com>
9107
9108 * semantics.c (finish_this_expr): Remove unused code.
9109
7f54a851
NS
91102001-07-24 Nathan Sidwell <nathan@codesourcery.com>
9111
9112 Simplify rtti, now we've only one ABI.
9113 * cp-tree.h (cp_tree_index): Remove CPTI_TINFO_DECL_ID,
9114 CPTI_TINFO_VAR_ID.
9115 (tinfo_decl_id, tinfo_var_id): Remove.
9116 (get_typeid_1): Remove.
9117 * rtti.c
9118 (init_rtti_processing): Remove tinfo_decl_id & tinfo_var_id.
9119 (typeid_ok_p): New function.
9120 (build_type_id): Call typeid_ok_p. Don't call tinfo_from_decl.
9121 (get_tinfo_decl): Remove old abi documentation.
9122 (tinfo_from_decl): Remove.
9123 (get_type_id): Call typeid_ok_p. Absorb get_typeid_1.
9124 (get_typeid_1): Remove.
9125 (get_base_offset): Remove.
9126 (synthesize_tinfo_var): Absorb get_base_offset.
9127 (create_real_tinfo_var): Don't use tinfo_decl_id.
9128
18fee3ee
GS
91292001-07-23 Graham Stott <grahams@redhat.com>
9130
d30d6e7a 9131 * cp/class.c (type_requires_array_cookie): Fix use of uninitialized
18fee3ee
GS
9132 variable has_two_argument_delete_p.
9133
c4372ef4
NS
91342001-07-21 Nathan Sidwell <nathan@codesourcery.com>
9135
9136 Remove flag_vtable_thunk. It is always on for the 3.0 ABI.
9137 * cp-tree.h (CPTI_DELTA2_IDENTIFIER): Remove.
9138 (CPTI_INDEX_IDENTIFIER): Remove.
9139 (CPT_PFN_OR_DELTA2_IDENTIFIER): Remove.
9140 (delta2_identifier): Remove.
9141 (index_identifier): Remove.
9142 (pfn_or_delta2_identifier): Remove.
9143 (flag_vtable_thunks): Remove.
9144 (VTABLE_DELTA2_NAME): Remove.
9145 (VTABLE_INDEX_NAME): Remove.
9146 (FNADDR_FROM_VTABLE_ENTRY): Adjust.
9147 (vfunc_ptr_type_node): Adjust.
9148 (VTABLE_NAME_PREFIX): Adjust.
9149 (build_vfn_ref): Lose first parameter.
9150 (fixup_all_virtual_upcast_offsets): Remove.
9151 * decl.c (initialize_predefined_identifiers): Remove
9152 delta2_identifier, index_identifier, pfn_or_delta2_identifier.
9153 (init_decl_processing): Remove no-vtable-thunk code.
9154 * decl2.c (flag_vtable_thunks): Remove.
9155 (mark_vtable_entries): Remove no-vtable-thunk code.
9156 * error.c (dump_decl): Remove no-vtable-thunk code.
9157 (dump_expr): Adjust ptr to member function code.
9158 * init.c (initialize_vtable_ptrs): Remove no-vtable-thunk
9159 code.
9160 * rtti.c (build_headof): Remove no-vtable-thunk code.
9161 (get_tinfo_decl_dynamic): Adjust build_vfn_ref call.
9162 * search.c (get_base_distance): Remove expand_upcast_fixups case.
9163 (virtual_context) Remove.
9164 (expand_upcast_fixups): Remove.
9165 (fixup_virtual_upcast_offsets): Remove.
9166 (fixup_all_virtual_upcast_offsets): Remove.
9167 * typeck.c (get_member_function_from_ptrfunc): Remove
9168 no-vtable-thunk code.
9169 * call.c (build_over_call): Adjust call to build_vfn_ref.
9170 * class.c (build_vfn_ref): Lose first parameter. Remove
9171 no-vtable-thunk code.
9172 (build_rtti_vtbl_entries): Remove no-vtable-thunk code.
9173 (build_vtable_entry): Remove no-vtable-thunk code.
9174
3461fba7
NS
91752001-07-20 Nathan Sidwell <nathan@codesourcery.com>
9176
9177 Remove old-abi remnants. Remove comments about old abi
838dfd8a 9178 behavior. Remove references to 'new-abi' in comments.
3461fba7
NS
9179 * cp-tree.h: Adjust comments.
9180 (vbase_offsets_in_vtable_p): Delete.
9181 (vcall_offsets_in_vtable_p): Delete.
9182 (vptrs_present_everywhere_p): Delete.
9183 (all_overridden_vfuns_in_vtables_p): Delete.
9184 (merge_primary_and_secondary_vtables_p): Delete.
9185 (TYPE_CONTAINS_VPTR_P): Adjust.
9186 (VTT_NAME_PREFIX): Remove.
9187 (CTOR_VTBL_NAME_PREFIX): Remove.
9188 (init_vbase_pointers): Remove.
9189 * class.c: Adjust coments.
9190 (build_vbase_pointer_fields): Delete.
9191 (build_vbase_pointer): Remove old-abi code.
9192 (build_secondary_vtable): Likewise.
9193 (modify_all_vtables): Likewise.
9194 (create_vtable_ptr): Likewise.
9195 (layout_class_type): Likewise.
9196 (finish_struct_1): Likewise.
9197 (finish_vtbls): Likewise.
9198 (dfs_finish_vtbls): Delete.
9199 (build_vbase_offset_vtbl_entries): Remove old-abi code.
9200 * cvt.c: Adjust comments.
9201 * decl.c: Adjust comments.
9202 * decl2.c: Adjust comments.
9203 * init.c: Adjust comments.
9204 (construct_virtual_bases): Remove old-abi code.
9205 * lang-specs.h: Remove -fno-new-abi.
9206 * mangle.c: Adjust comments.
9207 * rtti.c: Adjust comments.
9208 (get_base_offset): Remove old-abi-code.
9209 * search.c: Adjust comments.
9210 (dfs_init_vbase_pointers): Remove.
9211 (dfs_vtable_path_unmark): Remove.
9212 (init_vbase_pointers): Remove.
9213 * semantics.c: Adjust comments.
9214 (emit_associated_thunks): Remove old-abi code.
9215 * typeck.c: Adjust comments.
9216
1c432a87
DB
92172001-07-20 Daniel Berlin <dan@cgsoftware.com>
9218
9219 * Make-lang.in (cp/optimize.o): Depend on $(PARAMS_H), not
9220 params.h.
9221
b7076960
MM
92222001-07-19 Mark Mitchell <mark@codesourcery.com>
9223
9224 * class.c (finish_struct_anon): Forbid nested classes.
9225
2b85879e
NB
92262001-07-19 Neil Booth <neil@daikokuya.demon.co.uk>
9227
9228 * decl2.c: Don't include dwarfout.h and dwarf2out.h.
9229 * optimize.c: Include debug.h.
9230 (maybe_clone_body): Use debug hook.
9231 * semantics.c: Include debug.h.
9232 (expand_body): Use debug hook.
9233
c60e94a7
NB
92342001-07-19 Neil Booth <neil@daikokuya.demon.co.uk>
9235
9236 * spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
9237
dbc957f1
MM
92382001-07-18 Mark Mitchell <mark@codesourcery.com>
9239
9240 * class.c (type_requires_array_cookie): New function.
9241 (check_methods): Don't try to figure out whether the type needs a
9242 cookie here.
9243 (check_bases_and_members): Set TYPE_VEC_NEW_USES_COOKIE here.
9244 * cp-tree.h (TYPE_VEC_DELETE_TAKES_SIZE): Remove.
9245 (TYPE_VEC_NEW_USES_COOKIE): Reimplement.
9246 * pt.c (instantiate_class_template): Don't set
9247 TYPE_VEC_DELETE_TAKES_SIZE.
9248 * NEWS: Document ABI changes from GCC 3.0.
57cb6d52 9249
7ba0b0f7 92502001-07-18 Xavier Delacour <xavier@fmaudio.net>,
749ced52 9251 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
7ba0b0f7
XD
9252
9253 * NEWS (Changes in GCC 3.0): Fix typo.
9254
59387d2e
JM
92552001-07-13 Joseph S. Myers <jsm28@cam.ac.uk>
9256
9257 * decl2.c (cplus_decl_attributes): Take a pointer to the node to
9258 which attributes are to be attached, and a flags argument. Update
9259 call to decl_attributes.
9260 (grokfield): Update call to decl_attributes.
9261 * class.c (finish_struct): Update call to cplus_decl_attributes.
9262 * cp-tree.h (cplus_decl_attributes): Update prototype.
9263 * decl.c (start_decl, grokdeclarator, start_function): Update
9264 calls to decl_attributes and cplus_decl_attributes.
9265 * friend.c (do_friend): Update call to cplus_decl_attributes.
9266 * parse.y (parse_bitfield): Update call to cplus_decl_attributes.
9267
7ed47c04
MM
92682001-07-12 Mark Mitchell <mark@codesourcery.com>
9269
9270 * decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER
9271 for `register' variables with an asm-specification.
9272
40b18c0a
MM
92732001-07-11 Mark Mitchell <mark@codesourcery.com>
9274
9275 * semantics.c (finish_asm_stmt): Mark the output operands
9276 to an asm addressable, if necessary.
9277
517c3b80
BE
92782001-07-11 Ben Elliston <bje@redhat.com>
9279
219670f1
BE
9280 * Revert this change -- there is a subtle bug.
9281
517c3b80
BE
9282 PR c++/80
9283 * decl.c (finish_enum): New "attributes" argument; pass it to
9284 cplus_decl_attributes. Use a narrower type if the enum is packed.
9285 * cp-tree.h (finish_enum): Adjust prototype.
9286 * parse.y (enum_head): New non-terminal.
9287 (structsp): Use it. Enums now may be preceded or followed by
9288 optional attributes -- pass their chained tree to finish_enum().
9289 * pt.c (tsubst_enum): Pass NULL_TREE for the new argument.
9290
2ba9c47e
MM
92912001-07-10 Mark Mitchell <mark@codesourcery.com>
9292
9293 * pt.c (tsubst_decl): Set DECL_CONTEXT for namespace-scope
9294 variables.
9295
35241192
JM
92962001-07-10 Jason Merrill <jason_merrill@redhat.com>
9297
9298 * semantics.c (cp_expand_stmt): Fix for null
9299 current_function_return_value.
9300
07167a18
JM
93012001-07-10 Jan van Male <jan.vanmale@fenk.wau.nl>
9302
9303 * call.c (build_op_delete_call): Initialize fn.
9304 (convert_like_real): Delete conditional.
9305 (joust): Initialize *w and *l.
9306 * class.c: Add prototype for binfo_ctor_vtable.
9307 (get_primary_binfo): Initialize result.
9308 * init.c (build_java_class_ref): Initialize name.
ae818d3b 9309
35241192
JM
93102001-07-09 Erik Rozendaal <dlr@acm.org>
9311
ae818d3b
ER
9312 * typeck.c (unary_complex_lvalue): Do not duplicate the
9313 argument to modify, pre-, or post-increment when used as an
9314 lvalue and when the argument has side-effects.
9315
12a68f1f
JM
93162001-07-08 Joseph S. Myers <jsm28@cam.ac.uk>
9317
9318 * decl.c (start_decl): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
9319 (start_function): Don't call SET_DEFAULT_DECL_ATTRIBUTES. Call
9320 cplus_decl_attributes even if attrs is NULL.
9321 * friend.c (do_friend): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
9322
f7a4cec0
JM
93232001-07-08 Joseph S. Myers <jsm28@cam.ac.uk>
9324
9325 * decl.c (grokdeclarator), decl2.c (cplus_decl_attributes): Update
9326 calls to decl_attributes.
9327
c80106a4
IR
93282001-07-06 Ira Ruben <ira@apple.com>
9329
ae818d3b 9330 * cp-tree.def (TEMPLATE_DECL): Update comment. DECL_RESULT should
c80106a4
IR
9331 be DECL_TEMPLATE_RESULT.
9332
dac65501
KL
93332001-07-05 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
9334
9335 * cp-tree.h (copy_template_template_parm): Rename to ...
9336 (bind_template_template_parm): ... here.
9337 * tree.c (copy_template_template_parm): Rename to ...
9338 (bind_template_template_parm): ... here. Remove the case when
9339 NEWARGS is NULL_TREE.
9340 (copy_tree_r): Don't copy TEMPLATE_TEMPLATE_PARM and
9341 BOUND_TEMPLATE_TEMPLATE_PARM.
9342 * pt.c (lookup_template_class): Adjust.
9343
01f9e964
JM
93442001-07-05 Jason Merrill <jason_merrill@redhat.com>
9345
9346 * cvt.c (convert_lvalue): New fn.
9347 * cp-tree.h: Declare it.
9348 * method.c (do_build_assign_ref): Use it.
9349 (do_build_copy_constructor): Convert parm to base types
9350 before calling base constructors.
9351
9352 * typeck.c (check_return_expr): Check DECL_ALIGN instead of
9353 DECL_USER_ALIGN. Check flag_elide_constructors instead of
9354 optimize.
9355 * semantics.c (cp_expand_stmt): Don't destroy the named return value.
9356
6be77748
NS
93572001-07-02 Nathan Sidwell <nathan@codesourcery.com>
9358
9359 * optimize.c (optimize_inline_calls): New function, broken out
9360 of ...
9361 (optimize_function): ... here. Call it. Don't inline if it is
9362 a thunk.
9363 (dump_function): Print name of dump flag causing this dump.
9364 * semantics.c (expand_body): Move thunk inline check to
9365 optimize_function.
9366
8d8e52be
JM
93672001-06-29 Joseph S. Myers <jsm28@cam.ac.uk>
9368
9369 * typeck.c (COMP_TYPE_ATTRIBUTES): Don't define.
9370 (comptypes): Use target.comp_type_attributes.
9371
5a0db193
NS
93722001-06-29 Nathan Sidwell <nathan@codesourcery.com>
9373
9374 * cp-tree.h (flag_dump_class_layout): Remove unneeded declaration.
9375
46f018e1
GDR
93762001-06-28 Gabriel Dos Reis <gdr@merlin.codesourcery.com>
9377
9378 * error.c (lang_print_error_function): Add a `diagnostic_context *'
9379 parameter. Tweak.
9380
501990bb
NB
93812001-06-27 Neil Booth <neil@cat.daikokuya.demon.co.uk>
9382
9383 * decl2.c (import_export_class): Update.
9384
f68fc4db
GDR
93852001-06-26 Gabriel Dos Reis <gdr@codesourcery.com>
9386
9387 * error.c (init_error): Adjust settings.
9388
9596ddd6
GDR
93892001-06-26 Gabriel Dos Reis <gdr@codesourcery.com>
9390
9391 * error.c (init_error): Adjust settings.
9392
c93586fa
RS
93932001-06-19 Richard Sandiford <rsandifo@redhat.com>
9394
9395 * except.c (initialize_handler_parm): Expect __cxa_begin_catch to
9396 return pointers to data members by reference rather than by value.
9397
0d97bf4c
JM
93982001-06-18 Jason Merrill <jason_merrill@redhat.com>
9399
9400 Implement the Named Return Value optimization.
9401 * cp-tree.h (struct cp_language_function): Add x_return_value.
9402 (current_function_return_value): Now a macro.
9403 * decl.c: Don't define it.
9404 (define_label, finish_case_label): Don't clear it.
9405 (init_decl_processing): Don't register it with GC.
9406 * semantics.c (genrtl_finish_function): Don't check it for
9407 no_return_label. Copy the RTL from the return value to
9408 current_function_return_value and walk, calling...
9409 (nullify_returns_r): ...this new fn.
9410 * typeck.c (check_return_expr): Set current_function_return_value.
9411
13de7ec4
JM
94122001-06-15 Jason Merrill <jason_merrill@redhat.com>
9413
9414 * class.c (dfs_accumulate_vtbl_inits): Just point to the base we're
9415 sharing a ctor vtable with. Merge code for cases 1 and 2.
9416 (binfo_ctor_vtable): New fn.
9417 (build_vtt_inits, dfs_build_secondary_vptr_vtt_inits): Use it.
9418
3ea099f1
JM
94192001-06-14 Jason Merrill <jason_merrill@redhat.com>
9420
9421 * class.c (dfs_find_final_overrider): Fix logic.
9422
9423 * class.c (update_vtable_entry_for_fn): Uncomment optimization to use
9424 virtual thunk instead of non-virtual.
9425 (get_matching_virtual): Uncomment.
9426
9427 * pt.c (unify): Don't recurse between the POINTER_TYPE and the
9428 OFFSET_TYPE. If we're adding cv-quals, the extra ones would be on
9429 PARM, not ARG.
9430
87326ba8
NS
94312001-06-14 Nathan Sidwell <nathan@codesourcery.com>
9432
9433 * class.c (dfs_accumulate_vtbl_inits): For case 2 & 3, make sure
9434 we've not emerged from the hierarchy of RTTI_BINFO on reaching
9435 a non-virtual base.
9436
e065a36e
MM
94372001-06-13 Mark Mitchell <mark@codesourcery.com>
9438
9439 * NEWS: Update release number.
9440
623fe76a
NS
94412001-06-12 Nathan Sidwell <nathan@codesourcery.com>
9442
9443 PR c++/3130, c++/3131, c++/3132
9444 * cp-tree.h (BINFO_UNSHARED_MARKED): New #define.
9445 * class.c (force_canonical_binfo_r): Move
9446 BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move
9447 virtual bases unless they're primary and what they're primary
9448 too has been moved.
9449 (dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope
9450 with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and
9451 BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most
9452 derived binfo.
9453 (mark_primary_bases): Use BINFO_UNSHARED_MARKED.
9454 (layout_nonempty_base_or_field): Add most derived type
9455 parameter. Adjust.
9456 (layout_empty_base): Likewise.
9457 (build_base_field): Likewise.
9458 (build_base_fields): Likewise.
9459 (propagate_binfo_offsets): Add most derived type
9460 parameter. Skip non canonical virtual bases too.
9461 (dfs_set_offset_for_unshared_vbases): Don't skip primary
9462 bases. Do skip canonical bases.
9463 (layout_virtual_bases): Adjust.
9464 (layout_class_type): Adjust.
9465 (dfs_get_primary_binfo): Build list of virtual primary base
9466 candidates.
9467 (get_primary_binfo): Check that the shared virtual primary
9468 base candidate was found first.
9469 (accumulate_vtbl_inits): Don't do anything for non-vptr
9470 containing binfos. For case 1 primary virtual bases, keep
9471 checking that we've not emerged from the hierarchy of RTTI_BINFO.
9472
7bdcf888
NS
94732001-06-12 Nathan Sidwell <nathan@codesourcery.com>
9474
9475 PR c++/3089
9476 * class.c (dfs_accumulate_vtbl_inits): Always walk down the
9477 hierarchy looking for primary bases for a ctor
9478 vtable. Recursively call oneself, if we meet our primary via
9479 this route and haven't met it yet via inheritance graph order.
9480
25b5b465
MM
94812001-06-11 Mark Mitchell <mark@codesourcery.com>
9482
9483 * lang-options.h: Emit documentation for -fno-honor-std, not
9484 -fhonor-std.
9485
eb2d0614
AO
94862001-06-10 Alexandre Oliva <aoliva@redhat.com>
9487
9488 * typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]:
9489 Don't clobber delta.
9490 (expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn.
9491
2a2b2d43
GDR
94922001-06-10 Mark Mitchell <mark@codesourcery.com>
9493 Gabriel Dos Reis <gdr@codesourcery.com>
9494
9495 * Make-lang.in (cp/call.o): Depend on diagnostic.h
9496 (cp/typeck.o): Depend on diagnostic.h
9497 (cp/typeck2.o): Depend on diagnostic.h
07167a18 9498 (cp/repo.o): Depend on dignostic.h
2a2b2d43
GDR
9499 * typeck.c: #include diagnostic.h
9500 (convert_for_initialization): Remove extern declaration for
9501 warningcount and errorcount.
9502
9503 * call.c: #include diagnostic.h
9504 (convert_like_real): Remove extern declaration for warnincount and
07167a18 9505 errorcount.
2a2b2d43
GDR
9506
9507 * repo.c: #include diagnostic.h
9508 * typeck2.c: #include diagnostic.h
9509
06d5e633
NS
95102001-06-08 Nathan Sidwell <nathan@codesourcery.com>
9511
9512 * decl.c (duplicate_decls): Fix DECL_TEMPLATE_RESULT thinko
9513 in previous change.
9514
9ac1bd2e
NS
95152001-06-08 Nathan Sidwell <nathan@codesourcery.com>
9516
9517 PR c++/2929
9518 * friend.c (do_friend): Use push_decl_namespace for classes at
9519 namespace scope.
9520
85a9a0a2
NS
95212001-06-08 Nathan Sidwell <nathan@codesourcery.com>
9522 Jason Merrill <jason_merrill@redhat.com>
9523
9524 PR c++/3061
9525 * class.c (build_secondary_vtable): Use assert, rather than an error
9526 message.
9527 (dfs_fixup_binfo_vtbls): BINFO_VTABLE might be NULL.
9528 (dfs_accumulate_vtbl_inits): A lost primary virtual base may
9529 be between ORIG_BINFO and RTTI_BINFO, but neither of them.
9530 Don't set BINFO_VTABLE for a primary virtual base.
9531
daa8df65
MM
95322001-06-07 Mark Mitchell <mark@codesourcery.com>
9533
9534 * decl.c (duplicate_decls): Update source position information
9535 when a template function is defined.
9536
37344b9b
PE
95372001-06-07 Phil Edwards <pme@sources.redhat.com>
9538
9539 * lang-specs.h: Move -D_GNU_SOURCE to config/linux.h.
9540
fcebb2dd
NS
95412001-06-07 Nathan Sidwell <nathan@codesourcery.com>
9542
9543 PR c++/2914
9544 * decl.c (pushtag): Don't push into a complete type's scope.
9545
d0cd8b44
JM
95462001-06-06 Jason Merrill <jason_merrill@redhat.com>
9547
9548 * cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose.
9549 (struct lang_decl_flags): Lose generate_with_vtable_p.
9550 (BV_GENERATE_THUNK_WITH_VTABLE_P): Lose.
9551 * class.c (copy_virtuals): Adjust.
9552 * decl2.c (mark_vtable_entries): Adjust.
9553 * method.c (make_thunk, build_vtable_entry): Adjust.
9554 * class.c (update_vtable_entry_for_fn): Only look as far as the
9555 first defining class.
07167a18 9556 (build_vtbl_initializer): Put nothing in the slot for a function only
d0cd8b44 9557 defined in a lost primary virtual base.
07167a18 9558 (add_vcall_offset_vtbl_entries_1): Use the same code for
d0cd8b44
JM
9559 the lost primary case and the normal case.
9560 (dfs_unshared_virtual_bases): Don't lose a non-virtual primary base.
9561 (get_vfield_offset, get_derived_offset): Lose.
9562 (dfs_find_final_overrider): Use look_for_overrides_here.
9563 (get_matching_virtual): New fn.
9564 * semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P,
9565 not BV_VCALL_INDEX.
9566 * search.c (look_for_overrides_here): Split out from...
9567 (look_for_overrides_r): Here.
9568
9569 * class.c (find_final_overrider): Return error_mark_node on error.
9570
9571 * decl2.c (key_method): #if 0 accidental change.
9572
acf97e0b
JDA
95732001-06-06 John David Anglin <dave@hiauly1.hia.nrc.ca>
9574
9575 * call.c (convert_default_arg): Use INTEGRAL_TYPE_P.
9576 (build_over_call): Likewise.
9577 * decl.c (grokparms): Likewise.
9578 * pt.c (tsubst_decl): Likewise.
9579 * typeck.c (convert_arguments): Likewise.
9580
7e9abee9
MM
95812001-06-05 Mark Mitchell <mark@codesourcery.com>
9582
47ee8904
MM
9583 * semantics.c (begin_class_definition): Robustify.
9584
7e9abee9
MM
9585 * pt.c (instantiate_decl): Tell the repository code about the
9586 clones, not the cloned functions.
9587 * repo.c (repo_template_used): Explicitly instantiate the cloned
9588 function, not the clones.
9589
bea09693
NS
95902001-06-05 Nathan Sidwell <nathan@codesourcery.com>
9591
9592 * call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and
9593 ICS_BAD_FLAG on created conversion.
9594 (compare_ics): Break out rank.
9595
8f7550ca
NS
95962001-06-05 Nathan Sidwell <nathan@codesourcery.com>
9597
9598 * decl.c (xref_tag): Remove extraneous %s on dependent name
9599 lookup warning.
9600
442e01b6
NS
96012001-06-05 Nathan Sidwell <nathan@codesourcery.com>
9602
9603 * class.c (layout_vtable_decl): Fix off by one error on
9604 build_index_type.
9605 (build_vtt): Likewise.
9606 (build_ctor_vtbl_group): Likewise.
9607
b7442fb5
NS
96082001-06-05 Nathan Sidwell <nathan@codesourcery.com>
9609
9610 * class.c (maybe_indent_hierarchy): New function.
9611 (dump_class_hierarchy_r): Add flags. Dump extra binfo
9612 information, if enabled. Use maybe_indent_hierarchy. Adjust
9613 output format.
9614 (dump_class_hierarchy): Adjust prototype. Adjust output format.
9615 (dump_array, dump_vtable, dump_vtt): New functions.
9616 (finish_struct_1): Adjust hierarchy dumping.
9617 (initialize_vtable): Call dump_vtable.
9618 (build_vtt): Call dump_vtt.
9619 (build_ctor_vtbl_group): Call dump_vtable.
9620 * decl2.c (flag_dump_class_layout): Remove.
9621 (cxx_decode_option): Remove dump translation unit
9622 and dump class hierarchy check. Call dump_switch_p.
9623 (finish_file): Adjust dumping.
9624 (dump.c): Only dump base classes if not TDF_SLIM.
9625 Only dump namespace members if not TDF_SLIM.
9626 * optimize.c (dump_function): New function.
9627 (optimize_function): Call dump_function.
9628 * semantics.c (expand_body): Use dump_enabled_p.
9629
e5410b32
NS
96302001-06-01 Nathan Sidwell <nathan@codesourcery.com>
9631
9632 PR g++/2936
9633 Part missed from first commit
9634 * decl2.c (finish_anon_union): Copy context.
9635
e97c9488
NS
96362001-05-30 Nathan Sidwell <nathan@codesourcery.com>
9637
9638 PR g++/2936
e97c9488
NS
9639 * optimize.c (remap_decl): Remap anonymous aggregate members too.
9640
87d9ac49
NS
96412001-05-26 Nathan Sidwell <nathan@codesourcery.com>
9642
9643 PR g++/2823
9644 * semantics.c (expand_body): Don't optimize thunks.
9645
88657302
RH
96462001-05-25 Sam TH <sam@uchicago.edu>
9647
9648 * cp-tree.h lex.h: Fix header include guards.
9649
96502001-05-25 Mark Mitchell <mark@codesourcery.com>
10841285
MM
9651
9652 * decl.c (init_decl_processing): Tweak.
9653
0b1161fc
MM
96542001-05-24 Mark Mitchell <mark@codesourcery.com>
9655
9656 * decl.c (duplicate_decls): Tidy.
9657 (init_decl_processing): Always set flag_no_builtin.
9658
6f56d925
NS
96592001-05-24 Nathan Sidwell <nathan@codesourcery.com>
9660
9661 PR c++/2184
9662 * decl2.c (do_local_using_decl): Push the decls, even in a
9663 template.
9664
39e0656d
MM
96652001-05-22 Mark Mitchell <mark@codesourcery.com>
9666
9667 * optimize.c (initialize_inlined_parameters): Don't set
9668 TREE_READONLY for a VAR_DECL taking the place of an inlined
9669 PARM_DECL.
9670
0401d499
JM
96712001-05-22 Jason Merrill <jason_merrill@redhat.com>
9672
9673 * class.c, cp-tree.h, rtti.c: Remove com_interface attribute support.
9674 * tree.c (cp_valid_lang_attribute): Warn about use of com_interface
9675 attribute.
9676
14fc3426
JM
96772001-05-22 Joseph S. Myers <jsm28@cam.ac.uk>
9678
9679 * parse.y: Refer to compound literals as such, not as
9680 constructor-expressions.
9681
3f41ffd8
MM
96822001-05-21 Mark Mitchell <mark@codesourcery.com>
9683
9684 * call.c (build_op_delete_call): Ignore exception-specifications
9685 when looking for matching delete operators.
9686 * init.c (build_new_1): Compute whether or not the allocation
9687 function used is a placement allocation function or not, and
9688 communicate this information to build_op_delete_call.
9689
1a6025b4
JM
96902001-05-21 Jason Merrill <jason_merrill@redhat.com>
9691
90ecce3e
JM
9692 * class.c (build_vtable_entry_ref): Lose vtbl parm. Fix for new abi.
9693 (build_vtbl_ref): Adjust.
9694 (dfs_accumulate_vtbl_inits): Set TREE_CONSTANT on the vtable address.
9695 * decl2.c (lang_f_options): Remove huge-objects, vtable-thunks.
9696 Re-add vtable-gc.
9697 (unsupported_options): Correspondingly.
9698
9699 * decl2.c (maybe_make_one_only): Check flag_weak, not
9700 supports_one_only().
9701
1a6025b4
JM
9702 * cp-tree.def (START_CATCH_STMT): Lose.
9703 * dump.c (cp_dump_tree): Don't dump it. Do dump HANDLER_PARMS.
9704 * tree.c (cp_statement_code_p): Don't case it.
9705 * semantics.c (cp_expand_stmt): Likewise.
9706 * cp-tree.h (START_CATCH_TYPE): Lose.
9707 (HANDLER_TYPE): New.
9708 * except.c (expand_start_catch_block): Don't start any blocks.
9709 Return the type.
9710 (expand_end_catch_block): Don't end any blocks.
9711 * parse.y (handler): Don't pass anything from finish_handler_parms
9712 to finish_handler.
9713 * pt.c (tsubst_expr): Likewise.
9714 * semantics.c (begin_handler): Call note_level_for_catch here.
9715 (finish_handler_parms): Don't return anything.
9716 (genrtl_catch_block, begin_catch_block): Lose.
9717 (genrtl_handler): Call expand_start_catch here.
9718
97192001-05-18 Jason Merrill <jason_merrill@redhat.com>
9720
9721 * class.c (build_vtable): Set DECL_ASSEMBLER_NAME for vtables here.
9722 (get_vtable_decl, build_vtt): Not here.
9723
d30a825a
NS
97242001-05-20 Nathan Sidwell <nathan@codesourcery.com>
9725
9726 PR c++/2781
9727 * optimize.c (update_cloned_parm): Copy addressability and other
9728 flags.
9729
3b82c249
KL
97302001-05-20 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
9731
9732 * pt.c (determine_specialization): Ignore artificial functions.
9733
2a967f3d
NB
97342001-05-20 Neil Booth <neil@daikokuya.demon.co.uk>
9735
9736 * cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update.
9737 (C_RID_CODE): Remove.
9738 * lex.c (cxx_init_options): Call set_identifier_size. Update.
9739 (init_parse): Don't do it here.
9740
f99df08e
DN
97412001-05-18 Diego Novillo <dnovillo@redhat.com>
9742
9743 * decl2.c (finish_objects): Use the original SYMBOL_REF from the
9744 function declaration to avoid stripping the symbol's attributes.
9745
2b0cbc5d
NS
97462001-05-18 Nathan Sidwell <nathan@codesourcery.com>
9747
9748 * decl.c (pushdecl): Adjust error string.
9749 (xref_tag): Adjust friend class injection warning. Remove the
9750 inherited name from the class shadowed scope.
9751
e6855a2d
MM
97522001-05-17 Mark Mitchell <mark@codesourcery.com>
9753
9754 * except.c (cp_protect_cleanup_actions): New function.
07167a18 9755 (init_exception_processing): Don't set protect_cleanup_actions
e6855a2d
MM
9756 here. Do set lang_protect_cleanup_actions.
9757
cc469ee9
NS
97582001-05-16 Nathan Sidwell <nathan@codesourcery.com>
9759
9760 * spew.c (read_token): Call yyerror on all unexpected tokens.
9761
3f0a9b35
NS
97622001-05-16 Nathan Sidwell <nathan@codesourcery.com>
9763
9764 * init.c (member_init_ok_or_else): Take a tree rather than
9765 string for name.
9766 (expand_member_init): Adjust.
9767
8d0cb60d
NC
97682001-05-14 Nick Clifton <nickc@cambridge.redhat.com>
9769
9770 * decl.c (duplicate_decls): Suppress warning about duplicate
749ced52 9771 decls if the first decl is a friend.
8d0cb60d 9772
1f730ff7
ZW
97732001-05-12 Zack Weinberg <zackw@stanford.edu>
9774
9775 * except.c (choose_personality_routine): Export. Add
9776 explanatory comment. Take an enum languages, not a boolean.
9777 (initialize_handler_parm): Adjust to match.
9778 * cp-tree.h: Prototype choose_personality_routine.
9779 * lex.c (handle_pragma_java_exceptions): New function.
9780 (init_cp_pragma): Register #pragma GCC java_exceptions.
9781
90e0c410
NB
97822001-05-12 Neil Booth <neil@cat.daikokuya.demon.co.uk>
9783
9784 * method.c (build_mangled_C99_name): Remove unused prototype.
9785
cb7fdde2
AO
97862001-05-12 Alexandre Oliva <aoliva@redhat.com>
9787
9788 * cp-tree.h (ptrmemfunc_vbit_where_t): Declare type.
9789 * typeck.c (get_member_function_from_ptrfunc,
9790 build_ptrmemfunc, expand_ptrmemfunc_cst): Take
9791 TARGET_PTRMEMFUNC_VBIT_LOCATION into account.
18ae7f63
AO
9792
9793 Reverted Geoff Keating's 2001-05-03's patch.
9794
401deb20
IR
97952001-05-11 Ira Ruben <ira@apple.com>
9796
9797 * cp/cp-tree.h (C_EXP_ORIGINAL_CODE): Delete; declared in c-common.h.
9798
8e93d446
NB
97992001-05-11 Neil Booth <neil@daikokuya.demon.co.uk>
9800
9801 * cp-tree.h (finish_label_expr, lookup_label): Delete.
9802 * parse.y: Update for '&&'; don't issue warning here.
9803 * semantics.c (finish_label_expr): Delete.
9804
5cdba4ff
MM
98052001-05-07 Mark Mitchell <mark@codesourcery.com>
9806
9807 * splay-tree.h (splay_tree_max): New function.
9808 (splay_tree_min): Likewise.
9809
8e9eff6b
GK
98102001-05-03 Geoffrey Keating <geoffk@redhat.com>
9811
9812 * cp-tree.h (enum cp_tree_index): Add CPTI_PFN_VFLAG_IDENTIFIER.
9813 (pfn_vflag_identifier): Define.
9814 Update comment about layout of pointer functions.
9815 (build_ptrmemfunc1): Update prototype.
9816 (expand_ptrmemfunc_cst): Update prototype.
9817 * decl.c (initialize_predefined_identifiers): Initialize
9818 pfn_vflag_identifier.
9819 (build_ptrmemfunc_type): When FUNCTION_BOUNDARY < 16, add
9820 an extra field to the type.
07167a18 9821 * expr.c (cplus_expand_constant): Pass 'flag' between
8e9eff6b
GK
9822 expand_ptrmemfunc_cst and build_ptrmemfunc1.
9823 * typeck.c (get_member_function_from_ptrfunc): When
9824 FUNCTION_BOUNDARY < 16, look at additional field to determine
9825 if a pointer-to-member is a real pointer or a vtable offset.
9826 (build_ptrmemfunc1): Add new parameter to contain extra field.
9827 (build_ptrmemfunc): Pass the extra field around.
9828 (expand_ptrmemfunc_cst): Add new parameter to return extra field.
9829 (pfn_from_ptrmemfunc): Ignore the extra field.
9830
acc72c37
MM
98312001-05-03 Mark Mitchell <mark@codesourcery.com>
9832
9833 * cp-tree.h (flag_inline_trees): Update documentation.
9834 * decl.c (init_decl_processing): Adjust handling of
9835 flag_inline_functions and flag_inline_trees to support -O3.
9836 (grokfndecl): Set DECL_INLINE on all functions if that's what
9837 the user requested.
9838 (save_function_data): Clear DECL_INLINE in
9839 current_function_cannot_inline is non-NULL.
9840 * decl2.c (flag_inline_trees): Update documentation.
9841
5158d7ee
NS
98422001-05-03 Nathan Sidwell <nathan@codesourcery.com>
9843
9844 * dump.c (cp_dump_tree, USING_STMT case): New case.
9845 * tree.c (cp_statement_code_p): Add USING_STMT.
9846 * decl2.c (do_using_directive): Add the using directive statement.
9847
9848 * tree.c (walk_tree): Reformat an if block.
9849
80f5bb34
MM
98502001-05-02 Mark Mitchell <mark@codesourcery.com>
9851
9852 * decl.c (compute_array_index_type): Don't try to do anything with
9853 the indices when processing a template.
9854
3e411c3f
KG
98552001-05-02 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9856
9857 * call.c: NULL_PTR -> NULL.
9858 * class.c: Likewise.
9859 * cvt.c: Likewise.
9860 * decl.c: Likewise.
9861 * decl2.c: Likewise.
9862 * except.c: Likewise.
9863 * init.c: Likewise.
9864 * rtti.c: Likewise.
9865 * search.c: Likewise.
9866 * tree.c: Likewise.
9867 * typeck.c: Likewise.
9868 * typeck2.c: Likewise.
9869
46188dca
MM
98702001-05-02 Mark Mitchell <mark@codesourcery.com>
9871
9872 * decl2.c (do_using_directive): Revert previous patch.
9873
9da99f7d
NS
98742001-05-01 Nathan Sidwell <nathan@codesourcery.com>
9875
9876 * cp-tree.def (USING_STMT): New statement node.
9877 * cp-tree.h (USING_STMT_NAMESPACE): New macro.
9878 * decl2.c (do_using_directive): Add USING_STMT to statement
9879 tree. Don't emit errors when processing template decl.
9880 * pt.c (tsubst_expr, USING_STMT case): New case.
9881 * semantics.c (cp_expand_stmt, USING_STMT case): New case.
9882
4b48a93e
NS
98832001-05-01 Nathan Sidwell <nathan@codesourcery.com>
9884
9885 * call.c (build_new_op): Convert args from reference here.
9886 (build_conditional_expr): Don't convert here.
9887
1bcea8d7
NS
98882001-05-01 Nathan Sidwell <nathan@codesourcery.com>
9889
9890 * spew.c (last_token_id): New static variable.
9891 (read_token): Set it here.
9892 (yyerror): Use it here.
9893
d72040f5
RH
98942001-04-30 Richard Henderson <rth@redhat.com>
9895
749ced52 9896 * cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations.
d72040f5
RH
9897 * decl.c: Likewise.
9898
c3aac512
MM
98992001-04-30 Mark Mitchell <mark@codesourcery.com>
9900
9901 * gxxint.texi: Remove.
9902 * Make-lang.in: Remove all traces of gxxint.texi.
9903
d2a6f3c0 99042001-04-30 Mark P Mitchell <mark@codesourcery.com>
5fd893d5
MM
9905
9906 * decl2.c (start_static_initialization_or_destruction): Correct
9907 logic to handle the -fno-use-cxa-atexit case.
9908
d60e5448
MM
99092001-04-30 Mark Mitchell <mark@codesourcery.com>
9910
9911 * optimize.c (update_cloned_parm): New function.
9912 (maybe_clone_body): Use it. Update the `this' parameter too.
9913
7200764f
JM
99142001-04-29 Joseph S. Myers <jsm28@cam.ac.uk>
9915
9916 * decl2.c (unsupported_options): Add new-abi.
9917 * lang-options.h: Remove no longer supported options.
9918
2d46ec83
NS
99192001-04-27 Nathan Sidwell <nathan@codesourcery.com>
9920
9921 * except.c (can_convert_eh): Don't check template parms,
9922 typename types etc.
9923
02a1a68c
NS
99242001-04-27 Nathan Sidwell <nathan@codesourcery.com>
9925
9926 * optimize.c (maybe_clone_body): Copy parameter names and locations.
9927
5f6eeeb3
NS
99282001-04-27 Nathan Sidwell <nathan@codesourcery.com>
9929
9930 * cp-tree.h (adjust_clone_args): Prototype new function.
9931 * class.c (adjust_clone_args): New function.
9932 * decl.c (start_function): Call it for in charge ctors.
9933
1b28d441
MM
99342001-04-26 Mark Mitchell <mark@codesourcery.com>
9935
9936 * method.c (use_thunk): Make sure that thunks really are emitted
9937 when requested.
9938
0576ec13
NS
99392001-04-26 Nathan Sidwell <nathan@codesourcery.com>
9940
9941 * mangle.c (write_chars): New macro.
9942 (hwint_to_ascii): New function
9943 (write_number): Use it.
9944 (write_integer_cst): Deal with really big numbers.
9945
b96ada87
MM
99462001-04-25 Mark Mitchell <mark@codesourcery.com>
9947
9948 * optimize.c (maybe_clone_body): Copy TREE_PUBLIC before emitting
9949 the clone.
9950
6bda7a5e
NS
99512001-04-25 Nathan Sidwell <nathan@codesourcery.com>
9952
9953 * decl.c (grokdeclarator): Set context of namespace scope
9954 TYPE_DECLS.
9955
11fe225a
ZW
99562001-04-24 Zack Weinberg <zackw@stanford.edu>
9957
9958 * cp/optimize.c: Include hashtab.h.
9959 (struct inline_data): Add tree_pruner.
9960 (expand_call_inline, expand_calls_inline): Use it when calling
9961 walk_tree.
9962 (optimize_function): Initialize and free tree_pruner.
9963
0ba8a114
NS
99642001-04-24 Nathan Sidwell <nathan@codesourcery.com>
9965
9966 Lazy __FUNCTION__ generation.
9967 * cp-tree.def (FUNCTION_NAME): Remove.
9968 * cp-tree.h (function_name_declared_p): Remove.
9969 (cp_fname_init): Prototype.
9970 * decl.c (init_decl_processing): Don't generate __FUNCTION__ et al ids,
9971 don't call declare_function_name. Call start_fname_decls.
9972 (cp_make_fname_decl): Adjust parameters. Generate the name. Don't
9973 clobber the line number.
9974 (cp_fname_init): New function.
9975 (start_function): Call start_fname_decls.
9976 (finish_function): Call finish_fname_decls.
9977 * lex.c (reswords): Add slots for __FUNCTION__ et al.
9978 (rid_to_yy): Add mappings for __FUNCTION__ et al.
9979 * optimize.c (maybe_clone_body): Remove function_name_declared_p.
9980 * parse.y (VAR_FUNC_NAME): New token.
9981 (primary): Add VAR_FUNC_NAME.
9982 * pt.c (tsubst_decl): Adjust a DECL_PRETTY_FUNCTION_P's
9983 generation.
9984 (tsubst, FUNCTION_NAME case): Remove.
9985 (tsubst_copy, FUNCTION_NAME case): Remove.
9986 (tsubst_expr, DECL_STMT case): Be careful with a
9987 DECL_PRETTY_FUNCTION_P.
9988 (instantiate_decl): Remove function_name_declared_p.
9989 * semantics.c (begin_compound_statement): Don't call
9990 declare_function_name here.
9991 (setup_vtbl_ptr). Don't save & restore function_name_declared_p.
9992 (finish_translation_unit): Call finish_fname_decls.
9993 (expand_body): Remove function_name_declared_p.
9994 * typeck2.c (digest_init): Allow any ERROR_MARK.
9995
dfbb4f34
NS
99962001-04-24 Nathan Sidwell <nathan@codesourcery.com>
9997
9998 * pt.c (tsubst_decl): Use VOID_TYPE_P.
9999 * semantics.c: Fix some typos.
10000
e2584c52
PE
100012001-04-23 Phil Edwards <pme@sources.redhat.com>
10002
10003 * cp/decl2.c (flag_honor_std): Always initialize to 1.
10004
d4c3ec27
KG
100052001-04-22 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10006
10007 * xref.c (GNU_xref_file): Use concat in lieu of xmalloc/sprintf.
10008
2ac8a0f9
JM
100092001-04-23 Jason Merrill <jason_merrill@redhat.com>
10010
10011 * except.c (build_throw): Wrap the initialization of the exception
10012 object in a MUST_NOT_THROW_EXPR.
10013 (do_free_exception): #if 0.
10014
968b956a
MM
100152001-04-20 Mark Mitchell <mark@codesourcery.com>
10016
10017 * cp-tree.h (finish_enum): Change prototype.
10018 * decl.c (finish_enum): Reorganize.
10019 * parse.y (structsp): Adjust calls to finish_enum.
11fe225a 10020
aa1826e2
NS
100212001-04-20 Nathan Sidwell <nathan@codesourcery.com>
10022
10023 * tree.c (cp_tree_equal): Adjust final switch formatting. Add
10024 't' case.
10025
06d9f09f
NS
100262001-04-20 Nathan Sidwell <nathan@codesourcery.com>
10027
10028 * class.c (dfs_unshared_virtual_bases): Add ATTRIBUTE_UNUSED.
10029 (layout_empty_base): Return at end flag.
10030 (build_base_field): Likewise.
10031 (build_base_fields): Likewise.
10032 (layout_virtual_bases): Don't add 1 to eoc value.
10033 (end_of_class): Use full size for empty bases.
10034 (layout_class_type): Clear CLASSNEARLY_EMPTY_P if we appended
10035 empty bases. Don't add 1 to eoc value. Only add trailing padding
10036 if we're an empty class with no empty bases.
10037 (dump_class_hierarchy): Dump size and alignment.
10038
351a0f00
JJ
100392001-04-20 Jakub Jelinek <jakub@redhat.com>
10040
10041 * call.c (maybe_handle_ref_bind): Copy ICS_USER_FLAG and
10042 ICS_BAD_FLAG.
10043
881cae05
JJ
100442001-04-20 Jakub Jelinek <jakub@redhat.com>
10045
10046 * search.c (lookup_field_r): If looking for type and non-TYPE_DECL
10047 is found, look first if name does not match the structure name.
10048
5d2ed28c
MM
100492001-04-19 Mark Mitchell <mark@codesourcery.com>
10050
10051 * cp-tree.h (DECL_LANGUAGE): Don't assume DECL_LANG_SPECIFIC is
10052 set.
10053 (SET_DECL_LANGUAGE): New macro.
10054 * decl.c (duplicate_decls): Use SET_DECL_LANGUAGE.
10055 (pushdecl): Likewise.
10056 (build_library_fn_1): Likewise.
10057 (build_cp_library_fn): Likewise.
10058 (grokfndecl): Likewise.
10059 (grokvardecl): Mark `extern "C"' variables as having C linkage.
10060 * decl2.c (grokclassfn): Use SET_DECL_LANGUAGE.
10061 * lex.c (retrofit_lang_decl): Likewise.
10062 * mangle.c (mangle_decl_string): Don't mangle the names of
10063 variables declared with C language linkage.
10064 * semantics.c (finish_member_declaration): Use SET_DECL_LANGUAGE.
11fe225a 10065
41251458
JDA
100662001-04-18 John David Anglin <dave@hiauly1.hia.nrc.ca>
10067
10068 * semantics.c (simplify_aggr_init_exprs_r): Don't restore
10069 flag_access_control from uninitialized storage.
10070
1b4a93f7
MM
100712001-04-15 Mark Mitchell <mark@codesourcery.com>
10072
24272dc0
MM
10073 * cp-tree.h (TYPE_PTRMEM_CLASS_TYPE): Improve documentation.
10074 * mangle.c (write_pointer_to_member_type): Fix mangling of
10075 pointers to cv-qualified member function types.
10076
1b4a93f7
MM
10077 * init.c (build_delete): Create a SAVE_EXPR for the address if
10078 we're going to use it more than once.
10079
530ec96d
MM
100802001-04-13 Mark Mitchell <mark@codesourcery.com>
10081
10082 * cp-tree.h (DELTA2_FROM_PTRMEMFUNC): Remove.
10083 (expand_ptremfunc_cst): Change prototype.
10084 (delta2_from_ptrmemfunc): Remove.
10085 * expr.c (cplus_expand_constant): Adjust call to
10086 expand_ptrmemfunc_cst.
10087 * typeck.c (build_ptrmemfunc1): Simplify.
10088 (build_ptrmemfunc): Make sure that casting a PTRMEM_CST still
10089 results in a constant.
10090 (expand_ptrmemfunc_cst): Remove idx and delta2 parameters.
10091 (delta2_from_ptrmemfunc): Remove.
10092 (pfn_from_ptrmemfunc): Adjust call to expand_ptrmemfunc_cst.
11fe225a 10093
ee8fc32b
JM
100942001-04-12 Jason Merrill <jason_merrill@redhat.com>
10095
10096 * cp-tree.h (decl_namespace_list): New macro.
10097 (struct saved_scope): Add decl_ns_list.
10098 * decl.c (mark_saved_scope): Mark it.
10099 * decl2.c: Lose static decl_namespace_list.
10100 (init_decl2): Don't save it.
10101
48857160
KG
101022001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10103
10104 * cp-tree.h (warn_return_type, yylex): Delete redundant
10105 declarations.
11fe225a 10106
48857160
KG
10107 * decl.c (current_class_depth, global_namespace): Likewise.
10108
10109 * decl2.c (current_class_depth, flag_gnu_xref): Likewise
10110
10111 * repo.c (flag_use_repository): Likewise.
10112
845e14ed
KG
101132001-04-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10114
10115 * cp-tree.h (pedantic, convert, global_bindings_p, insert_block,
10116 set_block, pushdecl, getdecls, gettags, init_decl_processing,
10117 maybe_build_cleanup, copy_lang_decl, prep_stmt, lvalue_p,
10118 lvalue_or_else, print_lang_statistics, comp_target_types,
10119 unsigned_type, signed_type, signed_or_unsigned_type,
10120 build_function_call, mark_addressable, incomplete_type_error):
10121 Delete redundant declarations.
10122
1951a1b6
JM
101232001-04-11 Jason Merrill <jason_merrill@redhat.com>
10124
10125 * cp-tree.h (TYPE_LINKAGE_IDENTIFIER): New macro.
10126 (TYPE_ANONYMOUS_P): New macro.
10127 (TAGGED_TYPE_P): New macro.
10128 * decl.c (check_tag_decl): Use TYPE_ANONYMOUS_P.
10129 (grokfndecl, grokvardecl, grokdeclarator): Likewise.
10130 * tree.c (no_linkage_helper): Likewise.
10131 * semantics.c (begin_class_definition): Likewise.
10132 * pt.c (convert_template_argument): Likewise.
10133 * lex.c (check_for_missing_semicolon): Likewise.
10134
0fb3018c
NS
101352001-04-12 Nathan Sidwell <nathan@codesourcery.com>
10136
10137 * class.c (dfs_unshared_virtual_bases): New function.
10138 (mark_primary_bases): Call it.
10139 (check_bases): Ignore virtual bases when determining
10140 nearly-emptiness.
10141
bbb53468
NS
101422001-04-12 Nathan Sidwell <nathan@codesourcery.com>
10143
10144 * method.c (make_thunk): Clear DECL_CLONED_FUNCTION.
10145
9b7949d5
MM
101462001-04-11 Mark Mitchell <mark@codesourcery.com>
10147
10148 * optimize.c (maybe_clone_body): Copy DECL_NUM_STMTS from the
10149 cloned function to the clone.
10150
d6684bc8
KG
101512001-04-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10152
10153 * Make-lang.in (cp/semantics.o): Depend on $(EXPR_H).
10154
10155 * semantics.c: Include expr.h.
10156
a2095778
NS
101572001-04-11 Nathan Sidwell <nathan@codesourcery.com>
10158
10159 * method.c (implicitly_declare_fn): Commonize code for copy ctor
10160 and assignment op. Set TREE_USED for parameter.
10161
78b45a24
MM
101622001-04-10 Mark Mitchell <mark@codesourcery.com>
10163
10164 * class.c (find_final_overrider_data): Add `candidates'.
10165 (dfs_find_final_overrider): Don't issue error messages
10166 prematurely.
10167 (find_final_overrider): Issue error messages here.
10168 (build_base_field): Don't warn about amgibuous direct bases here.
10169 (warn_about_ambiguous_direct_bases): New function.
10170 (layout_class_type): Use it.
10171
0450d74d
RH
101722001-04-10 Richard Henderson <rth@redhat.com>
10173
10174 * typeck.c (build_array_ref): Push the array reference inside
10175 COMPOUND_EXPR and COND_EXPR.
10176
79065db2
MM
101772001-04-05 Mark Mitchell <mark@codesourcery.com>
10178
10179 * cp-tree.h (DECL_THIS_INLINE): Rename to DECL_DECLARED_INLINE_P.
10180 * decl.c (duplicate_decls): Adjust accordingly.
10181 (maybe_commonize_var): Likewise.
10182 (grokfndecl): Likewise.
10183 (start_function): Likewise.
10184 (start_method): Likewise.
10185 * decl2.c (key_method): Likewise.
10186 (import_export_decl): Likewise.
10187 * method.c (implicitly_declare_fn): Likewise.
10188 * optimize.c (maybe_clone_body): Likewise.
11fe225a 10189
fdecbf8a
BK
101902001-04-05 Benjamin Kosnik <bkoz@redhat.com>
10191
b03eced6 10192 * lang-specs.h: Add __DEPRECATED.
fdecbf8a 10193
d2a6f3c0 101942001-04-05 J"orn Rennecke <amylaar@redhat.com>
0b4c1646
R
10195
10196 * search.c (get_dynamic_cast_base_type): When building a new
10197 constant, set its type to ssizetype.
10198
e59d6709
JJ
101992001-04-04 Jakub Jelinek <jakub@redhat.com>
10200
10201 * optimize.c (expand_call_inline): Only add newly inlined statements
10202 into inlined_stmts.
10203
0c918ce5
MM
102042001-04-03 Mark Mitchell <mark@codesourcery.com>
10205
10206 * cp-tree.h (OPERATOR_ASSIGN_FORMAT): Remove.
10207 (OPERATOR_FORMAT): Likewise.
10208 (OPERATOR_TYPENAME_FORMAT): Likewise.
10209 * operators.def: Remove old name-mangling information.
10210 * decl.c (grok_op_properties): Adjust accordingly.
10211 * lex.c (init_operators): Likewise.
10212 * rtti.c (get_tinfo_decl): Issue error messages about types that
10213 have variable size.
10214
92788413
MM
102152001-04-03 Mark Mitchell <mark@codesourcery.com>
10216
11fe225a 10217 * decl2.c (import_export_decl): Don't call import_export_class
92788413
MM
10218 when processing an inline member function.
10219 * semantics.c (expand_body): Call import_export_decl before
10220 emitting inline functions.
10221
52a11cbf
RH
102222001-03-28 Richard Henderson <rth@redhat.com>
10223
10224 IA-64 ABI Exception Handling:
10225 * cp-tree.def (EH_SPEC_BLOCK): New.
10226 (MUST_NOT_THROW_EXPR): New.
10227 * cp-tree.h: Update changed function declarations.
10228 (CPTI_PUSH_EXCEPTION_IDENTIFIER): Remove.
10229 (CPTI_CALL_UNEXPECTED): New.
10230 (struct cp_language_function): Rename x_eh_spec_try_block
10231 to x_eh_spec_block.
10232 (EH_SPEC_STMTS, EH_SPEC_RAISES): New.
11fe225a 10233 * decl.c (current_binding_level): If no current function
52a11cbf
RH
10234 bindings, revert to scope_chain.
10235 (initialize_predefined_identifiers): Remove __cp_push_exception.
10236 (store_parm_decls): Use begin_eh_spec_block.
10237 (finish_function): Use finish_eh_spec_block.
10238 (mark_lang_function): Update for name changes.
10239 * decl2.c (finish_file): No mark_all_runtime_matches.
10240 * dump.c (cp_dump_tree): Handle new tree codes.
10241 * error.c (dump_expr) [BIND_EXPR]: Fix typo.
10242 * except.c (catch_language_init, catch_language): Remove.
10243 (init_exception_processing): Don't set language code.
10244 Initialize call_unexpected_node, protect_cleanup_actions,
10245 eh_personality_libfunc, lang_eh_runtime_type.
10246 (call_eh_info, push_eh_info, get_eh_info, get_eh_value): Remove.
10247 (get_eh_type, get_eh_caught, get_eh_handlers): Remove.
10248 (prepare_eh_type): Split out type canonicalizations ...
10249 (build_eh_type_type): ... from here.
10250 (build_eh_type_type_ref): Remove.
10251 (mark_all_runtime_matches): Remove.
10252 (build_exc_ptr): New.
10253 (do_begin_catch, do_end_catch): New.
10254 (do_pop_exception): Remove.
10255 (build_terminate_handler): Remove.
10256 (choose_personality_routine): Split out language choice from ...
10257 (initialize_handler_parm): ... here.
10258 Use MUST_NOT_THROW_EXPR.
10259 (expand_start_catch_block): Use do_begin_catch. Simplify Java
10260 exception object handling.
10261 (expand_start_eh_spec, expand_end_eh_spec): Remove.
10262 (expand_exception_blocks, alloc_eh_object): Remove.
10263 (begin_eh_spec_block, finish_eh_spec_block): New.
10264 (do_allocate_exception, do_free_exception): New.
10265 (expand_throw): Merge into ...
10266 (build_throw): ... here. Update for abi.
10267 * expr.c (cplus_expand_expr): No expand_internal_throw.
10268 Handle MUST_NOT_THROW_EXPR.
10269 * pt.c (tsubst_expr): Handle EH_SPEC_BLOCK.
10270 * semantics.c (*) Update for except.h name changes.
10271 (genrtl_try_block): No protect_with_terminate.
10272 (genrtl_eh_spec_block): New.
10273 (genrtl_handler): Don't emit the goto here.
10274 (cp_expand_stmt): Handle EH_SPEC_BLOCK.
10275 (genrtl_finish_function): Don't expand_exception_blocks.
10276 * tree.c (cp_statement_code_p): Handle EH_SPEC_BLOCK.
10277
826840d9
RH
102782001-03-28 Richard Henderson <rth@redhat.com>
10279
10280 * decl.c (struct named_label_list): Rename eh_region to
10281 in_try_scope, add in_catch_scope.
10282 (struct binding_level): Rename eh_region to is_try_scope,
10283 add is_catch_scope.
10284 (note_level_for_try): Rename from note_level_for_eh.
10285 (note_level_for_catch): New.
10286 (poplevel): Copy both is_try_scope and is_catch_scope to
10287 the named_label_list struct.
10288 (check_previous_goto_1): Don't check for catch block via
10289 DECL_ARTIFICIAL; use in_try_scope instead.
10290 (check_goto): Likewise.
10291 * cp-tree.h (note_level_for_try, note_level_for_catch): Declare.
10292 * except.c (expand_start_catch_block): Call note_level_for_catch.
10293 * semantics.c (begin_compound_stmt): Update for note_level_for_try.
10294
531073e7
RH
102952001-03-27 Richard Henderson <rth@redhat.com>
10296
10297 * except.c: Use USING_SJLJ_EXCEPTIONS instead of
10298 exceptions_via_longjmp.
10299
8653a2c3
PE
103002001-03-27 Phil Edwards <pme@sources.redhat.com>
10301
10302 * pt.c (check_default_tmpl_args): Make error messages clearer.
10303
103042001-03-26 Phil Edwards <pme@sources.redhat.com>
10305
10306 * error.c: Also undefine 'A' macro used for cp_printers definition.
10307
911e6107
KG
103082001-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10309
10310 * Make-lang.in: Depend on $(SYSTEM_H), not system.h.
10311
005a5cb0
MY
103122001-03-26 Mike Yang <yang@research.att.com>
10313 Mark Mitchell <mark@codesourcery.com>
10314
10315 * dump.c (dump_access): New function.
10316 (cp_dump_tree): Use it. Dump basetype information for class
10317 types.
10318
b850de4f
MM
103192001-03-26 Mark Mitchell <mark@codesourcery.com>
10320
10321 * Makefile.in (optimize.o): Depend on params.h.
10322 (duplicate_decls): Copy DECL_NUM_STMTS, not DECL_FRAME_SIZE.
10323 (init_decl_processing): Set flag_no_inline when doing
10324 inlining-on-trees.
10325 * optimize.c: Include params.h.
10326 (struct inline_data): Improve documentation of FNS. Add
10327 FIRST_INLINED_FN, INLINED_STMTS, and CLONING_P.
10328 (INSNS_PER_STMT): New macro.
10329 (remap_block): Use CLONING_P.
10330 (inlinable_function_p): Don't inline big functions.
10331 (expand_call_inline): Keep track of how much inlining we've done.
10332 (optimize_function): Set FIRST_INLINED_FN.
10333 (maybe_clone_body): Set CLONING_P.
10334 * semantics.c (simplify_aggr_init_exprs_r): Fix typing problems in
10335 tree nodes.
10336 (genrtl_finish_function): Clear DECL_DEFER_OUTPUT before calling
10337 rest_of_compilation. Clear DECL_RTL for local variables
10338 afterwards.
10339 (clear_decl_rtl): New function.
11fe225a 10340
788bf0e3
NS
103412001-03-26 Nathan Sidwell <nathan@codesourcery.com>
10342
10343 Implement DR 209
10344 * cp-tree.h (skip_type_access_control,
10345 reset_type_access_control): Prototype.
10346 * decl.c (grokdeclarator): Access of friends is not checked.
10347 * parse.y (component_decl_list): Reset type access control.
10348 * semantics.c (decl_type_access_control): Clear
10349 current_type_lookups.
10350 (save_type_access_control): Don't save if not deferring.
10351 (skip_type_access_control, reset_type_access_control): New
10352 functions.
10353 (begin_class_definition): Do type access control for basetypes.
10354 Start deferred access control.
10355 (finish_class_definition): Resume immediate access control if
10356 this is a local class.
10357
730e1556
KG
103582001-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
10359
10360 * class.c (add_method): Use memcpy/memmove, not bcopy.
10361
10362 * decl.c (duplicate_decls): Likewise.
10363
f1a0345c
JJ
103642001-03-23 Jakub Jelinek <jakub@redhat.com>
10365
10366 * mangle.c (write_discriminator): Use `_0' for discriminator 1,
10367 not `_'.
10368
8e4ce833
JJ
103692001-03-23 Jakub Jelinek <jakub@redhat.com>
10370
10371 * decl.c (local_names): Define.
10372 (push_local_name): New.
10373 (grok_reference_init): Return init if initializing static reference
10374 variable with non-constant instead of emitting it.
10375 Move expand_static_init call to cp_finish_decl.
10376 (layout_var_decl): Call push_local_name.
10377 (maybe_commonize_var): Allow inlining functions even if they have
10378 static local variables, use comdat_linkage for them if flag_weak.
10379 (check_initializer): Call obscure_complex_init if
838dfd8a 10380 grok_reference_init returned nonzero.
8e4ce833
JJ
10381 (save_function_data): Clear x_local_names.
10382 (pop_cp_function_context): Free x_local_names.
10383 (mark_inlined_fns): Remove.
10384 (mark_lang_function): Mark x_local_names.
10385 (lang_mark_tree): Don't mark DECL_ACCESS for DECL_DISCRIMINATOR_P.
10386 Mark inlined_fns as tree, remove call to mark_inlined_fns.
10387 * class.c (alter_access): Ensure DECL_ACCESS is never set if
10388 DECL_DISCRIMINATOR_P.
10389 * cp-tree.h (cp_language_function): Add x_local_names.
10390 (lang_decl_flags): Add discriminator into u2.
10391 (lang_decl_inlined_fns): Remove.
10392 (lang_decl): inlined_fns is now a TREE_VEC.
10393 (DECL_DISCRIMINATOR_P, DECL_DISCRIMINATOR): Define.
10394 * optimize.c (inlinable_function_p): DECL_INLINED_FNS is now a
10395 TREE_VEC, not a custom structure.
10396 (optimize_function): Likewise.
10397 * mangle.c (discriminator_for_local_entity): Discriminate among
10398 VAR_DECL local entities.
10399 * search.c (dfs_access_in_type): If DECL_DISCRIMINATOR_P, DECL_ACCESS
10400 is not valid.
10401
60c87482
BM
104022001-03-22 Bryce McKinlay <bryce@albatross.co.nz>
10403
10404 Add support for Java interface method calls.
10405 * cp-tree.h (struct lang_type): Add java_interface flag.
10406 (TYPE_JAVA_INTERFACE): New macro.
10407 * tree.c (cp_valid_lang_attribute): Handle "java_interface" attribute
10408 by setting TYPE_JAVA_INTERFACE.
10409 * call.c (java_iface_lookup_fn): New static.
11fe225a 10410 (build_over_call): If calling a method declared in a
60c87482
BM
10411 TYPE_JAVA_INTERFACE, call build_java_interface_fn_ref to generate the
10412 expression which resolves the function address.
10413 (build_java_interface_fn_ref): New function.
10414
94c7f30b
RH
104152001-03-22 Richard Henderson <rth@redhat.com>
10416
10417 * Make-lang.in (cp/except.o): Don't depend on insn-flags.h.
10418 * except.c: Don't include it.
10419
fd8b7a0e 104202001-03-22 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
826840d9 10421 based on an idea from Joe Buck <jbuck@synopsys.com>
fd8b7a0e
GP
10422
10423 * parse.y (bad_decl, template_arg_list_ignore, arg_list_ignore):
10424 New nonterminals.
10425 (data_def, component_decl): Add reductions to bad_decl.
10426
a1c2b86d
JJ
104272001-03-22 Jakub Jelinek <jakub@redhat.com>
10428
10429 * method.c (do_build_assign_ref): Don't use build_modify_expr for
10430 anonymous aggregates, since they don't have assignment operator
10431 method.
10432 * decl.c (fixup_anonymous_aggr): Disallow ctors, dtors and copy
10433 assignment operators for anonymous structure fields.
10434
46ccf50a
JM
104352001-03-21 Jason Merrill <jason@redhat.com>
10436
10437 * pt.c (instantiate_decl): Abort if we see a member constant
10438 instantiation that doesn't already have its initializer.
10439 Downgrade explicit instantiation without definition to pedwarn.
10440
10441 * cp-tree.h (DECL_TINFO_FN_P, SET_DECL_TINFO_FN_P): Remove.
10442 * class.c (build_vtable_entry): Don't check DECL_TINFO_FN_P.
10443 (import_export_decl): Check tinfo_decl_p, not DECL_TINFO_FN_P.
10444
10445 * cp-tree.h (CLASSTYPE_VTABLE_NEEDS_WRITING): Remove.
10446 (pending_vtables): Remove.
10447 * decl2.c (pending_vtables): Remove.
10448 (import_export_vtable): Use CLASSTYPE_INTERFACE_ONLY, not
10449 CLASSTYPE_VTABLE_NEEDS_WRITING.
10450 (import_export_class): Likewise.
10451 (init_decl2): Don't mark pending_vtables.
10452 * lex.c (handle_pragma_vtable): Just sorry.
10453 * pt.c (instantiate_class_template): Don't mess with
10454 CLASSTYPE_VTABLE_NEEDS_WRITING.
10455 (mark_class_instantiated): Likewise.
10456 * ptree.c (print_lang_type): Don't print it.
10457 * semantics.c (begin_class_definition): Don't set it.
10458
10459 * pt.c (template_tail): Replace with last_pending_template.
10460 (maybe_templates, maybe_template_tail): Remove.
10461 (add_pending_template): Adjust.
10462 (instantiate_pending_templates): Adjust.
10463
10464 * cp-tree.h (struct saved_scope): Remove lang_stack field.
10465 (current_lang_stack): Remove.
10466 * decl.c (maybe_push_to_top_level): Don't initialize it.
10467 (duplicate_decls): Use current_lang_depth.
10468 (xref_basetypes): Likewise.
10469 * class.c (current_lang_depth): New fn.
10470 (push_lang_context): Use more varray functionality.
10471 (pop_lang_context): Likewise.
64d9c3fe
JM
10472
10473 * error.c (GLOBAL_THING): Always use '__'.
10474
1c06710a
MM
104752001-03-21 Mark Mitchell <mark@codesourcery.com>
10476
71cb9286
MM
10477 * class.c (build_clone): Clear DECL_ASSEMBLER_NAME.
10478
1c06710a
MM
10479 * mangle.c (mangle_decl_string): Mangle the names of overloaded
10480 operators, even when they have `extern "C"' linkage.
10481
92643fea
MM
104822001-03-19 Mark Mitchell <mark@codesourcery.com>
10483
10484 * class.c (get_vtable_decl): Use SET_DECL_ASSEMBLER_NAME,
10485 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
10486 where it's not necessary.
10487 (add_method): Remove optimization involving comparison of
10488 DECL_ASSEMBLER_NAME.
10489 (build_vtbl_or_vbase_field): Use SET_DECL_ASSEMBLER_NAME,
10490 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
10491 where it's not necessary.
10492 (check_methods): Likewise.
10493 (build_clone): Likewise.
10494 (built_vtt): Likewise.
10495 * cp-tree.h (DECL_NEEDED_P): Likewise.
10496 * decl.c (pushtag): Likewise.
10497 (duplicate_decls): Likewise.
10498 (pushdecl): Likewise.
10499 (builtin_function): Likewise.
10500 (build_library_fn_1): Set DECL_LANGUAGE for library functions.
10501 (build_cp_library_fn): Likewise.
10502 (maybe_commonize_var): Use SET_DECL_ASSEMBLER_NAME,
10503 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
10504 where it's not necessary.
10505 (make_rtl_for_nonlocal_decl): Likewise.
10506 (cp_finish_decl): Likewise.
10507 (grokfndecl): Likewise.
10508 (grokvardecl): Likewise.
10509 (grokdeclarator): Likewise.
10510 (start_function): Likewise.
10511 (cp_missing_return_ok_p): Likewise.
10512 * decl2.c (grokclassfn): Likewise.
10513 (check_classfn): Likewise.
10514 (finish_static_data_member_decl): Likewise.
10515 (grokfield): Likewise.
10516 * error.c (GLOBAL_IORD_P): Remove.
10517 (dump_global_iord): Improve output.
10518 (dump_decl): Avoid using DECL_ASSEMBLER_NAME.
10519 * except.c (nothrow_libfn_p): Summarily reject any function not in
10520 namespace-scope.
10521 * init.c (build_java_class_ref): Don't explicitly set
10522 DECL_ASSEMBLER_NAME after calling mangle_decl.
10523 * mangle.c (mangle_decl_string): Handle extern "C" functions.
10524 (mangle_decl): Set the DECL_ASSEMBLER_NAME for the decl.
10525 * method.c (set_mangled_name_for_decl): Don't explicitly set
10526 DECL_ASSEMBLER_NAME after calling mangle_decl.
10527 (make_thunk): Explicitly set the DECL_ASSEMBLER_NAME and
10528 IDENTIFIER_GLOBAL_VALUE for the thunk.
10529 * pt.c (set_mangled_name_for_template_decl): Remove.
10530 (check_explicit_specialization): Don't use it.
10531 (looup_template_class): Don't set DECL_ASSEMBLER_NAME.
10532 (tsubst_friend_function): Likewise.
10533 (tsubst_decl): Likewise.
10534 (regenerate_decl_from_template): Use COPY_DECL_ASSEMBLER_NAME.
10535 * rtti.c (get_tinfo_decl): Use SET_DECL_ASSEMBLER_NAME,
10536 COPY_DECL_ASSEMBLER_NAME, etc. Don't set DECL_ASSEMBLER_NAME
10537 where it's not necessary.
10538 (tinfo_base_init): Likewise.
10539 (create_real_tinfo_var): Likewise.
10540 * search.c (looup_field_1): Likewise.
10541 * semantics.c (finish_named_return_value): Likewise.
10542 * tree.c (init_tree): Set lang_set_decl_assembler_name.
11fe225a 10543
d064d75a
GDR
105442001-03-15 Gabriel Dos Reis <gdr@codesourcery.com>
10545
10546 Correct semantics restrictions checking in throw-expression.
10547 * except.c (is_admissible_throw_operand): New function.
10548 (build_throw): Use it.
10549
a3eab619
MM
105502001-03-14 Mark Mitchell <mark@codesourcery.com>
10551
10552 * decl.c (cp_make_fnname_decl): Set DECL_IGNORED_P on __FUNCTION__
10553 and its ilk.
10554
19e7881c
MM
105552001-03-14 Mark Mitchell <mark@codesourcery.com>
10556
10557 * class.c (build_clone): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
10558 * cp-tree.h (DECL_IN_MEMORY_P): Likewise.
10559 * decl.c (duplicate_decls): Likewise.
10560 (builtin_function): Likewise.
10561 (build_library_fn): Likewise.
10562 (build_cp_library_fn): Likewise.
10563 (check_initializer): Likewise.
10564 (cp_finish_decl): Likewise.
10565 * decl2.c (grokfield): Likewise.
10566 (grok_function_init): Remove #if 0'd code.
10567 (finish_anon_union): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
10568 * friend.c (do_friend): Likewise.
10569 * init.c (get_temp_regvar): Likewise.
10570 * method.c (make_thunk): Likewise.
10571 * pt.c (tsubst_friend_function): Likewise.
10572 (tsubst_decl): Likewise.
10573 (regenerate_decl_from_template): Likewise.
10574 * semantics.c (genrtl_named_return_value): Likewise.
10575 (expand_body): Likewise.
10576 (genrtl_finish_function): Likewise.
10577 * tree.c (cp_tree_equal): Likewise.
11fe225a 10578
78fe06c2
NS
105792001-03-12 Nathan Sidwell <nathan@codesourcery.com>
10580
10581 * call.c (convert_like_real): Add extra semantics to INNER
10582 parameter. Don't convert to temporary if a user conversion
10583 gives us an lvalue that we're about to bind to a reference.
10584 Set INNER to indicate pending reference binding on recursive
10585 calls.
10586
b3e68a79
NB
105872001-03-10 Neil Booth <neil@daikokuya.demon.co.uk>
10588
10589 * cp/lex.c: Delete duplicate pending_lang_change.
10590
105912001-03-10 Neil Booth <neil@daikokuya.demon.co.uk>
10592
10593 * cp/lex.c (handle_pragma_interface, handle_pragma_implementation):
10594 Similarly.
10595 * cp/repo.c (get_base_filename, open_repo_file): Similarly.
10596 * cp/cp-tree.h: Remove file_name_nondirectory prototype.
10597
11642c3a
ZW
105982001-03-09 Zack Weinberg <zackw@stanford.edu>
10599
10600 * Make-lang.in: Add dependencies on $(TM_P_H) as appropriate.
10601
bb6852eb 106022001-03-08 Stan Shebs <shebs@apple.com>
f7687817
SS
10603
10604 * cp-tree.h (set_identifier_local_value): Remove unused decl.
10605
cc937581
ZW
106062001-03-06 Zack Weinberg <zackw@stanford.edu>
10607
10608 * spew.c: Remove references to CPP_OSTRING.
10609
d1188d91
AH
106102001-03-06 Andrew Haley <aph@redhat.com>
10611
10612 * typeck.c (convert_arguments): Check that we have an fndecl.
10613
4eaf1d5b
AH
106142001-03-05 Andrew Haley <aph@redhat.com>
10615
10616 * typeck.c (convert_arguments): Don't do ellipsis conversion for
10617 __built_in_constant_p.
10618
7eeb553c
NS
106192001-03-02 Nathan Sidwell <nathan@codesourcery.com>
10620
10621 * typeck.c (build_static_cast): Allow enum to enum conversions
10622 as per DR 128.
10623
d282fcb2
NS
106242001-03-02 Nathan Sidwell <nathan@codesourcery.com>
10625
10626 * class.c (check_field_decls): Pointers to member do not a
10627 non-pod struct make, as per DR 148.
10628
f86fdf68
NS
106292001-03-02 Nathan Sidwell <nathan@codesourcery.com>
10630
10631 * call.c (joust): cp_pedwarn when using gnu extension concerning
10632 worst conversion sequences.
10633
d6edb99e
ZW
106342001-03-01 Zack Weinberg <zackw@stanford.edu>
10635
10636 * decl.c: Replace all uses of 'boolean' with 'bool'.
10637
f7143427
ZW
106382001-03-01 Zack Weinberg <zackw@stanford.edu>
10639
10640 * lang-specs.h: Add zero initializer for cpp_spec field to
10641 all array elements that need one. Don't put an #ifdef inside
10642 the initializer list; set a default for CPLUSPLUS_CPP_SPEC and
10643 use it.
10644
fbfe8c9e
NS
106452001-03-01 Nathan Sidwell <nathan@codesourcery.com>
10646
10647 Implement using decls inside template functions.
10648 * decl2.c (validate_nonmember_using_decl): Don't special case
10649 fake_std_node in the global namespace. Don't reject early when
10650 processing a template.
10651 (do_local_using_decl): Add to statement tree. Don't do further
10652 processing when building a template.
10653 * pt.c (tsubst_expr, DECL_STMT case): Deal with USING_DECLs.
10654
4d24a889
NS
106552001-03-01 Nathan Sidwell <nathan@codesourcery.com>
10656
10657 * decl2.c (do_nonmember_using_decl): Don't complain if we find
10658 same function. Do complain about ambiguating extern "C"
10659 declarations.
10660
e5844e6d
NS
106612001-02-28 Nathan Sidwell <nathan@codesourcery.com>
10662
10663 Remove floating point and complex type template constant parms.
10664 * pt.c (convert_nontype_argument): Remove REAL_TYPE and
10665 COMPLEX_TYPE extensions.
10666 (invalid_nontype_parm_type_p): Likewise.
10667
788f238c
JO
106682001-02-27 Jeffrey Oldham <oldham@codesourcery.com>
10669
10670 * except.c (call_eh_info): Revert "match_function"'s type.
10671
73ea87d7
NS
106722001-02-27 Nathan Sidwell <nathan@codesourcery.com>
10673
10674 Fix ctor vtable vcall offsets.
10675 * class.c (struct vtbl_init_data_s): Add rtti_binfo member.
10676 (build_rtt_vtbl_entries): Lose RTTI_BINFO parameter.
10677 (get_matching_base): Remove.
10678 (get_original_base): New function.
11fe225a 10679 (build_vtbl_initializer): Initialize vid.rtti_binfo.
73ea87d7
NS
10680 Use a virtual thunk for a ctor vtable with an index
10681 (add_vcall_offset_vtbl_entries_1): Check if binfo has lost a
10682 primary base within a constructor vtable. Only set
10683 BV_VCALL_INDEX when not a constructor vtable. Adjust vcall offset
10684 when primary base has been lost.
10685 * cp-tree.h (BINFO_VIRTUALS): Remove ambiguity from comment.
10686
fe730161
JO
106872001-02-26 Jeffrey Oldham <oldham@codesourcery.com>
10688
10689 * call.c (joust): Ensure more_specialized()'s argument length
10690 parameter has correct value for constructors.
10691
e5dd4aad
NS
106922001-02-26 Nathan Sidwell <nathan@codesourcery.com>
10693
10694 * except.c (call_eh_info): Cleanup generation of cp_eh_info struct.
11fe225a 10695
e5dd4aad
NS
10696 * decl.c (mark_inlined_fns): Prototype.
10697
25200ab2
MM
106982001-02-22 Mark Mitchell <mark@codesourcery.com>
10699
10700 * spew.c (yylex): Correct handling of friends.
10701
f58c04ac
MM
107022001-02-22 Mark Mitchell <mark@codesourcery.com>
10703
10704 * mangle.c (write_encoding): Pass write_function_type the
10705 FUNCTION_DECL for the function being encoded.
10706 (write_function_type): Pass it along to write_bare_function_type.
10707 (write_bare_function_type): Pass it along to write_method_parms.
10708 (write_method_parms): Don't mangle the compiler-generated
10709 parameters to a constructor or destructor.
10710
9c96f3f8
AJ
107112001-02-22 Andreas Jaeger <aj@suse.de>
10712
10713 * optimize.c: Include toplev.h for
10714 note_deferral_of_defined_inline_function prototype.
10715
b3bae5e2
JJ
107162001-02-22 Jakub Jelinek <jakub@redhat.com>
10717
10718 * cp-tree.h (struct lang_decl_inlined_fns): New.
10719 (struct lang_decls): Add inlined_fns.
10720 (DECL_INLINED_FNS): New macro.
10721 * optimize.c (struct inline_data): Add inlined_fns.
10722 (declare_return_variable): Use VARRAY_ACTIVE_SIZE macro.
10723 (inlinable_function_p): Likewise, fix typo in comment,
10724 function is not inlinable if it already inlined function currently
10725 being optimized.
306ef644 10726 (expand_call_inline): Add fn to inlined_fns if necessary.
b3bae5e2
JJ
10727 (optimize_function): Initialize inlined_fns.
10728 Save inlined_fns into DECL_INLINED_FNS after expanding inlines.
10729 * decl.c (mark_inlined_fns): New function.
10730 (lang_mark_tree): Call it.
10731
5daf7c0a
JM
107322001-02-21 Jason Merrill <jason@redhat.com>
10733
10734 * cp-tree.h (struct lang_decl_flags): Remove uninlinable flag.
10735 (DECL_UNINLINABLE): Move to middle-end.
10736
10737 * class.c (clone_function_decl): Set DECL_ABSTRACT on original fn.
10738 * decl.c (duplicate_decls): Preserve DECL_ABSTRACT.
10739 * class.c (build_clone): Set DECL_ABSTRACT_ORIGIN for the clone.
10740 * optimize.c (maybe_clone_body): Set DECL_ABSTRACT_ORIGIN for the
10741 parms and outer BLOCK. note_deferral_of_defined_inline_function.
10742
10743 * method.c (implicitly_declare_fn): Don't set DECL_ARTIFICIAL on
10744 second parm of op=.
10745
2c0fc02d
MM
107462001-02-19 Mark Mitchell <mark@codesourcery.com>
10747
10748 * decl2.c (set_decl_namespace): Allow explicit instantiations in
10749 any namespace.
10750
612164eb
KL
107512001-02-18 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
10752
10753 * optimize.c (expand_call_inline): Don't walk subtrees of type
10754 nodes.
10755
69a59a49
MM
107562001-02-18 Mark Mitchell <mark@codesourcery.com>
10757
10758 * class.c (add_vcall_offset_vtbl_entries_1): Only add one entry
10759 for a destructor.
10760
e0fff4b3
JM
107612001-02-18 Jason Merrill <jason@redhat.com>
10762
10763 Do put the VTT parameter in DECL_ARGUMENTS.
10764 * cp-tree.h (struct cp_language_function): Add x_vtt_parm.
10765 (current_vtt_parm): New macro.
10766 (struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm.
10767 (DECL_HAS_VTT_PARM_P): New macro.
10768 (DECL_VTT_PARM): Remove.
10769 (FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros.
10770 * decl.c (duplicate_decls): Only copy the operator code if
10771 appropriate.
10772 (start_function): Set current_vtt_parm.
10773 (lang_mark_tree): Don't mark vtt_parm.
9c96f3f8 10774 * decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to
e0fff4b3
JM
10775 DECL_ARGUMENTS. Set DECL_HAS_VTT_PARM_P.
10776 * class.c (build_clone): Maybe remove the VTT parm.
10777 * optimize.c (maybe_clone_body): Set up the VTT parm.
10778 * pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm.
10779 * call.c (build_over_call): Just allow the VTT arg.
10780 * method.c (make_thunk): Don't set DECL_VTT_PARM.
10781 (do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM.
10782 (synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE.
10783 * decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise.
10784 * error.c (dump_function_decl): Likewise.
10785 * call.c (build_user_type_conversion_1, convert_like_real): Abort
10786 if we try to call a constructor with in-charge or VTT parms.
10787 * method.c (skip_artificial_parms_for): New fn.
10788 * call.c (add_function_candidate, build_over_call): Call it.
10789 * call.c (build_new_method_call): Use current_vtt_parm.
10790 * init.c (expand_virtual_init): Likewise.
10791 * class.c (same_signature_p): No longer static.
10792 * cp-tree.h: Declare it.
10793 * search.c (look_for_overrides_r): Use it.
10794
c750255c
MM
107952001-02-17 Mark Mitchell <mark@codesourcery.com>
10796
8fa33dfa
MM
10797 * cp-tree.h (new_abi_rtti_p): Remove.
10798 (name_mangling_version): Likewise.
10799 (flag_do_squangling): Likewise.
10800 * class.c (build_rtti_vtbl_entries): Remove old ABI support.
10801 * decl.c (grokfndecl): Likewise.
10802 * decl2.c (name_mangling_version): Remove.
10803 (flag_do_squangling): Likewise.
10804 (lang_f_options): Remove `squangle'.
10805 (unsupported_options): Add `squangle'.
10806 (cxx_decode_option): Issue a warning about uses of
10807 -fname-mangling-version.
10808 (finish_file): Remove old ABI support.
10809 * pt.c (check_explicit_specialization): Likewise.
10810 (tsubst_decl): Likewise.
10811 * rtti.c (init_rtti_processing): Likewise.
10812 (build_headof): Likewise.
10813 (get_tinfo_decl_dynamic): Likewise.
10814 (tinfo_from_decl): Likewise.
10815 (build_dynamic_cast_1): Likewise.
10816 (synthesize_tinfo_var): Likewise.
12fa82db
MM
10817 * init.c (build_new): Allow enumeration types for the array-bounds
10818 in a direct-new-declarator.
10819
10820 * semantics.c (finish_typeof): Resolve OFFSET_REFs.
10821
c750255c
MM
10822 * pt.c (check_explicit_specialization): Copy TREE_PRIVATE and
10823 TREE_PROTECTED from the template being specialized.
10824
a714e5c5
JM
108252001-02-17 Jason Merrill <jason@redhat.com>
10826
10827 * decl2.c (build_artificial_parm): Set TREE_READONLY.
10828
9c96f3f8 10829 * decl.c (bad_specifiers): Allow throw specs on things with
a714e5c5
JM
10830 pointer-to-function or -member-function type.
10831 * init.c (build_default_init): Don't use a CONSTRUCTOR to initialize
10832 a pmf.
10833
8084b91e
MM
108342001-02-17 Mark Mitchell <mark@codesourcery.com>
10835
10836 * call.c (check_dtor_name): Handle template names correctly.
10837
48f22ed2
JM
108382001-02-16 Jason Merrill <jason@redhat.com>
10839
10840 * cp-tree.h (DECL_USE_VTT_PARM): Remove.
10841 * decl2.c (maybe_retrofit_in_chrg): Don't create it.
10842 * optimize.c (maybe_clone_body): Don't substitute it.
10843 * call.c (build_new_method_call): Check in_chrg instead.
10844 * init.c (expand_virtual_init): Likewise.
10845
e8186ecf
GDR
108462001-02-16 Gabriel Dos Reis <gdr@codesourcery.com>
10847
10848 * decl.c (check_tag_decl): Make sure a typedef for an anonymous
10849 class-type introduces at least a type-name.
10850
2c1be322
JJ
108512001-02-16 Jakub Jelinek <jakub@redhat.com>
10852
10853 * call.c (convert_like_real): Create a temporary for non-lvalue.
10854
aab8454a
JO
108552001-02-16 Jeffrey Oldham <oldham@codesourcery.com>
10856
10857 * cp-tree.h: Fix typos in comments.
10858
a901fa64
JM
108592001-02-16 Jason Merrill <jason@redhat.com>
10860
10861 * optimize.c (remap_block): If we're compiling a clone, pass the
10862 new block to insert_block.
10863
8853373c
MM
108642001-02-16 Mark Mitchell <mark@codesourcery.com>
10865
10866 * semantics.c (finish_asm_stmt): Robustify.
10867
b60ecc04
MM
108682001-02-15 Mark Mitchell <mark@codesourcery.com>
10869
10870 * pt.c (push_template_decl_real): Don't remangle the name of a
10871 class template.
10872
e658449e
JM
108732001-02-15 Jim Meyering <meyering@lucent.com>
10874
fd48c9b5
DD
10875 * Make-lang.in (c++.install-common): Depend on installdirs.
10876 (c++.install-info): Likewise.
10877 (c++.install-man): Likewise.
e658449e 10878
f1a3f197
MM
108792001-02-15 Mark Mitchell <mark@codesourcery.com>
10880
10881 * typeck2.c (build_m_component_ref): Robustify.
10882
8826b15b
AO
108832001-02-15 Alexandre Oliva <aoliva@redhat.com>
10884
10885 * friend.c (do_friend): Don't take the nested [template] class
10886 into account when deciding whether to warn about the friend
10887 function not referring to a template function.
10888
7161c1a5
JJ
108892001-02-14 Jakub Jelinek <jakub@redhat.com>
10890
10891 * typeck.c (build_unary_op): Clarify error message.
10892
4806765e
AH
108932001-02-08 Aldy Hernandez <aldyh@redhat.com>
10894
a901fa64
JM
10895 * parse.y (component_constructor_declarator): allow optional
10896 parentheses around constructor class name.
4806765e 10897
bfc8e1e2
NS
108982001-02-14 Nathan Sidwell <nathan@codesourcery.com>
10899
10900 * cp-tree.h (setup_vtbl_ptr): Move prototype to semantics.c
10901 section.
10902 * init.c (emit_base_init): Remove incorrect comment about
10903 virtual bases.
10904 * method.c (make_thunk): Fix comment alignment.
10905
394fd776
NS
109062001-02-14 Nathan Sidwell <nathan@codesourcery.com>
10907
10908 Kill remnants of this is variable.
10909 * cp-tree.h (flag_this_is_variable): Remove.
10910 * decl2.c (flag_this_is_variable): Remove.
10911 * class.c (fixed_type_or_null): Add cdtor parm. Adjust.
10912 (build_vbase_path): The path is non-static, even in a cdtor.
10913 (resolves_to_fixed_type_p): Add additional return value.
10914 * search.c (init_vbase_pointers): Adjust.
10915 * tree.c (lvalue_p_1): Adjust.
10916 * typeck.c (mark_addressable): Adjust.
10917
d0ab7624
NS
109182001-02-14 Nathan Sidwell <nathan@codesourcery.com>
10919
10920 * pt.c (unify): Don't check cv quals of array types.
10921
7773899b
NS
109222001-02-14 Nathan Sidwell <nathan@codesourcery.com>
10923
10924 * tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to
10925 check whether we already have the type.
10926
52682a1b
MM
109272001-02-13 Mark Mitchell <mark@codesourcery.com>
10928
10929 * cp-tree.h (CLASSTYPE_DESTRUCTORS): Fix typo in comment.
10930 * call.c (build_op_delete_call): Simplify to remove duplicate
10931 code.
10932 * class.c (clone_function_decl): Don't build the deleting variant
10933 of a non-virtual destructor.
10934 * decl.c (finish_destructor_body): Don't call delete if this is a
10935 non-virtual destructor.
10936 * init.c (build_delete): Explicitly call `operator delete' when
10937 deleting an object with a non-virtual destructor.
9c96f3f8 10938
3b6bd115
JM
109392001-02-13 Jason Merrill <jason@redhat.com>
10940
10941 * lang-specs.h: Add more __EXCEPTIONS.
10942
45abaea8
NS
109432001-02-12 Nathan Sidwell <nathan@codesourcery.com>
10944
10945 * typeck2.c (process_init_constructor): Check
10946 TREE_HAS_CONSTRUCTOR before issuing missing init warning.
10947
996065b4
NS
109482001-02-12 Nathan Sidwell <nathan@codesourcery.com>
10949
10950 * pt.c (maybe_adjust_types_for_deduction, DEDUCE_ORDER case):
10951 Remove spurious information in comment. Allow further
10952 adjustments of REFERENCE_TYPE args.
10953
82c18d5c
NS
109542001-02-12 Nathan Sidwell <nathan@codesourcery.com>
10955
10956 * errfn.c (cp_deprecated): Tweak diagnostic text.
10957 * parse.y (new_initializer): Deprecate initializer lists
10958 extension.
10959
1f84ec23
MM
109602001-02-12 Mark Mitchell <mark@codesourcery.com>
10961
10962 Remove old ABI support.
10963
8c310e3f
MM
109642001-02-11 Mark Mitchell <mark@codesourcery.com>
10965
b1012f1b
MM
10966 * decl2.c (flag_vtable_thunks): Always set it to 1.
10967 (flag_new_abi): Likewise.
10968 * lang-specs.h: Remove conditional on ENABLE_NEW_GXX_ABI.
9c96f3f8 10969
8c310e3f
MM
10970 * Makefile.in (g++spec.o): Fix typo.
10971
3b635dfc
JM
109722001-02-09 Jason Merrill <jason@redhat.com>
10973
10974 * lang-specs.h: Restore definition of __EXCEPTIONS.
10975
bd0d5d4a
JM
109762001-02-08 Jason Merrill <jason@redhat.com>
10977
10978 * search.c (shared_member_p): New function.
10979 (lookup_field_r): Use it.
10980 * cp-tree.h (SHARED_MEMBER_P): Remove.
10981
10982 * method.c (process_overload_item): Handle template-dependent array
10983 bounds.
10984 * pt.c (type_unification_real): If we end up with undeduced nontype
10985 parms, try again.
10986
10987 * decl.c (lookup_name_real): Tweak warning to refer to decls, not
10988 types.
10989
10990 * typeck2.c (friendly_abort): Don't say anything if we have
10991 earlier errors or sorries.
10992
9c96f3f8 10993 * decl.c (check_tag_decl): Notice attempts to redefine bool and
bd0d5d4a
JM
10994 wchar_t. Ignore if in_system_header.
10995
10996 * decl.c (maybe_push_cleanup_level): New fn...
10997 (start_decl_1): ...split out from here.
10998 * cvt.c (build_up_reference): Use it.
10999 * cp-tree.h: Declare it.
11000
a9374841
MM
110012001-02-07 Mark Mitchell <mark@codesourcery.com>
11002
9c96f3f8 11003 * lang-specs.h: Use CPLUSPLUS_CPP_SPEC for the preprocessor
a9374841
MM
11004 spec.
11005
a87b4257
NS
110062001-02-06 Nathan Sidwell <nathan@codesourcery.com>
11007
11008 * pt.c (lookup_template_class): Make sure it's a primary
11009 template or template_template_parm when called from the parser.
11010 (instantiate_template_class): Add assertion.
11011
518fed76
AO
110122001-02-05 Alexandre Oliva <aoliva@redhat.com>
11013
11014 * method.c (build_mangled_name) [old abi]: Protect flush_repeats()
11015 from error_mark_node.
11016
9965d119
NS
110172001-02-05 Nathan Sidwell <nathan@codesourcery.com>
11018
11019 Fix specification and implementation bugs in V3 ABI
11020 construction vtables.
11021 * cp-tree.h (flag_dump_class_layout): New flag.
11022 (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH_P): Remove.
11023 (BINFO_LOST_PRIMARY_P): New flag.
11024 (SET_BINFO_NEW_VTABLE_MARKED): Adjust asserts.
11025 (BINFO_PRIMARY_MARKED_P): Rename to ...
11026 (BINFO_PRIMARY_P): ... here.
11027 (binfo_via_virtual): New prototype.
11028 * decl2.c (flag_dump_class_layout): New flag.
11029 (cxx_decode_option): Set it. Adjust -fdump-translation-unit to
11030 use `=' as a file name separator.
11031 * init.c (dfs_initialize_vtbl_ptrs): Walk into virtual primary
11032 bases.
11033 (build_vtbl_address): If this is a virtual primary base, then
11034 get the vtbl of what it is ultimately primary for.
11035 * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Adjust
11036 for BINFO_PRIMARY_P.
11037 (dfs_skip_nonprimary_vbases_markedp): Likewise.
11038 (get_shared_vbase_if_not_primary): Likewise.
11039 (dfs_get_pure_virtuals): Likewise.
11040 (expand_upcast_fixups): Likewise.
11041 (fixup_virtual_upcast_offsets): Likewise.
11042 (dfs_find_vbase_instance): Likewise.
11043 (find_vbase_instance): Likewise.
11044 (binfo_from_vbase): Adjust comment to reflect reality.
11045 (binfo_via_virtual): New function.
11046 * class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): New macros
11047 for binfo walking during VTT construction.
11048 (dfs_mark_primary_bases): Remove.
11049 (force_canonical_binfo_r): New function.
11050 (force_canonical_binfo): New function.
11051 (mark_primary_virtual_base): New function.
11052 (mark_primary_bases): Walk in inheritance graph order, use
11053 mark_primary_virtual_base.
11054 (determine_primary_base): Use some more intermediate variables.
11055 (dfs_find_final_overrider): Don't check for overriding along a
11056 virtual path.
11057 (dfs_modify_vtables): Walk into primary virtual bases too.
11058 (walk_subobject_offsets): Adjust for BINFO_PRIMARY_P.
11059 (build_base_fields): Likewise.
11060 (dfs_set_offset_for_unshared_vbases): Likewise.
11061 (layout_virtual_bases): Likewise.
11062 (end_of_class): Likewise.
11063 (finish_struct_1): Call dump_class_hierarchy, if requested.
11064 (dfs_get_primary_binfo): Use BINFO_TYPE for binfos.
11065 (dump_class_hierarchy_r): Add stream parameter. Emit more information.
11066 (dump_class_hierarchy): Add file parameter. Append to file, if
11067 required.
11068 (finish_vtbls): Adjust accumulate_vtbl_inits call.
11069 Use canonical base for virtual bases.
11070 (build_vtt): Add more comments. Adjust build_vtt_inits call.
11071 (build_vtt_inits): Remove VIRTUAL_VTTS_P parm.
11072 Only set BINFO_VPTR_INDEX on top level. Use VTT_TOP_LEVEL_P,
11073 VTT_MARKED_BINFO_P for binfo walking. Use canonical vbase for
11074 virtual VTTs.
11075 (dfs_build_secondary_vptr_vtt_inits): Extract VTT_TOP_LEVEL_P
11076 from DATA. We want virtual primary bases and all bases via virtual.
11077 Only set BINFO_VPTR_INDEX for top level. Look up from a primary
11078 virtual base when not a construction vtable.
11079 (dfs_ctor_vtable_bases_queue_p): New DFS predicate.
11080 (build_ctor_vtbl_group): Adjust accumulate_vtbl_inits call.
11081 Use canonical bases when processing virtual bases.
11082 (accumulate_vtbl_inits): We're interested in any base via a
11083 virtual path.
11084 (dfs_accumulate_vtbl_inits): If this is a primary virtual base
11085 within a construction vtable, determine what is being overridden.
11086 (build_vtbl_initializer): Add more comments
11087 (add_vcall_offset_vtbl_entries_1): Adjust comment.
11088 (build_rtti_vtbl_entries): Check if the base has lost its
11089 primary.
11090
39d6f2e8
MM
110912001-02-05 Mark Mitchell <mark@codesourcery.com>
11092
11093 * Makefile.in (g++spec.o): Adjust use of DRIVER_DEFINES.
11094
d2a6f3c0 110952001-02-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
400500c4
RK
11096
11097 * decl.c (pushdecl): Call abort instead of fatal.
11098 * except.c (decl_is_java_type): Call fatal_error instead of fatal.
11099 * init.c (build_new_1): Likewise.
11100 (build_java_class_ref): Call internal_error and fatal_error, not fatal.
11101 * decl.c (build_typename_type): hash_table_init now returns void.
11102 decl.c (init_decl_processing): Make an error non-fatal.
11103
97458258
MM
111042001-02-04 Mark Mitchell <mark@codesourcery.com>
11105
11106 * cp-tree.h (CLASSTYPE_INTERFACE_UNKNOWN): Fix formatting.
11107 Document.
11108 (CLASSTYPE_INTERFACE_KNOWN): Likewise.
11109 (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
11110 (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
11111 (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
11112 * decl.c (maybe_commonize_var): Use the new name-mangling where
11113 appropriate.
11114 * decl2.c (comdat_linkage): Enhance comments. Make all
11115 compiler-generated things static, if COMDAT is not available.
11116 (get_tinfo_decl): Do not make typeinfo objects that belong in the
11117 library COMDAT.
11118 (tinfo_base_init): Use the correct mangled name for typeinfo
11119 strings, and push them into the global scope.
11120 (typeinfo_in_lib_p): New function.
11121 (synthesize_tinfo_var): Use it.
11122 (create_real_tinfo_var): Likewise.
9c96f3f8 11123
55de1b66
JJ
111242001-02-03 Jakub Jelinek <jakub@redhat.com>
11125
11126 * decl.c (push_class_binding): Use context_for_name_lookup instead
11127 of CP_DECL_CONTEXT.
11128 * search.c (context_for_name_lookup): Remove static. Check for NULL
11129 context in the loop.
11130 * cp-tree.h (context_for_name_lookup): Add prototype.
11131
e92730aa
JJ
111322001-02-02 Jakub Jelinek <jakub@redhat.com>
11133
11134 * cp-tree.h (build_expr_ptr_wrapper, can_free): Remove.
11135 * tree.c (build_expr_ptr_wrapper, can_free, permanent_obstack):
11136 Remove.
11137 * call.c (convert_class_to_reference, build_user_type_conversion_1,
11138 add_warning): Change build_expr_ptr_wrapper to build_ptr_wrapper.
11139
049f6ec9
MM
111402001-02-02 Mark Mitchell <mark@codesourcery.com>
11141
11142 * Make-lang.in (g++spec.o): Add DRIVER_DEFINES to the list
11143 of macros used when compiling g++spec.c.
11144 * g++spec.c (lang_specific_driver): Link with the shared
11145 libgcc by default.
11146
718b8ea5
JM
111472001-01-29 Joseph S. Myers <jsm28@cam.ac.uk>
11148
11149 * decl2.c (build_expr_from_tree), lex.c (make_pointer_declarator,
11150 make_reference_declarator, make_call_declarator), method.c
11151 (implicitly_declare_fn), parse.y (namespace_using_decl,
11152 notype_unqualified_id, expr_or_declarator, new_type_id,
11153 after_type_declarator, direct_after_type_declarator,
11154 notype_declarator, complex_notype_declarator,
11155 complex_direct_notype_declarator, qualified_id,
11156 notype_qualified_id, overqualified_id, direct_new_declarator,
11157 absdcl, direct_abstract_declarator, conversion_declarator), pt.c
11158 (tsubst), semantics.c (begin_constructor_declarator): Use build_nt
11159 instead of build_parse_node.
11160
f2d1f0ba
KG
111612001-01-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11162
11163 * cp-tree.h (cp_tree_index): Delete CPTI_MINUS_ONE.
11164 (minus_one_node): Moved to top level gcc directory. Renamed
11165 to integer_minus_one_node.
11166
11167 * init.c (init_init_processing): Don't set minus_one_node.
11168 (build_vec_init): Use integer_minus_one_node.
11169
11170 * rtti.c (get_tinfo_decl_dynamic): Likewise.
11171
6001735e
JJ
111722001-01-28 Jakub Jelinek <jakub@redhat.com>
11173
11174 * optimize.c (copy_body_r): If MODIFY_EXPR has both arguments
11175 identical and they would be replaced with constant, remove
11176 MODIFY_EXPR from the tree.
11177
c913b6f1
KG
111782001-01-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11179
11180 * Make-lang.in: Remove all dependencies on defaults.h.
11181 * call.c: Don't include defaults.h.
11182 * decl.c: Likewise.
11183 * decl2.c: Likewise.
11184 * except.c: Likewise.
11185 * pt.c: Likewise.
11186 * rtti.c: Likewise.
11187 * tree.c: Likewise.
11188 * typeck.c: Likewise.
11189
324ffb8c
JJ
111902001-01-25 Jakub Jelinek <jakub@redhat.com>
11191
11192 * mangle.c (write_mangled_name, write_encoding): Mangle overloaded
11193 operators even in "C" linkage.
11194 * method.c (set_mangled_name_for_decl): Likewise.
11195 * decl.c (grokfndecl): Call set_mangled_name_for_decl even for
11196 overloaded operators in "C" linkage.
11197
4b2811e9
NS
111982001-01-24 Nathan Sidwell <nathan@codesourcery.com>
11199
11200 * pt.c (tsubst_decl): Remove IN_DECL parameter.
11201 (tsubst_arg_types): Check parameter is not void.
11202 (tsubst): Adjust tsubst_decl call.
11203
d8caf48e
NS
112042001-01-24 Nathan Sidwell <nathan@codesourcery.com>
11205
11206 * call.c (add_builtin_candidate): Quote std properly, from
11207 previous change.
11208
08511114
KL
112092001-01-23 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
11210
11211 * pt.c (check_explicit_specialization): Clone constructors and
11212 destructors.
11213
92ecdfb7
NS
112142001-01-23 Nathan Sidwell <nathan@codesourcery.com>
11215
11216 * decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC
11217 indicates anything special about template depth. Make sure we
11218 only count the user visible template classes.
11219
4cff6abe
NS
112202001-01-23 Nathan Sidwell <nathan@codesourcery.com>
11221
11222 * call.c (build_conv): Typo in comment.
11223 (add_builtin_candidate): Add more explanation.
11224 Remove extra test for ENUMERAL_TYPE in {PRE,POST}INCREMENT_EXPR.
11225 Allow ENUMERAL_TYPEs for relops and eqops. Add both candidates
11226 when we have enumeral types.
11227 (add_builtin_candidates): Add more explanation. Add ENUMERAL_TYPE
11228 candidates for relops and eqops.
11229 (joust): Simplify control flow. Allow a non-template user
11230 function to hide a builtin.
11231
62e4a758
NS
112322001-01-22 Nathan Sidwell <nathan@codesourcery.com>
11233
11234 * cp-tree.h (unification_kind_t): Add DEDUCE_ORDER.
11235 (more_specialized): Add deduction parameter.
11236 * call.c (joust): Adjust more_specialized call.
11237 * pt.c (UNIFY_ALLOW_OUTER_MORE_CV_QUAL,
11238 UNIFY_ALLOW_OUTER_LESS_CV_QUAL): New unify flags.
11239 (get_bindings_order): Remove.
11240 (get_bindings_real): Add DEDUCE parameter.
11241 (maybe_adjust_types_for_deduction): Return extra unify flags. Do
11242 REFERENCE_TYPE jig for DEDUCE_ORDER.
11243 (type_unification_real): Deal with DEDUCE_ORDER. Use result of
11244 maybe_adjust_types_for_deduction.
11245 (more_specialized): Add DEDUCE parameter. Call get_bindings_real
11246 directly.
11247 (try_one_overload): Use result of maybe_adjust_types_for_deduction.
11248 (check_cv_quals_for_unify): Use new unify qualifier flags.
11249 (unify): Clear new unify qualifier flags.
11250 (get_bindings_real): Add DEDUCE parameter.
11251 (get_bindings): Adjust call to get_bindings_real.
11252 (get_bindings_overload): Likewise.
11253 (most_specialized_instantiation): Adjust call to
11254 more_specialized.
11255
2a2a9e5a
JM
112562001-01-19 Jason Merrill <jason@redhat.com>
11257
11258 * decl2.c (flag_vtable_thunks): Also depend on ENABLE_NEW_GXX_ABI.
11259
11260 * decl.c (init_decl_processing): Just force -fvtable-thunks on if
11261 -fnew-abi.
11262
60696c53
JM
112632001-01-19 Ute Pelkmann <scope.muc@t-online.de>
11264
11265 * decl2.c (arg_assoc_class): Fix double iteration logic.
11266
112672001-01-19 Jason Merrill <jason@redhat.com>
11268
11269 * init.c (build_delete): Always call convert_force to strip cv-quals.
11270
11271 * decl2.c (flag_new_abi): Depend on ENABLE_NEW_GXX_ABI.
11272 * lang-specs.h: Default ABI depends on ENABLE_NEW_GXX_ABI.
11273 * g++spec.c: Don't look at ENABLE_NEW_GXX_ABI.
11274
1e00f18c
NS
112752001-01-19 Nathan Sidwell <nathan@codesourcery.com>
11276
11277 * search.c (get_vbase_1): Count only virtual bases.
11278
e13bced2
NS
112792001-01-19 Nathan Sidwell <nathan@codesourcery.com>
11280
11281 * class.c (duplicate_tag_error): Robustify flag clearing.
11282
f9c244b8
NS
112832001-01-19 Nathan Sidwell <nathan@codesourcery.com>
11284
11285 * cp-tree.h (lookup_template_class): Add complain parm.
11286 * decl.c (lookup_namespace_name): Adjust call to
11287 lookup_template_class.
11288 (make_typename_type): Likewise.
11289 * semantics.c (finish_template_type): Likewise.
11290 * pt.c (lookup_template_class): Add complain parm. Adjust.
11291 (tsubst_aggr_type): Pass COMPLAIN down to lookup_template_class.
11292 (tsubst): Likewise.
11293
08c2df0f
NS
112942001-01-19 Nathan Sidwell <nathan@codesourcery.com>
11295
11296 * pt.c (copy_default_args_to_explicit_spec): Preserve
11297 object's CV quals. Reorganize.
11298
f5ceeec8
NS
112992001-01-18 Nathan Sidwell <nathan@codesourcery.com>
11300
11301 * typeck.c (build_modify_expr): Say `initialization' for
11302 INIT_EXPRs.
11303 * init.c (build_default_init): Convert to enumeral type, if
11304 needed.
11305
a1cfa434
JJ
113062001-01-18 Jakub Jelinek <jakub@redhat.com>
11307
11308 * parse.y (nomods_initdcl0): Properly set things up for
11309 initdcl0_innards.
11310
028d1f20
NS
113112001-01-18 Nathan Sidwell <nathan@codesourcery.com>
11312
11313 * pt.c (UNIFY_ALLOW_OUTER_LEVEL): New unify flag.
11314 (type_unification_real): Set it.
11315 (unify): Use it.
11316
9f724b6a
NS
113172001-01-18 Nathan Sidwell <nathan@codesourcery.com>
11318
11319 * decl.c (finish_destructor_body): Convert to vbase pointer here.
11320
522d6614
NS
113212001-01-18 Nathan Sidwell <nathan@codesourcery.com>
11322
11323 * semantics.c (begin_class_definition): Check we're not inside a
11324 template parm list.
11325
7f805b8f
NS
113262001-01-18 Nathan Sidwell <nathan@codesourcery.com>
11327
11328 * tree.c (walk_tree, TREE_LIST): Don't walk the TREE_PURPOSE of
11329 BASELINK_P.
11330
dc3799c1
KL
113312001-01-16 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
11332
11333 * typeck.c (build_function_call_real): Call fold on the CALL_EXPR.
11334 * call.c (build_over_call): Add comment.
11335
bb37c4a5
DB
113362001-01-16 Daniel Berlin <dberlin@redhat.com>
11337
826840d9
RH
11338 * cvt.c (ocp_convert): Handle vector type conversion
11339 * typeck2.c (digest_init): Handle vector type initializations
9c96f3f8 11340
a26e7fb5
PE
113412001-01-16 Phil Edwards <pme@sources.redhat.com>
11342
11343 * g++spec.c: Don't add libraries needlessly if -fsyntax-only
11344 was given.
11345
11b810f1
NS
113462001-01-15 Nathan Sidwell <nathan@codesourcery.com>
11347
11348 * pt.c (check_nontype_parm): Rename to ...
11349 (invalid_nontype_parm_type_p): ... here.
11350 (process_template_parm): Adjust.
11351 (convert_template_argument): Adjust.
11352
db3f4e4e
NS
113532001-01-15 Nathan Sidwell <nathan@codesourcery.com>
11354
11355 * pt.c (check_nontype_parm): New function.
11356 (process_template_parm): Use it.
11357 (convert_template_argument): Use it.
11358 (convert_nontype_argument, RECORD_TYPE): Assert it's a ptr to
11359 member.
11360
ea4f1fce
JO
113612001-01-14 Jeffrey Oldham <oldham@codesourcery.com>
11362
11363 * tree.c: Add defaults.h
11364 (cp_valid_lang_attribute): Incorporate SUPPORTS_INIT_PRIORITY.
11365 * Make-lang.in (cp/tree.o): Add defaults.h.
11366
1312c143
JM
113672001-01-13 Joseph S. Myers <jsm28@cam.ac.uk>
11368
11369 * Make-lang.in (CXX_C_OBJS): Add c-format.o.
11370
4bc1997b
JM
113712001-01-13 Joseph S. Myers <jsm28@cam.ac.uk>
11372
11373 * g++.1: Change to be ".so man1/gcc.1".
11374
23de1fbf
JM
113752001-01-13 Joseph S. Myers <jsm28@cam.ac.uk>
11376
11377 * Make-lang.in (c++.info, c++.install-info): Build and install g++
11378 internals info.
11379 (c++.uninstall, c++.maintainer-clean): Remove g++ internals info.
11380 ($(srcdir)/cp/g++int.info): New target.
11381 * gxxint.texi: Add info directory entry. Use @@ in email address.
11382 * .cvsignore: Update.
11383
0949f723
NS
113842001-01-12 Nathan Sidwell <nathan@codesourcery.com>
11385
11386 * typeck.c (build_c_cast): Do template processing earlier.
11387 Always pedwarn on array casts.
11388
a8641661
NS
113892001-01-12 Nathan Sidwell <nathan@codesourcery.com>
11390
11391 * friend.c (make_friend_class): Make sure a templated class is
11392 actually a template.
11393
844511c8
NS
113942001-01-11 Nathan Sidwell <nathan@codesourcery.com>
11395
11396 * decl2.c (get_guard): Set linkage from guarded decl.
11397
96a1e32d
NS
113982001-01-11 Nathan Sidwell <nathan@codesourcery.com>
11399
11400 * call.c (convert_default_arg): Check for unprocessed
11401 DEFAULT_ARG.
11402 * cp-tree.h (replace_defarg): Move to spew.c.
11403 (maybe_snarf_defarg, add_defarg_fn, do_pending_defargs): Move to
11404 spew.c, which is where they really are.
11405 (done_pending_defargs): Declare.
11406 (unprocessed_defarg_fn): Declare.
11407 * decl.c (replace_defarg): Move to spew.c
11408 * parse.y (structsp): Call done_pending_defargs.
11409 * spew.c (defarg_fns): Rearrange list structure.
11410 (defarg_fnsdone): New static variable.
11411 (defarg_depfns): New static variable.
11412 (init_spew): Adjust.
11413 (add_defarg_fn): Store the type in TREE_TYPE.
11414 (do_pending_defargs): Detect and deal with ordering constraints
11415 and circularity.
11416 (done_pending_defargs): New function.
11417 (unprocessed_defarg_fn): New function.
11418 (replace_defarg): Moved from decl.c. Robustify. Don't save
11419 if circularity detected.
11420
34e225a3
NS
114212001-01-11 Nathan Sidwell <nathan@codesourcery.com>
11422
11423 * pt.c (unify): Check array has a domain, before checking
11424 whether it is variable sized.
11425
98979fe0
NS
114262001-01-11 Nathan Sidwell <nathan@codesourcery.com>
11427
11428 * decl.c (grokparms): Unobfuscate and get correct diagnostic for
11429 parameters with pointers to arrays of unknown bound.
11430
b37bf5bd
NS
114312001-01-11 Nathan Sidwell <nathan@codesourcery.com>
11432
11433 * parse.y (template_parm_header, template_spec_header): New
11434 reductions. Split out from ...
11435 (template_header): ... here. Use them.
11436 (template_template_parm): Use template_parm_header.
11437 * semantics.c (finish_template_template_parm): Add assert.
11438
6c418184
MM
114392001-01-10 Mark Mitchell <mark@codesourcery.com>
11440
792508b5
MM
11441 * mangle.c (write_builtin_type): Fix thinko.
11442
8afa707f
MM
11443 * pt.c (copy_default_args_to_explicit_spec_1): New function.
11444 (copy_default_args_to_explicit_spec): Likewise.
11445 (check_explicit_specialization): Use it.
11446
6c418184
MM
11447 * class.c (finish_struct_1): Remove last argument in call to
11448 make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
11449 * decl.c (builtin_function): Likewise.
11450 (build_cp_library_fn): Likewise.
11451 (check_initializer): Likewise.
11452 (make_rtl_for_nonlocal_decl): Likewise.
11453 (cp_finish_decl): Likewise.
11454 (start_function): Likewise.
11455 * decl2.c (finish_anon_union): Likewise.
11456 * friend.c (do_friend): Likewise.
11457 * init.c (build_java_class_ref): Likewise.
11458 * method.c (make_thunk): Likewise.
11459 * pt.c (tsubst_friend_function): Likewise.
11460 * semantics.c (expand_body): Likewise.
11461
31d95fc6
MM
114622001-01-10 Mark Mitchell <mark@codesourcery.com>
11463
11464 * cp-tree.h (DECL_CLONED_FUNCTION_P): Avoid wild reads by not
11465 looking at DECL_CLONED_FUNCTION for non-functions.
11466
31bb3027
NS
114672001-01-10 Nathan Sidwell <nathan@codesourcery.com>
11468
11469 * error.c (dump_template_parameter): Use parm to determine how
11470 to print default value.
11471
fd3f43e7
NS
114722001-01-10 Nathan Sidwell <nathan@codesourcery.com>
11473
11474 * class.c (duplicate_tag_error): Clear more flags.
11475
042b4c4e
NS
114762001-01-10 Nathan Sidwell <nathan@codesourcery.com>
11477
11478 * call.c (build_new_method_call): Use binfo_for_vbase.
11479
a7537031
JM
114802001-01-10 Joseph S. Myers <jsm28@cam.ac.uk>
11481
11482 * cp-tree.h (flag_cond_mismatch): Don't declare.
11483 * decl2.c (flag_cond_mismatch): Don't define.
11484 (lang_f_options): Remove cond-mismatch.
11485 (unsupported_options): Add cond-mismatch.
11486
186c0fbe
NS
114872001-01-09 Nathan Sidwell <nathan@codesourcery.com>
11488
11489 * class.c (handle_using_decl): Reject using of constructor name
11490 of sourcing class. Allow injecting of a method with same name as
11491 nested class. Fixup error messages.
11492
28ec8d6b
JM
114932001-01-09 Joseph S. Myers <jsm28@cam.ac.uk>
11494
11495 * decl2.c (lang_decode_option): Handle -Wformat=2.
11496
3febd123
NS
114972001-01-08 Nathan Sidwell <nathan@codesourcery.com>
11498
11499 * cp-tree.h (lang_decl_flags): Rename defined_in_class to
11500 initialized_in_class.
11501 (DECL_DEFINED_IN_CLASS_P): Rename to ...
11502 (DECL_INITIALIZED_IN_CLASS_P): ... here, to reflect true meaning.
11503 * decl.c (duplicate_decls): Preseve DECL_INITIALIZED_IN_CLASS_P.
11504 (cp_finish_decl): Adjust for DECL_INITIALIZED_IN_CLASS_P.
11505 * pt.c (check_default_tmpl_args): Adjust for
11506 DECL_INITIALIZED_IN_CLASS_P.
11507 (instantiate_class_template): Likewise.
11508 (instantiate_decl): Check DECL_INITIALIZED_IN_CLASS_P.
9c96f3f8 11509
3febd123
NS
11510 * class.c (finish_struct): Constify saved_filename.
11511
1f0d71c5
NS
115122001-01-08 Nathan Sidwell <nathan@codesourcery.com>
11513
11514 * class.c (duplicate_tag_error): Adjust diagnostic.
11515 (finish_struct): Locally set location to start of struct.
11516 * decl.c (fixup_anonymous_aggr): Use cp_error_at.
11517
5bf15e84 115182001-01-08 Nathan Sidwell <nathan@codesourcery.com>
76191fdd
NS
11519
11520 * decl.c (struct binding_level): Adjust class_shadowed comments
11521 to reflect reality.
aba649ba 11522 (push_class_level_binding): Adjust comments to reflect reality.
76191fdd
NS
11523 Set IDENTIFIER_CLASS_VALUE when replacing an existing binding.
11524 Don't set TREE_VALUE on the class_shadowed list.
11525
23d4e4cc 115262001-01-07 Alexandre Petit-Bianco <apbianco@cygnus.com>
9c96f3f8
AJ
11527
11528 * decl2.c (acceptable_java_type): Allow references too.
23d4e4cc
APB
11529 * init.c (build_java_class_ref): When using the new ABI, search
11530 `class$' and have it mangled with `mangle_decl.'
11531 * mangle.c (write_java_integer_type_codes): New function.
11532 (write_builtin_type): Detect and mangle Java integer and real
11533 types.
9c96f3f8 11534
0c58da3e
MM
115352001-01-07 Mark Mitchell <mark@codesourcery.com>
11536
11537 * decl2.c (grokfield): Don't accept `asm' specifiers for
11538 non-static data members.
11539
45b8ddb4
KG
115402001-01-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
11541
11542 * expr.c (cplus_expand_expr): Don't reset `target'.
11543
96302433
NB
115442001-01-07 Neil Booth <neil@daikokuya.demon.co.uk>
11545
826840d9 11546 * cp/decl2.c (cxx_post_options): Call cpp_post_options.
96302433 11547
220bce48
NS
115482001-01-05 Nathan Sidwell <nathan@codesourcery.com>
11549
11550 * parse.y (template_datadef): Check for error_mark_node.
11551
bfa2cb33
NS
115522001-01-05 Nathan Sidwell <nathan@codesourcery.com>
11553
11554 * cp-tree.def (DEFAULT_ARG): Make `x' class.
11555
eaa7c03f
JM
115562001-01-04 Joseph S. Myers <jsm28@cam.ac.uk>
11557
11558 * decl.c (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Don't define.
11559 (record_builtin_type): Make non-static.
11560 (flag_short_double): Don't declare.
11561 (init_decl_processing): Remove the creation of many tree nodes now
11562 in c_common_nodes_and_builtins.
11563 (build_void_list_node): New function.
11564 * decl2.c (flag_short_double, flag_short_wchar): Don't define.
11565 * cp-tree.h (flag_short_wchar): Don't declare.
11566
3af4c257
MM
115672001-01-04 Mark Mitchell <mark@codesourcery.com>
11568
11569 * call.c (build_conv): Don't use build1 for USER_CONV.
11570 * pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes.
11571
03dc0325
JM
115722001-01-03 Joseph S. Myers <jsm28@cam.ac.uk>
11573
11574 * lex.c (lang_init): Call c_common_lang_init.
11575
3c505507
NS
115762001-01-03 Nathan Sidwell <nathan@codesourcery.com>
11577
11578 * search.c (lookup_fnfields_here): Remove.
11579 (look_for_overrides_r): Use lookup_fnfields_1.
11580 Ignore functions from using declarations.
11581
03378143
NS
115822001-01-03 Nathan Sidwell <nathan@codesourcery.com>
11583
11584 Implement exceptions specifiers for implicit member functions.
11585 * cp-tree.h (merge_exceptions_specifiers): Declare new function.
11586 * method.c (synthesize_exception_spec): New function.
11587 (locate_dtor, locate_ctor, locate_copy): New functions.
11588 (implicitly_declare_fn): Generate the exception spec too.
11589 * search.c (check_final_overrider): Check artificial functions
11590 too.
9c96f3f8 11591 * typeck2.c (merge_exception_specifiers): New function.
03378143 11592
f30efcb7
JM
115932001-01-03 Jason Merrill <jason@redhat.com>
11594
11595 * init.c (build_default_init): New fn.
11596 (perform_member_init): Split out from here.
11597 (build_new_1): Use it. Simplify initialization logic.
11598 (build_vec_init): Take an array, rather than a pointer and maxindex.
11599 Speed up simple initializations. Don't clean up if we're assigning.
11600 * cp-tree.h: Adjust.
11601 * decl2.c (do_static_initialization): Remove TREE_VEC case.
11602 * parse.y (new_initializer): Return void_zero_node for ().
11603 * typeck.c (build_modify_expr): Handle getting a CONSTRUCTOR.
11604 * typeck2.c (digest_init): Only complain about user-written
11605 CONSTRUCTORs.
11606
a412bf75
MS
116072000-12-22 Mike Stump <mrs@wrs.com>
11608
11609 * decl2.c: (max_tinst_depth): Increase to 50.
11610
4890c2f4
MM
116112001-01-02 Mark Mitchell <mark@codesourcery.com>
11612
11613 * class.c (invalidate_class_lookup_cache): Zero the
11614 previous_class_values.
11615 * cp-tree.h (TMPL_PARMS_DEPTH): Use TREE_INT_CST_LOW, not
11616 TREE_INT_CST_HIGH.
11617 (CLASSTYPE_TEMPLATE_LEVEL): Likewise.
11618 * decl.c (free_bindings): New variable.
11619 (push_binding): Don't create a new binding if we have one on the
11620 free list.
11621 (pop_binding): Put old bindings on the free list.
11622 (init_decl_processing): Use size_int, not build_int_2.
11623 Register free_bindings as a GC root.
11624 (cp_make_fname_decl): Use size_int, not build_int_2.
11625 (push_inline_template_parms_recursive): Likewise.
11626 (end_template_parm_list): Likewise.
688f6688 11627 (for_each_template_parm): Do not use walk_tree_without_duplicates.
4890c2f4
MM
11628 (tsubst_template_parms): Use size_int, not build_int_2.
11629 (tsubst): Likewise.
11630 * rtti.c (get_vmi_pseudo_type_info): Likewise.
9c96f3f8 11631
4f78b9a8
RH
116322001-01-02 Richard Henderson <rth@redhat.com>
11633
11634 * parse.y (asm): Set ASM_INPUT_P.
11635
3c8c2a0a
JM
116362001-01-02 Jason Merrill <jason@redhat.com>
11637
96d6c610
JM
11638 * tree.c (cp_valid_lang_attribute): Don't set CLASSTYPE_COM_INTERFACE
11639 for v3 ABI.
11640
11641 * typeck.c (cp_truthvalue_conversion): New fn.
11642 * cvt.c (ocp_convert): Use it.
11643
11644 * cp-tree.h: Lose c-common.c decls.
11645
11646 * typeck.c (build_unary_op): Restore old &a.f diagnostic code.
11647 * cvt.c (convert_to_void): Use type_unknown_p.
11648
9c96f3f8 11649 * typeck.c (strip_all_pointer_quals): Also strip quals from
3c8c2a0a
JM
11650 pointer-to-member types.
11651
11652 * Make-lang.in (cp/TAGS): Use --no-globals. Ignore parse.c, and treat
11653 parse.y as C.
11654
11655 * call.c (build_new_method_call): Do evaluate the object parameter
11656 when accessing a static member.
11657 * typeck.c (build_component_ref): Likewise.
11658
d363e7bf
AJ
116592001-01-02 Andreas Jaeger <aj@suse.de>
11660
11661 * decl.c (cp_missing_noreturn_ok_p): New.
11662 (init_decl_processing): Set lang_missing_noreturn_ok_p.
11663
77f5250d
JJ
116642000-12-29 Jakub Jelinek <jakub@redhat.com>
11665
11666 * decl.c (init_decl_processing): Fix sign of wchar_type_node.
11667
31a714f6
MM
116682000-12-29 Mark Mitchell <mark@codesourcery.com>
11669
11670 * class.c (pushclass): Remove #if 0'd code.
11671 * cp-tree.h (overload_template_name): Remove.
11672 * decl.c (store_bindings): Simplify.
11673 (pop_from_top_level): Likewise.
11674 * pt.c (overload_template_name): Remove.
d363e7bf 11675 (instantiate_decl): Don't call push_to_top_level if it's not
31a714f6
MM
11676 needed.
11677
414ea4aa
MM
116782000-12-28 Mark Mitchell <mark@codesourcery.com>
11679
11680 * pt.c (register_local_specialization): Don't return a value.
11681 (lookup_template_class): Use move-to-front heuristic when looking
11682 up template instantiations.
11683 (instantiate_decl): Only push_to_top_level when we're actually
11684 going to instantiate the template.
11685
6f18f7e9
HPN
116862000-12-29 Hans-Peter Nilsson <hp@bitrange.com>
11687
11688 * search.c (binfo_for_vtable): Return least derived class, not
11689 most. Handle secondary vtables.
11690
e5214479
JM
116912000-12-22 Jason Merrill <jason@redhat.com>
11692
3c8c2a0a
JM
11693 * pt.c (more_specialized): Don't optimize len==0.
11694 (fn_type_unification): If we're adding the return type, increase len.
11695
ebb1abc3
JM
11696 * typeck.c (build_binary_op): Fix pmf comparison logic.
11697
c939ca5f
JM
11698 * call.c (joust): Use DECL_NONSTATIC_MEMBER_FUNCTION_P, not
11699 DECL_STATIC_FUNCTION_P.
11700
e6fe680d
JM
11701 * semantics.c (genrtl_finish_function): Don't try to jump to
11702 return_label unless it exists.
11703
e5214479
JM
11704 In partial ordering for a call, ignore parms for which we don't have
11705 a real argument.
11706 * call.c (joust): Pass len to more_specialized.
11707 (add_template_candidate_real): Strip 'this', pass len.
11708 * pt.c (more_specialized): Pass len down. Lose explicit_args parm.
11709 (get_bindings_order): New fn. Pass len down.
11710 (get_bindings_real): Strip 'this', pass len.
11711 (fn_type_unification): Likewise.
11712 (type_unification_real): Succeed after checking 'len' args.
11713 (most_specialized_instantiation): Lose explicit_args parm.
d363e7bf 11714 * class.c (resolve_address_of_overloaded_function): Strip 'this',
e5214479
JM
11715 pass len.
11716
117172000-12-21 Jason Merrill <jason@redhat.com>
477f6664
JM
11718
11719 * pt.c (tsubst_decl): A FUNCTION_DECL has DECL_RESULT, not
11720 DECL_TEMPLATE_RESULT.
11721
11722 * search.c (lookup_field_r): Call lookup_fnfields_1, not
11723 lookup_fnfields_here.
11724
11725 * parse.y (typename_sub2): Return the TYPE_DECL, not the type.
11726
11727 * call.c (build_object_call): Also allow conversions that return
11728 reference to pointer to function.
11729 (add_conv_candidate): Handle totype being ref to ptr to fn.
11730 (build_field_call): Also allow members of type reference to function.
11731 Lose support for calling pointer to METHOD_TYPE fields.
11732
11733 * error.c (dump_expr): Handle *_CAST_EXPR.
11734
11735 * typeck2.c (build_scoped_ref): Always convert to the naming class.
11736
11737 * tree.c (break_out_cleanups): Lose.
11738 * cp-tree.h: Remove prototype.
11739 * typeck.c (build_component_ref): Don't break_out_cleanups.
11740 (build_compound_expr): Likewise.
11741 * semantics.c (finish_expr_stmt): Likewise.
11742
3e4d04a1
RH
117432000-12-20 Richard Henderson <rth@redhat.com>
11744
11745 * cp-tree.h: Update declarations.
11746 * decl.c (finish_case_label): Return the new stmt node.
11747 * semantics.c (finish_goto_stmt): Likewise.
11748 (finish_expr_stmt, finish_return_stmt): Likewise.
11749 (finish_break_stmt, finish_continue_stmt): Likewise.
11750 (finish_asm_stmt): Likewise.
11751 * parse.y (already_scoped_stmt): Set STMT_LINENO.
11752 (compstmt, implicitly_scoped_stmt, stmt): Likewise.
11753 (simple_if, simple_stmt): Return the new stmt node.
11754 (save_lineno): New.
11755
20d380b1
JM
117562000-12-18 Joseph S. Myers <jsm28@cam.ac.uk>
11757
11758 * cp-tree.h: Don't declare warn_long_long.
11759
221c7a7f
KL
117602000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
11761
11762 * tree.c (no_linkage_helper): Use CLASS_TYPE_P instead of
11763 IS_AGGR_TYPE.
11764
b429fdf0
KL
117652000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
11766
11767 * pt.c (unify): Handle when both ARG and PARM are
11768 BOUND_TEMPLATE_TEMPLATE_PARM.
11769
c2beae77
KL
117702000-12-15 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
11771
11772 * pt.c (reduce_template_parm_level): Set DECL_ARTIFICIAL and
11773 DECL_TEMPLATE_PARM_P.
11774
c3e899c1
JM
117752000-12-15 Jason Merrill <jason@redhat.com>
11776
96790071
JM
11777 * init.c (build_new_1): Reorganize. Now with 100% fewer SAVE_EXPRs!
11778
8d42565b
JM
11779 * init.c (build_new_1): Don't strip quals from type.
11780
fab09a24
JM
11781 * decl.c (pushdecl): Don't check for linkage on a non-decl.
11782
c3e899c1
JM
11783 * call.c (build_op_delete_call): See through ARRAY_TYPEs.
11784
11785 * call.c (build_new_function_call): Lose space before paren in
11786 error message.
11787 (build_new_method_call): Likewise.
11788
11789 * typeck2.c (build_m_component_ref): Propagate quals from datum.
11790
edac124d
KL
117912000-12-14 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
11792
11793 * pt.c (check_explicit_specialization): Propagate default
11794 function arguments to explicit specializations.
11795
31750649 117962000-12-13 DJ Delorie <dj@redhat.com>
8d3b081e
DD
11797
11798 * typeck.c (build_binary_op): Do signed/unsigned warnings for >?
11799 and <? operators.
11800
5e818b93
JM
118012000-12-08 Jason Merrill <jason@redhat.com>
11802
11803 * error.c (dump_function_name): Don't let the user see __comp_ctor.
11804
11805 Clean up copy-initialization in overloading code.
11806 * call.c (build_user_type_conversion_1): Die if we are asked to
11807 convert to the same or a base type.
11808 (implicit_conversion): Avoid doing so. Lose reference binding code.
11809 (convert_like_real): Treat BASE_CONV and RVALUE_CONV as implicit
11810 direct-initialization. Also do direct-init part of copy-init.
11811 (build_user_type_conversion): Don't provide context to convert_like.
11812 * cvt.c (ocp_convert): build_user_type_conversion will now provide
11813 the constructor call for copy-init.
11814
11815 * pt.c (tsubst_decl): Call clone_function_decl here if this is an
11816 instantiation of a member template.
11817 (do_decl_instantiation): Not here.
11818
38da6039
NS
118192000-12-07 Nathan Sidwell <nathan@codesourcery.com>
11820
11821 * class.c (check_field_decls): Don't special case anonymous
11822 fields in error messages.
c9407e4c 11823 (note_name_declared_in_class): Use %D on diagnostic.
d363e7bf 11824
38da6039
NS
11825 * tree.c (pod_type_p): Use strip_array_types.
11826 (cp_valid_lang_attribute): Likewise.
11827 * typeck.c (cp_type_quals): Strip arrays separately, to avoid
11828 multiple evaluations.
d363e7bf 11829 (cp_has_mutable_p): Use strip_array_types.
38da6039 11830
a11d04b5
NS
118312000-12-07 Nathan Sidwell <nathan@codesourcery.com>
11832
11833 * cp-tree.h (sufficient_parms_p): Declare new function.
11834 * call.c (sufficient_parms_p): New function, broken out of ...
11835 (add_function_candidate): ... here. Use it.
11836 (add_conv_candidate): Use it.
11837 * decl.c (grok_ctor_properties): Use it.
11838
5eec2847
JJ
118392000-12-07 Jakub Jelinek <jakub@redhat.com>
11840
11841 * optimize.c (copy_body_r): Set STMT_IS_FULL_EXPR_P on EXPR_STMT.
11842
c907e684
JM
118432000-12-07 Joseph S. Myers <jsm28@cam.ac.uk>
11844
11845 * decl2.c (lang_decode_option): Handle -Wformat-security.
11846
74601d7c
KL
118472000-12-06 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
11848
11849 * pt.c (verify_class_unification): New function.
11850 (get_class_bindings): Use it.
11851 (try_class_unification): Tidy.
11852 (unify): Handle when argument of a template-id is not
11853 template parameter dependent.
11854 (template_args_equal): Handle when TREE_CODE's do not match.
11855
8954e858
AO
118562000-12-06 Alexandre Oliva <aoliva@redhat.com>
11857
11858 * lang-specs.h (c++): When invoking the stand-alone preprocessor
11859 for -save-temps, pass all relevant -Defines to it, and then don't
11860 pass them to cc1plus.
11861
3dc9aec6
WC
118622000-12-05 Will Cohen <wcohen@redhat.com>
11863
11864 * decl.c (finish_case_label): Cleared
11865 more_cleanups_ok in surrounding function scopes.
11866 (define_label): Likewise.
11867
cbb40945
NS
118682000-12-05 Nathan Sidwell <nathan@codesourcery.com>
11869
11870 * cp-tree.h (IDENTIFIER_VIRTUAL_P): Document.
11871 (get_matching_virtual): Remove.
11872 (look_for_overrides): Declare new function.
11873 * decl.c (grokfndecl): Don't set IDENTIFIER_VIRTUAL_P or
11874 DECL_VINDEX here.
11875 * class.c (check_for_override): Move base class iteration code
11876 to look_for_overrides.
11877 * search.c (next_baselink): Remove.
11878 (get_virtuals_named_this): Remove.
11879 (get_virtual_destructor): Remove.
11880 (tree_has_any_destructors_p): Remove.
11881 (struct gvnt_info): Remove.
11882 (check_final_overrider): Remove `virtual' from error messages.
11883 (get_matching_virtuals): Remove. Move functionality to ...
11884 (look_for_overrides): ... here, and ...
11885 (look_for_overrides_r): ... here. Set DECL_VIRTUAL_P, if found
11886 to be overriding.
11887
61402b80
NS
118882000-12-05 Nathan Sidwell <nathan@codesourcery.com>
11889
11890 * typeck.c (get_delta_difference): If via a virtual base,
11891 return zero.
11892 * cvt.c (cp_convert_to_pointer): If via a virtual base, do no
11893 adjustment.
11894
39abc9a6
RH
118952000-12-04 Richard Henderson <rth@redhat.com>
11896
11897 * error.c (dump_tree): Use output_add_string not OB_PUTS.
11898
c00996a3
JM
118992000-12-04 Jason Merrill <jason@redhat.com>
11900
11901 * mangle.c (write_type): Mangle VECTOR_TYPE with "U8__vector".
d363e7bf 11902 (write_builtin_type): Pass intSI_type_node and the like through
c00996a3
JM
11903 type_for_mode.
11904 * method.c (process_overload_item): Mangle VECTOR_TYPEs with 'o'.
11905 Pass intSI_type_node and the like through type_for_mode.
11906 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE like COMPLEX_TYPE.
11907 * pt.c (tsubst, unify): Likewise.
11908 * tree.c (walk_tree): Likewise.
11909 * error.c (dump_type): Likewise.
11910 (dump_type_prefix, dump_type_suffix): Don't bother with VECTOR_TYPE.
d363e7bf 11911
c00996a3
JM
11912 * Make-lang.in: Tweak top comment for emacs.
11913 (cp/TAGS): Restore.
11914
11915 * except.c (expand_throw): Use push_throw_library_fn for _Jv_Throw.
11916
c00996a3
JM
11917 * class.c (clone_function_decl): Robustify.
11918
119192000-12-04 Michael Matz <matzmich@cs.tu-berlin.de>
11920
11921 * decl.c (store_bindings): Only search in the non modified
11922 old_bindings for duplicates.
11923
00bb3dad
NS
119242000-12-04 Nathan Sidwell <nathan@codesourcery.com>
11925
11926 * error.c (dump_function_decl): Use DECL_VIRTUAL_P, not
11927 TYPE_POLYMORPHIC_P.
d363e7bf 11928
00bb3dad
NS
11929 * typeck.c (build_static_cast): Remove unused variable.
11930
dc957d14
KL
119312000-12-01 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
11932
11933 * pt.c: Fix typo in comment.
11934
4d808927
JM
119352000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
11936
11937 * decl2.c (warn_format): Remove definition.
11938 (lang_decode_option): Handle -Wformat-nonliteral,
11939 -Wno-format-extra-args and -Wno-format-y2k. Use set_Wformat.
11940
5fd8e536
JM
119412000-12-01 Joseph S. Myers <jsm28@cam.ac.uk>
11942
11943 * decl.c (WINT_TYPE, INTMAX_TYPE, UINTMAX_TYPE): Don't define.
11944 (init_decl_processing): Don't create string_type_node,
11945 const_string_type_node, wint_type_node, intmax_type_node,
11946 uintmax_type_node, default_function_type, ptrdiff_type_node and
11947 unsigned_ptrdiff_type_node. Adjust position of call to
11948 c_common_nodes_and_builtins.
11949 (identifier_global_value): New function.
11950
13f9714b
NS
119512000-12-01 Nathan Sidwell <nathan@codesourcery.com>
11952
11953 * call.c (standard_conversion): Reject pointer to member
11954 conversions from ambiguous, inaccessible or virtual bases.
11955 * typeck.c (build_static_cast): Don't check pointers to members
11956 specially.
11957
31b1b957
NS
119582000-11-30 Nathan Sidwell <nathan@codesourcery.com>
11959
11960 * method.c (do_build_copy_constructor): Preserve cv
11961 qualifications when accessing source object members.
11962 (do_build_assign_ref): Likewise. Remove separate diagnostics for
11963 unnamed fields.
11964
717e3f73
NS
119652000-11-30 Nathan Sidwell <nathan@codesourcery.com>
11966
11967 * method.c (do_build_assign_ref): Construct appropriately
11968 CV-qualified base reference. Don't allow const casts in base
11969 conversion.
11970
2c92b94d
NS
119712000-11-30 Nathan Sidwell <nathan@codesourcery.com>
11972
11973 * call.c (build_over_call): Use VOID_TYPE_P. Don't die on
11974 incomplete return type.
11975
bb92901d
NS
119762000-11-28 Nathan Sidwell <nathan@codesourcery.com>
11977
11978 * parse.y (base_class.1): Produce a _TYPE not a _DECL.
11979 * semantics.c (finish_base_specifier): Accept a _TYPE not a
11980 _DECL.
11981
2f3608c3
NS
119822000-11-28 Nathan Sidwell <nathan@codesourcery.com>
11983
11984 * spew.c (yyerror): Cope if yylval.ttype is NULL.
11985
eeb75383
NS
119862000-11-28 Nathan Sidwell <nathan@codesourcery.com>
11987
11988 * decl.c (grokdeclarator): Diagnose undefined template contexts.
11989
5ee4cc26
NS
119902000-11-28 Nathan Sidwell <nathan@codesourcery.com>
11991
11992 * decl.c (grokdeclarator): Do type access control on friend
11993 class.
11994
76e57b45
NS
119952000-11-27 Nathan Sidwell <nathan@codesourcery.com>
11996
11997 * decl.c (grokfndecl): Undo COMPONENT_REF damage caused by
11998 bison parser ickiness.
11999 * pt.c (tsubst_friend_function): Enter namespace scope when
12000 tsubsting the function name.
12001 * cp-tree.h (DECL_TI_TEMPLATE): Update comment to reflect reality.
12002
f9825168
NS
120032000-11-27 Nathan Sidwell <nathan@codesourcery.com>
12004
12005 * cp-tree.h (binfo_from_vbase): Return the virtual base's binfo.
12006 * cvt.c (cp_convert_to_pointer): Add force parameter.
12007 Allow conversions via virtual base if forced.
12008 (convert_to_pointer_force): Adjust call to cp_convert_to_pointer.
12009 (ocp_convert): Likewise.
12010 * search.c (binfo_from_vbase): Return the virtual base's binfo.
12011 * typeck.c (get_delta_difference): Adjust handling of virtual
12012 bases.
12013
9ccb25d5
MM
120142000-11-26 Mark Mitchell <mark@codesourcery.com>
12015
12016 * tree.c (struct list_hash): Remove.
12017 (list_hash_table): Make it be an htab.
12018 (struct list_proxy): New type.
12019 (list_hash_eq): New function.
12020 (list_hash_pieces): Renamed from ...
12021 (list_hash): ... this.
12022 (list_hash_lookup): Remove.
12023 (list_hash_add): Remove.
12024 (hash_tree_cons): Use the generic hashtable.
12025 (mark_list_hash): Remove.
12026 (init_tree): Create the hashtable.
12027
9399bad3
JM
120282000-11-25 Joseph S. Myers <jsm28@cam.ac.uk>
12029
12030 * method.c (build_mangled_C9x_name): Rename to
12031 build_mangled_C99_name. Change C9X references in comments to
12032 refer to C99.
12033
2f401cc8
NS
120342000-11-24 Nathan Sidwell <nathan@codesourcery.com>
12035
12036 * parse.y (unary_expr): Move VA_ARG from here ...
12037 (primary): ... to here.
12038
3d7e9ba4
NS
120392000-11-24 Nathan Sidwell <nathan@codesourcery.com>
12040
12041 * semantics.c (finish_id_expr): If type is error_mark, return
12042 error_mark.
12043
ab097535
NS
120442000-11-23 Nathan Sidwell <nathan@codesourcery.com>
12045
12046 * pt.c (lookup_template_class): Simplify loop exit constructs.
12047 Cope when there is no partial instantiation of a template
12048 template member.
12049
d2a6f3c0 120502000-11-23 J"orn Rennecke <amylaar@redhat.com>
9196ece5
R
12051
12052 * Make-lang.in (g++spec.o, cxxmain.o): Depend on $(CONFIG_H).
12053
cac78ea2
MM
120542000-11-22 Mark Mitchell <mark@codesourcery.com>
12055
6e1b44bc
MM
12056 * mangle.c (mangle_conv_op_name_for_type): Don't use `__op'
12057 prefix.
12058
cac78ea2
MM
12059 * pt.c (do_decl_instantiate): Explicitly clone constructors and
12060 destructors that haven't already been cloned.
12061
3aac38d7
RH
120622000-11-20 Richard Henderson <rth@redhat.com>
12063
12064 * parse.y (yyparse_1): Rename the parser entry point.
12065
120662000-11-20 Alex Samuel <samuel@codesourcery.com>
beac9b93
AS
12067
12068 * mangle.c (write_name): Use <unscoped-name> for names directly in
12069 function scope.
12070 (write_unscoped_name): Accept names directly in function scope.
d363e7bf 12071
447306fa
NS
120722000-11-20 Nathan Sidwell <nathan@codesourcery.com>
12073
12074 * lex.c (rid_to_yy, RID_EXPORT): Make unique keyword.
12075 * parse.y (extdef): Add EXPORT reduction.
12076 * spew.c (yylex): Don't skip export here.
12077
2650255a
MM
120782000-11-19 Mark Mitchell <mark@codesourcery.com>
12079
12080 * decl.c (init_decl_processing): Correct name of pure virtual
12081 function under the new ABI.
12082 * rtti.c (throw_bad_cast): Likewise, for bad cast function.
12083 (throw_bad_typeid): Likewise for bad typeid function.
12084
0657c69c
MM
120852000-11-18 Mark Mitchell <mark@codesourcery.com>
12086
04f3dc2b
MM
12087 * decl.c (grokparms): Don't even function types of `void' type,
12088 either.
12089 * mangle.c (write_type): Don't crash when confronted with the
12090 error_mark_node.
12091
0657c69c
MM
12092 * decl.c (grokparms): Don't create parameters of `void' type.
12093
a8a05998
ZW
120942000-11-17 Zack Weinberg <zack@wolery.stanford.edu>
12095
12096 * lex.c (mark_impl_file_chain): Delete.
12097 (init_parse): Remove call to ggc_add_string_root. No need to
12098 ggc_strdup a string constant. Do not add impl_file_chain to GC
12099 roots.
12100 (handle_pragma_implementation): No need to ggc_strdup main_filename.
12101
35728a80
NS
121022000-11-17 Nathan Sidwell <nathan@codesourcery.com>
12103
12104 * pt.c (tsubst_expr, DECL_STMT): Instantiate decl's type.
12105
5cce22b6
NS
121062000-11-17 Nathan Sidwell <nathan@codesourcery.com>
12107
12108 * cp-tree.h (PARMLIST_ELLIPSIS_P): New macro.
12109 * decl.c (grokdeclarator): Don't reject void parms here.
12110 (require_complete_types_for_parms): Simplify, use
12111 complete_type_or_else.
12112 (grokparms): Remove bitrot. Remove funcdef parm.
12113 Deal with ellipsis parm lists here.
12114 * semantics.c (finish_parmlist): Don't append void_list_node
12115 here. Set PARMLIST_ELLIPSIS_P.
12116
146c8d60
NS
121172000-11-17 Nathan Sidwell <nathan@codesourcery.com>
12118
d30d6e7a 12119 * typeck2.c (incomplete_type_error): Reorganize to avoid
146c8d60
NS
12120 excessive diagnostics.
12121
520a57c8
ZW
121222000-11-16 Zack Weinberg <zack@wolery.stanford.edu>
12123
12124 * lex.c (struct impl_files, internal_filename): Constify a char *.
12125
43048a06
MM
121262000-11-16 Mark Mitchell <mark@codesourcery.com>
12127
12128 * mangle.c (write_special_name_constructor): Don't generate
12129 assembler junk when confronted with an old-style constructor.
12130 (write_special_name_destructor): Likewise.
12131 (mangle_decl_string): Do it here instead.
12132
cdb71673
NS
121332000-11-16 Nathan Sidwell <nathan@codesourcery.com>
12134
12135 * call.c (op_error): Make error messages clearer.
12136
62136084
MM
121372000-11-15 Mark Mitchell <mark@codesourcery.com>
12138
12139 * decl.c (wrapup_globals_for_namespace): Don't mark things
12140 TREE_ASM_WRITTEN when they're not.
12141
ee3400e8
JM
121422000-11-15 Jason Merrill <jason@redhat.com>
12143
12144 * typeck2.c (friendly_abort): Uncount the error before handing
12145 off to fancy_abort.
12146
71631a1f
NS
121472000-11-15 Nathan Sidwell <nathan@codesourcery.com>
12148
12149 * typeck.c (lookup_anon_field): Cope with qv qualifiers.
12150
79cda2d1
MM
121512000-11-14 Mark Mitchell <mark@codesourcery.com>
12152
12153 * class.c (build_vtbl_initializer): Fix typo in comment.
12154 * typeck.c (expr_sizeof): Don't crash on errors.
12155
2567bc56
JW
121562000-11-14 Jim Wilson <wilson@redhat.com>
12157
12158 * lang-specs.h: Add %2 after %(cc1_options).
12159
8422942c
RH
121602000-11-14 Richard Henderson <rth@redhat.com>
12161
12162 * typeck.c (c_sizeof): Be strict about casting result value
12163 back to c_size_type_node.
12164 (expr_sizeof, c_sizeof_nowarn, c_alignof): Likewise.
12165
19552aa5
JM
121662000-11-13 Joseph S. Myers <jsm28@cam.ac.uk>
12167
12168 * typeck.c (build_unary_op): Use boolean_increment from
12169 c-common.c, moving the relevant code there.
12170
d96a6d1a
JM
121712000-11-11 Jason Merrill <jason@redhat.com>
12172
12173 * typeck.c (mark_addressable): Don't call put_var_into_stack.
492cca24
JM
12174
12175 * decl.c (maybe_commonize_var): Set DECL_UNINLINABLE for statics
12176 in inlines.
12177
4e135bdd
KG
121782000-11-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12179
12180 * decl.c (grokdeclarator, save_function_data): Use memcpy, not bcopy.
12181 * lex.c (copy_lang_decl): Likewise.
12182
0a7394bc
MM
121832000-11-09 Mark Mitchell <mark@codesourcery.com>
12184
13507bd8
MM
12185 * dump.c (cp_dump_tree): Don't dump function bodies here.
12186
0a7394bc
MM
12187 * Make-lang.in (CXX_C_OBJS): Add c-dump.o.
12188 (dump.o): Update dependency list.
12189 * cp-tree.h (DECL_MAYBE_TEMPLATE): Remove.
12190 (flag_dump_translation_unit): Likewise.
12191 (CP_TYPE_QUALS): Adjust definition.
12192 (DECL_C_BIT_FIELD): Remove.
12193 (SET_DECL_C_BIT_FIELD): Likewise.
12194 (CLEAR_DECL_C_BIT_FIELD): Likewise.
12195 (add_maybe_template): Likewise.
12196 (strip_array_types): Likewise.
12197 (dump_node_to_file): Likewise.
12198 (cp_dump_tree): New function.
12199 * decl.c (init_decl_processing): Set lang_dump_tree.
12200 * decl2.c (flag_dump_translation_unit): Remove.
12201 * dump.c: Move most of it to ../c-dump.c.
12202 (cp_dump_tree): New function.
12203 * pt.c (add_maybe_template): Remove.
12204 * typeck.c (strip_array_types): Likewise.
a8a05998 12205
5362b086
EC
122062000-11-07 Eric Christopher <echristo@redhat.com>
12207
492cca24
JM
12208 * decl.c (init_decl_processing): Change definition of
12209 __wchar_t to wchar_t. Remove artificial declaration of
12210 wchar_t.
12211 * lex.c: Change instances of __wchar_t to wchar_t.
5362b086 12212
5361cbb7
NS
122132000-11-09 Nathan Sidwell <nathan@codesourcery.com>
12214
12215 * lex.c (do_identifier): Don't lookup_name for operators.
12216 * parse.y (operator): Save looking_for_typename.
12217 (unoperator): Restore it.
12218 * spew.c (frob_opname): Use nth_token for lookahead.
12219
36791f1e
NS
122202000-11-08 Nathan Sidwell <nathan@codesourcery.com>
12221
12222 * decl.c (grok_op_properties): Always use coerce_new_type and
12223 coerce_delete_type.
12224 * decl2.c (coerce_new_type): Use c_size_type_node. Preserve
12225 exception specification. Tidy up.
12226 (coerce_delete_type): Preserve exception specification. Tidy up.
12227
961192e1
JM
122282000-11-07 Joseph S. Myers <jsm28@cam.ac.uk>
12229
12230 * class.c (duplicate_tag_error, build_vtbl_initializer), decl.c
12231 (push_binding_level), error.c (cp_tree_printer), pt.c
12232 (process_partial_specialization, tsubst_template_arg_vector),
12233 search.c (lookup_member): Use memset () instead of bzero ().
12234
d48ebde1
NS
122352000-11-07 Nathan Sidwell <nathan@codesourcery.com>
12236
12237 * decl.c (build_ptrmemfunc_type): Allow error_mark_node.
12238
436a88a6
JM
122392000-11-05 Joseph S. Myers <jsm28@cam.ac.uk>
12240
12241 * Make-lang.in (c++.distdir): Remove.
12242
7a4e5091
MM
122432000-11-04 Mark Mitchell <mark@codesourcery.com>
12244
12245 * decl2.c (do_nonmember_using_decl): Allow `extern "C"'
12246 declarations from different namespaces to be combined.
12247
0e9295cf
ZW
122482000-11-03 Zack Weinberg <zack@wolery.stanford.edu>
12249
12250 * decl.c: Include tm_p.h.
12251
da61dec9
JM
122522000-11-03 Joseph S. Myers <jsm28@cam.ac.uk>
12253
12254 * tree.c (cp_tree_equal): Use memcmp () instead of bcmp ().
12255
9473c522
JM
122562000-11-02 Joseph S. Myers <jsm28@cam.ac.uk>
12257
12258 * dump.c (dequeue_and_dump), lex.c (interface_strcmp), method.c
12259 (build_overload_value), repo.c (open_repo_file), xref.c
12260 (open_xref_file): Use strchr () and strrchr () instead of index ()
12261 and rindex ().
12262
b0b3afb2
BS
122632000-11-01 Bernd Schmidt <bernds@redhat.co.uk>
12264
12265 * call.c (build_over_call): Call fold on the CALL_EXPR.
12266
faafaee6
GDR
122672000-11-01 Gabriel Dos Reis <gdr@codesourcery.com>
12268
12269 * error.c (dump_template_decl): Separate template hearders with
12270 space not comma.
12271
761f0855
GDR
122722000-10-31 Gabriel Dos Reis <gdr@codesourcery.com>
12273
12274 * error.c: Move TFF_ macros into cp-tree.h. Throughout, replace
12275 TS_* flags with corresponding TFF_*. Adjust prototypes of
12276 functions (which used to take a tree_string_flags) to take an int.
12277
12278 * cp-tree.h (enum tree_string_flags): Remove
12279 (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE,
12280 TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPEDEF, TFF_DECL_SPECIFIERS,
12281 TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE,
12282 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION,
12283 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS,
12284 TFF_TEMPLATE_NAME, TFF_EXPR_IN_PARENS, TFF_SCOPE): New macros.
12285 (type_as_string, decl_as_string, expr_as_string,
12286 context_as_string): Adjust prototype.
12287
12288 * class.c (dump_class_hierarchy_r): Use TFF_PLAIN_IDENTIFIER
12289 instead of TS_PLAIN.
12290
12291 * pt.c (mangle_class_name_for_template): Use TFF_CHASE_TYPEDEF
12292 instead of TF_CHASE_TYPEDEFS. Use TFF_PLAIN_IDENTIFIER instead of
12293 plain `0'.
12294
ad50e811
MM
122952000-10-30 Mark Mitchell <mark@codesourcery.com>
12296
12297 * cp-tree.h (DECL_EXTERNAL_LINKAGE_P): New macro.
12298 (linkage_kind): New enumeration.
12299 (decl_linkage): New function.
12300 * decl2.c (comdat_linkage): Extend comment.
12301 * error.c (dump_function_decl): Print the arguments used to
12302 instantiate a template, even when not printing the type of the
12303 function.
12304 * pt.c (convert_nontype_argument): Use DECL_EXTERNAL_LINKAGE_P,
12305 not TREE_PUBLIC, to test for external linkage.
12306 * tree.c (decl_linkage): New function.
12307
930cd796
MM
123082000-10-28 Mark Mitchell <mark@codesourcery.com>
12309
12310 * pt.c (instantiate_decl): Always instantiate static data members
12311 initialized in-class.
12312
b8dad04b
ZW
123132000-10-27 Zack Weinberg <zack@wolery.stanford.edu>
12314
12315 * Make-lang.in: Move all build rules here from Makefile.in,
12316 adapt to new context. Wrap all rules that change the current
12317 directory in parentheses. Expunge all references to $(P).
12318 When one command depends on another and they're run all at
12319 once, use && to separate them, not ;. Add OUTPUT_OPTION to
12320 all object-file generation rules. Delete obsolete variables.
12321
12322 * Makefile.in: Delete.
12323 * config-lang.in: Delete outputs= line.
12324
5f9cd837
GDR
123252000-10-26 Gabriel Dos Reis <gdr@codesourcery.com>
12326
12327 * error.c (dump_function_decl): Print no space between
12328 `ptr-operator' the `type-specifier' of the return type.
12329 (dump_type_prefix): Make sure we put space at the appropriate
5362b086 12330 place.
5f9cd837 12331
6c6ed0ef
JM
123322000-10-23 Jason Merrill <jason@redhat.com>
12333
12334 * call.c (equal_functions): Also call decls_match for extern "C" fns.
12335
123362000-10-22 Jason Merrill <jason@redhat.com>
12337
12338 * call.c (build_conditional_expr): Use ocp_convert to force
12339 rvalue conversion.
12340
e36308b0
MM
123412000-10-22 Mark Mitchell <mark@codesourcery.com>
12342
583ca5a0
MM
12343 * call.c (standard_conversion): Use RVALUE_CONVs for all
12344 expressions that satisfy lvalue_p, not just those that satisfy
12345 real_lvalue_p.
12346
f9808f81
MM
12347 * optimize.c (copy_body_r): Don't treat CALL_EXPRs specially.
12348
5362b086 12349 * typeck.c (c_sizeof): Return an expression of `size_t' type,
e36308b0
MM
12350 not one with TYPE_IS_SIZETYPE set.
12351 (dubious_conversion_warnings): Remove special-case code.
12352
3b9ae6f0
GK
123532000-10-21 Geoffrey Keating <geoffk@cygnus.com>
12354
7a0f14e5
GK
12355 * decl2.c (arg_assoc_type): Handle VECTOR_TYPE.
12356 * error.c (dump_type): Handle VECTOR_TYPE like POINTER_TYPE.
12357 (dump_type_prefix): Print vector-of-int as 'int vector'.
12358 (dump_type_suffix): Handle VECTOR_TYPE like POINTER_TYPE.
12359 * tree.c (walk_tree): Handle VECTOR_TYPE.
12360
3b9ae6f0 12361 * decl.c (init_decl_processing): Call MD_INIT_BUILTINS.
5362b086 12362
aca77bd1
JM
123632000-10-21 Jason Merrill <jason@redhat.com>
12364
12365 * parse.y (operator): Set got_object from got_scope.
12366 Set looking_for_typename.
12367 * decl.c (lookup_name_real): Clear val after setting from_obj.
12368 Reorganize diagnostic.
12369
ba523395
JM
123702000-10-20 Jason Merrill <jason@redhat.com>
12371
12372 * tree.c (walk_tree): Don't walk into default args.
12373
12374 * error.c (dump_expr): Use host_integerp.
12375
2e44948d
DE
123762000-10-20 David Edelsohn <edelsohn@gnu.org>
12377
12378 * typeck2.c (abstract_virtuals_error): Use "because" instead of
12379 "since" in error message.
12380
d2a6f3c0 123812000-10-20 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
44475138
RK
12382
12383 * typeck.c (dubious_conversion_warning): Suppress if TYPE_IS_SIZETYPE.
12384
11306230
JO
123852000-10-20 Jeffrey Oldham <oldham@codesourcery.com>
12386
12387 * decl.c (revert_static_member_fn): Fixed typo.
12388
97ba1e3c
MM
123892000-10-19 Mark Mitchell <mark@codesourcery.com>
12390
c20118a8
MM
12391 * class.c (subobject_offset_fn): New type.
12392 (dfs_record_base_offsets): Remove.
12393 (record_base_offsets): Likewise.
12394 (dfs_search_base_offsets): Likewise.
12395 (record_subobject_offset): New function.
12396 (check_subobject_offset): Likewise.
12397 (walk_subobject_offsets): Likewise.
12398 (record_subobject_offsets): Likewise.
12399 (layout_conflict_p): Reimplement.
12400 (layout_nonempty_base_or_field): Correct handling of type
12401 conflicts during layout.
12402 (layout_empty_base): Likewise.
12403 (build_base_field): Adjust to handle new representation of empty
12404 base offset table.
12405 (build_base_fields): Likewise.
12406 (layout_virtual_bases): Likewise.
12407 (splay_tree_compare_integer_csts): New function.
12408 (layout_class_type): Use a splay_tree, rather than a varray, to
12409 represent the offsets of empty bases.
5362b086 12410
97ba1e3c
MM
12411 * cp-tree.h (DECL_ANTICIPATED): Don't require a FUNCTION_DECL.
12412 * decl.c (select_decl): Don't return declarations that are
12413 DECL_ANTICIPATED.
12414
6bcedb4e
MM
124152000-10-18 Mark Mitchell <mark@codesourcery.com>
12416
12417 * cp-tree.h (cp_tree_index): Add CPTI_FAKE_STD.
12418 (fake_std_node): New macro.
12419 * decl.c (in_std): Rename to ...
12420 (in_fake_std): ... this.
12421 (flag_no_builtin): Remove.
12422 (flag_no_nonansi_builtin): Likewise.
12423 (walk_namespaces_r): Use fake_std_node.
12424 (push_namespace): Use std_identifier.
12425 (pop_namespace): Use in_fake_std.
12426 (lookup_name_real): Use fake_std_node.
12427 (init_decl_processing): When -fhonor-std, create the `std'
12428 namespace. Don't create a dummy fake_std_node in that case.
12429 Adjust call to c_common_nodes_and_builtins. Use std_identifier.
12430 (builtin_function): Put builtins whose names don't begin
12431 with `_' in the std namespace.
12432 * decl2.c (flag_no_builtin): Remove.
12433 (flag_no_nonansi_builtin): Likewise.
12434 (set_decl_namespace): Use fake_std_node.
12435 (validate_nonmember_using_decl): Likewise.
12436 (do_using_directive): Likewise.
12437 (handle_class_head): Likewise.
12438 * dump.c (dequeue_and_dump): Likewise.
12439 * except.c (init_exception_processing): Use std_identifier.
12440 * init.c (build_member_call): Use fake_std_node.
12441 * rtti.c (init_rtti_processing): Use std_identifier.
5362b086 12442
67673f5c
MM
124432000-10-17 Mark Mitchell <mark@codesourcery.com>
12444
12445 * cp-tree.h (back_end_hook): Remove declaration.
12446 * decl2.c (back_end_hook): Remove definition.
12447
12448 * dump.c (dequeue_and_dump): Dump TREE_USED.
12449
d2a6f3c0 124502000-10-17 Brad Lucier <lucier@math.purdue.edu>
8fef2e47
BL
12451
12452 * spew.c (snarf_defarg): Cast 2nd arg to obstack_blank to (int).
12453
652469d0
JM
124542000-10-17 Joseph S. Myers <jsm28@cam.ac.uk>
12455
12456 * decl.c (WINT_TYPE): Define.
12457 (init_decl_processing): Create types unsigned_ptrdiff_type_node,
12458 c_size_type_node, signed_size_type_node and wint_type_node.
12459
74ff4629
JM
124602000-10-17 Joseph S. Myers <jsm28@cam.ac.uk>
12461
12462 * decl2.c (warn_missing_format_attribute): New variable.
12463 (lang_decode_option): Decode -Wmissing-format-attribute.
12464
634790f4
MM
124652000-10-16 Mark Mitchell <mark@codesourcery.com>
12466
12467 * typeck.c (qualify_type): Remove.
12468 (composite_pointer_type): Fix handling of conversions to `cv void*'.
12469
bb12da9d
KG
124702000-10-14 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12471
12472 * Makefile.in (parse.c, parse.h): Fix think-o in last patch.
12473
4b945402
KG
124742000-10-13 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12475
12476 * Makefile.in (parse.c, parse.h): Create atomically.
12477
1f8f4a0b
MM
124782000-10-12 Mark Mitchell <mark@codesourcery.com>
12479
12480 * class.c (current_obstack): Remove.
12481 * decl.c (ggc_p): Remove.
12482 (start_decl): Don't use decl_tree_cons.
12483 (grokdeclarator): Don't use build_decl_list.
12484 (start_function): Don't use decl_tree_cons.
12485 (finish_function): Don't mess with obstacks.
12486 * decl2.c (grok_x_components): Don't use build_decl_list.
12487 * lex.c (make_call_declarator): Don't call decl_tree_cons.
12488 (implicitly_declare_fn): Don't call build_decl_list.
12489 * parse.y (frob_specs): Don't call build_decl_list or
12490 decl_tree_cons.
12491 (expr_or_declarator_intern): Don't call decl_tree_cons.
12492 (primary): Don't call build_decl_list.
12493 (fcast_or_absdcl): Likewise.
12494 (typed_declspecs): Don't call decl_tree_cons.
12495 (reserved_declspecs): Don't call build_decl_list.
12496 (declmods): Likewise.
12497 (reserved_typespecquals): Likewise.
12498 (aggr): Likewise.
12499 (new_type_id): Likewise.
12500 (cv_qualifiers): Likewise.
12501 (after_type_declarator_intern): Likewise.
12502 (notype_declarator_intern): Likewise.
12503 (absdcl_intern): Likewise.
12504 (named_parm): Likewise.
12505 * pt.c (most_specialized_class): Likewise.
12506 * repo.c (temporary_obstack): Make it a structure, not a pointer.
12507 (init_repo): Initialize it.
12508 * search.c (current_obstack): Remove.
12509 * typeck2.c (add_exception_specifier): Don't call build_decl_list.
5362b086 12510
8dc54971
RH
125112000-10-09 Richard Henderson <rth@cygnus.com>
12512
12513 * Make-lang.in (CXX_EXTRA_HEADERS): Remove.
12514 (c++ language support bits for libgcc): Remove.
12515 (c++.clean): Remove cplib2.txt cleanup.
12516 * config-lang.in (headers, lib2funcs): Remove.
12517
12518 * exception.cc, new.cc, new1.cc, new2.cc: Remove files.
12519 * tinfo.cc, tinfo.h, tinfo2.cc, vec.cc: Remove files.
12520 * inc/cxxabi.h, inc/exception, inc/new: Remove files.
12521 * inc/new.h, inc/typeinfo: Remove files.
12522
b15ad712
JM
125232000-10-08 Joseph S. Myers <jsm28@cam.ac.uk>
12524
12525 * decl.c (INTMAX_TYPE, UINTMAX_TYPE): Define if not already
12526 defined.
12527 (init_decl_processing): Initialize intmax_type_node and
12528 uintmax_type_node.
12529
156ce211
RH
125302000-10-06 Richard Henderson <rth@cygnus.com>
12531
12532 * cp-tree.h (struct cp_language_function): Remove x_result_rtx.
12533 (original_result_rtx): Remove.
12534 * decl.c (save_function_data): Don't clear x_result_rtx.
12535 (mark_lang_function): Don't mark it either.
12536 * expr.c (fixup_result_decl): Remove.
12537 * semantics.c (genrtl_named_return_value): Frob the return decl
12538 before calling emit_local_var.
12539 (genrtl_finish_function): Don't call fixup_result_decl.
12540 Always emit the jump to return_label.
12541
92777ce4
NS
125422000-10-06 Nathan Sidwell <nathan@codesourcery.com>
12543
12544 * pt.c (lookup_template_class): Set current access for enum.
12545 (tsubst_enum): Set file & line for enum decl.
5362b086 12546
92777ce4
NS
12547 * spew.c (yylex): Remove unused variable.
12548
63c16fc5
RH
125492000-10-05 Richard Henderson <rth@cygnus.com>
12550
12551 * semantics.c (genrtl_finish_function): Don't init or check
12552 can_reach_end; remove noreturn and return value checks.
12553
d1a458c4
TT
125542000-10-05 Tom Tromey <tromey@cygnus.com>
12555
12556 * init.c (build_java_class_ref): Use `build_static_name' with a
12557 suffix, not a prefix, to build the class object's name.
12558
509fc277
NS
125592000-10-05 Nathan Sidwell <nathan@codesourcery.com>
12560
12561 * cp-tree.h (access_kind): Fix comment typo.
12562 * decl2.c (grokfield): Fix diagnostic typo.
12563 * semantics.c (finish_template_type): Fix comment typo.
12564 (finish_qualified_object_call_expr): Likewise.
12565
ce2e5191
NS
125662000-10-05 Nathan Sidwell <nathan@codesourcery.com>
12567
12568 * pt.c (tsubst_expr, DECL_STMT case): Don't process if
5362b086 12569 tsubsting fails.
ce2e5191 12570
79cc5312
NS
125712000-10-05 Nathan Sidwell <nathan@codesourcery.com>
12572
12573 * spew.c (frob_id): New static function.
12574 (frob_opname): Use it.
12575 (yylex): Use it.
12576
f15b9af9
MM
125772000-10-01 Mark Mitchell <mark@codesourcery.com>
12578
12579 * decl.c (lang_mark_false_label_stack): Remove.
12580 * lex.c (cp_mang_lang_type): Use ggc_alloc_cleared.
5362b086 12581
28e6b1c2
JM
125822000-09-30 Joseph S. Myers <jsm28@cam.ac.uk>
12583
12584 * gxxint.texi: Use @email for formatting email addresses.
12585
99885b3f
GDR
125862000-09-29 Gabriel Dos Reis <gdr@codesourcery.com>
12587
12588 * error.c: Remove direct obstack manipulation. Replace with
12589 output_buffer-based formatting. Adjust calls to removed macros.
12590 (obstack_chunk_alloc, obstack_chunk_free): Remove.
12591 (OB_INIT, OB_PUTC, OB_PUTC2, OB_PUTS, OB_PUTID, OB_PUTCP,
12592 OB_FINISH, OB_PUTI, OB_END_TEMPLATE): Likewise.
12593
c06aa51e
MM
125942000-09-24 Mark Mitchell <mark@codesourcery.com>
12595
12596 * ir.texi: Move to ../c-tree.texi.
12597
99fada40
JM
125982000-09-20 Jason Merrill <jason@redhat.com>
12599
12600 * decl2.c (get_guard): Check DECL_FUNCTION_SCOPE_P.
12601
bb20cc46
AJ
126022000-09-21 Andreas Jaeger <aj@suse.de>
12603
12604 * errfn.c: Move declaration of cp_printer and cp_printers to ...
12605 * cp-tree.h: ... here.
12606
12607 * error.c: Remove declaration of cp_printer.
12608
fab701da
MM
126092000-09-20 Mark Mitchell <mark@codesourcery.com>
12610
12611 * tree.c (mark_local_for_remap_r): Handle CASE_LABELs.
12612
0370fea1
HPN
126132000-09-20 Hans-Peter Nilsson <hp@axis.com>
12614
12615 * except.c: Delete #if 0:d EXCEPTION_SECTION_ASM_OP-default and
12616 users.
12617
78c120b5
MM
126182000-09-18 Mark Mitchell <mark@codesourcery.com>
12619
12620 * decl.c (start_function): Robustify.
12621
3f80e6ac
KG
126222000-09-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
12623
12624 * cp-tree.h (check_function_format): Accept a `status' parameter.
bb20cc46 12625
3f80e6ac
KG
12626 * call.c, typeck.c: Updates calls to `check_function_format'.
12627
fc928afe
GK
126282000-09-17 Geoffrey Keating <geoffk@cygnus.com>
12629
12630 * decl2.c (handle_class_head): Always push some scope even
12631 in the error case.
12632
8f17b5c5
MM
126332000-09-16 Mark Mitchell <mark@codesourcery.com>
12634
12635 * cp-tree.h (struct cp_language_function): Remove
12636 x_scope_stmt_stack and name_declared.
12637 (current_scope_stmt_stack): Remove.
12638 (function_name_declared_p): New macro.
12639 (struct lang_decl_flags): Use c_lang_decl as a base class.
12640 (context): Remove.
12641 (struct lang_decl): Replace saved_tree with context.
12642 (DECL_FRIEND_CONTEXT): Adjust accordingly.
12643 (SET_DECL_FRIEND_CONTEXT): Likewise.
12644 (DECL_VIRTUAL_CONTEXT): Likewise.
12645 (DECL_SAVED_TREE): Remove.
12646 (C_DECLARED_LABEL_FLAG): Likewise.
12647 (cplus_expand_expr_stmt): Don't declare.
12648 (add_decl_stmt): Likewise.
12649 (add_scope_stmt): Likewise.
12650 * decl.c (mark_stmt_tree): Remove.
12651 (case_compare): Likewise.
12652 (finish_case_label): Use c_add_case_label.
12653 (init_decl_processing): Set more language-specific hooks.
12654 (build_enumerator): Fix typo in comment.
12655 (cplus_expand_expr_stmt): Remove.
12656 (mark_lang_function): Use mark_c_language_function.
12657 (lang_mark_tree): Use c_mark_lang_decl.
12658 * decl2.c: Change order of inclusion.
12659 * except.c: Likewise.
12660 * expr.c (cplus_expand_expr): Remove handling of STMT_EXPR. Fall
12661 back on c_expand_expr.
12662 * friend.c: Include expr.h.
12663 * init.c: Change order of inclusion.
12664 * Makefile.in: Update dependencies.
12665 * lex.h (free_lang_decl_chain): Remove.
12666 * optimize.c (maybe_clone_body): Use function_name_declared_p.
12667 * pt.c (build_template_decl): Don't copy DECL_VIRTUAL_CONTEXT if
12668 it doesn't exist.
12669 (instantiate_decl): Use function_name_declared_p.
12670 * semantics.c (lang_expand_expr_stmt): Remove.
12671 (set_current_function_name_declared): Likewise.
12672 (current_function_name_declared): Likewise.
12673 (begin_compound_stmt): Use function_name_declared_p.
12674 (add_decl_stmt): Remove.
12675 (setup_vtbl_ptr): Use function_name_declared_p.
12676 (add_scope_stmt): Remove.
12677 (current_scope_stmt_stack): New function.
12678 (cp_expand_stmt): Don't handle SCOPE_STMTs.
12679 (expand_body): Use function_name_declared_p.
12680 * tree.c (cp_statement_code_p): Don't include SCOPE_STMT.
12681 * typeck.c: Change order of includes.
12682 (convert_sequence): Remove.
bb20cc46 12683
d9dbd9b1
JM
126842000-09-14 Joseph S. Myers <jsm28@cam.ac.uk>
12685
12686 * lex.c (reswords): Add _Complex.
12687
d2a6f3c0 126882000-09-14 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
9985f210
RK
12689
12690 * Make-lang.in (cplib2.txt): Depend on cp/Makefile.
12691
f903ebb1
DA
126922000-09-13 J. David Anglin <dave@hiauly1.hia.nrc.ca>
12693
12694 * init.c (begin_init_stmts): Don't use // comments.
12695
f2ae0c45
JM
126962000-09-12 Jason Merrill <jason@redhat.com>
12697
12698 * decl.c (maybe_deduce_size_from_array_init): Set do_default for
12699 all non-extern arrays.
12700
12701 * decl.c (grokdeclarator): Complain about 'friend T' for implicit
12702 typenames, too. Downgrade complaint to pedwarn.
12703 (xref_tag): Warn about surprising behavior of 'friend struct T'.
12704 * decl2.c (handle_class_head): Generate a TYPENAME_TYPE for
12705 'class This::Inherited'.
12706
71ad4a16
MM
127072000-09-12 Mark Mitchell <mark@codesourcery.com>
12708
12709 * decl.c (finish_case_label): Given the LABEL_DECL a
12710 DECL_CONTEXT.
12711
c3e76028
GDR
127122000-09-12 Gabriel Dos Reis <gdr@codesourcery.com>
12713
12714 * error.c (TFF_PLAIN_IDENTIFIER, TFF_NAMESPACE_SCOPE,
12715 TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS, TFF_CHASE_TYPDEF,
12716 TFF_DECL_SPECIFIERS, TFF_CLASS_KEY_OR_ENUM, TFF_RETURN_TYPE,
12717 TFF_FUNCTION_DEFAULT_ARGUMENTS, TFF_EXCEPTION_SPECIFICATION,
12718 TFF_TEMPLATE_HEADER, TFF_TEMPLATE_DEFAULT_ARGUMENTS, TFF_SCOPE):
12719 New macros.
12720 (sorry_for_unsupported_tree, print_scope_operator,
12721 print_left_paren, print_right_paren, print_left_bracket,
12722 print_right_bracket, print_whitespace): Likewise.
12723 (aggr_variety): Rename to class_key_or_enum.
12724 (print_type): Rename to print_type_id.
12725 (print_type_specifier_seq, print_simple_type_specifier,
12726 print_elaborated_type_specifier,
12727 print_rest_of_abstract_declarator,
12728 print_parameter_declaration_clause, print_exception_specification,
12729 print_nested_name_specifier, print_template_id,
12730 typedef_original_name, print_template_argument_list_start,
12731 print_template_argument_list_end): New functions.
12732
eb50138b
GDR
127332000-09-11 Gabriel Dos Reis <gdr@codesourcery.com>
12734
a8a05998 12735 * ir.texi: Add more documentation.
eb50138b 12736
f444e36b
MM
127372000-09-11 Mark Mitchell <mark@codesourcery.com>
12738
12739 * cp-tree.h (struct saved_scope): Remove x_function_parms.
12740 (current_function_parms): Don't define.
12741 (struct cp_language_function): Remove parms_stored.
12742 (current_function_just_assigned_this): Don't define.
12743 (current_function_parms_stored): Likewise.
12744 (static_ctors): Declare.
12745 (static_dtors): Likewise.
12746 (SF_EXPAND): Don't define.
12747 (expand_start_early_try_stmts): Remove declaration.
12748 (store_parm_decls): Likewise.
12749 * decl.c (static_ctors): Don't declare.
12750 (static_dtors): Likewise.
12751 (struct binding_level): Remove this_block.
12752 (poplevel): Remove dead code.
12753 (set_block): Likewise.
12754 (mark_binding_level): Don't mark this_block.
12755 (mark_saved_scope): Don't mark x_function_parms.
12756 (init_decl_processing): Don't add current_function_parms as a GC
12757 root.
12758 (check_function_type): Change prototype.
12759 (start_function): Remove RTL-generation code.
12760 (expand_start_early_try_stmts): Remove.
12761 (store_parm_decls): Give it internal linkage. Remove
12762 RTL-generation code.
12763 (finish_function): Remove RTL-generation code.
12764 * decl2.c (static_ctors): Fix formatting.
12765 (static_dtors): Likewise.
12766 * method.c (use_thunk): Don't call store_parm_decls.
12767 (synthesize_method): Likewise.
12768 * optimize.c (maybe_clone_body): Likewise.
12769 * parse.y (fn.def2): Likewise.
12770 (.set_base_init): Likewise.
12771 (nodecls): Likewise.
12772 * pt.c (instantiate_decl): Likewise.
12773 * rtti.c (synthesize_tinfo_fn): Likewise.
12774 * semantics.c (genrtl_try_block): Simplify.
12775 (expand_body): Use genrtl_start_function and
12776 genrtl_finish_function.
12777 (genrtl_start_function): New function.
12778 (genrtl_finish_function): Likewise.
12779
181d2ba0
NS
127802000-09-11 Nathan Sidwell <nathan@codesourcery.com>
12781
12782 * error.c (cp_tree_printer, case 'P'): Append break.
12783
f2d71db6
NS
127842000-09-11 Nathan Sidwell <nathan@codesourcery.com>
12785
12786 * cp-tree.h (frob_opname): Declare.
12787 * parse.y (saved_scopes): New static variable.
12788 (cp_parse_init): Adjust.
12789 (do_id): If lastiddecl is NULL, do do_identifier.
12790 (operator): Save scope information.
aca77bd1 12791 (unoperator): New reduction. Restore scope information.
f2d71db6
NS
12792 (operator_name): Append unoperator. Call frob_opname.
12793 * spew.c (frob_opname): Define.
12794
d8ea8f28
ZW
127952000-09-10 Zack Weinberg <zack@wolery.cumb.org>
12796
12797 * decl.c, rtti.c: Include defaults.h if not already included.
12798 Don't define the *_TYPE_SIZE macros.
12799
56cb9733
MM
128002000-09-09 Mark Mitchell <mark@codesourcery.com>
12801
12802 * cp-tree.h (push_switch): Change prototype.
12803 (check_cp_case_value): Remove declaration.
12804 (decl_constant_value): Likewise.
12805 * decl.c (struct cp_switch): Add switch_stmt and cases.
12806 (case_compare): New function.
12807 (push_switch): Set switch_stmt. Initialize cases.
12808 (pop_switch): Clean up cases.
12809 (define_case_label): Rename to ...
12810 (finish_case_label): ... this. Do semantic analysis for case
12811 labels here.
12812 (start_function): Correct comment.
12813 * decl2.c (check_cp_case_value): Remove.
12814 * expr.c (do_case): Remove.
12815 * pt.c (tsubst_expr): Adjust call to finish_case_label.
12816 * semantics.c (genrtl_do_poplevel): Remove declaration.
12817 (RECHAIN_STMTS): Remove.
12818 (finish_break_stmt): Use build_break_stmt.
12819 (finish_continue_stmt): Use build_continue_stmt.
12820 (finish_switch_cond): Adjust condition here, rater than in
12821 c_expand_start_case.
12822 (finish_case_label): Remove.
12823 * typeck.c (c_expand_return): Remove.
12824 (c_expand_start_case): Likewise.
bb20cc46 12825
990a9693
GDR
128262000-09-07 Gabriel Dos Reis <gdr@codesourcery.com>
12827
12828 * ir.texi: Document type nodes.
12829
ae499cce
MM
128302000-09-06 Mark Mitchell <mark@codesourcery.com>
12831
54f7877c
MM
12832 * cp-tree.h (init_cp_semantics): Declare.
12833 (genrtl_try_block): Don't declare.
12834 (genrtl_handler): Likewise.
12835 (genrtl_catch_block): Likewise.
12836 (genrtl_ctor_stmt): Likewise.
12837 (genrtl_subobject): Likewise.
12838 (genrtl_do_poplevel): Likewise.
12839 (genrtl_named_return_value): Likewise.
12840 * lex.c (init_parse): Call init_cp_semantics.
12841 * semantics.c (genrtl_try_block): Give it internal linkage.
12842 (genrtl_handler): Likewise.
12843 (genrtl_catch_block): Likewise.
12844 (genrtl_ctor_stmt): Likewise.
12845 (genrtl_subobject): Likewise.
12846 (genrtl_do_poplevel): Likewise.
12847 (genrtl_named_return_value): Likewise.
12848 (lang_expand_stmt): Rename to ...
12849 (cp_expand_stmt): ... this. Only handle C++-specific nodes.
12850 (init_cp_semantics): Define.
12851
3a0d3e1e
MM
12852 * decl.c (initialize_local_var): Remove RTL-generating code.
12853 * semantics.c (genrtl_try_block): Fix formatting.
12854
ae499cce
MM
12855 Move statement-tree facilities from C++ to C front-end.
12856 * cp-tree.h (cp_tree_index): Remove CPTI_VOID_ZERO.
12857 (void_zero_node): Remove.
12858 (stmt_tree): Likewise.
12859 (scope_chain): Adjust.
12860 (language_function): Rename to cp_language_function.
12861 (cp_function_chain): Adjust.
12862 (current_stmt_tree): Remove.
12863 (last_tree): Likewise.
12864 (last_expr_type): Likewise.
12865 (struct lang_decl): Adjust.
12866 (STMT_IS_FULL_EXPR_P): Remove.
12867 (add_tree): Remove.
12868 (begin_stmt_tree): Likewise.
12869 (finish_stmt_tree): Likewise.
12870 (walk_tree_fn): Likewise.
12871 (walk_stmt_tree): Likewise.
12872 * class.c (finish_struct): Replace use of add_tree with add_stmt.
12873 * decl.c (mark_stmt_tree): Adjust type.
12874 (init_decl_processing): Don't build void_zero_node.
12875 (initialize_local_var): Adjust usage of current_stmt_tree.
12876 (finish_enum): Use add_stmt, not add_tree.
12877 (save_function_data): Adjust use of language_function.
12878 (finish_constructor_body): Use add_stmt, not add_tree.
12879 (finish_destructor_body): Likewise.
12880 (push_cp_function_context): Adjust use of language_function.
12881 (pop_cp_function_context): Likewise.
12882 (mark_lang_function): Likewise.
12883 (mark_cp_function_context): Likewise.
12884 * init.c (build_aggr_init): Adjust use of current_stmt_tree.
12885 (build_vec_init): Likewise.
12886 * semantics.c (SET_LAST_STMT): Remove.
12887 (RECHAIN_STMTS): Don't use it.
12888 (stmts_are_full_exprs_p): Adjust use of current_stmt_tree.
12889 (current_stmt_tree): Define.
12890 (add_tree): Remove.
12891 (finish_goto_stmt): Use add_stmt, not add_tree.
12892 (finish_expr_stmt): Likewise.
12893 (begin_if_stmt): Likewise.
12894 (finish_then_clause): Likewise.
12895 (begin_while_stmt): Likewise.
12896 (begin_do_stmt): Likewise.
12897 (finish_return_stmt): Likewise.
12898 (begin_for_stmt): Likewise.
12899 (finish_break_stmt): Likewise.
12900 (finish_continue_stmt): Likewise.
12901 (begin_switch_stmt): Likewise.
12902 (finish_case_label): Likewise.
12903 (begin_try_block): Likewise.
12904 (begin_function_try_block): Likewise.
12905 (begin_handler): Likewise.
12906 (begin_catch_block): Likewise.
12907 (begin_compound_stmt): Likewise.
12908 (begin_asm_stmt): Likewise.
12909 (finish_asm_stmt): Likewise.
12910 (finish_label_stmt): Likewise.
12911 (add_decl_stmt): Likewise.
12912 (finish_subobject): Likewise.
12913 (finish_decl_cleanup): Likewise.
12914 (finish_named_return_value): Likewise.
12915 (setup_vtbl_ptr): Likewise.
12916 (add_scope_stmt): Likewise.
12917 (finish_stmt_expr): Likewise.
12918 (prune_unused_decls): Remove.
12919 (begin_stmt_tree): Likewise.
12920 (finish_stmt_tree): Likewise.
12921 (prep_stmt): Adjust use of current_stmt_tree.
12922 (lang_expand_stmt): Likewise.
12923 * tree.c (statement_code_p): Remove.
12924 (cp_statement_code_p): New function.
12925 (walk_stmt_tree): Remove.
12926 (init_tree): Set lang_statement_code_p.
bb20cc46 12927
0e5921e8
ZW
129282000-09-06 Zack Weinberg <zack@wolery.cumb.org>
12929
12930 Integrated preprocessor.
12931
12932 * Make-lang.in, Makefile.in: Remove all references to input.c,
12933 gxx.gperf, and hash.h. Add ../c-lex.o to C_OBJS.
12934 * gxx.gperf, hash.h, input.c: Delete.
12935 * lang-specs.h: Pass -lang-c++ to cc1plus so cpplib is
12936 initialized properly.
12937
12938 * class.c (fixup_pending_inline): Take a tree, not a
12939 struct pending_inline *. All callers changed.
12940 (init_class_processing): Set RID_PUBLIC, RID_PRIVATE,
12941 RID_PROTECTED entries in ridpointers[] array here.
12942 * decl.c (duplicate_decls): Do not refer to struct
12943 pending_inline.
12944 (record_builtin_type, init_decl_processing): Use RID_MAX not
12945 CP_RID_MAX.
12946 (grokdeclarator): Use C_IS_RESERVED_WORD.
12947 * decl2.c (lang_decode_option): Ignore -lang-c++ for sake of
12948 cpplib.
12949 (grok_x_components): Do not inspect pending_inlines chain.
12950
12951 * cp-tree.h (struct lang_identifier): Add rid_code entry.
12952 (C_IS_RESERVED_WORD, C_RID_CODE, C_RID_YYCODE): New.
12953 (flag_no_gnu_keywords, flag_operator_names, rid_to_yy): Declare.
12954 (DEFARG_LENGTH, struct pending_inline, TIME_IDENTIFIER_TIME,
12955 TIME_IDENTIFIER_FILEINFO): Kill.
12956 Update prototypes.
12957 * lex.h: Expunge cp_rid. Rewrite RIDBIT macros to use just a
12958 single 32-bit word.
12959 * parse.y: Call do_pending_inlines unconditionally.
12960 reinit_parse_for_method is now snarf_method. fn.defpen is no
12961 longer necessary. Remove unnecessary <itype> annotation on
12962 SCOPE. Do not refer to end_of_file or struct pending_inline.
12963 * semantics.c (begin_inline_definitions): Call
12964 do_pending_inlines unconditionally.
12965
12966 * lex.c: Remove all code now shared with C front end.
12967 Initialize cpplib properly if USE_CPPLIB. Put reserved words
12968 into the get_identifier table. Rewrite pragma handling to
12969 work with the registry. Move code to save tokens for later
12970 processing to spew.c.
12971
12972 * spew.c: Rewrite everything in terms of token streams instead
12973 of text. Move routines here from lex.c / input.c as
12974 appropriate. GC-mark trees hanging off the pending inlines
12975 chain.
12976
44835fdd
MM
129772000-09-06 Mark Mitchell <mark@codesourcery.com>
12978
12979 * NEWS: Mention that the named return value extension has been
12980 deprecated.
12981 * cp-tree.h (original_result_rtx): Define.
12982 (TREE_REFERENCE_EXPR): Remove.
12983 (DECL_VPARENT): Likewise.
12984 (pushdecl_nonclass_level): Likewise.
12985 (store_return_init): Likewise.
12986 (reinit_lang_specific): Likewise.
12987 (genrtl_named_return_value): Change prototype.
12988 * decl.c (original_result_rtx): Remove.
12989 (cp_finish_decl): Don't build DECL_STMTs for RESULT_DECLs.
12990 Do not generate RTL for local variables here.
12991 (store_return_init): Remove.
12992 * semantics.c (genrtl_named_return_value): Simplify. Fold in
12993 store_return_init.
12994 (finish_named_return_value): Adjust accordingly. Warn that this
12995 extension is deprecated.
12996 (lang_expand_stmt): Adjust call to genrtl_named_return_value.
12997
d7c4edd0
NS
129982000-09-06 Nathan Sidwell <nathan@codesourcery.com>
12999
13000 * pt.c (type_unification_real): Replace switch with if.
13001 (unify): Tsubst non-type parms before comparing.
13002
46e2747c
NS
130032000-09-06 Nathan Sidwell <nathan@codesourcery.com>
13004
13005 * error.c (dump_typename): New function, broken out of ...
13006 (dump_type): ... here. Use it.
13007 * typeck.c (same_type_p): Use cp_tree_equal for TYPENAME_TYPE.
13008
c833d2be
NS
130092000-09-06 Nathan Sidwell <nathan@codesourcery.com>
13010
13011 * init.c (build_offset_ref): Deal with namespace scoped
13012 TEMPLATE_ID_EXPRs.
13013
b1ce3eb2
NS
130142000-09-06 Nathan Sidwell <nathan@codesourcery.com>
13015
13016 * class.c (resolve_address_of_overloaded_function): Add
13017 explanation message.
13018 * decl.c (define_case_label): Reformat explanation.
13019 * decl2.c (finish_static_data_member_decl): Likewise.
13020 (grokfield): Likewise.
13021 * friend.c (do_friend): Likewise.
13022
11f53b6a
ZW
130232000-09-05 Zack Weinberg <zack@wolery.cumb.org>
13024
13025 * tree.c (walk_tree): Expose tail recursion.
13026 (walk_stmt_tree): New function.
13027 * cp-tree.h: Prototype walk_stmt_tree.
13028 * semantics.c (prune_unused_decls): Operate on SCOPE_STMTs not
13029 the BLOCKs directly. If a BLOCK has no variables after
13030 pruning, discard it.
13031 (finish_stmt_tree): Use walk_stmt_tree. No need to save and
13032 restore the line number.
13033
ee94fce6
MM
130342000-09-05 Mark Mitchell <mark@codesourcery.com>
13035
13036 * Makefile.in (CXX_TREE_H): Add dependency on HTAB_H.
13037 (pt.o): Remove dependency on HTAB_H.
13038 * cp-tree.h: Include hashtab.h.
13039 (walk_tree): Change prototype.
13040 (walk_tree_without_duplicates): New function.
13041 * decl.c (check_default_argument): Use it.
13042 * optimize.c (remap_decl): Adjust calls to walk_tree.
13043 (copy_body): Likewise.
13044 (expand_calls_inline): Likewise.
13045 (calls_setjmp_p): Use walk_tree_without_duplicates.
13046 * pt.c: Don't include hashtab.h.
13047 (for_each_template_parm): Use walk_tree_without_duplicates.
13048 * semantics.c (finish-stmt_tree): Likewise.
13049 (expand_body): Likewise.
13050 * tree.c (walk_tree): Add additional parameter.
13051 (walk_tree_without_duplicates): New function.
13052 (count_trees): Use it.
13053 (verify_stmt_tree): Adjust call to walk_tree.
13054 (find_tree): Use walk_tree_without_duplicates.
13055 (no_linkage_check): Likewise.
13056 (break_out_target_exprs): Adjust call to walk_tree.
13057 (cp_unsave): Likewise.
13058
a1281f45
KL
130592000-09-04 Kriang Lerdsuwanakij <lerdsuwa@users.sourceforge.net>
13060
13061 * cp-tree.def (BOUND_TEMPLATE_TEMPLATE_PARM): New tree code.
13062 (TEMPLATE_TEMPLATE_PARM): Adjust comment.
13063 * cp-tree.h (TYPE_BINFO): Adjust comment.
13064 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Likewise.
13065 (TEMPLATE_TYPE_PARM_INDEX): Likewise.
13066 (IS_AGGR_TYPE): Use BOUND_TEMPLATE_TEMPLATE_PARM instead.
13067 (TYPE_TEMPLATE_INFO): Likewise.
13068 (TEMPLATE_TEMPLATE_PARM_TEMPLATE_DECL): Likewise.
13069 * class.c (push_nested_class): Likewise.
13070 * decl.c (lookup_name_real): Likewise.
13071 (grokdeclarator): Likewise.
13072 (grok_op_properties): Likewise.
13073 (xref_tag): Likewise.
13074 (xref_basetypes): Likewise.
13075 * decl2.c (constructor_name_full): Likewise.
13076 (arg_assoc_template_arg): Add TEMPLATE_TEMPLATE_PARM case.
13077 (arg_assoc_type): Use BOUND_TEMPLATE_TEMPLATE_PARM instead.
13078 * error.c (dump_type): Split TEMPLATE_TEMPLATE_PARM case.
13079 (dump_type_prefix): Add BOUND_TEMPLATE_TEMPLATE_PARM.
13080 (dump_type_suffix): Likewise.
13081 * init.c (is_aggr_type): Use BOUND_TEMPLATE_TEMPLATE_PARM
13082 instead.
13083 (get_aggr_from_typedef): Likewise.
13084 * mangle.c (write_type): Split TEMPLATE_TEMPLATE_PARM case.
13085 (write_expression): Add BOUND_TEMPLATE_TEMPLATE_PARM.
13086 (write_template_parm): Likewise.
13087 (write_template_template_parm): Check tree code instead of
13088 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
0e5921e8 13089 * method.c (build_overload_nested_name): Add
a1281f45
KL
13090 BOUND_TEMPLATE_TEMPLATE_PARM.
13091 (process_overload_item): Split TEMPLATE_TEMPLATE_PARM case.
13092 * parse.y (bad_parm): Add BOUND_TEMPLATE_TEMPLATE_PARM.
13093 * pt.c (convert_template_argument): Check tree code instead of
13094 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
13095 (for_each_template_parm_r): Split TEMPLATE_TEMPLATE_PARM case.
13096 (for_each_template_parm): Adjust comment.
13097 (tsubst): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize.
13098 (tsubst_copy): Add BOUND_TEMPLATE_TEMPLATE_PARM.
13099 (unify): Add BOUND_TEMPLATE_TEMPLATE_PARM. Reorganize. Use
13100 template_args_equal to compare template template parameter cases.
13101 * ptree.c (print_lang_type): Add BOUND_TEMPLATE_TEMPLATE_PARM.
13102 * search.c (lookup_field_1): Use BOUND_TEMPLATE_TEMPLATE_PARM
13103 instead.
13104 * tree.c (copy_template_template_parm): Decide whether to create
13105 a TEMPLATE_TEMPLATE_PARM or BOUND_TEMPLATE_TEMPLATE_PARM node.
13106 (walk_tree): Add BOUND_TEMPLATE_TEMPLATE_PARM.
13107 (copy_tree_r): Likewise.
13108 * typeck.c (comptypes): Likewise. Check tree code instead of
13109 using TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO.
13110
c9672d45
ME
131112000-09-04 Mark Elbrecht <snowball3@bigfoot.com>
13112
13113 * decl.c (finish_function): Move the code for handling functions
13114 marked with the constructor and destructor attributes inside the
13115 expand_p block.
13116
67804825
NS
131172000-09-04 Nathan Sidwell <nathan@codesourcery.com>
13118
13119 * init.c (resolve_offset_ref): Deal with TEMPLATE_ID_EXPR.
13120
1bc0793e
NS
131212000-09-04 Nathan Sidwell <nathan@codesourcery.com>
13122
13123 * pt.c (lookup_template_class): Remove abort.
13124 * tree.c (get_type_decl): Allow error_mark_node.
13125
3338663b
NS
131262000-09-04 Nathan Sidwell <nathan@codesourcery.com>
13127
13128 * decl2.c (arg_assoc): Deal with COMPONENT_REFs inside
13129 TEMPLATE_ID_EXPRs.
13130
1b84dc37
MM
131312000-09-03 Mark Mitchell <mark@codesourcery.com>
13132
13133 * operators.def (ALIGNOF_EXPR, MAX_EXPR, MIN_EXPR): Change
c9672d45 13134 new ABI mangling.
1b84dc37 13135
9687f8f4
NS
131362000-09-01 Nathan Sidwell <nathan@codesourcery.com>
13137
13138 * parse.y (named_class_head): Check for TYPENAME_TYPE. Simplify
c9672d45 13139 union tag mismatch error reporting.
9687f8f4 13140
4f8025eb
NS
131412000-09-01 Nathan Sidwell <nathan@codesourcery.com>
13142
c9672d45 13143 * call.c (build_scoped_method_call): Check it is not a namespace.
4f8025eb 13144
495d26d6
JM
131452000-08-30 Jason Merrill <jason@redhat.com>
13146
13147 * cp-tree.h (LOCAL_CLASS_P): Use decl_function_context.
13148
13149 * tree.c (bot_manip): Check TREE_CONSTANT rather than
13150 !TREE_SIDE_EFFECTS. Call break_out_target_exprs and
13151 build_target_expr_with_type for the non-AGGR_INIT_EXPR case.
13152
13153 * decl.c (start_function): Always call make_function_rtl.
13154
7efcf466
ZW
131552000-08-29 Zack Weinberg <zack@wolery.cumb.org>
13156
495d26d6 13157 * semantics.c (prune_unused_decls): New function.
7efcf466
ZW
13158 (finish_stmt_tree): Call it via walk_tree.
13159
63ad61ed
ZW
131602000-08-29 Zack Weinberg <zack@wolery.cumb.org>
13161
13162 * class.c (build_secondary_vtable): Constify a char *.
13163 * decl.c (init_decl_processing): Initialize function_id_node,
13164 pretty_function_id_node, and func_id_node.
13165 * input.c (struct input_source): Constify 'str'.
13166 (feed_input): Constify first argument.
13167 * mangle.c (write_identifier): Constify argument.
13168 * pt.c (mangle_class_name_for_template): Constify argument.
13169
4361b41d
MM
131702000-08-29 Mark Mitchell <mark@codesourcery.com>
13171
13172 * typeck.c (mark_addressable): Remove code that pokes around in
13173 RTL.
13174
881c6935
JM
131752000-08-28 Jason Merrill <jason@redhat.com>
13176
13177 * lex.c (file_name_nondirectory): Move to toplev.c.
13178
13179 * cp-tree.h (LOCAL_CLASS_P): New macro.
13180 * class.c (finish_struct_1): Use it.
13181
f0f33848
AS
131822000-08-27 Alex Samuel <samuel@codesourcery.com>
13183
13184 * mangle.c (CLASSTYPE_TEMPLATE_ID_P): Remove unexplained voodoo.
13185 (write_encoding): Pass another argument to write_name.
13186 (write_name): Add ignore_local_scope parameter. Fix handling of
13187 local names.
13188 (write_nested_name): Use write_unqualified_name.
13189 (write_prefix): Likewise. Skip out on FUNCTION_DECLs.
13190 (write_template_prefix): Use write_unqualified_name.
13191 (write_component): Remove.
13192 (write_local_name): Add parameter. Use direct local entity to
13193 discriminator calculation.
0e5921e8 13194 (write_class_enum_type): Pass another argument to write_name.
f0f33848
AS
13195 (write_template_template_arg): Likewise.
13196 (make_guard_variable): Likewise.
0e5921e8 13197
94dfccd1
JM
131982000-08-27 Jason Merrill <jason@redhat.com>
13199
13200 * decl.c (pushdecl): Matching decls for local externs are found in
13201 the current level. Propagate linkage information from previous
13202 declarations.
13203
14fdf4b6
GDR
132042000-08-26 Gabriel Dos Reis <gdr@codesourcery.com>
13205
13206 * ir.texi (Expressions): Fix typo.
13207
b5232c64
GM
132082000-08-25 Greg McGary <greg@mcgary.org>
13209
13210 * tree.c (init_tree): Use ARRAY_SIZE.
13211
22a4158c
GDR
132122000-08-25 Gabriel Dos Reis <gdr@codesourcery.com>
13213
13214 * error.c (cp_tree_printer): Rework.
13215
f22967f3
MM
132162000-08-25 Mark Mitchell <mark@codesourcery.com>
13217
a0c182fe
MM
13218 * Make-lang.in (CXX_LIB2FUNCS): Remove cp-demangle.o and
13219 dyn-string.o.
13220 (CXX_LIB2SRCS): Remove cp-demangle.c and dyn-string.c.
13221 (cp-demangle.o): Remove target.
13222 (dyn-string.o): Likewise.
13223
f22967f3
MM
13224 * decl.c (grokfndecl): Require that `main' return an `int'.
13225 * mangle.c (write_encoding): Don't mangle return types for
13226 conversion functions.
13227
a1066c99
GDR
132282000-08-25 Gabriel Dos Reis <gdr@codesourcery.com>
13229
13230 * error.c (tree_formatting_info): New data type.
13231 (tree_being_formatted): New macro.
13232 (tree_formatting_flags): Likewise.
13233 (put_whitespace): Likewise.
13234 (print_tree_identifier): Likewise.
13235 (print_identifier): Likewise.
13236 (cp_tree_printer, print_function_argument_list, print_declaration,
13237 print_expression, print_function_declaration,
13238 print_function_parameter, print_type, print_cv_qualifier): New
0e5921e8 13239 functions.
a1066c99
GDR
13240 (init_error): Initialize lang_printer.
13241
3f2b640a
JM
132422000-08-24 Jason Merrill <jason@redhat.com>
13243
13244 * typeck.c (build_ptrmemfunc): Just reinterpret if there's no
13245 adjustment necessary.
13246
7ec09bf7
GM
132472000-08-24 Greg McGary <greg@mcgary.org>
13248
13249 * cp-tree.h (MAIN_NAME_P): Remove macro.
13250
2ab99c46
GDR
132512000-08-24 Gabriel Dos Reis <gdr@codesourcery.com>
13252
13253 * error.c (print_instantiation_context): Don't forget to flush the
13254 buffer.
13255
7def1251
JM
132562000-08-23 Jason Merrill <jason@redhat.com>
13257
13258 * typeck.c (build_ptrmemfunc): Save the input pmf.
13259
13260 * method.c (process_modifiers): Use same_type_p.
13261
94350948
MM
132622000-08-23 Mark Mitchell <mark@codesourcery.com>
13263
13264 * cp-tree.h (DECL_CLONED_FUNCTION_P): Check DECL_LANG_SPECIFIC.
13265 * mangle.c (write_function_type): Change prototype.
13266 (write_encoding): Don't mangle return types for
13267 constructors or destructors.
13268 (write_type): Adjust call to write_function_type.
13269 * pt.c (instantiate_template): Instantiate alternate entry points
13270 when instantiating the main function.
0e5921e8 13271
a64e7329
GDR
132722000-08-23 Gabriel Dos Reis <gdr@codesourcery.com>
13273
13274 * error.c (cp_print_error_function): Don't use embedded '\n' in
0e5921e8 13275 output_printf.
a64e7329 13276
a72462a4
GDR
132772000-08-23 Gabriel Dos Reis <gdr@codesourcery.com>
13278
13279 * decl.c (init_decl_processing): Remove bogus initialization.
13280 * error.c (lang_print_error_function): Restore here.
0e5921e8
ZW
13281 (init_error): Initialize print_error_function.
13282
3add6264
TP
132832000-08-22 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
13284
13285 * decl2.c (arg_assoc): Revert my 2000-08-11 change.
13286
cb753e49
GDR
132872000-08-22 Gabriel Dos Reis <gdr@codesourcery.com>
13288
13289 * Makefile.in (error.o): Depends on diagnostic.h
13290
13291 * cp-tree.h (problematic_instantiation_changed,
13292 record_last_problematic_instantiation, current_instantiation,
13293 print_instantiation_context): Declare.
13294 (maybe_print_template_context): Remove.
13295
13296 * decl.c (init_decl_processing): Set print_error_function to NULL.
13297 (lang_print_error_function): Remove, since we're using a new
13298 machinery.
13299
13300 * error.c: #include diagnostic.h
13301 (function_category): New function.
13302 (cp_diagnostic_starter): Likewise.
13303 (cp_diagnostic_finalizer): Likewise.
13304 (cp_print_error_function): Likewise.
13305 (maybe_print_instantiation_context): Likewise.
13306 (print_instantiation_full_context): Likewise.
13307 (print_instantiation_partial_context): Likewise.
13308 (print_instantiation_context): Define.
13309 (init_error): Initialize diagnostic pager and finalizer.
13310
13311 * pt.c (problematic_instantiation_changed): Define.
13312 (record_last_problematic_instantiation): Likewise.
13313 (current_instantiation): Likewise.
13314 (maybe_print_template_context): Remove.
13315 (print_template_context): Likewise.
13316 (current_tinst_level): Make static to reflect Brendan Kehoe's
13317 change of 1995-04-13.
0e5921e8
ZW
13318 (push_tinst_level): Call print_instantiation_context.
13319
05a3d06e 133202000-08-21 Nix <nix@esperi.demon.co.uk>
0e5921e8 13321
05a3d06e
N
13322 * lang-specs.h: Do not process -o or run the assembler if
13323 -fsyntax-only.
13324
93e2382f
JM
133252000-08-21 Joseph S. Myers <jsm28@cam.ac.uk>
13326
13327 * decl.c (flag_hosted, flag_noniso_default_format_attributes): New
13328 variables.
13329 * decl2.c (lang_decode_option): Disable gettext attributes for
13330 -ansi.
13331
24805e80
GDR
133322000-08-21 Gabriel Dos Reis <gdr@codesourcery.com>
13333
13334 * lex.c (lang_init_options): Default diagnostic message maximum
13335 length to 80, when line-wrapping.
13336
b485e15b
MM
133372000-08-20 Mark Mitchell <mark@codesourcery.com>
13338
13339 * class.c (build_vtbl_initializer): Clear the entire
13340 vtbl_init_data. Start keeping track of the functions for which we
13341 have created vcall offsets here.
13342 (dfs_build_vcall_offset_vtbl_entries): Remove.
13343 (build_vcall_offset_vtbl_entries): Reimplement.
13344 (add_vcall_offset_vtbl_entries_r): New function.
13345 (add_vcall_offset_vtbl_entries_1): Likewise. Tweak logic for
13346 computing when vcall offsets are necessary.
13347
2ae7bada
NS
133482000-08-18 Nathan Sidwell <nathan@codesourcery.com>
13349
13350 * decl.c (member_function_or_else): Use cp_error ... %T.
13351 (grokdeclarator): Likewise.
13352 (start_method): Likewise.
0e5921e8 13353 * friend.c (make_friend_class): Use cp_pedwarn ... %T.
2ae7bada 13354
7a8b1375
NS
133552000-08-18 Nathan Sidwell <nathan@codesourcery.com>
13356
13357 * decl2.c (grokfield): Set CLASSTYPE_GOT_SEMICOLON on class
0e5921e8 13358 TYPE_DECLs.
7a8b1375 13359
19420d00
NS
133602000-08-18 Nathan Sidwell <nathan@codesourcery.com>
13361
13362 * cp-tree.h (PTRMEM_OK_P): New macro.
13363 (itf_ptrmem_ok): New enumeration value.
13364 * class.c (resolve_address_of_overloaded_function): Add PTRMEM
13365 argument. Diagnose implicit pointer to member.
13366 (instantiate_type): Don't diagnose implicit pointer to member
13367 here. Pass itf_ptrmem_ok if ok. Adjust calls to
13368 resolve_address_of_overloaded_function.
13369 * init.c (build_offset_ref): Set PTRMEM_OK_P.
13370 (resolve_offset_ref): Don't diagnose implicit pointer to member here.
13371 * semantics.c (finish_parenthesized_expr): Clear OFFSET_REFs here.
13372 * typeck.c (build_x_unary_op): Calculate PTRMEM_OK_P.
13373 (build_unary_op): Deal with single non-static member in
13374 microsoft-land.
13375
66081283
NS
133762000-08-18 Nathan Sidwell <nathan@codesourcery.com>
13377
13378 * decl2.c (arg_assoc_type): Cope with TYPENAME_TYPE.
13379
fa40aa12
NS
133802000-08-18 Nathan Sidwell <nathan@codesourcery.com>
13381
13382 * cp-tree.h (enum_name_string): Remove prototype.
13383 (report_case_error): Remove prototype.
13384 * cp/typeck2.c (enum_name_string): Remove.
13385 (report_case_error): Remove.
13386 * error.c (dump_expr): Deal with enum values directly.
13387 Correctly negate integer constant.
13388
d13b34e9
NS
133892000-08-17 Nathan Sidwell <nathan@codesourcery.com>
13390
13391 * inc/cxxabi.h (__cxa_vec_new2, __cxa_vec_new3): Declare.
13392 (__cxa_vec_delete2, __cxa_vec_delete3): Declare.
13393 * vec.cc (__cxa_vec_new2, __cxa_vec_new3): Implement.
13394 (__cxa_vec_delete2, __cxa_vec_delete3): Implement.
13395 (__cxa_vec_new): Use __cxa_vec_new2.
13396 (__cxa_vec_delete): Use __cxa_vec_delete2.
13397
2f1b80af
NS
133982000-08-17 Nathan Sidwell <nathan@codesourcery.com>
13399
13400 * vec.cc (__cxa_vec_new): Set "C" linkage.
13401 (__cxa_vec_ctor): Likewise.
13402 (__cxa_vec_cctor): Likewise.
13403 (__cxa_vec_dtor): Likewise.
13404 (__cxa_vec_delete): Likewise.
13405 * inc/cxxabi.h (__cxa_vec_new): Set "C" linkage.
13406 (__cxa_vec_ctor): Likewise.
13407 (__cxa_vec_cctor): Likewise.
13408 (__cxa_vec_dtor): Likewise.
13409 (__cxa_vec_delete): Likewise.
13410
105d8e1f
NS
134112000-08-17 Nathan Sidwell <nathan@codesourcery.com>
13412
13413 * class.c (instantiate_type): Reinstate local variable
13414 deleted in previous change.
0e5921e8 13415
f1819d9a
NS
13416 * cvt.c (cp_convert_to_pointer): Pass itf_complain, not
13417 itf_no_attributes.
105d8e1f 13418
5e76004e
NS
134192000-08-17 Nathan Sidwell <nathan@codesourcery.com>
13420
13421 * cp-tree.h (instantiate_type_flags): New enumeration.
13422 (instantiate_type): Change parameter.
13423 * class.c (instantiate_type): Adjust prototype. Adjust.
13424 * call.c (standard_conversion): Adjust instantiate_type call.
13425 (reference_binding): Likewise.
13426 (build_op_delete_call): Likewise.
13427 (convert_like_real): Likewise.
13428 * cvt.c (cp_convert_to_pointer): Likewise.
13429 (convert_to_reference): Likewise.
13430 * pt.c (convert_nontype_argument): Likewise.
13431 * typeck.c (build_binary_op): Likewise.
13432 (build_ptrmemfunc): Likewise.
13433 (convert_for_assignment): Likewise.
13434
4b054b80
NS
134352000-08-17 Nathan Sidwell <nathan@codesourcery.com>
13436
13437 * cp-tree.h (CPTR_AGGR_TAG): New global tree node.
13438 (current_aggr): Define.
13439 * decl.c (grokdeclarator): Make sure a friend class is an
13440 elaborated type specifier.
13441 * parse.y (current_aggr): Remove static definition.
13442 (cp_parse_init): Adjust.
13443 (structsp): Clear and restore current_aggr.
13444 (component_decl_list): Clear current_aggr.
0e5921e8 13445
4b054b80
NS
13446 * error.c (dump_type, case TYPENAME_TYPE): Don't emit the
13447 aggregate tag on the typename's context.
0e5921e8 13448
321cba97
NS
13449 * pt.c (tsubst_friend_class): Return error_mark_node, if
13450 parms becomes NULL.
13451 (instantiate_class_template): Ignore error_mark_node friend types.
4b054b80 13452
08aead78
NS
134532000-08-14 Nathan Sidwell <nathan@codesourcery.com>
13454
13455 * cvt.c (warn_ref_binding): New static function, broken out of ...
0e5921e8 13456 (convert_to_reference): ... here. Use it.
08aead78 13457
fa1f3ebc
KL
134582000-08-11 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu>
13459
13460 * parse.y (template_arg): Add rule for template qualified with
13461 global scope.
13462
9845b52b
TP
134632000-08-11 Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
13464
13465 * decl2.c (add_function): Reorganize.
13466 (arg_assoc): Do not consider function template decls.
13467
e69c8072
JM
134682000-08-11 Jason Merrill <jason@redhat.com>
13469
13470 * decl.c (lookup_name_real): Don't forget the TYPENAME_TYPE we're
13471 looking inside.
13472
5c1e5476
NS
134732000-08-11 Nathan Sidwell <nathan@codesourcery.com>
13474
13475 * cp-tree.h (resolve_scope_to_name): Remove unused prototype.
13476 (lookup_nested_tag): Likewise.
0e5921e8 13477
5c1e5476
NS
13478 * decl2.c (grokfield): Fix comment to reflect many types of _DECLs
13479 can be produced.
13480
5426aa7f
NS
134812000-08-11 Nathan Sidwell <nathan@codesourcery.com>
13482
13483 * parse.y (named_complex_class_head_sans_basetype): Remove
13484 always true if.
13485
fd037e0d
NS
134862000-08-11 Nathan Sidwell <nathan@codesourcery.com>
13487
13488 * decl2.c (build_expr_from_tree, case METHOD_CALL_EXPR): Build
13489 explicit TEMPLATE_ID_EXPR args.
13490 (build_expr_from_tree, case CALL_EXPR): Likewise.
13491
73ae5c34
NS
134922000-08-11 Nathan Sidwell <nathan@codesourcery.com>
13493
13494 * decl.c (check_tag_decl): Diagnose typename's which don't
13495 declare anything.
13496
aa54df09
NS
134972000-08-10 Nathan Sidwell <nathan@codesourcery.com>
13498
13499 * init.c (build_aggr_init): Reject bogus array initializers
13500 early.
13501
7e8dad18
NS
135022000-08-09 Nathan Sidwell <nathan@codesourcery.com>
13503
13504 * rtti.c (build_dynamic_cast_1): Set "C" linkage for new abi
13505 runtime.
13506 * cp/tinfo.cc (__dynamic_cast): Likewise.
0e5921e8 13507 * cp/inc/cxxabi.h (__dynamic_cast): Likewise.
7e8dad18 13508
0f586b9b
NS
135092000-08-09 Nathan Sidwell <nathan@codesourcery.com>
13510
13511 * cvt.c (convert_to_pointer_force): Fix error message when
0e5921e8 13512 attempting to cast from ambiguous base.
0f586b9b 13513
08e72a19
JM
135142000-08-08 Jason Merrill <jason@redhat.com>
13515
13516 * pt.c (tsubst_aggr_type): Bail if creating the argvec fails.
13517 (tsubst_template_arg_vector): Likewise.
13518
13519 * decl2.c (build_anon_union_vars): Choose the largest field; don't
13520 assume that one will be as large as the union.
13521
0811ea8f
KH
135222000-08-07 Kazu Hirata <kazu@hxi.com>
13523
13524 * cp-tree.h (CLASSTYPE_HAS_PRIMARY_BASE_P): Fix a comment typo.
13525 * decl.c (pop_labels): Likewise.
13526
f9fcf62b
JO
135272000-08-04 Jeffrey Oldham <oldham@codesourcery.com>
13528
13529 * inc/cxxabi.h (__pbase_type_info): Changed member names to match
13530 specifications.
13531 (__pointer_to_member_type_info): Likewise.
13532 (__base_class_info): Likewise.
13533 (__class_type_info): Likewise.
13534 (__si_class_type_info): Likewise.
13535 (__vmi_class_type_info): Likewise.
13536 * tinfo.cc (__si_class_type_info::__do_find_public_src):
13537 Changed member names to match specifications.
13538 (__vmi_class_type_info::__do_find_public_src): Likewise.
13539 (__si_class_type_info::__do_dyncast): Likewise.
13540 (__vmi_class_type_info::__do_dyncast): Likewise.
13541 (__si_class_type_info::__do_upcast): Likewise.
13542 (__vmi_class_type_info::__do_upcast): Likewise.
13543 * tinfo2.cc (__pbase_type_info::__do_catch): Likewise.
13544 (__pbase_type_info::__pointer_catch): Likewise.
13545 (__pointer_type_info::__pointer_catch): Likewise.
13546 (__pointer_to_member_type_info::__pointer_catch): Likewise.
13547
a36556a8
ZW
135482000-08-04 Zack Weinberg <zack@wolery.cumb.org>
13549
0e5921e8
ZW
13550 * Make-lang.in (cc1plus): Depend on $(BACKEND), not stamp-objlist.
13551 * Makefile.in: Add C_OBJS, BACKEND; delete OBJS, OBJDEPS.
13552 (cc1plus): Link with $(BACKEND) and $(C_OBJS).
a36556a8 13553
452a394b
MM
135542000-08-04 Mark Mitchell <mark@codesourcery.com>
13555
13556 * cp-tree.h (add_method): Change prototype.
13557 * class.c (add_method): Remove FIELDS parameter. Add ERROR_P.
13558 Don't double the size of the method vector in the error case.
13559 (handle_using_decl): Adjust call to add_method.
13560 (add_implicitly_declared_members): Likewise.
13561 (clone_function_decl): Likewise.
13562 * decl2.c (check_classfn): Likewise.
13563 * semantics.c (finish_member_declaration): Likewise.
0e5921e8 13564
b8458e3e
JM
135652000-08-04 Joseph S. Myers <jsm28@cam.ac.uk>
13566
13567 * decl.c (flag_isoc94): New variable.
13568
a1bcc528
JM
135692000-08-02 Jason Merrill <jason@redhat.com>
13570
13571 * pt.c (do_type_instantiation): Add complain parm; don't complain
13572 if called recursively.
13573 * cp-tree.h, parse.y: Adjust.
13574
50e60bc3
ZW
135752000-08-02 Zack Weinberg <zack@wolery.cumb.org>
13576
eae51189
ZW
13577 * decl2.c: Silently ignore -Wstrict-prototypes; warn about
13578 -Wno-strict-prototypes.
13579
37620334
ZW
13580 * g++spec.c: Adjust type of second argument to
13581 lang_specific_driver, and update code as necessary.
13582
50e60bc3
ZW
13583 * cp-tree.h: Don't prototype min_precision here.
13584 (my_friendly_assert): Cast expression to void.
13585 * semantics.c (do_poplevel): Initialize scope_stmts.
13586
3f954fc3
MM
135872000-08-02 Mark Mitchell <mark@codesourcery.com>
13588
13589 * cp-tree.h (DECL_NEEDED_P): Tweak.
13590
ab4fa7ed
JM
135912000-07-28 Jason Merrill <jason@redhat.com>
13592
13593 * lang-specs.h: Use %i in rule for .ii files.
13594
4871239e
ZW
135952000-07-31 Zack Weinberg <zack@wolery.cumb.org>
13596
13597 * lang-specs.h: Rename cpp to cpp0 and/or tradcpp to tradcpp0.
13598
911a71a7
MM
135992000-07-30 Mark Mitchell <mark@codesourcery.com>
13600
13601 Allow indirect primary bases.
13602 * cp-tree.h (struct lang_type): Remove vfield_parent. Add
13603 primary_base.
13604 (CLASSTYPE_VFIELD_PARENT): Remove.
13605 (CLASSTYPE_PRIMARY_BINFO): Reimplement.
13606 (BINFO_PRIMARY_BINFO): Remove.
13607 (CLASSTYPE_HAS_PRIMARY_BASE_P): Reimplement.
13608 (BINFO_VBASE_PRIMARY_P): Likewise.
13609 (BINFO_PRIMARY_BASE_OF): New macro.
13610 (BINFO_INDIRECT_PRIMARY_P): Likewise.
13611 (get_primary_binfo): New function.
13612 * decl.c (lang_mark_tree): Make lang_type::primary_base.
13613 * class.c (vcall_offset_data_s): Rename to ...
13614 (vtbl_init_data_s): ... this. Rename primary_p to primary_vtbl_p,
13615 and add ctor_vtbl_p.
13616 (get_derived_offset): Use get_primary_binfo.
13617 (dfs_mark_primary_bases): Adjust handling of virtual primary
13618 bases.
13619 (mark_primary_bases): Likewise.
13620 (set_primary_base): Take a binfo, not an integer, as a
13621 representation of the primary base.
13622 (indirect_primary_base_p): Remove.
13623 (determine_primary_base): Adjust for indirect primary bases.
13624 (dfs_find_final_overrider): Fix typo in coment.
13625 (update_vtable_entry_for_fn): Use get_primary_binfo.
13626 (layout_nonempty_base_or_field): Tweak.
13627 (build_base_fields): Adjust for new primary base semantics.
13628 (dfs_propagate_binfo_offsets): Remove.
13629 (propagate_binfo_offsets): Rewrite.
13630 (dfs_set_offset_for_shared_vbases): Remove.
13631 (layout_virtual_bases): Don't use it.
13632 (layout_class_type): Set CLASSTYPE_SIZE correctly under the new
13633 ABI.
13634 (finish_struct_1): Set CLASSTYPE_PRIMARY_BINFO, not
13635 CLASSTYPE_VFIELD_PARENT.
13636 (dfs_get_primary_binfo): New function.
13637 (get_primary_binfo): Likewise.
13638 (dump_class_hierarchy_r): Tweak printing of primary bases.
13639 (build_vtbl_initializer): Fix typo in comments. Use
13640 vtbl_init_data.
13641 (build_vcall_and_vbase_vtbl_entries): Likewise.
13642 (build_vbaes_offset_vtbl_entries): Likewise.
13643 (dfs_build_vcall_offset_vtbl_entries): Adjust setting of
13644 BV_VCALL_INDEX to handle indirect primary bases.
13645 (build_vcall_offset_vtbl_entries): Use vtbl_init_data.
13646 (build_rtti_vtbl_entries): Likewise.
13647 * search.c (get_shared_vbase_if_not_primary): Tweak.
13648 (find_vbase_instance): Likewise.
13649 (binfo_for_vtable): Simplify.
13650 * tree.c (unshare_base_binfos): Clear BINFO_PRIMARY_BASE_OF.
13651 (make_binfo): Make it have 11 entries.
0e5921e8 13652
722bed0f
AS
136532000-07-30 Alex Samuel <samuel@codesourcery.com>
13654
13655 * mangle.c (DECL_TEMPLATE_ID_P): Remove.
13656 (CLASSTYEP_TEMPLATE_ID_P): Check template info, and context when
13657 ascertaining primaryness.
13658 (G): Remove template_args.
13659 (decl_is_template_id): New function.
13660 (write_encoding): Use decl_is_template_id.
13661 (write_name): Likewise. Handle type_decls. Get main variant of
13662 type decls.
13663 (write_nested_name): Likewise.
13664 (write_prefix): Likewise.
13665 (write_template_prefix): Likewise.
13666 (write_special_name_constructor): Remove defunct production from
13667 comment.
13668 (write_bare_function_type): Remove comment about absent parameter.
13669 (write_template_template_arg): Add missing grammar production to
13670 comment.
13671
9076e292
JM
136722000-07-27 Jason Merrill <jason@redhat.com>
13673
13674 * decl.c (duplicate_decls): If common_type produces a non-typedef
13675 type for a typedef, just use the old type.
13676
b2244c65
MM
136772000-07-27 Mark Mitchell <mark@codesourcery.com>
13678
13679 * cp-tree.h (function_depth): Declare.
13680 (verify_stmt_tree): Likewise.
13681 (find_tree): Likewise.
13682 * decl.c (function_depth): Give it external linkage.
13683 * optimize.c (optimize_function): Increment and decrement it.
13684 * tree.c (verify_stmt_tree_r): New function.
13685 (verify_stmt_tree): Likewise.
13686 (find_tree_r): Likewise.
13687 (find_tree): Likewise.
13688
62e3bf54
JM
136892000-07-27 Jason Merrill <jason@redhat.com>
13690
9076e292
JM
13691 * pt.c (for_each_template_parm_r, case RECORD_TYPE): Use
13692 TYPE_PTRMEMFUNC_P.
13693 * cp-tree.h (TYPE_TEMPLATE_INFO): Check for TYPE_LANG_SPECIFIC.
62e3bf54 13694
5a728aca
MM
136952000-07-26 Mark Mitchell <mark@codesourcery.com>
13696
13697 * decl.c (start_cleanup_fn): Mark the function as `inline'.
13698 * decl2.c (get_guard): Call cp_finish_decl, not
13699 rest_of_decl_compilation, for local guards.
13700 * lex.c (do_identifier): Remove unused variable.
13701
d2a6f3c0 137022000-07-26 Marc Espie <espie@cvs.openbsd.org>
6a1fa5f9
ME
13703
13704 * parse.y: Add missing ';'.
13705
0c10a805
MM
137062000-07-26 Mark Mitchell <mark@codesourcery.com>
13707
13708 * parse.y (empty_parms): Use `()', not `(...)', when in the scope
13709 of `extern "C++"'.
13710
8b27e9ef
NS
137112000-07-25 Nathan Sidwell <nathan@codesourcery.com>
13712
13713 Kill strict_prototype. Backwards compatibility only for
13714 non NO_IMPLICIT_EXTERN_C systems.
13715 * cp-tree.h (flag_strict_prototype): Remove.
13716 (strict_prototype): Remove.
13717 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove.
13718 * decl.c (maybe_push_to_top_level): Adjust.
13719 (pop_from_top_level): Adjust.
13720 (decls_match): Only allow sloppy parm matching for ancient
13721 system headers.
13722 (init_decl_processing): Adjust.
13723 (grokdeclarator): Adjust.
13724 * decl2.c (flag_strict_prototype): Remove.
13725 (strict_prototype): Remove.
13726 (strict_prototypes_lang_c, strict_prototypes_lang_cplusplus): Remove.
13727 (lang_f_options): Remove "strict-prototype".
13728 (unsupported-options): Add "strict-prototype".
13729 * lex.c (do_identifier): Adjust.
13730 (do_scoped_id): Adjust.
13731 * parse.y (empty_parms): Adjust.
13732 * class.c (push_lang_context): Adjust.
13733 (pop_lang_context): Adjust.
13734 * typeck.c (comp_target_parms): Adjust.
13735
c3783399
NS
137362000-07-25 Nathan Sidwell <nathan@codesourcery.com>
13737
13738 * decl.c (poplevel): Deal with anonymous variables at for scope.
13739 (maybe_inject_for_scope_var): Likewise.
13740
a7023245
ZW
137412000-07-25 Zack Weinberg <zack@wolery.cumb.org>
13742
13743 * decl.c: Remove all signal handling code, now done in toplev.c.
13744
95ee998c
MM
137452000-07-23 Mark Mitchell <mark@codesourcery.com>
13746
13747 * decl.c (make_rtl_for_nonlocal_decl): Rework.
13748
13749 * pt.c (lookup_template_class): Ensure that TYPE_CONTEXT is set
13750 correctly.
13751
1b493b81
ZW
137522000-07-20 Zack Weinberg <zack@wolery.cumb.org>
13753
13754 * cp-tree.h: Use __FUNCTION__ not __PRETTY_FUNCTION__.
13755 Define my_friendly_assert and my_friendly_abort as macros
13756 which may call friendly_abort. Prototype friendly abort, not
13757 my_friendly_abort or my_friendly_assert.
13758 * decl.c (signal_catch): Report the signal caught in the error
13759 message. Call fatal directly.
13760 * typeck2.c (ack, my_friendly_assert): Delete.
13761 (my_friendly_abort): Rename to friendly_abort. Expect file,
13762 line, and function parameters. Report the abort code, then
13763 call fancy_abort. Do not mask an abort if errors have
13764 already occurred.
13765
a306451c
NS
137662000-07-18 Nathan Sidwell <nathan@codesourcery.com>
13767
13768 * typeck.c (comp_target_parms): Remove obsolete parameter.
13769 (comp_target_types): Adjust.
13770
f49fad00
JM
137712000-07-17 Jason Merrill <jason@redhat.com>
13772
13773 * typeck.c (mark_addressable): Never set TREE_USED.
13774 * call.c (build_call): Don't abort on calls to library functions
13775 that have been declared normally.
13776
13777 * typeck.c (build_binary_op): Fix grammar in warning.
13778
13779 * exception.cc (__eh_free): Fix prototype.
13780
13781 * decl2.c (finish_decl_parsing): Handle TEMPLATE_ID_EXPR.
13782
0e5921e8 13783 * decl.c (pushdecl): Handle seeing an OVERLOAD in
f49fad00
JM
13784 IDENTIFIER_NAMESPACE_VALUE.
13785
69690d98
MM
137862000-07-16 Mark Mitchell <mark@codesourcery.com>
13787
13788 * cp-tree.h (THUNK_VCALL_OFFSET): Update documentation.
13789 * method.c (use_thunk): Correct handling of vcall offsets.
13790
bfbbc080
ZW
137912000-07-14 Zack Weinberg <zack@wolery.cumb.org>
13792
13793 * .cvsignore: parse.h and parse.c have no cp- prefix.
13794
83a90717
MM
137952000-07-13 Mark Mitchell <mark@codesourcery.com>
13796
13797 * .cvsignore: New file.
13798
ea414c97
ZW
137992000-07-13 Zack Weinberg <zack@wolery.cumb.org>
13800
13801 * lang-specs.h: Use the new named specs. Remove unnecessary braces.
13802
792abd35
MM
138032000-07-12 Mark Mitchell <mark@codesourcery.com>
13804
13805 * Makefile.in ($(PARSE_H)): Depend directly on parse.y.
13806 * parse.c: Remove.
13807 * parse.h: Likewise.
13808
72a50ab0
MM
138092000-07-11 Mark Mitchell <mark@codesourcery.com>
13810
13811 * class.c (layout_class_type): Add pointers to virtual bases after
13812 base classes under the old ABI.
13813
0dfdeca6
BC
138142000-07-10 Benjamin Chelf <chelf@codesourcery.com>
13815
13816 * semantics.c (finish_for_stmt): Remove call to emit_line_note.
13817 (finish_continue_stmt): Likewise.
13818 (begin_for_stmt): Remove call to note_level_for_for.
13819 (finish_goto_stmt): Change call from build_min_nt
13820 to build_stmt.
13821 (finish_expr_stmt): Likewise.
13822 (begin_if_stmt): Likewise.
13823 (begin_while_stmt): Likewise.
13824 (finish_while_stmt): Likewise.
13825 (finish_return_stmt): Likewise.
13826 (begin_for_stmt): Likewise.
13827 (finish_for_stmt): Likewise.
13828 (finish_break_stmt): Likewise.
13829 (begin_switch_stmt): Likewise.
13830 (finish_case_label): Likewise.
13831 (genrtl_try_block): Likewise.
13832 (begin_try_block): Likewise.
13833 (begin_handler): Likewise.
13834 (begin_compound_stmt): Likewise.
13835 (finish_asm_stmt): Likewise.
13836 (finish_label_stmt): Likewise.
13837 (add_decl_stmt): Likewise.
13838 (finish_subobject): Likewise.
13839 (finish_decl_cleanup): Likewise.
13840 (finish_named_return_value): Likewise.
13841 (setup_vtbl_ptr): Likewise.
13842 (add_scope_stmt): Likewise.
13843 * decl.c (finish_constructor_body): Likewise.
13844 (finish_destructor_body): Likewise.
13845 * optimize.c (copy_body_r): Likewise.
13846 (initialize_inlined_parameters): Likewise.
13847 (declare_return_variable): Likewise.
13848 (expand_call_inline): Likewise.
0e5921e8 13849
f12eef58
JJ
138502000-07-10 Jakub Jelinek <jakub@redhat.com>
13851
13852 * semantics.c (expand_body): Sync interface information
13853 at the end of function body expansion.
13854
2bb5d995
JM
138552000-07-09 Jason Merrill <jason@redhat.com>
13856
13857 * init.c (build_new_1): Bail early if the call to new fails.
13858
0e5921e8 13859 * decl.c (compute_array_index_type): Check specifically for
2bb5d995
JM
13860 an INTEGER_CST, not just TREE_CONSTANT.
13861
0e5921e8 13862 * decl.c (duplicate_decls): Don't call duplicate_decls on
2bb5d995
JM
13863 the DECL_TEMPLATE_RESULT.
13864 (decls_match): Return 0 if the DECL_TEMPLATE_RESULTs have different
13865 codes.
13866
13867 * error.c (dump_template_bindings): Don't crash if we had an
13868 invalid argument list.
13869
13870 * typeck.c (c_expand_start_case): Do narrowing here.
13871 * semantics.c (finish_switch_cond): Not here.
13872
138732000-07-09 Hidvegi Zoli <hzoli@austin.ibm.com>
13874
13875 * parse.y (asm_clobbers): Do string concatenation.
13876
089acd57
MM
138772000-07-09 Mark Mitchell <mark@codesourcery.com>
13878
13879 * decl.c (pushtag): Don't put local classes in template functions
13880 on the local_classes list.
13881
138822000-07-04 Scott Snyder <snyder@fnal.gov>
13883
13884 * decl2.c (get_guard): Add missing return for old ABI local
13885 variable case.
13886
7b019c19
MM
138872000-07-09 Mark Mitchell <mark@codesourcery.com>
13888
13889 * cp-tree.h (char_type_p): New function.
13890 * decl.c (init_decl_processing): Don't initialize
13891 signed_wchar_type_node or unsigned_wchar_type_node.
13892 (complete_array_type): Handle brace-enclosed string-constants.
13893 * rtti.c (emit_support_tinfos): Remove #if 0'd code.
13894 * tree.c (char_type_p): New function.
13895 * typeck2.c (digest_init): Use char_type_p.
13896
a5f1c5f8
NS
138972000-07-06 Nathan Sidwell <nathan@codesourcery.com>
13898
13899 * pt.c (tsubst): Don't layout type, if it's error_mark.
13900
84e5ca0f
NS
139012000-07-06 Nathan Sidwell <nathan@codesourcery.com>
13902
13903 * pt.c (instantiate_pending_templates): Reset template level.
13904
ab785305
JM
139052000-07-05 Jason Merrill <jason@redhat.com>
13906
13907 * call.c (joust): Don't complain about `operator char *()' beating
13908 `operator const char *() const'.
13909
90418208
JM
139102000-07-04 scott snyder <snyder@fnal.gov>
13911 Jason Merrill <jason@redhat.com>
13912
0e5921e8 13913 * repo.c (repo_get_id): Handle the case where a class with virtual
90418208
JM
13914 bases has a null TYPE_BINFO_VTABLE.
13915
139162000-07-04 Kevin Buhr <buhr@stat.wisc.edu>
13917 Jason Merrill <jason@redhat.com>
13918
13919 * parse.y (member_init): Just pass in the type.
13920 * init.c (expand_member_init): Handle getting a type.
13921
13922