OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [cp/] [ChangeLog-2001] - Blame information for rev 294

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 283 jeremybenn
2001-12-29  Nathan Sidwell  
2
 
3
        * call.c (build_user_type_conversion_1): Use my_friendly_assert
4
        rather than if ... abort.
5
        * cvt.c (convert_to_reference): Likewise.
6
        * semantics.c (setup_vtbl_ptr): Likewise.
7
        * pt.c (lookup_template_class): Comment typo.
8
 
9
2001-12-29  Nathan Sidwell  
10
 
11
        PR c++/5125
12
        * pt.c (push_template_decl_real): Make sure DECL has
13
        DECL_LANG_SPECIFIC.
14
 
15
2001-12-29  Nathan Sidwell  
16
 
17
        PR c++/335
18
        * init.c (resolve_offset_ref): Copy cv qualifiers of this pointer
19
        for non-reference fields.
20
        * typeck.c (require_complete_type): Use resolve_offset_ref).
21
 
22
2001-12-26  Nathan Sidwell  
23
 
24
        PR c++/196
25
        * parse.y (bad_parm): Better diagnostic when given a SCOPE_REF.
26
 
27
2001-12-24  Nathan Sidwell  
28
 
29
        PR c++/160
30
        * typeck.c (build_modify_expr): Remove old unreachable code & tidy
31
        up. Don't stabilize_references when initializing a reference.
32
 
33
2001-12-23  Kaveh R. Ghazi  
34
 
35
        * decl2.c (lang_f_options): Const-ify.
36
 
37
2001-12-20  Joseph S. Myers  
38
 
39
        * config-lang.in (diff_excludes): Remove.
40
 
41
2001-12-19  Nathan Sidwell  
42
 
43
        PR c++/90
44
        * typeck.c (build_function_call_real): Use original function
45
        expression for errors.
46
 
47
2001-12-18  Jason Merrill  
48
 
49
        PR c++/3242
50
        * class.c (add_method): Do compare 'this' quals when trying to match a
51
        used function.  Don't defer to another used function.
52
 
53
2001-12-18  Nathan Sidwell  
54
 
55
        * pt.c (instantiate_clone): Remove, fold into ...
56
        (instantiate_template): ... here. Simplify by removing mutual
57
        recursion.
58
        * typeck2.c (build_m_component_ref): Don't cv qualify the function
59
        pointed to by a pointer to function.
60
        * class.c (delete_duplicate_fields_1): Typo.
61
 
62
2001-12-18  Jason Merrill  
63
 
64
        C++ ABI change: destroy value arguments in caller.
65
        * semantics.c (genrtl_start_function, genrtl_finish_function): Don't
66
        create an extra binding level for the parameters.
67
        * decl.c (store_parm_decls): Don't do parameter cleanups.
68
 
69
2001-12-18  Nathan Sidwell  
70
 
71
        * call.c (build_new_method_call): Use '%#V'.
72
        * error.c (cv_to_string): Use V parameter to determine padding.
73
 
74
2001-12-18  Joseph S. Myers  
75
 
76
        * call.c, decl2.c, init.c: Use "built-in" and "bit-field"
77
        spellings in messages.
78
 
79
2001-12-17  Zack Weinberg  
80
 
81
        * cp-tree.h: Delete #defines for cp_error, cp_warning,
82
        cp_pedwarn, and cp_compiler_error.
83
        * call.c, class.c, cp-tree.h, cvt.c, decl.c, decl2.c, error.c,
84
        except.c, friend.c, init.c, lex.c, method.c, parse.y, pt.c,
85
        rtti.c, search.c, semantics.c, spew.c, tree.c, typeck.c,
86
        typeck2.c: Change calls to the above macros to use their
87
        language-independent equivalents: error, warning, pedwarn, and
88
        internal_error respectively.
89
 
90
2001-12-16  Neil Booth  
91
 
92
        * decl2.c (finish_file): Remove back_end_hook.
93
 
94
2001-12-16  Joseph S. Myers  
95
 
96
        * ChangeLog.1, ChangeLog.2, ChangeLog, NEWS, call.c, class.c,
97
        cp-tree.h, decl.c, decl2.c, except.c, operators.def, optimize.c,
98
        pt.c, rtti.c, semantics.c, typeck.c: Fix spelling errors.
99
 
100
2001-12-15  Joseph S. Myers  
101
 
102
        * lang-options.h: Use American spelling in messages.
103
 
104
2001-12-13  Jason Merrill  
105
 
106
        * Make-lang.in (parse.h): Separate rule, just depend on parse.c.
107
 
108
        Use cleanups to run base and member destructors.
109
        * init.c (push_base_cleanups): New function, split out from...
110
        (build_delete): ...here.  Lose !TYPE_HAS_DESTRUCTOR code.
111
        * decl.c (finish_destructor_body): Move vbase destruction code to
112
        push_base_cleanups.
113
        (begin_function_body, finish_function_body): New fns.
114
        (finish_function): Move [cd]tor handling and call_poplevel to
115
        finish_function_body.
116
        (pushdecl): Skip the new level.
117
        * semantics.c (genrtl_try_block): Don't call end_protect_partials.
118
        (setup_vtbl_ptr): Call push_base_cleanups.
119
        * method.c (synthesize_method): Call {begin,end}_function_body.
120
        * pt.c (tsubst_expr): Handle COMPOUND_STMT_BODY_BLOCK.
121
        * cp-tree.h: Declare new fns.
122
        * parse.y (function_body, .begin_function_body): New nonterminals.
123
        (fndef, pending_inline, function_try_block): Use function_body.
124
        (ctor_initializer_opt, function_try_block): No longer has a value.
125
        (base_init): Remove .set_base_init token.
126
        (.set_base_init, compstmt_or_error): Remove.
127
        * Make-lang.in (parse.c): Expect two fewer s/r conflicts.
128
 
129
        * optimize.c (maybe_clone_body): Fix parameter updating.
130
 
131
2001-12-12  Jason Merrill  
132
 
133
        * decl.c (store_parm_decls): Remove parms_have_cleanups cruft.
134
        * semantics.c (genrtl_start_function): Don't pass
135
        parms_have_cleanups or push an extra binding level.
136
        (genrtl_finish_function): Lose cleanup_label cruft.
137
 
138
        * cp-tree.h (struct cp_language_function): Remove x_ctor_label.
139
        (ctor_label): Remove.
140
        * semantics.c (finish_return_stmt): Lose ctor_label support.
141
        * decl.c (finish_constructor_body, mark_lang_function): Likewise.
142
        * typeck.c (check_return_expr): Check DECL_DESTRUCTOR_P, not
143
        dtor_label.
144
 
145
        * call.c (build_new_method_call): Let resolves_to_fixed_type_p
146
        check for [cd]tors.
147
        * class.c (fixed_type_or_null, case INDIRECT_REF): Fix.
148
 
149
        * decl.c (finish_function): Check VMS_TARGET, not VMS.
150
 
151
        * decl.c (start_cleanup_fn): Remove redundant pushlevel.
152
        (end_cleanup_fn): And poplevel.
153
 
154
        * semantics.c (setup_vtbl_ptr): Always build a CTOR_INITIALIZER
155
        if we're in a template.
156
 
157
2001-12-12  Jakub Jelinek  
158
 
159
        * cp-tree.h (DESTRUCTOR_DECL_PREFIX, DESTRUCTOR_NAME_P,
160
        ANON_PARMNAME_FORMAT, ANON_PARMNAME_P, DESTRUCTOR_NAME_FORMAT,
161
        THIS_NAME_P): Delete.
162
        * spew.c (read_process_identifier): Remove DESTRUCTOR_NAME_P,
163
        THIS_NAME_P and ANON_PARMNAME_P tests from warning about clash
164
        with internal naming scheme.
165
        * error.c (dump_decl): Remove DESTRUCTOR_NAME_P use.
166
 
167
2001-12-12  Nathan Sidwell  
168
 
169
        * decl.c (grokdeclarator): Deprecated implicit typename use.
170
 
171
2001-12-11  Nathan Sidwell  
172
 
173
        PR g++/51
174
        * parse.y (frob_specs): Indicate it is a language linkage which
175
        contained the extern.
176
        * decl.c (grokdeclarator): Allow extern language linkage with
177
        other specifiers.
178
 
179
2001-12-10  Nathan Sidwell  
180
 
181
        PR g++/72
182
        * decl.c (add_binding): Don't reject duplicate typedefs involving
183
        template parameters.
184
 
185
2001-12-10  Neil Booth  
186
 
187
        * parse.y, semantics.c: Similarly.
188
 
189
2001-12-09  Nathan Sidwell  
190
 
191
        PR g++/87
192
        * cp-tree.h (DECL_COPY_CONSTRUCTOR_P): Use copy_fn_p.
193
        (copy_args_p): Rename to ...
194
        (copy_fn_p): ... here.
195
        (grok_special_member_properties): New function.
196
        (grok_op_properties): Lose VIRTUALP parameter.
197
        (copy_assignment_arg_p): Remove.
198
        * call.c (build_over_call): Use copy_fn_p.
199
        * decl.c (grokfndecl): Reformat. Adjust call to
200
        grok_op_properties.
201
        (copy_args_p): Rename to ...
202
        (copy_fn_p): ... here. Reject template functions. Check for pass
203
        by value.
204
        (grok_special_member_properties): Remember special functions.
205
        (grok_ctor_properties): Don't remember them here, just check.
206
        (grok_op_properties): Likewise.
207
        (start_method): Call grok_special_member_properties.
208
        * decl2.c (grokfield): Likewise.
209
        (copy_assignment_arg_p): Remove.
210
        (grok_function_init): Don't remember abstract assignment here.
211
        * pt.c (instantiate_class_template): Call
212
        grok_special_member_properties.
213
        (tsubst_decl): Adjust grok_op_properties call.
214
 
215
2001-12-08  Aldy Hernandez  
216
 
217
        * lex.c (rid_to_yy): Add RID_CHOOSE_EXPR and
218
        RID_TYPES_COMPATIBLE_P.
219
 
220
2001-12-08  John David Anglin  
221
 
222
        * semantics.c (simplify_aggr_init_exprs_r): Add DIRECT_BIND flag in
223
        call to build_aggr_init.
224
        * cp-tree.h (DIRECT_BIND): Document new use of DIRECT_BIND.
225
 
226
2001-12-08  Neil Booth  
227
 
228
        * parse.y: Replace uses of the string non-terminal with STRING.
229
        Don't perform string concatentaion here.
230
        (string): Remove non-terminal.
231
        * semantics.c (finish_asm_stmt): Don't concatenate strings here.
232
 
233
2001-12-05  Jason Merrill  
234
 
235
        * cp-lang.c (LANG_HOOKS_TREE_INLINING_START_INLINING): Define.
236
        (LANG_HOOKS_TREE_INLINING_END_INLINING): Define.
237
        * tree.c (cp_start_inlining, cp_end_inlining): New fns.
238
        * pt.c (push_tinst_level): No longer static.
239
        * cp-tree.h: Declare them.
240
 
241
        * init.c (resolve_offset_ref): Don't check access for the base
242
        conversion to access a FIELD_DECL.
243
 
244
        * cp-tree.h (TYPE_REFFN_P): New macro.
245
        * decl.c (bad_specifiers): Check it, too.
246
 
247
        * rtti.c (create_pseudo_type_info): Set CLASSTYPE_INTERFACE_ONLY
248
        on the __*_type_info type if we haven't seen a definition.
249
 
250
2001-12-05  Neil Booth  
251
 
252
        * decl.c: Include c-common.h.
253
        (shadow_warning): Move to c-common.c.
254
 
255
2001-12-05  Richard Kenner  
256
 
257
        * decl.c (duplicate_decls): Don't copy DECL_NO_CHECK_MEMORY_USAGE.
258
 
259
2001-12-04  Nathan Sidwell  
260
 
261
        * pt.c (end_template_parm_list): Clear TREE_CHAIN of each parm.
262
 
263
2001-12-04  Nathan Sidwell  
264
 
265
        PR g++/164
266
        * init.c (sort_base_init): Allow binfos to be directly specified.
267
        * method.c (do_build_copy_constructor): Explicitly convert to the
268
        base instance.
269
        (do_build_assign_ref): Likewise.
270
 
271
2001-12-03  Hans-Peter Nilsson  
272
 
273
        * decl.c (xref_basetypes): Don't use C99 construct in tag_code
274
        declaration and initialization.
275
 
276
2001-12-03  Neil Booth  
277
 
278
        * typeck2.c: Remove leading capital from diagnostic messages, as
279
        per GNU coding standards.
280
 
281
2001-12-03  Mumit Khan  
282
 
283
        PR c++/3394
284
        * decl.c (xref_basetypes): Handle attributes between
285
        'class' and name.
286
 
287
2001-12-03  Nathan Sidwell  
288
 
289
        PR g++/3381
290
        * parse.y (named_complex_class_head_sans_basetype): Add new
291
        reduction.
292
        * Make-lang.in (parse.c): Adjust expected conflict count.
293
 
294
2001-12-03  Jason Merrill  
295
 
296
        * class.c (finish_vtbls): Fill in BINFO_VPTR_FIELD in the
297
        immediate binfos for our virtual bases.
298
 
299
2001-12-02  Neil Booth  
300
 
301
        * call.c (build_java_interface_fn_ref): Similarly.
302
        * except.c (is_admissible_throw_operand): Similarly.
303
        * init.c (build_java_class_ref): Similarly.
304
        * xref.c (open_xref_file): Similarly.
305
 
306
2001-12-01  Neil Booth  
307
 
308
        * class.c (finish_struct): Remove trailing periods from messages.
309
        * decl.c (check_tag_decl): Similarly.
310
        * lex.c (cxx_set_yydebug): Similarly.
311
        * typeck2.c (friendly_abort): Similarly.
312
 
313
2001-11-29  Mark Mitchell  
314
 
315
        PR c++/3048
316
        * cp-tree.h (ovl_member): Remove.
317
        * decl2.c (merge_functions): Handle extern "C" functions
318
        specially.
319
        * tree.c (ovl_member): Remove.
320
 
321
2001-11-29  Mark Mitchell  
322
 
323
        PR c++/4842
324
        * class.c (get_basefndecls): Take an IDENTIFIER_NODE, not a
325
        FUNCTION_DECL, as input.
326
        (mark_overriders): Remove.
327
        (warn_hidden): Rework for the new ABI.
328
 
329
2001-11-29  Mark Mitchell  
330
 
331
        PR c++/3471
332
        * call.c (convert_like_real): Do not build additional temporaries
333
        for rvalues of class type.
334
 
335
2001-11-28  Nathan Sidwell  
336
 
337
        * cp-tree.h (UNIQUELY_DERIVED_FROM_P): Use lookup base.
338
        (ACCESSIBLY_UNIQUELY_DERIVED_FROM_P): Likewise.
339
        (PUBLICLY_UNIQUELY_DERIVED_FROM_P: Likewise.
340
        (DERIVED_FROM_P): Likewise.
341
        (enum base_access): Renumber, add ba_quiet bit mask.
342
        (get_binfo): Remove.
343
        (get_base_distance): Remove.
344
        (binfo_value): Remove.
345
        (ACCESSIBLY_DERIVED_FROM_P): Remove.
346
        * call.c (standard_conversion): Use lookup_base.
347
        * class.c (strictly_overrides): Likewise.
348
        (layout_virtual_bases): Likewise.
349
        (warn_about_ambiguous_direct_bases): Likewise.
350
        (is_base_of_enclosing_class): Likewise.
351
        (add_vcall_offset_vtbl_entries_1): Likewise.
352
        * cvt.c (build_up_reference): Adjust comment.
353
        * init.c (build_member_call): Reformat.
354
        * search.c (get_binfo): Remove.
355
        (get_base_distance_recursive): Remove.
356
        (get_base_distance): Remove.
357
        (lookup_base_r): Tweak.
358
        (lookup_base): Add ba_quiet control. Complete the types here.
359
        (covariant_return_p): Use lookup_base.
360
        * tree.c (binfo_value): Remove.
361
        (maybe_dummy_object): Use lookup_base.
362
        * typeck.c (build_static_cast): Use lookup_base.
363
        (get_delta_difference): Likewise.
364
        * typeck2.c (binfo_or_else): Use lookup_base.
365
        (build_scoped_ref): Add back error_mark_check.
366
        (build_m_component_ref): Use lookup_base.
367
 
368
2001-11-29  Joseph S. Myers  
369
 
370
        * Make-lang.in (c++.generated-manpages): New dummy target.
371
 
372
2001-11-27  Richard Kenner  
373
 
374
        * Make-lang.in (cp-lang.o): Depends on c-common.h.
375
        * cp-lang.c (c-common.h): Include.
376
        (LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks.
377
        * decl.c (cxx_init_decl_processing): Don't set lang_safe_from_p.
378
        * expr.c (init_cplus_expand): Don't set lang_expand_constant.
379
 
380
2001-11-26  Neil Booth  
381
 
382
        * decl2.c (c_language): Move to c-common.c.
383
        * lex.c (cxx_post_options, cxx_init_options): Use c-common.c
384
        functions.
385
        (cxx_init): Update.
386
 
387
2001-11-26  Jason Merrill  
388
 
389
        * call.c (joust): Remove COND_EXPR hack.
390
 
391
2001-11-25  Aldy Hernandez  
392
 
393
        * search.c (lookup_base_r): Declare bk in variable declaration
394
        space.
395
 
396
2001-11-25  Nathan Sidwell  
397
 
398
        PR g++/3145
399
        * class.c (build_vbase_pointer): Remove.
400
        (build_vbase_path): Remove.
401
        (build_base_path): New function.
402
        * cp-tree.h (base_access, base_kind): New enumerations.
403
        (build_base_path): Declare.
404
        (convert_pointer_to_real): Remove.
405
        (convert_pointer_to): Remove.
406
        (lookup_base): Declare.
407
        (convert_pointer_to_vbase): Remove.
408
        * call.c (build_scoped_method_call): Use lookup_base &
409
        build_base_path instead of convert_pointer_to_real,
410
        get_base_distance & get_binfo.
411
        (build_over_call): Likewise.
412
        * cvt.c (cp_convert_to_pointer): Likewise.
413
        (convert_to_pointer_force): Likewise.
414
        (build_up_reference): Likewise.
415
        (convert_pointer_to_real): Remove.
416
        (convert_pointer_to): Remove.
417
        * init.c (dfs_initialize_vtbl_ptrs): Use build_base_path
418
        instead of convert_pointer_to_vbase & build_vbase_path.
419
        (emit_base_init): Use build_base_path instead of
420
        convert_pointer_to_real.
421
        (expand_virtual_init): Lose unrequired conversions.
422
        (resolve_offset_ref): Use lookup_base and build_base_path
423
        instead of convert_pointer_to.
424
        * rtti.c (build_dynamic_cast_1): Use lookup_base &
425
        build_base_path instead of get_base_distance & build_vbase_path.
426
        * search.c (get_vbase_1): Remove.
427
        (get_vbase): Remove.
428
        (convert_pointer_to_vbase): Remove.
429
        (lookup_base_r): New function.
430
        (lookup_base): New function.
431
        * typeck.c (require_complete_type): Use lookup_base &
432
        build_base_path instead of convert_pointer_to.
433
        (build_component_ref): Likewise.
434
        (build_x_function_call): Likewise.
435
        (get_member_function_from_ptrfunc): Likewise.
436
        (build_component_addr): Likewise.
437
        * typeck2.c (build_scoped_ref): Likewise.
438
 
439
2001-11-22  Bryce McKinlay  
440
 
441
        * cp-tree.h (CP_TYPE_QUALS): Removed.
442
        * decl.c (cxx_init_decl_processing): Don't set lang_dump_tree.
443
        * cp-lang.c: Set LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN and
444
        LANG_HOOKS_TREE_DUMP_TYPE_QUALS_FN.
445
        * dump.c (cp_dump_tree): Use void* dump_info argument to match
446
        lang-hooks prototype.
447
        * call.c, cp-tree.h, cvt.c, decl.c, init.c, mangle.c, method.c, pt.c,
448
        rtti.c, semantics.c, tree.c, typeck.c, typeck2.c: All references to
449
        CP_TYPE_QUALS changed to cp_type_quals.
450
        * Make-lang.in: References to c-dump.h changed to tree-dump.h.
451
        (CXX_C_OBJS): Remove c-dump.o.
452
 
453
2001-11-21  Mark Mitchell  
454
 
455
        PR c++/3637
456
        * pt.c (lookup_template_class): Ensure that all specializations
457
        are registered on the list corresponding to the most general
458
        template.
459
 
460
2001-11-20  Mark Mitchell  
461
 
462
        * call.c (non_reference): Add documentation.
463
        (convert_class_to_reference): Do not strip reference types
464
        from conversion operators.
465
        (maybe_handle_ref_bind): Simplify.
466
        (compare_ics): Correct handling of references.
467
 
468
2001-11-19  John Wilkinson 
469
 
470
        * dump.c (dump_op): New function.
471
        (cp_dump_tree): Dump CLASSTYPE_TEMPLATE_SPECIALIZATION.  Use
472
        dump_op.  Dump DECL_MUTABLE, access and staticness for VAR_DECLs.
473
        DECL_PURE_VIRTUAL_P, DECL_VIRTUAL_P,
474
 
475
2001-11-19  Mark Mitchell  
476
 
477
        PR4629
478
        * semantics.c (finish_sizeof): Make sure that expression created
479
        while processing a template do not have a type.
480
        (finish_alignof): Likewise.
481
        * typeck.c (c_sizeof): Likewise.
482
        (expr_sizeof): Likewise.
483
 
484
2001-11-18  Neil Booth  
485
 
486
        * lex.c (cxx_finish): Call c_common_finish.
487
        (finish_parse): Remove.
488
 
489
2001-11-17  Kriang Lerdsuwanakij  
490
 
491
        * decl.c (create_array_type_for_decl): Check if NAME is NULL_TREE
492
        when displaying error message about missing array bounds.
493
 
494
2001-11-17  Kriang Lerdsuwanakij  
495
 
496
        * mangle.c (write_expression): Handle CAST_EXPR, STATIC_CAST_EXPR,
497
        CONST_CAST_EXPR.
498
        * operators.def: Add CAST_EXPR, STATIC_CAST_EXPR, CONST_CAST_EXPR.
499
 
500
2001-11-16  Neil Booth  
501
 
502
        * cp-tree.h (print_class_statistics): Restore.
503
 
504
2001-11-15  Jason Merrill  
505
 
506
        * method.c (use_thunk): Don't emit debugging information for thunks.
507
 
508
        * parse.y: Add ... IDENTIFIER SCOPE and ... PTYPENAME SCOPE expansions.
509
        * decl.c (make_typename_type): Handle getting a class template.
510
        * search.c (lookup_field_r): A class template is good enough for
511
        want_type.
512
 
513
        * call.c (convert_like_real): Only use cp_convert for the bad part.
514
        (standard_conversion): Also allow bad int->enum.
515
        * typeck.c (ptr_reasonably_similar): Also allow functions to
516
        interconvert.  Pointers to same-size integers are reasonably
517
        similar.
518
 
519
        * cvt.c (convert_to_void): If we build a new COND_EXPR, always
520
        give it void type.
521
 
522
2001-11-15  Nathan Sidwell  
523
 
524
        PR g++/3154
525
        * init.c (sort_base_init): Remove unreachable code.
526
        (expand_member_init): Adjust comment to reflect reality. Simplify
527
        and remove unreachable code.
528
 
529
2001-11-15  Neil Booth  
530
 
531
        * cp-tree.h (init_reswords, cxx_init_decl_processing): New.
532
        (cxx_init): Update prototype.
533
        * decl.c (init_decl_processing): Rename.  Move null node init
534
        to its creation time.
535
        * lex.c (cxx_init_options): Update.
536
        (cxx_init): Combine with old init_parse; also call
537
        cxx_init_decl_processing.
538
 
539
2001-11-14  Richard Sandiford  
540
 
541
        * decl.c (check_initializer): Try to complete the type of an
542
        array element before checking whether it's complete.  Don't
543
        complain about arrays with complete element types but an
544
        unknown size.
545
        (cp_finish_decl): Build the hierarchical constructor before
546
        calling maybe_deduce_size_from_array_init.
547
 
548
2001-11-14  Joseph S. Myers  
549
 
550
        * Make-lang.in: Change all uses of $(manext) to $(man1ext).
551
 
552
2001-11-13  Nathan Sidwell  
553
 
554
        PR g++/4206
555
        * parse.y (already_scoped_stmt): Remove.
556
        (simple_stmt, WHILE & FOR): Use implicitly_scoped_stmt.
557
 
558
2001-11-12  H.J. Lu 
559
 
560
        * cvt.c (ocp_convert): Don't warn the address of a weak
561
        function is always `true'.
562
 
563
2001-11-09  Neil Booth  
564
 
565
        * cp-lang.c (LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE,
566
        LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE,
567
        LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): Override.
568
        * cp-tree.h (print_class_statistics): Remove.
569
        (cxx_print_statistics, cxx_print_xnode, cxx_print_decl, cxx_print_type,
570
        cxx_print_identifier, cxx_set_yydebug): New.
571
        * lex.c (set_yydebug): Rename c_set_yydebug.
572
        * ptree.c (print_lang_decl, print_lang_type, print_lang_identifier,
573
        lang_print_xnode): Rename.
574
        * tree.c (print_lang_statistics): Rename.
575
 
576
2001-11-09  Kaveh R. Ghazi  
577
 
578
        * class.c (dump_array): Fix format specifier warning.
579
 
580
2001-11-09  Neil Booth  
581
 
582
        * cp-lang.c (LANG_HOOKS_NAME): Override.
583
        (struct lang_hooks): Constify.
584
        * lex.c (cxx_init_options): Update.
585
        (lang_identify): Remove.
586
        * parse.y (language_string): Remove.
587
 
588
2001-11-08  Andreas Franck  
589
 
590
        * Make-lang.in (CXX_INSTALL_NAME, GXX_CROSS_NAME,
591
        DEMANGLER_CROSS_NAME): Handle program_transform_name the way
592
        suggested by autoconf.
593
        (GXX_TARGET_INSTALL_NAME, CXX_TARGET_INSTALL_NAME): Define.
594
        (c++.install-common): Use the transformed target alias names.
595
 
596
2001-11-06  Neil Booth  
597
 
598
        * Make-lang.in: Update.
599
        * cp-lang.c: Include langhooks-def.h.
600
 
601
2001-11-04  Kriang Lerdsuwanakij  
602
 
603
        * pt.c (tsubst_copy): Call tsubst for TYPEOF_EXPR.
604
 
605
2001-11-03  Kaveh R. Ghazi  
606
 
607
        * lex.c (copy_lang_type): Add static prototype.
608
 
609
2001-11-02  Kriang Lerdsuwanakij  
610
 
611
        * pt.c (unify): Handle SCOPE_REF.
612
 
613
2001-11-01  Jakub Jelinek  
614
 
615
        * tree.c (cp_copy_res_decl_for_inlining): Adjust
616
        DECL_ABSTRACT_ORIGIN for the return variable.
617
 
618
2001-10-31  Zack Weinberg  
619
 
620
        *  Make-lang.in: Replace $(INTL_TARGETS) with po-generated.
621
 
622
2001-10-28  Joseph S. Myers  
623
 
624
        * ChangeLog.1, ChangeLog.2, ChangeLog, class.c, decl2.c, search.c,
625
        semantics.c, spew.c: Fix spelling errors.
626
 
627
2001-10-27  Kriang Lerdsuwanakij  
628
 
629
        * decl2.c (validate_nonmember_using_decl): Handle NAMESPACE_DECL.
630
 
631
2001-10-25  Zack Weinberg  
632
 
633
        * cp-lang.c: Redefine LANG_HOOKS_CLEAR_BINDING_STACK to
634
        pop_everything.
635
 
636
2001-10-23  Richard Kenner  
637
 
638
        * cp-lang.c (cxx_get_alias_set): New function.
639
        Point LANG_HOOKS_GET_ALIAS_SET to it.
640
 
641
2001-10-23  Kriang Lerdsuwanakij  
642
 
643
        * cp-tree.def (UNBOUND_CLASS_TEMPLATE): New tree node.
644
        * cp-tree.h (make_unbound_class_template): Prototype new function.
645
        * decl.c (make_unbound_class_template): New function.
646
        * decl2.c (arg_assoc_template_arg): Handle UNBOUND_CLASS_TEMPLATE.
647
        * error.c (dump_type): Likewise.
648
        * mangle.c (write_type): Likewise.
649
        * parse.y (template_parm): Likewise.
650
        (template_argument): Use make_unbound_class_template.
651
        * pt.c (convert_template_argument): Handle UNBOUND_CLASS_TEMPLATE.
652
        (tsubst): Likewise.
653
        (tsubst_copy): Likewise.
654
        (unify): Likewise.
655
        * tree.c (walk_tree): Likewise.
656
        * typeck.c (comptypes): Likewise.
657
 
658
2001-10-21  Kaveh R. Ghazi  
659
 
660
        * xref.c (GNU_xref_member): Use safe-ctype macros and/or fold
661
        extra calls into fewer ones.
662
 
663
2001-10-18  Alexandre Oliva  
664
 
665
        * decl.c (duplicate_decls): Propagate DECL_UNINLINABLE.
666
        Warn when merging inline with attribute noinline.
667
        (start_decl, start_function): Warn if inline and attribute
668
        noinline appear in the same declaration.
669
 
670
2001-10-16  H.J. Lu 
671
 
672
        * cp-tree.h (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): Defined
673
        for tree checking disabled.
674
 
675
2001-10-16  Hans-Peter Nilsson  
676
 
677
        * cp-tree.h (VFIELD_NAME_FORMAT) [NO_DOLLAR_IN_LABEL &&
678
        NO_DOT_IN_LABEL]: Adjust to match VFIELD_NAME.
679
 
680
2001-10-15  Richard Sandiford  
681
 
682
        * pt.c (UNIFY_ALLOW_MAX_CORRECTION): Define.
683
        (unify): Only handle MINUS_EXPR specially if the above flag is set
684
        and the subtracted constant is 1.  Clear the flag on recursive calls.
685
        Set it when unifying the maximum value in an INTEGER_TYPE's range.
686
 
687
2001-10-15  Richard Sandiford  
688
 
689
        * decl.c (bad_specifiers): Don't allow exception specifications
690
        on any typedefs.
691
 
692
2001-10-14  Neil Booth  
693
 
694
        * cp/lex.c (init_cp_pragma): Similarly.
695
 
696
2001-10-13  Kriang Lerdsuwanakij  
697
 
698
        * pt.c (lookup_template_class): Build complete template arguments
699
        for BOUND_TEMPLATE_TEMPLATE_PARM.
700
 
701
2001-10-12  Kriang Lerdsuwanakij  
702
 
703
        * cp-tree.h (TYPE_BINFO): Update comment.
704
        (BOUND_TEMPLATE_TEMPLATE_PARM_TYPE_CHECK): New macro.
705
        (TEMPLATE_TEMPLATE_PARM_TEMPLATE_INFO): Use template_info.
706
        (TYPENAME_TYPE_FULLNAME): Use TYPE_FIELDS.
707
        (copy_type): Prototype new function.
708
        * lex.c (copy_lang_decl): Gather tree node statistics.
709
        (copy_lang_type): New function.
710
        (copy_type): Likewise.
711
        (cp_make_lang_type): Create lang_type for
712
        BOUND_TEMPLATE_TEMPLATE_PARM.  Set TYPE_BINFO for TYPENAME_TYPE
713
        and BOUND_TEMPLATE_TEMPLATE_PARM.
714
        * pt.c (tsubst): Use copy_type instead of copy_node.
715
        * search.c (lookup_field_1): Ignore TYPENAME_TYPE.
716
 
717
2001-10-12  Kriang Lerdsuwanakij  
718
 
719
        * pt.c (determine_specialization): Ignore functions without
720
        DECL_TEMPLATE_INFO.
721
 
722
2001-10-12  Nathan Sidwell  
723
 
724
        PR g++/4476
725
        * typeck2.c (abstract_virtuals_error): Ignore incomplete classes.
726
 
727
2001-10-11  Jason Merrill  
728
 
729
        * typeck2.c (store_init_value): Don't re-digest a bracketed
730
        initializer.
731
 
732
        * class.c (finish_struct_anon): Use TYPE_ANONYMOUS_P instead of
733
        ANON_AGGR_TYPE_P.
734
 
735
2001-10-11  Richard Henderson  
736
 
737
        * class.c (build_vtable_entry_ref): Create a VTABLE_REF instead
738
        of an asm statement.
739
        (build_vtbl_ref_1): Split out from build_vtbl_ref.
740
        (build_vfn_ref): Use it to handle vtable descriptors before
741
        calling build_vtable_entry_ref.
742
        * decl2.c (output_vtable_inherit): Use assemble_vtable_inherit.
743
 
744
2001-10-10  Richard Henderson  
745
 
746
        * parse.y (asm_operand): Allow named operands.
747
        * semantics.c (finish_asm_stmt): Tweek for changed location
748
        of the operand constraint.
749
 
750
2001-10-09  Jason Merrill  
751
 
752
        * call.c (standard_conversion): Add bad conversion between
753
        integers and pointers.
754
        (convert_like_real): Don't use convert_for_initialization for bad
755
        conversions; complain here and use cp_convert.
756
        (build_over_call): Don't handle bad conversions specially.
757
        (perform_implicit_conversion): Allow bad conversions.
758
        (can_convert_arg_bad): New fn.
759
        * cp-tree.h: Declare it.
760
        * typeck.c (convert_for_assignment): Use it.
761
        (ptr_reasonably_similar): Any target type is similar to void.
762
 
763
2001-10-08  Alexandre Oliva  
764
 
765
        * Make-lang.in (CXX_OBJS): Added cp-lang.o.
766
        (cp/cp-lang.o): New rule.
767
        * cp-tree.h: Declare hooks.
768
        * tree.c: Make hooks non-static.
769
        (init_tree): Don't initialize hooks here.
770
        * lex.c: Likewise.  Move definition of lang_hooks to...
771
        * cp-lang.c: ... new file.
772
 
773
2001-10-08  Richard Henderson  
774
 
775
        * cp-tree.h (struct lang_decl_flags): Remove declared_inline.
776
        (DECL_DECLARED_INLINE_P): Use the bit in struct c_lang_decl.
777
 
778
2001-10-07  Kaveh R. Ghazi  
779
 
780
        * class.c (build_vtable_entry_ref): Const-ify.
781
        * decl.c (predefined_identifier,
782
        initialize_predefined_identifiers): Likewise.
783
        * init.c (build_new_1): Likewise.
784
        * lex.c (cplus_tree_code_type, cplus_tree_code_length, resword):
785
        Likewise.
786
 
787
2001-10-05  Alexandre Oliva  
788
 
789
        * optimize.c (struct inline_data): Moved to ../tree-inline.c.
790
        (INSNS_PER_STMT): Likewise.
791
        (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise.
792
        (copy_body, initialize_inlined_parameters): Likewise.
793
        (declare_return_variable, inlinable_function_p): Likewise.
794
        (expand_call_inline, expand_calls_inline): Likewise.
795
        (optimize_inline_calls, clone_body): Likewise.
796
        * tree.c (walk_tree): Moved to ../tree-inline.c.
797
        (walk_tree_without_duplicates): Likewise.
798
        (copy_tree_r, remap_save_expr): Likewise.
799
 
800
2001-10-04  Alexandre Oliva  
801
 
802
        * Make-lang.in (cp/decl.o, cp/tree.o): Depend on tree-inline.h.
803
        (cp/pt.o, cp/semantics.o, cp/optimize.o): Likewise.
804
        * cp-tree.h (lang_decl): Moved inlined_fns to tree_decl.
805
        (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved to ../tree.h.
806
        (flag_inline_trees): Moved declaration to ../tree-inline.h.
807
        (walk_tree): Moved declaration to ../tree-inline.h.
808
        (walk_tree_without_duplicates, copy_tree_r): Likewise.
809
        (remap_save_expr): Likewise.
810
        * decl.c: Include tree-inline.h.
811
        (lang_mark_tree): Don't mark inlined_fns.
812
        * decl2.c (flag_inline_trees): Moved defn to ../tree-inline.c.
813
        * optimize.c: Include tree-inline.h.
814
        (optimize_inline_calls): Move declaration to ../tree.h, as
815
        non-static.
816
        (remap_decl): Use language-independent constructs and hooks.
817
        (remap_block, copy_body_r, declare_return_variable): Likewise.
818
        (inlinable_function_p): Likewise.  Don't test for
819
        DECL_LANG_SPECIFIC before DECL_INLINED_FNS as inlined_fns is
820
        no longer language-specific.
821
        (optimize_inline_calls): Likewise.  Make it non-static.  Moved
822
        call of dump_function to...
823
        (optimize_function): Here...
824
        (clone_body): New function, extracted from...
825
        (maybe_clone_body): ... here.  Build decl_map locally and pass
826
        it on to clone_body.
827
        * pt.c, semantics.c: Include tree-inline.h.
828
        * tree.c: Likewise.
829
        (cp_walk_subtrees): New language-specific hook for tree inlining.
830
        (cp_cannot_inline_tree_fn, cp_add_pending_fn_decls,
831
        cp_is_overload_p, cp_auto_var_in_fn_p,
832
        cp_copy_res_decl_for_inlining): Likewise.
833
        (walk_tree): Move language-specific constructs into...
834
        (cp_walk_subtrees): this new function.
835
        (copy_tree_r): Use language-independent constructs and hooks.
836
        (init_tree): Initialize tree inlining hooks.
837
        (remap_save_expr): Adjust prototype so that the declaration
838
        does not require the definition of splay_tree.
839
 
840
2001-10-03  John David Anglin  
841
 
842
        * rtti.c (get_tinfo_decl): Call typeinfo_in_lib_p with the type used
843
        to build the declaration instead of the declaration itself.
844
 
845
2001-10-02  Jason Merrill  
846
 
847
        * decl2.c (cxx_decode_option): Add 'else'.
848
 
849
        * spew.c (end_input): No longer static.
850
        * cp-tree.h: Declare it.
851
        * parse.y (datadef): Add "error END_OF_SAVED_INPUT" expansion.
852
 
853
2001-10-02  Joseph S. Myers  
854
 
855
        * call.c (build_over_call), typeck.c (build_function_call_real):
856
        Pass type attributes to check_function_format rather than name or
857
        assembler name.  Don't require there to be a name or assembler
858
        name to check formats.
859
 
860
2001-10-02  Joseph S. Myers  
861
 
862
        * decl.c (init_decl_processing): Don't call
863
        init_function_format_info.  Initialize lang_attribute_table
864
        earlier.
865
        (builtin_function): Call decl_attributes.
866
        (insert_default_attributes): New.
867
 
868
2001-10-01  Jason Merrill  
869
 
870
        * decl.c (grokdeclarator): Copy array typedef handling from C
871
        frontend.
872
 
873
        * decl.c (grokdeclarator): Copy too-large array handling from C
874
        frontend.
875
 
876
2001-09-29  Alexandre Oliva  
877
 
878
        * config-lang.in (target_libs): Added target-gperf, so that we
879
        don't try to build it if C++ is disabled.
880
 
881
2001-09-23  Zack Weinberg  
882
 
883
        * Make-lang.in (CXX_OBJS): Take out cp/errfn.o.
884
        (cp/errfn.o): Delete rule.
885
        (cp/error.o): Depend on flags.h.
886
        * errfn.c: Delete file.
887
        * cp-tree.h: Declare warn_deprecated.  Remove definitions of
888
        TFF_NAMESPACE_SCOPE, TFF_CLASS_SCOPE, TFF_CHASE_NAMESPACE_ALIAS,
889
        and TFF_TEMPLATE_DEFAULT_ARGUMENTS. #define cp_error, cp_warning,
890
        cp_pedwarn, and cp_compiler_error to error, warning, pedwarn, and
891
        internal_error respectively.  Make cp_deprecated into a macro.
892
        Don't define cp_printer typedef or declare cp_printers.
893
        * error.c: Include flags.h.
894
        Delete: struct tree_formatting_info, print_function_argument_list,
895
        print_declaration, print_expression, print_function_declaration,
896
        print_function_parameter, print_type_id, print_cv_qualifier_seq,
897
        print_type_specifier_seq, print_simple_type_specifier,
898
        print_elaborated_type_specifier, print_rest_of_abstract_declarator,
899
        print_parameter_declaration_clause, print_exception_specification,
900
        print_nested_name_specifier, and definition of cp_printers.
901
        (locate_error): New function.
902
        (cp_error_at, cp_warning_at, cp_pedwarn_at): Moved here and
903
        rewritten in terms of locate_error and diagnostic.c.
904
        (cp_tree_printer): Rename cp_printer; wire up to *_to_string
905
        instead of deleted print_* routines.  Handle %C, %L, %O, %Q also.
906
        (init_error): Adjust to match.
907
 
908
2001-09-22  Richard Kenner  
909
 
910
        * Make-lang.in (CXX_C_OBJS): Add attribs.o.
911
 
912
2001-09-21  Richard Henderson  
913
 
914
        * class.c (set_vindex): Mind TARGET_VTABLE_USES_DESCRIPTORS.
915
        (build_vtbl_initializer): Likewise.
916
        (build_vfn_ref): New.
917
        * cp-tree.h: Declare it.
918
        * call.c (build_over_call): Use it.
919
        * decl2.c (mark_vtable_entries): Mark FDESC_EXPR.
920
        * typeck.c (get_member_function_from_ptrfunc): Mind descriptors.
921
 
922
2001-09-21  J"orn Rennecke 
923
 
924
        * decl.c (grokdeclarator): Use C syntax for attr_flags declaration.
925
 
926
2001-09-21  Joseph S. Myers  
927
 
928
        Table-driven attributes.
929
        * decl.c: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES.
930
        * decl2.c (cplus_decl_attributes): Only take one attributes
931
        parameter.
932
        * cp-tree.c (cplus_decl_attributes): Update prototype.
933
        * class.c (finish_struct), decl.c (start_decl, start_function),
934
        decl2.c (grokfield), friend.c (do_friend), parse.y
935
        (parse_bitfield): Update calls to cplus_decl_attributes.
936
        * decl.c (grokdeclarator): Take a pointer to a single ordinary
937
        attribute list.
938
        * decl.h (grokdeclarator): Update prototype.
939
        * decl2.c (grokfield): Take a single ordinary attribute list.
940
        * friend.c (do_friend): Likewise.
941
        * decl.c (shadow_tag, groktypename, start_decl,
942
        start_handler_parms, grokdeclarator, grokparms, start_function,
943
        start_method), decl2.c (grokfield, grokbitfield, grokoptypename),
944
        parse.y (parse_field, parse_bitfield, component_decl_1), pt.c
945
        (process_template_parm, do_decl_instantiation): Pass single
946
        ordinary attribute lists around.
947
        * decl.c (grokdeclarator): Correct handling of nested attributes.
948
        Revert the patch
949
        1998-10-18  Jason Merrill  
950
                * decl.c (grokdeclarator): Embedded attrs bind to the right,
951
                not the left.
952
        .
953
        * cp-tree.h (cp_valid_lang_attribute): Remove declaration
954
        (cp_attribute_table): Declare.
955
        * decl.c (valid_lang_attribute): Don't define.
956
        (lang_attribute_table): Define.
957
        (init_decl_processing): Initialize lang_attribute_table instead of
958
        valid_lang_attribute.
959
        * tree.c (cp_valid_lang_attribute): Remove.
960
        (handle_java_interface_attribute, handle_com_interface_attribute,
961
        handle_init_priority_attribute): New functions.
962
        (cp_attribute_table): New array.
963
        * decl2.c (import_export_class): Don't use
964
        targetm.valid_type_attribute.
965
 
966
2001-09-15  Gabriel Dos Reis  
967
 
968
        * Make-lang.in (cp/error.o): Depend on real.h
969
        * error.c: #include "real.h"
970
 
971
2001-09-15  Kaveh R. Ghazi  
972
 
973
        * mangle.c (mangle_conv_op_name_for_type): Use concat in lieu of
974
        xmalloc/strcpy/strcat.
975
 
976
2001-09-13  Kaveh R. Ghazi  
977
 
978
        * decl.c (warn_extern_redeclared_static, cp_make_fname_decl):
979
        Const-ification.
980
        * pt.c (tsubst_decl): Likewise.
981
 
982
2001-09-12  Kaveh R. Ghazi  
983
 
984
        * decl2.c (lang_f_options): Const-ification.
985
        * lex.c (cplus_tree_code_name): Likewise.
986
        * spew.c (yyerror): Likewise.
987
 
988
2001-09-06  Nathan Sidwell  
989
 
990
        PR c++/3986
991
        * class.c (force_canonical_binfo_r): Check & move an indirect
992
        primary base first.
993
        (force_canonical_binfo): Check that it's not already
994
        canonical.
995
        (mark_primary_virtual_base): Remove BINFO parameter.
996
        (mark_primary_bases): Adjust, set BINFO_LOST_PRIMARY_P here.
997
 
998
2001-09-06  Nathan Sidwell  
999
 
1000
        Remove TYPE_NONCOPIED_PARTS.
1001
        * cp-tree.h (CLASSTYPE_INLINE_FRIENDS): Map onto
1002
        CLASSTYPE_PURE_VIRTUALS.
1003
        (TYPE_RAISES_EXCEPTIONS): Map onto TYPE_BINFO.
1004
        * class.c (duplicate_tag_error): Remove TYPE_NONCOPIED_PARTS.
1005
        (layout_class_type): Don't call fixup_inline_methods here ...
1006
        (finish_struct_1): ... call it here.
1007
 
1008
2001-09-04  Mark Mitchell  
1009
 
1010
        * decl.c (duplicate_decls): Remove code deadling with
1011
        DECL_SAVED_INSNS.
1012
        * decl2.c (finish_file): Likewise.
1013
        * pt.c (instantiate_decl): Likewise.
1014
        * semantics.c (expand_body): Don't defer local functions if
1015
        they wouldn't be deferred for some other reason.  Don't
1016
        generate RTL for functions that will not be emitted.
1017
        (genrtl_start_function): Remove code deadling with
1018
        DECL_SAVED_INSNS.
1019
        (genrtl_finish_function): Likewise.
1020
 
1021
2001-09-04  Nathan Sidwell  
1022
 
1023
        PR c++/4203
1024
        * call.c (build_over_call): Do not optimize any empty base
1025
        construction.
1026
 
1027
2001-08-31  Kriang Lerdsuwanakij  
1028
 
1029
        * error.c (dump_template_decl): Output template parameters
1030
        together with their specifiers.
1031
        Output `class' prefix for template template parameter.
1032
        (dump_decl): Fix formatting.
1033
 
1034
2001-08-30  Kurt Garloff  
1035
 
1036
        * optimize.c (inlinable_function_p): Allow only smaller single
1037
        functions. Halve inline limit after reaching recursive limit.
1038
 
1039
2001-08-30  Joern Rennecke 
1040
            Jason Merrill  
1041
 
1042
        * class.c (build_vtable_entry_ref): Subtract in char*, not
1043
        ptrdiff_t.
1044
 
1045
2001-08-23  Jason Merrill  
1046
 
1047
        * tree.c (cp_build_qualified_type_real): Use get_qualified_type.
1048
        (build_cplus_array_type): Use cp_build_qualified_type, not
1049
        TYPE_MAIN_VARIANT, to get an unqualified version.
1050
 
1051
        * decl2.c (grok_alignof): Lose.
1052
        (build_expr_from_tree): Use expr_sizeof and c_alignof_expr.
1053
        * typeck.c (c_alignof): Lose.
1054
        * semantics.c (finish_sizeof, finish_alignof): New.
1055
        * parse.y: Use them.
1056
        * cp-tree.h: Declare them.
1057
 
1058
2001-08-22  Jason Merrill  
1059
 
1060
        * pt.c (tsubst_expr): Hand off to the TREE_CHAIN of a statement.
1061
        Don't loop in COMPOUND_STMT, FOR_STMT or TRY_BLOCK.
1062
        * tree.c (cp_statement_code_p): A TAG_DEFN is a statement.
1063
 
1064
2001-08-19  Jakub Jelinek  
1065
 
1066
        * typeck2.c (add_exception_specifier): Only require complete type if
1067
        not in processing template declaration.
1068
 
1069
2001-08-18  Kaveh R. Ghazi  
1070
 
1071
        * decl.c: Cast argument to size_t, not HOST_WIDE_INT, in calls to
1072
        GNU_xref_start_scope and GNU_xref_end_scope.
1073
 
1074
        * tree.c (TYPE_HASH): Moved to ../tree.h.
1075
 
1076
2001-08-16  Mark Mitchell  
1077
 
1078
        * cvt.c (convert_to_void): Preserve TREE_SIDE_EFFECTS
1079
        on COMPOUND_EXPRs.
1080
 
1081
2001-08-14  Richard Henderson  
1082
 
1083
        * class.c, cp-tree.h (build_vfn_ref): Remove.
1084
        * call.c, rtti.c: Replace all refernces with build_vtbl_ref.
1085
 
1086
2001-08-13  Mark Mitchell  
1087
 
1088
        * call.c (build_over_call): Mark COMPOUND_EXPRs generated for
1089
        empty class assignment as having side-effects to avoid
1090
        spurious warnings.
1091
 
1092
2001-08-13  Zack Weinberg  
1093
 
1094
        * Make-lang.in (cp/except.o): Add libfuncs.h to dependencies.
1095
        * except.c: Include libfuncs.h.
1096
 
1097
2001-08-11  Gabriel Dos Reis  
1098
 
1099
        * decl.c (grokdeclarator): Clarify diagnostic message.
1100
 
1101
2001-08-13  Kriang Lerdsuwanakij  
1102
 
1103
        * decl2.c (do_nonmember_using_decl): Replace using directive
1104
        with using declaration in the error message.
1105
 
1106
2001-08-11  Kriang Lerdsuwanakij  
1107
 
1108
        * pt.c (maybe_fold_nontype_arg): Use TREE_TYPE of ARG as the
1109
        criterion to avoid rebuilding expression tree instead of
1110
        processing_template_decl.
1111
 
1112
2001-08-07  Jason Merrill  
1113
 
1114
        Support named return value optimization for inlines, too.
1115
        * decl.c (finish_function): Nullify returns here.
1116
        * semantics.c (genrtl_start_function): Not here.
1117
        (cp_expand_stmt): Don't mess with CLEANUP_STMTs.
1118
        (nullify_returns_r): No longer static.  Just clear RETURN_EXPR.
1119
        Also nullify the CLEANUP_STMT for the nrv.
1120
        * cp-tree.h: Declare it.
1121
        * optimize.c (declare_return_variable): Replace the nrv with the
1122
        return variable.
1123
        * typeck.c (check_return_expr): Be more flexible on alignment check.
1124
        Ignore cv-quals when checking for a matching type.
1125
 
1126
2001-08-09  Richard Henderson  
1127
 
1128
        * decl2.c (finish_objects): Use target hooks instead of
1129
        assemble_constructor and assemble_destructor.
1130
 
1131
2001-08-08  John David Anglin  
1132
 
1133
        * g++spec.c (lang_specific_driver): Quote argument after `-Xlinker'.
1134
 
1135
2001-08-07  Nathan Sidwell  
1136
 
1137
        PR c++/3820
1138
        Stop using TYPE_NONCOPIED_PARTS.
1139
        * call.c (build_over_call): Be careful when copy constructing
1140
        or assigning to an empty class.
1141
        * class.c (check_bases_and_members): It has a
1142
        COMPLEX_ASSIGN_REF if it has a vptr.
1143
        (layout_class_type): Don't add empty class padding to
1144
        TYPE_NONCOPIED_PARTS.
1145
        (finish_struct_1): Don't add the VFIELD either.
1146
        * cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): Mention _copy_
1147
        initialization.
1148
 
1149
2001-08-07  Jason Merrill  
1150
 
1151
        * tree.c (walk_tree): Walk siblings even if !walk_subtrees.
1152
 
1153
2001-08-06  Richard Henderson  
1154
 
1155
        * decl2.c (finish_objects): Pass a symbol_ref and priority to
1156
        assemble_{constructor,destructor}.  Remove priority handling.
1157
 
1158
2001-08-05  Gabriel Dos Reis  
1159
 
1160
        Don't allow template-id in using-declaration.
1161
        * decl2.c (validate_nonmember_using_decl): Handle template-ids.
1162
        (do_class_using_decl): Likewise.
1163
 
1164
2001-08-04  Neil Booth  
1165
 
1166
        * cp/spew.c (read_token): No need to pop buffers.
1167
 
1168
2001-08-02  Stan Shebs  
1169
 
1170
        * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY): Remove, no longer used.
1171
        (fnaddr_from_vtable_entry): Remove decl.
1172
        * method.c (use_thunk): Update comment.
1173
 
1174
2001-08-01  Andrew Cagney  
1175
 
1176
        * repo.c (get_base_filename): Change return value to const char
1177
        pointer.
1178
 
1179
2001-08-02  Nathan Sidwell  
1180
 
1181
        Kill -fhonor-std.
1182
        * NEWS: Document.
1183
        * cp-tree.h (flag_honor_std): Remove.
1184
        (CPTI_FAKE_STD): Remove.
1185
        (std_node): Remove comment about it being NULL.
1186
        (fake_std_node): Remove.
1187
        * decl.c (in_fake_std): Remove.
1188
        (walk_namespaces_r): Remove fake_std_node check.
1189
        (push_namespace): Remove in_fake_std code.
1190
        (pop_namespace): Likewise.
1191
        (lookup_name_real): Remove fake_std_node check.
1192
        (init_decl_processing): Always create std_node. Always add
1193
        std:: things there.
1194
        (builtin_function): Always put non '_' fns in std.
1195
        * decl2.c (flag_honor_std): Remove.
1196
        (lang_f_options): Remove honor-std.
1197
        (unsupported_options): Add honor-std.
1198
        (set_decl_namespace): Remove fake_std_node check.
1199
        (validate_nonmember_using_decl): Likewise.
1200
        (do_using_directive): Likewise.
1201
        (handle_class_head): Likewise.
1202
        * dump.c (cp_dump_tree): Likewise.
1203
        * except.c (init_exception_processing): Adjust.
1204
        * init.c (build_member_call): Remove fake_std_node check.
1205
        (build_offset_ref): Likewise.
1206
        * lang-options.h: Remove -fhonor-std, -fno-honor-std.
1207
        * rtti.c (init_rtti_processing): Adjust.
1208
 
1209
2001-07-31  Alexandre Petit-Bianco  
1210
 
1211
        * tree.c (cp_tree_equal): WITH_CLEANUP_EXPR node to use its second
1212
        operand while calling cp_tree_equal.
1213
 
1214
2001-07-31  Nathan Sidwell  
1215
 
1216
        The 3.0 ABI no longer has vbase pointer fields.
1217
        * cp-tree.h (VBASE_NAME, VBASE_NAME_FORMAT, VBASE_NAME_P,
1218
        FORMAT_VBASE_NAME): Remove.
1219
        * method.c (do_build_copy_constructor): Adjust.
1220
        (do_build_assign_ref): Adjust.
1221
        * search.c (lookup_field_r): Adjust.
1222
        * typeck.c (build_component_ref): Adjust.
1223
 
1224
        The 3.0 ABI always has a vtable pointer at the start of every
1225
        polymorphic class.
1226
        * rtti.c (build_headof_sub): Remove.
1227
        (build_headof): Adjust.
1228
        (get_tinfo_decl_dynamic): No need to check flag_rtti
1229
        here. Adjust.
1230
        (create_real_tinfo_var): Explain why we need a hidden name.
1231
 
1232
2001-07-31  Nathan Sidwell  
1233
 
1234
        PR c++/3631
1235
        * class.c (update_vtable_entry_for_fn): The fixed adjustment
1236
        of a virtual thunk should be from declaring base.
1237
 
1238
2001-07-31  Nathan Sidwell  
1239
 
1240
        * class.c (dfs_ctor_vtable_bases_queue_p): Always walk into
1241
        the shared virtual base, so preserving inheritance graph order.
1242
 
1243
2001-07-30  Andreas Jaeger  
1244
 
1245
        * decl2.c: Remove unused var global_temp_name_counter.
1246
 
1247
2001-07-28  Richard Henderson  
1248
 
1249
        * method.c (pending_inlines): Remove.
1250
 
1251
2001-07-27  Nathan Sidwell  
1252
 
1253
        * class.c (mark_primary_virtual_base): Don't adjust base
1254
        offsets here.
1255
        (dfs_unshared_virtual_bases): Adjust them here.
1256
        (mark_primary_bases): Explain why we adjust at the end.
1257
 
1258
2001-07-27  Nathan Sidwell  
1259
 
1260
        * class.c (finish_struct_1): When copying the primary base's
1261
        VFIELD, make sure we find it is at offset zero.
1262
 
1263
2001-07-26  Kriang Lerdsuwanakij  
1264
 
1265
        * pt.c (tsubst_template_parms): Call maybe_fold_nontype_arg and
1266
        tsubst_expr for default template arguments.
1267
 
1268
2001-07-26  Nathan Sidwell  
1269
 
1270
        PR c++/3621
1271
        * spew.c (yylex): Only copy the token's lineno, if it is
1272
        nonzero.
1273
 
1274
2001-07-26  Nathan Sidwell  
1275
 
1276
        PR c++/3624
1277
        * call.c (resolve_args): Simplify, call
1278
        convert_from_reference.
1279
        (build_new_op): Resolve and convert from reference ARG1
1280
        earlier. Adjust ARG2 & ARG3 resolve and conversion.
1281
 
1282
2001-07-26  Nathan Sidwell  
1283
 
1284
        * decl.c (last_function_parm_tags): Remove.
1285
        (current_function_parm_tags): Remove.
1286
        (init_decl_processing): Adjust.
1287
        (start_function): Adjust.
1288
        (store_parm_decls): Adjust.
1289
 
1290
        PR c++/3152
1291
        * decl.c (grokdeclarator): Detect when a function typedef is
1292
        declaring a function, and create last_function_parms correctly.
1293
 
1294
2001-07-25  Jason Merrill  
1295
 
1296
        * call.c (joust): Only prefer a non-builtin candidate to a builtin
1297
        one if they have the same signature.
1298
 
1299
        * cvt.c (build_up_reference): Take DECL parm.  Check TREE_STATIC on
1300
        it rather than toplevel_bindings_p.  Give it a mangled name if static.
1301
        (convert_to_reference): Adjust.
1302
        * decl2.c (get_temp_name): Lose.
1303
        * mangle.c (mangle_ref_init_variable): New fn.
1304
        (mangle_guard_variable): Strip the ref-init header.
1305
        * cp-tree.h: Adjust.
1306
        * decl.c (cp_finish_decl): Add the DECL_STMT after processing the
1307
        initializer.
1308
        (grok_reference_init): Always use DECL_INITIAL.
1309
 
1310
2001-07-25  Nathan Sidwell  
1311
 
1312
        PR c++/3416
1313
        * call.c (build_conditional_expr): Recheck args after
1314
        conversions.
1315
        * cp-tree.h (build_conditional_expr): Move to correct file.
1316
        * typeck.c (decay_conversion): Diagnose any unknown types
1317
        reaching here.
1318
        (build_binary_op): Don't do initial decay or default
1319
        conversions on overloaded functions.
1320
        (build_static_cast): Don't do a decay conversion here.
1321
 
1322
2001-07-25  Nathan Sidwell  
1323
 
1324
        PR c++/3543
1325
        * typeck.c (condition_conversion): Resolve an OFFSET_REF.
1326
        * expr.c (cplus_expand_expr): An OFFSET_REF should never get here.
1327
 
1328
2001-07-25  Nathan Sidwell  
1329
 
1330
        * class.c (build_vtbl_or_vbase_field): Remove, move into ...
1331
        (create_vtbl_ptr): ... here.
1332
 
1333
2001-07-25  Nathan Sidwell  
1334
 
1335
        * class.c (build_vbase_offset_vbtl_entries): Look for
1336
        non-primary base of which we are a sub vtable.
1337
 
1338
2001-07-24  Phil Edwards  
1339
 
1340
        * semantics.c (finish_this_expr):  Remove unused code.
1341
 
1342
2001-07-24  Nathan Sidwell  
1343
 
1344
        Simplify rtti, now we've only one ABI.
1345
        * cp-tree.h (cp_tree_index): Remove CPTI_TINFO_DECL_ID,
1346
        CPTI_TINFO_VAR_ID.
1347
        (tinfo_decl_id, tinfo_var_id): Remove.
1348
        (get_typeid_1): Remove.
1349
        * rtti.c
1350
        (init_rtti_processing): Remove tinfo_decl_id & tinfo_var_id.
1351
        (typeid_ok_p): New function.
1352
        (build_type_id): Call typeid_ok_p. Don't call tinfo_from_decl.
1353
        (get_tinfo_decl): Remove old abi documentation.
1354
        (tinfo_from_decl): Remove.
1355
        (get_type_id): Call typeid_ok_p. Absorb get_typeid_1.
1356
        (get_typeid_1): Remove.
1357
        (get_base_offset): Remove.
1358
        (synthesize_tinfo_var): Absorb get_base_offset.
1359
        (create_real_tinfo_var): Don't use tinfo_decl_id.
1360
 
1361
2001-07-23  Graham Stott  
1362
 
1363
        * cp/class.c (type_requires_array_cookie): Fix use of uninitialized
1364
        variable has_two_argument_delete_p.
1365
 
1366
2001-07-21  Nathan Sidwell  
1367
 
1368
        Remove flag_vtable_thunk. It is always on for the 3.0 ABI.
1369
        * cp-tree.h (CPTI_DELTA2_IDENTIFIER): Remove.
1370
        (CPTI_INDEX_IDENTIFIER): Remove.
1371
        (CPT_PFN_OR_DELTA2_IDENTIFIER): Remove.
1372
        (delta2_identifier): Remove.
1373
        (index_identifier): Remove.
1374
        (pfn_or_delta2_identifier): Remove.
1375
        (flag_vtable_thunks): Remove.
1376
        (VTABLE_DELTA2_NAME): Remove.
1377
        (VTABLE_INDEX_NAME): Remove.
1378
        (FNADDR_FROM_VTABLE_ENTRY): Adjust.
1379
        (vfunc_ptr_type_node): Adjust.
1380
        (VTABLE_NAME_PREFIX): Adjust.
1381
        (build_vfn_ref): Lose first parameter.
1382
        (fixup_all_virtual_upcast_offsets): Remove.
1383
        * decl.c (initialize_predefined_identifiers): Remove
1384
        delta2_identifier, index_identifier, pfn_or_delta2_identifier.
1385
        (init_decl_processing): Remove no-vtable-thunk code.
1386
        * decl2.c (flag_vtable_thunks): Remove.
1387
        (mark_vtable_entries): Remove no-vtable-thunk code.
1388
        * error.c (dump_decl): Remove no-vtable-thunk code.
1389
        (dump_expr): Adjust ptr to member function code.
1390
        * init.c (initialize_vtable_ptrs): Remove no-vtable-thunk
1391
        code.
1392
        * rtti.c (build_headof): Remove no-vtable-thunk code.
1393
        (get_tinfo_decl_dynamic): Adjust build_vfn_ref call.
1394
        * search.c (get_base_distance): Remove expand_upcast_fixups case.
1395
        (virtual_context) Remove.
1396
        (expand_upcast_fixups): Remove.
1397
        (fixup_virtual_upcast_offsets): Remove.
1398
        (fixup_all_virtual_upcast_offsets): Remove.
1399
        * typeck.c (get_member_function_from_ptrfunc): Remove
1400
        no-vtable-thunk code.
1401
        * call.c (build_over_call): Adjust call to build_vfn_ref.
1402
        * class.c (build_vfn_ref): Lose first parameter. Remove
1403
        no-vtable-thunk code.
1404
        (build_rtti_vtbl_entries): Remove no-vtable-thunk code.
1405
        (build_vtable_entry): Remove no-vtable-thunk code.
1406
 
1407
2001-07-20  Nathan Sidwell  
1408
 
1409
        Remove old-abi remnants. Remove comments about old abi
1410
        behavior. Remove references to 'new-abi' in comments.
1411
        * cp-tree.h: Adjust comments.
1412
        (vbase_offsets_in_vtable_p): Delete.
1413
        (vcall_offsets_in_vtable_p): Delete.
1414
        (vptrs_present_everywhere_p): Delete.
1415
        (all_overridden_vfuns_in_vtables_p): Delete.
1416
        (merge_primary_and_secondary_vtables_p): Delete.
1417
        (TYPE_CONTAINS_VPTR_P): Adjust.
1418
        (VTT_NAME_PREFIX): Remove.
1419
        (CTOR_VTBL_NAME_PREFIX): Remove.
1420
        (init_vbase_pointers): Remove.
1421
        * class.c: Adjust coments.
1422
        (build_vbase_pointer_fields): Delete.
1423
        (build_vbase_pointer): Remove old-abi code.
1424
        (build_secondary_vtable): Likewise.
1425
        (modify_all_vtables): Likewise.
1426
        (create_vtable_ptr): Likewise.
1427
        (layout_class_type): Likewise.
1428
        (finish_struct_1): Likewise.
1429
        (finish_vtbls): Likewise.
1430
        (dfs_finish_vtbls): Delete.
1431
        (build_vbase_offset_vtbl_entries): Remove old-abi code.
1432
        * cvt.c: Adjust comments.
1433
        * decl.c: Adjust comments.
1434
        * decl2.c: Adjust comments.
1435
        * init.c: Adjust comments.
1436
        (construct_virtual_bases): Remove old-abi code.
1437
        * lang-specs.h: Remove -fno-new-abi.
1438
        * mangle.c: Adjust comments.
1439
        * rtti.c: Adjust comments.
1440
        (get_base_offset): Remove old-abi-code.
1441
        * search.c: Adjust comments.
1442
        (dfs_init_vbase_pointers): Remove.
1443
        (dfs_vtable_path_unmark): Remove.
1444
        (init_vbase_pointers): Remove.
1445
        * semantics.c: Adjust comments.
1446
        (emit_associated_thunks): Remove old-abi code.
1447
        * typeck.c: Adjust comments.
1448
 
1449
2001-07-20  Daniel Berlin  
1450
 
1451
        * Make-lang.in (cp/optimize.o): Depend on $(PARAMS_H), not
1452
        params.h.
1453
 
1454
2001-07-19  Mark Mitchell  
1455
 
1456
        * class.c (finish_struct_anon): Forbid nested classes.
1457
 
1458
2001-07-19  Neil Booth  
1459
 
1460
        * decl2.c: Don't include dwarfout.h and dwarf2out.h.
1461
        * optimize.c: Include debug.h.
1462
        (maybe_clone_body): Use debug hook.
1463
        * semantics.c: Include debug.h.
1464
        (expand_body): Use debug hook.
1465
 
1466
2001-07-19  Neil Booth  
1467
 
1468
        * spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases.
1469
 
1470
2001-07-18  Mark Mitchell  
1471
 
1472
        * class.c (type_requires_array_cookie): New function.
1473
        (check_methods): Don't try to figure out whether the type needs a
1474
        cookie here.
1475
        (check_bases_and_members): Set TYPE_VEC_NEW_USES_COOKIE here.
1476
        * cp-tree.h (TYPE_VEC_DELETE_TAKES_SIZE): Remove.
1477
        (TYPE_VEC_NEW_USES_COOKIE): Reimplement.
1478
        * pt.c (instantiate_class_template): Don't set
1479
        TYPE_VEC_DELETE_TAKES_SIZE.
1480
        * NEWS: Document ABI changes from GCC 3.0.
1481
 
1482
2001-07-18  Xavier Delacour ,
1483
            Gerald Pfeifer  
1484
 
1485
        * NEWS (Changes in GCC 3.0): Fix typo.
1486
 
1487
2001-07-13  Joseph S. Myers  
1488
 
1489
        * decl2.c (cplus_decl_attributes): Take a pointer to the node to
1490
        which attributes are to be attached, and a flags argument.  Update
1491
        call to decl_attributes.
1492
        (grokfield): Update call to decl_attributes.
1493
        * class.c (finish_struct): Update call to cplus_decl_attributes.
1494
        * cp-tree.h (cplus_decl_attributes): Update prototype.
1495
        * decl.c (start_decl, grokdeclarator, start_function): Update
1496
        calls to decl_attributes and cplus_decl_attributes.
1497
        * friend.c (do_friend): Update call to cplus_decl_attributes.
1498
        * parse.y (parse_bitfield): Update call to cplus_decl_attributes.
1499
 
1500
2001-07-12  Mark Mitchell  
1501
 
1502
        * decl.c (make_rtl_for_nonlocal_decl): Set DECL_C_HARD_REGISTER
1503
        for `register' variables with an asm-specification.
1504
 
1505
2001-07-11  Mark Mitchell  
1506
 
1507
        * semantics.c (finish_asm_stmt): Mark the output operands
1508
        to an asm addressable, if necessary.
1509
 
1510
2001-07-11  Ben Elliston  
1511
 
1512
        * Revert this change -- there is a subtle bug.
1513
 
1514
        PR c++/80
1515
        * decl.c (finish_enum): New "attributes" argument; pass it to
1516
        cplus_decl_attributes.  Use a narrower type if the enum is packed.
1517
        * cp-tree.h (finish_enum): Adjust prototype.
1518
        * parse.y (enum_head): New non-terminal.
1519
        (structsp): Use it. Enums now may be preceded or followed by
1520
        optional attributes -- pass their chained tree to finish_enum().
1521
        * pt.c (tsubst_enum): Pass NULL_TREE for the new argument.
1522
 
1523
2001-07-10  Mark Mitchell  
1524
 
1525
        * pt.c (tsubst_decl): Set DECL_CONTEXT for namespace-scope
1526
        variables.
1527
 
1528
2001-07-10  Jason Merrill  
1529
 
1530
        * semantics.c (cp_expand_stmt): Fix for null
1531
        current_function_return_value.
1532
 
1533
2001-07-10  Jan van Male  
1534
 
1535
        * call.c (build_op_delete_call): Initialize fn.
1536
        (convert_like_real): Delete conditional.
1537
        (joust): Initialize *w and *l.
1538
        * class.c: Add prototype for binfo_ctor_vtable.
1539
        (get_primary_binfo): Initialize result.
1540
        * init.c (build_java_class_ref): Initialize name.
1541
 
1542
2001-07-09  Erik Rozendaal  
1543
 
1544
        * typeck.c (unary_complex_lvalue): Do not duplicate the
1545
        argument to modify, pre-, or post-increment when used as an
1546
        lvalue and when the argument has side-effects.
1547
 
1548
2001-07-08  Joseph S. Myers  
1549
 
1550
        * decl.c (start_decl): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
1551
        (start_function): Don't call SET_DEFAULT_DECL_ATTRIBUTES.  Call
1552
        cplus_decl_attributes even if attrs is NULL.
1553
        * friend.c (do_friend): Don't call SET_DEFAULT_DECL_ATTRIBUTES.
1554
 
1555
2001-07-08  Joseph S. Myers  
1556
 
1557
        * decl.c (grokdeclarator), decl2.c (cplus_decl_attributes): Update
1558
        calls to decl_attributes.
1559
 
1560
2001-07-06  Ira Ruben   
1561
 
1562
        * cp-tree.def (TEMPLATE_DECL): Update comment. DECL_RESULT should
1563
        be DECL_TEMPLATE_RESULT.
1564
 
1565
2001-07-05  Kriang Lerdsuwanakij  
1566
 
1567
        * cp-tree.h (copy_template_template_parm): Rename to ...
1568
        (bind_template_template_parm): ... here.
1569
        * tree.c (copy_template_template_parm): Rename to ...
1570
        (bind_template_template_parm): ... here.  Remove the case when
1571
        NEWARGS is NULL_TREE.
1572
        (copy_tree_r): Don't copy TEMPLATE_TEMPLATE_PARM and
1573
        BOUND_TEMPLATE_TEMPLATE_PARM.
1574
        * pt.c (lookup_template_class): Adjust.
1575
 
1576
2001-07-05  Jason Merrill  
1577
 
1578
        * cvt.c (convert_lvalue): New fn.
1579
        * cp-tree.h: Declare it.
1580
        * method.c (do_build_assign_ref): Use it.
1581
        (do_build_copy_constructor): Convert parm to base types
1582
        before calling base constructors.
1583
 
1584
        * typeck.c (check_return_expr): Check DECL_ALIGN instead of
1585
        DECL_USER_ALIGN.  Check flag_elide_constructors instead of
1586
        optimize.
1587
        * semantics.c (cp_expand_stmt): Don't destroy the named return value.
1588
 
1589
2001-07-02  Nathan Sidwell  
1590
 
1591
        * optimize.c (optimize_inline_calls): New function, broken out
1592
        of ...
1593
        (optimize_function): ... here. Call it. Don't inline if it is
1594
        a thunk.
1595
        (dump_function): Print name of dump flag causing this dump.
1596
        * semantics.c (expand_body): Move thunk inline check to
1597
        optimize_function.
1598
 
1599
2001-06-29  Joseph S. Myers  
1600
 
1601
        * typeck.c (COMP_TYPE_ATTRIBUTES): Don't define.
1602
        (comptypes): Use target.comp_type_attributes.
1603
 
1604
2001-06-29  Nathan Sidwell  
1605
 
1606
        * cp-tree.h (flag_dump_class_layout): Remove unneeded declaration.
1607
 
1608
2001-06-28  Gabriel Dos Reis  
1609
 
1610
        * error.c (lang_print_error_function): Add a `diagnostic_context *'
1611
        parameter. Tweak.
1612
 
1613
2001-06-27  Neil Booth  
1614
 
1615
        * decl2.c (import_export_class): Update.
1616
 
1617
2001-06-26  Gabriel Dos Reis  
1618
 
1619
        * error.c (init_error): Adjust settings.
1620
 
1621
2001-06-26  Gabriel Dos Reis  
1622
 
1623
        * error.c (init_error): Adjust settings.
1624
 
1625
2001-06-19  Richard Sandiford  
1626
 
1627
        * except.c (initialize_handler_parm): Expect __cxa_begin_catch to
1628
        return pointers to data members by reference rather than by value.
1629
 
1630
2001-06-18  Jason Merrill  
1631
 
1632
        Implement the Named Return Value optimization.
1633
        * cp-tree.h (struct cp_language_function): Add x_return_value.
1634
        (current_function_return_value): Now a macro.
1635
        * decl.c: Don't define it.
1636
        (define_label, finish_case_label): Don't clear it.
1637
        (init_decl_processing): Don't register it with GC.
1638
        * semantics.c (genrtl_finish_function): Don't check it for
1639
        no_return_label.  Copy the RTL from the return value to
1640
        current_function_return_value and walk, calling...
1641
        (nullify_returns_r): ...this new fn.
1642
        * typeck.c (check_return_expr): Set current_function_return_value.
1643
 
1644
2001-06-15  Jason Merrill  
1645
 
1646
        * class.c (dfs_accumulate_vtbl_inits): Just point to the base we're
1647
        sharing a ctor vtable with.  Merge code for cases 1 and 2.
1648
        (binfo_ctor_vtable): New fn.
1649
        (build_vtt_inits, dfs_build_secondary_vptr_vtt_inits): Use it.
1650
 
1651
2001-06-14  Jason Merrill  
1652
 
1653
        * class.c (dfs_find_final_overrider): Fix logic.
1654
 
1655
        * class.c (update_vtable_entry_for_fn): Uncomment optimization to use
1656
        virtual thunk instead of non-virtual.
1657
        (get_matching_virtual): Uncomment.
1658
 
1659
        * pt.c (unify): Don't recurse between the POINTER_TYPE and the
1660
        OFFSET_TYPE.  If we're adding cv-quals, the extra ones would be on
1661
        PARM, not ARG.
1662
 
1663
2001-06-14  Nathan Sidwell  
1664
 
1665
        * class.c (dfs_accumulate_vtbl_inits): For case 2 & 3, make sure
1666
        we've not emerged from the hierarchy of RTTI_BINFO on reaching
1667
        a non-virtual base.
1668
 
1669
2001-06-13  Mark Mitchell  
1670
 
1671
        * NEWS: Update release number.
1672
 
1673
2001-06-12  Nathan Sidwell  
1674
 
1675
        PR c++/3130, c++/3131, c++/3132
1676
        * cp-tree.h (BINFO_UNSHARED_MARKED): New #define.
1677
        * class.c (force_canonical_binfo_r): Move
1678
        BINFO_UNSHARED_MARKED, BINFO_LOST_PRIMARY_P. Don't move
1679
        virtual bases unless they're primary and what they're primary
1680
        too has been moved.
1681
        (dfs_unshared_virtual_bases): Use BINFO_UNSHARED_MARKED. Cope
1682
        with morally virtual bases. Duplicate BINFO_LOST_PRIMARY_P and
1683
        BINFO_PRIMARY_BASE_OF. Clear BINFO_VTABLE for all but the most
1684
        derived binfo.
1685
        (mark_primary_bases): Use BINFO_UNSHARED_MARKED.
1686
        (layout_nonempty_base_or_field): Add most derived type
1687
        parameter. Adjust.
1688
        (layout_empty_base): Likewise.
1689
        (build_base_field): Likewise.
1690
        (build_base_fields): Likewise.
1691
        (propagate_binfo_offsets): Add most derived type
1692
        parameter. Skip non canonical virtual bases too.
1693
        (dfs_set_offset_for_unshared_vbases): Don't skip primary
1694
        bases. Do skip canonical bases.
1695
        (layout_virtual_bases): Adjust.
1696
        (layout_class_type): Adjust.
1697
        (dfs_get_primary_binfo): Build list of virtual primary base
1698
        candidates.
1699
        (get_primary_binfo): Check that the shared virtual primary
1700
        base candidate was found first.
1701
        (accumulate_vtbl_inits): Don't do anything for non-vptr
1702
        containing binfos. For case 1 primary virtual bases, keep
1703
        checking that we've not emerged from the hierarchy of RTTI_BINFO.
1704
 
1705
2001-06-12  Nathan Sidwell  
1706
 
1707
        PR c++/3089
1708
        * class.c (dfs_accumulate_vtbl_inits): Always walk down the
1709
        hierarchy looking for primary bases for a ctor
1710
        vtable. Recursively call oneself, if we meet our primary via
1711
        this route and haven't met it yet via inheritance graph order.
1712
 
1713
2001-06-11  Mark Mitchell  
1714
 
1715
        * lang-options.h: Emit documentation for -fno-honor-std, not
1716
        -fhonor-std.
1717
 
1718
2001-06-10  Alexandre Oliva  
1719
 
1720
        * typeck.c (get_member_function_from_ptrfunc) [vbit_in_delta]:
1721
        Don't clobber delta.
1722
        (expand_ptrmemfunc_cst) [ptrmemfunc_vbit_in_delta]: Adjust pfn.
1723
 
1724
2001-06-10  Mark Mitchell 
1725
            Gabriel Dos Reis  
1726
 
1727
        * Make-lang.in (cp/call.o): Depend on diagnostic.h
1728
        (cp/typeck.o): Depend on diagnostic.h
1729
        (cp/typeck2.o): Depend on diagnostic.h
1730
        (cp/repo.o): Depend on dignostic.h
1731
        * typeck.c: #include diagnostic.h
1732
        (convert_for_initialization): Remove extern declaration for
1733
        warningcount and errorcount.
1734
 
1735
        * call.c: #include diagnostic.h
1736
        (convert_like_real): Remove extern declaration for warnincount and
1737
        errorcount.
1738
 
1739
        * repo.c: #include diagnostic.h
1740
        * typeck2.c: #include diagnostic.h
1741
 
1742
2001-06-08  Nathan Sidwell  
1743
 
1744
        * decl.c (duplicate_decls): Fix DECL_TEMPLATE_RESULT thinko
1745
        in previous change.
1746
 
1747
2001-06-08  Nathan Sidwell  
1748
 
1749
        PR c++/2929
1750
        * friend.c (do_friend): Use push_decl_namespace for classes at
1751
        namespace scope.
1752
 
1753
2001-06-08  Nathan Sidwell  
1754
            Jason Merrill 
1755
 
1756
        PR c++/3061
1757
        * class.c (build_secondary_vtable): Use assert, rather than an error
1758
        message.
1759
        (dfs_fixup_binfo_vtbls): BINFO_VTABLE might be NULL.
1760
        (dfs_accumulate_vtbl_inits): A lost primary virtual base may
1761
        be between ORIG_BINFO and RTTI_BINFO, but neither of them.
1762
        Don't set BINFO_VTABLE for a primary virtual base.
1763
 
1764
2001-06-07  Mark Mitchell  
1765
 
1766
        * decl.c (duplicate_decls): Update source position information
1767
        when a template function is defined.
1768
 
1769
2001-06-07  Phil Edwards  
1770
 
1771
        * lang-specs.h:  Move -D_GNU_SOURCE to config/linux.h.
1772
 
1773
2001-06-07  Nathan Sidwell  
1774
 
1775
        PR c++/2914
1776
        * decl.c (pushtag): Don't push into a complete type's scope.
1777
 
1778
2001-06-06  Jason Merrill  
1779
 
1780
        * cp-tree.h (THUNK_GENERATE_WITH_VTABLE_P): Lose.
1781
        (struct lang_decl_flags): Lose generate_with_vtable_p.
1782
        (BV_GENERATE_THUNK_WITH_VTABLE_P): Lose.
1783
        * class.c (copy_virtuals): Adjust.
1784
        * decl2.c (mark_vtable_entries): Adjust.
1785
        * method.c (make_thunk, build_vtable_entry): Adjust.
1786
        * class.c (update_vtable_entry_for_fn): Only look as far as the
1787
        first defining class.
1788
        (build_vtbl_initializer): Put nothing in the slot for a function only
1789
        defined in a lost primary virtual base.
1790
        (add_vcall_offset_vtbl_entries_1): Use the same code for
1791
        the lost primary case and the normal case.
1792
        (dfs_unshared_virtual_bases): Don't lose a non-virtual primary base.
1793
        (get_vfield_offset, get_derived_offset): Lose.
1794
        (dfs_find_final_overrider): Use look_for_overrides_here.
1795
        (get_matching_virtual): New fn.
1796
        * semantics.c (emit_associated_thunks): Check BV_USE_VCALL_INDEX_P,
1797
        not BV_VCALL_INDEX.
1798
        * search.c (look_for_overrides_here): Split out from...
1799
        (look_for_overrides_r): Here.
1800
 
1801
        * class.c (find_final_overrider): Return error_mark_node on error.
1802
 
1803
        * decl2.c (key_method): #if 0 accidental change.
1804
 
1805
2001-06-06  John David Anglin  
1806
 
1807
        * call.c (convert_default_arg): Use INTEGRAL_TYPE_P.
1808
        (build_over_call): Likewise.
1809
        * decl.c (grokparms): Likewise.
1810
        * pt.c (tsubst_decl): Likewise.
1811
        * typeck.c (convert_arguments): Likewise.
1812
 
1813
2001-06-05  Mark Mitchell  
1814
 
1815
        * semantics.c (begin_class_definition): Robustify.
1816
 
1817
        * pt.c (instantiate_decl): Tell the repository code about the
1818
        clones, not the cloned functions.
1819
        * repo.c (repo_template_used): Explicitly instantiate the cloned
1820
        function, not the clones.
1821
 
1822
2001-06-05  Nathan Sidwell  
1823
 
1824
        * call.c (build_user_type_conversion_1): Set ICS_USER_FLAG and
1825
        ICS_BAD_FLAG on created conversion.
1826
        (compare_ics): Break out rank.
1827
 
1828
2001-06-05  Nathan Sidwell  
1829
 
1830
        * decl.c (xref_tag): Remove extraneous %s on dependent name
1831
        lookup warning.
1832
 
1833
2001-06-05  Nathan Sidwell  
1834
 
1835
        * class.c (layout_vtable_decl): Fix off by one error on
1836
        build_index_type.
1837
        (build_vtt): Likewise.
1838
        (build_ctor_vtbl_group): Likewise.
1839
 
1840
2001-06-05  Nathan Sidwell  
1841
 
1842
        * class.c (maybe_indent_hierarchy): New function.
1843
        (dump_class_hierarchy_r): Add flags. Dump extra binfo
1844
        information, if enabled. Use maybe_indent_hierarchy. Adjust
1845
        output format.
1846
        (dump_class_hierarchy): Adjust prototype. Adjust output format.
1847
        (dump_array, dump_vtable, dump_vtt): New functions.
1848
        (finish_struct_1): Adjust hierarchy dumping.
1849
        (initialize_vtable): Call dump_vtable.
1850
        (build_vtt): Call dump_vtt.
1851
        (build_ctor_vtbl_group): Call dump_vtable.
1852
        * decl2.c (flag_dump_class_layout): Remove.
1853
        (cxx_decode_option): Remove dump translation unit
1854
        and dump class hierarchy check. Call dump_switch_p.
1855
        (finish_file): Adjust dumping.
1856
        (dump.c): Only dump base classes if not TDF_SLIM.
1857
        Only dump namespace members if not TDF_SLIM.
1858
        * optimize.c (dump_function): New function.
1859
        (optimize_function): Call dump_function.
1860
        * semantics.c (expand_body): Use dump_enabled_p.
1861
 
1862
2001-06-01  Nathan Sidwell  
1863
 
1864
        PR g++/2936
1865
        Part missed from first commit
1866
        * decl2.c (finish_anon_union): Copy context.
1867
 
1868
2001-05-30  Nathan Sidwell  
1869
 
1870
        PR g++/2936
1871
        * optimize.c (remap_decl): Remap anonymous aggregate members too.
1872
 
1873
2001-05-26  Nathan Sidwell  
1874
 
1875
        PR g++/2823
1876
        * semantics.c (expand_body): Don't optimize thunks.
1877
 
1878
2001-05-25  Sam TH  
1879
 
1880
        * cp-tree.h lex.h: Fix header include guards.
1881
 
1882
2001-05-25  Mark Mitchell 
1883
 
1884
        * decl.c (init_decl_processing): Tweak.
1885
 
1886
2001-05-24  Mark Mitchell  
1887
 
1888
        * decl.c (duplicate_decls): Tidy.
1889
        (init_decl_processing): Always set flag_no_builtin.
1890
 
1891
2001-05-24  Nathan Sidwell  
1892
 
1893
        PR c++/2184
1894
        * decl2.c (do_local_using_decl): Push the decls, even in a
1895
        template.
1896
 
1897
2001-05-22  Mark Mitchell  
1898
 
1899
        * optimize.c (initialize_inlined_parameters): Don't set
1900
        TREE_READONLY for a VAR_DECL taking the place of an inlined
1901
        PARM_DECL.
1902
 
1903
2001-05-22  Jason Merrill  
1904
 
1905
        * class.c, cp-tree.h, rtti.c: Remove com_interface attribute support.
1906
        * tree.c (cp_valid_lang_attribute): Warn about use of com_interface
1907
        attribute.
1908
 
1909
2001-05-22  Joseph S. Myers  
1910
 
1911
        * parse.y: Refer to compound literals as such, not as
1912
        constructor-expressions.
1913
 
1914
2001-05-21  Mark Mitchell  
1915
 
1916
        * call.c (build_op_delete_call): Ignore exception-specifications
1917
        when looking for matching delete operators.
1918
        * init.c (build_new_1): Compute whether or not the allocation
1919
        function used is a placement allocation function or not, and
1920
        communicate this information to build_op_delete_call.
1921
 
1922
2001-05-21  Jason Merrill  
1923
 
1924
        * class.c (build_vtable_entry_ref): Lose vtbl parm.  Fix for new abi.
1925
        (build_vtbl_ref): Adjust.
1926
        (dfs_accumulate_vtbl_inits): Set TREE_CONSTANT on the vtable address.
1927
        * decl2.c (lang_f_options): Remove huge-objects, vtable-thunks.
1928
        Re-add vtable-gc.
1929
        (unsupported_options): Correspondingly.
1930
 
1931
        * decl2.c (maybe_make_one_only): Check flag_weak, not
1932
        supports_one_only().
1933
 
1934
        * cp-tree.def (START_CATCH_STMT): Lose.
1935
        * dump.c (cp_dump_tree): Don't dump it.  Do dump HANDLER_PARMS.
1936
        * tree.c (cp_statement_code_p): Don't case it.
1937
        * semantics.c (cp_expand_stmt): Likewise.
1938
        * cp-tree.h (START_CATCH_TYPE): Lose.
1939
        (HANDLER_TYPE): New.
1940
        * except.c (expand_start_catch_block): Don't start any blocks.
1941
        Return the type.
1942
        (expand_end_catch_block): Don't end any blocks.
1943
        * parse.y (handler): Don't pass anything from finish_handler_parms
1944
        to finish_handler.
1945
        * pt.c (tsubst_expr): Likewise.
1946
        * semantics.c (begin_handler): Call note_level_for_catch here.
1947
        (finish_handler_parms): Don't return anything.
1948
        (genrtl_catch_block, begin_catch_block): Lose.
1949
        (genrtl_handler): Call expand_start_catch here.
1950
 
1951
2001-05-18  Jason Merrill  
1952
 
1953
        * class.c (build_vtable): Set DECL_ASSEMBLER_NAME for vtables here.
1954
        (get_vtable_decl, build_vtt): Not here.
1955
 
1956
2001-05-20  Nathan Sidwell  
1957
 
1958
        PR c++/2781
1959
        * optimize.c (update_cloned_parm): Copy addressability and other
1960
        flags.
1961
 
1962
2001-05-20  Kriang Lerdsuwanakij  
1963
 
1964
        * pt.c (determine_specialization): Ignore artificial functions.
1965
 
1966
2001-05-20  Neil Booth  
1967
 
1968
        * cp-tree.h (struct lang_identifier, C_RID_YYCODE): Update.
1969
        (C_RID_CODE): Remove.
1970
        * lex.c (cxx_init_options): Call set_identifier_size.  Update.
1971
        (init_parse): Don't do it here.
1972
 
1973
2001-05-18  Diego Novillo  
1974
 
1975
        * decl2.c (finish_objects): Use the original SYMBOL_REF from the
1976
        function declaration to avoid stripping the symbol's attributes.
1977
 
1978
2001-05-18  Nathan Sidwell  
1979
 
1980
        * decl.c (pushdecl): Adjust error string.
1981
        (xref_tag): Adjust friend class injection warning. Remove the
1982
        inherited name from the class shadowed scope.
1983
 
1984
2001-05-17  Mark Mitchell  
1985
 
1986
        * except.c (cp_protect_cleanup_actions): New function.
1987
        (init_exception_processing): Don't set protect_cleanup_actions
1988
        here.  Do set lang_protect_cleanup_actions.
1989
 
1990
2001-05-16  Nathan Sidwell  
1991
 
1992
        * spew.c (read_token): Call yyerror on all unexpected tokens.
1993
 
1994
2001-05-16  Nathan Sidwell  
1995
 
1996
        * init.c (member_init_ok_or_else): Take a tree rather than
1997
        string for name.
1998
        (expand_member_init): Adjust.
1999
 
2000
2001-05-14  Nick Clifton  
2001
 
2002
        * decl.c (duplicate_decls): Suppress warning about duplicate
2003
        decls if the first decl is a friend.
2004
 
2005
2001-05-12  Zack Weinberg  
2006
 
2007
        * except.c (choose_personality_routine): Export.  Add
2008
        explanatory comment.  Take an enum languages, not a boolean.
2009
        (initialize_handler_parm): Adjust to match.
2010
        * cp-tree.h: Prototype choose_personality_routine.
2011
        * lex.c (handle_pragma_java_exceptions): New function.
2012
        (init_cp_pragma): Register #pragma GCC java_exceptions.
2013
 
2014
2001-05-12  Neil Booth  
2015
 
2016
        * method.c (build_mangled_C99_name): Remove unused prototype.
2017
 
2018
2001-05-12  Alexandre Oliva  
2019
 
2020
        * cp-tree.h (ptrmemfunc_vbit_where_t): Declare type.
2021
        * typeck.c (get_member_function_from_ptrfunc,
2022
        build_ptrmemfunc, expand_ptrmemfunc_cst): Take
2023
        TARGET_PTRMEMFUNC_VBIT_LOCATION into account.
2024
 
2025
        Reverted Geoff Keating's 2001-05-03's patch.
2026
 
2027
2001-05-11  Ira Ruben   
2028
 
2029
        * cp/cp-tree.h (C_EXP_ORIGINAL_CODE): Delete; declared in c-common.h.
2030
 
2031
2001-05-11  Neil Booth  
2032
 
2033
        * cp-tree.h (finish_label_expr, lookup_label): Delete.
2034
        * parse.y: Update for '&&'; don't issue warning here.
2035
        * semantics.c (finish_label_expr): Delete.
2036
 
2037
2001-05-07  Mark Mitchell  
2038
 
2039
        * splay-tree.h (splay_tree_max): New function.
2040
        (splay_tree_min): Likewise.
2041
 
2042
2001-05-03  Geoffrey Keating  
2043
 
2044
        * cp-tree.h (enum cp_tree_index): Add CPTI_PFN_VFLAG_IDENTIFIER.
2045
        (pfn_vflag_identifier): Define.
2046
        Update comment about layout of pointer functions.
2047
        (build_ptrmemfunc1): Update prototype.
2048
        (expand_ptrmemfunc_cst): Update prototype.
2049
        * decl.c (initialize_predefined_identifiers): Initialize
2050
        pfn_vflag_identifier.
2051
        (build_ptrmemfunc_type): When FUNCTION_BOUNDARY < 16, add
2052
        an extra field to the type.
2053
        * expr.c (cplus_expand_constant): Pass 'flag' between
2054
        expand_ptrmemfunc_cst and build_ptrmemfunc1.
2055
        * typeck.c (get_member_function_from_ptrfunc): When
2056
        FUNCTION_BOUNDARY < 16, look at additional field to determine
2057
        if a pointer-to-member is a real pointer or a vtable offset.
2058
        (build_ptrmemfunc1): Add new parameter to contain extra field.
2059
        (build_ptrmemfunc): Pass the extra field around.
2060
        (expand_ptrmemfunc_cst): Add new parameter to return extra field.
2061
        (pfn_from_ptrmemfunc): Ignore the extra field.
2062
 
2063
2001-05-03  Mark Mitchell  
2064
 
2065
        * cp-tree.h (flag_inline_trees): Update documentation.
2066
        * decl.c (init_decl_processing): Adjust handling of
2067
        flag_inline_functions and flag_inline_trees to support -O3.
2068
        (grokfndecl): Set DECL_INLINE on all functions if that's what
2069
        the user requested.
2070
        (save_function_data): Clear DECL_INLINE in
2071
        current_function_cannot_inline is non-NULL.
2072
        * decl2.c (flag_inline_trees): Update documentation.
2073
 
2074
2001-05-03  Nathan Sidwell  
2075
 
2076
        * dump.c (cp_dump_tree, USING_STMT case): New case.
2077
        * tree.c (cp_statement_code_p): Add USING_STMT.
2078
        * decl2.c (do_using_directive): Add the using directive statement.
2079
 
2080
        * tree.c (walk_tree): Reformat an if block.
2081
 
2082
2001-05-02  Mark Mitchell  
2083
 
2084
        * decl.c (compute_array_index_type): Don't try to do anything with
2085
        the indices when processing a template.
2086
 
2087
2001-05-02  Kaveh R. Ghazi  
2088
 
2089
        * call.c: NULL_PTR -> NULL.
2090
        * class.c: Likewise.
2091
        * cvt.c: Likewise.
2092
        * decl.c: Likewise.
2093
        * decl2.c: Likewise.
2094
        * except.c: Likewise.
2095
        * init.c: Likewise.
2096
        * rtti.c: Likewise.
2097
        * search.c: Likewise.
2098
        * tree.c: Likewise.
2099
        * typeck.c: Likewise.
2100
        * typeck2.c: Likewise.
2101
 
2102
2001-05-02  Mark Mitchell  
2103
 
2104
        * decl2.c (do_using_directive): Revert previous patch.
2105
 
2106
2001-05-01  Nathan Sidwell  
2107
 
2108
        * cp-tree.def (USING_STMT): New statement node.
2109
        * cp-tree.h (USING_STMT_NAMESPACE): New macro.
2110
        * decl2.c (do_using_directive): Add USING_STMT to statement
2111
        tree. Don't emit errors when processing template decl.
2112
        * pt.c (tsubst_expr, USING_STMT case): New case.
2113
        * semantics.c (cp_expand_stmt, USING_STMT case): New case.
2114
 
2115
2001-05-01  Nathan Sidwell  
2116
 
2117
        * call.c (build_new_op): Convert args from reference here.
2118
        (build_conditional_expr): Don't convert here.
2119
 
2120
2001-05-01  Nathan Sidwell  
2121
 
2122
        * spew.c (last_token_id): New static variable.
2123
        (read_token): Set it here.
2124
        (yyerror): Use it here.
2125
 
2126
2001-04-30  Richard Henderson  
2127
 
2128
        * cvt.c: Downcase C_PROMOTING_INTEGER_TYPE_P invocations.
2129
        * decl.c: Likewise.
2130
 
2131
2001-04-30  Mark Mitchell  
2132
 
2133
        * gxxint.texi: Remove.
2134
        * Make-lang.in: Remove all traces of gxxint.texi.
2135
 
2136
2001-04-30  Mark P Mitchell  
2137
 
2138
        * decl2.c (start_static_initialization_or_destruction): Correct
2139
        logic to handle the -fno-use-cxa-atexit case.
2140
 
2141
2001-04-30  Mark Mitchell  
2142
 
2143
        * optimize.c (update_cloned_parm): New function.
2144
        (maybe_clone_body): Use it.  Update the `this' parameter too.
2145
 
2146
2001-04-29  Joseph S. Myers  
2147
 
2148
        * decl2.c (unsupported_options): Add new-abi.
2149
        * lang-options.h: Remove no longer supported options.
2150
 
2151
2001-04-27  Nathan Sidwell  
2152
 
2153
        * except.c (can_convert_eh): Don't check template parms,
2154
        typename types etc.
2155
 
2156
2001-04-27  Nathan Sidwell  
2157
 
2158
        * optimize.c (maybe_clone_body): Copy parameter names and locations.
2159
 
2160
2001-04-27  Nathan Sidwell  
2161
 
2162
        * cp-tree.h (adjust_clone_args): Prototype new function.
2163
        * class.c (adjust_clone_args): New function.
2164
        * decl.c (start_function): Call it for in charge ctors.
2165
 
2166
2001-04-26  Mark Mitchell  
2167
 
2168
        * method.c (use_thunk): Make sure that thunks really are emitted
2169
        when requested.
2170
 
2171
2001-04-26  Nathan Sidwell 
2172
 
2173
        * mangle.c (write_chars): New macro.
2174
        (hwint_to_ascii): New function
2175
        (write_number): Use it.
2176
        (write_integer_cst): Deal with really big numbers.
2177
 
2178
2001-04-25  Mark Mitchell  
2179
 
2180
        * optimize.c (maybe_clone_body): Copy TREE_PUBLIC before emitting
2181
        the clone.
2182
 
2183
2001-04-25  Nathan Sidwell  
2184
 
2185
        * decl.c (grokdeclarator): Set context of namespace scope
2186
        TYPE_DECLS.
2187
 
2188
2001-04-24  Zack Weinberg  
2189
 
2190
        * cp/optimize.c: Include hashtab.h.
2191
        (struct inline_data): Add tree_pruner.
2192
        (expand_call_inline, expand_calls_inline): Use it when calling
2193
        walk_tree.
2194
        (optimize_function): Initialize and free tree_pruner.
2195
 
2196
2001-04-24  Nathan Sidwell 
2197
 
2198
        Lazy __FUNCTION__ generation.
2199
        * cp-tree.def (FUNCTION_NAME): Remove.
2200
        * cp-tree.h (function_name_declared_p): Remove.
2201
        (cp_fname_init): Prototype.
2202
        * decl.c (init_decl_processing): Don't generate __FUNCTION__ et al ids,
2203
        don't call declare_function_name. Call start_fname_decls.
2204
        (cp_make_fname_decl): Adjust parameters. Generate the name. Don't
2205
        clobber the line number.
2206
        (cp_fname_init): New function.
2207
        (start_function): Call start_fname_decls.
2208
        (finish_function): Call finish_fname_decls.
2209
        * lex.c (reswords): Add slots for __FUNCTION__ et al.
2210
        (rid_to_yy): Add mappings for __FUNCTION__ et al.
2211
        * optimize.c (maybe_clone_body): Remove function_name_declared_p.
2212
        * parse.y (VAR_FUNC_NAME): New token.
2213
        (primary): Add VAR_FUNC_NAME.
2214
        * pt.c (tsubst_decl): Adjust a DECL_PRETTY_FUNCTION_P's
2215
        generation.
2216
        (tsubst, FUNCTION_NAME case): Remove.
2217
        (tsubst_copy, FUNCTION_NAME case): Remove.
2218
        (tsubst_expr, DECL_STMT case): Be careful with a
2219
        DECL_PRETTY_FUNCTION_P.
2220
        (instantiate_decl): Remove function_name_declared_p.
2221
        * semantics.c (begin_compound_statement): Don't call
2222
        declare_function_name here.
2223
        (setup_vtbl_ptr). Don't save & restore function_name_declared_p.
2224
        (finish_translation_unit): Call finish_fname_decls.
2225
        (expand_body): Remove function_name_declared_p.
2226
        * typeck2.c (digest_init): Allow any ERROR_MARK.
2227
 
2228
2001-04-24  Nathan Sidwell  
2229
 
2230
        * pt.c (tsubst_decl): Use VOID_TYPE_P.
2231
        * semantics.c: Fix some typos.
2232
 
2233
2001-04-23  Phil Edwards  
2234
 
2235
        * cp/decl2.c (flag_honor_std):  Always initialize to 1.
2236
 
2237
2001-04-22  Kaveh R. Ghazi  
2238
 
2239
        * xref.c (GNU_xref_file): Use concat in lieu of xmalloc/sprintf.
2240
 
2241
2001-04-23  Jason Merrill  
2242
 
2243
        * except.c (build_throw): Wrap the initialization of the exception
2244
        object in a MUST_NOT_THROW_EXPR.
2245
        (do_free_exception): #if 0.
2246
 
2247
2001-04-20  Mark Mitchell  
2248
 
2249
        * cp-tree.h (finish_enum): Change prototype.
2250
        * decl.c (finish_enum): Reorganize.
2251
        * parse.y (structsp): Adjust calls to finish_enum.
2252
 
2253
2001-04-20  Nathan Sidwell  
2254
 
2255
        * tree.c (cp_tree_equal): Adjust final switch formatting. Add
2256
        't' case.
2257
 
2258
2001-04-20  Nathan Sidwell  
2259
 
2260
        * class.c (dfs_unshared_virtual_bases): Add ATTRIBUTE_UNUSED.
2261
        (layout_empty_base): Return at end flag.
2262
        (build_base_field): Likewise.
2263
        (build_base_fields): Likewise.
2264
        (layout_virtual_bases): Don't add 1 to eoc value.
2265
        (end_of_class): Use full size for empty bases.
2266
        (layout_class_type): Clear CLASSNEARLY_EMPTY_P if we appended
2267
        empty bases. Don't add 1 to eoc value. Only add trailing padding
2268
        if we're an empty class with no empty bases.
2269
        (dump_class_hierarchy): Dump size and alignment.
2270
 
2271
2001-04-20  Jakub Jelinek  
2272
 
2273
        * call.c (maybe_handle_ref_bind): Copy ICS_USER_FLAG and
2274
        ICS_BAD_FLAG.
2275
 
2276
2001-04-20  Jakub Jelinek  
2277
 
2278
        * search.c (lookup_field_r): If looking for type and non-TYPE_DECL
2279
        is found, look first if name does not match the structure name.
2280
 
2281
2001-04-19  Mark Mitchell  
2282
 
2283
        * cp-tree.h (DECL_LANGUAGE): Don't assume DECL_LANG_SPECIFIC is
2284
        set.
2285
        (SET_DECL_LANGUAGE): New macro.
2286
        * decl.c (duplicate_decls): Use SET_DECL_LANGUAGE.
2287
        (pushdecl): Likewise.
2288
        (build_library_fn_1): Likewise.
2289
        (build_cp_library_fn): Likewise.
2290
        (grokfndecl): Likewise.
2291
        (grokvardecl): Mark `extern "C"' variables as having C linkage.
2292
        * decl2.c (grokclassfn): Use SET_DECL_LANGUAGE.
2293
        * lex.c (retrofit_lang_decl): Likewise.
2294
        * mangle.c (mangle_decl_string): Don't mangle the names of
2295
        variables declared with C language linkage.
2296
        * semantics.c (finish_member_declaration): Use SET_DECL_LANGUAGE.
2297
 
2298
2001-04-18  John David Anglin  
2299
 
2300
        * semantics.c (simplify_aggr_init_exprs_r): Don't restore
2301
        flag_access_control from uninitialized storage.
2302
 
2303
2001-04-15  Mark Mitchell  
2304
 
2305
        * cp-tree.h (TYPE_PTRMEM_CLASS_TYPE): Improve documentation.
2306
        * mangle.c (write_pointer_to_member_type): Fix mangling of
2307
        pointers to cv-qualified member function types.
2308
 
2309
        * init.c (build_delete): Create a SAVE_EXPR for the address if
2310
        we're going to use it more than once.
2311
 
2312
2001-04-13  Mark Mitchell  
2313
 
2314
        * cp-tree.h (DELTA2_FROM_PTRMEMFUNC): Remove.
2315
        (expand_ptremfunc_cst): Change prototype.
2316
        (delta2_from_ptrmemfunc): Remove.
2317
        * expr.c (cplus_expand_constant): Adjust call to
2318
        expand_ptrmemfunc_cst.
2319
        * typeck.c (build_ptrmemfunc1): Simplify.
2320
        (build_ptrmemfunc): Make sure that casting a PTRMEM_CST still
2321
        results in a constant.
2322
        (expand_ptrmemfunc_cst): Remove idx and delta2 parameters.
2323
        (delta2_from_ptrmemfunc): Remove.
2324
        (pfn_from_ptrmemfunc): Adjust call to expand_ptrmemfunc_cst.
2325
 
2326
2001-04-12  Jason Merrill  
2327
 
2328
        * cp-tree.h (decl_namespace_list): New macro.
2329
        (struct saved_scope): Add decl_ns_list.
2330
        * decl.c (mark_saved_scope): Mark it.
2331
        * decl2.c: Lose static decl_namespace_list.
2332
        (init_decl2): Don't save it.
2333
 
2334
2001-04-12  Kaveh R. Ghazi  
2335
 
2336
        * cp-tree.h (warn_return_type, yylex): Delete redundant
2337
        declarations.
2338
 
2339
        * decl.c (current_class_depth, global_namespace): Likewise.
2340
 
2341
        * decl2.c (current_class_depth, flag_gnu_xref): Likewise
2342
 
2343
        * repo.c (flag_use_repository): Likewise.
2344
 
2345
2001-04-12  Kaveh R. Ghazi  
2346
 
2347
        * cp-tree.h (pedantic, convert, global_bindings_p, insert_block,
2348
        set_block, pushdecl, getdecls, gettags, init_decl_processing,
2349
        maybe_build_cleanup, copy_lang_decl, prep_stmt, lvalue_p,
2350
        lvalue_or_else, print_lang_statistics, comp_target_types,
2351
        unsigned_type, signed_type, signed_or_unsigned_type,
2352
        build_function_call, mark_addressable, incomplete_type_error):
2353
        Delete redundant declarations.
2354
 
2355
2001-04-11  Jason Merrill  
2356
 
2357
        * cp-tree.h (TYPE_LINKAGE_IDENTIFIER): New macro.
2358
        (TYPE_ANONYMOUS_P): New macro.
2359
        (TAGGED_TYPE_P): New macro.
2360
        * decl.c (check_tag_decl): Use TYPE_ANONYMOUS_P.
2361
        (grokfndecl, grokvardecl, grokdeclarator): Likewise.
2362
        * tree.c (no_linkage_helper): Likewise.
2363
        * semantics.c (begin_class_definition): Likewise.
2364
        * pt.c (convert_template_argument): Likewise.
2365
        * lex.c (check_for_missing_semicolon): Likewise.
2366
 
2367
2001-04-12  Nathan Sidwell  
2368
 
2369
        * class.c (dfs_unshared_virtual_bases): New function.
2370
        (mark_primary_bases): Call it.
2371
        (check_bases): Ignore virtual bases when determining
2372
        nearly-emptiness.
2373
 
2374
2001-04-12  Nathan Sidwell  
2375
 
2376
        * method.c (make_thunk): Clear DECL_CLONED_FUNCTION.
2377
 
2378
2001-04-11  Mark Mitchell  
2379
 
2380
        * optimize.c (maybe_clone_body): Copy DECL_NUM_STMTS from the
2381
        cloned function to the clone.
2382
 
2383
2001-04-11  Kaveh R. Ghazi  
2384
 
2385
        * Make-lang.in (cp/semantics.o): Depend on $(EXPR_H).
2386
 
2387
        * semantics.c: Include expr.h.
2388
 
2389
2001-04-11  Nathan Sidwell  
2390
 
2391
        * method.c (implicitly_declare_fn): Commonize code for copy ctor
2392
        and assignment op. Set TREE_USED for parameter.
2393
 
2394
2001-04-10  Mark Mitchell  
2395
 
2396
        * class.c (find_final_overrider_data): Add `candidates'.
2397
        (dfs_find_final_overrider): Don't issue error messages
2398
        prematurely.
2399
        (find_final_overrider): Issue error messages here.
2400
        (build_base_field): Don't warn about amgibuous direct bases here.
2401
        (warn_about_ambiguous_direct_bases): New function.
2402
        (layout_class_type): Use it.
2403
 
2404
2001-04-10  Richard Henderson  
2405
 
2406
        * typeck.c (build_array_ref): Push the array reference inside
2407
        COMPOUND_EXPR and COND_EXPR.
2408
 
2409
2001-04-05  Mark Mitchell  
2410
 
2411
        * cp-tree.h (DECL_THIS_INLINE): Rename to DECL_DECLARED_INLINE_P.
2412
        * decl.c (duplicate_decls): Adjust accordingly.
2413
        (maybe_commonize_var): Likewise.
2414
        (grokfndecl): Likewise.
2415
        (start_function): Likewise.
2416
        (start_method): Likewise.
2417
        * decl2.c (key_method): Likewise.
2418
        (import_export_decl): Likewise.
2419
        * method.c (implicitly_declare_fn): Likewise.
2420
        * optimize.c (maybe_clone_body): Likewise.
2421
 
2422
2001-04-05  Benjamin Kosnik  
2423
 
2424
        * lang-specs.h: Add __DEPRECATED.
2425
 
2426
2001-04-05  J"orn Rennecke 
2427
 
2428
        * search.c (get_dynamic_cast_base_type): When building a new
2429
        constant, set its type to ssizetype.
2430
 
2431
2001-04-04  Jakub Jelinek  
2432
 
2433
        * optimize.c (expand_call_inline): Only add newly inlined statements
2434
        into inlined_stmts.
2435
 
2436
2001-04-03  Mark Mitchell  
2437
 
2438
        * cp-tree.h (OPERATOR_ASSIGN_FORMAT): Remove.
2439
        (OPERATOR_FORMAT): Likewise.
2440
        (OPERATOR_TYPENAME_FORMAT): Likewise.
2441
        * operators.def: Remove old name-mangling information.
2442
        * decl.c (grok_op_properties): Adjust accordingly.
2443
        * lex.c (init_operators): Likewise.
2444
        * rtti.c (get_tinfo_decl): Issue error messages about types that
2445
        have variable size.
2446
 
2447
2001-04-03  Mark Mitchell  
2448
 
2449
        * decl2.c (import_export_decl): Don't call import_export_class
2450
        when processing an inline member function.
2451
        * semantics.c (expand_body): Call import_export_decl before
2452
        emitting inline functions.
2453
 
2454
2001-03-28  Richard Henderson  
2455
 
2456
        IA-64 ABI Exception Handling:
2457
        * cp-tree.def (EH_SPEC_BLOCK): New.
2458
        (MUST_NOT_THROW_EXPR): New.
2459
        * cp-tree.h: Update changed function declarations.
2460
        (CPTI_PUSH_EXCEPTION_IDENTIFIER): Remove.
2461
        (CPTI_CALL_UNEXPECTED): New.
2462
        (struct cp_language_function): Rename x_eh_spec_try_block
2463
        to x_eh_spec_block.
2464
        (EH_SPEC_STMTS, EH_SPEC_RAISES): New.
2465
        * decl.c (current_binding_level): If no current function
2466
        bindings, revert to scope_chain.
2467
        (initialize_predefined_identifiers): Remove __cp_push_exception.
2468
        (store_parm_decls): Use begin_eh_spec_block.
2469
        (finish_function): Use finish_eh_spec_block.
2470
        (mark_lang_function): Update for name changes.
2471
        * decl2.c (finish_file): No mark_all_runtime_matches.
2472
        * dump.c (cp_dump_tree): Handle new tree codes.
2473
        * error.c (dump_expr) [BIND_EXPR]: Fix typo.
2474
        * except.c (catch_language_init, catch_language): Remove.
2475
        (init_exception_processing): Don't set language code.
2476
        Initialize call_unexpected_node, protect_cleanup_actions,
2477
        eh_personality_libfunc, lang_eh_runtime_type.
2478
        (call_eh_info, push_eh_info, get_eh_info, get_eh_value): Remove.
2479
        (get_eh_type, get_eh_caught, get_eh_handlers): Remove.
2480
        (prepare_eh_type): Split out type canonicalizations ...
2481
        (build_eh_type_type): ... from here.
2482
        (build_eh_type_type_ref): Remove.
2483
        (mark_all_runtime_matches): Remove.
2484
        (build_exc_ptr): New.
2485
        (do_begin_catch, do_end_catch): New.
2486
        (do_pop_exception): Remove.
2487
        (build_terminate_handler): Remove.
2488
        (choose_personality_routine): Split out language choice from ...
2489
        (initialize_handler_parm): ... here.
2490
        Use MUST_NOT_THROW_EXPR.
2491
        (expand_start_catch_block): Use do_begin_catch.  Simplify Java
2492
        exception object handling.
2493
        (expand_start_eh_spec, expand_end_eh_spec): Remove.
2494
        (expand_exception_blocks, alloc_eh_object): Remove.
2495
        (begin_eh_spec_block, finish_eh_spec_block): New.
2496
        (do_allocate_exception, do_free_exception): New.
2497
        (expand_throw): Merge into ...
2498
        (build_throw): ... here.  Update for abi.
2499
        * expr.c (cplus_expand_expr): No expand_internal_throw.
2500
        Handle MUST_NOT_THROW_EXPR.
2501
        * pt.c (tsubst_expr): Handle EH_SPEC_BLOCK.
2502
        * semantics.c (*) Update for except.h name changes.
2503
        (genrtl_try_block): No protect_with_terminate.
2504
        (genrtl_eh_spec_block): New.
2505
        (genrtl_handler): Don't emit the goto here.
2506
        (cp_expand_stmt): Handle EH_SPEC_BLOCK.
2507
        (genrtl_finish_function): Don't expand_exception_blocks.
2508
        * tree.c (cp_statement_code_p): Handle EH_SPEC_BLOCK.
2509
 
2510
2001-03-28  Richard Henderson  
2511
 
2512
        * decl.c (struct named_label_list): Rename eh_region to
2513
        in_try_scope, add in_catch_scope.
2514
        (struct binding_level): Rename eh_region to is_try_scope,
2515
        add is_catch_scope.
2516
        (note_level_for_try): Rename from note_level_for_eh.
2517
        (note_level_for_catch): New.
2518
        (poplevel): Copy both is_try_scope and is_catch_scope to
2519
        the named_label_list struct.
2520
        (check_previous_goto_1): Don't check for catch block via
2521
        DECL_ARTIFICIAL; use in_try_scope instead.
2522
        (check_goto): Likewise.
2523
        * cp-tree.h (note_level_for_try, note_level_for_catch): Declare.
2524
        * except.c (expand_start_catch_block): Call note_level_for_catch.
2525
        * semantics.c (begin_compound_stmt): Update for note_level_for_try.
2526
 
2527
2001-03-27  Richard Henderson  
2528
 
2529
        * except.c: Use USING_SJLJ_EXCEPTIONS instead of
2530
        exceptions_via_longjmp.
2531
 
2532
2001-03-27  Phil Edwards  
2533
 
2534
        * pt.c (check_default_tmpl_args):  Make error messages clearer.
2535
 
2536
2001-03-26  Phil Edwards  
2537
 
2538
        * error.c:  Also undefine 'A' macro used for cp_printers definition.
2539
 
2540
2001-03-27  Kaveh R. Ghazi  
2541
 
2542
        * Make-lang.in: Depend on $(SYSTEM_H), not system.h.
2543
 
2544
2001-03-26  Mike Yang 
2545
            Mark Mitchell  
2546
 
2547
        * dump.c (dump_access): New function.
2548
        (cp_dump_tree): Use it.  Dump basetype information for class
2549
        types.
2550
 
2551
2001-03-26  Mark Mitchell  
2552
 
2553
        * Makefile.in (optimize.o): Depend on params.h.
2554
        (duplicate_decls): Copy DECL_NUM_STMTS, not DECL_FRAME_SIZE.
2555
        (init_decl_processing): Set flag_no_inline when doing
2556
        inlining-on-trees.
2557
        * optimize.c: Include params.h.
2558
        (struct inline_data): Improve documentation of FNS.  Add
2559
        FIRST_INLINED_FN, INLINED_STMTS, and CLONING_P.
2560
        (INSNS_PER_STMT): New macro.
2561
        (remap_block): Use CLONING_P.
2562
        (inlinable_function_p): Don't inline big functions.
2563
        (expand_call_inline): Keep track of how much inlining we've done.
2564
        (optimize_function): Set FIRST_INLINED_FN.
2565
        (maybe_clone_body): Set CLONING_P.
2566
        * semantics.c (simplify_aggr_init_exprs_r): Fix typing problems in
2567
        tree nodes.
2568
        (genrtl_finish_function): Clear DECL_DEFER_OUTPUT before calling
2569
        rest_of_compilation.  Clear DECL_RTL for local variables
2570
        afterwards.
2571
        (clear_decl_rtl): New function.
2572
 
2573
2001-03-26  Nathan Sidwell  
2574
 
2575
        Implement DR 209
2576
        * cp-tree.h (skip_type_access_control,
2577
        reset_type_access_control): Prototype.
2578
        * decl.c (grokdeclarator): Access of friends is not checked.
2579
        * parse.y (component_decl_list): Reset type access control.
2580
        * semantics.c (decl_type_access_control): Clear
2581
        current_type_lookups.
2582
        (save_type_access_control): Don't save if not deferring.
2583
        (skip_type_access_control, reset_type_access_control): New
2584
        functions.
2585
        (begin_class_definition): Do type access control for basetypes.
2586
        Start deferred access control.
2587
        (finish_class_definition): Resume immediate access control if
2588
        this is a local class.
2589
 
2590
2001-03-25  Kaveh R. Ghazi  
2591
 
2592
        * class.c (add_method): Use memcpy/memmove, not bcopy.
2593
 
2594
        * decl.c (duplicate_decls): Likewise.
2595
 
2596
2001-03-23  Jakub Jelinek  
2597
 
2598
        * mangle.c (write_discriminator): Use `_0' for discriminator 1,
2599
        not `_'.
2600
 
2601
2001-03-23  Jakub Jelinek  
2602
 
2603
        * decl.c (local_names): Define.
2604
        (push_local_name): New.
2605
        (grok_reference_init): Return init if initializing static reference
2606
        variable with non-constant instead of emitting it.
2607
        Move expand_static_init call to cp_finish_decl.
2608
        (layout_var_decl): Call push_local_name.
2609
        (maybe_commonize_var): Allow inlining functions even if they have
2610
        static local variables, use comdat_linkage for them if flag_weak.
2611
        (check_initializer): Call obscure_complex_init if
2612
        grok_reference_init returned nonzero.
2613
        (save_function_data): Clear x_local_names.
2614
        (pop_cp_function_context): Free x_local_names.
2615
        (mark_inlined_fns): Remove.
2616
        (mark_lang_function): Mark x_local_names.
2617
        (lang_mark_tree): Don't mark DECL_ACCESS for DECL_DISCRIMINATOR_P.
2618
        Mark inlined_fns as tree, remove call to mark_inlined_fns.
2619
        * class.c (alter_access): Ensure DECL_ACCESS is never set if
2620
        DECL_DISCRIMINATOR_P.
2621
        * cp-tree.h (cp_language_function): Add x_local_names.
2622
        (lang_decl_flags): Add discriminator into u2.
2623
        (lang_decl_inlined_fns): Remove.
2624
        (lang_decl): inlined_fns is now a TREE_VEC.
2625
        (DECL_DISCRIMINATOR_P, DECL_DISCRIMINATOR): Define.
2626
        * optimize.c (inlinable_function_p): DECL_INLINED_FNS is now a
2627
        TREE_VEC, not a custom structure.
2628
        (optimize_function): Likewise.
2629
        * mangle.c (discriminator_for_local_entity): Discriminate among
2630
        VAR_DECL local entities.
2631
        * search.c (dfs_access_in_type): If DECL_DISCRIMINATOR_P, DECL_ACCESS
2632
        is not valid.
2633
 
2634
2001-03-22  Bryce McKinlay  
2635
 
2636
        Add support for Java interface method calls.
2637
        * cp-tree.h (struct lang_type): Add java_interface flag.
2638
        (TYPE_JAVA_INTERFACE): New macro.
2639
        * tree.c (cp_valid_lang_attribute): Handle "java_interface" attribute
2640
        by setting TYPE_JAVA_INTERFACE.
2641
        * call.c (java_iface_lookup_fn): New static.
2642
        (build_over_call): If calling a method declared in a
2643
        TYPE_JAVA_INTERFACE, call build_java_interface_fn_ref to generate the
2644
        expression which resolves the function address.
2645
        (build_java_interface_fn_ref): New function.
2646
 
2647
2001-03-22  Richard Henderson  
2648
 
2649
        * Make-lang.in (cp/except.o): Don't depend on insn-flags.h.
2650
        * except.c: Don't include it.
2651
 
2652
2001-03-22  Gerald Pfeifer  
2653
            based on an idea from Joe Buck 
2654
 
2655
        * parse.y (bad_decl, template_arg_list_ignore, arg_list_ignore):
2656
        New nonterminals.
2657
        (data_def, component_decl): Add reductions to bad_decl.
2658
 
2659
2001-03-22  Jakub Jelinek  
2660
 
2661
        * method.c (do_build_assign_ref): Don't use build_modify_expr for
2662
        anonymous aggregates, since they don't have assignment operator
2663
        method.
2664
        * decl.c (fixup_anonymous_aggr): Disallow ctors, dtors and copy
2665
        assignment operators for anonymous structure fields.
2666
 
2667
2001-03-21  Jason Merrill  
2668
 
2669
        * pt.c (instantiate_decl): Abort if we see a member constant
2670
        instantiation that doesn't already have its initializer.
2671
        Downgrade explicit instantiation without definition to pedwarn.
2672
 
2673
        * cp-tree.h (DECL_TINFO_FN_P, SET_DECL_TINFO_FN_P): Remove.
2674
        * class.c (build_vtable_entry): Don't check DECL_TINFO_FN_P.
2675
        (import_export_decl): Check tinfo_decl_p, not DECL_TINFO_FN_P.
2676
 
2677
        * cp-tree.h (CLASSTYPE_VTABLE_NEEDS_WRITING): Remove.
2678
        (pending_vtables): Remove.
2679
        * decl2.c (pending_vtables): Remove.
2680
        (import_export_vtable): Use CLASSTYPE_INTERFACE_ONLY, not
2681
        CLASSTYPE_VTABLE_NEEDS_WRITING.
2682
        (import_export_class): Likewise.
2683
        (init_decl2): Don't mark pending_vtables.
2684
        * lex.c (handle_pragma_vtable): Just sorry.
2685
        * pt.c (instantiate_class_template): Don't mess with
2686
        CLASSTYPE_VTABLE_NEEDS_WRITING.
2687
        (mark_class_instantiated): Likewise.
2688
        * ptree.c (print_lang_type): Don't print it.
2689
        * semantics.c (begin_class_definition): Don't set it.
2690
 
2691
        * pt.c (template_tail): Replace with last_pending_template.
2692
        (maybe_templates, maybe_template_tail): Remove.
2693
        (add_pending_template): Adjust.
2694
        (instantiate_pending_templates): Adjust.
2695
 
2696
        * cp-tree.h (struct saved_scope): Remove lang_stack field.
2697
        (current_lang_stack): Remove.
2698
        * decl.c (maybe_push_to_top_level): Don't initialize it.
2699
        (duplicate_decls): Use current_lang_depth.
2700
        (xref_basetypes): Likewise.
2701
        * class.c (current_lang_depth): New fn.
2702
        (push_lang_context): Use more varray functionality.
2703
        (pop_lang_context): Likewise.
2704
 
2705
        * error.c (GLOBAL_THING): Always use '__'.
2706
 
2707
2001-03-21  Mark Mitchell  
2708
 
2709
        * class.c (build_clone): Clear DECL_ASSEMBLER_NAME.
2710
 
2711
        * mangle.c (mangle_decl_string): Mangle the names of overloaded
2712
        operators, even when they have `extern "C"' linkage.
2713
 
2714
2001-03-19  Mark Mitchell  
2715
 
2716
        * class.c (get_vtable_decl): Use SET_DECL_ASSEMBLER_NAME,
2717
        COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
2718
        where it's not necessary.
2719
        (add_method): Remove optimization involving comparison of
2720
        DECL_ASSEMBLER_NAME.
2721
        (build_vtbl_or_vbase_field): Use SET_DECL_ASSEMBLER_NAME,
2722
        COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
2723
        where it's not necessary.
2724
        (check_methods): Likewise.
2725
        (build_clone): Likewise.
2726
        (built_vtt): Likewise.
2727
        * cp-tree.h (DECL_NEEDED_P): Likewise.
2728
        * decl.c (pushtag): Likewise.
2729
        (duplicate_decls): Likewise.
2730
        (pushdecl): Likewise.
2731
        (builtin_function): Likewise.
2732
        (build_library_fn_1): Set DECL_LANGUAGE for library functions.
2733
        (build_cp_library_fn): Likewise.
2734
        (maybe_commonize_var): Use SET_DECL_ASSEMBLER_NAME,
2735
        COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
2736
        where it's not necessary.
2737
        (make_rtl_for_nonlocal_decl): Likewise.
2738
        (cp_finish_decl): Likewise.
2739
        (grokfndecl): Likewise.
2740
        (grokvardecl): Likewise.
2741
        (grokdeclarator): Likewise.
2742
        (start_function): Likewise.
2743
        (cp_missing_return_ok_p): Likewise.
2744
        * decl2.c (grokclassfn): Likewise.
2745
        (check_classfn): Likewise.
2746
        (finish_static_data_member_decl): Likewise.
2747
        (grokfield): Likewise.
2748
        * error.c (GLOBAL_IORD_P): Remove.
2749
        (dump_global_iord): Improve output.
2750
        (dump_decl): Avoid using DECL_ASSEMBLER_NAME.
2751
        * except.c (nothrow_libfn_p): Summarily reject any function not in
2752
        namespace-scope.
2753
        * init.c (build_java_class_ref): Don't explicitly set
2754
        DECL_ASSEMBLER_NAME after calling mangle_decl.
2755
        * mangle.c (mangle_decl_string): Handle extern "C" functions.
2756
        (mangle_decl): Set the DECL_ASSEMBLER_NAME for the decl.
2757
        * method.c (set_mangled_name_for_decl): Don't explicitly set
2758
        DECL_ASSEMBLER_NAME after calling mangle_decl.
2759
        (make_thunk): Explicitly set the DECL_ASSEMBLER_NAME and
2760
        IDENTIFIER_GLOBAL_VALUE for the thunk.
2761
        * pt.c (set_mangled_name_for_template_decl): Remove.
2762
        (check_explicit_specialization): Don't use it.
2763
        (looup_template_class): Don't set DECL_ASSEMBLER_NAME.
2764
        (tsubst_friend_function): Likewise.
2765
        (tsubst_decl): Likewise.
2766
        (regenerate_decl_from_template): Use COPY_DECL_ASSEMBLER_NAME.
2767
        * rtti.c (get_tinfo_decl): Use SET_DECL_ASSEMBLER_NAME,
2768
        COPY_DECL_ASSEMBLER_NAME, etc.  Don't set DECL_ASSEMBLER_NAME
2769
        where it's not necessary.
2770
        (tinfo_base_init): Likewise.
2771
        (create_real_tinfo_var): Likewise.
2772
        * search.c (looup_field_1): Likewise.
2773
        * semantics.c (finish_named_return_value): Likewise.
2774
        * tree.c (init_tree): Set lang_set_decl_assembler_name.
2775
 
2776
2001-03-15  Gabriel Dos Reis  
2777
 
2778
        Correct semantics restrictions checking in throw-expression.
2779
        * except.c (is_admissible_throw_operand): New function.
2780
        (build_throw): Use it.
2781
 
2782
2001-03-14  Mark Mitchell  
2783
 
2784
        * decl.c (cp_make_fnname_decl): Set DECL_IGNORED_P on __FUNCTION__
2785
        and its ilk.
2786
 
2787
2001-03-14  Mark Mitchell  
2788
 
2789
        * class.c (build_clone): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
2790
        * cp-tree.h (DECL_IN_MEMORY_P): Likewise.
2791
        * decl.c (duplicate_decls): Likewise.
2792
        (builtin_function): Likewise.
2793
        (build_library_fn): Likewise.
2794
        (build_cp_library_fn): Likewise.
2795
        (check_initializer): Likewise.
2796
        (cp_finish_decl): Likewise.
2797
        * decl2.c (grokfield): Likewise.
2798
        (grok_function_init): Remove #if 0'd code.
2799
        (finish_anon_union): Use COPY_DECL_RTL, DECL_RTL_SET_P, etc.
2800
        * friend.c (do_friend): Likewise.
2801
        * init.c (get_temp_regvar): Likewise.
2802
        * method.c (make_thunk): Likewise.
2803
        * pt.c (tsubst_friend_function): Likewise.
2804
        (tsubst_decl): Likewise.
2805
        (regenerate_decl_from_template): Likewise.
2806
        * semantics.c (genrtl_named_return_value): Likewise.
2807
        (expand_body): Likewise.
2808
        (genrtl_finish_function): Likewise.
2809
        * tree.c (cp_tree_equal): Likewise.
2810
 
2811
2001-03-12  Nathan Sidwell  
2812
 
2813
        * call.c (convert_like_real): Add extra semantics to INNER
2814
        parameter. Don't convert to temporary if a user conversion
2815
        gives us an lvalue that we're about to bind to a reference.
2816
        Set INNER to indicate pending reference binding on recursive
2817
        calls.
2818
 
2819
2001-03-10  Neil Booth  
2820
 
2821
        * cp/lex.c: Delete duplicate pending_lang_change.
2822
 
2823
2001-03-10  Neil Booth  
2824
 
2825
        * cp/lex.c (handle_pragma_interface, handle_pragma_implementation):
2826
        Similarly.
2827
        * cp/repo.c (get_base_filename, open_repo_file): Similarly.
2828
        * cp/cp-tree.h: Remove file_name_nondirectory prototype.
2829
 
2830
2001-03-09  Zack Weinberg  
2831
 
2832
        * Make-lang.in: Add dependencies on $(TM_P_H) as appropriate.
2833
 
2834
2001-03-08  Stan Shebs  
2835
 
2836
        * cp-tree.h (set_identifier_local_value): Remove unused decl.
2837
 
2838
2001-03-06  Zack Weinberg  
2839
 
2840
        * spew.c: Remove references to CPP_OSTRING.
2841
 
2842
2001-03-06  Andrew Haley  
2843
 
2844
        * typeck.c (convert_arguments): Check that we have an fndecl.
2845
 
2846
2001-03-05  Andrew Haley  
2847
 
2848
        * typeck.c (convert_arguments): Don't do ellipsis conversion for
2849
        __built_in_constant_p.
2850
 
2851
2001-03-02  Nathan Sidwell  
2852
 
2853
        * typeck.c (build_static_cast): Allow enum to enum conversions
2854
        as per DR 128.
2855
 
2856
2001-03-02  Nathan Sidwell  
2857
 
2858
        * class.c (check_field_decls): Pointers to member do not a
2859
        non-pod struct make, as per DR 148.
2860
 
2861
2001-03-02  Nathan Sidwell  
2862
 
2863
        * call.c (joust): cp_pedwarn when using gnu extension concerning
2864
        worst conversion sequences.
2865
 
2866
2001-03-01  Zack Weinberg  
2867
 
2868
        * decl.c: Replace all uses of 'boolean' with 'bool'.
2869
 
2870
2001-03-01  Zack Weinberg  
2871
 
2872
        * lang-specs.h: Add zero initializer for cpp_spec field to
2873
        all array elements that need one.  Don't put an #ifdef inside
2874
        the initializer list; set a default for CPLUSPLUS_CPP_SPEC and
2875
        use it.
2876
 
2877
2001-03-01  Nathan Sidwell  
2878
 
2879
        Implement using decls inside template functions.
2880
        * decl2.c (validate_nonmember_using_decl): Don't special case
2881
        fake_std_node in the global namespace. Don't reject early when
2882
        processing a template.
2883
        (do_local_using_decl): Add to statement tree. Don't do further
2884
        processing when building a template.
2885
        * pt.c (tsubst_expr, DECL_STMT case): Deal with USING_DECLs.
2886
 
2887
2001-03-01  Nathan Sidwell  
2888
 
2889
        * decl2.c (do_nonmember_using_decl): Don't complain if we find
2890
        same function. Do complain about ambiguating extern "C"
2891
        declarations.
2892
 
2893
2001-02-28  Nathan Sidwell  
2894
 
2895
        Remove floating point and complex type template constant parms.
2896
        * pt.c (convert_nontype_argument): Remove REAL_TYPE and
2897
        COMPLEX_TYPE extensions.
2898
        (invalid_nontype_parm_type_p): Likewise.
2899
 
2900
2001-02-27  Jeffrey Oldham  
2901
 
2902
        * except.c (call_eh_info): Revert "match_function"'s type.
2903
 
2904
2001-02-27  Nathan Sidwell  
2905
 
2906
        Fix ctor vtable vcall offsets.
2907
        * class.c (struct vtbl_init_data_s): Add rtti_binfo member.
2908
        (build_rtt_vtbl_entries): Lose RTTI_BINFO parameter.
2909
        (get_matching_base): Remove.
2910
        (get_original_base): New function.
2911
        (build_vtbl_initializer): Initialize vid.rtti_binfo.
2912
        Use a virtual thunk for a ctor vtable with an index
2913
        (add_vcall_offset_vtbl_entries_1): Check if binfo has lost a
2914
        primary base within a constructor vtable. Only set
2915
        BV_VCALL_INDEX when not a constructor vtable. Adjust vcall offset
2916
        when primary base has been lost.
2917
        * cp-tree.h (BINFO_VIRTUALS): Remove ambiguity from comment.
2918
 
2919
2001-02-26  Jeffrey Oldham  
2920
 
2921
        * call.c (joust): Ensure more_specialized()'s argument length
2922
        parameter has correct value for constructors.
2923
 
2924
2001-02-26  Nathan Sidwell  
2925
 
2926
        * except.c (call_eh_info): Cleanup generation of cp_eh_info struct.
2927
 
2928
        * decl.c (mark_inlined_fns): Prototype.
2929
 
2930
2001-02-22  Mark Mitchell  
2931
 
2932
        * spew.c (yylex): Correct handling of friends.
2933
 
2934
2001-02-22  Mark Mitchell  
2935
 
2936
        * mangle.c (write_encoding): Pass write_function_type the
2937
        FUNCTION_DECL for the function being encoded.
2938
        (write_function_type): Pass it along to write_bare_function_type.
2939
        (write_bare_function_type): Pass it along to write_method_parms.
2940
        (write_method_parms): Don't mangle the compiler-generated
2941
        parameters to a constructor or destructor.
2942
 
2943
2001-02-22  Andreas Jaeger  
2944
 
2945
        * optimize.c: Include toplev.h for
2946
        note_deferral_of_defined_inline_function prototype.
2947
 
2948
2001-02-22  Jakub Jelinek  
2949
 
2950
        * cp-tree.h (struct lang_decl_inlined_fns): New.
2951
        (struct lang_decls): Add inlined_fns.
2952
        (DECL_INLINED_FNS): New macro.
2953
        * optimize.c (struct inline_data): Add inlined_fns.
2954
        (declare_return_variable): Use VARRAY_ACTIVE_SIZE macro.
2955
        (inlinable_function_p): Likewise, fix typo in comment,
2956
        function is not inlinable if it already inlined function currently
2957
        being optimized.
2958
        (expand_call_inline): Add fn to inlined_fns if necessary.
2959
        (optimize_function): Initialize inlined_fns.
2960
        Save inlined_fns into DECL_INLINED_FNS after expanding inlines.
2961
        * decl.c (mark_inlined_fns): New function.
2962
        (lang_mark_tree): Call it.
2963
 
2964
2001-02-21  Jason Merrill  
2965
 
2966
        * cp-tree.h (struct lang_decl_flags): Remove uninlinable flag.
2967
        (DECL_UNINLINABLE): Move to middle-end.
2968
 
2969
        * class.c (clone_function_decl): Set DECL_ABSTRACT on original fn.
2970
        * decl.c (duplicate_decls): Preserve DECL_ABSTRACT.
2971
        * class.c (build_clone): Set DECL_ABSTRACT_ORIGIN for the clone.
2972
        * optimize.c (maybe_clone_body): Set DECL_ABSTRACT_ORIGIN for the
2973
        parms and outer BLOCK.  note_deferral_of_defined_inline_function.
2974
 
2975
        * method.c (implicitly_declare_fn): Don't set DECL_ARTIFICIAL on
2976
        second parm of op=.
2977
 
2978
2001-02-19  Mark Mitchell  
2979
 
2980
        * decl2.c (set_decl_namespace): Allow explicit instantiations in
2981
        any namespace.
2982
 
2983
2001-02-18  Kriang Lerdsuwanakij  
2984
 
2985
        * optimize.c (expand_call_inline): Don't walk subtrees of type
2986
        nodes.
2987
 
2988
2001-02-18  Mark Mitchell  
2989
 
2990
        * class.c (add_vcall_offset_vtbl_entries_1): Only add one entry
2991
        for a destructor.
2992
 
2993
2001-02-18  Jason Merrill  
2994
 
2995
        Do put the VTT parameter in DECL_ARGUMENTS.
2996
        * cp-tree.h (struct cp_language_function): Add x_vtt_parm.
2997
        (current_vtt_parm): New macro.
2998
        (struct lang_decl_flags): Add has_vtt_parm_p, remove vtt_parm.
2999
        (DECL_HAS_VTT_PARM_P): New macro.
3000
        (DECL_VTT_PARM): Remove.
3001
        (FUNCTION_FIRST_USER_PARMTYPE, FUNCTION_FIRST_USER_PARM): New macros.
3002
        * decl.c (duplicate_decls): Only copy the operator code if
3003
        appropriate.
3004
        (start_function): Set current_vtt_parm.
3005
        (lang_mark_tree): Don't mark vtt_parm.
3006
        * decl2.c (maybe_retrofit_in_chrg): Do add the VTT parm to
3007
        DECL_ARGUMENTS.  Set DECL_HAS_VTT_PARM_P.
3008
        * class.c (build_clone): Maybe remove the VTT parm.
3009
        * optimize.c (maybe_clone_body): Set up the VTT parm.
3010
        * pt.c (copy_default_args_to_explicit_spec): Preserve the VTT parm.
3011
        * call.c (build_over_call): Just allow the VTT arg.
3012
        * method.c (make_thunk): Don't set DECL_VTT_PARM.
3013
        (do_build_copy_constructor): Use FUNCTION_FIRST_USER_PARM.
3014
        (synthesize_method): Use FUNCTION_FIRST_USER_PARMTYPE.
3015
        * decl.c (grokdeclarator, copy_args_p, grok_ctor_properties): Likewise.
3016
        * error.c (dump_function_decl): Likewise.
3017
        * call.c (build_user_type_conversion_1, convert_like_real): Abort
3018
        if we try to call a constructor with in-charge or VTT parms.
3019
        * method.c (skip_artificial_parms_for): New fn.
3020
        * call.c (add_function_candidate, build_over_call): Call it.
3021
        * call.c (build_new_method_call): Use current_vtt_parm.
3022
        * init.c (expand_virtual_init): Likewise.
3023
        * class.c (same_signature_p): No longer static.
3024
        * cp-tree.h: Declare it.
3025
        * search.c (look_for_overrides_r): Use it.
3026
 
3027
2001-02-17  Mark Mitchell  
3028
 
3029
        * cp-tree.h (new_abi_rtti_p): Remove.
3030
        (name_mangling_version): Likewise.
3031
        (flag_do_squangling): Likewise.
3032
        * class.c (build_rtti_vtbl_entries): Remove old ABI support.
3033
        * decl.c (grokfndecl): Likewise.
3034
        * decl2.c (name_mangling_version): Remove.
3035
        (flag_do_squangling): Likewise.
3036
        (lang_f_options): Remove `squangle'.
3037
        (unsupported_options): Add `squangle'.
3038
        (cxx_decode_option): Issue a warning about uses of
3039
        -fname-mangling-version.
3040
        (finish_file): Remove old ABI support.
3041
        * pt.c (check_explicit_specialization): Likewise.
3042
        (tsubst_decl): Likewise.
3043
        * rtti.c (init_rtti_processing): Likewise.
3044
        (build_headof): Likewise.
3045
        (get_tinfo_decl_dynamic): Likewise.
3046
        (tinfo_from_decl): Likewise.
3047
        (build_dynamic_cast_1): Likewise.
3048
        (synthesize_tinfo_var): Likewise.
3049
        * init.c (build_new): Allow enumeration types for the array-bounds
3050
        in a direct-new-declarator.
3051
 
3052
        * semantics.c (finish_typeof): Resolve OFFSET_REFs.
3053
 
3054
        * pt.c (check_explicit_specialization): Copy TREE_PRIVATE and
3055
        TREE_PROTECTED from the template being specialized.
3056
 
3057
2001-02-17  Jason Merrill  
3058
 
3059
        * decl2.c (build_artificial_parm): Set TREE_READONLY.
3060
 
3061
        * decl.c (bad_specifiers): Allow throw specs on things with
3062
        pointer-to-function or -member-function type.
3063
        * init.c (build_default_init): Don't use a CONSTRUCTOR to initialize
3064
        a pmf.
3065
 
3066
2001-02-17  Mark Mitchell  
3067
 
3068
        * call.c (check_dtor_name): Handle template names correctly.
3069
 
3070
2001-02-16  Jason Merrill  
3071
 
3072
        * cp-tree.h (DECL_USE_VTT_PARM): Remove.
3073
        * decl2.c (maybe_retrofit_in_chrg): Don't create it.
3074
        * optimize.c (maybe_clone_body): Don't substitute it.
3075
        * call.c (build_new_method_call): Check in_chrg instead.
3076
        * init.c (expand_virtual_init): Likewise.
3077
 
3078
2001-02-16  Gabriel Dos Reis  
3079
 
3080
        * decl.c (check_tag_decl): Make sure a typedef for an anonymous
3081
        class-type introduces at least a type-name.
3082
 
3083
2001-02-16  Jakub Jelinek  
3084
 
3085
        * call.c (convert_like_real): Create a temporary for non-lvalue.
3086
 
3087
2001-02-16  Jeffrey Oldham  
3088
 
3089
        * cp-tree.h: Fix typos in comments.
3090
 
3091
2001-02-16  Jason Merrill  
3092
 
3093
        * optimize.c (remap_block): If we're compiling a clone, pass the
3094
        new block to insert_block.
3095
 
3096
2001-02-16  Mark Mitchell  
3097
 
3098
        * semantics.c (finish_asm_stmt): Robustify.
3099
 
3100
2001-02-15  Mark Mitchell  
3101
 
3102
        * pt.c (push_template_decl_real): Don't remangle the name of a
3103
        class template.
3104
 
3105
2001-02-15  Jim Meyering  
3106
 
3107
        * Make-lang.in (c++.install-common): Depend on installdirs.
3108
        (c++.install-info): Likewise.
3109
        (c++.install-man): Likewise.
3110
 
3111
2001-02-15  Mark Mitchell  
3112
 
3113
        * typeck2.c (build_m_component_ref): Robustify.
3114
 
3115
2001-02-15  Alexandre Oliva  
3116
 
3117
        * friend.c (do_friend): Don't take the nested [template] class
3118
        into account when deciding whether to warn about the friend
3119
        function not referring to a template function.
3120
 
3121
2001-02-14  Jakub Jelinek  
3122
 
3123
        * typeck.c (build_unary_op): Clarify error message.
3124
 
3125
2001-02-08  Aldy Hernandez  
3126
 
3127
        * parse.y (component_constructor_declarator): allow optional
3128
        parentheses around constructor class name.
3129
 
3130
2001-02-14  Nathan Sidwell  
3131
 
3132
        * cp-tree.h (setup_vtbl_ptr): Move prototype to semantics.c
3133
        section.
3134
        * init.c (emit_base_init): Remove incorrect comment about
3135
        virtual bases.
3136
        * method.c (make_thunk): Fix comment alignment.
3137
 
3138
2001-02-14  Nathan Sidwell  
3139
 
3140
        Kill remnants of this is variable.
3141
        * cp-tree.h (flag_this_is_variable): Remove.
3142
        * decl2.c (flag_this_is_variable): Remove.
3143
        * class.c (fixed_type_or_null): Add cdtor parm. Adjust.
3144
        (build_vbase_path): The path is non-static, even in a cdtor.
3145
        (resolves_to_fixed_type_p): Add additional return value.
3146
        * search.c (init_vbase_pointers): Adjust.
3147
        * tree.c (lvalue_p_1): Adjust.
3148
        * typeck.c (mark_addressable): Adjust.
3149
 
3150
2001-02-14  Nathan Sidwell  
3151
 
3152
        * pt.c (unify): Don't check cv quals of array types.
3153
 
3154
2001-02-14  Nathan Sidwell  
3155
 
3156
        * tree.c (cp_build_qualified_type_real): Use CP_TYPE_QUALS to
3157
        check whether we already have the type.
3158
 
3159
2001-02-13  Mark Mitchell  
3160
 
3161
        * cp-tree.h (CLASSTYPE_DESTRUCTORS): Fix typo in comment.
3162
        * call.c (build_op_delete_call): Simplify to remove duplicate
3163
        code.
3164
        * class.c (clone_function_decl): Don't build the deleting variant
3165
        of a non-virtual destructor.
3166
        * decl.c (finish_destructor_body): Don't call delete if this is a
3167
        non-virtual destructor.
3168
        * init.c (build_delete): Explicitly call `operator delete' when
3169
        deleting an object with a non-virtual destructor.
3170
 
3171
2001-02-13  Jason Merrill  
3172
 
3173
        * lang-specs.h: Add more __EXCEPTIONS.
3174
 
3175
2001-02-12  Nathan Sidwell  
3176
 
3177
        * typeck2.c (process_init_constructor): Check
3178
        TREE_HAS_CONSTRUCTOR before issuing missing init warning.
3179
 
3180
2001-02-12  Nathan Sidwell  
3181
 
3182
        * pt.c (maybe_adjust_types_for_deduction, DEDUCE_ORDER case):
3183
        Remove spurious information in comment. Allow further
3184
        adjustments of REFERENCE_TYPE args.
3185
 
3186
2001-02-12  Nathan Sidwell  
3187
 
3188
        * errfn.c (cp_deprecated): Tweak diagnostic text.
3189
        * parse.y (new_initializer): Deprecate initializer lists
3190
        extension.
3191
 
3192
2001-02-12  Mark Mitchell  
3193
 
3194
        Remove old ABI support.
3195
 
3196
2001-02-11  Mark Mitchell  
3197
 
3198
        * decl2.c (flag_vtable_thunks): Always set it to 1.
3199
        (flag_new_abi): Likewise.
3200
        * lang-specs.h: Remove conditional on ENABLE_NEW_GXX_ABI.
3201
 
3202
        * Makefile.in (g++spec.o): Fix typo.
3203
 
3204
2001-02-09  Jason Merrill  
3205
 
3206
        * lang-specs.h: Restore definition of __EXCEPTIONS.
3207
 
3208
2001-02-08  Jason Merrill  
3209
 
3210
        * search.c (shared_member_p): New function.
3211
        (lookup_field_r): Use it.
3212
        * cp-tree.h (SHARED_MEMBER_P): Remove.
3213
 
3214
        * method.c (process_overload_item): Handle template-dependent array
3215
        bounds.
3216
        * pt.c (type_unification_real): If we end up with undeduced nontype
3217
        parms, try again.
3218
 
3219
        * decl.c (lookup_name_real): Tweak warning to refer to decls, not
3220
        types.
3221
 
3222
        * typeck2.c (friendly_abort): Don't say anything if we have
3223
        earlier errors or sorries.
3224
 
3225
        * decl.c (check_tag_decl): Notice attempts to redefine bool and
3226
        wchar_t.  Ignore if in_system_header.
3227
 
3228
        * decl.c (maybe_push_cleanup_level): New fn...
3229
        (start_decl_1): ...split out from here.
3230
        * cvt.c (build_up_reference): Use it.
3231
        * cp-tree.h: Declare it.
3232
 
3233
2001-02-07  Mark Mitchell  
3234
 
3235
        * lang-specs.h: Use CPLUSPLUS_CPP_SPEC for the preprocessor
3236
        spec.
3237
 
3238
2001-02-06  Nathan Sidwell  
3239
 
3240
        * pt.c (lookup_template_class): Make sure it's a primary
3241
        template or template_template_parm when called from the parser.
3242
        (instantiate_template_class): Add assertion.
3243
 
3244
2001-02-05  Alexandre Oliva  
3245
 
3246
        * method.c (build_mangled_name) [old abi]: Protect flush_repeats()
3247
        from error_mark_node.
3248
 
3249
2001-02-05  Nathan Sidwell  
3250
 
3251
        Fix specification and implementation bugs in V3 ABI
3252
        construction vtables.
3253
        * cp-tree.h (flag_dump_class_layout): New flag.
3254
        (BINFO_OVERRIDE_ALONG_VIRTUAL_PATH_P): Remove.
3255
        (BINFO_LOST_PRIMARY_P): New flag.
3256
        (SET_BINFO_NEW_VTABLE_MARKED): Adjust asserts.
3257
        (BINFO_PRIMARY_MARKED_P): Rename to ...
3258
        (BINFO_PRIMARY_P): ... here.
3259
        (binfo_via_virtual): New prototype.
3260
        * decl2.c (flag_dump_class_layout): New flag.
3261
        (cxx_decode_option): Set it. Adjust -fdump-translation-unit to
3262
        use `=' as a file name separator.
3263
        * init.c (dfs_initialize_vtbl_ptrs): Walk into virtual primary
3264
        bases.
3265
        (build_vtbl_address): If this is a virtual primary base, then
3266
        get the vtbl of what it is ultimately primary for.
3267
        * search.c (dfs_skip_nonprimary_vbases_unmarkedp): Adjust
3268
        for BINFO_PRIMARY_P.
3269
        (dfs_skip_nonprimary_vbases_markedp): Likewise.
3270
        (get_shared_vbase_if_not_primary): Likewise.
3271
        (dfs_get_pure_virtuals): Likewise.
3272
        (expand_upcast_fixups): Likewise.
3273
        (fixup_virtual_upcast_offsets): Likewise.
3274
        (dfs_find_vbase_instance): Likewise.
3275
        (find_vbase_instance): Likewise.
3276
        (binfo_from_vbase): Adjust comment to reflect reality.
3277
        (binfo_via_virtual): New function.
3278
        * class.c (VTT_TOP_LEVEL_P, VTT_MARKED_BINFO_P): New macros
3279
        for binfo walking during VTT construction.
3280
        (dfs_mark_primary_bases): Remove.
3281
        (force_canonical_binfo_r): New function.
3282
        (force_canonical_binfo): New function.
3283
        (mark_primary_virtual_base): New function.
3284
        (mark_primary_bases): Walk in inheritance graph order, use
3285
        mark_primary_virtual_base.
3286
        (determine_primary_base): Use some more intermediate variables.
3287
        (dfs_find_final_overrider): Don't check for overriding along a
3288
        virtual path.
3289
        (dfs_modify_vtables): Walk into primary virtual bases too.
3290
        (walk_subobject_offsets): Adjust for BINFO_PRIMARY_P.
3291
        (build_base_fields): Likewise.
3292
        (dfs_set_offset_for_unshared_vbases): Likewise.
3293
        (layout_virtual_bases): Likewise.
3294
        (end_of_class): Likewise.
3295
        (finish_struct_1): Call dump_class_hierarchy, if requested.
3296
        (dfs_get_primary_binfo): Use BINFO_TYPE for binfos.
3297
        (dump_class_hierarchy_r): Add stream parameter. Emit more information.
3298
        (dump_class_hierarchy): Add file parameter. Append to file, if
3299
        required.
3300
        (finish_vtbls): Adjust accumulate_vtbl_inits call.
3301
        Use canonical base for virtual bases.
3302
        (build_vtt): Add more comments. Adjust build_vtt_inits call.
3303
        (build_vtt_inits): Remove VIRTUAL_VTTS_P parm.
3304
        Only set BINFO_VPTR_INDEX on top level. Use VTT_TOP_LEVEL_P,
3305
        VTT_MARKED_BINFO_P for binfo walking. Use canonical vbase for
3306
        virtual VTTs.
3307
        (dfs_build_secondary_vptr_vtt_inits): Extract VTT_TOP_LEVEL_P
3308
        from DATA.  We want virtual primary bases and all bases via virtual.
3309
        Only set BINFO_VPTR_INDEX for top level. Look up from a primary
3310
        virtual base when not a construction vtable.
3311
        (dfs_ctor_vtable_bases_queue_p): New DFS predicate.
3312
        (build_ctor_vtbl_group): Adjust accumulate_vtbl_inits call.
3313
        Use canonical bases when processing virtual bases.
3314
        (accumulate_vtbl_inits): We're interested in any base via a
3315
        virtual path.
3316
        (dfs_accumulate_vtbl_inits): If this is a primary virtual base
3317
        within a construction vtable, determine what is being overridden.
3318
        (build_vtbl_initializer): Add more comments
3319
        (add_vcall_offset_vtbl_entries_1): Adjust comment.
3320
        (build_rtti_vtbl_entries): Check if the base has lost its
3321
        primary.
3322
 
3323
2001-02-05  Mark Mitchell  
3324
 
3325
        * Makefile.in (g++spec.o): Adjust use of DRIVER_DEFINES.
3326
 
3327
2001-02-04  Richard Kenner  
3328
 
3329
        * decl.c (pushdecl): Call abort instead of fatal.
3330
        * except.c (decl_is_java_type): Call fatal_error instead of fatal.
3331
        * init.c (build_new_1): Likewise.
3332
        (build_java_class_ref): Call internal_error and fatal_error, not fatal.
3333
        * decl.c (build_typename_type): hash_table_init now returns void.
3334
        decl.c (init_decl_processing): Make an error non-fatal.
3335
 
3336
2001-02-04  Mark Mitchell  
3337
 
3338
        * cp-tree.h (CLASSTYPE_INTERFACE_UNKNOWN): Fix formatting.
3339
        Document.
3340
        (CLASSTYPE_INTERFACE_KNOWN): Likewise.
3341
        (SET_CLASSTYPE_INTERFACE_UNKNOWN_X): Likewise.
3342
        (SET_CLASSTYPE_INTERFACE_UNKNOWN): Likewise.
3343
        (SET_CLASSTYPE_INTERFACE_KNOWN): Likewise.
3344
        * decl.c (maybe_commonize_var): Use the new name-mangling where
3345
        appropriate.
3346
        * decl2.c (comdat_linkage): Enhance comments.  Make all
3347
        compiler-generated things static, if COMDAT is not available.
3348
        (get_tinfo_decl): Do not make typeinfo objects that belong in the
3349
        library COMDAT.
3350
        (tinfo_base_init): Use the correct mangled name for typeinfo
3351
        strings, and push them into the global scope.
3352
        (typeinfo_in_lib_p): New function.
3353
        (synthesize_tinfo_var): Use it.
3354
        (create_real_tinfo_var): Likewise.
3355
 
3356
2001-02-03  Jakub Jelinek  
3357
 
3358
        * decl.c (push_class_binding): Use context_for_name_lookup instead
3359
        of CP_DECL_CONTEXT.
3360
        * search.c (context_for_name_lookup): Remove static.  Check for NULL
3361
        context in the loop.
3362
        * cp-tree.h (context_for_name_lookup): Add prototype.
3363
 
3364
2001-02-02  Jakub Jelinek  
3365
 
3366
        * cp-tree.h (build_expr_ptr_wrapper, can_free): Remove.
3367
        * tree.c (build_expr_ptr_wrapper, can_free, permanent_obstack):
3368
        Remove.
3369
        * call.c (convert_class_to_reference, build_user_type_conversion_1,
3370
        add_warning): Change build_expr_ptr_wrapper to build_ptr_wrapper.
3371
 
3372
2001-02-02  Mark Mitchell  
3373
 
3374
        * Make-lang.in (g++spec.o): Add DRIVER_DEFINES to the list
3375
        of macros used when compiling g++spec.c.
3376
        * g++spec.c (lang_specific_driver): Link with the shared
3377
        libgcc by default.
3378
 
3379
2001-01-29  Joseph S. Myers  
3380
 
3381
        * decl2.c (build_expr_from_tree), lex.c (make_pointer_declarator,
3382
        make_reference_declarator, make_call_declarator), method.c
3383
        (implicitly_declare_fn), parse.y (namespace_using_decl,
3384
        notype_unqualified_id, expr_or_declarator, new_type_id,
3385
        after_type_declarator, direct_after_type_declarator,
3386
        notype_declarator, complex_notype_declarator,
3387
        complex_direct_notype_declarator, qualified_id,
3388
        notype_qualified_id, overqualified_id, direct_new_declarator,
3389
        absdcl, direct_abstract_declarator, conversion_declarator), pt.c
3390
        (tsubst), semantics.c (begin_constructor_declarator): Use build_nt
3391
        instead of build_parse_node.
3392
 
3393
2001-01-28  Kaveh R. Ghazi  
3394
 
3395
        * cp-tree.h (cp_tree_index): Delete CPTI_MINUS_ONE.
3396
        (minus_one_node): Moved to top level gcc directory.  Renamed
3397
        to integer_minus_one_node.
3398
 
3399
        * init.c (init_init_processing): Don't set minus_one_node.
3400
        (build_vec_init): Use integer_minus_one_node.
3401
 
3402
        * rtti.c (get_tinfo_decl_dynamic): Likewise.
3403
 
3404
2001-01-28  Jakub Jelinek  
3405
 
3406
        * optimize.c (copy_body_r): If MODIFY_EXPR has both arguments
3407
        identical and they would be replaced with constant, remove
3408
        MODIFY_EXPR from the tree.
3409
 
3410
2001-01-27  Kaveh R. Ghazi  
3411
 
3412
        * Make-lang.in: Remove all dependencies on defaults.h.
3413
        * call.c: Don't include defaults.h.
3414
        * decl.c: Likewise.
3415
        * decl2.c: Likewise.
3416
        * except.c: Likewise.
3417
        * pt.c: Likewise.
3418
        * rtti.c: Likewise.
3419
        * tree.c: Likewise.
3420
        * typeck.c: Likewise.
3421
 
3422
2001-01-25  Jakub Jelinek  
3423
 
3424
        * mangle.c (write_mangled_name, write_encoding): Mangle overloaded
3425
        operators even in "C" linkage.
3426
        * method.c (set_mangled_name_for_decl): Likewise.
3427
        * decl.c (grokfndecl): Call set_mangled_name_for_decl even for
3428
        overloaded operators in "C" linkage.
3429
 
3430
2001-01-24  Nathan Sidwell  
3431
 
3432
        * pt.c (tsubst_decl): Remove IN_DECL parameter.
3433
        (tsubst_arg_types): Check parameter is not void.
3434
        (tsubst): Adjust tsubst_decl call.
3435
 
3436
2001-01-24  Nathan Sidwell  
3437
 
3438
        * call.c (add_builtin_candidate): Quote std properly, from
3439
        previous change.
3440
 
3441
2001-01-23  Kriang Lerdsuwanakij  
3442
 
3443
        * pt.c (check_explicit_specialization): Clone constructors and
3444
        destructors.
3445
 
3446
2001-01-23  Nathan Sidwell  
3447
 
3448
        * decl.c (grokdeclarator): Don't presume DECL_LANG_SPECIFIC
3449
        indicates anything special about template depth. Make sure we
3450
        only count the user visible template classes.
3451
 
3452
2001-01-23  Nathan Sidwell  
3453
 
3454
        * call.c (build_conv): Typo in comment.
3455
        (add_builtin_candidate): Add more explanation.
3456
        Remove extra test for ENUMERAL_TYPE in {PRE,POST}INCREMENT_EXPR.
3457
        Allow ENUMERAL_TYPEs for relops and eqops. Add both candidates
3458
        when we have enumeral types.
3459
        (add_builtin_candidates): Add more explanation. Add ENUMERAL_TYPE
3460
        candidates for relops and eqops.
3461
        (joust): Simplify control flow. Allow a non-template user
3462
        function to hide a builtin.
3463
 
3464
2001-01-22  Nathan Sidwell  
3465
 
3466
        * cp-tree.h (unification_kind_t): Add DEDUCE_ORDER.
3467
        (more_specialized): Add deduction parameter.
3468
        * call.c (joust): Adjust more_specialized call.
3469
        * pt.c (UNIFY_ALLOW_OUTER_MORE_CV_QUAL,
3470
        UNIFY_ALLOW_OUTER_LESS_CV_QUAL): New unify flags.
3471
        (get_bindings_order): Remove.
3472
        (get_bindings_real): Add DEDUCE parameter.
3473
        (maybe_adjust_types_for_deduction): Return extra unify flags. Do
3474
        REFERENCE_TYPE jig for DEDUCE_ORDER.
3475
        (type_unification_real): Deal with DEDUCE_ORDER. Use result of
3476
        maybe_adjust_types_for_deduction.
3477
        (more_specialized): Add DEDUCE parameter. Call get_bindings_real
3478
        directly.
3479
        (try_one_overload): Use result of maybe_adjust_types_for_deduction.
3480
        (check_cv_quals_for_unify): Use new unify qualifier flags.
3481
        (unify): Clear new unify qualifier flags.
3482
        (get_bindings_real): Add DEDUCE parameter.
3483
        (get_bindings): Adjust call to get_bindings_real.
3484
        (get_bindings_overload): Likewise.
3485
        (most_specialized_instantiation): Adjust call to
3486
        more_specialized.
3487
 
3488
2001-01-19  Jason Merrill  
3489
 
3490
        * decl2.c (flag_vtable_thunks): Also depend on ENABLE_NEW_GXX_ABI.
3491
 
3492
        * decl.c (init_decl_processing): Just force -fvtable-thunks on if
3493
        -fnew-abi.
3494
 
3495
2001-01-19  Ute Pelkmann  
3496
 
3497
        * decl2.c (arg_assoc_class): Fix double iteration logic.
3498
 
3499
2001-01-19  Jason Merrill  
3500
 
3501
        * init.c (build_delete): Always call convert_force to strip cv-quals.
3502
 
3503
        * decl2.c (flag_new_abi): Depend on ENABLE_NEW_GXX_ABI.
3504
        * lang-specs.h: Default ABI depends on ENABLE_NEW_GXX_ABI.
3505
        * g++spec.c: Don't look at ENABLE_NEW_GXX_ABI.
3506
 
3507
2001-01-19  Nathan Sidwell  
3508
 
3509
        * search.c (get_vbase_1): Count only virtual bases.
3510
 
3511
2001-01-19  Nathan Sidwell  
3512
 
3513
        * class.c (duplicate_tag_error): Robustify flag clearing.
3514
 
3515
2001-01-19  Nathan Sidwell  
3516
 
3517
        * cp-tree.h (lookup_template_class): Add complain parm.
3518
        * decl.c (lookup_namespace_name): Adjust call to
3519
        lookup_template_class.
3520
        (make_typename_type): Likewise.
3521
        * semantics.c (finish_template_type): Likewise.
3522
        * pt.c (lookup_template_class): Add complain parm. Adjust.
3523
        (tsubst_aggr_type): Pass COMPLAIN down to lookup_template_class.
3524
        (tsubst): Likewise.
3525
 
3526
2001-01-19  Nathan Sidwell  
3527
 
3528
        * pt.c (copy_default_args_to_explicit_spec): Preserve
3529
        object's CV quals. Reorganize.
3530
 
3531
2001-01-18  Nathan Sidwell  
3532
 
3533
        * typeck.c (build_modify_expr): Say `initialization' for
3534
        INIT_EXPRs.
3535
        * init.c (build_default_init): Convert to enumeral type, if
3536
        needed.
3537
 
3538
2001-01-18  Jakub Jelinek  
3539
 
3540
        * parse.y (nomods_initdcl0): Properly set things up for
3541
        initdcl0_innards.
3542
 
3543
2001-01-18  Nathan Sidwell  
3544
 
3545
        * pt.c (UNIFY_ALLOW_OUTER_LEVEL): New unify flag.
3546
        (type_unification_real): Set it.
3547
        (unify): Use it.
3548
 
3549
2001-01-18  Nathan Sidwell  
3550
 
3551
        * decl.c (finish_destructor_body): Convert to vbase pointer here.
3552
 
3553
2001-01-18  Nathan Sidwell  
3554
 
3555
        * semantics.c (begin_class_definition): Check we're not inside a
3556
        template parm list.
3557
 
3558
2001-01-18  Nathan Sidwell  
3559
 
3560
        * tree.c (walk_tree, TREE_LIST): Don't walk the TREE_PURPOSE of
3561
        BASELINK_P.
3562
 
3563
2001-01-16  Kriang Lerdsuwanakij  
3564
 
3565
        * typeck.c (build_function_call_real): Call fold on the CALL_EXPR.
3566
        * call.c (build_over_call): Add comment.
3567
 
3568
2001-01-16 Daniel Berlin 
3569
 
3570
        * cvt.c (ocp_convert): Handle vector type conversion
3571
        * typeck2.c (digest_init): Handle vector type initializations
3572
 
3573
2001-01-16  Phil Edwards  
3574
 
3575
        * g++spec.c:  Don't add libraries needlessly if -fsyntax-only
3576
          was given.
3577
 
3578
2001-01-15  Nathan Sidwell  
3579
 
3580
        * pt.c (check_nontype_parm): Rename to ...
3581
        (invalid_nontype_parm_type_p): ... here.
3582
        (process_template_parm): Adjust.
3583
        (convert_template_argument): Adjust.
3584
 
3585
2001-01-15  Nathan Sidwell  
3586
 
3587
        * pt.c (check_nontype_parm): New function.
3588
        (process_template_parm): Use it.
3589
        (convert_template_argument): Use it.
3590
        (convert_nontype_argument, RECORD_TYPE): Assert it's a ptr to
3591
        member.
3592
 
3593
2001-01-14  Jeffrey Oldham  
3594
 
3595
        * tree.c: Add defaults.h
3596
        (cp_valid_lang_attribute): Incorporate SUPPORTS_INIT_PRIORITY.
3597
        * Make-lang.in (cp/tree.o): Add defaults.h.
3598
 
3599
2001-01-13  Joseph S. Myers  
3600
 
3601
        * Make-lang.in (CXX_C_OBJS): Add c-format.o.
3602
 
3603
2001-01-13  Joseph S. Myers  
3604
 
3605
        * g++.1: Change to be ".so man1/gcc.1".
3606
 
3607
2001-01-13  Joseph S. Myers  
3608
 
3609
        * Make-lang.in (c++.info, c++.install-info): Build and install g++
3610
        internals info.
3611
        (c++.uninstall, c++.maintainer-clean): Remove g++ internals info.
3612
        ($(srcdir)/cp/g++int.info): New target.
3613
        * gxxint.texi: Add info directory entry.  Use @@ in email address.
3614
        * .cvsignore: Update.
3615
 
3616
2001-01-12  Nathan Sidwell  
3617
 
3618
        * typeck.c (build_c_cast): Do template processing earlier.
3619
        Always pedwarn on array casts.
3620
 
3621
2001-01-12  Nathan Sidwell  
3622
 
3623
        * friend.c (make_friend_class): Make sure a templated class is
3624
        actually a template.
3625
 
3626
2001-01-11  Nathan Sidwell  
3627
 
3628
        * decl2.c (get_guard): Set linkage from guarded decl.
3629
 
3630
2001-01-11  Nathan Sidwell  
3631
 
3632
        * call.c (convert_default_arg): Check for unprocessed
3633
        DEFAULT_ARG.
3634
        * cp-tree.h (replace_defarg): Move to spew.c.
3635
        (maybe_snarf_defarg, add_defarg_fn, do_pending_defargs): Move to
3636
        spew.c, which is where they really are.
3637
        (done_pending_defargs): Declare.
3638
        (unprocessed_defarg_fn): Declare.
3639
        * decl.c (replace_defarg): Move to spew.c
3640
        * parse.y (structsp): Call done_pending_defargs.
3641
        * spew.c (defarg_fns): Rearrange list structure.
3642
        (defarg_fnsdone): New static variable.
3643
        (defarg_depfns): New static variable.
3644
        (init_spew): Adjust.
3645
        (add_defarg_fn): Store the type in TREE_TYPE.
3646
        (do_pending_defargs): Detect and deal with ordering constraints
3647
        and circularity.
3648
        (done_pending_defargs): New function.
3649
        (unprocessed_defarg_fn): New function.
3650
        (replace_defarg): Moved from decl.c. Robustify. Don't save
3651
        if circularity detected.
3652
 
3653
2001-01-11  Nathan Sidwell  
3654
 
3655
        * pt.c (unify): Check array has a domain, before checking
3656
        whether it is variable sized.
3657
 
3658
2001-01-11  Nathan Sidwell  
3659
 
3660
        * decl.c (grokparms): Unobfuscate and get correct diagnostic for
3661
        parameters with pointers to arrays of unknown bound.
3662
 
3663
2001-01-11  Nathan Sidwell  
3664
 
3665
        * parse.y (template_parm_header, template_spec_header): New
3666
        reductions. Split out from ...
3667
        (template_header): ... here. Use them.
3668
        (template_template_parm): Use template_parm_header.
3669
        * semantics.c (finish_template_template_parm): Add assert.
3670
 
3671
2001-01-10  Mark Mitchell  
3672
 
3673
        * mangle.c (write_builtin_type): Fix thinko.
3674
 
3675
        * pt.c (copy_default_args_to_explicit_spec_1): New function.
3676
        (copy_default_args_to_explicit_spec): Likewise.
3677
        (check_explicit_specialization): Use it.
3678
 
3679
        * class.c (finish_struct_1):  Remove last argument in call to
3680
        make_decl_rtl; use make_function_rtl instead of make_decl_rtl.
3681
        * decl.c (builtin_function): Likewise.
3682
        (build_cp_library_fn): Likewise.
3683
        (check_initializer): Likewise.
3684
        (make_rtl_for_nonlocal_decl): Likewise.
3685
        (cp_finish_decl): Likewise.
3686
        (start_function): Likewise.
3687
        * decl2.c (finish_anon_union): Likewise.
3688
        * friend.c (do_friend): Likewise.
3689
        * init.c (build_java_class_ref): Likewise.
3690
        * method.c (make_thunk): Likewise.
3691
        * pt.c (tsubst_friend_function): Likewise.
3692
        * semantics.c (expand_body): Likewise.
3693
 
3694
2001-01-10  Mark Mitchell  
3695
 
3696
        * cp-tree.h (DECL_CLONED_FUNCTION_P): Avoid wild reads by not
3697
        looking at DECL_CLONED_FUNCTION for non-functions.
3698
 
3699
2001-01-10  Nathan Sidwell  
3700
 
3701
        * error.c (dump_template_parameter): Use parm to determine how
3702
        to print default value.
3703
 
3704
2001-01-10  Nathan Sidwell  
3705
 
3706
        * class.c (duplicate_tag_error): Clear more flags.
3707
 
3708
2001-01-10  Nathan Sidwell  
3709
 
3710
        * call.c (build_new_method_call): Use binfo_for_vbase.
3711
 
3712
2001-01-10  Joseph S. Myers  
3713
 
3714
        * cp-tree.h (flag_cond_mismatch): Don't declare.
3715
        * decl2.c (flag_cond_mismatch): Don't define.
3716
        (lang_f_options): Remove cond-mismatch.
3717
        (unsupported_options): Add cond-mismatch.
3718
 
3719
2001-01-09  Nathan Sidwell  
3720
 
3721
        * class.c (handle_using_decl): Reject using of constructor name
3722
        of sourcing class. Allow injecting of a method with same name as
3723
        nested class. Fixup error messages.
3724
 
3725
2001-01-09  Joseph S. Myers  
3726
 
3727
        * decl2.c (lang_decode_option): Handle -Wformat=2.
3728
 
3729
2001-01-08  Nathan Sidwell  
3730
 
3731
        * cp-tree.h (lang_decl_flags): Rename defined_in_class to
3732
        initialized_in_class.
3733
        (DECL_DEFINED_IN_CLASS_P): Rename to ...
3734
        (DECL_INITIALIZED_IN_CLASS_P): ... here, to reflect true meaning.
3735
        * decl.c (duplicate_decls): Preseve DECL_INITIALIZED_IN_CLASS_P.
3736
        (cp_finish_decl): Adjust for DECL_INITIALIZED_IN_CLASS_P.
3737
        * pt.c (check_default_tmpl_args): Adjust for
3738
        DECL_INITIALIZED_IN_CLASS_P.
3739
        (instantiate_class_template): Likewise.
3740
        (instantiate_decl): Check DECL_INITIALIZED_IN_CLASS_P.
3741
 
3742
        * class.c (finish_struct): Constify saved_filename.
3743
 
3744
2001-01-08  Nathan Sidwell  
3745
 
3746
        * class.c (duplicate_tag_error): Adjust diagnostic.
3747
        (finish_struct): Locally set location to start of struct.
3748
        * decl.c (fixup_anonymous_aggr): Use cp_error_at.
3749
 
3750
2001-01-08  Nathan Sidwell  
3751
 
3752
        * decl.c (struct binding_level): Adjust class_shadowed comments
3753
        to reflect reality.
3754
        (push_class_level_binding): Adjust comments to reflect reality.
3755
        Set IDENTIFIER_CLASS_VALUE when replacing an existing binding.
3756
        Don't set TREE_VALUE on the class_shadowed list.
3757
 
3758
2001-01-07  Alexandre Petit-Bianco  
3759
 
3760
        * decl2.c (acceptable_java_type): Allow references too.
3761
        * init.c (build_java_class_ref): When using the new ABI, search
3762
        `class$' and have it mangled with `mangle_decl.'
3763
        * mangle.c (write_java_integer_type_codes): New function.
3764
        (write_builtin_type): Detect and mangle Java integer and real
3765
        types.
3766
 
3767
2001-01-07  Mark Mitchell  
3768
 
3769
        * decl2.c (grokfield): Don't accept `asm' specifiers for
3770
        non-static data members.
3771
 
3772
2001-01-07  Kaveh R. Ghazi  
3773
 
3774
        * expr.c (cplus_expand_expr): Don't reset `target'.
3775
 
3776
2001-01-07  Neil Booth  
3777
 
3778
        * cp/decl2.c (cxx_post_options): Call cpp_post_options.
3779
 
3780
2001-01-05  Nathan Sidwell  
3781
 
3782
        * parse.y (template_datadef): Check for error_mark_node.
3783
 
3784
2001-01-05  Nathan Sidwell  
3785
 
3786
        * cp-tree.def (DEFAULT_ARG): Make `x' class.
3787
 
3788
2001-01-04  Joseph S. Myers  
3789
 
3790
        * decl.c (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Don't define.
3791
        (record_builtin_type): Make non-static.
3792
        (flag_short_double): Don't declare.
3793
        (init_decl_processing): Remove the creation of many tree nodes now
3794
        in c_common_nodes_and_builtins.
3795
        (build_void_list_node): New function.
3796
        * decl2.c (flag_short_double, flag_short_wchar): Don't define.
3797
        * cp-tree.h (flag_short_wchar): Don't declare.
3798
 
3799
2001-01-04  Mark Mitchell  
3800
 
3801
        * call.c (build_conv): Don't use build1 for USER_CONV.
3802
        * pt.c (tsubst_copy): Or for PREINCREMENT_EXPR and similar nodes.
3803
 
3804
2001-01-03  Joseph S. Myers  
3805
 
3806
        * lex.c (lang_init): Call c_common_lang_init.
3807
 
3808
2001-01-03  Nathan Sidwell  
3809
 
3810
        * search.c (lookup_fnfields_here): Remove.
3811
        (look_for_overrides_r): Use lookup_fnfields_1.
3812
        Ignore functions from using declarations.
3813
 
3814
2001-01-03  Nathan Sidwell  
3815
 
3816
        Implement exceptions specifiers for implicit member functions.
3817
        * cp-tree.h (merge_exceptions_specifiers): Declare new function.
3818
        * method.c (synthesize_exception_spec): New function.
3819
        (locate_dtor, locate_ctor, locate_copy): New functions.
3820
        (implicitly_declare_fn): Generate the exception spec too.
3821
        * search.c (check_final_overrider): Check artificial functions
3822
        too.
3823
        * typeck2.c (merge_exception_specifiers): New function.
3824
 
3825
2001-01-03  Jason Merrill  
3826
 
3827
        * init.c (build_default_init): New fn.
3828
        (perform_member_init): Split out from here.
3829
        (build_new_1): Use it.  Simplify initialization logic.
3830
        (build_vec_init): Take an array, rather than a pointer and maxindex.
3831
        Speed up simple initializations.  Don't clean up if we're assigning.
3832
        * cp-tree.h: Adjust.
3833
        * decl2.c (do_static_initialization): Remove TREE_VEC case.
3834
        * parse.y (new_initializer): Return void_zero_node for ().
3835
        * typeck.c (build_modify_expr): Handle getting a CONSTRUCTOR.
3836
        * typeck2.c (digest_init): Only complain about user-written
3837
        CONSTRUCTORs.
3838
 
3839
2000-12-22  Mike Stump  
3840
 
3841
        * decl2.c: (max_tinst_depth): Increase to 50.
3842
 
3843
2001-01-02  Mark Mitchell  
3844
 
3845
        * class.c (invalidate_class_lookup_cache): Zero the
3846
        previous_class_values.
3847
        * cp-tree.h (TMPL_PARMS_DEPTH): Use TREE_INT_CST_LOW, not
3848
        TREE_INT_CST_HIGH.
3849
        (CLASSTYPE_TEMPLATE_LEVEL): Likewise.
3850
        * decl.c (free_bindings): New variable.
3851
        (push_binding): Don't create a new binding if we have one on the
3852
        free list.
3853
        (pop_binding): Put old bindings on the free list.
3854
        (init_decl_processing): Use size_int, not build_int_2.
3855
        Register free_bindings as a GC root.
3856
        (cp_make_fname_decl): Use size_int, not build_int_2.
3857
        (push_inline_template_parms_recursive): Likewise.
3858
        (end_template_parm_list): Likewise.
3859
        (for_each_template_parm): Do not use walk_tree_without_duplicates.
3860
        (tsubst_template_parms): Use size_int, not build_int_2.
3861
        (tsubst): Likewise.
3862
        * rtti.c (get_vmi_pseudo_type_info): Likewise.
3863
 
3864
2001-01-02  Richard Henderson  
3865
 
3866
        * parse.y (asm): Set ASM_INPUT_P.
3867
 
3868
2001-01-02  Jason Merrill  
3869
 
3870
        * tree.c (cp_valid_lang_attribute): Don't set CLASSTYPE_COM_INTERFACE
3871
        for v3 ABI.
3872
 
3873
        * typeck.c (cp_truthvalue_conversion): New fn.
3874
        * cvt.c (ocp_convert): Use it.
3875
 
3876
        * cp-tree.h: Lose c-common.c decls.
3877
 
3878
        * typeck.c (build_unary_op): Restore old &a.f diagnostic code.
3879
        * cvt.c (convert_to_void): Use type_unknown_p.
3880
 
3881
        * typeck.c (strip_all_pointer_quals): Also strip quals from
3882
        pointer-to-member types.
3883
 
3884
        * Make-lang.in (cp/TAGS): Use --no-globals.  Ignore parse.c, and treat
3885
        parse.y as C.
3886
 
3887
        * call.c (build_new_method_call): Do evaluate the object parameter
3888
        when accessing a static member.
3889
        * typeck.c (build_component_ref): Likewise.
3890
 
3891
2001-01-02  Andreas Jaeger  
3892
 
3893
        * decl.c (cp_missing_noreturn_ok_p): New.
3894
        (init_decl_processing): Set lang_missing_noreturn_ok_p.
3895
 
3896
 
3897
Copyright (C) 2001 Free Software Foundation, Inc.
3898
 
3899
Copying and distribution of this file, with or without modification,
3900
are permitted in any medium without royalty provided the copyright
3901
notice and this notice are preserved.

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.