OSDN Git Service

* toplev.c (wrapup_global_declarations): Clarify variable handling.
[pf3gnuchains/gcc-fork.git] / gcc / cp / ChangeLog
1 2002-03-15  Jason Merrill  <jason@redhat.com>
2
3         * decl.c (make_rtl_for_nonlocal_decl): Also defer COMDAT
4         variables.
5         * decl2.c (maybe_make_one_only): Also mark the decl as needed.
6
7 2002-03-14  Richard Henderson  <rth@redhat.com>
8
9         * decl.c: Include c-pragma.h.
10         (start_decl, start_function): Invoke maybe_apply_pragma_weak.
11         * Make-lang.in: Update dependencies.
12
13 2002-03-14  Jakub Jelinek  <jakub@redhat.com>
14
15         PR c++/5908
16         * call.c (build_over_call): Set TREE_NO_UNUSED_WARNING too.
17         * cvt.c (convert_to_void): Preserve TREE_NO_UNUSED_WARNING.
18
19 2002-03-12  Richard Sandiford  <rsandifo@redhat.com>
20
21         * mangle.c (write_builtin_type): Handle 128-bit integers even if
22         they are not a standard integer type.
23
24 2002-03-12  Richard Sandiford  <rsandifo@redhat.com>
25
26         * cp-tree.h (init_init_processing): Remove declaration.
27         * init.c (BI_header_type, init_init_processing): Remove old ABI stuff.
28         * decl.c (cxx_init_decl_processing): Don't call init_init_processing.
29
30 2002-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
31
32         * cp-lang.c (tree_code_type, tree_code_length, tree_code_name):
33         Define.
34         * decl.c (duplicate_decls): Use TREE_CODE_LENGTH, not
35         tree_code_length.
36         * lex.c (cplus_tree_code_type, cplus_tree_code_length,
37         cplus_tree_code_name): Delete.
38         (cxx_init): Don't call add_c_tree_codes, instead set
39         lang_unsafe_for_reeval.  Don't try to copy into the various
40         tree_code arrays.
41
42 2002-03-12  Nathan Sidwell  <nathan@codesourcery.com>
43
44         PR c++/5659
45         * decl.c (xref_tag): Don't set CLASSTYPE_DECLARED_CLASS here.
46         * decl2.c (handle_class_head): Set CLASSTYPE_DECLARED_CLASS for
47         definitions.
48
49 2002-03-11  Nathan Sidwell  <nathan@codesourcery.com>
50
51         Revert 2001-03-26  Nathan Sidwell  <nathan@codesourcery.com>,
52         DR209 is now not a defect.
53         * cp-tree.h (skip_type_access_control): Remove.
54         * decl.c (grokdeclarator): Do type access control for friend
55         declarations.
56         * semantics.c (decl_type_access_control): Don't reset
57         current_type_lookups.
58         (save_type_access_control): Always save the lookups.
59         (skip_type_access_control): Remove.
60         (finish_class_definition): Don't change type_lookups.
61
62 2002-03-11  Nathan Sidwell  <nathan@codesourcery.com>
63
64         Revert 2000-12-01  Nathan Sidwell  <nathan@codesourcery.com>,
65         It is incorrect.
66         * typeck.c (build_static_cast): Compare non-qualified types
67         with pointer to member conversions.
68
69 2002-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
70             Daniel Berlin  <dan@dberlin.org>
71
72         * cp-lang.c (ok_to_generate_alias_set_for_type): New function.
73         (cxx_get_alias_set): Use it.
74
75 2002-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
76
77         * cp-tree.h (stabilize_expr): Prototype.
78
79 2002-03-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
80
81         * cp-tree.h (CLEAR_BINFO_MARKED): Make both parts of
82         conditional return void.
83
84 2002-03-08  Neil Booth  <neil@daikokuya.demon.co.uk>
85
86         * cp-lang.c (LANG_HOOKS_UNSAVE): Redefine.
87         * cp-tree.h (cxx_unsave): New.
88         * tree.c (cp_unsave): Rename cxx_unsave, update prototype.
89         (init_tree): Update.
90
91 2002-03-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
92
93         * decl.c (cxx_init_decl_processing): Use ARRAY_SIZE in lieu of
94         explicit sizeof/sizeof.
95         * decl2.c (cxx_decode_option): Likewise.
96         * lex.c (init_reswords, REDUCE_LENGTH, TOKEN_LENGTH): Likewise.
97
98 2002-03-02  Nathan Sidwell  <nathan@codesourcery.com>
99
100         PR c++/775
101         * decl.c (lookup_tag): Only reject enum/class mismatch, not
102         class/union mismatch.
103         * parse.y (check_class_key): New function.
104         (structsp): Call it.
105
106 2002-03-01  Michael Matz  <matz@suse.de>
107
108         * typeck.c (cp_pointer_int_sum): Complete inner type which is
109         used later by size_in_bytes().
110
111 2002-03-01  Phil Edwards  <pme@gcc.gnu.org>
112
113         * cp-tree.h:  Require __GNUC__ to be #defined.
114         (build_init):  Add missing prototype.
115
116 2002-03-01  Jason Merrill  <jason@redhat.com>
117
118         * except.c: Don't include decl.h or obstack.h.  Do include
119         tree-inline.h.
120         (build_throw): Destroy temporaries from the thrown
121         expression before calling __cxa_throw.  Construct a thrown 
122         temporary directly into the exception object.
123         (stabilize_throw_expr): New function.
124         (wrap_cleanups_r): New function.
125         * tree.c (stabilize_expr): New function.
126         * init.c (build_init): New function.
127         * Make-lang.in (cp/except.o): Adjust .h deps.
128
129 2002-02-28  Jason Merrill  <jason@redhat.com>
130
131         * search.c (lookup_base_r): Don't clear is_non_public just because
132         we found a friendly scope.
133
134         * decl.c (finish_function): Only warn about missing return
135         statement with -Wreturn-type.
136
137 2002-02-28  Neil Booth  <neil@daikokuya.demon.co.uk>
138
139         * class.c (build_clone): Update.
140         * cp-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine.
141         * cp-tree.h (cxx_dup_lang_specific_decl): New.
142         * lex.c (copy_lang_decl): Rename cxx_dup_lang_specific_decl.
143         (copy_decl): Update.
144         * method.c (make_thunk): Update.
145
146 2002-02-27  Zack Weinberg  <zack@codesourcery.com>
147
148         * decl2.c: Delete traditional-mode-related code copied from
149         the C front end but not used, or used only to permit the
150         compiler to link.
151
152 2002-02-24 Craig Rodrigues  <rodrigc@gcc.gnu.org> 
153
154         PR c++/4093
155         * cp-tree.h (SET_BINFO_MARKED): Cast false part of condition
156         to void.
157
158 2002-02-22  Jakub Jelinek  <jakub@redhat.com>
159
160         PR other/5746
161         * semantics.c (finish_switch_cond): Don't call get_unwidened
162         if error_mark_node.
163
164 2002-02-22  Nathan Sidwell  <nathan@codesourcery.com>
165
166         PR c++/2645, DR 295
167         * cp-tree.h (tsubst_flags_t): Add tf_ignore_bad_quals,
168         tf_keep_type_decl.
169         (make_typename_type): Use tsubst_flags_t.
170         * decl.c (make_typename_type): Adjust. Return non-artificial
171         TYPE_DECLs, if required.
172         (grokdeclarator): Simplify CVR qualification handling. Allow bad
173         qualifiers on typedef types.
174         * decl2.c (handle_class_head): Adjust make_typename_type call.
175         * parse.y (nested_name_specifier): Likewise.
176         (typename_sub0): Likewise.
177         (typename_sub1): Likewise.
178         * pt.c (convert_template_argument): Adjust make_typename_type
179         return value.
180         (tsubst): Adjust cp_build_qualified_type_real calls.
181         (check_cv_quals_for_unify): Cope with alowing bad qualifications
182         on template type parms.
183         (instantiate_decl): Recheck substitutions to give warnings on bad
184         qualifications.
185         * tree.c (cp_build_qualified_type_real): Use tf_allow_bad_quals.
186
187 2002-02-21  Aldy Hernandez  <aldyh@redhat.com>
188
189         * cp/decl.c (duplicate_decls): Merge always_inline attribute.
190
191         * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0
192         unless DECL_ALWAYS_INLINE.
193
194 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
195
196         * typeck.c (cp_pointer_int_sum): Renamed from
197         pointer_int_sum, call pointer_int_sum.
198
199 2002-02-20  Jakub Jelinek  <jakub@redhat.com>
200
201         * decl.c (duplicate_decls): Return 0 if issued error about
202         redeclaration.
203
204 2002-02-19  Jason Merrill  <jason@redhat.com>
205
206         ABI change: Mangle `void (A::*)() const' as 
207         M1AKFvvE, not MK1AFvvE.
208         * mangle.c (write_function_type): Write cv-quals for member
209         function type here.
210         (write_pointer_to_member_type): Not here.
211
212 2002-02-18  Jason Merrill  <jason@redhat.com>
213
214         * pt.c (do_type_instantiation): Don't pedwarn if in_system_header.
215         (do_decl_instantiation): Likewise.
216
217 2002-02-17  Craig Rodrigues  <rodrigc@gcc.gnu.org>
218
219         PR c++/5685
220         * decl.c (duplicate_decls): Make warning unconditional
221         if duplicate default argument declarations are present.
222
223 2002-02-17  Jakub Jelinek  <jakub@redhat.com>
224
225         * typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit
226         shortening.
227
228 2002-02-15  Nathan Sidwell  <nathan@codesourcery.com>
229
230         * decl.c (grokdeclarator): Set typedef_decl for all TYPE_DECLs,
231         remove incorrect comment. Move #if 0'd code to common path. Use
232         IMPLICIT_TYPENAME_P. Simplify & reformat ARRAY_TYPE duplication.
233
234 2002-02-13  Jason Merrill  <jason@redhat.com>
235
236         * decl.c (builtin_function): Set TREE_THIS_VOLATILE on return fns.
237         (finish_function): Don't warn if current_function_returns_null.
238
239         * typeck2.c (digest_init): Do handle values of vector type.
240
241         * typeck2.c (digest_init, process_init_constructor): Treat vectors
242         like arrays.
243
244 2002-02-11  Jason Merrill  <jason@redhat.com>
245
246         * parse.y (reserved_declspecs): Don't handle attributes.
247         (reserved_typespecquals): Handle them here.
248         * Make-lang.in (parse.c): Adjust expected conflicts.
249
250 2002-02-08  Jakub Jelinek  <jakub@redhat.com>
251
252         * parse.y (primary, primary_no_id): Use compstmt_or_stmtexpr
253         instead of compstmt.
254         (compstmt_or_stmtexpr): Renamed from compstmt.
255         (compstmt): In addition to compstmt_or_stmtexpr clear last_expr_type.
256
257 2002-02-07  Nathan Sidwell  <nathan@codesourcery.com>
258
259         Rename instantiate_type_flags to tsubst_flags_t & expand use.
260         * cp-tree.h (instantiate_type_flags): Rename to ...
261         (tsubst_flags_t): ... here. Rename itf_complain to tf_error,
262         add tf_warning flag.
263         (instantiate_type): Adjust prototype.
264         (tsubst, tsubst_expr, tsubst_copy, lookup_template_class,
265         do_type_instantiation, cp_build_qualified_type_real): Likewise.
266         cp_build_qualified_type: Adjust.
267         * class.c (instantiate_type): Adjust parameter. Rename itf_* to
268         tf_*.
269         * call.c (standard_conversion): Rename itf_* to tf_*.
270         (reference_binding): Likewise.
271         (convert_like_real): Likewise.
272         * cvt.c (cp_convert_to_pointer): Likewise.
273         (convert_to_reference): Likewise.
274         * decl.c (lookup_namespace_name): Use tf_* flags.
275         (make_typename_type): Likewise.
276         (grokdeclarator): Likewise.
277         * pt.c (convert_nontype_argument): Adjust COMPLAIN usage.
278         (coerce_template_template_parms, convert_template_argument,
279         coerce_template_parms, maybe_get_template_decl_from_type_decl,
280         lookup_template_class, tsubst_friend_function, tsubst_friend_class,
281         instantiate_class_template, tsubst_template_arg_vector, 
282         tsubst_template_parms, tsubst_aggr_type, tsubst_default_argument, 
283         tsubst_decl, tsubst_arg_types, tsubst_function_type,
284         tsubst_call_declarator_parms, tsubst, tsubst_copy, tsubst_expr, 
285         instantiate_template, fn_type_unification,
286         resolve_overloaded_unification, verify_class_unification, 
287         unify, get_bindings_real, do_type_instantiation, 
288         regenerate_decl_from_template, instantiate_decl, 
289         tsubst_initializer_list, tsubst_enum,
290         get_mostly_instantiated_function_type,
291         invalid_nontype_parm_type_p): Likewise.
292         * tree.c (cp_build_qualified_type_real): Likewise.
293         * typeck.c (build_binary_op): Rename itf_* to tf_*.
294         (build_ptrmemfunc): Likewise.
295         (convert_for_assignment): Likewise.
296
297 2002-02-07  Nathan Sidwell  <nathan@codesourcery.com>
298
299         PR c++/109
300         * decl.c (grokdeclarator): Allow friend declarations from
301         dependent types.
302         * decl2.c (handle_class_head): Don't push into template parm contexts.
303         * pt.c (push_template_decl_real): Template parm contexts are never
304         being defined.
305
306 2002-02-05  Alexandre Oliva  <aoliva@redhat.com>
307
308         * class.c: Include target.h.
309         (check_bitfield_decl): Disregard EMPTY_FIELD_BOUNDARY,
310         BITFIELDS_NBYTES_LIMITED and PCC_BITFIELD_TYPE_MATTERS for MS
311         bit-field layout.
312         * Make-lang.in: Adjust deps.
313
314 2002-02-05  Jason Merrill  <jason@redhat.com>
315
316         * error.c (dump_type): Be more helpful about VECTOR_TYPE.
317
318 2002-02-04  Jakub Jelinek  <jakub@redhat.com>
319
320         * semantics.c (begin_switch_stmt): Clear SWITCH_TYPE.
321         (finish_switch_cond): Set SWITCH_TYPE.
322
323 2002-02-04  Richard Henderson  <rth@redhat.com>
324
325         * method.c (use_thunk): Always initialize the block tree.  Reindent.
326         * semantics.c (expand_body): Emit thunks after function, not before.
327
328 2002-02-04  Jason Merrill  <jason@redhat.com>
329
330         * decl.c (start_function): Call cplus_decl_attributes immediately
331         after grokdeclarator.
332
333         * decl.c (start_function): Combine DECL_RESULT handling code.
334
335 2002-02-03  Jason Merrill  <jason@redhat.com>
336
337         * xref.c: Remove.
338         * Make-lang.in (CXX_OBJS): Remove cp/xref.o
339         (cp/xref.o): Remove dependencies.
340         * class.c (finish_struct_1, check_methods): Don't call xref fns.
341         (finish_struct_1): Likewise.
342         * friend.c (make_friend_class): Likewise.
343         * lex.c (cxx_init, cxx_finish, extract_interface_info): Likewise.
344         * spew.c (read_process_identifier): Likewise.
345
346 2002-02-01  Jason Merrill  <jason@redhat.com>
347
348         PR c++/4872
349         * decl.c (finish_function): Warn about a non-void function with 
350         no return statement and no abnormal exit.
351         * cp-tree.h (struct cp_language_function): Add returns_abnormally.
352         (current_function_returns_abnormally): New macro.
353         * call.c (build_call): Set it.
354
355         * typeck.c (build_component_ref): Always complain about offsetof
356         constructs on non-PODs.  Only make it an error for members of
357         virtual bases.
358
359         * error.c (dump_scope): Don't add TFF_DECL_SPECIFIERS.
360         (dump_function_decl): Always dump parms.
361
362         * decl2.c (finish_static_data_member_decl): Complain about a local
363         class with a static data member.
364
365         PR c++/4286
366         * search.c (lookup_field_1): Don't xref a static data member
367         just because we looked it up.
368
369 2002-01-31  Jason Merrill  <jason@redhat.com>
370
371         * Make-lang.in (parse.c): Handle .output file.
372
373         PR c++/3395
374         * decl.c (xref_tag): Remember early attributes in TYPE_ATTRIBUTES,
375         not TREE_TYPE.
376         * semantics.c (finish_class_definition): Adjust.
377
378         Allow attributes in parms and casts.
379         * parse.y (named_parm): Don't strip attrs.
380         (declmods): Remove 'attributes' production.
381         (nonempty_cv_qualifiers): Accept attributes.
382         (ATTRIBUTE): Give precedence.
383         * decl.c (groktypename): Handle attributes.
384         (grokparms): Likewise.
385
386 2002-01-29  Jakub Jelinek  <jakub@redhat.com>
387
388         * decl2.c (cxx_decode_option): Pass 0 as last argument to
389         cpp_handle_option.
390         * lang-specs.h: Use cpp_unique_options instead of cpp_options
391         when used together with cc1_options.
392
393 2002-01-29  Nathan Sidwell  <nathan@codesourcery.com>
394
395         PR c++/5132
396         * typeck2.c (digest_init): Make sure non-array core type is
397         instantiated.
398         * decl2.c (reparse_absdcl_as_casts): Just store the type in the
399         constructor, rather than build a new one.
400         (build_expr_from_tree, CONSTRUCTOR case): Be careful with the
401         PURPOSE of constructor elts.
402
403 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
404
405         * Make-lang.in (parse.c): Adjust expected number of
406         shift-reduce conflicts.
407         (decl.o): Depend on diagnostic.h.
408         * decl.c: Include diagnostic.h.
409         (grokdeclarator): Check for null pointer.
410         (finish_function): Don't abort when
411         current_binding_level->parm_flag != 1, if errors have
412         occurred; throw away the statement tree and extra binding
413         levels, and continue.
414         * lex.c (note_list_got_semicolon): Check for null pointer.
415         * method.c (hack_identifier): Just return error_mark_node if
416         value is error_mark_node.
417         * parse.y (primary: TYPEID(type_id)): No need to use
418         TYPE_MAIN_VARIANT here.
419         (handler_seq): Accept an empty list of catch clauses and
420         generate a fake handler block to avoid later crashes.
421         (ansi_raise_identifier): Accept the error token too.
422         * semantics.c (begin_class_definition,
423         finish_class_definition): Check for error_mark_node.
424
425 2002-01-23  Zack Weinberg  <zack@codesourcery.com>
426
427         * typeck2.c (friendly_abort): Delete definition.
428         * cp-tree.h (friendly_abort): Don't prototype.
429         (my_friendly_assert): Use fancy_abort.
430
431 2002-01-23  Craig Rodrigues  <rodrigc@gcc.gnu.org>
432
433         * cp-tree.h (my_friendly_abort): Remove.
434
435 2002-01-23  Jakub Jelinek  <jakub@redhat.com>
436
437         * spew.c (pending_inlines, pending_inlines_tail,
438         processing_these_inlines): Make static.
439         (mark_pending_inlines): Remove static.
440         (begin_parsing_inclass_inline): If in function, save pi
441         for GC to cp_function_chain->unparsed_inlines instead.
442         (process_next_inline): Likewise.
443         * cp-tree.h (struct cp_language_function): Add unparsed_inlines.
444         (mark_pending_inlines): Add prototype.
445         * decl.c (spew_debug): Remove unused extern.
446         (mark_lang_function): Call mark_pending_inlines.
447
448 2002-01-23  Craig Rodrigues  <rodrigc@gcc.gnu.org>
449
450         * call.c, class.c, decl.c, decl2.c, error.c, expr.c, friend.c,
451         init.c, lex.c, mangle.c, method.c, pt.c, repo.c, rtti.c, search.c,
452         semantics.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c:
453         Change my_fancy_abort() to abort().
454
455 2002-01-23  Jason Merrill  <jason@redhat.com>
456
457         PR c++/5453
458         * class.c (fixed_type_or_null): Fix thinko.
459
460         PR c++/3331
461         * init.c (resolve_offset_ref): Use build_indirect_ref.
462
463         * decl2.c (grokclassfn): Don't set DECL_REGISTER on 'this'.
464
465 2002-01-22  Jason Merrill  <jason@redhat.com>
466
467         * parse.y (function_body): Suppress the block for the outermost
468         curly braces.
469         * decl.c (pushdecl): Don't try to skip it.
470         (begin_function_body): Keep the block we create, not the next one.
471         * init.c (emit_base_init): Don't mess with keep_next_level.
472
473         * class.c (build_base_path): Tweak formatting.
474
475 2002-01-19  Nathan Sidwell  <nathan@codesourcery.com>
476
477         Fix regression introduced with patch for c++/775
478         * parse.y (class_head_defn): Check for template specializations
479         with a different class-key.
480
481 2002-01-17  Jason Merrill  <jason@redhat.com>
482
483         * decl.c (begin_constructor_body, begin_destructor_body): New fns.
484         (begin_function_body): Call them and keep_next_level.
485         * init.c (emit_base_init): Call keep_next_level.
486         * semantics.c (setup_vtbl_ptr): Lose.
487         * cp-tree.h (struct cp_language_function): Remove vtbls_set_up_p.
488         (vtbls_set_up_p): Lose.
489         * pt.c (tsubst_expr, CTOR_INITIALIZER): Call emit_base_init.
490         * method.c (do_build_copy_constructor): Likewise.
491         (synthesize_method): Call finish_mem_initializers.
492         * parse.y (nodecls): Likewise.
493
494         * error.c (dump_type_suffix): Print the exception specs before
495         recursing.
496         (dump_function_decl): Here, too.
497
498         * cp-tree.h (TMPL_PARMS_DEPTH): Cast to signed HOST_WIDE_INT.
499
500 2002-01-10  Ira Ruben   <ira@apple.com>
501
502         PR c++/907
503         * decl.c (start_method): Handle attrlist.
504
505 2002-01-10  Jakub Jelinek  <jakub@redhat.com>
506
507         * decl2.c (max_tinst_depth): Increase default limit to 500.
508
509 2002-01-10  Graham Stott  <grahams@redhat.com>
510
511         * spew.c (YYCHAR): Uppercase macro parameter and add
512         parenthesis.
513         (YYCODE): Likewise.
514         (NAME): Uppercase macro parameter.
515
516 2002-01-09  Graham Stott  <grahams@redhat.com>
517
518         * decl.h (grokdeclarator): Wrap long line.
519
520         * semantics.c (FINISH_COND): Uppercase macro paramaters and
521         add parenthesis.
522
523 2002-01-08  Graham Stott  <grahams@redhat.com>
524
525         * xref.c (FILE_NAME_ABSOLUTE_P): Add parenthesis.
526         (PALLOC): Uppercase macro parameter and whitespace.
527         (SALLOC): Uppercase macro parameter.
528         (SFREE): Uppercase macros parameter, add parenthese and
529         whitespace.
530         (STREQL): Uppercase macro parameter and whitespace.
531         (STRNEQ): Likewise.
532         (STRLSS): Likewise.
533         (STRLEQ): Likewise.
534         (STRGTR): Likewise.
535         (STRGEQ): Likewise.
536
537         * call.c (convert_like): Add parenthesis and wrap.
538         (convert_like_with_context): Likewise.
539         (ICS_RANK): Whitespace.
540         (NEED_TEMPORARY_P): Remove parenthesis.
541
542         * class.c (VTT_TOP_LEVEL_P): Uppercase macro parameter and
543         whitespace.
544         (VTT_MARKED_BINFO_P): Likewise.
545
546         * decl.c (BINDING_LEVEL): Add parenthesis.
547         (DEF_OPERATOR): Likewise.
548
549         * mangle.c (MANGLE_TRACE): Add parenthesis.
550         (MANGLE_TRACE_TREE): Likewise.
551         (write_signed_number): Likewise.
552         (write_unsigned_number): Likewise.
553
554         * pt.c (ccat): Uppercase macro parameter.
555         (cat): Likewise
556
557         * search.c (SET_BINFO_ACCESS): Add parenthesis.
558
559 2002-01-07  Jason Merrill  <jason@redhat.com>
560
561         * decl2.c (coerce_new_type): Downgrade error for size_t mismatch
562         to pedwarn.
563
564         PR c++/3536
565         * method.c (make_thunk): If !flag_weak, give the thunk the
566         function's linkage.
567         (use_thunk): Here, too.
568
569 2002-01-07  Graham Stott  <grahams@redhat.com>
570
571         * error.c: Update copyright date.
572         (print_scope_operator): Add parenthesis.
573         (print_left_paren): Likewise.
574         (print_right_paren): Likewise.
575         (print_left_bracket): Likewise.
576         (print_right_bracket): Likewise.
577         (print_template_argument_list_start): Likewise.
578         (print_template_argument_list_end): Likewise.
579         (print_non_consecutive_character): Likewise.
580         (print_tree_identifier): Likewise.
581         (print_identifier): Likewise.
582         (NEXT_CODE): Uppercase macro parameter.
583         (ident_fndecl): Delete unused.
584         (GLOBAL_THING): Likewise.
585
586 2002-01-06  Graham Stott  <grahams@redhat.com>
587
588         * cp-tree.h (VAR_OR_FUNCTION_DECL_CHECK): Add parenthesis.
589         (VAR_FUNCTION_OR_PARM_DECL_CHECK): Likewise.
590         (VAR_TEMPL_TYPE_OR_FUNCTION_DECL_CHECK) Likewise.
591         (RECORD_OR_UNION_TYPE_CHECK): Likewise.
592         (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Likewise.
593         (C_IS_RESERVED_WORD): Uppercase macro parameter.
594         (C_RID_YYCODE) Likewise.
595         (ptrmem_cst): Use rtx.
596         (LOCAL_BINDING_P): Add whitespace.
597         (INHERITED_VALUE_BINDING_P): Likewise.
598         (BINDING_SCOPE): Wrap long line.
599         (BINDING_HAS_LEVEL_P): Remove parenthesis.
600         (BINDING_VALUE): Wrap long line.
601         (BINDING_TYPE): Whitespace.
602         (IDENTIFIER_GLOBAL_VALUE): Add parenthesis.
603         (SET_IDENTIFIER_GLOBAL_VALUE): Likewise.
604         (IDENTIFIER_NAMESPACE_VALUE): Likewise.
605         (SET_IDENTIFIER_NAMESPACE_VALUE: Likewise.
606         (same_type_p): Uppercase macro parameters.
607         (same_type_ignoring_top_level_qualifiers_p): Likewise.
608         (OVL_FUNCTION): Wrap long line.
609         (OVL_CHAIN): Whitespace.
610         (OVL_CURRENT): Add parenthesis and whitespace.
611         (OVL_NEXT): Whitespace.
612         (OVL_USED): Likewise.
613         (IDENTIFIER_TYPE_VALUE): Likewise.
614         (REAL_IDENTIFIER_TYPE_VALUE): Remove parenthesis.
615         (SET_IDENTIFIER_TYPE_VALUE): Add parenthesis and whitespace.
616         (LANG_ID_FIELD): Whitespace.
617         (SET_LANG_ID(NODE,VALUE,NAME): Likewise.
618         (IDENTIFIER_LABEL_VALUE): Whitespace and wrap.
619         (SET_IDENTIFIER_LABEL_VALUE): Whitespace.
620         (IDENTIFIER_IMPLICIT_DECL): Whitespace and wrap.
621         (SET_IDENTIFIER_IMPLICIT_DECL); Whitespace.
622         (IDENTIFIER_ERROR_LOCUS): Whitespace and wrap.
623         (SET_IDENTIFIER_ERROR_LOCUS); Whitespace.
624         (IDENTIFIER_VIRTUAL_P): Likewise.
625         (IDENTIFIER_OPNAME_P): Likewise.
626         (IDENTIFIER_TYPENAME_P): Remove parenthesis.
627         (C_TYPE_FIELDS_READONLY): Uppercase macro parameters.
628         (C_SET_EXP_ORIGINAL_CODE): Likewise.
629         (TYPE_ASSEMBLER_NAME_STRING): Wrap long line.
630         (TYPE_ASSEMBLER_NAME_LENGTH): Likewise.
631         (IS_AGGR_TYPE): Uppercase macro parameter.
632         (CLASS_TYPE_P): Likewise.
633         (IS_AGGR_TYPE_CODE): Uppercase macro parameter and parenthesis.
634         (IS_AGGR_TYPE_2): Whitespace.
635         (TAGGED_TYPE_P): Uppercase macro parameter.
636         (TYPE_BUILT_IN): Whitespace.
637         (TYPE_FOR_JAVA): Likewise.
638         (FUNCTION_ARG_CHAIN): Remove parenthesis.
639         (FUNCTION_FIRST_USER_PARMTYPE): Add parenthesis.
640         (FUNCTION_FIRST_USER_PARAM): Likewise.
641         (PROMOTES_TO_AGGR_TYPE): Whitespace.
642         (DERIVED_FROM_P): Add parenthesis and wrap.
643         (UNIQUELY_DERIVED_FROM_P): Likewise.
644         (ACCESSIBLY_UNIQUELY_DERIVED_P): Likewise.
645         (PUBLICLY_UNIQUELY_DERIVED_P): Likewise.
646         (CLASSTYPE_USE_TEMPLATE): Whitespace.
647         (CLASSTYPE_INLINE_FRIENDS): Remove parenthesis.
648         (TYPE_GETS_DELETE): Add parenthesis.
649         (TYPE_HAS_CONVERSION): Add parenthesis and wrap.
650         (TYPE_HAS_ASSIGN_REF): Likewise,
651         (TYPE_HAS_CONST_ASSIGN_REF): Likewise.
652         (TYPE_HAS_INIT_REF): Likewise.
653         (TYPE_HAS_CONST_INIT_REF): Likewise.
654         (TYPE_BEING_DEFINED): Likewise.
655         (TYPE_LANG_SPECIFIC): Likewise.
656         (CLASSTYPE_RTTI): Likewise.
657         (TYPE_OVERLOADS_CALL_EXPR): Likewise.
658         (TYPE_OVERLOADS_ARRAY_REF): Likewise.
659         (TYPE_OVERLOADS_ARROW): Likewise.
660         (TYPE_USES_MULTIPLE_INHERITANCE): Likewise.
661         (TYPE_USES_VIRTUAL_BASECLASSES): Add parenthesis.
662         (CLASSTYPE_METHOD_VEC): Likewise.
663         (CLASSTYPE_MARKED_N): Likewise.
664         (CLASSTYPE_MARKED): Likewise.
665         (CLASSTYPE_MARKED2): Likewise.
666         (CLASSTYPE_MARKED3): Likewise.
667         (CLASSTYPE_MARKED4): Likewise.
668         (CLASSTYPE_MARKED5): Likewise.
669         (CLASSTYPE_MARKED6): Likewise.
670         (SET_CLASSTYPE_MARKED): Whitespace.
671         (CLEAR_CLASSTYPE_MARKED): Likewise.
672         (SET_CLASSTYPE_MARKED2): Likewise.
673         (CLEAR_CLASSTYPE_MARKED2): Likewise.
674         (SET_CLASSTYPE_MARKED3): Likewise.
675         (CLEAR_CLASSTYPE_MARKED3): Likewise.
676         (SET_CLASSTYPE_MARKED4): Likewise.
677         (CLEAR_CLASSTYPE_MARKED4): Likewise.
678         (SET_CLASSTYPE_MARKED5): Likewise.
679         (CLEAR_CLASSTYPE_MARKED5): Likewise.
680         (SET_CLASSTYPE_MARKED6): Likewise.
681         (CLEAR_CLASSTYPE_MARKED6): Likewise.
682         (CLASSTYPE_TAGS): Likewise.
683         (CLASSTYPE_VSIZE): Likewise.
684         (CLASSTYPE_VBASECLASSES): Likewise.
685         (CANONICAL_BINFO): Add parenthesis.
686         (CLASSTYPE_SIZE(NODE): Likewise.
687         (CLASSTYPE_SIZE_UNIT): Likewise.
688         (CLASSTYPE_ALIGN(NODE): Likewise.
689         (CLASSTYPE_USER_ALIGN): Likewise.
690         (TYPE_JAVA_INTERFACE): Likewise.
691         (CLASSTYPE_PURE_VIRTUALS): Likewise.
692         (CLASSTYPE_NEEDS_VIRTUAL_REINIT): Whitespace and wrap.
693         (TYPE_HAS_DEFAULT_CONSTRUCTOR): Likewise.
694         (CLASSTYPE_HAS_MUTABLE): Likewise.
695         (CLASSTYPE_FRIEND_CLASSES): Likewise. Likewise.
696         (CLASSTYPE_DECLARED_CLASS): Whitespace and wrap.
697         (CLASSTYPE_READONLY_FIELDS_NEED_INIT): Likewise.
698         (CLASSTYPE_REF_FIELDS_NEED_INIT): Likewise.
699         (CLASSTYPE_INTERFACE_ONLY): Likewise.
700         (CLASSTYPE_INTERFACE_KNOWN): Likewise.
701         (CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
702         (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
703         (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
704         (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
705         (CLASSTYPE_DEBUG_REQUESTED): Whitespace and wrap.
706         (BINFO_UNSHARED_MARKED): Whitespace.
707         (BINFO_MARKED): Whitespace and wrap.
708         (SET_BINFO_MARKED): Likewise.
709         (CLEAR_BINFO_MARKED): Likewise.
710         (BINFO_VTABLE_PATH_MARKED): Likewise.
711         (SET_BINFO_VTABLE_PATH_MARKED): Likewise.
712         (CLEAR_BINFO_VTABLE_PATH_MARKED): Likewise.
713         (BINFO_SUBVTT_INDEX): Remove parenthesis.
714         (BINFO_VPTR_INDEX): Likewise.
715         (BINFO_PRIMARY_BASE_OF): Likewise,
716         (CLASSTYPE_VFIELDS): Whitespace.
717         (VF_DERIVED_VALUE): Wrap long line.
718         (NAMESPACE_LEVEL): Whitespace.
719         (CAN_HAVE_FULL_LANG_DECL_P): Remove parenthesis.
720         (DEFARG_POINTER): Whitespace.
721         (DECL_NEEDED_P): Remove parenthesis.
722         (DECL_LANGUAGE): Whitespace.
723         (SET_DECL_LANGUAGE): Add parenthesis.
724         (DECL_CONSTRUCTOR_P): Whitespace and wrap.
725         (DECL_OVERLOADED_OPERATOR_P): Remove parenthesis.
726         (DECL_IN_AGGR_P): Whitespace.
727         (DECL_FRIEND_P): Likewise.
728         (DECL_BEFRIENDING_CLASSES): Likewise.
729         (DECL_STATIC_FUNCTION_P): Whitespace and wrap.
730         (DECL_NONCONVERTING_P): Whitespace.
731         (DECL_PURE_VIRTUAL_P): Likewise.
732         (DECL_NEEDS_FINAL_OVERRIDER_P): Likewise.
733         (DECL_PENDING_INLINE_INFO): Whitespace.
734         (DECL_SORTED_FIELDS): Likewise.
735         (DECL_DEFERRED_FN): Likewise.
736         (DECL_TEMPLATE_INFO): Likewise.
737         (CLASSTYPE_TEMPLATE_INFO): Whitespace and wrap.
738         (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO); Likewise.
739         (SET_TYPE_TEMPLATE_INFO): Add parenthesis.
740         (TMPL_ARGS_LEVEL): Likewise.
741         (SET_TMPL_ARGS_LEVEL): Likewise.
742         (INNERMOST_TEMPLATE_PARMS): Whitespace.
743         (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter.
744         (INTEGRAL_CODE_P(CODE): Add parenthesis.
745         (CP_INTEGRAL_TYPE_P): Remove parenthesis.
746         (TYPE_HAS_CONSTRUCTOR): Whitespace.
747         (TREE_HAS_CONSTRUCTOR): Likewise.
748         (TYPE_HAS_DESTRUCTOR): Likewise.
749         (TYPE_HAS_REAL_ASSIGN_REF): Likewise.
750         (TYPE_HAS_COMPLEX_ASSIGN_REF): Likewise.
751         (TYPE_HAS_ABSTRACT_ASSIGN_REF): Likewise.
752         (TYPE_HAS_COMPLEX_INIT_REF): Likewise.
753         (TYPE_HAS_NONTRIVIAL_DESTRUCTOR): Likewise.
754         (TYPE_PTRMEMFUNC_P): Likewise.
755         (TYPE_PTRMEMFUNC_FLAG): Likewise.
756         (TYPE_GET_PTRMEMFUNC_TYPE): Likewise.
757         (TYPE_SET_PTRMEMFUNC_TYPE): Likewise.
758         (TYPE_PTRMEM_CLASS_TYPE): Remove parenthesis.
759         (TYPE_PTRMEM_POINTED_TO_TYPE): Likewise.
760         (DECL_ACCESS): Whitespace.
761         (DECL_GLOBAL_CTOR_P): Remove parenthesis.
762         (DECL_GLOBAL_DTOR_P): Likewise.
763         (GLOBAL_INIT_PRIORITY): Likewise.
764         (DECL_TEMPLATE_PARMS): Likewise.
765         (DECL_TEMPLATE_RESULT): Likewise.
766         (DECL_TEMPLATE_INSTANTIATIONS): Likewise.
767         (DECL_TEMPLATE_SPECIALIZATIONS): Likewise.
768         (DECL_IMPLICIT_TYPEDEF_P): Remove parenthesis.
769         (SET_DECL_IMPLICIT_TYPEDEF_P): Likewise.
770         (PRIMARY_TEMPLATE_P): Add parenthesis.
771         (DECL_USE_TEMPLATE): Whitespace.
772         (CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise.
773         (SET_CLASSTYPE_IMPLICIT_INSTANTIATION): Likewise.
774         (CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise.
775         (SET_CLASSTYPE_EXPLICIT_INSTANTIATION): Likewise.
776         (CALL_DECLARATOR_PARMS): Remove parenthesis.
777         (CALL_DECLARATOR_QUALS): Likewise.
778         (CALL_DECLARATOR_EXCEPTION_SPEC): Likewise.
779         (TEMP_NAME_P): Wrap.
780         (VFIELD_NAME_P): Likewise.
781         (B_SET): Uppercase macro parameters and add parenthesis.
782         (B_CLR): Likewise.
783         (B_TST): Likewise.
784         (LOOKUP_NAMESPACES_ONLY): Uppercase macro parameters.
785         (LOOKUP_TYPES_ONLY): Uppercase macro parameters.
786         (LOOKUP_QUALIFIERS_ONLY): Uppercase macro parameters.
787         (same_or_base_type_p): Likewise.
788         (cp_deprecated): Likewise.
789
790 2002-01-05  Richard Henderson  <rth@redhat.com>
791
792         * semantics.c (expand_body): Revert last change.
793
794 2002-01-04  Jason Merrill  <jason@redhat.com>
795
796         PR c++/4122
797         * class.c (update_vtable_entry_for_fn): Set delta to zero for a
798         lost primary.
799
800         * class.c (build_vtbl_initializer): Check for a lost primary
801         before calculating the vtable entry to throw away.
802
803 2002-01-02  Jason Merrill  <jason@redhat.com>
804
805         * semantics.c (expand_body): Call outlining_inline_function when
806         emitting an inline function out of line.
807
808 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
809
810         PR c++/5116, c++/764 reversion
811         * call.c (build_new_op): Revert the instantiations. They are
812         incorrect.
813
814 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
815
816         PR c++/5089
817         * decl2.c (reparse_absdcl_as_casts): Don't warn about casts to void.
818
819 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
820
821         PR c++/3716
822         * pt.c (tsubst_aggr_type): Move pmf handling into tsubst.
823         (tsubst, case POINTER_TYPE): Handle pmfs here.
824         (tsubst, case OFFSET_TYPE): Check it is not an offset to
825         reference. If it is offset to FUNCTION_TYPE, create a METHOD_TYPE.
826
827 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
828
829         PR c++/35
830         * cp-tree.h (DECL_LANG_FLAG_0): Used for PARM_DECL too.
831         (DECL_TEMPLATE_PARM_P): A PARM_DECL might be one too.
832         * pt.c (process_template_parm): SET_DECL_TEMPLATE_PARM_P on the
833         PARM_DECL.
834         (tsubst_template_parms): Break up loop statements.
835         (tsubst_decl, case PARM_DECL): Copy DECL_TEMPLATE_PARM_P. Template
836         parm PARM_DECLs don't get promoted.
837
838 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
839
840         PR c++/5123
841         * typeck.c (build_component_ref): Cope with a TEMPLATE_ID_EXPR.
842         (build_x_function_call): Cope with a COMPONENT_REF containing a
843         TEMPLATE_ID_EXPR.
844
845 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
846
847         PR c++/5213
848         * pt.c (convert_template_argument): Be more careful determining
849         when RECORD_TYPE templates are or are not templates.
850
851 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
852
853         PR c++/775
854         * cp-tree.h (handle_class_head): Adjust prototype.
855         * decl2.c (handle_class_head): Add DEFN_P and NEW_TYPE_P
856         parameters. Use for all class heads.
857         * parse.y (named_class_head_sans_basetype, named_class_head,
858         named_complex_class_head_sans_basetype,
859         named_class_head_sans_basetype_defn,
860         unnamed_class_head): Remove.
861         (class_head, class_head_apparent_template): Recognize class heads
862         (class_head_decl, class_head_defn): New reductions. Process class
863         heads.
864         (structsp): Adjust class definition and class declaration
865         reductions.
866         (maybe_base_class_list): Give diagnostic on empty list.
867
868 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
869
870         PR c++/4379
871         * typeck.c (build_x_unary_op): Don't destroy the OFFSET_REF on a
872         single non-static member.
873         (unary_complex_lvalue): If it cannot be a pointer to member, don't
874         make it so. Check it is not pointer to reference.
875
876 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
877
878         PR c++/5132
879         * decl2.c (reparse_absdcl_as_casts): Don't digest_init if we
880         are processing a template decl.
881
882 2002-01-02  Nathan Sidwell  <nathan@codesourcery.com>
883
884         PR c++/5116, c++/764
885         * call.c (build_new_op): Make sure template class operands are
886         instantiated. Simplify arglist construction.
887
888 2001-12-29  Nathan Sidwell  <nathan@codesourcery.com>
889
890         * call.c (build_user_type_conversion_1): Use my_friendly_assert
891         rather than if ... abort.
892         * cvt.c (convert_to_reference): Likewise.
893         * semantics.c (setup_vtbl_ptr): Likewise.
894         * pt.c (lookup_template_class): Comment typo.
895
896 2001-12-29  Nathan Sidwell  <nathan@codesourcery.com>
897
898         PR c++/5125
899         * pt.c (push_template_decl_real): Make sure DECL has
900         DECL_LANG_SPECIFIC.
901
902 2001-12-29  Nathan Sidwell  <nathan@codesourcery.com>
903
904         PR c++/335
905         * init.c (resolve_offset_ref): Copy cv qualifiers of this pointer
906         for non-reference fields.
907         * typeck.c (require_complete_type): Use resolve_offset_ref).
908
909 2001-12-26  Nathan Sidwell  <nathan@codesourcery.com>
910
911         PR c++/196
912         * parse.y (bad_parm): Better diagnostic when given a SCOPE_REF.
913
914 2001-12-24  Nathan Sidwell  <nathan@codesourcery.com>
915
916         PR c++/160
917         * typeck.c (build_modify_expr): Remove old unreachable code & tidy
918         up. Don't stabilize_references when initializing a reference.
919
920 2001-12-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
921
922         * decl2.c (lang_f_options): Const-ify.
923
924 2001-12-20  Joseph S. Myers  <jsm28@cam.ac.uk>
925
926         * config-lang.in (diff_excludes): Remove.
927
928 2001-12-19  Nathan Sidwell  <nathan@codesourcery.com>
929
930         PR c++/90
931         * typeck.c (build_function_call_real): Use original function
932         expression for errors.
933
934 2001-12-18  Jason Merrill  <jason@redhat.com>
935
936         PR c++/3242
937         * class.c (add_method): Do compare 'this' quals when trying to match a
938         used function.  Don't defer to another used function.
939
940 2001-12-18  Nathan Sidwell  <nathan@codesourcery.com>
941
942         * pt.c (instantiate_clone): Remove, fold into ...
943         (instantiate_template): ... here. Simplify by removing mutual
944         recursion.
945         * typeck2.c (build_m_component_ref): Don't cv qualify the function
946         pointed to by a pointer to function.
947         * class.c (delete_duplicate_fields_1): Typo.
948
949 2001-12-18  Jason Merrill  <jason@redhat.com>
950
951         C++ ABI change: destroy value arguments in caller.
952         * semantics.c (genrtl_start_function, genrtl_finish_function): Don't
953         create an extra binding level for the parameters.
954         * decl.c (store_parm_decls): Don't do parameter cleanups.
955
956 2001-12-18  Nathan Sidwell  <nathan@codesourcery.com>
957
958         * call.c (build_new_method_call): Use '%#V'.
959         * error.c (cv_to_string): Use V parameter to determine padding.
960
961 2001-12-18  Joseph S. Myers  <jsm28@cam.ac.uk>
962
963         * call.c, decl2.c, init.c: Use "built-in" and "bit-field"
964         spellings in messages.
965
966 2001-12-17  Zack Weinberg  <zack@codesourcery.com>
967
968         * cp-tree.h: Delete #defines for cp_error, cp_warning,
969         cp_pedwarn, and cp_compiler_error.
970         * call.c, class.c, cp-tree.h, cvt.c, decl.c, decl2.c, error.c,
971         except.c, friend.c, init.c, lex.c, method.c, parse.y, pt.c,
972         rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c,
973         typeck2.c: Change calls to the above macros to use their
974         language-independent equivalents: error, warning, pedwarn, and
975         internal_error respectively.
976
977 2001-12-16  Neil Booth  <neil@daikokuya.demon.co.uk>
978
979         * decl2.c (finish_file): Remove back_end_hook.
980
981 2001-12-16  Joseph S. Myers  <jsm28@cam.ac.uk>
982
983         * ChangeLog.1, ChangeLog.2, ChangeLog, NEWS, call.c, class.c,
984         cp-tree.h, decl.c, decl2.c, except.c, operators.def, optimize.c,
985         pt.c, rtti.c, semantics.c, typeck.c: Fix spelling errors.
986
987 2001-12-15  Joseph S. Myers  <jsm28@cam.ac.uk>
988
989         * lang-options.h: Use American spelling in messages.
990
991 2001-12-13  Jason Merrill  <jason@redhat.com>
992
993         * Make-lang.in (parse.h): Separate rule, just depend on parse.c.
994
995         Use cleanups to run base and member destructors.
996         * init.c (push_base_cleanups): New function, split out from...
997         (build_delete): ...here.  Lose !TYPE_HAS_DESTRUCTOR code.
998         * decl.c (finish_destructor_body): Move vbase destruction code to
999         push_base_cleanups.
1000         (begin_function_body, finish_function_body): New fns.
1001         (finish_function): Move [cd]tor handling and call_poplevel to
1002         finish_function_body.
1003         (pushdecl): Skip the new level.
1004         * semantics.c (genrtl_try_block): Don't call end_protect_partials.
1005         (setup_vtbl_ptr): Call push_base_cleanups.
1006         * method.c (synthesize_method): Call {begin,end}_function_body.
1007         * pt.c (tsubst_expr): Handle COMPOUND_STMT_BODY_BLOCK.
1008         * cp-tree.h: Declare new fns.
1009         * parse.y (function_body, .begin_function_body): New nonterminals.
1010         (fndef, pending_inline, function_try_block): Use function_body.
1011         (ctor_initializer_opt, function_try_block): No longer has a value.
1012         (base_init): Remove .set_base_init token.
1013         (.set_base_init, compstmt_or_error): Remove.
1014         * Make-lang.in (parse.c): Expect two fewer s/r conflicts.
1015
1016         * optimize.c (maybe_clone_body): Fix parameter updating.
1017
1018 2001-12-12  Jason Merrill  <jason@redhat.com>
1019
1020         * decl.c (store_parm_decls): Remove parms_have_cleanups cruft.
1021         * semantics.c (genrtl_start_function): Don't pass
1022         parms_have_cleanups or push an extra binding level.
1023         (genrtl_finish_function): Lose cleanup_label cruft.
1024
1025         * cp-tree.h (struct cp_language_function): Remove x_ctor_label.
1026         (ctor_label): Remove.
1027         * semantics.c (finish_return_stmt): Lose ctor_label support.
1028         * decl.c (finish_constructor_body, mark_lang_function): Likewise.
1029         * typeck.c (check_return_expr): Check DECL_DESTRUCTOR_P, not
1030         dtor_label.
1031
1032         * call.c (build_new_method_call): Let resolves_to_fixed_type_p
1033         check for [cd]tors.
1034         * class.c (fixed_type_or_null, case INDIRECT_REF): Fix.
1035
1036         * decl.c (finish_function): Check VMS_TARGET, not VMS.
1037
1038         * decl.c (start_cleanup_fn): Remove redundant pushlevel.
1039         (end_cleanup_fn): And poplevel.
1040
1041         * semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER
1042         if we're in a template.
1043
1044 2001-12-12  Jakub Jelinek  <jakub@redhat.com>
1045
1046         * cp-tree.h (DESTRUCTOR_DECL_PREFIX, DESTRUCTOR_NAME_P,
1047         ANON_PARMNAME_FORMAT, ANON_PARMNAME_P, DESTRUCTOR_NAME_FORMAT,
1048         THIS_NAME_P): Delete.
1049         * spew.c (read_process_identifier): Remove DESTRUCTOR_NAME_P,
1050         THIS_NAME_P and ANON_PARMNAME_P tests from warning about clash
1051         with internal naming scheme.
1052         * error.c (dump_decl): Remove DESTRUCTOR_NAME_P use.
1053
1054 2001-12-12  Nathan Sidwell  <nathan@codesourcery.com>
1055
1056         * decl.c (grokdeclarator): Deprecated implicit typename use.
1057
1058 2001-12-11  Nathan Sidwell  <nathan@codesourcery.com>
1059
1060         PR g++/51
1061         * parse.y (frob_specs): Indicate it is a language linkage which
1062         contained the extern.
1063         * decl.c (grokdeclarator): Allow extern language linkage with
1064         other specifiers.
1065
1066 2001-12-10  Nathan Sidwell  <nathan@codesourcery.com>
1067
1068         PR g++/72
1069         * decl.c (add_binding): Don't reject duplicate typedefs involving
1070         template parameters.
1071
1072 2001-12-10  Neil Booth  <neil@daikokuya.demon.co.uk>
1073
1074         * parse.y, semantics.c: Similarly.
1075
1076 2001-12-09  Nathan Sidwell  <nathan@codesourcery.com>
1077
1078         PR g++/87
1079         * cp-tree.h (DECL_COPY_CONSTRUCTOR_P): Use copy_fn_p.
1080         (copy_args_p): Rename to ...
1081         (copy_fn_p): ... here.
1082         (grok_special_member_properties): New function.
1083         (grok_op_properties): Lose VIRTUALP parameter.
1084         (copy_assignment_arg_p): Remove.
1085         * call.c (build_over_call): Use copy_fn_p.
1086         * decl.c (grokfndecl): Reformat. Adjust call to
1087         grok_op_properties.
1088         (copy_args_p): Rename to ...
1089         (copy_fn_p): ... here. Reject template functions. Check for pass
1090         by value.
1091         (grok_special_member_properties): Remember special functions.
1092         (grok_ctor_properties): Don't remember them here, just check.
1093         (grok_op_properties): Likewise.
1094         (start_method): Call grok_special_member_properties.
1095         * decl2.c (grokfield): Likewise.
1096         (copy_assignment_arg_p): Remove.
1097         (grok_function_init): Don't remember abstract assignment here.
1098         * pt.c (instantiate_class_template): Call
1099         grok_special_member_properties.
1100         (tsubst_decl): Adjust grok_op_properties call.
1101
1102 2001-12-08  Aldy Hernandez  <aldyh@redhat.com>
1103
1104         * lex.c (rid_to_yy): Add RID_CHOOSE_EXPR and
1105         RID_TYPES_COMPATIBLE_P.
1106
1107 2001-12-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1108
1109         * semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in
1110         call to build_aggr_init.
1111         * cp-tree.h (DIRECT_BIND): Document new use of DIRECT_BIND.
1112
1113 2001-12-08  Neil Booth  <neil@daikokuya.demon.co.uk>
1114
1115         * parse.y: Replace uses of the string non-terminal with STRING.
1116         Don't perform string concatentaion here.
1117         (string): Remove non-terminal.
1118         * semantics.c (finish_asm_stmt): Don't concatenate strings here.
1119
1120 2001-12-05  Jason Merrill  <jason@redhat.com>
1121
1122         * cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define.
1123         (LANG_HOOKS_TREE_INLINING_END_INLINING): Define.
1124         * tree.c (cp_start_inlining, cp_end_inlining): New fns.
1125         * pt.c (push_tinst_level): No longer static.
1126         * cp-tree.h: Declare them.
1127
1128         * init.c (resolve_offset_ref): Don't check access for the base
1129         conversion to access a FIELD_DECL.
1130
1131         * cp-tree.h (TYPE_REFFN_P): New macro.
1132         * decl.c (bad_specifiers): Check it, too.
1133
1134         * rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY
1135         on the __*_type_info type if we haven't seen a definition.
1136
1137 2001-12-05  Neil Booth  <neil@daikokuya.demon.co.uk>
1138
1139         * decl.c: Include c-common.h.
1140         (shadow_warning): Move to c-common.c.
1141
1142 Wed Dec  5 17:00:49 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1143
1144         * decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE.
1145
1146 2001-12-04  Nathan Sidwell  <nathan@codesourcery.com>
1147
1148         * pt.c (end_template_parm_list): Clear TREE_CHAIN of each parm.
1149
1150 2001-12-04  Nathan Sidwell  <nathan@codesourcery.com>
1151
1152         PR g++/164
1153         * init.c (sort_base_init): Allow binfos to be directly specified.
1154         * method.c (do_build_copy_constructor): Explicitly convert to the
1155         base instance.
1156         (do_build_assign_ref): Likewise.
1157
1158 2001-12-03  Hans-Peter Nilsson  <hp@bitrange.com>
1159
1160         * decl.c (xref_basetypes): Don't use C99 construct in tag_code
1161         declaration and initialization.
1162
1163 2001-12-03  Neil Booth  <neil@daikokuya.demon.co.uk>
1164
1165         * typeck2.c: Remove leading capital from diagnostic messages, as
1166         per GNU coding standards.
1167
1168 2001-12-03  Mumit Khan  <khan@nanotech.wisc.edu>
1169
1170         PR c++/3394
1171         * decl.c (xref_basetypes): Handle attributes between
1172         'class' and name.
1173
1174 2001-12-03  Nathan Sidwell  <nathan@codesourcery.com>
1175
1176         PR g++/3381
1177         * parse.y (named_complex_class_head_sans_basetype): Add new
1178         reduction.
1179         * Make-lang.in (parse.c): Adjust expected conflict count.
1180
1181 2001-12-03  Jason Merrill  <jason@redhat.com>
1182
1183         * class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the
1184         immediate binfos for our virtual bases.
1185
1186 2001-12-02  Neil Booth  <neil@daikokuya.demon.co.uk>
1187
1188         * call.c (build_java_interface_fn_ref): Similarly.
1189         * except.c (is_admissible_throw_operand): Similarly.
1190         * init.c (build_java_class_ref): Similarly.
1191         * xref.c (open_xref_file): Similarly.
1192
1193 2001-12-01  Neil Booth  <neil@daikokuya.demon.co.uk>
1194
1195         * class.c (finish_struct): Remove trailing periods from messages.
1196         * decl.c (check_tag_decl): Similarly.
1197         * lex.c (cxx_set_yydebug): Similarly.
1198         * typeck2.c (friendly_abort): Similarly.
1199
1200 2001-11-29  Mark Mitchell  <mark@codesourcery.com>
1201
1202         PR c++/3048
1203         * cp-tree.h (ovl_member): Remove.
1204         * decl2.c (merge_functions): Handle extern "C" functions
1205         specially.
1206         * tree.c (ovl_member): Remove.
1207
1208 2001-11-29  Mark Mitchell  <mark@codesourcery.com>
1209
1210         PR c++/4842
1211         * class.c (get_basefndecls): Take an IDENTIFIER_NODE, not a
1212         FUNCTION_DECL, as input.
1213         (mark_overriders): Remove.
1214         (warn_hidden): Rework for the new ABI.
1215
1216 2001-11-29  Mark Mitchell  <mark@codesourcery.com>
1217
1218         PR c++/3471
1219         * call.c (convert_like_real): Do not build additional temporaries
1220         for rvalues of class type.
1221
1222 2001-11-28  Nathan Sidwell  <nathan@codesourcery.com>
1223
1224         * cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base.
1225         (ACCESSIBLY_UNIQUELY_DERIVED_FROM_P): Likewise.
1226         (PUBLICLY_UNIQUELY_DERIVED_FROM_P: Likewise.
1227         (DERIVED_FROM_P): Likewise.
1228         (enum base_access): Renumber, add ba_quiet bit mask.
1229         (get_binfo): Remove.
1230         (get_base_distance): Remove.
1231         (binfo_value): Remove.
1232         (ACCESSIBLY_DERIVED_FROM_P): Remove.
1233         * call.c (standard_conversion): Use lookup_base.
1234         * class.c (strictly_overrides): Likewise.
1235         (layout_virtual_bases): Likewise.
1236         (warn_about_ambiguous_direct_bases): Likewise.
1237         (is_base_of_enclosing_class): Likewise.
1238         (add_vcall_offset_vtbl_entries_1): Likewise.
1239         * cvt.c (build_up_reference): Adjust comment.
1240         * init.c (build_member_call): Reformat.
1241         * search.c (get_binfo): Remove.
1242         (get_base_distance_recursive): Remove.
1243         (get_base_distance): Remove.
1244         (lookup_base_r): Tweak.
1245         (lookup_base): Add ba_quiet control. Complete the types here.
1246         (covariant_return_p): Use lookup_base.
1247         * tree.c (binfo_value): Remove.
1248         (maybe_dummy_object): Use lookup_base.
1249         * typeck.c (build_static_cast): Use lookup_base.
1250         (get_delta_difference): Likewise.
1251         * typeck2.c (binfo_or_else): Use lookup_base.
1252         (build_scoped_ref): Add back error_mark_check.
1253         (build_m_component_ref): Use lookup_base.
1254
1255 2001-11-29  Joseph S. Myers  <jsm28@cam.ac.uk>
1256
1257         * Make-lang.in (c++.generated-manpages): New dummy target.
1258
1259 Tue Nov 27 09:03:47 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1260
1261         * Make-lang.in (cp-lang.o): Depends on c-common.h.
1262         * cp-lang.c (c-common.h): Include.
1263         (LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks.
1264         * decl.c (cxx_init_decl_processing): Don't set lang_safe_from_p.
1265         * expr.c (init_cplus_expand): Don't set lang_expand_constant.
1266
1267 2001-11-26  Neil Booth  <neil@daikokuya.demon.co.uk>
1268
1269         * decl2.c (c_language): Move to c-common.c.
1270         * lex.c (cxx_post_options, cxx_init_options): Use c-common.c
1271         functions.
1272         (cxx_init): Update.
1273
1274 2001-11-26  Jason Merrill  <jason@redhat.com>
1275
1276         * call.c (joust): Remove COND_EXPR hack.
1277
1278 2001-11-25  Aldy Hernandez  <aldyh@redhat.com>
1279
1280         * search.c (lookup_base_r): Declare bk in variable declaration
1281         space.
1282
1283 2001-11-25  Nathan Sidwell  <nathan@codesourcery.com>
1284
1285         PR g++/3145
1286         * class.c (build_vbase_pointer): Remove.
1287         (build_vbase_path): Remove.
1288         (build_base_path): New function.
1289         * cp-tree.h (base_access, base_kind): New enumerations.
1290         (build_base_path): Declare.
1291         (convert_pointer_to_real): Remove.
1292         (convert_pointer_to): Remove.
1293         (lookup_base): Declare.
1294         (convert_pointer_to_vbase): Remove.
1295         * call.c (build_scoped_method_call): Use lookup_base &
1296         build_base_path instead of convert_pointer_to_real,
1297         get_base_distance & get_binfo.
1298         (build_over_call): Likewise.
1299         * cvt.c (cp_convert_to_pointer): Likewise.
1300         (convert_to_pointer_force): Likewise.
1301         (build_up_reference): Likewise.
1302         (convert_pointer_to_real): Remove.
1303         (convert_pointer_to): Remove.
1304         * init.c (dfs_initialize_vtbl_ptrs): Use build_base_path
1305         instead of convert_pointer_to_vbase & build_vbase_path.
1306         (emit_base_init): Use build_base_path instead of
1307         convert_pointer_to_real.
1308         (expand_virtual_init): Lose unrequired conversions.
1309         (resolve_offset_ref): Use lookup_base and build_base_path
1310         instead of convert_pointer_to.
1311         * rtti.c (build_dynamic_cast_1): Use lookup_base &
1312         build_base_path instead of get_base_distance & build_vbase_path.
1313         * search.c (get_vbase_1): Remove.
1314         (get_vbase): Remove.
1315         (convert_pointer_to_vbase): Remove.
1316         (lookup_base_r): New function.
1317         (lookup_base): New function.
1318         * typeck.c (require_complete_type): Use lookup_base &
1319         build_base_path instead of convert_pointer_to.
1320         (build_component_ref): Likewise.
1321         (build_x_function_call): Likewise.
1322         (get_member_function_from_ptrfunc): Likewise.
1323         (build_component_addr): Likewise.
1324         * typeck2.c (build_scoped_ref): Likewise.
1325
1326 2001-11-22  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
1327
1328         * cp-tree.h (CP_TYPE_QUALS): Removed.
1329         * decl.c (cxx_init_decl_processing): Don't set lang_dump_tree.
1330         * cp-lang.c: Set LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN and
1331         LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN.
1332         * dump.c (cp_dump_tree): Use void* dump_info argument to match
1333         lang-hooks prototype.
1334         * call.c, cp-tree.h, cvt.c, decl.c, init.c, mangle.c, method.c, pt.c,
1335         rtti.c, semantics.c, tree.c, typeck.c, typeck2.c: All references to
1336         CP_TYPE_QUALS changed to cp_type_quals.
1337         * Make-lang.in: References to c-dump.h changed to tree-dump.h.
1338         (CXX_C_OBJS): Remove c-dump.o.
1339
1340 2001-11-21  Mark Mitchell  <mark@codesourcery.com>
1341
1342         PR c++/3637
1343         * pt.c (lookup_template_class): Ensure that all specializations
1344         are registered on the list corresponding to the most general
1345         template.
1346
1347 2001-11-20  Mark Mitchell  <mark@codesourcery.com>
1348
1349         * call.c (non_reference): Add documentation.
1350         (convert_class_to_reference): Do not strip reference types
1351         from conversion operators.
1352         (maybe_handle_ref_bind): Simplify.
1353         (compare_ics): Correct handling of references.
1354
1355 2001-11-19  John Wilkinson <johnw@research.att.com>
1356
1357         * dump.c (dump_op): New function.
1358         (cp_dump_tree): Dump CLASSTYPE_TEMPLATE_SPECIALIZATION.  Use
1359         dump_op.  Dump DECL_MUTABLE, access and staticness for VAR_DECLs.
1360         DECL_PURE_VIRTUAL_P, DECL_VIRTUAL_P,
1361
1362 2001-11-19  Mark Mitchell  <mark@codesourcery.com>
1363
1364         PR4629
1365         * semantics.c (finish_sizeof): Make sure that expression created
1366         while processing a template do not have a type.
1367         (finish_alignof): Likewise.
1368         * typeck.c (c_sizeof): Likewise.
1369         (expr_sizeof): Likewise.
1370
1371 2001-11-18  Neil Booth  <neil@daikokuya.demon.co.uk>
1372
1373         * lex.c (cxx_finish): Call c_common_finish.
1374         (finish_parse): Remove.
1375
1376 2001-11-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1377
1378         * decl.c (create_array_type_for_decl): Check if NAME is NULL_TREE
1379         when displaying error message about missing array bounds.
1380
1381 2001-11-17  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1382
1383         * mangle.c (write_expression): Handle CAST_EXPR, STATIC_CAST_EXPR,
1384         CONST_CAST_EXPR.
1385         * operators.def: Add CAST_EXPR, STATIC_CAST_EXPR, CONST_CAST_EXPR.
1386
1387 2001-11-16  Neil Booth  <neil@daikokuya.demon.co.uk>
1388
1389         * cp-tree.h (print_class_statistics): Restore.
1390
1391 2001-11-15  Jason Merrill  <jason@redhat.com>
1392
1393         * method.c (use_thunk): Don't emit debugging information for thunks.
1394
1395         * parse.y: Add ... IDENTIFIER SCOPE and ... PTYPENAME SCOPE expansions.
1396         * decl.c (make_typename_type): Handle getting a class template.
1397         * search.c (lookup_field_r): A class template is good enough for
1398         want_type.
1399
1400         * call.c (convert_like_real): Only use cp_convert for the bad part.
1401         (standard_conversion): Also allow bad int->enum.
1402         * typeck.c (ptr_reasonably_similar): Also allow functions to
1403         interconvert.  Pointers to same-size integers are reasonably
1404         similar.
1405
1406         * cvt.c (convert_to_void): If we build a new COND_EXPR, always
1407         give it void type.
1408
1409 2001-11-15  Nathan Sidwell  <nathan@codesourcery.com>
1410
1411         PR g++/3154
1412         * init.c (sort_base_init): Remove unreachable code.
1413         (expand_member_init): Adjust comment to reflect reality. Simplify
1414         and remove unreachable code.
1415
1416 2001-11-15  Neil Booth  <neil@daikokuya.demon.co.uk>
1417
1418         * cp-tree.h (init_reswords, cxx_init_decl_processing): New.
1419         (cxx_init): Update prototype.
1420         * decl.c (init_decl_processing): Rename.  Move null node init
1421         to its creation time.
1422         * lex.c (cxx_init_options): Update.
1423         (cxx_init): Combine with old init_parse; also call
1424         cxx_init_decl_processing.
1425
1426 2001-11-14  Richard Sandiford  <rsandifo@redhat.com>
1427
1428         * decl.c (check_initializer): Try to complete the type of an
1429         array element before checking whether it's complete.  Don't
1430         complain about arrays with complete element types but an
1431         unknown size.
1432         (cp_finish_decl): Build the hierarchical constructor before
1433         calling maybe_deduce_size_from_array_init.
1434
1435 2001-11-14  Joseph S. Myers  <jsm28@cam.ac.uk>
1436
1437         * Make-lang.in: Change all uses of $(manext) to $(man1ext).
1438
1439 2001-11-13  Nathan Sidwell  <nathan@codesourcery.com>
1440
1441         PR g++/4206
1442         * parse.y (already_scoped_stmt): Remove.
1443         (simple_stmt, WHILE & FOR): Use implicitly_scoped_stmt.
1444
1445 2001-11-12  H.J. Lu <hjl@gnu.org>
1446
1447         * cvt.c (ocp_convert): Don't warn the address of a weak
1448         function is always `true'.
1449
1450 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
1451
1452         * cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE,
1453         LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE,
1454         LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override.
1455         * cp-tree.h (print_class_statistics): Remove.
1456         (cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type,
1457         cxx_print_identifier, cxx_set_yydebug): New.
1458         * lex.c (set_yydebug): Rename c_set_yydebug.
1459         * ptree.c (print_lang_decl, print_lang_type, print_lang_identifier,
1460         lang_print_xnode): Rename.
1461         * tree.c (print_lang_statistics): Rename.
1462
1463 2001-11-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1464
1465         * class.c (dump_array): Fix format specifier warning.
1466
1467 2001-11-09  Neil Booth  <neil@daikokuya.demon.co.uk>
1468
1469         * cp-lang.c (LANG_HOOKS_NAME): Override.
1470         (struct lang_hooks): Constify.
1471         * lex.c (cxx_init_options): Update.
1472         (lang_identify): Remove.
1473         * parse.y (language_string): Remove.
1474
1475 2001-11-08  Andreas Franck  <afranck@gmx.de>
1476
1477         * Make-lang.in (CXX_INSTALL_NAME, GXX_CROSS_NAME,
1478         DEMANGLER_CROSS_NAME): Handle program_transform_name the way
1479         suggested by autoconf.
1480         (GXX_TARGET_INSTALL_NAME, CXX_TARGET_INSTALL_NAME): Define.
1481         (c++.install-common): Use the transformed target alias names.
1482
1483 2001-11-06  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
1484
1485         * Make-lang.in: Update.
1486         * cp-lang.c: Include langhooks-def.h.
1487
1488 2001-11-04  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1489
1490         * pt.c (tsubst_copy): Call tsubst for TYPEOF_EXPR.
1491
1492 2001-11-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1493
1494         * lex.c (copy_lang_type): Add static prototype.
1495
1496 2001-11-02  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1497
1498         * pt.c (unify): Handle SCOPE_REF.
1499
1500 2001-11-01  Jakub Jelinek  <jakub@redhat.com>
1501
1502         * tree.c (cp_copy_res_decl_for_inlining): Adjust
1503         DECL_ABSTRACT_ORIGIN for the return variable.
1504
1505 2001-10-31  Zack Weinberg  <zack@codesourcery.com>
1506
1507         *  Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
1508
1509 2001-10-28  Joseph S. Myers  <jsm28@cam.ac.uk>
1510
1511         * ChangeLog.1, ChangeLog.2, ChangeLog, class.c, decl2.c, search.c,
1512         semantics.c, spew.c: Fix spelling errors.
1513
1514 2001-10-27  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1515
1516         * decl2.c (validate_nonmember_using_decl): Handle NAMESPACE_DECL.
1517
1518 2001-10-25  Zack Weinberg  <zack@codesourcery.com>
1519
1520         * cp-lang.c: Redefine LANG_HOOKS_CLEAR_BINDING_STACK to
1521         pop_everything.
1522
1523 Tue Oct 23 14:00:20 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1524
1525         * cp-lang.c (cxx_get_alias_set): New function.
1526         Point LANG_HOOKS_GET_ALIAS_SET to it.
1527
1528 2001-10-23  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1529
1530         * cp-tree.def (UNBOUND_CLASS_TEMPLATE): New tree node.
1531         * cp-tree.h (make_unbound_class_template): Prototype new function.
1532         * decl.c (make_unbound_class_template): New function.
1533         * decl2.c (arg_assoc_template_arg): Handle UNBOUND_CLASS_TEMPLATE.
1534         * error.c (dump_type): Likewise.
1535         * mangle.c (write_type): Likewise.
1536         * parse.y (template_parm): Likewise.
1537         (template_argument): Use make_unbound_class_template.
1538         * pt.c (convert_template_argument): Handle UNBOUND_CLASS_TEMPLATE.
1539         (tsubst): Likewise.
1540         (tsubst_copy): Likewise.
1541         (unify): Likewise.
1542         * tree.c (walk_tree): Likewise.
1543         * typeck.c (comptypes): Likewise.
1544
1545 2001-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1546
1547         * xref.c (GNU_xref_member): Use safe-ctype macros and/or fold
1548         extra calls into fewer ones.
1549
1550 2001-10-18  Alexandre Oliva  <aoliva@redhat.com>
1551
1552         * decl.c (duplicate_decls): Propagate DECL_UNINLINABLE.
1553         Warn when merging inline with attribute noinline.
1554         (start_decl, start_function): Warn if inline and attribute
1555         noinline appear in the same declaration.
1556
1557 2001-10-16  H.J. Lu <hjl@gnu.org>
1558
1559         * cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Defined
1560         for tree checking disabled.
1561
1562 2001-10-16  Hans-Peter Nilsson  <hp@axis.com>
1563
1564         * cp-tree.h (VFIELD_NAME_FORMAT) [NO_DOLLAR_IN_LABEL &&
1565         NO_DOT_IN_LABEL]: Adjust to match VFIELD_NAME.
1566
1567 2001-10-15  Richard Sandiford  <rsandifo@redhat.com>
1568
1569         * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Define.
1570         (unify): Only handle MINUS_EXPR specially if the above flag is set
1571         and the subtracted constant is 1.  Clear the flag on recursive calls.
1572         Set it when unifying the maximum value in an INTEGER_TYPE's range.
1573
1574 2001-10-15  Richard Sandiford  <rsandifo@redhat.com>
1575
1576         * decl.c (bad_specifiers): Don't allow exception specifications
1577         on any typedefs.
1578
1579 2001-10-14  Neil Booth  <neil@daikokuya.demon.co.uk>
1580
1581         * cp/lex.c (init_cp_pragma): Similarly.
1582
1583 2001-10-13  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1584
1585         * pt.c (lookup_template_class): Build complete template arguments
1586         for BOUND_TEMPLATE_TEMPLATE_PARM.
1587
1588 2001-10-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1589
1590         * cp-tree.h (TYPE_BINFO): Update comment.
1591         (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): New macro.
1592         (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Use template_info.
1593         (TYPENAME_TYPE_FULLNAME): Use TYPE_FIELDS.
1594         (copy_type): Prototype new function.
1595         * lex.c (copy_lang_decl): Gather tree node statistics.
1596         (copy_lang_type): New function.
1597         (copy_type): Likewise.
1598         (cp_make_lang_type): Create lang_type for
1599         BOUND_TEMPLATE_TEMPLATE_PARM.  Set TYPE_BINFO for TYPENAME_TYPE
1600         and BOUND_TEMPLATE_TEMPLATE_PARM.
1601         * pt.c (tsubst): Use copy_type instead of copy_node.
1602         * search.c (lookup_field_1): Ignore TYPENAME_TYPE.
1603
1604 2001-10-12  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1605
1606         * pt.c (determine_specialization): Ignore functions without
1607         DECL_TEMPLATE_INFO.
1608
1609 2001-10-12  Nathan Sidwell  <nathan@codesourcery.com>
1610
1611         PR g++/4476
1612         * typeck2.c (abstract_virtuals_error): Ignore incomplete classes.
1613
1614 2001-10-11  Jason Merrill  <jason_merrill@redhat.com>
1615
1616         * typeck2.c (store_init_value): Don't re-digest a bracketed
1617         initializer.
1618
1619         * class.c (finish_struct_anon): Use TYPE_ANONYMOUS_P instead of
1620         ANON_AGGR_TYPE_P.
1621
1622 2001-10-11  Richard Henderson  <rth@redhat.com>
1623
1624         * class.c (build_vtable_entry_ref): Create a VTABLE_REF instead
1625         of an asm statement.
1626         (build_vtbl_ref_1): Split out from build_vtbl_ref.
1627         (build_vfn_ref): Use it to handle vtable descriptors before
1628         calling build_vtable_entry_ref.
1629         * decl2.c (output_vtable_inherit): Use assemble_vtable_inherit.
1630
1631 2001-10-10  Richard Henderson  <rth@redhat.com>
1632
1633         * parse.y (asm_operand): Allow named operands.
1634         * semantics.c (finish_asm_stmt): Tweek for changed location
1635         of the operand constrant.
1636
1637 2001-10-09  Jason Merrill  <jason_merrill@redhat.com>
1638
1639         * call.c (standard_conversion): Add bad conversion between
1640         integers and pointers.
1641         (convert_like_real): Don't use convert_for_initialization for bad
1642         conversions; complain here and use cp_convert.
1643         (build_over_call): Don't handle bad conversions specially.
1644         (perform_implicit_conversion): Allow bad conversions.
1645         (can_convert_arg_bad): New fn.
1646         * cp-tree.h: Declare it.
1647         * typeck.c (convert_for_assignment): Use it.
1648         (ptr_reasonably_similar): Any target type is similar to void.
1649
1650 2001-10-08  Alexandre Oliva  <aoliva@redhat.com>
1651
1652         * Make-lang.in (CXX_OBJS): Added cp-lang.o.
1653         (cp/cp-lang.o): New rule.
1654         * cp-tree.h: Declare hooks.
1655         * tree.c: Make hooks non-static.
1656         (init_tree): Don't initialize hooks here.
1657         * lex.c: Likewise.  Move definition of lang_hooks to...
1658         * cp-lang.c: ... new file.
1659
1660 2001-10-08  Richard Henderson  <rth@redhat.com>
1661
1662         * cp-tree.h (struct lang_decl_flags): Remove declared_inline.
1663         (DECL_DECLARED_INLINE_P): Use the bit in struct c_lang_decl.
1664
1665 2001-10-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1666
1667         * class.c (build_vtable_entry_ref): Const-ify.
1668         * decl.c (predefined_identifier,
1669         initialize_predefined_identifiers): Likewise.
1670         * init.c (build_new_1): Likewise.
1671         * lex.c (cplus_tree_code_type, cplus_tree_code_length, resword):
1672         Likewise.
1673
1674 2001-10-05  Alexandre Oliva  <aoliva@redhat.com>
1675
1676         * optimize.c (struct inline_data): Moved to ../tree-inline.c.
1677         (INSNS_PER_STMT): Likewise.
1678         (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
1679         (copy_body, initialize_inlined_parameters): Likewise.
1680         (declare_return_variable, inlinable_function_p): Likewise.
1681         (expand_call_inline, expand_calls_inline): Likewise.
1682         (optimize_inline_calls, clone_body): Likewise.
1683         * tree.c (walk_tree): Moved to ../tree-inline.c.
1684         (walk_tree_without_duplicates): Likewise.
1685         (copy_tree_r, remap_save_expr): Likewise.
1686
1687 2001-10-04  Alexandre Oliva  <aoliva@redhat.com>
1688
1689         * Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h.
1690         (cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise.
1691         * cp-tree.h (lang_decl): Moved inlined_fns to tree_decl.
1692         (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h.
1693         (flag_inline_trees): Moved declaration to ../tree-inline.h.
1694         (walk_tree): Moved declaration to ../tree-inline.h.
1695         (walk_tree_without_duplicates, copy_tree_r): Likewise.
1696         (remap_save_expr): Likewise.
1697         * decl.c: Include tree-inline.h.
1698         (lang_mark_tree): Don't mark inlined_fns.
1699         * decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c.
1700         * optimize.c: Include tree-inline.h.
1701         (optimize_inline_calls): Move declaration to ../tree.h, as
1702         non-static.
1703         (remap_decl): Use language-independent constructs and hooks.
1704         (remap_block, copy_body_r, declare_return_variable): Likewise.
1705         (inlinable_function_p): Likewise.  Don't test for
1706         DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is
1707         no longer language-specific.
1708         (optimize_inline_calls): Likewise.  Make it non-static.  Moved
1709         call of dump_function to...
1710         (optimize_function): Here...
1711         (clone_body): New function, extracted from...
1712         (maybe_clone_body): ... here.  Build decl_map locally and pass
1713         it on to clone_body.
1714         * pt.c, semantics.c: Include tree-inline.h.
1715         * tree.c: Likewise.
1716         (cp_walk_subtrees): New language-specific hook for tree inlining.
1717         (cp_cannot_inline_tree_fn, cp_add_pending_fn_decls,
1718         cp_is_overload_p, cp_auto_var_in_fn_p,
1719         cp_copy_res_decl_for_inlining): Likewise.
1720         (walk_tree): Move language-specific constructs into...
1721         (cp_walk_subtrees): this new function.
1722         (copy_tree_r): Use language-independent constructs and hooks.
1723         (init_tree): Initialize tree inlining hooks.
1724         (remap_save_expr): Adjust prototype so that the declaration
1725         does not require the definition of splay_tree.
1726
1727 2001-10-03  John David Anglin  <dave@hiauly1.hia.nrc.ca>
1728
1729         * rtti.c (get_tinfo_decl): Call typeinfo_in_lib_p with the type used
1730         to build the declaration instead of the declaration itself.
1731
1732 2001-10-02  Jason Merrill  <jason_merrill@redhat.com>
1733
1734         * decl2.c (cxx_decode_option): Add 'else'.
1735
1736         * spew.c (end_input): No longer static.
1737         * cp-tree.h: Declare it.
1738         * parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion.
1739
1740 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
1741
1742         * call.c (build_over_call), typeck.c (build_function_call_real):
1743         Pass type attributes to check_function_format rather than name or
1744         assembler name.  Don't require there to be a name or assembler
1745         name to check formats.
1746
1747 2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
1748
1749         * decl.c (init_decl_processing): Don't call
1750         init_function_format_info.  Initialize lang_attribute_table
1751         earlier.
1752         (builtin_function): Call decl_attributes.
1753         (insert_default_attributes): New.
1754
1755 2001-10-01  Jason Merrill  <jason_merrill@redhat.com>
1756
1757         * decl.c (grokdeclarator): Copy array typedef handling from C
1758         frontend.
1759
1760         * decl.c (grokdeclarator): Copy too-large array handling from C
1761         frontend.
1762
1763 2001-09-29  Alexandre Oliva  <aoliva@redhat.com>
1764
1765         * config-lang.in (target_libs): Added target-gperf, so that we
1766         don't try to build it if C++ is disabled.
1767
1768 2001-09-23  Zack Weinberg  <zack@codesourcery.com>
1769
1770         * Make-lang.in (CXX_OBJS): Take out cp/errfn.o.
1771         (cp/errfn.o): Delete rule.
1772         (cp/error.o): Depend on flags.h.
1773         * errfn.c: Delete file.
1774         * cp-tree.h: Declare warn_deprecated.  Remove definitions of
1775         TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS,
1776         and TFF_TEMPLATE_DEFAULT_ARGUMENTS. #define cp_error, cp_warning,
1777         cp_pedwarn, and cp_compiler_error to error, warning, pedwarn, and
1778         internal_error respectively.  Make cp_deprecated into a macro.
1779         Don't define cp_printer typedef or declare cp_printers.
1780         * error.c: Include flags.h.
1781         Delete: struct tree_formatting_info, print_function_argument_list,
1782         print_declaration, print_expression, print_function_declaration,
1783         print_function_parameter, print_type_id, print_cv_qualifier_seq,
1784         print_type_specifier_seq, print_simple_type_specifier,
1785         print_elaborated_type_specifier, print_rest_of_abstract_declarator,
1786         print_parameter_declaration_clause, print_exception_specification,
1787         print_nested_name_specifier, and definition of cp_printers.
1788         (locate_error): New function.
1789         (cp_error_at, cp_warning_at, cp_pedwarn_at): Moved here and
1790         rewritten in terms of locate_error and diagnostic.c.
1791         (cp_tree_printer): Rename cp_printer; wire up to *_to_string
1792         instead of deleted print_* routines.  Handle %C, %L, %O, %Q also.
1793         (init_error): Adjust to match.
1794
1795 Sat Sep 22 09:15:31 2001  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1796
1797         * Make-lang.in (CXX_C_OBJS): Add attribs.o.
1798
1799 2001-09-21  Richard Henderson  <rth@redhat.com>
1800
1801         * class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS.
1802         (build_vtbl_initializer): Likewise.
1803         (build_vfn_ref): New.
1804         * cp-tree.h: Declare it.
1805         * call.c (build_over_call): Use it.
1806         * decl2.c (mark_vtable_entries): Mark FDESC_EXPR.
1807         * typeck.c (get_member_function_from_ptrfunc): Mind descriptors.
1808
1809 Fri Sep 21 08:16:19 2001  J"orn Rennecke <amylaar@redhat.com>
1810
1811         * decl.c (grokdeclarator): Use C syntax for attr_flags declaration.
1812
1813 2001-09-21  Joseph S. Myers  <jsm28@cam.ac.uk>
1814
1815         Table-driven attributes.
1816         * decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
1817         * decl2.c (cplus_decl_attributes): Only take one attributes
1818         parameter.
1819         * cp-tree.c (cplus_decl_attributes): Update prototype.
1820         * class.c (finish_struct), decl.c (start_decl, start_function),
1821         decl2.c (grokfield), friend.c (do_friend), parse.y
1822         (parse_bitfield): Update calls to cplus_decl_attributes.
1823         * decl.c (grokdeclarator): Take a pointer to a single ordinary
1824         attribute list.
1825         * decl.h (grokdeclarator): Update prototype.
1826         * decl2.c (grokfield): Take a single ordinary attribute list.
1827         * friend.c (do_friend): Likewise.
1828         * decl.c (shadow_tag, groktypename, start_decl,
1829         start_handler_parms, grokdeclarator, grokparms, start_function,
1830         start_method), decl2.c (grokfield, grokbitfield, grokoptypename),
1831         parse.y (parse_field, parse_bitfield, component_decl_1), pt.c
1832         (process_template_parm, do_decl_instantiation): Pass single
1833         ordinary attribute lists around.
1834         * decl.c (grokdeclarator): Correct handling of nested attributes.
1835         Revert the patch
1836         1998-10-18  Jason Merrill  <jason@yorick.cygnus.com>
1837                 * decl.c (grokdeclarator): Embedded attrs bind to the right,
1838                 not the left.
1839         .
1840         * cp-tree.h (cp_valid_lang_attribute): Remove declaration
1841         (cp_attribute_table): Declare.
1842         * decl.c (valid_lang_attribute): Don't define.
1843         (lang_attribute_table): Define.
1844         (init_decl_processing): Initialize lang_attribute_table instead of
1845         valid_lang_attribute.
1846         * tree.c (cp_valid_lang_attribute): Remove.
1847         (handle_java_interface_attribute, handle_com_interface_attribute,
1848         handle_init_priority_attribute): New functions.
1849         (cp_attribute_table): New array.
1850         * decl2.c (import_export_class): Don't use
1851         targetm.valid_type_attribute.
1852
1853 2001-09-15  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
1854
1855         * Make-lang.in (cp/error.o): Depend on real.h
1856         * error.c: #include "real.h"
1857
1858 2001-09-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1859
1860         * mangle.c (mangle_conv_op_name_for_type): Use concat in lieu of
1861         xmalloc/strcpy/strcat.
1862
1863 2001-09-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1864
1865         * decl.c (warn_extern_redeclared_static, cp_make_fname_decl):
1866         Const-ification.
1867         * pt.c (tsubst_decl): Likewise.
1868
1869 2001-09-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1870
1871         * decl2.c (lang_f_options): Const-ification.
1872         * lex.c (cplus_tree_code_name): Likewise.
1873         * spew.c (yyerror): Likewise.
1874
1875 2001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
1876
1877         PR c++/3986
1878         * class.c (force_canonical_binfo_r): Check & move an indirect
1879         primary base first.
1880         (force_canonical_binfo): Check that it's not already
1881         canonical.
1882         (mark_primary_virtual_base): Remove BINFO parameter.
1883         (mark_primary_bases): Adjust, set BINFO_LOST_PRIMARY_P here.
1884
1885 2001-09-06  Nathan Sidwell  <nathan@codesourcery.com>
1886
1887         Remove TYPE_NONCOPIED_PARTS.
1888         * cp-tree.h (CLASSTYPE_INLINE_FRIENDS): Map onto
1889         CLASSTYPE_PURE_VIRTUALS.
1890         (TYPE_RAISES_EXCEPTIONS): Map onto TYPE_BINFO.
1891         * class.c (duplicate_tag_error): Remove TYPE_NONCOPIED_PARTS.
1892         (layout_class_type): Don't call fixup_inline_methods here ...
1893         (finish_struct_1): ... call it here.
1894
1895 2001-09-04  Mark Mitchell  <mark@codesourcery.com>
1896
1897         * decl.c (duplicate_decls): Remove code deadling with
1898         DECL_SAVED_INSNS.
1899         * decl2.c (finish_file): Likewise.
1900         * pt.c (instantiate_decl): Likewise.
1901         * semantics.c (expand_body): Don't defer local functions if
1902         they wouldn't be deferred for some other reason.  Don't
1903         generate RTL for functions that will not be emitted.
1904         (genrtl_start_function): Remove code deadling with
1905         DECL_SAVED_INSNS.
1906         (genrtl_finish_function): Likewise.
1907
1908 2001-09-04  Nathan Sidwell  <nathan@codesourcery.com>
1909
1910         PR c++/4203
1911         * call.c (build_over_call): Do not optimize any empty base
1912         construction.
1913
1914 2001-08-31  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1915
1916         * error.c (dump_template_decl): Output template parameters
1917         together with their specifiers.
1918         Output `class' prefix for template template parameter.
1919         (dump_decl): Fix formatting.
1920
1921 2001-08-30  Kurt Garloff  <garloff@suse.de>
1922
1923         * optimize.c (inlinable_function_p): Allow only smaller single
1924         functions. Halve inline limit after reaching recursive limit.
1925
1926 2001-08-30  Joern Rennecke <amylaar@redhat.com>
1927             Jason Merrill  <jason_merrill@redhat.com>
1928
1929         * class.c (build_vtable_entry_ref): Subtract in char*, not
1930         ptrdiff_t.
1931
1932 2001-08-23  Jason Merrill  <jason_merrill@redhat.com>
1933
1934         * tree.c (cp_build_qualified_type_real): Use get_qualified_type.
1935         (build_cplus_array_type): Use cp_build_qualified_type, not
1936         TYPE_MAIN_VARIANT, to get an unqualified version.
1937
1938         * decl2.c (grok_alignof): Lose.
1939         (build_expr_from_tree): Use expr_sizeof and c_alignof_expr.
1940         * typeck.c (c_alignof): Lose.
1941         * semantics.c (finish_sizeof, finish_alignof): New.
1942         * parse.y: Use them.
1943         * cp-tree.h: Declare them.
1944
1945 2001-08-22  Jason Merrill  <jason_merrill@redhat.com>
1946
1947         * pt.c (tsubst_expr): Hand off to the TREE_CHAIN of a statement.
1948         Don't loop in COMPOUND_STMT, FOR_STMT or TRY_BLOCK.
1949         * tree.c (cp_statement_code_p): A TAG_DEFN is a statement.
1950
1951 2001-08-19  Jakub Jelinek  <jakub@redhat.com>
1952
1953         * typeck2.c (add_exception_specifier): Only require complete type if
1954         not in processing template declaration.
1955
1956 2001-08-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1957
1958         * decl.c: Cast argument to size_t, not HOST_WIDE_INT, in calls to
1959         GNU_xref_start_scope and GNU_xref_end_scope.
1960
1961         * tree.c (TYPE_HASH): Moved to ../tree.h.
1962
1963 2001-08-16  Mark Mitchell  <mark@codesourcery.com>
1964
1965         * cvt.c (convert_to_void): Preserve TREE_SIDE_EFFECTS
1966         on COMPOUND_EXPRs.
1967
1968 2001-08-14  Richard Henderson  <rth@redhat.com>
1969
1970         * class.c, cp-tree.h (build_vfn_ref): Remove.
1971         * call.c, rtti.c: Replace all refernces with build_vtbl_ref.
1972
1973 2001-08-13  Mark Mitchell  <mark@codesourcery.com>
1974
1975         * call.c (build_over_call): Mark COMPOUND_EXPRs generated for
1976         empty class assignment as having side-effects to avoid
1977         spurious warnings.
1978
1979 2001-08-13  Zack Weinberg  <zackw@panix.com>
1980
1981         * Make-lang.in (cp/except.o): Add libfuncs.h to dependencies.
1982         * except.c: Include libfuncs.h.
1983
1984 2001-08-11  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
1985
1986         * decl.c (grokdeclarator): Clarify diagnostic message.
1987
1988 2001-08-13  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1989
1990         * decl2.c (do_nonmember_using_decl): Replace using directive
1991         with using declaration in the error message.
1992
1993 2001-08-11  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1994
1995         * pt.c (maybe_fold_nontype_arg): Use TREE_TYPE of ARG as the
1996         criterion to avoid rebuilding expression tree instead of
1997         processing_template_decl.
1998
1999 2001-08-07  Jason Merrill  <jason_merrill@redhat.com>
2000
2001         Support named return value optimization for inlines, too.
2002         * decl.c (finish_function): Nullify returns here.
2003         * semantics.c (genrtl_start_function): Not here.
2004         (cp_expand_stmt): Don't mess with CLEANUP_STMTs.
2005         (nullify_returns_r): No longer static.  Just clear RETURN_EXPR.
2006         Also nullify the CLEANUP_STMT for the nrv.
2007         * cp-tree.h: Declare it.
2008         * optimize.c (declare_return_variable): Replace the nrv with the
2009         return variable.
2010         * typeck.c (check_return_expr): Be more flexible on alignment check.
2011         Ignore cv-quals when checking for a matching type.
2012
2013 2001-08-09  Richard Henderson  <rth@redhat.com>
2014
2015         * decl2.c (finish_objects): Use target hooks instead of
2016         assemble_constructor and assemble_destructor.
2017
2018 2001-08-08  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2019
2020         * g++spec.c (lang_specific_driver): Quote argument after `-Xlinker'.
2021
2022 2001-08-07  Nathan Sidwell  <nathan@codesourcery.com>
2023
2024         PR c++/3820
2025         Stop using TYPE_NONCOPIED_PARTS.
2026         * call.c (build_over_call): Be careful when copy constructing
2027         or assigning to an empty class.
2028         * class.c (check_bases_and_members): It has a
2029         COMPLEX_ASSIGN_REF if it has a vptr.
2030         (layout_class_type): Don't add empty class padding to
2031         TYPE_NONCOPIED_PARTS.
2032         (finish_struct_1): Don't add the VFIELD either.
2033         * cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): Mention _copy_
2034         initialization.
2035
2036 2001-08-07  Jason Merrill  <jason_merrill@redhat.com>
2037
2038         * tree.c (walk_tree): Walk siblings even if !walk_subtrees.
2039
2040 2001-08-06  Richard Henderson  <rth@redhat.com>
2041
2042         * decl2.c (finish_objects): Pass a symbol_ref and priority to
2043         assemble_{constructor,destructor}.  Remove priority handling.
2044
2045 2001-08-05  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
2046
2047         Don't allow template-id in using-declaration.
2048         * decl2.c (validate_nonmember_using_decl): Handle template-ids.
2049         (do_class_using_decl): Likewise.
2050
2051 2001-08-04  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
2052
2053         * cp/spew.c (read_token): No need to pop buffers.
2054
2055 2001-08-02  Stan Shebs  <shebs@apple.com>
2056
2057         * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY): Remove, no longer used.
2058         (fnaddr_from_vtable_entry): Remove decl.
2059         * method.c (use_thunk): Update comment.
2060
2061 2001-08-01  Andrew Cagney  <ac131313@redhat.com>
2062
2063         * repo.c (get_base_filename): Change return value to const char
2064         pointer.
2065
2066 2001-08-02  Nathan Sidwell  <nathan@codesourcery.com>
2067
2068         Kill -fhonor-std.
2069         * NEWS: Document.
2070         * cp-tree.h (flag_honor_std): Remove.
2071         (CPTI_FAKE_STD): Remove.
2072         (std_node): Remove comment about it being NULL.
2073         (fake_std_node): Remove.
2074         * decl.c (in_fake_std): Remove.
2075         (walk_namespaces_r): Remove fake_std_node check.
2076         (push_namespace): Remove in_fake_std code.
2077         (pop_namespace): Likewise.
2078         (lookup_name_real): Remove fake_std_node check.
2079         (init_decl_processing): Always create std_node. Always add
2080         std:: things there.
2081         (builtin_function): Always put non '_' fns in std.
2082         * decl2.c (flag_honor_std): Remove.
2083         (lang_f_options): Remove honor-std.
2084         (unsupported_options): Add honor-std.
2085         (set_decl_namespace): Remove fake_std_node check.
2086         (validate_nonmember_using_decl): Likewise.
2087         (do_using_directive): Likewise.
2088         (handle_class_head): Likewise.
2089         * dump.c (cp_dump_tree): Likewise.
2090         * except.c (init_exception_processing): Adjust.
2091         * init.c (build_member_call): Remove fake_std_node check.
2092         (build_offset_ref): Likewise.
2093         * lang-options.h: Remove -fhonor-std, -fno-honor-std.
2094         * rtti.c (init_rtti_processing): Adjust.
2095
2096 2001-07-31  Alexandre Petit-Bianco  <apbianco@redhat.com>
2097
2098         * tree.c (cp_tree_equal): WITH_CLEANUP_EXPR node to use its second
2099         operand while calling cp_tree_equal.
2100
2101 2001-07-31  Nathan Sidwell  <nathan@codesourcery.com>
2102
2103         The 3.0 ABI no longer has vbase pointer fields.
2104         * cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P,
2105         FORMAT_VBASE_NAME): Remove.
2106         * method.c (do_build_copy_constructor): Adjust.
2107         (do_build_assign_ref): Adjust.
2108         * search.c (lookup_field_r): Adjust.
2109         * typeck.c (build_component_ref): Adjust.
2110
2111         The 3.0 ABI always has a vtable pointer at the start of every
2112         polymorphic class.
2113         * rtti.c (build_headof_sub): Remove.
2114         (build_headof): Adjust.
2115         (get_tinfo_decl_dynamic): No need to check flag_rtti
2116         here. Adjust.
2117         (create_real_tinfo_var): Explain why we need a hidden name.
2118
2119 2001-07-31  Nathan Sidwell  <nathan@codesourcery.com>
2120
2121         PR c++/3631
2122         * class.c (update_vtable_entry_for_fn): The fixed adjustment
2123         of a virtual thunk should be from declaring base.
2124
2125 2001-07-31  Nathan Sidwell  <nathan@codesourcery.com>
2126
2127         * class.c (dfs_ctor_vtable_bases_queue_p): Always walk into
2128         the shared virtual base, so preserving inheritance graph order.
2129
2130 2001-07-30  Andreas Jaeger  <aj@suse.de>
2131
2132         * decl2.c: Remove unused var global_temp_name_counter.
2133
2134 2001-07-28  Richard Henderson  <rth@redhat.com>
2135
2136         * method.c (pending_inlines): Remove.
2137
2138 2001-07-27  Nathan Sidwell  <nathan@codesourcery.com>
2139
2140         * class.c (mark_primary_virtual_base): Don't adjust base
2141         offsets here.
2142         (dfs_unshared_virtual_bases): Adjust them here.
2143         (mark_primary_bases): Explain why we adjust at the end.
2144
2145 2001-07-27  Nathan Sidwell  <nathan@codesourcery.com>
2146
2147         * class.c (finish_struct_1): When copying the primary base's
2148         VFIELD, make sure we find it is at offset zero.
2149
2150 2001-07-26  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2151
2152         * pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and
2153         tsubst_expr for default template arguments.
2154
2155 2001-07-26  Nathan Sidwell  <nathan@codesourcery.com>
2156
2157         PR c++/3621
2158         * spew.c (yylex): Only copy the token's lineno, if it is
2159         non-zero.
2160
2161 2001-07-26  Nathan Sidwell  <nathan@codesourcery.com>
2162
2163         PR c++/3624
2164         * call.c (resolve_args): Simplify, call
2165         convert_from_reference.
2166         (build_new_op): Resolve and convert from reference ARG1
2167         earlier. Adjust ARG2 & ARG3 resolve and conversion.
2168
2169 2001-07-26  Nathan Sidwell  <nathan@codesourcery.com>
2170
2171         * decl.c (last_function_parm_tags): Remove.
2172         (current_function_parm_tags): Remove.
2173         (init_decl_processing): Adjust.
2174         (start_function): Adjust.
2175         (store_parm_decls): Adjust.
2176
2177         PR c++/3152
2178         * decl.c (grokdeclarator): Detect when a function typedef is
2179         declaring a function, and create last_function_parms correctly.
2180
2181 2001-07-25  Jason Merrill  <jason_merrill@redhat.com>
2182
2183         * call.c (joust): Only prefer a non-builtin candidate to a builtin
2184         one if they have the same signature.
2185
2186         * cvt.c (build_up_reference): Take DECL parm.  Check TREE_STATIC on
2187         it rather than toplevel_bindings_p.  Give it a mangled name if static.
2188         (convert_to_reference): Adjust.
2189         * decl2.c (get_temp_name): Lose.
2190         * mangle.c (mangle_ref_init_variable): New fn.
2191         (mangle_guard_variable): Strip the ref-init header.
2192         * cp-tree.h: Adjust.
2193         * decl.c (cp_finish_decl): Add the DECL_STMT after processing the
2194         initializer.
2195         (grok_reference_init): Always use DECL_INITIAL.
2196
2197 2001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
2198
2199         PR c++/3416
2200         * call.c (build_conditional_expr): Recheck args after
2201         conversions.
2202         * cp-tree.h (build_conditional_expr): Move to correct file.
2203         * typeck.c (decay_conversion): Diagnose any unknown types
2204         reaching here.
2205         (build_binary_op): Don't do initial decay or default
2206         conversions on overloaded functions.
2207         (build_static_cast): Don't do a decay conversion here.
2208
2209 2001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
2210
2211         PR c++/3543
2212         * typeck.c (condition_conversion): Resolve an OFFSET_REF.
2213         * expr.c (cplus_expand_expr): An OFFSET_REF should never get here.
2214
2215 2001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
2216
2217         * class.c (build_vtbl_or_vbase_field): Remove, move into ...
2218         (create_vtbl_ptr): ... here.
2219
2220 2001-07-25  Nathan Sidwell  <nathan@codesourcery.com>
2221
2222         * class.c (build_vbase_offset_vbtl_entries): Look for
2223         non-primary base of which we are a sub vtable.
2224
2225 2001-07-24  Phil Edwards  <pme@sources.redhat.com>
2226
2227         * semantics.c (finish_this_expr):  Remove unused code.
2228
2229 2001-07-24  Nathan Sidwell  <nathan@codesourcery.com>
2230
2231         Simplify rtti, now we've only one ABI.
2232         * cp-tree.h (cp_tree_index): Remove CPTI_TINFO_DECL_ID,
2233         CPTI_TINFO_VAR_ID.
2234         (tinfo_decl_id, tinfo_var_id): Remove.
2235         (get_typeid_1): Remove.
2236         * rtti.c
2237         (init_rtti_processing): Remove tinfo_decl_id & tinfo_var_id.
2238         (typeid_ok_p): New function.
2239         (build_type_id): Call typeid_ok_p. Don't call tinfo_from_decl.
2240         (get_tinfo_decl): Remove old abi documentation.
2241         (tinfo_from_decl): Remove.
2242         (get_type_id): Call typeid_ok_p. Absorb get_typeid_1.
2243         (get_typeid_1): Remove.
2244         (get_base_offset): Remove.
2245         (synthesize_tinfo_var): Absorb get_base_offset.
2246         (create_real_tinfo_var): Don't use tinfo_decl_id.
2247
2248 2001-07-23  Graham Stott  <grahams@redhat.com>
2249
2250         * cp/class.c (type_requires_array_cookie): Fix use of uninitialised
2251         variable has_two_argument_delete_p.
2252
2253 2001-07-21  Nathan Sidwell  <nathan@codesourcery.com>
2254
2255         Remove flag_vtable_thunk. It is always on for the 3.0 ABI.
2256         * cp-tree.h (CPTI_DELTA2_IDENTIFIER): Remove.
2257         (CPTI_INDEX_IDENTIFIER): Remove.
2258         (CPT_PFN_OR_DELTA2_IDENTIFIER): Remove.
2259         (delta2_identifier): Remove.
2260         (index_identifier): Remove.
2261         (pfn_or_delta2_identifier): Remove.
2262         (flag_vtable_thunks): Remove.
2263         (VTABLE_DELTA2_NAME): Remove.
2264         (VTABLE_INDEX_NAME): Remove.
2265         (FNADDR_FROM_VTABLE_ENTRY): Adjust.
2266         (vfunc_ptr_type_node): Adjust.
2267         (VTABLE_NAME_PREFIX): Adjust.
2268         (build_vfn_ref): Lose first parameter.
2269         (fixup_all_virtual_upcast_offsets): Remove.
2270         * decl.c (initialize_predefined_identifiers): Remove
2271         delta2_identifier, index_identifier, pfn_or_delta2_identifier.
2272         (init_decl_processing): Remove no-vtable-thunk code.
2273         * decl2.c (flag_vtable_thunks): Remove.
2274         (mark_vtable_entries): Remove no-vtable-thunk code.
2275         * error.c (dump_decl): Remove no-vtable-thunk code.
2276         (dump_expr): Adjust ptr to member function code.
2277         * init.c (initialize_vtable_ptrs): Remove no-vtable-thunk
2278         code.
2279         * rtti.c (build_headof): Remove no-vtable-thunk code.
2280         (get_tinfo_decl_dynamic): Adjust build_vfn_ref call.
2281         * search.c (get_base_distance): Remove expand_upcast_fixups case.
2282         (virtual_context) Remove.
2283         (expand_upcast_fixups): Remove.
2284         (fixup_virtual_upcast_offsets): Remove.
2285         (fixup_all_virtual_upcast_offsets): Remove.
2286         * typeck.c (get_member_function_from_ptrfunc): Remove
2287         no-vtable-thunk code.
2288         * call.c (build_over_call): Adjust call to build_vfn_ref.
2289         * class.c (build_vfn_ref): Lose first parameter. Remove
2290         no-vtable-thunk code.
2291         (build_rtti_vtbl_entries): Remove no-vtable-thunk code.
2292         (build_vtable_entry): Remove no-vtable-thunk code.
2293
2294 2001-07-20  Nathan Sidwell  <nathan@codesourcery.com>
2295
2296         Remove old-abi remnants. Remove comments about old abi
2297         behaviour. Remove references to 'new-abi' in comments.
2298         * cp-tree.h: Adjust comments.
2299         (vbase_offsets_in_vtable_p): Delete.
2300         (vcall_offsets_in_vtable_p): Delete.
2301         (vptrs_present_everywhere_p): Delete.
2302         (all_overridden_vfuns_in_vtables_p): Delete.
2303         (merge_primary_and_secondary_vtables_p): Delete.
2304         (TYPE_CONTAINS_VPTR_P): Adjust.
2305         (VTT_NAME_PREFIX): Remove.
2306         (CTOR_VTBL_NAME_PREFIX): Remove.
2307         (init_vbase_pointers): Remove.
2308         * class.c: Adjust coments.
2309         (build_vbase_pointer_fields): Delete.
2310         (build_vbase_pointer): Remove old-abi code.
2311         (build_secondary_vtable): Likewise.
2312         (modify_all_vtables): Likewise.
2313         (create_vtable_ptr): Likewise.
2314         (layout_class_type): Likewise.
2315         (finish_struct_1): Likewise.
2316         (finish_vtbls): Likewise.
2317         (dfs_finish_vtbls): Delete.
2318         (build_vbase_offset_vtbl_entries): Remove old-abi code.
2319         * cvt.c: Adjust comments.
2320         * decl.c: Adjust comments.
2321         * decl2.c: Adjust comments.
2322         * init.c: Adjust comments.
2323         (construct_virtual_bases): Remove old-abi code.
2324         * lang-specs.h: Remove -fno-new-abi.
2325         * mangle.c: Adjust comments.
2326         * rtti.c: Adjust comments.
2327         (get_base_offset): Remove old-abi-code.
2328         * search.c: Adjust comments.
2329         (dfs_init_vbase_pointers): Remove.
2330         (dfs_vtable_path_unmark): Remove.
2331         (init_vbase_pointers): Remove.
2332         * semantics.c: Adjust comments.
2333         (emit_associated_thunks): Remove old-abi code.
2334         * typeck.c: Adjust comments.
2335
2336 2001-07-20  Daniel Berlin  <dan@cgsoftware.com>
2337
2338         * Make-lang.in (cp/optimize.o): Depend on $(PARAMS_H), not
2339         params.h.
2340
2341 2001-07-19  Mark Mitchell  <mark@codesourcery.com>
2342
2343         * class.c (finish_struct_anon): Forbid nested classes.
2344
2345 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
2346
2347         * decl2.c: Don't include dwarfout.h and dwarf2out.h.
2348         * optimize.c: Include debug.h.
2349         (maybe_clone_body): Use debug hook.
2350         * semantics.c: Include debug.h.
2351         (expand_body): Use debug hook.
2352
2353 2001-07-19  Neil Booth  <neil@daikokuya.demon.co.uk>
2354
2355         * spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
2356
2357 2001-07-18  Mark Mitchell  <mark@codesourcery.com>
2358
2359         * class.c (type_requires_array_cookie): New function.
2360         (check_methods): Don't try to figure out whether the type needs a
2361         cookie here.
2362         (check_bases_and_members): Set TYPE_VEC_NEW_USES_COOKIE here.
2363         * cp-tree.h (TYPE_VEC_DELETE_TAKES_SIZE): Remove.
2364         (TYPE_VEC_NEW_USES_COOKIE): Reimplement.
2365         * pt.c (instantiate_class_template): Don't set
2366         TYPE_VEC_DELETE_TAKES_SIZE.
2367         * NEWS: Document ABI changes from GCC 3.0.
2368
2369 2001-07-18  Xavier Delacour <xavier@fmaudio.net>,
2370             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2371
2372         * NEWS (Changes in GCC 3.0): Fix typo.
2373
2374 2001-07-13  Joseph S. Myers  <jsm28@cam.ac.uk>
2375
2376         * decl2.c (cplus_decl_attributes): Take a pointer to the node to
2377         which attributes are to be attached, and a flags argument.  Update
2378         call to decl_attributes.
2379         (grokfield): Update call to decl_attributes.
2380         * class.c (finish_struct): Update call to cplus_decl_attributes.
2381         * cp-tree.h (cplus_decl_attributes): Update prototype.
2382         * decl.c (start_decl, grokdeclarator, start_function): Update
2383         calls to decl_attributes and cplus_decl_attributes.
2384         * friend.c (do_friend): Update call to cplus_decl_attributes.
2385         * parse.y (parse_bitfield): Update call to cplus_decl_attributes.
2386
2387 2001-07-12  Mark Mitchell  <mark@codesourcery.com>
2388
2389         * decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER
2390         for `register' variables with an asm-specification.
2391
2392 2001-07-11  Mark Mitchell  <mark@codesourcery.com>
2393
2394         * semantics.c (finish_asm_stmt): Mark the output operands
2395         to an asm addressable, if necessary.
2396
2397 2001-07-11  Ben Elliston  <bje@redhat.com>
2398
2399         * Revert this change -- there is a subtle bug.
2400
2401         PR c++/80
2402         * decl.c (finish_enum): New "attributes" argument; pass it to
2403         cplus_decl_attributes.  Use a narrower type if the enum is packed.
2404         * cp-tree.h (finish_enum): Adjust prototype.
2405         * parse.y (enum_head): New non-terminal.
2406         (structsp): Use it. Enums now may be preceded or followed by
2407         optional attributes -- pass their chained tree to finish_enum().
2408         * pt.c (tsubst_enum): Pass NULL_TREE for the new argument.
2409
2410 2001-07-10  Mark Mitchell  <mark@codesourcery.com>
2411
2412         * pt.c (tsubst_decl): Set DECL_CONTEXT for namespace-scope
2413         variables.
2414
2415 2001-07-10  Jason Merrill  <jason_merrill@redhat.com>
2416
2417         * semantics.c (cp_expand_stmt): Fix for null
2418         current_function_return_value.
2419
2420 2001-07-10  Jan van Male  <jan.vanmale@fenk.wau.nl>
2421
2422         * call.c (build_op_delete_call): Initialize fn.
2423         (convert_like_real): Delete conditional.
2424         (joust): Initialize *w and *l.
2425         * class.c: Add prototype for binfo_ctor_vtable.
2426         (get_primary_binfo): Initialize result.
2427         * init.c (build_java_class_ref): Initialize name.
2428
2429 2001-07-09  Erik Rozendaal  <dlr@acm.org>
2430
2431         * typeck.c (unary_complex_lvalue): Do not duplicate the
2432         argument to modify, pre-, or post-increment when used as an
2433         lvalue and when the argument has side-effects.
2434
2435 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
2436
2437         * decl.c (start_decl): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
2438         (start_function): Don't call SET_DEFAULT_DECL_ATTRIBUTES.  Call
2439         cplus_decl_attributes even if attrs is NULL.
2440         * friend.c (do_friend): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
2441
2442 2001-07-08  Joseph S. Myers  <jsm28@cam.ac.uk>
2443
2444         * decl.c (grokdeclarator), decl2.c (cplus_decl_attributes): Update
2445         calls to decl_attributes.
2446
2447 2001-07-06  Ira Ruben   <ira@apple.com>
2448
2449         * cp-tree.def (TEMPLATE_DECL): Update comment. DECL_RESULT should
2450         be DECL_TEMPLATE_RESULT.
2451
2452 2001-07-05  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2453
2454         * cp-tree.h (copy_template_template_parm): Rename to ...
2455         (bind_template_template_parm): ... here.
2456         * tree.c (copy_template_template_parm): Rename to ...
2457         (bind_template_template_parm): ... here.  Remove the case when
2458         NEWARGS is NULL_TREE.
2459         (copy_tree_r): Don't copy TEMPLATE_TEMPLATE_PARM and
2460         BOUND_TEMPLATE_TEMPLATE_PARM.
2461         * pt.c (lookup_template_class): Adjust.
2462
2463 2001-07-05  Jason Merrill  <jason_merrill@redhat.com>
2464
2465         * cvt.c (convert_lvalue): New fn.
2466         * cp-tree.h: Declare it.
2467         * method.c (do_build_assign_ref): Use it.
2468         (do_build_copy_constructor): Convert parm to base types
2469         before calling base constructors.
2470
2471         * typeck.c (check_return_expr): Check DECL_ALIGN instead of
2472         DECL_USER_ALIGN.  Check flag_elide_constructors instead of
2473         optimize.
2474         * semantics.c (cp_expand_stmt): Don't destroy the named return value.
2475
2476 2001-07-02  Nathan Sidwell  <nathan@codesourcery.com>
2477
2478         * optimize.c (optimize_inline_calls): New function, broken out
2479         of ...
2480         (optimize_function): ... here. Call it. Don't inline if it is
2481         a thunk.
2482         (dump_function): Print name of dump flag causing this dump.
2483         * semantics.c (expand_body): Move thunk inline check to
2484         optimize_function.
2485
2486 2001-06-29  Joseph S. Myers  <jsm28@cam.ac.uk>
2487
2488         * typeck.c (COMP_TYPE_ATTRIBUTES): Don't define.
2489         (comptypes): Use target.comp_type_attributes.
2490
2491 2001-06-29  Nathan Sidwell  <nathan@codesourcery.com>
2492
2493         * cp-tree.h (flag_dump_class_layout): Remove unneeded declaration.
2494
2495 2001-06-28  Gabriel Dos Reis  <gdr@merlin.codesourcery.com>
2496
2497         * error.c (lang_print_error_function): Add a `diagnostic_context *'
2498         parameter. Tweak.
2499
2500 2001-06-27  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
2501
2502         * decl2.c (import_export_class): Update.
2503
2504 2001-06-26  Gabriel Dos Reis  <gdr@codesourcery.com>
2505
2506         * error.c (init_error): Adjust settings.
2507
2508 2001-06-26  Gabriel Dos Reis  <gdr@codesourcery.com>
2509
2510         * error.c (init_error): Adjust settings.
2511
2512 2001-06-19  Richard Sandiford  <rsandifo@redhat.com>
2513
2514         * except.c (initialize_handler_parm): Expect __cxa_begin_catch to
2515         return pointers to data members by reference rather than by value.
2516
2517 2001-06-18  Jason Merrill  <jason_merrill@redhat.com>
2518
2519         Implement the Named Return Value optimization.
2520         * cp-tree.h (struct cp_language_function): Add x_return_value.
2521         (current_function_return_value): Now a macro.
2522         * decl.c: Don't define it.
2523         (define_label, finish_case_label): Don't clear it.
2524         (init_decl_processing): Don't register it with GC.
2525         * semantics.c (genrtl_finish_function): Don't check it for
2526         no_return_label.  Copy the RTL from the return value to
2527         current_function_return_value and walk, calling...
2528         (nullify_returns_r): ...this new fn.
2529         * typeck.c (check_return_expr): Set current_function_return_value.
2530
2531 2001-06-15  Jason Merrill  <jason_merrill@redhat.com>
2532
2533         * class.c (dfs_accumulate_vtbl_inits): Just point to the base we're
2534         sharing a ctor vtable with.  Merge code for cases 1 and 2.
2535         (binfo_ctor_vtable): New fn.
2536         (build_vtt_inits, dfs_build_secondary_vptr_vtt_inits): Use it.
2537
2538 2001-06-14  Jason Merrill  <jason_merrill@redhat.com>
2539
2540         * class.c (dfs_find_final_overrider): Fix logic.
2541
2542         * class.c (update_vtable_entry_for_fn): Uncomment optimization to use
2543         virtual thunk instead of non-virtual.
2544         (get_matching_virtual): Uncomment.
2545
2546         * pt.c (unify): Don't recurse between the POINTER_TYPE and the
2547         OFFSET_TYPE.  If we're adding cv-quals, the extra ones would be on
2548         PARM, not ARG.
2549
2550 2001-06-14  Nathan Sidwell  <nathan@codesourcery.com>
2551
2552         * class.c (dfs_accumulate_vtbl_inits): For case 2 & 3, make sure
2553         we've not emerged from the hierarchy of RTTI_BINFO on reaching
2554         a non-virtual base.
2555
2556 2001-06-13  Mark Mitchell  <mark@codesourcery.com>
2557
2558         * NEWS: Update release number.
2559
2560 2001-06-12  Nathan Sidwell  <nathan@codesourcery.com>
2561
2562         PR c++/3130, c++/3131, c++/3132
2563         * cp-tree.h (BINFO_UNSHARED_MARKED): New #define.
2564         * class.c (force_canonical_binfo_r): Move
2565         BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move
2566         virtual bases unless they're primary and what they're primary
2567         too has been moved.
2568         (dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope
2569         with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and
2570         BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most
2571         derived binfo.
2572         (mark_primary_bases): Use BINFO_UNSHARED_MARKED.
2573         (layout_nonempty_base_or_field): Add most derived type
2574         parameter. Adjust.
2575         (layout_empty_base): Likewise.
2576         (build_base_field): Likewise.
2577         (build_base_fields): Likewise.
2578         (propagate_binfo_offsets): Add most derived type
2579         parameter. Skip non canonical virtual bases too.
2580         (dfs_set_offset_for_unshared_vbases): Don't skip primary
2581         bases. Do skip canonical bases.
2582         (layout_virtual_bases): Adjust.
2583         (layout_class_type): Adjust.
2584         (dfs_get_primary_binfo): Build list of virtual primary base
2585         candidates.
2586         (get_primary_binfo): Check that the shared virtual primary
2587         base candidate was found first.
2588         (accumulate_vtbl_inits): Don't do anything for non-vptr
2589         containing binfos. For case 1 primary virtual bases, keep
2590         checking that we've not emerged from the hierarchy of RTTI_BINFO.
2591
2592 2001-06-12  Nathan Sidwell  <nathan@codesourcery.com>
2593
2594         PR c++/3089
2595         * class.c (dfs_accumulate_vtbl_inits): Always walk down the
2596         hierarchy looking for primary bases for a ctor
2597         vtable. Recursively call oneself, if we meet our primary via
2598         this route and haven't met it yet via inheritance graph order.
2599
2600 2001-06-11  Mark Mitchell  <mark@codesourcery.com>
2601
2602         * lang-options.h: Emit documentation for -fno-honor-std, not
2603         -fhonor-std.
2604
2605 2001-06-10  Alexandre Oliva  <aoliva@redhat.com>
2606
2607         * typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]:
2608         Don't clobber delta.
2609         (expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn.
2610
2611 2001-06-10  Mark Mitchell <mark@codesourcery.com>
2612             Gabriel Dos Reis  <gdr@codesourcery.com>
2613
2614         * Make-lang.in (cp/call.o): Depend on diagnostic.h
2615         (cp/typeck.o): Depend on diagnostic.h
2616         (cp/typeck2.o): Depend on diagnostic.h
2617         (cp/repo.o): Depend on dignostic.h
2618         * typeck.c: #include diagnostic.h
2619         (convert_for_initialization): Remove extern declaration for
2620         warningcount and errorcount.
2621
2622         * call.c: #include diagnostic.h
2623         (convert_like_real): Remove extern declaration for warnincount and
2624         errorcount.
2625
2626         * repo.c: #include diagnostic.h
2627         * typeck2.c: #include diagnostic.h
2628
2629 2001-06-08  Nathan Sidwell  <nathan@codesourcery.com>
2630
2631         * decl.c (duplicate_decls): Fix DECL_TEMPLATE_RESULT thinko
2632         in previous change.
2633
2634 2001-06-08  Nathan Sidwell  <nathan@codesourcery.com>
2635
2636         PR c++/2929
2637         * friend.c (do_friend): Use push_decl_namespace for classes at
2638         namespace scope.
2639
2640 2001-06-08  Nathan Sidwell  <nathan@codesourcery.com>
2641             Jason Merrill <jason_merrill@redhat.com>
2642
2643         PR c++/3061
2644         * class.c (build_secondary_vtable): Use assert, rather than an error
2645         message.
2646         (dfs_fixup_binfo_vtbls): BINFO_VTABLE might be NULL.
2647         (dfs_accumulate_vtbl_inits): A lost primary virtual base may
2648         be between ORIG_BINFO and RTTI_BINFO, but neither of them.
2649         Don't set BINFO_VTABLE for a primary virtual base.
2650
2651 2001-06-07  Mark Mitchell  <mark@codesourcery.com>
2652
2653         * decl.c (duplicate_decls): Update source position information
2654         when a template function is defined.
2655
2656 2001-06-07  Phil Edwards  <pme@sources.redhat.com>
2657
2658         * lang-specs.h:  Move -D_GNU_SOURCE to config/linux.h.
2659
2660 2001-06-07  Nathan Sidwell  <nathan@codesourcery.com>
2661
2662         PR c++/2914
2663         * decl.c (pushtag): Don't push into a complete type's scope.
2664
2665 2001-06-06  Jason Merrill  <jason_merrill@redhat.com>
2666
2667         * cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose.
2668         (struct lang_decl_flags): Lose generate_with_vtable_p.
2669         (BV_GENERATE_THUNK_WITH_VTABLE_P): Lose.
2670         * class.c (copy_virtuals): Adjust.
2671         * decl2.c (mark_vtable_entries): Adjust.
2672         * method.c (make_thunk, build_vtable_entry): Adjust.
2673         * class.c (update_vtable_entry_for_fn): Only look as far as the
2674         first defining class.
2675         (build_vtbl_initializer): Put nothing in the slot for a function only
2676         defined in a lost primary virtual base.
2677         (add_vcall_offset_vtbl_entries_1): Use the same code for
2678         the lost primary case and the normal case.
2679         (dfs_unshared_virtual_bases): Don't lose a non-virtual primary base.
2680         (get_vfield_offset, get_derived_offset): Lose.
2681         (dfs_find_final_overrider): Use look_for_overrides_here.
2682         (get_matching_virtual): New fn.
2683         * semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P,
2684         not BV_VCALL_INDEX.
2685         * search.c (look_for_overrides_here): Split out from...
2686         (look_for_overrides_r): Here.
2687
2688         * class.c (find_final_overrider): Return error_mark_node on error.
2689
2690         * decl2.c (key_method): #if 0 accidental change.
2691
2692 2001-06-06  John David Anglin  <dave@hiauly1.hia.nrc.ca>
2693
2694         * call.c (convert_default_arg): Use INTEGRAL_TYPE_P.
2695         (build_over_call): Likewise.
2696         * decl.c (grokparms): Likewise.
2697         * pt.c (tsubst_decl): Likewise.
2698         * typeck.c (convert_arguments): Likewise.
2699
2700 2001-06-05  Mark Mitchell  <mark@codesourcery.com>
2701
2702         * semantics.c (begin_class_definition): Robustify.
2703
2704         * pt.c (instantiate_decl): Tell the repository code about the
2705         clones, not the cloned functions.
2706         * repo.c (repo_template_used): Explicitly instantiate the cloned
2707         function, not the clones.
2708
2709 2001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
2710
2711         * call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and
2712         ICS_BAD_FLAG on created conversion.
2713         (compare_ics): Break out rank.
2714
2715 2001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
2716
2717         * decl.c (xref_tag): Remove extraneous %s on dependent name
2718         lookup warning.
2719
2720 2001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
2721
2722         * class.c (layout_vtable_decl): Fix off by one error on
2723         build_index_type.
2724         (build_vtt): Likewise.
2725         (build_ctor_vtbl_group): Likewise.
2726
2727 2001-06-05  Nathan Sidwell  <nathan@codesourcery.com>
2728
2729         * class.c (maybe_indent_hierarchy): New function.
2730         (dump_class_hierarchy_r): Add flags. Dump extra binfo
2731         information, if enabled. Use maybe_indent_hierarchy. Adjust
2732         output format.
2733         (dump_class_hierarchy): Adjust prototype. Adjust output format.
2734         (dump_array, dump_vtable, dump_vtt): New functions.
2735         (finish_struct_1): Adjust hierarchy dumping.
2736         (initialize_vtable): Call dump_vtable.
2737         (build_vtt): Call dump_vtt.
2738         (build_ctor_vtbl_group): Call dump_vtable.
2739         * decl2.c (flag_dump_class_layout): Remove.
2740         (cxx_decode_option): Remove dump translation unit
2741         and dump class hierarchy check. Call dump_switch_p.
2742         (finish_file): Adjust dumping.
2743         (dump.c): Only dump base classes if not TDF_SLIM.
2744         Only dump namespace members if not TDF_SLIM.
2745         * optimize.c (dump_function): New function.
2746         (optimize_function): Call dump_function.
2747         * semantics.c (expand_body): Use dump_enabled_p.
2748
2749 2001-06-01  Nathan Sidwell  <nathan@codesourcery.com>
2750
2751         PR g++/2936
2752         Part missed from first commit
2753         * decl2.c (finish_anon_union): Copy context.
2754
2755 2001-05-30  Nathan Sidwell  <nathan@codesourcery.com>
2756
2757         PR g++/2936
2758         * optimize.c (remap_decl): Remap anonymous aggregate members too.
2759
2760 2001-05-26  Nathan Sidwell  <nathan@codesourcery.com>
2761
2762         PR g++/2823
2763         * semantics.c (expand_body): Don't optimize thunks.
2764
2765 2001-05-25  Sam TH  <sam@uchicago.edu>
2766
2767         * cp-tree.h lex.h: Fix header include guards.
2768
2769 2001-05-25  Mark Mitchell <mark@codesourcery.com>
2770
2771         * decl.c (init_decl_processing): Tweak.
2772
2773 2001-05-24  Mark Mitchell  <mark@codesourcery.com>
2774
2775         * decl.c (duplicate_decls): Tidy.
2776         (init_decl_processing): Always set flag_no_builtin.
2777
2778 2001-05-24  Nathan Sidwell  <nathan@codesourcery.com>
2779
2780         PR c++/2184
2781         * decl2.c (do_local_using_decl): Push the decls, even in a
2782         template.
2783
2784 2001-05-22  Mark Mitchell  <mark@codesourcery.com>
2785
2786         * optimize.c (initialize_inlined_parameters): Don't set
2787         TREE_READONLY for a VAR_DECL taking the place of an inlined
2788         PARM_DECL.
2789
2790 2001-05-22  Jason Merrill  <jason_merrill@redhat.com>
2791
2792         * class.c, cp-tree.h, rtti.c: Remove com_interface attribute support.
2793         * tree.c (cp_valid_lang_attribute): Warn about use of com_interface
2794         attribute.
2795
2796 2001-05-22  Joseph S. Myers  <jsm28@cam.ac.uk>
2797
2798         * parse.y: Refer to compound literals as such, not as
2799         constructor-expressions.
2800
2801 2001-05-21  Mark Mitchell  <mark@codesourcery.com>
2802
2803         * call.c (build_op_delete_call): Ignore exception-specifications
2804         when looking for matching delete operators.
2805         * init.c (build_new_1): Compute whether or not the allocation
2806         function used is a placement allocation function or not, and
2807         communicate this information to build_op_delete_call.
2808
2809 2001-05-21  Jason Merrill  <jason_merrill@redhat.com>
2810
2811         * class.c (build_vtable_entry_ref): Lose vtbl parm.  Fix for new abi.
2812         (build_vtbl_ref): Adjust.
2813         (dfs_accumulate_vtbl_inits): Set TREE_CONSTANT on the vtable address.
2814         * decl2.c (lang_f_options): Remove huge-objects, vtable-thunks.
2815         Re-add vtable-gc.
2816         (unsupported_options): Correspondingly.
2817
2818         * decl2.c (maybe_make_one_only): Check flag_weak, not
2819         supports_one_only().
2820
2821         * cp-tree.def (START_CATCH_STMT): Lose.
2822         * dump.c (cp_dump_tree): Don't dump it.  Do dump HANDLER_PARMS.
2823         * tree.c (cp_statement_code_p): Don't case it.
2824         * semantics.c (cp_expand_stmt): Likewise.
2825         * cp-tree.h (START_CATCH_TYPE): Lose.
2826         (HANDLER_TYPE): New.
2827         * except.c (expand_start_catch_block): Don't start any blocks.
2828         Return the type.
2829         (expand_end_catch_block): Don't end any blocks.
2830         * parse.y (handler): Don't pass anything from finish_handler_parms
2831         to finish_handler.
2832         * pt.c (tsubst_expr): Likewise.
2833         * semantics.c (begin_handler): Call note_level_for_catch here.
2834         (finish_handler_parms): Don't return anything.
2835         (genrtl_catch_block, begin_catch_block): Lose.
2836         (genrtl_handler): Call expand_start_catch here.
2837
2838 2001-05-18  Jason Merrill  <jason_merrill@redhat.com>
2839
2840         * class.c (build_vtable): Set DECL_ASSEMBLER_NAME for vtables here.
2841         (get_vtable_decl, build_vtt): Not here.
2842
2843 2001-05-20  Nathan Sidwell  <nathan@codesourcery.com>
2844
2845         PR c++/2781
2846         * optimize.c (update_cloned_parm): Copy addressability and other
2847         flags.
2848
2849 2001-05-20  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
2850
2851         * pt.c (determine_specialization): Ignore artificial functions.
2852
2853 2001-05-20  Neil Booth  <neil@daikokuya.demon.co.uk>
2854
2855         * cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update.
2856         (C_RID_CODE): Remove.
2857         * lex.c (cxx_init_options): Call set_identifier_size.  Update.
2858         (init_parse): Don't do it here.
2859
2860 2001-05-18  Diego Novillo  <dnovillo@redhat.com>
2861
2862         * decl2.c (finish_objects): Use the original SYMBOL_REF from the
2863         function declaration to avoid stripping the symbol's attributes.
2864
2865 2001-05-18  Nathan Sidwell  <nathan@codesourcery.com>
2866
2867         * decl.c (pushdecl): Adjust error string.
2868         (xref_tag): Adjust friend class injection warning. Remove the
2869         inherited name from the class shadowed scope.
2870
2871 2001-05-17  Mark Mitchell  <mark@codesourcery.com>
2872
2873         * except.c (cp_protect_cleanup_actions): New function.
2874         (init_exception_processing): Don't set protect_cleanup_actions
2875         here.  Do set lang_protect_cleanup_actions.
2876
2877 2001-05-16  Nathan Sidwell  <nathan@codesourcery.com>
2878
2879         * spew.c (read_token): Call yyerror on all unexpected tokens.
2880
2881 2001-05-16  Nathan Sidwell  <nathan@codesourcery.com>
2882
2883         * init.c (member_init_ok_or_else): Take a tree rather than
2884         string for name.
2885         (expand_member_init): Adjust.
2886
2887 2001-05-14  Nick Clifton  <nickc@cambridge.redhat.com>
2888
2889         * decl.c (duplicate_decls): Suppress warning about duplicate
2890         decls if the first decl is a friend.
2891
2892 2001-05-12  Zack Weinberg  <zackw@stanford.edu>
2893
2894         * except.c (choose_personality_routine): Export.  Add
2895         explanatory comment.  Take an enum languages, not a boolean.
2896         (initialize_handler_parm): Adjust to match.
2897         * cp-tree.h: Prototype choose_personality_routine.
2898         * lex.c (handle_pragma_java_exceptions): New function.
2899         (init_cp_pragma): Register #pragma GCC java_exceptions.
2900
2901 2001-05-12  Neil Booth  <neil@cat.daikokuya.demon.co.uk>
2902
2903         * method.c (build_mangled_C99_name): Remove unused prototype.
2904
2905 2001-05-12  Alexandre Oliva  <aoliva@redhat.com>
2906
2907         * cp-tree.h (ptrmemfunc_vbit_where_t): Declare type.
2908         * typeck.c (get_member_function_from_ptrfunc,
2909         build_ptrmemfunc, expand_ptrmemfunc_cst): Take
2910         TARGET_PTRMEMFUNC_VBIT_LOCATION into account.
2911
2912         Reverted Geoff Keating's 2001-05-03's patch.
2913
2914 2001-05-11  Ira Ruben   <ira@apple.com>
2915
2916         * cp/cp-tree.h (C_EXP_ORIGINAL_CODE): Delete; declared in c-common.h.
2917
2918 2001-05-11  Neil Booth  <neil@daikokuya.demon.co.uk>
2919
2920         * cp-tree.h (finish_label_expr, lookup_label): Delete.
2921         * parse.y: Update for '&&'; don't issue warning here.
2922         * semantics.c (finish_label_expr): Delete.
2923
2924 2001-05-07  Mark Mitchell  <mark@codesourcery.com>
2925
2926         * splay-tree.h (splay_tree_max): New function.
2927         (splay_tree_min): Likewise.
2928
2929 2001-05-03  Geoffrey Keating  <geoffk@redhat.com>
2930
2931         * cp-tree.h (enum cp_tree_index): Add CPTI_PFN_VFLAG_IDENTIFIER.
2932         (pfn_vflag_identifier): Define.
2933         Update comment about layout of pointer functions.
2934         (build_ptrmemfunc1): Update prototype.
2935         (expand_ptrmemfunc_cst): Update prototype.
2936         * decl.c (initialize_predefined_identifiers): Initialize
2937         pfn_vflag_identifier.
2938         (build_ptrmemfunc_type): When FUNCTION_BOUNDARY < 16, add
2939         an extra field to the type.
2940         * expr.c (cplus_expand_constant): Pass 'flag' between
2941         expand_ptrmemfunc_cst and build_ptrmemfunc1.
2942         * typeck.c (get_member_function_from_ptrfunc): When
2943         FUNCTION_BOUNDARY < 16, look at additional field to determine
2944         if a pointer-to-member is a real pointer or a vtable offset.
2945         (build_ptrmemfunc1): Add new parameter to contain extra field.
2946         (build_ptrmemfunc): Pass the extra field around.
2947         (expand_ptrmemfunc_cst): Add new parameter to return extra field.
2948         (pfn_from_ptrmemfunc): Ignore the extra field.
2949
2950 2001-05-03  Mark Mitchell  <mark@codesourcery.com>
2951
2952         * cp-tree.h (flag_inline_trees): Update documentation.
2953         * decl.c (init_decl_processing): Adjust handling of
2954         flag_inline_functions and flag_inline_trees to support -O3.
2955         (grokfndecl): Set DECL_INLINE on all functions if that's what
2956         the user requested.
2957         (save_function_data): Clear DECL_INLINE in
2958         current_function_cannot_inline is non-NULL.
2959         * decl2.c (flag_inline_trees): Update documentation.
2960
2961 2001-05-03  Nathan Sidwell  <nathan@codesourcery.com>
2962
2963         * dump.c (cp_dump_tree, USING_STMT case): New case.
2964         * tree.c (cp_statement_code_p): Add USING_STMT.
2965         * decl2.c (do_using_directive): Add the using directive statement.
2966
2967         * tree.c (walk_tree): Reformat an if block.
2968
2969 2001-05-02  Mark Mitchell  <mark@codesourcery.com>
2970
2971         * decl.c (compute_array_index_type): Don't try to do anything with
2972         the indices when processing a template.
2973
2974 2001-05-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2975
2976         * call.c: NULL_PTR -> NULL.
2977         * class.c: Likewise.
2978         * cvt.c: Likewise.
2979         * decl.c: Likewise.
2980         * decl2.c: Likewise.
2981         * except.c: Likewise.
2982         * init.c: Likewise.
2983         * rtti.c: Likewise.
2984         * search.c: Likewise.
2985         * tree.c: Likewise.
2986         * typeck.c: Likewise.
2987         * typeck2.c: Likewise.
2988
2989 2001-05-02  Mark Mitchell  <mark@codesourcery.com>
2990
2991         * decl2.c (do_using_directive): Revert previous patch.
2992
2993 2001-05-01  Nathan Sidwell  <nathan@codesourcery.com>
2994
2995         * cp-tree.def (USING_STMT): New statement node.
2996         * cp-tree.h (USING_STMT_NAMESPACE): New macro.
2997         * decl2.c (do_using_directive): Add USING_STMT to statement
2998         tree. Don't emit errors when processing template decl.
2999         * pt.c (tsubst_expr, USING_STMT case): New case.
3000         * semantics.c (cp_expand_stmt, USING_STMT case): New case.
3001
3002 2001-05-01  Nathan Sidwell  <nathan@codesourcery.com>
3003
3004         * call.c (build_new_op): Convert args from reference here.
3005         (build_conditional_expr): Don't convert here.
3006
3007 2001-05-01  Nathan Sidwell  <nathan@codesourcery.com>
3008
3009         * spew.c (last_token_id): New static variable.
3010         (read_token): Set it here.
3011         (yyerror): Use it here.
3012
3013 2001-04-30  Richard Henderson  <rth@redhat.com>
3014
3015         * cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations.
3016         * decl.c: Likewise.
3017
3018 2001-04-30  Mark Mitchell  <mark@codesourcery.com>
3019
3020         * gxxint.texi: Remove.
3021         * Make-lang.in: Remove all traces of gxxint.texi.
3022
3023 Mon Apr 30 16:14:10 2001  Mark P Mitchell  <mark@codesourcery.com>
3024
3025         * decl2.c (start_static_initialization_or_destruction): Correct
3026         logic to handle the -fno-use-cxa-atexit case.
3027
3028 2001-04-30  Mark Mitchell  <mark@codesourcery.com>
3029
3030         * optimize.c (update_cloned_parm): New function.
3031         (maybe_clone_body): Use it.  Update the `this' parameter too.
3032
3033 2001-04-29  Joseph S. Myers  <jsm28@cam.ac.uk>
3034
3035         * decl2.c (unsupported_options): Add new-abi.
3036         * lang-options.h: Remove no longer supported options.
3037
3038 2001-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3039
3040         * except.c (can_convert_eh): Don't check template parms,
3041         typename types etc.
3042
3043 2001-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3044
3045         * optimize.c (maybe_clone_body): Copy parameter names and locations.
3046
3047 2001-04-27  Nathan Sidwell  <nathan@codesourcery.com>
3048
3049         * cp-tree.h (adjust_clone_args): Prototype new function.
3050         * class.c (adjust_clone_args): New function.
3051         * decl.c (start_function): Call it for in charge ctors.
3052
3053 2001-04-26  Mark Mitchell  <mark@codesourcery.com>
3054
3055         * method.c (use_thunk): Make sure that thunks really are emitted
3056         when requested.
3057
3058 2001-04-26  Nathan Sidwell <nathan@codesourcery.com>
3059
3060         * mangle.c (write_chars): New macro.
3061         (hwint_to_ascii): New function
3062         (write_number): Use it.
3063         (write_integer_cst): Deal with really big numbers.
3064
3065 2001-04-25  Mark Mitchell  <mark@codesourcery.com>
3066
3067         * optimize.c (maybe_clone_body): Copy TREE_PUBLIC before emitting
3068         the clone.
3069
3070 2001-04-25  Nathan Sidwell  <nathan@codesourcery.com>
3071
3072         * decl.c (grokdeclarator): Set context of namespace scope
3073         TYPE_DECLS.
3074
3075 2001-04-24  Zack Weinberg  <zackw@stanford.edu>
3076
3077         * cp/optimize.c: Include hashtab.h.
3078         (struct inline_data): Add tree_pruner.
3079         (expand_call_inline, expand_calls_inline): Use it when calling
3080         walk_tree.
3081         (optimize_function): Initialize and free tree_pruner.
3082
3083 2001-04-24  Nathan Sidwell <nathan@codesourcery.com>
3084
3085         Lazy __FUNCTION__ generation.
3086         * cp-tree.def (FUNCTION_NAME): Remove.
3087         * cp-tree.h (function_name_declared_p): Remove.
3088         (cp_fname_init): Prototype.
3089         * decl.c (init_decl_processing): Don't generate __FUNCTION__ et al ids,
3090         don't call declare_function_name. Call start_fname_decls.
3091         (cp_make_fname_decl): Adjust parameters. Generate the name. Don't
3092         clobber the line number.
3093         (cp_fname_init): New function.
3094         (start_function): Call start_fname_decls.
3095         (finish_function): Call finish_fname_decls.
3096         * lex.c (reswords): Add slots for __FUNCTION__ et al.
3097         (rid_to_yy): Add mappings for __FUNCTION__ et al.
3098         * optimize.c (maybe_clone_body): Remove function_name_declared_p.
3099         * parse.y (VAR_FUNC_NAME): New token.
3100         (primary): Add VAR_FUNC_NAME.
3101         * pt.c (tsubst_decl): Adjust a DECL_PRETTY_FUNCTION_P's
3102         generation.
3103         (tsubst, FUNCTION_NAME case): Remove.
3104         (tsubst_copy, FUNCTION_NAME case): Remove.
3105         (tsubst_expr, DECL_STMT case): Be careful with a
3106         DECL_PRETTY_FUNCTION_P.
3107         (instantiate_decl): Remove function_name_declared_p.
3108         * semantics.c (begin_compound_statement): Don't call
3109         declare_function_name here.
3110         (setup_vtbl_ptr). Don't save & restore function_name_declared_p.
3111         (finish_translation_unit): Call finish_fname_decls.
3112         (expand_body): Remove function_name_declared_p.
3113         * typeck2.c (digest_init): Allow any ERROR_MARK.
3114
3115 2001-04-24  Nathan Sidwell  <nathan@codesourcery.com>
3116
3117         * pt.c (tsubst_decl): Use VOID_TYPE_P.
3118         * semantics.c: Fix some typos.
3119
3120 2001-04-23  Phil Edwards  <pme@sources.redhat.com>
3121
3122         * cp/decl2.c (flag_honor_std):  Always initialize to 1.
3123
3124 2001-04-22  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3125
3126         * xref.c (GNU_xref_file): Use concat in lieu of xmalloc/sprintf.
3127
3128 2001-04-23  Jason Merrill  <jason_merrill@redhat.com>
3129
3130         * except.c (build_throw): Wrap the initialization of the exception
3131         object in a MUST_NOT_THROW_EXPR.
3132         (do_free_exception): #if 0.
3133
3134 2001-04-20  Mark Mitchell  <mark@codesourcery.com>
3135
3136         * cp-tree.h (finish_enum): Change prototype.
3137         * decl.c (finish_enum): Reorganize.
3138         * parse.y (structsp): Adjust calls to finish_enum.
3139
3140 2001-04-20  Nathan Sidwell  <nathan@codesourcery.com>
3141
3142         * tree.c (cp_tree_equal): Adjust final switch formatting. Add
3143         't' case.
3144
3145 2001-04-20  Nathan Sidwell  <nathan@codesourcery.com>
3146
3147         * class.c (dfs_unshared_virtual_bases): Add ATTRIBUTE_UNUSED.
3148         (layout_empty_base): Return at end flag.
3149         (build_base_field): Likewise.
3150         (build_base_fields): Likewise.
3151         (layout_virtual_bases): Don't add 1 to eoc value.
3152         (end_of_class): Use full size for empty bases.
3153         (layout_class_type): Clear CLASSNEARLY_EMPTY_P if we appended
3154         empty bases. Don't add 1 to eoc value. Only add trailing padding
3155         if we're an empty class with no empty bases.
3156         (dump_class_hierarchy): Dump size and alignment.
3157
3158 2001-04-20  Jakub Jelinek  <jakub@redhat.com>
3159
3160         * call.c (maybe_handle_ref_bind): Copy ICS_USER_FLAG and
3161         ICS_BAD_FLAG.
3162
3163 2001-04-20  Jakub Jelinek  <jakub@redhat.com>
3164
3165         * search.c (lookup_field_r): If looking for type and non-TYPE_DECL
3166         is found, look first if name does not match the structure name.
3167
3168 2001-04-19  Mark Mitchell  <mark@codesourcery.com>
3169
3170         * cp-tree.h (DECL_LANGUAGE): Don't assume DECL_LANG_SPECIFIC is
3171         set.
3172         (SET_DECL_LANGUAGE): New macro.
3173         * decl.c (duplicate_decls): Use SET_DECL_LANGUAGE.
3174         (pushdecl): Likewise.
3175         (build_library_fn_1): Likewise.
3176         (build_cp_library_fn): Likewise.
3177         (grokfndecl): Likewise.
3178         (grokvardecl): Mark `extern "C"' variables as having C linkage.
3179         * decl2.c (grokclassfn): Use SET_DECL_LANGUAGE.
3180         * lex.c (retrofit_lang_decl): Likewise.
3181         * mangle.c (mangle_decl_string): Don't mangle the names of
3182         variables declared with C language linkage.
3183         * semantics.c (finish_member_declaration): Use SET_DECL_LANGUAGE.
3184
3185 2001-04-18  John David Anglin  <dave@hiauly1.hia.nrc.ca>
3186
3187         * semantics.c (simplify_aggr_init_exprs_r): Don't restore
3188         flag_access_control from uninitialized storage.
3189
3190 2001-04-15  Mark Mitchell  <mark@codesourcery.com>
3191
3192         * cp-tree.h (TYPE_PTRMEM_CLASS_TYPE): Improve documentation.
3193         * mangle.c (write_pointer_to_member_type): Fix mangling of
3194         pointers to cv-qualified member function types.
3195
3196         * init.c (build_delete): Create a SAVE_EXPR for the address if
3197         we're going to use it more than once.
3198
3199 2001-04-13  Mark Mitchell  <mark@codesourcery.com>
3200
3201         * cp-tree.h (DELTA2_FROM_PTRMEMFUNC): Remove.
3202         (expand_ptremfunc_cst): Change prototype.
3203         (delta2_from_ptrmemfunc): Remove.
3204         * expr.c (cplus_expand_constant): Adjust call to
3205         expand_ptrmemfunc_cst.
3206         * typeck.c (build_ptrmemfunc1): Simplify.
3207         (build_ptrmemfunc): Make sure that casting a PTRMEM_CST still
3208         results in a constant.
3209         (expand_ptrmemfunc_cst): Remove idx and delta2 parameters.
3210         (delta2_from_ptrmemfunc): Remove.
3211         (pfn_from_ptrmemfunc): Adjust call to expand_ptrmemfunc_cst.
3212
3213 2001-04-12  Jason Merrill  <jason_merrill@redhat.com>
3214
3215         * cp-tree.h (decl_namespace_list): New macro.
3216         (struct saved_scope): Add decl_ns_list.
3217         * decl.c (mark_saved_scope): Mark it.
3218         * decl2.c: Lose static decl_namespace_list.
3219         (init_decl2): Don't save it.
3220
3221 2001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3222
3223         * cp-tree.h (warn_return_type, yylex): Delete redundant
3224         declarations.
3225
3226         * decl.c (current_class_depth, global_namespace): Likewise.
3227
3228         * decl2.c (current_class_depth, flag_gnu_xref): Likewise
3229
3230         * repo.c (flag_use_repository): Likewise.
3231
3232 2001-04-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3233
3234         * cp-tree.h (pedantic, convert, global_bindings_p, insert_block,
3235         set_block, pushdecl, getdecls, gettags, init_decl_processing,
3236         maybe_build_cleanup, copy_lang_decl, prep_stmt, lvalue_p,
3237         lvalue_or_else, print_lang_statistics, comp_target_types,
3238         unsigned_type, signed_type, signed_or_unsigned_type,
3239         build_function_call, mark_addressable, incomplete_type_error):
3240         Delete redundant declarations.
3241
3242 2001-04-11  Jason Merrill  <jason_merrill@redhat.com>
3243
3244         * cp-tree.h (TYPE_LINKAGE_IDENTIFIER): New macro.
3245         (TYPE_ANONYMOUS_P): New macro.
3246         (TAGGED_TYPE_P): New macro.
3247         * decl.c (check_tag_decl): Use TYPE_ANONYMOUS_P.
3248         (grokfndecl, grokvardecl, grokdeclarator): Likewise.
3249         * tree.c (no_linkage_helper): Likewise.
3250         * semantics.c (begin_class_definition): Likewise.
3251         * pt.c (convert_template_argument): Likewise.
3252         * lex.c (check_for_missing_semicolon): Likewise.
3253
3254 2001-04-12  Nathan Sidwell  <nathan@codesourcery.com>
3255
3256         * class.c (dfs_unshared_virtual_bases): New function.
3257         (mark_primary_bases): Call it.
3258         (check_bases): Ignore virtual bases when determining
3259         nearly-emptiness.
3260
3261 2001-04-12  Nathan Sidwell  <nathan@codesourcery.com>
3262
3263         * method.c (make_thunk): Clear DECL_CLONED_FUNCTION.
3264
3265 2001-04-11  Mark Mitchell  <mark@codesourcery.com>
3266
3267         * optimize.c (maybe_clone_body): Copy DECL_NUM_STMTS from the
3268         cloned function to the clone.
3269
3270 2001-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3271
3272         * Make-lang.in (cp/semantics.o): Depend on $(EXPR_H).
3273
3274         * semantics.c: Include expr.h.
3275
3276 2001-04-11  Nathan Sidwell  <nathan@codesourcery.com>
3277
3278         * method.c (implicitly_declare_fn): Commonize code for copy ctor
3279         and assignment op. Set TREE_USED for parameter.
3280
3281 2001-04-10  Mark Mitchell  <mark@codesourcery.com>
3282
3283         * class.c (find_final_overrider_data): Add `candidates'.
3284         (dfs_find_final_overrider): Don't issue error messages
3285         prematurely.
3286         (find_final_overrider): Issue error messages here.
3287         (build_base_field): Don't warn about amgibuous direct bases here.
3288         (warn_about_ambiguous_direct_bases): New function.
3289         (layout_class_type): Use it.
3290
3291 2001-04-10  Richard Henderson  <rth@redhat.com>
3292
3293         * typeck.c (build_array_ref): Push the array reference inside
3294         COMPOUND_EXPR and COND_EXPR.
3295
3296 2001-04-05  Mark Mitchell  <mark@codesourcery.com>
3297
3298         * cp-tree.h (DECL_THIS_INLINE): Rename to DECL_DECLARED_INLINE_P.
3299         * decl.c (duplicate_decls): Adjust accordingly.
3300         (maybe_commonize_var): Likewise.
3301         (grokfndecl): Likewise.
3302         (start_function): Likewise.
3303         (start_method): Likewise.
3304         * decl2.c (key_method): Likewise.
3305         (import_export_decl): Likewise.
3306         * method.c (implicitly_declare_fn): Likewise.
3307         * optimize.c (maybe_clone_body): Likewise.
3308
3309 2001-04-05  Benjamin Kosnik  <bkoz@redhat.com>
3310
3311         * lang-specs.h: Add __DEPRECATED.
3312
3313 Thu Apr  5 16:54:29 2001  J"orn Rennecke <amylaar@redhat.com>
3314
3315         * search.c (get_dynamic_cast_base_type): When building a new
3316         constant, set its type to ssizetype.
3317
3318 2001-04-04  Jakub Jelinek  <jakub@redhat.com>
3319
3320         * optimize.c (expand_call_inline): Only add newly inlined statements
3321         into inlined_stmts.
3322
3323 2001-04-03  Mark Mitchell  <mark@codesourcery.com>
3324
3325         * cp-tree.h (OPERATOR_ASSIGN_FORMAT): Remove.
3326         (OPERATOR_FORMAT): Likewise.
3327         (OPERATOR_TYPENAME_FORMAT): Likewise.
3328         * operators.def: Remove old name-mangling information.
3329         * decl.c (grok_op_properties): Adjust accordingly.
3330         * lex.c (init_operators): Likewise.
3331         * rtti.c (get_tinfo_decl): Issue error messages about types that
3332         have variable size.
3333
3334 2001-04-03  Mark Mitchell  <mark@codesourcery.com>
3335
3336         * decl2.c (import_export_decl): Don't call import_export_class
3337         when processing an inline member function.
3338         * semantics.c (expand_body): Call import_export_decl before
3339         emitting inline functions.
3340
3341 2001-03-28  Richard Henderson  <rth@redhat.com>
3342
3343         IA-64 ABI Exception Handling:
3344         * cp-tree.def (EH_SPEC_BLOCK): New.
3345         (MUST_NOT_THROW_EXPR): New.
3346         * cp-tree.h: Update changed function declarations.
3347         (CPTI_PUSH_EXCEPTION_IDENTIFIER): Remove.
3348         (CPTI_CALL_UNEXPECTED): New.
3349         (struct cp_language_function): Rename x_eh_spec_try_block
3350         to x_eh_spec_block.
3351         (EH_SPEC_STMTS, EH_SPEC_RAISES): New.
3352         * decl.c (current_binding_level): If no current function
3353         bindings, revert to scope_chain.
3354         (initialize_predefined_identifiers): Remove __cp_push_exception.
3355         (store_parm_decls): Use begin_eh_spec_block.
3356         (finish_function): Use finish_eh_spec_block.
3357         (mark_lang_function): Update for name changes.
3358         * decl2.c (finish_file): No mark_all_runtime_matches.
3359         * dump.c (cp_dump_tree): Handle new tree codes.
3360         * error.c (dump_expr) [BIND_EXPR]: Fix typo.
3361         * except.c (catch_language_init, catch_language): Remove.
3362         (init_exception_processing): Don't set language code.
3363         Initialize call_unexpected_node, protect_cleanup_actions,
3364         eh_personality_libfunc, lang_eh_runtime_type.
3365         (call_eh_info, push_eh_info, get_eh_info, get_eh_value): Remove.
3366         (get_eh_type, get_eh_caught, get_eh_handlers): Remove.
3367         (prepare_eh_type): Split out type canonicalizations ...
3368         (build_eh_type_type): ... from here.
3369         (build_eh_type_type_ref): Remove.
3370         (mark_all_runtime_matches): Remove.
3371         (build_exc_ptr): New.
3372         (do_begin_catch, do_end_catch): New.
3373         (do_pop_exception): Remove.
3374         (build_terminate_handler): Remove.
3375         (choose_personality_routine): Split out language choice from ...
3376         (initialize_handler_parm): ... here.
3377         Use MUST_NOT_THROW_EXPR.
3378         (expand_start_catch_block): Use do_begin_catch.  Simplify Java
3379         exception object handling.
3380         (expand_start_eh_spec, expand_end_eh_spec): Remove.
3381         (expand_exception_blocks, alloc_eh_object): Remove.
3382         (begin_eh_spec_block, finish_eh_spec_block): New.
3383         (do_allocate_exception, do_free_exception): New.
3384         (expand_throw): Merge into ...
3385         (build_throw): ... here.  Update for abi.
3386         * expr.c (cplus_expand_expr): No expand_internal_throw.
3387         Handle MUST_NOT_THROW_EXPR.
3388         * pt.c (tsubst_expr): Handle EH_SPEC_BLOCK.
3389         * semantics.c (*) Update for except.h name changes.
3390         (genrtl_try_block): No protect_with_terminate.
3391         (genrtl_eh_spec_block): New.
3392         (genrtl_handler): Don't emit the goto here.
3393         (cp_expand_stmt): Handle EH_SPEC_BLOCK.
3394         (genrtl_finish_function): Don't expand_exception_blocks.
3395         * tree.c (cp_statement_code_p): Handle EH_SPEC_BLOCK.
3396
3397 2001-03-28  Richard Henderson  <rth@redhat.com>
3398
3399         * decl.c (struct named_label_list): Rename eh_region to
3400         in_try_scope, add in_catch_scope.
3401         (struct binding_level): Rename eh_region to is_try_scope,
3402         add is_catch_scope.
3403         (note_level_for_try): Rename from note_level_for_eh.
3404         (note_level_for_catch): New.
3405         (poplevel): Copy both is_try_scope and is_catch_scope to
3406         the named_label_list struct.
3407         (check_previous_goto_1): Don't check for catch block via
3408         DECL_ARTIFICIAL; use in_try_scope instead.
3409         (check_goto): Likewise.
3410         * cp-tree.h (note_level_for_try, note_level_for_catch): Declare.
3411         * except.c (expand_start_catch_block): Call note_level_for_catch.
3412         * semantics.c (begin_compound_stmt): Update for note_level_for_try.
3413
3414 2001-03-27  Richard Henderson  <rth@redhat.com>
3415
3416         * except.c: Use USING_SJLJ_EXCEPTIONS instead of
3417         exceptions_via_longjmp.
3418
3419 2001-03-27  Phil Edwards  <pme@sources.redhat.com>
3420
3421         * pt.c (check_default_tmpl_args):  Make error messages clearer.
3422
3423 2001-03-26  Phil Edwards  <pme@sources.redhat.com>
3424
3425         * error.c:  Also undefine 'A' macro used for cp_printers definition.
3426
3427 2001-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3428
3429         * Make-lang.in: Depend on $(SYSTEM_H), not system.h.
3430
3431 2001-03-26  Mike Yang <yang@research.att.com>
3432             Mark Mitchell  <mark@codesourcery.com>
3433
3434         * dump.c (dump_access): New function.
3435         (cp_dump_tree): Use it.  Dump basetype information for class
3436         types.
3437
3438 2001-03-26  Mark Mitchell  <mark@codesourcery.com>
3439
3440         * Makefile.in (optimize.o): Depend on params.h.
3441         (duplicate_decls): Copy DECL_NUM_STMTS, not DECL_FRAME_SIZE.
3442         (init_decl_processing): Set flag_no_inline when doing
3443         inlining-on-trees.
3444         * optimize.c: Include params.h.
3445         (struct inline_data): Improve documentation of FNS.  Add
3446         FIRST_INLINED_FN, INLINED_STMTS, and CLONING_P.
3447         (INSNS_PER_STMT): New macro.
3448         (remap_block): Use CLONING_P.
3449         (inlinable_function_p): Don't inline big functions.
3450         (expand_call_inline): Keep track of how much inlining we've done.
3451         (optimize_function): Set FIRST_INLINED_FN.
3452         (maybe_clone_body): Set CLONING_P.
3453         * semantics.c (simplify_aggr_init_exprs_r): Fix typing problems in
3454         tree nodes.
3455         (genrtl_finish_function): Clear DECL_DEFER_OUTPUT before calling
3456         rest_of_compilation.  Clear DECL_RTL for local variables
3457         afterwards.
3458         (clear_decl_rtl): New function.
3459
3460 2001-03-26  Nathan Sidwell  <nathan@codesourcery.com>
3461
3462         Implement DR 209
3463         * cp-tree.h (skip_type_access_control,