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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [cp/] [ChangeLog-1997] - Blame information for rev 710

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 710 jeremybenn
Mon Dec 22 11:36:27 1997  Kaveh R. Ghazi  
2
 
3
        * call.c (add_builtin_candidate): Add default case in enumeration
4
        switch.
5
        (build_new_op): Likewise.
6
        (convert_like): Likewise.
7
        * cvt.c (build_expr_type_conversion): Likewise.
8
        * tree.c (real_lvalue_p): Likewise.
9
        (lvalue_p): Likewise.
10
        (cp_tree_equal): Likewise.
11
        * typeck.c (comptypes): Likewise.
12
        (build_component_ref): Likewise.
13
        (build_function_call_real): Likewise.
14
        (build_binary_op_nodefault): Likewise.
15
        (build_unary_op): Likewise.
16
        (build_modify_expr): Likewise.
17
        * typeck2.c (initializer_constant_valid_p): Likewise.
18
 
19
Sun Dec 21 15:59:00 1997  Nick Clifton  
20
 
21
        * decl2.c (lang_decode_option): Add support for -Wunknown-pragmas.
22
 
23
Thu Dec 18 14:51:50 1997  Mark Mitchell  
24
 
25
        * pt.c (coerce_template_parms): Make sure to digest_init if
26
        possible.
27
 
28
        * decl.c (duplicate_decls): Make the newdecl virtual if the
29
        olddecl was, just as is done with other attributes of olddecl.
30
 
31
Thu Dec 18 14:43:19 1997  Jason Merrill  
32
 
33
        * typeck.c (unary_complex_lvalue): Ignore op0 when taking the
34
        address of an OFFSET_REF.
35
 
36
        * cp-tree.def: Add AGGR_INIT_EXPR.
37
        * error.c, tree.c, typeck.c: Replace uses of NEW_EXPR with
38
        AGGR_INIT_EXPR where appropriate.
39
        * expr.c (cplus_expand_expr): Likewise.  Simplify.
40
 
41
        * decl2.c (finish_file): Remove call to register_exception_table.
42
 
43
Wed Dec 17 17:08:52 1997  Benjamin Kosnik  
44
 
45
        * pt.c (instantiate_class_template): Don't do injection when
46
        processing_template_decl is true, as pollutes current_binding_level
47
        for base classes.
48
 
49
Wed Dec 17 21:17:39 1997  Peter Schmid  
50
 
51
        * pt.c (maybe_fold_nontype_arg): Add prototype.
52
 
53
Tue Dec 16 10:31:20 1997  Jason Merrill  
54
 
55
        * tree.c (mapcar): Handle TRY_CATCH_EXPR et al.
56
        * error.c (dump_expr): Likewise.
57
 
58
Mon Dec 15 12:22:04 1997  Jason Merrill  
59
 
60
        * typeck.c (build_function_call_real): Remove "inline called before
61
        definition" pedwarn.
62
 
63
        * pt.c (coerce_template_parms): Use maybe_fold_nontype_arg.
64
 
65
Sun Dec 14 22:34:20 1997  Jason Merrill  
66
 
67
        * cvt.c (cp_convert_to_pointer): Fix base conversion of pm's.
68
 
69
        * pt.c (type_unification_real): Change __null to type void* with
70
        a warning.
71
 
72
Sun Dec 14 20:38:35 1997  Mark Mitchell  
73
 
74
        * call.c (implicit_conversion): Don't call
75
        build_user_type_conversion_1 with a NULL expr, since it will
76
        crash.
77
 
78
        * pt.c (unify): Don't try to unify array bounds if either array is
79
        unbounded.
80
 
81
Fri Dec 12 16:09:14 1997  Jason Merrill  
82
 
83
        * errfn.c (cp_pedwarn, cp_pedwarn_at, cp_error_at, cp_warning_at):
84
        Replace extern decls with casts.
85
 
86
        * decl.c (expand_start_early_try_stmts): Don't mess with a sequence.
87
        Update last_parm_cleanup_insn.
88
        (store_after_parms): Remove.
89
        * cp-tree.h: Adjust.
90
 
91
Thu Dec 11 22:18:37 1997  Jason Merrill  
92
 
93
        * decl2.c (comdat_linkage): Also set DECL_COMDAT.
94
        (finish_file): Check DECL_COMDAT instead of weak|one_only.
95
        (import_export_vtable): Use make_decl_one_only instead of
96
        comdat_linkage for win32 tweak.
97
        (import_export_decl): Likewise.
98
        * pt.c (mark_decl_instantiated): Likewise.
99
 
100
        * decl2.c (finish_file): Lose handling of templates in pending_statics.
101
 
102
Thu Dec 11 21:12:09 1997  Jason Merrill  
103
 
104
        * decl2.c (finish_file): Lose call to expand_builtin_throw.
105
        * except.c (expand_builtin_throw): Remove.
106
        * cp-tree.h: Remove ptr_ptr_type_node.
107
        * decl.c: Likewise.
108
 
109
Thu Dec 11 20:43:33 1997  Teemu Torma  
110
 
111
        * decl.c (ptr_ptr_type_node): Define.
112
        (init_decl_processing): Initialize it.
113
        * cp-tree.h: Declare it.
114
        * exception.cc (__cp_exception_info): Use __get_eh_info.
115
        (__cp_push_exception): Likewise.
116
        (__cp_pop_exception): Likewise.
117
 
118
        From Scott Snyder :
119
        * except.c (expand_builtin_throw): Use get_saved_pc_ref instead of
120
        saved_pc.
121
        (init_exception_processing): Removed saved_pc initialization.
122
 
123
Wed Dec 10 11:04:45 1997  Jason Merrill  
124
 
125
        * pt.c (instantiate_decl): Defer all templates but inline functions.
126
 
127
Mon Dec  8 23:17:13 1997  Jason Merrill  
128
 
129
        * init.c (expand_vec_init): Don't fold a list of parameters.
130
 
131
        * decl.c (copy_args_p): Handle copy elision for types with virtual
132
        bases.
133
        * call.c (build_over_call): Likewise.
134
 
135
Sun Dec  7 22:38:12 1997  Mark Mitchell  
136
 
137
        * pt.c (lookup_template_function): Copy the template arguments,
138
        not just the list containing them, to the permanent obstack.
139
 
140
Sun Dec  7 15:53:06 1997  Jason Merrill  
141
 
142
        * except.c (expand_start_catch_block): suspend_momentary for the
143
        terminate handler.
144
 
145
        * error.c (dump_decl): Handle LOOKUP_EXPR.
146
 
147
Sun Dec  7 15:45:07 1997  Mark Mitchell  
148
 
149
        * rtti.c (build_dynamic_cast): Copy the cast-to type to the
150
        permanent obstack if we are processing a template decl.
151
        * typeck.c (build_static_cast): Likewise.
152
        (build_const_cast): Likewise.
153
        (build_reinterpret_cast): Likewise.
154
 
155
        * pt.c (coerce_template_parms): Coerce some expressions, even
156
        when processing_template_decl.
157
 
158
Sun Dec  7 01:46:33 1997  Bruno Haible  
159
 
160
        * typeck.c (build_binary_op_nodefault, pointer_diff): Symmetric
161
        handling of pointer difference expressions.
162
 
163
        * typeck.c (comp_target_types): Comparison of function/method types
164
        is independent of nptrs.
165
 
166
Sun Dec  7 01:40:27 1997  Mark Mitchell  
167
 
168
        * pt.c (tsubst): Avoid creating pointer to reference and
169
        reference to reference types.
170
 
171
Sat Dec  6 01:29:37 1997  Jason Merrill  
172
 
173
        * parse.y (do_id): New nonterminal.
174
        (template_id): Use it.
175
 
176
Fri Dec  5 01:17:34 1997  Jason Merrill  
177
 
178
        * parse.y (template_id): do_identifier for PFUNCNAMEs, too.
179
        * spew.c (yylex): Don't do_identifier here.
180
        * decl2.c (build_expr_from_tree): Revert last change.
181
 
182
        * decl2.c (build_expr_from_tree): Expand the name for a method call.
183
        * parse.y (object_template_id): Don't try to take the DECL_NAME.
184
 
185
Wed Dec  3 20:02:39 1997  Jason Merrill  
186
 
187
        * init.c (build_new): Use a TARGET_EXPR instead of SAVE_EXPR for
188
        alloc_expr.
189
        * call.c (build_op_delete_call): Adjust.
190
 
191
        * except.c (expand_end_catch_block): Lose rethrow region.
192
        (expand_start_catch_block): Likewise.
193
        (expand_end_catch_block): Don't expand_leftover_cleanups.
194
 
195
Wed Dec  3 13:24:04 1997  Benjamin Kosnik  
196
 
197
        * pt.c (tsubst): Remove tree_cons call (places redundant info into
198
        DECL_TEMPLATE_INSTANTIATION).
199
 
200
Wed Dec  3 11:44:52 1997  Jason Merrill  
201
 
202
        * tree.c (is_overloaded_fn): Handle getting a fn template.
203
        (really_overloaded_fn): Likewise.
204
        * error.c (dump_decl): Handle TEMPLATE_ID_EXPRs better.
205
        * pt.c (check_explicit_specialization): Tweak.
206
        (determine_explicit_specialization): Tweak.
207
 
208
        * tree.c, cp-tree.h (get_target_expr): New fn.
209
 
210
Wed Dec  3 08:47:27 1997  Paul Eggert  
211
 
212
        * pt.c (check_explicit_specialization): Fix misspelling in
213
        diagnostic: `preceeded'.
214
        * typeck.c (get_delta_difference): Fix misspelling in diagnostic:
215
        `conversiona'.
216
 
217
1997-12-02  Mark Mitchell  
218
 
219
        * pt.c (determine_explicit_specialization): Avoid an internal
220
        error for bad specializations.
221
 
222
        * method.c (build_overload_value): Handle SCOPE_REF.
223
 
224
Tue Dec  2 19:18:50 1997  Mike Stump  
225
 
226
        * class.c (prepare_fresh_vtable): Enable even more complex MI
227
        vtable names.
228
 
229
Tue Dec  2 01:37:19 1997  Jason Merrill  
230
 
231
        * exception.cc (__check_eh_spec): Optimize a bit.
232
 
233
        * exception.cc (__cp_pop_exception): Lose handler arg.
234
        * except.c (do_pop_exception): Likewise.
235
        (push_eh_cleanup): Let the cleanup mechanism supply the handler.
236
        (expand_end_catch_block): Likewise.
237
 
238
Fri Nov 28 01:58:14 1997  Jason Merrill  
239
 
240
        * pt.c (check_explicit_specialization): Complain about using a
241
        template-id for a non-specialization.
242
 
243
Fri Nov 28 12:35:19 1997  Scott Christley  
244
 
245
        * repo.c: Prototype rindex only if needed.
246
        * xref.c: Likewise.
247
 
248
Fri Nov 28 01:56:35 1997  Bruno Haible  
249
 
250
        * error.c (dump_decl): Handle TEMPLATE_ID_EXPR.
251
 
252
Thu Nov 27 00:59:46 1997  Jason Merrill  
253
 
254
        * typeck.c (build_const_cast): Handle references here instead of
255
        handing off to convert_to_reference.
256
 
257
        * except.c: Lose Unexpected, SetTerminate, SetUnexpected,
258
        TerminateFunctionCall.
259
        (init_exception_processing): Likewise.  Terminate et al are now
260
        the fns, not ADDR_EXPRs.
261
        (various): Lose redundant assemble_external calls.
262
        (do_unwind): s/BuiltinReturnAddress/builtin_return_address_fndecl/.
263
 
264
        * cp-tree.h (struct lang_decl_flags): Add comdat.
265
        (DECL_COMDAT): New macro.
266
        * decl.c (duplicate_decls): Propagate it.
267
        (cp_finish_decl): Handle it.
268
        * decl2.c (import_export_decl): Just set DECL_COMDAT on VAR_DECLs.
269
 
270
        * class.c: Remove static pending_hard_virtuals.
271
        (add_virtual_function): Take pointers to pending_virtuals
272
        and pending_hard_virtuals.
273
        (finish_struct_1): Pass them.  Declare pending_hard_virtuals.
274
 
275
Wed Nov 26 20:28:49 1997  Jason Merrill  
276
 
277
        * decl2.c (import_export_vtable): If we support one_only but not
278
        weak symbols, mark instantiated template vtables one_only.
279
        (import_export_decl): Likewise for tinfo functions.
280
        (finish_vtable_vardecl): Also write out vtables from explicitly
281
        instantiated template classes.
282
        * pt.c (mark_class_instantiated): Revert last change.
283
 
284
        * except.c (expand_throw): Call mark_used on the destructor.
285
 
286
Wed Nov 26 15:13:48 1997  Jeffrey A Law  (law@cygnus.com)
287
 
288
        * lex.c (lang_init): Enable flag_exceptions by default if no
289
        command line switch was specified.
290
 
291
1997-11-26  Mark Mitchell  
292
 
293
        * pt.c (unify): Handle `void' template parameters in
294
        specializations.
295
 
296
Wed Nov 26 01:11:24 1997  Jason Merrill  
297
 
298
        * rtti.c (build_dynamic_cast): Handle template case here.
299
        (build_dynamic_cast_1): Not here.
300
 
301
        * typeck2.c (digest_init): Make copies where appropriate.
302
 
303
        * decl2.c (delete_sanity): resolve_offset_ref.
304
 
305
        * except.c: Call terminate without caching so many bits.
306
 
307
        * except.c (expand_start_catch_block): Fix catching a reference
308
        to pointer.
309
 
310
Tue Nov 25 11:28:21 1997  Jason Merrill  
311
 
312
        * init.c (build_new): Copy size to the saveable obstack.
313
 
314
        * init.c (build_new): Stick a CLEANUP_POINT_EXPR inside the
315
        TRY_CATCH_EXPR for now.
316
 
317
Mon Nov 24 12:15:55 1997  Jason Merrill  
318
 
319
        * typeck.c (mark_addressable): Don't assume a FUNCTION_DECL
320
        has DECL_LANG_SPECIFIC.
321
 
322
        * exception.cc (struct cp_eh_info): Add handlers field.
323
        (__cp_push_exception): Initialize it.
324
        (__cp_pop_exception): Decrement it.  Don't pop unless it's 0.
325
        (__throw_bad_exception): Remove.
326
        * except.c (call_eh_info): Add handlers field.
327
        (get_eh_handlers): New fn.
328
        (push_eh_cleanup): Increment handlers.
329
 
330
Fri Nov 21 12:22:07 1997  Jason Merrill  
331
 
332
        * except.c (expand_start_eh_spec): Use the try/catch code.
333
        (expand_end_eh_spec): Likewise.  Call __check_eh_spec instead of
334
        doing everything inline.
335
        (init_exception_processing): throw_type_match now takes
336
        const void pointers.
337
        * exception.cc (__check_eh_spec): New fn.
338
        * inc/exception: Neither terminate nor unexpected return.
339
        * decl.c: Make const_ptr_type_node public.
340
        * tinfo2.cc (__throw_type_match_rtti): Take the typeinfos constly.
341
 
342
        * except.c (expand_start_catch_block): We only need the rethrow
343
        region for non-sjlj exceptions.
344
        (expand_end_catch_block): Likewise.  Use outer_context_label_stack.
345
 
346
Thu Nov 20 14:40:17 1997  Jason Merrill  
347
 
348
        * Make-lang.in (CXX_LIB2FUNCS): Add new op new and op delete objs.
349
        (various.o): Likewise.
350
        * inc/new: Add placement deletes.  Add throw specs for default new.
351
        * new.cc (set_new_handler): Move here from libgcc2.
352
        * new1.cc (new (nothrow)): Catch a bad_alloc thrown from the handler.
353
        (new): Move from libgcc2.  Throw bad_alloc.
354
        * new2.cc: Move the rest of the op news and op deletes from libgcc2.
355
        * decl.c (init_decl_processing): Update exception specs on new and
356
        delete.
357
 
358
        * method.c (build_decl_overload_real): Don't mess with global
359
        placement delete.
360
 
361
        * init.c (build_new): Check for null throw spec, not nothrow_t.
362
 
363
        * decl.c (duplicate_decls): Don't complain about different exceptions
364
        from an internal declaration.
365
 
366
        * call.c (build_op_delete_call): Fix check for member fns again.
367
 
368
        * decl2.c (import_export_decl): Interface hackery affects
369
        virtual synthesized methods.
370
 
371
Wed Nov 19 18:24:14 1997  Jason Merrill  
372
 
373
        * decl.c (start_decl): Don't just complain about a mismatched
374
        scope, fix it.
375
 
376
        * decl.c (make_implicit_typename): Handle case where t is not
377
        actually from context.
378
        * tree.c (get_type_decl): Lose identifier case.
379
        * spew.c (yylex): Lose useless call to identifier_typedecl_value.
380
        * parse.y (nonnested_type): Just use lookup_name.
381
        (complex_type_name): Just use IDENTIFIER_GLOBAL_VALUE.
382
 
383
Wed Nov 19 11:45:07 1997  Michael Tiemann  
384
 
385
        * error.c (dump_function_name): Test DECL_LANG_SPECIFIC in case
386
        T was built in C language context (for example, by
387
        output_func_start_profiler).
388
 
389
Wed Nov 19 10:39:27 1997  Jason Merrill  
390
 
391
        * decl.c (make_implicit_typename): New fn.
392
        (lookup_name_real): Use it.  Use current_class_type as the context.
393
 
394
Mon Nov 17 23:42:03 1997  Bruno Haible  
395
 
396
        * pt.c (do_poplevel): Don't prohibit jumps into this contour.
397
 
398
Mon Nov 17 02:01:28 1997  Jason Merrill  
399
 
400
        * friend.c (do_friend): Warn about non-template friends in templates.
401
 
402
        * call.c (build_op_delete_call): Fix handling of inherited delete.
403
 
404
        * search.c (dfs_record_inheritance): Ignore template type parms.
405
 
406
Sat Nov 15 00:30:51 1997  Jason Merrill  
407
 
408
        * call.c (build_new_op): Fix copy error.
409
        (build_op_new_call): New fn.
410
        (build_op_delete_call): New fn.
411
        * cp-tree.h: Declare them.
412
        * init.c (build_new): Use them.  Support placement delete.
413
        (build_x_delete): Use build_op_delete_call.
414
        (build_delete): Likewise.
415
        * decl2.c (delete_sanity): Likewise.
416
        (coerce_delete_type): Don't complain about placement delete.
417
 
418
Thu Nov 13 01:52:36 1997  Jason Merrill  
419
 
420
        * call.c (build_new_function_call): Remove unused 'obj' parm.
421
        * cp-tree.h, typeck.c: Adjust.
422
 
423
        * init.c (build_new): Make the cleanup last longer.
424
        (expand_vec_init): Call do_pending_stack_adjust.
425
 
426
Wed Nov 12 11:04:33 1997  Jason Merrill  
427
 
428
        * pt.c (do_type_instantiation): Fix typo.
429
        (mark_class_instantiated): If we support one_only but not weak
430
        symbols, don't mark this as known.
431
 
432
        * init.c (build_new): Handle vec delete in EH cleanup.
433
 
434
Wed Nov 12 08:11:55 1997  Benjamin Kosnik  
435
 
436
        * call.c (build_method_call): Call complete_type before checking
437
        for destructor.
438
 
439
Sun Nov  9 01:29:55 1997  Jim Wilson  (wilson@cygnus.com)
440
 
441
        * decl.c (add_block_current_level): Delete.
442
        * init.c (build_vec_delete_1): Delete build_block and
443
        add_block_current_level calls.
444
 
445
Wed Nov 12 00:48:16 1997  Jason Merrill  
446
 
447
        * init.c (build_new): Handle freeing allocated memory when the
448
        constructor throws.
449
 
450
        * call.c (build_new_method_call): Fix flags arg.
451
 
452
        * pt.c (do_type_instantiation): Don't try to instantiate
453
        member templates.
454
        (mark_decl_instantiated): If we support one_only but not
455
        weak symbols, mark this one_only.
456
        * decl2.c (import_export_vtable): Don't defer handling of vtables
457
        if MULTIPLE_SYMBOL_SPACES.
458
 
459
Tue Nov 11 12:02:12 1997  Jason Merrill  
460
 
461
        * except.c (expand_end_catch_block): Lose call to __sjpopnthrow.
462
 
463
Tue Nov 11 02:53:44 1997  Jason Merrill  
464
 
465
        * except.c (do_pop_exception): Return a value.
466
 
467
Mon Nov 10 20:25:31 1997  Jason Merrill  
468
 
469
        * call.c (build_new_method_call): Handle getting a
470
        TEMPLATE_ID_EXPR around a TEMPLATE_DECL.  Don't look for a field
471
        if we got template parms.
472
        * typeck.c (build_x_function_call): Remember the TEMPLATE_ID_EXPR,
473
        not just the args.
474
        * decl2.c (build_expr_from_tree): Tweak last change.
475
        * pt.c (tsubst_copy): Use get_first_fn instead of TREE_VALUE.
476
        (maybe_fold_nontype_arg): Split out from tsubst_copy.
477
        * tree.c (get_first_fn): Just return a TEMPLATE_ID_EXPR.
478
 
479
Mon Nov 10 20:08:38 1997  Kriang Lerdsuwanakij  
480
 
481
        * pt.c (tsubst_copy): Handle explicit template arguments in
482
        function calls.
483
        * typeck.c (build_x_function_call): Likewise.
484
        * decl2.c (build_expr_from_tree): Lookup function name if it
485
        hasn't been done.
486
 
487
        * pt.c (tsubst): Instantiate template functions properly when
488
        template parameter does not appear in function arguments and return
489
        type.
490
        (comp_template_args): Handle member templates required by tsubst.
491
 
492
Mon Nov 10 20:08:38 1997  Jason Merrill  
493
 
494
        * decl.c (grokdeclarator): Tweak conditions for pedwarn in
495
        previous change.
496
 
497
Mon Nov 10 20:08:29 1997  Bruno Haible  
498
 
499
        * pt.c (coerce_template_parms): Tweak error message.
500
 
501
        * decl.c (grokdeclarator): If -Wreturn-type, warn everytime a
502
        return type defaults to `int', even if there are storage-class
503
        specifiers.
504
 
505
Mon Nov 10 03:04:20 1997  Jason Merrill  
506
 
507
        Complete nested exception support.
508
        * except.c (do_pop_exception): Split out...
509
        (push_eh_cleanup): From here.  Handle the EH region by hand.
510
        (expand_start_catch_block): Add a new level for the catch parm.
511
        Move the rethrow region outside the two cleanup regions.
512
        Protect the initializer for the catch parm with terminate.
513
        (expand_end_catch_block): Likewise.  End the region for the eh_cleanup.
514
        * exception.cc (__cp_pop_exception): Now takes two parms.  Handle
515
        popping off the middle of the stack.
516
        * tree.c (lvalue_p, real_lvalue_p): Handle TRY_CATCH_EXPR,
517
        WITH_CLEANUP_EXPR, and UNSAVE_EXPR.
518
        (build_cplus_new): Only wrap CALL_EXPRs.
519
        * init.c (expand_default_init): Handle a TRY_CATCH_EXPR around
520
        the constructor call.
521
 
522
Sun Nov  9 18:00:26 1997  Richard Kenner  
523
 
524
        * Make-lang.in (c++.distdir): Make inc subdirectory.
525
 
526
Fri Nov  7 11:57:28 1997  Jason Merrill  
527
 
528
        * decl2.c (finish_file): Put back some code.
529
 
530
Thu Nov  6 11:28:14 1997  Jason Merrill  
531
 
532
        * decl2.c (finish_file): Remove redundant code.
533
        * method.c (emit_thunk): Don't let the backend defer generic thunks.
534
 
535
Wed Nov  5 23:52:50 1997  Jason Merrill  
536
 
537
        * except.c (call_eh_info): Split out...
538
        (push_eh_info): From here.
539
        (expand_builtin_throw): Use it.
540
        (expand_start_catch_block): Move region start back.
541
 
542
Tue Nov  4 13:45:10 1997  Doug Evans  
543
 
544
        * lex.c (MULTIBYTE_CHARS): #undef if cross compiling.
545
        (real_yylex): Record wide strings using target endianness, not host.
546
 
547
1997-11-03  Brendan Kehoe  
548
 
549
        * repo.c (rindex): Add decl unconditionally.
550
        (get_base_filename, open_repo_file): Don't cast rindex.
551
        * xref.c (rindex): Add decl unconditionally.
552
        (index): Remove unused decl.
553
        (open_xref_file): Don't cast rindex.
554
 
555
Sun Nov  2 15:04:12 1997  Jason Merrill  
556
 
557
        * class.c (build_vbase_path): Propagate the result type properly.
558
 
559
1997-11-01  Brendan Kehoe  
560
 
561
        * except.c (expand_builtin_throw) [!DWARF2_UNWIND_INFO]: Replace
562
        remaining use of saved_throw_type with a call to get_eh_type.
563
 
564
1997-10-31  Brendan Kehoe  
565
 
566
        * lex.c (FILE_NAME_NONDIRECTORY): Delete macro.
567
        (file_name_nondirectory): New function, doing the same as the macro.
568
        (set_typedecl_interface_info): Use it instead of the macro.
569
        (check_newline): Likewise.
570
        (handle_cp_pragma): Likewise.
571
 
572
        * repo.c (get_base_filename): Cast result of rindex to char*.
573
        (open_repo_file): Likewise.
574
        * xref.c (open_xref_file): Likewise.
575
        * error.c (dump_char): Make its arg int, not char.
576
 
577
        * except.c (push_eh_info): Pass the number of fields - 1 down, not
578
        the exact number of fields.
579
 
580
Fri Oct 31 01:47:57 1997  Jason Merrill  
581
 
582
        Support for nested exceptions.
583
        * tinfo2.cc (__is_pointer): New fn.
584
        * exception.cc (struct cp_eh_info): Define.
585
        (__cp_exception_info, __uncatch_exception): New fns.
586
        (__cp_push_exception, __cp_pop_exception): New fns.
587
        * except.c: Lose saved_throw_{type,value,cleanup,in_catch}.
588
        Lose empty_fndecl.
589
        (init_exception_processing): Likewise.  __eh_pc is now external.
590
        (push_eh_info): New fn.
591
        (get_eh_{info,value,type,caught}): New fns.
592
        (push_eh_cleanup): Just call __cp_pop_exception.
593
        (expand_start_catch_block): Use push_eh_info.  Start the eh region
594
        sooner.
595
        (expand_end_eh_spec): Use push_eh_info.
596
        (expand_throw): Call __cp_push_exception to set up the exception info.
597
        Just pass the destructor or 0 as the cleanup.  Call __uncatch_exception
598
        when we rethrow.
599
        (expand_builtin_throw): Don't refer to empty_fndecl.
600
 
601
Thu Oct 23 02:01:30 1997  Jason Merrill  
602
 
603
        * pt.c (instantiate_decl): SET_DECL_IMPLICIT_INSTANTIATION on new decl.
604
 
605
1997-10-22  Brendan Kehoe  
606
 
607
        * method.c (build_template_parm_names, build_decl_overload_real):
608
        Add static to definitions.
609
        * pt.c (add_to_template_args, note_template_header,
610
        processing_explicit_specialization, type_unification_real): Likewise.
611
        ({determine,check}_explicit_specialization): Use a single string for
612
        error messages.
613
 
614
Mon Oct 20 12:06:34 1997  Jason Merrill  
615
 
616
        * except.c (expand_exception_blocks): Call do_pending_stack_adjust.
617
        (expand_end_catch_block): Likewise.
618
        (expand_end_eh_spec): Likewise.
619
 
620
Mon Oct 20 11:44:20 1997  Mark Mitchell  
621
 
622
        * decl.c (duplicate_decls): Handle template specializations
623
        correctly.
624
        * error.c (dump_function_name): Fix printing of specializations of
625
        member functions that are not member templates.
626
        * cp-tree.h (processing_specialization): Make global.
627
        * pt.c (processing_specialization): Likewise.
628
        * lex.c (cons_up_default_function): Save and restore
629
        processing_specialization to avoid confusion.
630
 
631
Mon Oct 20 10:52:22 1997  Jason Merrill  
632
 
633
        * decl.c (init_decl_processing): Give null_node unknown* type.
634
        * typeck.c (comp_target_types): Handle UNKNOWN_TYPE.
635
        (common_type): Likewise.
636
        * error.c (args_as_string): Recognize null_node.
637
 
638
Sun Oct 19 09:13:01 1997  Richard Kenner  
639
 
640
        * typeck.c (rationalize_conditional_expr): Handle {MIN,MAX}_EXPR.
641
        (unary_complex_lvalue): Call it for {MIN,MAX}_EXPR.
642
 
643
        * decl.c (init_decl_processing): Call using_eh_for_cleanups.
644
 
645
        * Make-lang.in (g++): Include prefix.o.
646
 
647
Thu Oct 16 15:31:09 1997  Judy Goldberg  
648
 
649
        * pt.c (determine_explicit_specialization): Initialize "dummy"
650
        to keep Purify quiet.
651
 
652
Thu Oct 16 00:14:48 1997  Jason Merrill  
653
 
654
        * method.c (build_overload_value): Handle TEMPLATE_CONST_PARMs here.
655
        (build_overload_int): Not here.
656
 
657
Wed Oct 15 00:35:28 1997  Mike Stump  
658
 
659
        * class.c (build_type_pathname): Remove.
660
        (prepare_fresh_vtable): Fix problem with complex MI vtable names.
661
 
662
1997-10-14  Brendan Kehoe  
663
 
664
        * parse.y (unary_expr): Give a pedwarn if someone tries to use the
665
        &&label GNU extension.
666
 
667
Tue Oct 14 12:01:00 1997  Mark Mitchell  
668
 
669
        * decl.c (pushtag): Unset DECL_ASSEMBLER_NAME before setting it,
670
        so as to avoid incorrect manglings.
671
        * method.c (build_decl_overload_real): Don't mangle return types
672
        for constructors.
673
 
674
Tue Oct 14 11:46:14 1997  Jason Merrill  
675
 
676
        * cp-tree.h (scratchalloc, build_scratch_list, make_scratch_vec,
677
        scratch_tree_cons): Define as macros for now.
678
        * call.c, class.c, cvt.c, decl.c, decl2.c, except.c, expr.c, init.c,
679
        lex.c, method.c, parse.y, pt.c, rtti.c, search.c, tree.c, typeck.c,
680
        typeck2.c: Use them and the expression_obstack variants.
681
 
682
Mon Oct 13 17:41:26 1997  Benjamin Kosnik  
683
 
684
        * decl.c (store_return_init): Allow classes with explicit ctors to
685
        be used with the named return values extension.
686
 
687
Fri Oct 10 12:21:11 1997  Jason Merrill  
688
 
689
        * pt.c (instantiate_decl): Fix previous change.
690
 
691
Thu Oct  9 12:08:21 1997  Jason Merrill  
692
 
693
        * pt.c (tsubst): Fix thinko.
694
        (instantiate_decl): Really use the original template.
695
 
696
        * call.c (build_new_method_call): Use simple constructor_name for
697
        error messages.
698
 
699
Wed Oct  8 22:44:42 1997  Jeffrey A Law  
700
 
701
        * method.c (build_underscore_int): Don't use ANSI specific
702
        features.
703
 
704
Wed Oct  8 00:18:22 1997  Jason Merrill  
705
 
706
        * decl2.c (finish_prevtable_vardecl): Check DECL_REALLY_EXTERN
707
        for our key method; it might have been inlined by -O3.
708
 
709
Tue Oct  7 23:00:12 1997  Mark Mitchell  
710
 
711
        * decl.c (make_typename_type): Do not try to call lookup_field for
712
        non-aggregate types.
713
 
714
Tue Oct  7 22:52:10 1997  Jason Merrill  
715
 
716
        * typeck.c (build_reinterpret_cast): Tweak.
717
 
718
Tue Oct  7 22:45:31 1997  Alexandre Oliva  
719
 
720
        * typeck.c (build_reinterpret_cast): Converting a void pointer
721
        to function pointer with a reinterpret_cast produces a warning
722
        if -pedantic is issued.
723
 
724
Tue Oct  7 22:43:43 1997  Bruno Haible  
725
 
726
        * typeck.c (c_expand_return): Don't warn about returning a
727
        reference-type variable as a reference.
728
 
729
Tue Oct  7 21:11:22 1997  Jason Merrill  
730
 
731
        * method.c (build_static_name): Fix typo.
732
 
733
1997-10-07  Brendan Kehoe  
734
 
735
        * decl.c (duplicate_decls): Make sure DECL_LANG_SPECIFIC is set on
736
        OLDDECL before we try to do DECL_USE_TEMPLATE.
737
 
738
Tue Oct  7 00:48:36 1997  Jason Merrill  
739
 
740
        * decl.c (duplicate_decls): Don't warn about template instances.
741
 
742
        * typeck.c (mark_addressable): Lose ancient code that unsets
743
        DECL_EXTERNAL.
744
 
745
        * pt.c (do_decl_instantiation): Lose support for instantiating
746
        non-templates.
747
 
748
        * call.c (build_new_function_call): Fix handling of null explicit
749
        template args.
750
        (build_new_method_call): Likewise.
751
 
752
Mon Oct  6 23:44:34 1997  Mark Mitchell  
753
 
754
        * method.c (build_underscore_int): Fix typo.
755
 
756
1997-10-06  Brendan Kehoe  
757
 
758
        * tree.c (print_lang_statistics): #if 0 call to
759
        print_inline_obstack_statistics until its definition is checked in.
760
 
761
Mon Oct  6 09:27:29 1997  Jason Merrill  
762
 
763
        * decl2.c (finish_file): Move dump_tree_statistics to end.
764
 
765
        * pt.c (instantiate_decl): Look for the original template.
766
        (tsubst): Set DECL_IMPLICIT_INSTANTIATION on partial instantiations
767
        of member templates.
768
 
769
Wed Oct  1 08:41:38 1997  Jason Merrill  
770
 
771
        * Makefile.in (g++FAQ.*): New rules.
772
        (CONFLICTS): Update.
773
        * g++FAQ.texi: Moved from libg++.
774
 
775
        * parse.y (PFUNCNAME): Only specify the type once.
776
 
777
1997-10-01  Brendan Kehoe  
778
 
779
        * lex.c (real_yylex): Clean up the code to fully behave the way
780
        the c-lex.c parser does for complex and real numbers.
781
 
782
Tue Sep 30 08:51:36 1997  Jason Merrill  
783
 
784
        * method.c (build_decl_overload_real): Reformat.
785
 
786
Tue Sep 30 00:18:26 1997  Jason Merrill  
787
 
788
        * method.c (synthesize_method): If at_eof, determine our linkage.
789
 
790
1997-09-29  Paul Eggert  
791
 
792
        * lex.c (real_yylex): Treat `$' just like `_', except issue a
793
        diagnostic if !dollars_in_ident or if pedantic.
794
 
795
        * lang-specs.h (@c++): -ansi no longer implies -$.
796
 
797
        * decl2.c (lang_decode_option):
798
        -traditional and -ansi now do not mess with
799
        dollars_in_ident.
800
 
801
Mon Sep 29 19:57:51 1997  H.J. Lu  
802
 
803
        * Makefile.in (parse.o, decl.o): Also depend on
804
        $(srcdir)/../except.h $(srcdir)/../output.h.
805
        (decl2.o): Also depend on $(srcdir)/../expr.h ../insn-codes.h
806
        $(srcdir)/../except.h $(srcdir)/../output.h.
807
        (typeck.o, init.o): Also depend on $(srcdir)/../expr.h
808
        ../insn-codes.h.
809
 
810
        * call.c, cp-tree.h, decl.c, tree.c: Finish prototyping.
811
 
812
        * expr.c (cplus_expand_expr): Make it static.
813
 
814
        * decl2.c, init.c, typeck.c: Include "expr.h".
815
        (expand_expr): Use proper values when calling the function.
816
 
817
Mon Sep 29 11:05:54 1997  Alexandre Oliva  
818
 
819
        * lang-options.h: New -Wold-style-cast flag.
820
        * cp-tree.h (warn_old_style_cast): New variable.
821
        * decl2.c (warn_old_style_cast): Likewise.
822
        (lang_decode_option): Support -Wold-style-cast.
823
        (reparse_absdcl_as_casts): Produce old-style-cast warning.
824
 
825
Mon Sep 29 09:20:53 1997  Benjamin Kosnik  
826
 
827
        * decl.c (cp_finish_decl): Allow expand_aggr_init to set
828
        TREE_USED, reset value based on already_used.
829
 
830
        * init.c (expand_member_init): Revert change.
831
 
832
Mon Sep 29 08:57:53 1997  Jason Merrill  
833
 
834
        * cp-tree.h, decl.c, decl2.c, pt.c:
835
        Lose DECL_C_STATIC and DECL_PUBLIC.  Don't pretend statics are public.
836
 
837
        * decl2.c (lang_decode_option): Add missing ;.
838
 
839
Sat Sep 27 16:22:48 1997  Jason Merrill  
840
 
841
        * friend.c (do_friend): Disable injection for all template-derived
842
        decls.
843
        * decl2.c (lang_decode_option): Handle -fguiding-decls.
844
        * parse.y (notype_template_declarator): New nonterminal.
845
        (direct_notype_declarator): Use it.
846
        (complex_direct_notype_declarator): Likewise.
847
        (object_template_id): Accept any kind of identifier after TEMPLATE.
848
        (notype_qualified_id): Don't add template declarators here.
849
 
850
Sat Sep 27 16:21:58 1997  Mark Mitchell  
851
 
852
        * call.c (add_template_candidate): Add explicit_targs parameter.
853
        (build_scoped_method_call): Use it.
854
        (build_overload_call_real): Likewise.
855
        (build_user_type_conversion_1): Likewise.
856
        (build_new_function_call): Likewise.
857
        (build_object_call): Likewise.
858
        (build_new_op): Likewise.
859
        (build_new_method_call): Likewise.
860
        (build_new_function_call): Handle TEMPLATE_ID_EXPR.
861
        (build_new_method_call): Likewise.
862
 
863
        * class.c (finish_struct_methods): Add specialization pass to
864
        determine which methods were specializing which other methods.
865
        (instantiate_type): Handle TEMPLATE_ID_EXPR.
866
 
867
        * cp-tree.def (TEMPLATE_ID_EXPR): New tree code.
868
 
869
        * cp-tree.h (name_mangling_version): New variable.
870
        (flag_guiding_decls): Likewise.
871
        (build_template_decl_overload): New function.
872
        (begin_specialization): Likewise.
873
        (reset_specialization): Likewise.
874
        (end_specialization): Likewise.
875
        (determine_explicit_specialization): Likewise.
876
        (check_explicit_specialization): Likewise.
877
        (lookup_template_function): Likewise.
878
        (fn_type_unification): Add explicit_targs parameter.
879
        (type_unification): Likewise.
880
 
881
        * decl.c (duplicate_decls): Add smarts for explicit
882
        specializations.
883
        (grokdeclarator): Handle TEMPLATE_ID_EXPR, and function
884
        specializations.
885
        (grokfndecl): Call check_explicit_specialization.
886
 
887
        * decl2.c (lang_decode_option): Handle -fname-mangling-version.
888
        (build_expr_from_tree): Handle TEMPLATE_ID_EXPR.
889
        (check_classfn): Handle specializations.
890
 
891
        * error.c (dump_function_name): Print specialization arguments.
892
 
893
        * friend.c (do_friend): Don't call pushdecl for template
894
        instantiations.
895
 
896
        * init.c (build_member_call): Handle TEMPLATE_ID_EXPR.
897
 
898
        * lang-options.h: Add -fname-mangling-version, -fguiding-decls,
899
        and -fno-guiding-decls.
900
 
901
        * lex.c (identifier_type): Return PFUNCNAME for template function
902
        names.
903
 
904
        * method.c (build_decl_overload_real): New function.
905
        (build_template_parm_names): New function.
906
        (build_overload_identifier): Use it.
907
        (build_underscore_int): New function.
908
        (build_overload_int): Use it.  Add levels for template
909
        parameters.
910
        (build_overload_name): Likewise.  Also, handle TYPENAME_TYPEs.
911
        (build_overload_nested_names): Handle template type parameters.
912
        (build_template_decl_overload): New function.
913
 
914
        * parse.y (YYSTYPE): New ntype member.
915
        (nested_name_specifier): Use it.
916
        (nested_name_specifier_1): Likewise.
917
        (PFUNCNAME): New token.
918
        (template_id, object_template_id): New non-terminals.
919
        (template_parm_list): Note specializations.
920
        (template_def): Likewise.
921
        (structsp): Likewise.
922
        (fn.def2): Handle member template specializations.
923
        (component_decl_1): Likewise.
924
        (direct_notype_declarator): Handle template-ids.
925
        (component_decl_1): Likewise.
926
        (direct_notype_declarator): Handle template-ids.
927
        (primary): Handle TEMPLATE_ID_EXPR, and template-ids.
928
 
929
        * pt.c (processing_specializations): New variable.
930
        (template_header_count): Likewise.
931
        (type_unification_real): New function.
932
        (processing_explicit_specialization): Likewise.
933
        (note_template_header): Likewise.
934
        (is_member_template): Handle specializations.
935
        (end_template_decl): Call reset_specialization.
936
        (push_template_decl): Handle member template specializations.
937
        (tsubst): Likewise.
938
        (tsubst_copy): Handle TEMPLATE_ID_EXPR.
939
        (instantiate_template): Handle specializations.
940
        (instantiate_decl): Likewise.
941
        (fn_type_unification): Handle explicit_targs.
942
        (type_unification): Likewise.  Allow incomplete unification
943
        without an error message, if allow_incomplete.
944
        (get_bindings): Use new calling sequence for fn_type_unification.
945
 
946
        * spew.c (yylex): Handle PFUNCNAME.
947
 
948
        * tree.c (is_overloaded_fn): Handle TEMPLATE_ID_EXPR.
949
        (really_overloaded_fn): Likewise.
950
        (get_first_fn): Handle function templates.
951
 
952
        * typeck.c (build_x_function_call): Use really_overloaded_fn.
953
        Handle TEMPLATE_ID_EXPR.
954
        (build_x_unary_op): Likewise.
955
        (build_unary_op): Likewise.
956
        (mark_addressable): Templates whose address is taken are marked
957
        as used.
958
 
959
1997-09-25  Andreas Schwab  
960
 
961
        * decl.c (init_decl_processing): Declare __builtin_constant_p as
962
        accepting any kind of type, not only int.
963
 
964
Fri Sep 26 00:22:56 1997  Jason Merrill  
965
 
966
        * search.c (get_matching_virtual): Notice virtual bases when sorrying
967
        about covariant returns.
968
 
969
        * parse.y (member_init): Also imply typename here.  Remove ancient
970
        extension for initializing base members.
971
 
972
Thu Sep 25 11:11:13 1997  Jason Merrill  
973
 
974
        Handle multi-level typenames and implicit typename in base list.
975
        * parse.y (typename_sub{,[0-2]}): New rules.
976
        (structsp, rule TYPENAME_KEYWORD): Use typename_sub.
977
        (nonnested_type): New rule.
978
        (complete_type_name): Use it.
979
        (base_class.1): Use typename_sub and nonnested_type.
980
        (nested_name_specifier): Don't elide std:: here.
981
        * decl.c (make_typename_type): Handle getting a type for NAME.
982
        (lookup_name_real): Turn std:: into :: here.
983
 
984
        Rvalue conversions were removed in London.
985
        * call.c (is_subseq): Don't consider lvalue transformations.
986
        (build_conv): LVALUE_CONV and RVALUE_CONV get IDENTITY_RANK.
987
        (joust): Re-enable ?: kludge.
988
 
989
1997-09-22  Brendan Kehoe  
990
 
991
        * decl.c (start_function): Up warning of no return type to be a
992
        pedwarn.
993
 
994
Mon Sep 22 14:15:34 1997  Benjamin Kosnik  
995
 
996
        * init.c (expand_member_init): Don't set TREE_USED.
997
        * decl.c (cp_finish_decl): Mark decls used if type has TREE_USED
998
        set,don't clear TREE_USED wholesale.
999
 
1000
Sat Sep 20 15:31:00 1997  Jason Merrill  
1001
 
1002
        * call.c (build_over_call): Do require_complete_type before
1003
        build_cplus_new.
1004
 
1005
Thu Sep 18 16:47:52 1997  Jason Merrill  
1006
 
1007
        * search.c (lookup_field): Call complete_type in all cases.
1008
 
1009
        * decl.c (finish_function): Just warn about flowing off the end.
1010
 
1011
Wed Sep 17 10:31:25 1997  Jason Merrill  
1012
 
1013
        * decl.c (grokparms): Don't bash a permanent list node if we're
1014
        in a function.
1015
 
1016
1997-09-17  Brendan Kehoe  
1017
 
1018
        * Makefile.in (CONFLICTS): Fix s/r conflict count to 18.
1019
 
1020
Tue Sep 16 14:06:56 1997  Jason Merrill  
1021
 
1022
        * call.c (build_new_op): Give better error for syntactically
1023
        correct, but semantically invalid, use of undeclared template.
1024
 
1025
        * call.c (compare_qual): Handle pmfs.
1026
 
1027
        * decl.c (store_parm_decls): last_parm_cleanup_insn is the insn
1028
        after the exception spec.
1029
 
1030
Mon Sep 15 11:52:13 1997  Jason Merrill  
1031
 
1032
        * call.c (null_ptr_cst_p): Integer type, not integral type.
1033
 
1034
        * call.c (joust): Disable warnings until they can be moved to the
1035
        right place.
1036
 
1037
Fri Sep 12 16:11:13 1997  Per Bothner  
1038
 
1039
        * Makefile.in, config-lang.in:  Convert to autoconf.
1040
 
1041
Thu Sep 11 17:14:55 1997  Jason Merrill  
1042
 
1043
        * decl.c (lookup_name_real): Add implicit 'typename' to types from
1044
        base classes.
1045
 
1046
        * pt.c (most_specialized_class): Fix typo.
1047
        (tsubst): Move constant folding to TREE_VEC case.
1048
 
1049
Thu Sep 11 10:08:45 1997  Mark Mitchell  
1050
 
1051
        * pt.c (do_poplevel): Don't warn about unused local variables
1052
        while processing_template_decl since we don't always know whether
1053
        or not they will need constructing/destructing.
1054
 
1055
        * pt.c (uses_template_parms): Check the values of an enumeration
1056
        type to make sure they don't depend on template parms.
1057
 
1058
        * decl.c (make_typename_type): Don't lookup the field if the
1059
        context uses template parms, even if we're not
1060
        processing_template_decl at the moment.
1061
 
1062
        * pt.c (coerce_template_parms): Avoid looking at the
1063
        TYPE_LANG_DECL portion of a typename type, since there won't be
1064
        one.
1065
        (tsubst): Do constant folding as necessary to make sure that
1066
        arguments passed to lookup_template_class really are constants.
1067
 
1068
Wed Sep 10 16:39:26 1997  Jim Wilson  
1069
 
1070
        * Make-lang.in (LN, LN_S): New macros, use where appropriate.
1071
 
1072
Wed Sep 10 11:21:55 1997  Jason Merrill  
1073
 
1074
        * except.c (expand_builtin_throw): #ifndef DWARF2_UNWIND_INFO.
1075
        * decl2.c (finish_file): Only register exception tables if we
1076
        need to.
1077
 
1078
        * decl.c (init_decl_processing): Add __builtin_[fs]p.
1079
 
1080
Tue Sep  9 19:49:38 1997  Jason Merrill  
1081
 
1082
        * pt.c (unify): Just return 0 for a TYPENAME_TYPE.
1083
 
1084
Tue Sep  9 17:57:25 1997  Mark Mitchell  
1085
 
1086
        * error.c (dump_decl): Avoid crashing when presented with a
1087
        uninitialized constant, as can occur with a template parameter.
1088
        (dump_expr): Make sure that there are enough levels of
1089
        current_template_parms before we start diving through them.
1090
 
1091
1997-09-09  Brendan Kehoe  
1092
 
1093
        * typeck.c (build_indirect_ref): Heed FLAG_VOLATILE similar to
1094
        c-typeck.c.
1095
 
1096
Tue Sep  9 09:36:39 1997  Benjamin Kosnik  
1097
 
1098
        * except.c (expand_throw): Call build_delete for all
1099
        exception types, not just objects with destructors.
1100
 
1101
Mon Sep  8 02:33:20 1997  Jody Goldberg  
1102
 
1103
        * decl.c (current_local_enum): Remove static.
1104
        * pt.c (tsubst_enum): Save and restore value of current_local_enum
1105
        in case template is expanded in enum decl.
1106
        (instantiate_class_template): Use new tsubst_enum signature.
1107
        (tsubst_expr): Likewise.
1108
 
1109
Mon Sep  8 01:21:43 1997  Mark Mitchell  
1110
 
1111
        * pt.c (begin_member_template_processing): Take a function as
1112
        argument, not a set of template arguments.  Use the template
1113
        parameters, rather than the arguments.  Handle non-type parameters
1114
        correctly.  Push a binding level for the parameters so that multiple
1115
        member templates using the same parameter names can be declared.
1116
        (end_member_template_processing): Pop the binding level.
1117
        (push_template_decl): Mark member templates as static when
1118
        appropriate.
1119
 
1120
        * lex.c (do_pending_inlines): Pass the function, not its template
1121
        arguments, to begin_member_template_processing.
1122
        (process_next_inline): Likewise.
1123
        (do_pending_defargs): Likewise.
1124
 
1125
        * error.c (dump_expr): Obtain the correct declaration for a
1126
        TEMPLATE_CONST_PARM.
1127
 
1128
        * call.c (add_template_conv_candidate): New function.
1129
        (build_object_call): Handle member templates, as done in the other
1130
        build_ functions.
1131
 
1132
Sat Sep  6 10:20:27 1997  Mark Mitchell  
1133
 
1134
        * decl.c (replace_defag): Undo previous change.
1135
        * lex.c (do_pending_defargs): Deal with member templates.
1136
 
1137
        * pt.c (is_member_template): Avoid crashing when passed a
1138
        non-function argument.
1139
 
1140
Fri Sep  5 17:27:38 1997  Jason Merrill  
1141
 
1142
        * class.c (grow_method): Remove check for redeclaration.
1143
 
1144
Fri Sep  5 01:37:17 1997  Mark Mitchell  
1145
 
1146
        * cp-tree.h (INNERMOST_TEMPLATE_PARMS): New macro.
1147
        (DECL_INNERMOST_TEMPLATE_PARMS): Likewise.
1148
        (PRIMARY_TEMPLATE_P): Use it.
1149
        * call.c (build_overload_call_real): Use it.
1150
        * class.c (instantiate_type): Likewise.
1151
        * decl.c (decls_match): Likewise.
1152
        * method.c (build_overload_identifier): Likewise.
1153
        * pt.c (push_template_decl): Likewise.
1154
        (classtype_mangled_name): Likewise.
1155
        (lookup_template_class): Likewise.
1156
 
1157
        * cp-tree.h (DECL_NTPARMS): Change name from DECL_NT_PARMS to
1158
        DECL_NTPARMS to conform to usage elsewhere.
1159
        * call.c (add_template_candidate): Likewise.
1160
        * class.c (instantiate_type): Likewise.
1161
        * pt.c (instantiate_template): Likewise.
1162
        (get_bindings): Likewise.
1163
 
1164
        * class.c (grow_method): Use DECL_FUNCTION_TEMPLATE_P instead of
1165
        is_member_template.
1166
 
1167
        * pt.c (unify): Undo changes to allow multiple levels of template
1168
        parameters.
1169
        (type_unification): Likewise.
1170
        (fn_type_unification): Likewise.
1171
        (get_class_bindings): Likewise.
1172
        * cp-tree.h (Likewise).
1173
 
1174
        * decl.c (replace_defarg): Check that the type of the default
1175
        parameter does not invlove a template type before complaining
1176
        about the initialization.
1177
 
1178
        * error.c (dump_expr): Deal with template constant parameters in
1179
        member templates correctly.
1180
 
1181
        * pt.c (is_member_template): Deal with class specializations
1182
        correctly.
1183
        (tsubst): Handle "partial instantiation" of member templates
1184
        correctly.
1185
 
1186
Wed Sep  3 12:30:24 1997  Mark Mitchell  
1187
 
1188
        * pt.c (type_unification): Change calling sequence to allow for
1189
        multiple levels of template parameters.
1190
        (tsubst_expr): Likewise.
1191
        (tsubst): Likewise.
1192
        (tsubst_copy): Likewise.
1193
        (instantiate_template): Likewise.
1194
        (unify): Likewise.
1195
        * call.c (build_overload_call_real): Use it.
1196
        (add_builtin_candidate): Use it.
1197
        (build_new_method_call): Use it.
1198
        * class.c (instantiate_type): Use it.
1199
        * decl.c (grokdeclarator): Use it.
1200
        * decl2.c (finish_file): Use it.
1201
        * method.c (build_overload_identifier): Use it.
1202
 
1203
        * call.c (add_template_candidate):  Add additional parameter for
1204
        the function return type.  Call fn_type_unification istead of
1205
        type_unification.
1206
        (build_user_type_conversion_1): Handle member templates.
1207
        (build_new_function_call): Likewise.
1208
        (build_new_op): Likewise.
1209
        (build_new_method_call): Likewise.
1210
 
1211
        * class.c (grow_method): Don't give an error message indicating
1212
        that two member templates with the same name are ambiguous.
1213
        (finish_struct): Treat member template functions just like member
1214
        functions.
1215
 
1216
        * cp-tree.h (check_member_template): Add declaration.
1217
        (begin_member_template_processing): Likewise.
1218
        (end_member_template_processing): Likewise.
1219
        (fn_type_unification): Likewise.
1220
        (is_member_template): Likewise.
1221
        (tsubst): Change prototype.
1222
        (tsubst_expr): Likewise.
1223
        (tsubst_copy): Likewise.
1224
        (instantiate_template): Likewise.
1225
        (get_bindings): Likewise.
1226
 
1227
        * decl.c (decls_match): Handle multiple levels of template
1228
        parameters.
1229
        (pushdecl): Handle template type params just like other type
1230
        declarations.
1231
        (push_class_level_binding): Return immediately if the
1232
        class_binding_level is NULL.
1233
        (grokfndecl): If check_classfn() returns a member_template, use
1234
        the result of the template, not the template itself.
1235
 
1236
        * decl2.c (check_member_template): New function.  Check to see
1237
        that the entity declared to be a member template can be one.
1238
        (check_classfn): Allow redeclaration of member template functions
1239
        with different types; the new functions can be specializations or
1240
        explicit instantiations.
1241
 
1242
        * error.c (dump_decl): Handle multiple levels of template
1243
        parameters.
1244
        (dump_function_decl): Update to handle function templates.
1245
 
1246
        * lex.c (do_pending_inlines): Set up template parameter context
1247
        for member templates.
1248
        (process_next_inline): Likewise.
1249
 
1250
        * method.c (build_overload_identifier): Adjust for multiple levels
1251
        of template parameters.
1252
 
1253
        * parse.y (fn.def2): Add member templates.
1254
        (component_decl_1): Likewise.
1255
 
1256
        * pt.c (begin_member_template_processing): New function.
1257
        (end_member_template_processing): Likewise.
1258
        (is_member_template): Likewise.
1259
        (fn_type_unification): Likewise.
1260
        (current_template_parms): Return a vector of all the template
1261
        parms, not just the innermost level of parms.
1262
        (push_template_decl): Deal with the possibility of member
1263
        templates.
1264
        (lookup_template_class): Likewise.
1265
        (uses_template_parms): Likewise.
1266
        (tsubst): Modify processing to TEMPLATE_TYPE_PARM and
1267
        TEMPLATE_CONST_PARM to deal with multiple levels of template
1268
        arguments.   Add processing of TEMPLATE_DECL to produce new
1269
        TEMPLATE_DECLs from old ones.
1270
        (do_decl_instantiation): Handle member templates.
1271
 
1272
        * search.c (lookup_fnfields_1): Handle member template conversion
1273
        operators.
1274
 
1275
        * tree.c (cp_tree_equal): Check the levels, as well as the
1276
        indices, of TEMPLATE_CONST_PARMs.
1277
 
1278
        * typeck.c (comptypes): Check the levels, as well as the indices,
1279
        fo TEMPLATE_TYPE_PARMs.
1280
        (build_x_function_call): Treat member templates like member
1281
        functions.
1282
 
1283
Wed Sep  3 11:09:25 1997  Jason Merrill  
1284
 
1285
        * typeck.c (c_expand_return): Always convert_for_initialization
1286
        before checking for returning a pointer to local.
1287
 
1288
        * pt.c (type_unification): If strict and the function parm doesn't
1289
        use template parms, just compare types.
1290
 
1291
Wed Sep  3 10:35:49 1997  Klaus Espenlaub  
1292
 
1293
        * method.c (build_overloaded_value): Replace direct call
1294
        to the floating point emulator with REAL_VALUE_TO_DECIMAL macro.
1295
 
1296
Wed Sep  3 00:02:53 1997  Jason Merrill  
1297
 
1298
        * typeck.c (convert_arguments): Don't arbitrarily choose the first
1299
        of a set of overloaded functions.
1300
 
1301
Tue Sep  2 12:09:13 1997  Jason Merrill  
1302
 
1303
        * lex.c (real_yylex): Don't elide __FUNCTION__.
1304
 
1305
        * method.c (build_overload_value): Add in_template parm.
1306
        (build_overload_int): Likewise.
1307
        (build_overload_identifier): Pass it.
1308
 
1309
        * decl.c (duplicate_decls): Don't bash a previous template
1310
        definition with a redeclaration.
1311
 
1312
        * pt.c (unify): float doesn't match double.
1313
 
1314
        * pt.c (do_type_instantiation): Handle getting a _TYPE or a
1315
        TYPE_DECL.  Handle getting non-template types.
1316
        * parse.y (explicit_instantiation): Use typespec instead of
1317
        aggr template_type.
1318
 
1319
Tue Sep  2 10:27:08 1997  Richard Henderson  
1320
 
1321
        * typeck.c (build_ptrmemfunc1): Clean up ptr->int cast warnings.
1322
 
1323
Mon Sep  1 13:19:04 1997  Eugene Mamchits  
1324
 
1325
        * call.c (add_builtin_candidate): Add missing TREE_TYPE.
1326
        (compare_ics): Likewise.
1327
 
1328
Mon Sep  1 13:19:04 1997  Jason Merrill  
1329
 
1330
        * call.c (joust): Warn about choosing one conversion op over
1331
        another because of 'this' argument when the other return type is
1332
        better.
1333
        (source_type): New fn.
1334
 
1335
        * call.c (build_new_op): Strip leading REF_BIND from first operand
1336
        to builtin operator.
1337
 
1338
        * decl2.c (mark_vtable_entries): Mark abort_fndecl as used when we
1339
        use its RTL.
1340
 
1341
Thu Aug 28 09:45:23 1997  Jason Merrill  
1342
 
1343
        * call.c (null_ptr_cst_p): Remove support for (void*)0.
1344
 
1345
Wed Aug 27 02:03:34 1997  Jeffrey A Law  
1346
 
1347
        * typeck.c (expand_target_expr): Make definition match declaration.
1348
 
1349
        * class.c (get_basefndecls): Make definition match declaration.
1350
 
1351
Mon Aug 25 14:30:02 1997  Jason Merrill  
1352
 
1353
        * input.c (sub_getch): Eventually give up and release the input file.
1354
 
1355
        * decl.c (cp_finish_decl): If #p i/i, put inline statics in the
1356
        right place.
1357
 
1358
        * call.c (joust): Tweak message.
1359
 
1360
Sat Aug 23 18:02:59 1997  Mark Mitchell  
1361
 
1362
        * error.c (type_as_string): Put const/volatile on template type
1363
        parameters where appropriate.
1364
 
1365
Sat Aug 23 17:47:22 1997  Jeffrey A Law  
1366
 
1367
        * call.c (strictly_better): Make arguments unsigned ints.
1368
 
1369
Thu Aug 21 18:48:44 1997  Jason Merrill  
1370
 
1371
        * lex.c (real_yylex): Refer to __complex instead of complex.
1372
 
1373
Thu Aug 21 22:25:46 1997  J"orn Rennecke  
1374
 
1375
        * lex.c (real_yylex): Don't use getc directly.
1376
 
1377
Wed Aug 20 17:25:08 1997  Jason Merrill  
1378
 
1379
        * call.c (is_subseq): Don't try to be clever.
1380
 
1381
Wed Aug 20 03:13:36 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
1382
 
1383
        * parse.y, pt.c: Include "except.h".
1384
        * call.c, class.c, class.h, cp-tree.h, cvt.c, decl.c, decl2.c,
1385
        error.c, except.c, expr.c, friend.c, g++spec.c, init.c, input.c,
1386
        lex.c, lex.h, method.c, parse.y, pt.c, repo.c, rtti.c, search.c,
1387
        sig.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c: Finish
1388
        prototyping.
1389
 
1390
Wed Aug 20 01:34:40 1997  Jason Merrill  
1391
 
1392
        * decl2.c (mark_vtable_entries): Instead of replacing pure
1393
        virtuals with a reference to __pure_virtual, copy the decl and
1394
        change the RTL.
1395
 
1396
Tue Aug 19 02:26:07 1997  Jason Merrill  
1397
 
1398
        * pt.c (lookup_nested_type_by_name): Handle typedef wierdness.
1399
 
1400
        * typeck2.c (my_friendly_abort): Report bugs to egcs-bugs@cygnus.com.
1401
 
1402
        * pt.c (instantiate_class_template): Call repo_template_used
1403
        before finish_prevtable_vardecl.
1404
 
1405
        * call.c (is_subseq): New fn.
1406
        (compare_ics): Use it.
1407
 
1408
        * repo.c (finish_repo): Don't crash on no args.
1409
 
1410
        * parse.y (named_complex_class_head_sans_basetype): Handle
1411
        explicit global scope.
1412
        * decl2.c (handle_class_head): New fn.
1413
 
1414
        * pt.c (unify): Add CONST_DECL case.
1415
 
1416
Thu Aug 14 10:05:13 1997  Brendan Kehoe  
1417
 
1418
        * rtti.c (permanent_obstack): Fix decl to not be a pointer.
1419
 
1420
        * cp-tree.h (report_type_mismatch): Add prototype.
1421
        * call.c (build_overload_call_real): Remove erroneous fourth
1422
        argument to report_type_mismatch.
1423
        (build_user_type_conversion_1): Remove erroneous second arg to
1424
        tourney.
1425
        (build_new_function_call): Likewise.
1426
        (build_object_call): Likewise.
1427
        (build_new_op): Likewise.
1428
        (build_new_method_call): Likewise.
1429
 
1430
Wed Aug 13 19:19:25 1997  Jason Merrill  
1431
 
1432
        * error.c (dump_decl): Don't bother processing a function with no
1433
        DECL_LANG_SPECIFIC.
1434
 
1435
        * method.c (emit_thunk): Call init_function_start in the macro case.
1436
 
1437
Wed Aug 13 10:46:19 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
1438
 
1439
        * decl2.c (DEFAULT_VTABLE_THUNKS): Define to be 0 if not
1440
        defined and used to set flag_vtable_thunks.
1441
 
1442
Tue Aug 12 20:13:57 1997  Jason Merrill  
1443
 
1444
        * parse.y: Don't clear the inlines from their obstack until they've
1445
        all been processed.
1446
 
1447
        * decl.c (duplicate_decls): Don't complain about exception
1448
        specification mismatch if flag_exceptions is off.
1449
 
1450
Mon Aug 11 15:01:56 1997  Marc Lehmann  
1451
 
1452
        * Make-lang.in (c++.distclean): Remove g++.c on make distclean.
1453
 
1454
Sun Aug 10 12:06:09 1997  Paul Eggert  
1455
 
1456
        * cp-tree.h: Replace STDIO_PROTO with PROTO in include files.
1457
        * cvt.c, error.c, except.c, expr.c, friend.c, init.c, rtti.c:
1458
        Include  before include files that formerly used STDIO_PROTO.
1459
 
1460
        * decl.c, g++spec.c, lex.c, method.c, repo.c:
1461
        Include "config.h" first, as per autoconf manual.
1462
 
1463
Fri Aug  8 11:47:48 1997  Jason Merrill  
1464
 
1465
        * decl.c (duplicate_decls): Tweak wording.
1466
        * lex.c (do_pending_defargs): Don't die if we see a default arg
1467
        that isn't a DEFAULT_ARG.
1468
        * error.c (dump_expr): Handle DEFAULT_ARG.
1469
 
1470
        * decl2.c (lang_decode_option): Handle -fhandle-exceptions.
1471
        * lang-options.h: Add -fhandle-exceptions.
1472
 
1473
        * class.c (build_vtable): Vtables are artificial.
1474
        (prepare_fresh_vtable): Likewise.
1475
 
1476
Wed Aug  6 11:02:36 1997  Jason Merrill  
1477
 
1478
        * cvt.c (ocp_convert): After converting to the target type, set
1479
        LOOKUP_NO_CONVERSION.
1480
 
1481
        * call.c (joust): Warn about potentially confusing promotion rules
1482
        with -Wsign-promo.
1483
        * cp-tree.h, lang-options.h, decl2.c: Support -Wsign-promo.
1484
 
1485
Tue Aug  5 15:15:07 1997  Michael Meissner  
1486
 
1487
        * exception.cc: Declare __terminate_func with noreturn attribute.
1488
 
1489
Fri Aug  1 03:18:15 1997  Jason Merrill  
1490
 
1491
        * parse.y: Break out eat_saved_input, handle errors.
1492
        (function_try_block): Use compstmt instead of compstmt_or_error.
1493
 
1494
Thu Jul 31 17:14:04 1997  Jason Merrill  
1495
 
1496
        * tree.c (build_cplus_new): Don't set TREE_ADDRESSABLE.
1497
 
1498
Fri Jul  4 01:45:16 1997  Andreas Schwab  
1499
 
1500
        * Make-lang.in (cplib2.txt, cplib2.ready): Instead of checking for
1501
        existence of cc1plus check whether $(LANGUAGES) contains C++.
1502
 
1503
Wed Jul 30 13:04:21 1997  Andreas Schwab  
1504
 
1505
        * method.c (do_build_copy_constructor): When copying an anonymous
1506
        union member loop around to handle nested anonymous unions.  Use
1507
        the offset of the member relative to the outer structure, not the
1508
        union.
1509
 
1510
Tue Jul 29 21:17:29 1997  Jason Merrill  
1511
 
1512
        * call.c (resolve_args): New fn.
1513
        (build_new_function_call): Use it.
1514
        (build_object_call): Likewise.
1515
        (build_new_method_call): Likewise.
1516
 
1517
Mon Jul 28 16:02:36 1997  Jason Merrill  
1518
 
1519
        * call.c (build_over_call): tsubst all default parms from templates.
1520
 
1521
Wed Jul 23 13:36:25 1997  Jason Merrill  
1522
 
1523
        * decl.c (struct cp_function): Add static_labelno.
1524
        (push_cp_function_context): Save it.
1525
        (pop_cp_function_context): Restore it.
1526
 
1527
Tue Jul 22 14:43:29 1997  Jason Merrill  
1528
 
1529
        * typeck.c (build_component_ref_1): Convert from reference.
1530
 
1531
Tue Jul 22 11:06:23 1997  Brendan Kehoe  
1532
 
1533
        * parse.y (current_declspecs, prefix_attributes): Initialize to
1534
        NULL_TREE.
1535
 
1536
        * parse.y (initdcl0): Make sure CURRENT_DECLSPECS is non-nil
1537
        before we try to force it to be a TREE_LIST.
1538
        (decl): Make sure $1.t is non-nil.
1539
 
1540
Sun Jul 20 11:53:07 1997  Jason Merrill  
1541
 
1542
        * pt.c (uses_template_parms): Handle template first-parse codes.
1543
 
1544
        * decl.c (cp_finish_decl): Only warn about user-defined statics.
1545
 
1546
Fri Jul 18 17:56:08 1997  Jason Merrill  
1547
 
1548
        * pt.c (unify): Handle BOOLEAN_TYPE.
1549
 
1550
        * cp-tree.h: Lose PARM_DEFAULT_FROM_TEMPLATE.
1551
        * pt.c (tsubst): Don't set it.
1552
        * call.c (build_over_call): Use uses_template_parms.
1553
 
1554
Thu Jul 17 18:06:30 1997  Jason Merrill  
1555
 
1556
        * method.c (build_overload_nested_name): Use static_labelno
1557
        instead of var_labelno.
1558
        (build_qualified_name): New fn.
1559
        (build_overload_name): Split out from here.
1560
        (build_static_name): Use build_qualified_name.
1561
        * decl.c (cp_finish_decl): Statics in extern inline functions
1562
        have comdat linkage.
1563
        (start_function): Initialize static_labelno.
1564
 
1565
Thu Jul 17 11:20:17 1997  Benjamin Kosnik  
1566
 
1567
        * class.c (finish_struct_methods): Add check of warn_ctor_dtor_privacy
1568
        before "all member functions in class [] are private".
1569
 
1570
Wed Jul 16 23:47:08 1997  Jason Merrill  
1571
 
1572
        * lex.c (do_scoped_id): convert_from_reference.
1573
        * init.c (build_offset_ref): Likewise.
1574
 
1575
Wed Jul 16 12:34:29 1997  Benjamin Kosnik  
1576
 
1577
        * error.c (dump_expr): Check TREE_OPERAND before dump_expr_list.
1578
 
1579
Mon Jul 14 03:23:46 1997  Jason Merrill  
1580
 
1581
        * typeck.c (get_member_function_from_ptrfunc): Promote index
1582
        before saving it.
1583
 
1584
Sun Jul 13 00:11:52 1997  Jason Merrill  
1585
 
1586
        * tree.c (layout_basetypes): Move non-virtual destructor warning.
1587
        * decl.c (xref_basetypes): Remove non-virtual destructor warning.
1588
 
1589
Sat Jul 12 12:47:12 1997  Jason Merrill  
1590
 
1591
        * decl.c (grokdeclarator): Call add_defarg_fn for the function
1592
        type, too.
1593
        * lex.c (add_defarg_fn): Adjust.
1594
        (do_pending_defargs): Adjust.  Don't skip the first parm.
1595
 
1596
Fri Jul 11 01:39:50 1997  Jason Merrill  
1597
 
1598
        * decl.c (build_enumerator): Global enumerators are also readonly.
1599
 
1600
        * rtti.c (build_dynamic_cast_1): Renamed from build_dynamic_cast.
1601
        (build_dynamic_cast): Call it and convert_from_reference.
1602
 
1603
        * lex.c (add_defarg_fn): New fn.
1604
        (snarf_defarg): Don't add to defarg_types.
1605
        (do_pending_defargs): Lose defarg_types.  All fns we process now
1606
        have defargs.
1607
        * decl.c (grokfndecl): Call add_defarg_fn.
1608
 
1609
        * Makefile.in (CONFLICTS): Expect 18 s/r conflicts.
1610
        * cp-tree.def: Add DEFAULT_ARG.
1611
        * spew.c (yylex): Call snarf_defarg as appropriate.
1612
        * parse.y: New tokens DEFARG and DEFARG_MARKER.
1613
        (defarg_again, pending_defargs, defarg, defarg1): New rules.
1614
        (structsp): Use pending_defargs.
1615
        (parms, full_parm): Use defarg.
1616
        * lex.c (init_lex): Initialize inline_text_firstobj.
1617
        (do_pending_inlines): Never pass the obstack to feed_input.
1618
        (process_next_inline): Call end_input instead of restore_pending_input.
1619
        (clear_inline_text_obstack, reinit_parse_for_expr, do_pending_defargs,
1620
        finish_defarg, feed_defarg, snarf_defarg, maybe_snarf_defarg): New fns.
1621
        * input.c (end_input): New fn.
1622
        (sub_getch): At the end of some fed input, just keep returning EOF
1623
        until someone calls end_input.
1624
        Remove 'obstack' field from struct input_source.
1625
        * decl.c (grokparms): Handle DEFAULT_ARG.
1626
        (replace_defarg): New fn.
1627
        * cp-tree.h (DEFARG_LENGTH, DEFARG_POINTER): New macros.
1628
 
1629
Wed Jul  9 13:44:12 1997  Jason Merrill  
1630
 
1631
        * call.c (implicit_conversion): If nothing else works, try binding
1632
        an rvalue to a reference.
1633
 
1634
Wed Jul  9 13:04:38 1997  Geoffrey Noer  
1635
 
1636
        * decl.c (init_decl_processing): Fix Jun 30 patch -- move
1637
        ifndef for Cygwin32 to include SIGSEGV.
1638
 
1639
Thu Jul  3 01:44:05 1997  Jason Merrill  
1640
 
1641
        * class.c (finish_struct_1): Only complain about pointers without
1642
        copy stuff if there are any constructors.
1643
 
1644
        * rtti.c (build_dynamic_cast): Call complete_type on the types.
1645
 
1646
        * decl.c (grokfndecl): If the function we chose doesn't actually
1647
        match, die.
1648
 
1649
        * decl2.c (grokclassfn): Don't specify 'const int' for the
1650
        artificial destructor parm.
1651
 
1652
        * pt.c (type_unification): If we are called recursively, nothing
1653
        decays.
1654
 
1655
Mon Jun 30 17:53:21 1997  Geoffrey Noer  
1656
 
1657
        * decl.c (init_decl_processing): Stop trying to catch signals
1658
        other than SIGABRT since the Cygwin32 library doesn't support
1659
        them correctly yet.  This fixes a situation in which g++ causes
1660
        a hang on SIGSEGVs and other such signals in our Win32-hosted
1661
        tools.
1662
 
1663
Mon Jun 30 14:50:01 1997  Jason Merrill  
1664
 
1665
        * tree.c (mapcar, case CALL_EXPR): Handle all the parse node data.
1666
 
1667
Fri Jun 27 15:18:49 1997  Jason Merrill  
1668
 
1669
        * typeck2.c (store_init_value): Always return the value if our
1670
        type needs constructing.
1671
 
1672
        * method.c (hack_identifier): Convert class statics from
1673
        reference, too.
1674
 
1675
Thu Jun 26 11:44:46 1997  Jason Merrill  
1676
 
1677
        * Make-lang.in (cplib2.ready): Add $(LANGUAGES) dependency.
1678
 
1679
Thu Jun 19 16:49:28 1997  Mike Stump  
1680
 
1681
        * typeck.c (c_expand_return): Make sure we clean up temporaries at
1682
        the end of return x;
1683
 
1684
Thu Jun 19 12:28:43 1997  Brendan Kehoe  
1685
 
1686
        * lex.c (check_for_missing_semicolon): Also check for CV_QUALIFIER.
1687
 
1688
Tue Jun 17 18:35:57 1997  Mike Stump  
1689
 
1690
        * except.c (expand_builtin_throw): Add support
1691
        -fno-sjlj-exceptions -fPIC exception handling on the SPARC.
1692
 
1693
Mon Jun 16 01:24:37 1997  Jason Merrill  
1694
 
1695
        * repo.c (extract_string): Null-terminate.
1696
 
1697
        * cp-tree.h (TI_SPEC_INFO): New macro.
1698
        (CLASSTYPE_TI_SPEC_INFO): New macro.
1699
        * pt.c (push_template_decl): Correctly determine # of template parms
1700
        for partial specs.
1701
 
1702
        * call.c (compare_ics): Really fix 'this' conversions.
1703
 
1704
        * pt.c (do_decl_instantiation): Don't crash on explicit inst of
1705
        non-template fn.
1706
 
1707
        * pt.c (push_template_decl): Complain about mismatch in # of
1708
        template parms between a class template and a member template.
1709
 
1710
Sun Jun 15 02:38:20 1997  Jason Merrill  
1711
 
1712
        * method.c (synthesize_method): You can't call
1713
        function_cannot_inline_p after finish_function.
1714
        * decl.c (finish_function): Turn on flag_inline_functions and turn
1715
        off DECL_INLINE before handing a synthesized method to the
1716
        backend.
1717
 
1718
Thu Jun 12 17:35:28 1997  Jason Merrill  
1719
 
1720
        * method.c (synthesize_method): Remove July 30 change to never set
1721
        DECL_INLINE if at_eof.
1722
 
1723
Thu Jun 12 15:25:08 1997  Mike Stump  
1724
 
1725
        * xref.c (GNU_xref_member): Ensure that the node has a
1726
        decl_lang_specific part before checking DECL_FRIEND_P.
1727
 
1728
Thu Jun 12 12:36:05 1997  Jason Merrill  
1729
 
1730
        * pt.c (instantiate_class_template): Diagnose non-class types used
1731
        as bases.
1732
 
1733
Wed Jun 11 17:33:40 1997  Jason Merrill  
1734
 
1735
        * typeck.c (build_conditional_expr): Use convert_for_initialization
1736
        instead of convert_and_check.
1737
 
1738
Wed Jun 11 12:31:33 1997  Brendan Kehoe  
1739
 
1740
        * parse.y (typespec): Don't pedwarn for typeof.
1741
 
1742
Tue Jun 10 00:22:09 1997  Jason Merrill  
1743
 
1744
        * repo.c (finish_repo): Only check changes if we would write a
1745
        repo file.
1746
 
1747
        * call.c (compare_ics): Fix handling of 'this' conversions.
1748
 
1749
        * pt.c (do_decl_instantiation): Support static data too.  Rename
1750
        from do_function_instantiation.
1751
        * cp-tree.h: Adjust.
1752
        * parse.y: Adjust.
1753
 
1754
        * repo.c (extract_string): New fn.
1755
        (get_base_filename): Use it.
1756
        (init_repo): Compare old args with current args.
1757
 
1758
Mon Jun  9 14:25:30 1997  Mike Stump  
1759
 
1760
        * Makefile.in, Make-lang.in: Protect C-ls with a comment
1761
        character, idea from Paul Eggert .
1762
 
1763
Mon Jun  9 01:52:03 1997  Jason Merrill  
1764
 
1765
        * typeck.c (c_expand_return): Be more persistent in looking for
1766
        returned temps.
1767
 
1768
        * cvt.c (build_up_reference): Use NOP_EXPR for switching from
1769
        pointer to reference.
1770
 
1771
        * class.c (build_vbase_path): Don't do anything if PATH has no steps.
1772
 
1773
Sun Jun  8 03:07:05 1997  Jason Merrill  
1774
 
1775
        * init.c (build_member_call, build_offset_ref):
1776
        Use do_scoped_id instead of do_identifier.
1777
 
1778
        * cvt.c (convert): Remove bogosity.
1779
 
1780
Sat Jun  7 20:50:17 1997  Brendan Kehoe  
1781
 
1782
        * cvt.c (build_up_reference): Do checks of ARGTYPE and
1783
        TARGET_TYPE before trying to use get_binfo.
1784
 
1785
Fri Jun  6 17:36:39 1997  Jason Merrill  
1786
 
1787
        * cvt.c (build_up_reference): Call get_binfo to get access control.
1788
 
1789
        * decl2.c (import_export_decl): If we don't support weaks, leave
1790
        statics undefined.
1791
 
1792
Fri Jun  6 15:55:49 1997  Mike Stump  
1793
 
1794
        * except.c (expand_builtin_throw): Add support for machines that
1795
        cannot access globals after throw's epilogue when
1796
        -fno-sjlj-exceptions is used.
1797
 
1798
Thu Jun  5 16:28:43 1997  Jason Merrill  
1799
 
1800
        * parse.y: 'std::' becomes '::'.
1801
        * lex.c (real_yylex): Remove 'namespace' warning.
1802
        * init.c (build_member_call): Ignore 'std::'.
1803
        (build_offset_ref): Likewise.
1804
        * decl2.c (do_using_directive): Ignore 'using namespace std;'.
1805
        (do_toplevel_using_decl): Ignore 'using std::whatever'.
1806
        * decl.c (push_namespace): Just sorry.
1807
        (pop_namespace): Nop.
1808
        (init_decl_processing): Declare std namespace.
1809
 
1810
Tue Jun  3 18:08:23 1997  Jason Merrill  
1811
 
1812
        * search.c (push_class_decls): A name which ambiguously refers to
1813
        several instantiations of the same template just refers to the
1814
        template.
1815
 
1816
Tue Jun  3 12:30:40 1997  Benjamin Kosnik  
1817
 
1818
        * decl.c (build_enumerator): Fix problem with unsigned long
1819
        enumerated values being smashed to ints, causing overflow
1820
        when computing next enumerated value (for enum values around
1821
        MAX_VAL).
1822
 
1823
Mon Jun  2 17:40:56 1997  Jason Merrill  
1824
 
1825
        * typeck.c (build_component_ref): Only call mark_used on a decl.
1826
 
1827
Thu May 29 15:54:17 1997  Brendan Kehoe  
1828
 
1829
        * typeck.c (build_c_cast): Make the check for a ptr to function
1830
        more specific before possible default_conversion call.
1831
 
1832
Thu May 29 13:02:06 1997  Mike Stump  
1833
 
1834
        * except.c (expand_exception_blocks): Simplify and fix and make
1835
        sure we don't end a region in a sequence, as expand_end_bindings
1836
        doesn't like it.
1837
 
1838
Wed May 28 17:08:03 1997  Mike Stump  
1839
 
1840
        * except.c (init_exception_processing): Mark terminate as not
1841
        returning so that the optimizer can optimize better.
1842
 
1843
Tue May 27 19:49:19 1997  Mike Stump  
1844
 
1845
        * cvt.c (convert): Don't do any extra work, if we can avoid it
1846
        easily.
1847
 
1848
Tue May 27 18:21:47 1997  Mike Stump  
1849
 
1850
        * *.[chy]: Change cp_convert to ocp_convert, change convert to
1851
        cp_convert.  convert is now reserved for the backend, and doesn't
1852
        have the semantics a frontend person should ever want.
1853
 
1854
Fri May 23 10:58:31 1997  Jason Merrill  
1855
 
1856
        * lang-specs.h: Define __EXCEPTIONS if exceptions are enabled.
1857
        Lose -traditional support.
1858
 
1859
Thu May 22 15:41:28 1997  Jason Merrill  
1860
 
1861
        * rtti.c (get_tinfo_var): Use TYPE_PRECISION (sizetype).
1862
 
1863
        * parse.y (self_reference): Do it for templates, too.
1864
        * class.c (pushclass): Don't overload_template_name; the alias
1865
        generated by build_self_reference serves the same purpose.
1866
 
1867
        * tree.c (list_hash): Make static, take more args.
1868
        (list_hash_lookup): Likewise.
1869
        (list_hash_add): Make static.
1870
        (list_hash_canon): Lose.
1871
        (hash_tree_cons): Only build a new node if one isn't already in the
1872
        hashtable.
1873
        (hash_tree_chain): Use hash_tree_cons.
1874
        * cp-tree.h: Adjust.
1875
        * decl.c (grokfndecl): Just check IDENTIFIER_GLOBAL_VALUE instead
1876
        of calling lookup_name.
1877
 
1878
Wed May 21 18:24:19 1997  Jason Merrill  
1879
 
1880
        * pt.c (instantiate_class_template): TYPE_VALUES for an enum
1881
        doesn't refer to the CONST_DECLs.
1882
 
1883
Tue May 20 21:09:32 1997  Bob Manson  
1884
 
1885
        * rtti.c (get_tinfo_var): Either INT_TYPE_SIZE or 32, whichever
1886
        is bigger.
1887
        (expand_class_desc): Convert the last argument to a sizetype.
1888
 
1889
Tue May 20 13:55:57 1997  Brendan Kehoe  
1890
 
1891
        * gxx.gperf (__complex, __complex__, __imag, __imag__, __real,
1892
        __real__): Add reswords.
1893
        * hash.h: Regenerate.
1894
        * lex.h (rid): Add RID_COMPLEX.
1895
        (RID_LAST_MODIFIER): Set to RID_COMPLEX.
1896
        * lex.c (init_lex): Add building of RID_COMPLEX.
1897
        (real_yylex): General cleanup in line with what c-lex.c also has,
1898
        sans the cruft for traditional; add handling of SPEC_IMAG, complex
1899
        types, and imaginary numeric constants.
1900
        * parse.y (REALPART, IMAGPART): Add tokens.
1901
        (unary_expr): Add REALPART and IMAGPART rules.
1902
        * cp-tree.h (complex_{integer,float,double,long}_type_node): Declare.
1903
        * decl.c (complex_{integer,float,double,long}_type_node): Define
1904
        types.
1905
        (init_decl_processing): Set up the types.
1906
        (grokdeclarator): Add handling of RID_COMPLEX.  Set and use
1907
        DEFAULTED_INT instead of EXPLICIT_INT when we default to int type.
1908
        * call.c (build_new_op): Add REALPART_EXPR and IMAGPART_EXPR cases.
1909
        * cvt.c (cp_convert): Handle COMPLEX_TYPE.
1910
        * error.c (dump_type_prefix, dump_type, dump_type_suffix): Add
1911
        COMPLEX_TYPE case.
1912
        * method.c (build_overload_name): Add handling of the different
1913
        COMPLEX_TYPEs, prefixing them with `J'.
1914
        * pt.c (process_template_parm): Don't let them use a COMPLEX_TYPE
1915
        as a template parm.
1916
        (uses_template_parms, tsubst, unify): Add COMPLEX_TYPE case.
1917
        * tree.c (lvalue_p): Add REALPART_EXPR and IMAGPART_EXPR cases.
1918
        (mapcar): Handle COMPLEX_CST.
1919
        * typeck.c (build_binary_op_nodefault): Handle COMPLEX_TYPE.
1920
        (common_type): Add code for complex types.
1921
        (build_unary_op): Add REALPART_EXPR and IMAGPART_EXPR cases.
1922
        (convert_for_assignment): Likewise.
1923
        (mark_addressable): Add REALPART_EXPR and IMAGPART_EXPR cases.
1924
 
1925
Mon May 19 12:26:27 1997  Jason Merrill  
1926
 
1927
        * pt.c (tsubst): Don't pass the MINUS_EXPR for an array domain to
1928
        tsubst_expr, as it might try to do overload resolution.
1929
 
1930
Sat May 17 10:48:31 1997  Jason Merrill  
1931
 
1932
        * pt.c (instantiate_class_template): Oops.
1933
 
1934
Fri May 16 14:23:57 1997  Jason Merrill  
1935
 
1936
        * cp-tree.def: Add TAG_DEFN.
1937
        * pt.c (tsubst_enum): New fn.
1938
        (instantiate_class_template): Use it.
1939
        (tsubst_expr): Support TAG_DEFN.
1940
        (tsubst): Support local enums.
1941
        (tsubst_copy): Likewise.
1942
        * decl.c (finish_enum): Likewise.
1943
        (start_enum): If this is a local enum, switch to permanent_obstack.
1944
 
1945
Wed May 14 19:08:28 1997  Mike Stump  
1946
 
1947
        * decl.c (store_parm_decls): Set last_parm_cleanup_insn here.
1948
        (finish_function): Put the base init code for constructors just
1949
        after the parm cleanup insns.
1950
        (struct cp_function): Add last_parm_cleanup_insn.
1951
        (push_cp_function_context): Likewise.
1952
        (pop_cp_function_context): Likewise.
1953
 
1954
Tue May 13 15:51:20 1997  Jason Merrill  
1955
 
1956
        * pt.c (tsubst_copy): Handle BIT_NOT_EXPR.
1957
 
1958
Wed May  7 11:17:59 1997  Brendan Kehoe  
1959
 
1960
        * method.c (emit_thunk) [ASM_OUTPUT_MI_THUNK]: Build up the RTL
1961
        for THUNK_FNDECL before we switch to temporary allocation.
1962
 
1963
Mon May  5 14:46:53 1997  Jason Merrill  
1964
 
1965
        * call.c (build_new_op): Handle null arg2 for ?:.
1966
 
1967
Thu May  1 18:26:37 1997  Mike Stump  
1968
 
1969
        * except.c (expand_exception_blocks): Ensure that we flow through
1970
        the end of the exception region for the exception specification.
1971
        Move exception region for the exception specification in, so that
1972
        it doesn't protect the parm cleanup.  Remove some obsolete code.
1973
        * decl.c (store_parm_decls): Likewise.
1974
        (finish_function): Likewise.
1975
 
1976
Tue Apr 29 15:38:54 1997  Jason Merrill  
1977
 
1978
        * init.c (build_new): Fix nothrow handling.
1979
 
1980
Tue Apr 29 14:29:50 1997  Brendan Kehoe  
1981
 
1982
        * init.c (emit_base_init): Don't warn about the initialization
1983
        list for an artificial member.
1984
 
1985
Fri Apr 25 17:47:59 1997  Brendan Kehoe  
1986
 
1987
        * expr.c (do_case): Handle !START case for the error msg.
1988
 
1989
Fri Apr 25 11:55:23 1997  Jason Merrill  
1990
 
1991
        * decl2.c, lang-options.h: New option -Weffc++.
1992
        * class.c, decl.c, init.c, typeck.c: Move Effective C++ warnings
1993
        to -Weffc++.
1994
 
1995
        * decl2.c (finish_prevtable_vardecl): Change NO_LINKAGE_HEURISTICS
1996
        to MULTIPLE_SYMBOL_SPACES.
1997
 
1998
Wed Apr 23 18:06:50 1997  Jason Merrill  
1999
 
2000
        * method.c (emit_thunk, generic case): Set current_function_is_thunk.
2001
 
2002
        * method.c (emit_thunk, macro case): Set up DECL_RESULT.
2003
 
2004
        * typeck.c (c_expand_return): Don't complain about returning void
2005
        to void in an artificial function.
2006
        * method.c (make_thunk): Change settings of READONLY/VOLATILE,
2007
        don't set DECL_RESULT, set DECL_ARTIFICIAL.
2008
        (emit_thunk, generic code): Also set up DECL_LANG_SPECIFIC.
2009
 
2010
Wed Apr 23 14:43:06 1997  Mike Stump  
2011
 
2012
        * init.c (init_decl_processing): Add support for setjmp/longjmp based
2013
        exception handling.
2014
        * except.c (init_exception_processing): Likewise.
2015
        (expand_end_catch_block): Likewise.
2016
        (expand_exception_blocks): Likewise.
2017
        (expand_throw): Likewise.
2018
        * exception.cc (__default_terminate): Likewise.
2019
 
2020
        * init.c (perform_member_init): Use new method of expr level
2021
        cleanups, instead of cleanups_this_call and friends.
2022
        (emit_base_init): Likewise.
2023
        (expand_aggr_vbase_init_1): Likewise.
2024
        (expand_vec_init): Likewise.
2025
        * decl.c (cp_finish_decl): Likewise.
2026
        (expand_static_init): Likewise.
2027
        (store_parm_decls): Likewise.
2028
        (cplus_expand_expr_stmt): Likewise.
2029
        * decl2.c (finish_file): Likewise.
2030
 
2031
        * Make-lang.in (exception.o): Ok to compile with -O now.
2032
 
2033
        * decl.c (maybe_build_cleanup_1): We no longer have to unsave, as
2034
        we know it will be done later by the backend.
2035
 
2036
        * decl2.c (lang_f_options): Remove support for short temps.
2037
        * lang-options.h: Likewise.
2038
 
2039
Wed Apr 23 04:12:06 1997  Jason Merrill  
2040
 
2041
        * tree.c (varargs_function_p): New fn.
2042
        * method.c (emit_thunk): Replace broken generic code with code to
2043
        generate a heavyweight thunk function.
2044
 
2045
Tue Apr 22 02:45:18 1997  Jason Merrill  
2046
 
2047
        * pt.c (process_template_parm): pedwarn about floating-point parms.
2048
 
2049
        * decl.c (grokdeclarator): inline no longer implies static.
2050
 
2051
        * spew.c (yylex): Always return the TYPE_DECL if we got a scope.
2052
 
2053
Mon Apr 21 15:42:27 1997  Jason Merrill  
2054
 
2055
        * class.c (check_for_override): The signature of an overriding
2056
        function is not changed.
2057
 
2058
        * call.c (build_over_call): Move setting of conv into the loop.
2059
        Note: this change, along with the related changes of the 18th thru
2060
        the 20th of April, fix an infinite loop problem in conversions.
2061
 
2062
Sun Apr 20 16:24:29 1997  Jason Merrill  
2063
 
2064
        * call.c (build_user_type_conversion_1): Really ignore rvalue
2065
        conversions when looking for a REFERENCE_TYPE.
2066
 
2067
        * cvt.c (build_up_reference): Eviscerate, use build_unary_op.
2068
        * cp-tree.h (TREE_REFERENCE_EXPR): #if 0.
2069
        * typeck.c (decay_conversion): Don't set TREE_REFERENCE_EXPR.
2070
        (build_unary_op): Likewise.
2071
        * call.c (build_over_call): See through a CONVERT_EXPR around the
2072
        ADDR_EXPR for on a temporary.
2073
        * typeck.c (c_expand_return): See through a CONVERT_EXPR around
2074
        the ADDR_EXPR for a local variable.
2075
 
2076
Fri Apr 18 12:11:33 1997  Jason Merrill  
2077
 
2078
        * call.c (build_user_type_conversion_1): If we're trying to
2079
        convert to a REFERENCE_TYPE, only consider lvalue conversions.
2080
        (build_new_function_call): Print candidates.
2081
        (implicit_conversion): Try a temp binding if the lvalue conv is BAD.
2082
        (reference_binding): Binding a temporary of a reference-related type
2083
        is BAD.
2084
 
2085
Thu Apr 17 14:37:22 1997  Brendan Kehoe  
2086
 
2087
        * inc/typeinfo (type_info::before): Add cv-qualifier-seq.
2088
        * tinfo2.cc (type_info::before): Likewise.
2089
 
2090
Mon Apr 14 12:38:17 1997  Jason Merrill  
2091
 
2092
        * call.c (implicit_conversion): Oops.
2093
 
2094
Fri Apr 11 02:18:30 1997  Jason Merrill  
2095
 
2096
        * call.c (implicit_conversion): Try to find a reference conversion
2097
        before binding a const reference to a temporary.
2098
 
2099
Wed Apr  2 12:51:36 1997  Mike Stump  
2100
 
2101
        * exception.cc (__default_unexpected): Call terminate by default,
2102
        so that if the user overrides terminate, the correct function will
2103
        be called.
2104
 
2105
Wed Mar 19 14:14:45 1997  Mike Stump  
2106
 
2107
        * parse.y (left_curly): Avoid trying to use any fields of
2108
        error_mark_node, as there aren't any.
2109
 
2110
Thu Mar 13 16:33:22 1997  Jason Merrill  
2111
 
2112
        * lex.c (do_identifier): Avoid breaking on overloaded methods
2113
        as default arguments.
2114
 
2115
Wed Mar 12 13:55:10 1997  Hans-Peter Nilsson  
2116
 
2117
        * call.c (add_template_candidate): Initialize the variable "dummy".
2118
 
2119
Mon Mar 10 15:13:14 1997  Brendan Kehoe  
2120
 
2121
        * decl.c (start_decl): Make sure TYPE isn't an error_mark_node
2122
        before we try to use TYPE_SIZE and TREE_CONSTANT on it.
2123
 
2124
Fri Mar  7 13:19:36 1997  Brendan Kehoe  
2125
 
2126
        * cp-tree.h (comp_ptr_ttypes, more_specialized): Add decl.
2127
        (debug_binfo): Delete decl, not needed.
2128
 
2129
        * tree.c (fnaddr_from_vtable_entry, function_arg_chain,
2130
        promotes_to_aggr_type): Delete fns.
2131
        * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY,
2132
        SET_FNADDR_FROM_VTABLE_ENTRY, FUNCTION_ARG_CHAIN,
2133
        PROMOTES_TO_AGGR_TYPE): Delete alternates to #if 1.
2134
 
2135
        * decl.c (pending_invalid_xref{,_file,_line}): Delete unused vars.
2136
 
2137
        * friend.c (is_friend_type): Delete fn.
2138
        * cp-tree.h (is_friend_type): Delete decl.
2139
 
2140
        * decl.c (original_result_rtx, double_ftype_double,
2141
        double_ftype_double_double, int_ftype_int, long_ftype_long,
2142
        float_ftype_float, ldouble_ftype_ldouble, last_dtor_insn): Make static.
2143
        * typeck.c (original_result_rtx, warn_synth): Delete extern decls.
2144
 
2145
        * decl.c (push_overloaded_decl{,_top_level}): Make static, adding
2146
        fwd decls.
2147
        * cp-tree.h (push_overloaded_decl{,_top_level}): Delete decls.
2148
 
2149
        * decl.c (pushdecl_nonclass_level): #if 0, unused.
2150
        * cp-tree.h (pushdecl_nonclass_level): #if 0 decl.
2151
 
2152
        * lex.c (reinit_lang_specific): #if 0, unused.
2153
        * cp-tree.h (reinit_lang_specific): #if 0 decl.
2154
 
2155
        * decl.c (revert_static_member_fn): Make static, adding fwd decl.
2156
        * cp-tree.h (revert_static_member_fn): Delete decl.
2157
 
2158
        * class.c (root_lang_context_p): Delete fn.
2159
        * cp-tree.h (root_lang_context_p): Delete decl.
2160
 
2161
        * decl.c (set_current_level_tags_transparency): #if 0, unused.
2162
        * cp-tree.h (set_current_level_tags_transparency): #if 0 decl.
2163
 
2164
        * lex.c (set_vardecl_interface_info): Make static.
2165
        * cp-tree.h (set_vardecl_interface_info): Delete decl.
2166
 
2167
        * call.c (find_scoped_type): Make static.
2168
        * cp-tree.h (find_scoped_type): Delete decl.
2169
 
2170
        * search.c (convert_pointer_to_vbase): Make static.
2171
        * cp-tree.h (convert_pointer_to_vbase): Delete decl.
2172
 
2173
        * decl.c (const_ptr_type_node): Likewise.
2174
        * cp-tree.h (const_ptr_type_node): Delete decl.
2175
 
2176
        * typeck.c (common_base_type): Make static.
2177
        * cp-tree.h (common_base_types): Delete erroneous decl.
2178
 
2179
        * pt.c (classtype_mangled_name): Make static.
2180
        * cp-tree.h (classtype_mangled_name): Delete decl.
2181
 
2182
        * lex.c (check_newline): Make static.
2183
        * cp-tree.h (check_newline): Delete decl.
2184
 
2185
        * typeck.c (build_x_array_ref): Delete fn, same idea as
2186
        grok_array_decl.
2187
        * cp-tree.h (build_x_array_ref): Delete decl.
2188
 
2189
        * lex.c (copy_decl_lang_specific): Delete fn, same idea as
2190
        copy_lang_decl.
2191
        * cp-tree.h (copy_decl_lang_specific): #if 0 decl.
2192
 
2193
        * class.c (build_vtable_entry): Make static.
2194
        * cp-tree.h (build_vtable_entry): Delete decl.
2195
 
2196
        * class.c (build_vbase_pointer): Make static.
2197
        * cp-tree.h (build_vbase_pointer): Delete decl.
2198
 
2199
        * sig.c (build_sptr_ref): Add forward decl and make static.
2200
        * cp-tree.h (build_sptr_ref): Delete decl.
2201
 
2202
        * call.c (build_new_method_call): Add forward decl and make static.
2203
        * cp-tree.h (build_new_method_call): Delete decl.
2204
 
2205
        * call.c (build_object_call): Make static.
2206
        * class.c (check_for_override, complete_type_p, mark_overriders):
2207
        Likewise.
2208
        * decl.c (cp_function_chain): Likewise.
2209
        * lex.c (set_typedecl_interface_info, reinit_parse_for_block):
2210
        Likewise.
2211
        * pt.c (comp_template_args, get_class_bindings, push_tinst_level):
2212
        Likewise.
2213
        * tree.c (build_cplus_array_type_1): Likewise.
2214
        * typeck.c (comp_ptr_ttypes_{const,real,reinterpret}): Likewise.
2215
        (comp_target_parms): Likewise.
2216
 
2217
        * init.c (build_builtin_call): Make static.
2218
        * cp-tree.h (build_builtin_call): Delete decl.
2219
 
2220
        * typeck.c (binary_op_error): Delete decl.
2221
        * cp-tree.h (binary_op_error): Likewise.
2222
 
2223
Thu Mar  6 16:13:52 1997  Brendan Kehoe  
2224
 
2225
        * call.c (build_method_call): Compare against error_mark_node
2226
        directly, rather than the ERROR_MARK tree code.
2227
        * cvt.c (cp_convert): Likewise.
2228
        * decl.c (print_binding_level): Likewise.
2229
        (duplicate_decls): Likewise.
2230
        (grokdeclarator): Likewise.
2231
        (grokdeclarator): Likewise.
2232
        * init.c (expand_aggr_init_1): Likewise.
2233
        (decl_constant_value): Likewise.
2234
        * method.c (build_opfncall): Likewise.
2235
        (hack_identifier): Likewise.
2236
        * typeck.c (build_modify_expr): Likewise.
2237
 
2238
        * typeck.c (build_c_cast): Don't decl TYPE as register tree.
2239
 
2240
Sun Mar  2 02:54:36 1997  Bruno Haible  
2241
 
2242
        * pt.c (unify): Strip NOP_EXPR wrappers before unifying integer values.
2243
 
2244
        * pt.c (coerce_template_parms): Add new error message.
2245
 
2246
        * method.c (build_overload_value): Implement name mangling for
2247
        floating-point template arguments.
2248
 
2249
        * method.c (build_overload_int, icat, dicat): Fix mangling of template
2250
        arguments whose absolute value doesn't fit in a signed word.
2251
 
2252
Mon Mar  3 12:14:54 1997  Brendan Kehoe  
2253
 
2254
        * friend.c: New file; put all of the friend stuff in here.
2255
        * init.c: Instead of here.
2256
        * Makefile.in (CXX_OBJS): Add friend.o.
2257
        (friend.o): Add dependencies.
2258
        * Make-lang.in (CXX_SRCS): Add $(srcdir)/cp/friend.c.
2259
 
2260
Sun Mar  2 11:04:43 1997  Jason Merrill  
2261
 
2262
        * call.c (build_scoped_method_call): Complain if the scope isn't a
2263
        base.
2264
 
2265
Wed Feb 26 11:31:06 1997  Jason Merrill  
2266
 
2267
        * parse.y (left_curly): Don't crash on erroneous type.
2268
 
2269
        * init.c (build_delete): Fix type of ref.
2270
 
2271
Tue Feb 25 12:41:48 1997  Jason Merrill  
2272
 
2273
        * search.c (get_vbase_1): Renamed from get_vbase.
2274
        (get_vbase): Wrapper, now non-static.
2275
        (convert_pointer_to_vbase): Now static.
2276
 
2277
        * call.c (build_scoped_method_call): Accept a binfo for BASETYPE.
2278
        * init.c (build_delete): Pass one.
2279
        (build_partial_cleanup_for): Use build_scoped_method_call.
2280
        * decl.c (finish_function): Pass a binfo.
2281
 
2282
Mon Feb 24 15:00:12 1997  Jason Merrill  
2283
 
2284
        * call.c (build_over_call): Only synthesize non-trivial copy ctors.
2285
 
2286
        * typeck.c (build_c_cast): Lose other reference to flag.
2287
 
2288
        * call.c (build_field_call): Don't look for [cd]tor_identifier.
2289
        * decl2.c (delete_sanity): Remove meaningless use of
2290
        LOOKUP_HAS_IN_CHARGE.
2291
        * decl.c (finish_function): Use build_scoped_method_call instead
2292
        of build_delete for running vbase dtors.
2293
        * init.c (build_delete): Call overload resolution code instead of
2294
        duplicating it badly.
2295
 
2296
Thu Feb 20 15:12:15 1997  Jason Merrill  
2297
 
2298
        * call.c (build_over_call): Call mark_used before trying to elide
2299
        the call.
2300
 
2301
        * decl.c (implicitly_declare): Don't set DECL_ARTIFICIAL.
2302
 
2303
Wed Feb 19 11:18:53 1997  Brendan Kehoe  
2304
 
2305
        * typeck.c (build_modify_expr): Always pedwarn for a cast to
2306
        non-reference used as an lvalue.
2307
 
2308
Wed Feb 19 10:35:37 1997  Jason Merrill  
2309
 
2310
        * cvt.c (cp_convert_to_pointer): Convert from 0 to a pmf properly.
2311
 
2312
Tue Feb 18 15:40:57 1997  Jason Merrill  
2313
 
2314
        * parse.y (handler): Fix template typo.
2315
 
2316
Sun Feb 16 02:12:28 1997  Jason Merrill  
2317
 
2318
        * error.c (lang_decl_name): New fn.
2319
        * tree.c (lang_printable_name): Use it.
2320
 
2321
Fri Feb 14 16:57:05 1997  Mike Stump  
2322
 
2323
        * g++spec.c: Include config.h so that we can catch bzero #defines
2324
        from the config file.
2325
 
2326
Tue Feb 11 13:50:48 1997  Mike Stump  
2327
 
2328
        * new1.cc: Include a declaration for malloc, to avoid warning, and
2329
        avoid lossing on systems that require one (ones that define malloc
2330
        in xm.h).
2331
 
2332
Mon Feb 10 22:51:13 1997  Bruno Haible  
2333
 
2334
        * decl2.c (max_tinst_depth): New variable.
2335
        (lang_decode_option): Parse "-ftemplate-depth-NN" command line
2336
        option.
2337
        * pt.c (max_tinst_depth): Variable moved.
2338
        * lang-options.h: Declare "-ftemplate-depth-NN" command line option
2339
        as legal.
2340
 
2341
Fri Feb  7 15:43:34 1997  Jason Merrill  
2342
 
2343
        * decl.c (xref_basetypes): Allow a base class that depends on
2344
        template parms to be incomplete.
2345
 
2346
        * decl2.c (build_expr_from_tree): Support typeid(type).
2347
        * rtti.c (get_typeid): Support templates.
2348
        (expand_si_desc, expand_class_desc): Fix string length.
2349
        (expand_ptr_desc, expand_attr_desc, expand_generic_desc): Likewise.
2350
 
2351
Tue Feb  4 11:28:24 1997  Jason Merrill  
2352
 
2353
        * pt.c (unify, case TEMPLATE_CONST_PARM): Use cp_tree_equal.
2354
 
2355
        * pt.c (tsubst): Put it back for -fno-ansi-overloading.
2356
 
2357
Mon Feb  3 18:41:12 1997  Jason Merrill  
2358
 
2359
        * pt.c (tsubst, case FUNCTION_DECL): Lose obsolete code that
2360
        smashes together template and non-template decls of the same
2361
        signature.
2362
 
2363
Thu Jan 30 19:18:00 1997  Jason Merrill  
2364
 
2365
        * pt.c (tsubst): Don't recurse for the type of a TYPENAME_TYPE.
2366
 
2367
Wed Jan 29 11:40:35 1997  Brendan Kehoe  
2368
 
2369
        * decl.c (duplicate_decls): Next route, pedwarn about different
2370
        exceptions if -pedantic *or* olddecl !DECL_IN_SYSTEM_HEADER.
2371
 
2372
Tue Jan 28 20:43:29 1997  Brendan Kehoe  
2373
 
2374
        * cp-tree.h (HAS_DEFAULT_IMPLEMENTATION): Delete macro.
2375
        (struct lang_type): Delete has_default_implementation member.
2376
        Increase dummy to 21.
2377
        * decl.c (start_method): Delete usage.
2378
 
2379
        * cp-tree.h (build_call, null_ptr_cst_p, in_function_p,
2380
        store_after_parms, start_decl_1, auto_function): Add decls.
2381
        (get_arglist_len_in_bytes, declare_implicit_exception,
2382
        have_exceptions_p, make_type_decl, typedecl_for_tag,
2383
        store_in_parms, pop_implicit_try_blocks, push_exception_cleanup,
2384
        build_component_type_expr, cplus_exception_name,
2385
        {make,clear}_anon_parm_name, dont_see_typename): Removed decls.
2386
        * call.c (build_this): Make static.
2387
        (is_complete): Likewise.
2388
        (implicit_conversion): Likewise.
2389
        (reference_binding): Likewise.
2390
        (standard_conversion): Likewise.
2391
        (strip_top_quals): Likewise.
2392
        (non_reference): Likewise.
2393
        (build_conv): Likewise.
2394
        (user_harshness): Likewise.
2395
        (rank_for_ideal): Likewise.
2396
        * decl.c (start_decl_1): Delete forward decl.
2397
        (push_decl_level): Make static.
2398
        (resume_binding_level): Make static.
2399
        (namespace_bindings_p): Make static.
2400
        (declare_namespace_level): Make static.
2401
        (lookup_name_real): Make static.
2402
        (duplicate_decls): Make static.  Take register off NEWDECL and
2403
        OLDDECL parm decls.
2404
        * decl2.c (get_sentry): Make static.
2405
        (temp_name_p): Delete fn.
2406
        * except.c (auto_function): Delete decl.
2407
        * lex.c (handle_{cp,sysv}_pragma): Make static.
2408
        (handle_sysv_pragma) [HANDLE_SYSV_PRAGMA]: Add forward decl.
2409
        * method.c (do_build_{copy_constructor,assign_ref}): Make static.
2410
        * pt.c (tsubst_expr_values): Make static.
2411
        * rtti.c (combine_strings): Delete decl.
2412
 
2413
Tue Jan 28 16:40:40 1997  Jason Merrill  
2414
 
2415
        * pt.c (push_template_decl): Handle getting a typedef.
2416
 
2417
        * call.c (build_new_function_call): Complain about void arg.
2418
 
2419
Tue Jan 28 15:25:09 1997  Brendan Kehoe  
2420
 
2421
        * decl.c (duplicate_decls): Give pedwarn of different exceptions
2422
        if -pedantic, instead of olddecl !DECL_IN_SYSTEM_HEADER.
2423
 
2424
Mon Jan 27 19:21:29 1997  Mike Stump  
2425
 
2426
        * except.c (expand_throw): Don't expand the cleanup tree here,
2427
        since we are not going to write the rtl out.  Fixes problem with
2428
        -g -O on SPARC.
2429
 
2430
Mon Jan 27 16:24:35 1997  Sean McNeil  
2431
 
2432
        * Make-lang.in: Add $(exeext) as necessary.
2433
 
2434
Mon Jan 27 13:20:39 1997  Mike Stump  
2435
 
2436
        * parse.y (handler_seq): Must have at least one catch clause.
2437
 
2438
Sat Jan 25 12:00:05 1997  Jason Merrill  
2439
 
2440
        * call.c (add_builtin_candidate): Restore ?: hack.
2441
 
2442
        * decl.c (grok_op_properties): More warnings.
2443
 
2444
Sat Jan 25 08:50:03 1997  Brendan Kehoe  
2445
 
2446
        * decl.c (duplicate_decls): On second thought, do it as a pedwarn
2447
        still but only if !DECL_IN_SYSTEM_HEADER (olddecl).
2448
 
2449
        * decl.c (duplicate_decls): Scale back to a warning, and only do
2450
        'em if -pedantic.
2451
 
2452
Fri Jan 24 17:52:54 1997  Mike Stump  
2453
 
2454
        * decl.c (duplicate_decls): pedwarn mismatched exception
2455
        specifications.
2456
 
2457
Thu Jan 23 18:18:54 1997  Mike Stump  
2458
 
2459
        * call.c (build_new_method_call): Don't display the invisible
2460
        argument for controlling virtual bases.
2461
 
2462
Thu Jan 23 16:48:10 1997  Mike Stump  
2463
 
2464
        * new: Add nothrow new and delete, bad_alloc and throw specifications
2465
        for delete.
2466
        * decl.c (init_decl_processing): Add throw specification for delete.
2467
        * new.cc (nothrow): Define.
2468
        * lex.c (real_yylex): Removing warning that throw and friends are
2469
        keywords.
2470
        * new1.cc (operator new (size_t sz, const nothrow_t&)): Define.
2471
        * new2.cc (operator new[] (size_t sz, const nothrow_t&): Define.
2472
        * Make-lang.in: Add new{1,2}.{cc,o}.
2473
 
2474
Thu Jan 23 16:39:06 1997  Jason Merrill  
2475
 
2476
        * lex.c (cons_up_default_function): Fix return type of synth op=.
2477
 
2478
        * init.c (emit_base_init): Add warnings for uninitialized members
2479
        and bases.
2480
 
2481
        * decl.c (xref_basetypes): Add warning for non-polymorphic type
2482
        with destructor used as base type.
2483
 
2484
        * decl.c (grok_op_properties): Add warning for op= returning void.
2485
        * typeck.c (c_expand_return): Add warning for op= returning anything
2486
        other than *this.
2487
 
2488
        * class.c (finish_struct_1): Add warning for class with pointers
2489
        but not copy ctor or copy op=.
2490
 
2491
        * cp-tree.h (TI_PENDING_TEMPLATE_FLAG): New macro.
2492
        * pt.c (add_pending_template): Use it instead of LANG_FLAG_0.
2493
        (instantiate_template): If -fexternal-templates, add this
2494
        instantiation to pending_templates.
2495
 
2496
        * decl2.c (copy_assignment_arg_p): Disable old hack to support
2497
        Booch components.
2498
 
2499
Tue Jan 21 18:32:04 1997  Mike Stump  
2500
 
2501
        * cvt.c (cp_convert): pedwarn enum to pointer conversions.
2502
 
2503
Mon Jan 20 17:59:51 1997  Jason Merrill  
2504
 
2505
        * call.c (standard_conversion): Handle getting references.  Tack
2506
        on RVALUE_CONV here.  Do it for non-class types, too.
2507
        (reference_binding): Pass references to standard_conversion.
2508
        (implicit_conversion): Likewise.
2509
        (add_builtin_candidate): Disable one ?: kludge.
2510
        (convert_like): Handle RVALUE_CONVs for non-class types.
2511
        (joust): Disable the other ?: kludge.
2512
 
2513
Mon Jan 20 14:53:13 1997  Brendan Kehoe  
2514
 
2515
        * decl.c (init_decl_processing): Add code to build up common
2516
        function types beforehand, to avoid creation then removal of
2517
        things already in the hash table.
2518
 
2519
Mon Jan 20 14:43:49 1997  Jason Merrill  
2520
 
2521
        * decl.c (finish_function): Also zero out DECL_INCOMING_RTL for
2522
        the arguments.
2523
 
2524
        * error.c (dump_expr, TEMPLATE_CONST_PARM): Don't require
2525
        current_template_parms.
2526
 
2527
Fri Jan 17 10:25:42 1997  Jason Merrill  
2528
 
2529
        * search.c (lookup_field): Don't return a function, check want_type.
2530
 
2531
Thu Jan 16 18:14:35 1997  Brendan Kehoe  
2532
 
2533
        * init.c (build_new): Make sure PLACEMENT has a type.
2534
 
2535
Thu Jan 16 17:40:28 1997  Jason Merrill  
2536
 
2537
        * init.c (build_new): Support new (nothrow).
2538
 
2539
Wed Jan 15 12:38:14 1997  Jason Merrill  
2540
 
2541
        * pt.c (instantiate_decl): Also do push_to_top_level before setting
2542
        up DECL_INITIAL.
2543
 
2544
        * cp-tree.h (PARM_DEFAULT_FROM_TEMPLATE): New macro.
2545
        * pt.c (tsubst): Defer instantiation of default args.
2546
        * call.c (build_over_call): Until here.
2547
 
2548
Wed Jan 15 10:08:10 1997  Brendan Kehoe  
2549
 
2550
        * search.c (lookup_field): Make sure we have an
2551
        IDENTIFIER_CLASS_VALUE before we try to return it.
2552
 
2553
Thu Jan  9 07:19:01 1997  Brendan Kehoe  
2554
 
2555
        * call.c (build_method_call): Delete unused var PARM.
2556
        (build_overload_call_real): Likewise.
2557
        (build_object_call): Delete unused var P.
2558
        (build_new_op): Likewise.
2559
        * decl.c (builtin_type_tdescs_{arr, len, max}): #if 0 out static
2560
        var definitions, which are never used.
2561
        (shadow_tag): Delete unused var FN.
2562
        * expr.c (cplus_expand_expr): Delete unused var ORIGINAL_TARGET.
2563
        * init.c (build_new): Delete unused var ALLOC_TEMP.
2564
        * method.c (hack_identifier): Delete unused var CONTEXT.
2565
        (do_build_copy_constructor): Delete unused var NAME.
2566
        (synthesize_method): Delete unused var BASE.
2567
        * pt.c (lookup_template_class): Delete unused var CODE_TYPE_NODE.
2568
        * rtti.c (build_headof): Delete unused var VPTR.
2569
        (get_typeid): Delete unused var T.
2570
        * typeck.c (build_conditional_expr): Delete unused vars ORIG_OP1
2571
        and ORIG_OP2.
2572
        (build_ptrmemfunc): Delete unused vars U and NINDEX.
2573
        * typeck2.c (build_functional_cast): Delete unused var BINFO.
2574
 
2575
Wed Jan  8 13:09:54 1997  Jason Merrill  
2576
 
2577
        * search.c (lookup_field): Use IDENTIFIER_CLASS_VALUE to look up
2578
        things in a type being defined.
2579
        * decl.c (finish_enum): Reverse the values so that they are in
2580
        the correct order.
2581
 
2582
        * pt.c (instantiate_class_template): Don't initialize
2583
        BINFO_BASETYPES until the vector is filled out.
2584
        (unify): Don't abort on conflicting bindings, just fail.
2585
        (instantiate_decl): Do push_tinst_level before any tsubsting.
2586
 
2587
        * method.c (build_overload_value): Handle getting a
2588
        TEMPLATE_CONST_PARM for a pointer.
2589
 
2590
Tue Jan  7 14:00:58 1997  Jason Merrill  
2591
 
2592
        * init.c (expand_member_init): Don't give 'not a base' error for
2593
        templates.
2594
 
2595
        * pt.c (instantiate_decl): Call import_export_decl later.
2596
 
2597
        * pt.c (instantiate_class_template): Return a value.
2598
 
2599
        * parse.y (extension): New rule for __extension__.
2600
        (extdef, unary_expr, decl, component_decl): Use it.
2601
 
2602
Tue Jan  7 09:20:28 1997  Mike Stump  
2603
 
2604
        * class.c (base_binfo): Remove unused base_has_virtual member.
2605
        (finish_base_struct): Likewise.
2606
        (finish_struct_1): Likewise.
2607
 
2608
 
2609
 
2610
Copyright (C) 1997 Free Software Foundation, Inc.
2611
 
2612
Copying and distribution of this file, with or without modification,
2613
are permitted in any medium without royalty provided the copyright
2614
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.