]> gcc.gnu.org Git - gcc.git/blame - gcc/cp/ChangeLog
cse.c (rtx_cost): Add default case in enumeration switch.
[gcc.git] / gcc / cp / ChangeLog
CommitLineData
f9fc59e8
NC
1Sun Dec 21 15:59:00 1997 Nick Clifton <nickc@cygnus.com>
2
3 * decl2.c (lang_decode_option): Add support for -Wunknown-pragmas.
4
864b83b9
MM
5Thu Dec 18 14:51:50 1997 Mark Mitchell <mmitchell@usa.net>
6
6ba4439c
MM
7 * pt.c (coerce_template_parms): Make sure to digest_init if
8 possible.
9
864b83b9
MM
10 * decl.c (duplicate_decls): Make the newdecl virtual if the
11 olddecl was, just as is done with other attributes of olddecl.
12
02531345
JM
13Thu Dec 18 14:43:19 1997 Jason Merrill <jason@yorick.cygnus.com>
14
4cac9464
JM
15 * typeck.c (unary_complex_lvalue): Ignore op0 when taking the
16 address of an OFFSET_REF.
17
02531345
JM
18 * cp-tree.def: Add AGGR_INIT_EXPR.
19 * error.c, tree.c, typeck.c: Replace uses of NEW_EXPR with
20 AGGR_INIT_EXPR where appropriate.
21 * expr.c (cplus_expand_expr): Likewise. Simplify.
22
23 * decl2.c (finish_file): Remove call to register_exception_table.
24
4f4da4e9
BK
25Wed Dec 17 17:08:52 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
26
27 * pt.c (instantiate_class_template): Don't do injection when
28 processing_template_decl is true, as pollutes current_binding_level
29 for base classes.
30
840b09b4
PS
31Wed Dec 17 21:17:39 1997 Peter Schmid <schmid@ltoi.iap.physik.tu-darmstadt.de>
32
33 * pt.c (maybe_fold_nontype_arg): Add prototype.
34
6748b643
JM
35Tue Dec 16 10:31:20 1997 Jason Merrill <jason@yorick.cygnus.com>
36
37 * tree.c (mapcar): Handle TRY_CATCH_EXPR et al.
38 * error.c (dump_expr): Likewise.
39
4bfc4dda
JM
40Mon Dec 15 12:22:04 1997 Jason Merrill <jason@yorick.cygnus.com>
41
42 * typeck.c (build_function_call_real): Remove "inline called before
43 definition" pedwarn.
44
45 * pt.c (coerce_template_parms): Use maybe_fold_nontype_arg.
46
5c0ad672
JM
47Sun Dec 14 22:34:20 1997 Jason Merrill <jason@yorick.cygnus.com>
48
49 * cvt.c (cp_convert_to_pointer): Fix base conversion of pm's.
50
51 * pt.c (type_unification_real): Change __null to type void* with
52 a warning.
53
3042d5be
MM
54Sun Dec 14 20:38:35 1997 Mark Mitchell <mmitchell@usa.net>
55
56 * call.c (implicit_conversion): Don't call
57 build_user_type_conversion_1 with a NULL expr, since it will
58 crash.
59
60 * pt.c (unify): Don't try to unify array bounds if either array is
61 unbounded.
62
9664b89e
JM
63Fri Dec 12 16:09:14 1997 Jason Merrill <jason@yorick.cygnus.com>
64
65 * errfn.c (cp_pedwarn, cp_pedwarn_at, cp_error_at, cp_warning_at):
66 Replace extern decls with casts.
67
68 * decl.c (expand_start_early_try_stmts): Don't mess with a sequence.
69 Update last_parm_cleanup_insn.
70 (store_after_parms): Remove.
71 * cp-tree.h: Adjust.
72
ab23f787
JM
73Thu Dec 11 22:18:37 1997 Jason Merrill <jason@yorick.cygnus.com>
74
75 * decl2.c (comdat_linkage): Also set DECL_COMDAT.
76 (finish_file): Check DECL_COMDAT instead of weak|one_only.
77 (import_export_vtable): Use make_decl_one_only instead of
78 comdat_linkage for win32 tweak.
79 (import_export_decl): Likewise.
80 * pt.c (mark_decl_instantiated): Likewise.
81
82 * decl2.c (finish_file): Lose handling of templates in pending_statics.
83
0776059e
JM
84Thu Dec 11 21:12:09 1997 Jason Merrill <jason@yorick.cygnus.com>
85
86 * decl2.c (finish_file): Lose call to expand_builtin_throw.
87 * except.c (expand_builtin_throw): Remove.
88 * cp-tree.h: Remove ptr_ptr_type_node.
89 * decl.c: Likewise.
90
154bba13
TT
91Thu Dec 11 20:43:33 1997 Teemu Torma <tot@trema.com>
92
93 * decl.c (ptr_ptr_type_node): Define.
94 (init_decl_processing): Initialize it.
95 * cp-tree.h: Declare it.
96 * exception.cc (__cp_exception_info): Use __get_eh_info.
97 (__cp_push_exception): Ditto.
98 (__cp_pop_exception): Ditto.
99
100 From Scott Snyder <snyder@d0sgif.fnal.gov>:
101 * except.c (expand_builtin_throw): Use get_saved_pc_ref instead of
102 saved_pc.
103 (init_exception_processing): Removed saved_pc initialization.
104
c4ae3f91
JM
105Wed Dec 10 11:04:45 1997 Jason Merrill <jason@yorick.cygnus.com>
106
107 * pt.c (instantiate_decl): Defer all templates but inline functions.
108
67437d5b
JM
109Mon Dec 8 23:17:13 1997 Jason Merrill <jason@yorick.cygnus.com>
110
eb291d05
JM
111 * init.c (expand_vec_init): Don't fold a list of parameters.
112
67437d5b
JM
113 * decl.c (copy_args_p): Handle copy elision for types with virtual
114 bases.
115 * call.c (build_over_call): Likewise.
116
4de02abd
MM
117Sun Dec 7 22:38:12 1997 Mark Mitchell <mmitchell@usa.net>
118
119 * pt.c (lookup_template_function): Copy the template arguments,
120 not just the list containing them, to the permanent obstack.
121
0fb9f1c3
JM
122Sun Dec 7 15:53:06 1997 Jason Merrill <jason@yorick.cygnus.com>
123
2b8b44d8
JM
124 * except.c (expand_start_catch_block): suspend_momentary for the
125 terminate handler.
126
0fb9f1c3
JM
127 * error.c (dump_decl): Handle LOOKUP_EXPR.
128
129Sun Dec 7 15:45:07 1997 Mark Mitchell <mmitchell@usa.net>
130
131 * rtti.c (build_dynamic_cast): Copy the cast-to type to the
132 permanent obstack if we are processing a template decl.
133 * typeck.c (build_static_cast): Likewise.
134 (build_const_cast): Likewise.
135 (build_reinterpret_cast): Likewise.
136
137 * pt.c (coerce_template_parms): Coerce some expressions, even
138 when processing_template_decl.
139
79a7c7fa
JM
140Sun Dec 7 01:46:33 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
141
142 * typeck.c (build_binary_op_nodefault, pointer_diff): Symmetric
143 handling of pointer difference expressions.
144
145 * typeck.c (comp_target_types): Comparison of function/method types
146 is independent of nptrs.
147
148Sun Dec 7 01:40:27 1997 Mark Mitchell <mmitchell@usa.net>
149
150 * pt.c (tsubst): Avoid creating pointer to reference and
151 reference to reference types.
152
46422d6c
JM
153Sat Dec 6 01:29:37 1997 Jason Merrill <jason@yorick.cygnus.com>
154
155 * parse.y (do_id): New nonterminal.
156 (template_id): Use it.
157
7211716d
JM
158Fri Dec 5 01:17:34 1997 Jason Merrill <jason@yorick.cygnus.com>
159
160 * parse.y (template_id): do_identifier for PFUNCNAMEs, too.
161 * spew.c (yylex): Don't do_identifier here.
162 * decl2.c (build_expr_from_tree): Revert last change.
163
164 * decl2.c (build_expr_from_tree): Expand the name for a method call.
165 * parse.y (object_template_id): Don't try to take the DECL_NAME.
166
e701eb4d
JM
167Wed Dec 3 20:02:39 1997 Jason Merrill <jason@yorick.cygnus.com>
168
2face519
JM
169 * init.c (build_new): Use a TARGET_EXPR instead of SAVE_EXPR for
170 alloc_expr.
171 * call.c (build_op_delete_call): Adjust.
172
e701eb4d
JM
173 * except.c (expand_end_catch_block): Lose rethrow region.
174 (expand_start_catch_block): Likewise.
175 (expand_end_catch_block): Don't expand_leftover_cleanups.
176
53d4d75f
BK
177Wed Dec 3 13:24:04 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
178
179 * pt.c (tsubst): Remove tree_cons call (places redundant info into
180 DECL_TEMPLATE_INSTANTIATION).
181
aa36c081
JM
182Wed Dec 3 11:44:52 1997 Jason Merrill <jason@yorick.cygnus.com>
183
184 * tree.c (is_overloaded_fn): Handle getting a fn template.
185 (really_overloaded_fn): Likewise.
186 * error.c (dump_decl): Handle TEMPLATE_ID_EXPRs better.
187 * pt.c (check_explicit_specialization): Tweak.
188 (determine_explicit_specialization): Tweak.
189
190 * tree.c, cp-tree.h (get_target_expr): New fn.
191
956d6950
JL
192Wed Dec 3 08:47:27 1997 Paul Eggert <eggert@twinsun.com>
193
194 * pt.c (check_explicit_specialization): Fix misspelling in
195 diagnostic: `preceeded'.
196 * typeck.c (get_delta_difference): Fix misspelling in diagnostic:
197 `conversiona'.
198
aa36c081
JM
1991997-12-02 Mark Mitchell <mmitchell@usa.net>
200
201 * pt.c (determine_explicit_specialization): Avoid an internal
202 error for bad specializations.
203
204 * method.c (build_overload_value): Handle SCOPE_REF.
205
de35891e
JM
206Tue Dec 2 19:18:50 1997 Mike Stump <mrs@wrs.com>
207
208 * class.c (prepare_fresh_vtable): Enable even more complex MI
209 vtable names.
210
211Tue Dec 2 01:37:19 1997 Jason Merrill <jason@yorick.cygnus.com>
212
213 * exception.cc (__check_eh_spec): Optimize a bit.
214
215 * exception.cc (__cp_pop_exception): Lose handler arg.
216 * except.c (do_pop_exception): Likewise.
217 (push_eh_cleanup): Let the cleanup mechanism supply the handler.
218 (expand_end_catch_block): Likewise.
219
74cd8397
JM
220Fri Nov 28 01:58:14 1997 Jason Merrill <jason@yorick.cygnus.com>
221
222 * pt.c (check_explicit_specialization): Complain about using a
223 template-id for a non-specialization.
224
956d6950
JL
225Fri Nov 28 12:35:19 1997 Scott Christley <scottc@net-community.com>
226
227 * repo.c: Prototype rindex only if needed.
228 * xref.c: Likewise.
229
74cd8397
JM
230Fri Nov 28 01:56:35 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
231
232 * error.c (dump_decl): Handle TEMPLATE_ID_EXPR.
233
aa598818
JM
234Thu Nov 27 00:59:46 1997 Jason Merrill <jason@yorick.cygnus.com>
235
c2840dfb
JM
236 * typeck.c (build_const_cast): Handle references here instead of
237 handing off to convert_to_reference.
238
fb98cff6
JM
239 * except.c: Lose Unexpected, SetTerminate, SetUnexpected,
240 TerminateFunctionCall.
241 (init_exception_processing): Likewise. Terminate et al are now
242 the fns, not ADDR_EXPRs.
243 (various): Lose redundant assemble_external calls.
244 (do_unwind): s/BuiltinReturnAddress/builtin_return_address_fndecl/.
245
77be6f82
JM
246 * cp-tree.h (struct lang_decl_flags): Add comdat.
247 (DECL_COMDAT): New macro.
248 * decl.c (duplicate_decls): Propagate it.
249 (cp_finish_decl): Handle it.
250 * decl2.c (import_export_decl): Just set DECL_COMDAT on VAR_DECLs.
251
aa598818
JM
252 * class.c: Remove static pending_hard_virtuals.
253 (add_virtual_function): Take pointers to pending_virtuals
254 and pending_hard_virtuals.
255 (finish_struct_1): Pass them. Declare pending_hard_virtuals.
256
e872bb7a
JM
257Wed Nov 26 20:28:49 1997 Jason Merrill <jason@yorick.cygnus.com>
258
eb773359
JM
259 * decl2.c (import_export_vtable): If we support one_only but not
260 weak symbols, mark instantiated template vtables one_only.
261 (import_export_decl): Likewise for tinfo functions.
262 (finish_vtable_vardecl): Also write out vtables from explicitly
263 instantiated template classes.
264 * pt.c (mark_class_instantiated): Revert last change.
265
e872bb7a
JM
266 * except.c (expand_throw): Call mark_used on the destructor.
267
956d6950
JL
268Wed Nov 26 15:13:48 1997 Jeffrey A Law (law@cygnus.com)
269
270 * lex.c (lang_init): Enable flag_exceptions by default if no
271 command line switch was specified.
272
5ad5a526
MM
2731997-11-26 Mark Mitchell <mmitchell@usa.net>
274
275 * pt.c (unify): Handle `void' template parameters in
276 specializations.
277
92f5c135
JM
278Wed Nov 26 01:11:24 1997 Jason Merrill <jason@yorick.cygnus.com>
279
328d03d7
JM
280 * rtti.c (build_dynamic_cast): Handle template case here.
281 (build_dynamic_cast_1): Not here.
282
19754d4c
JM
283 * typeck2.c (digest_init): Make copies where appropriate.
284
285 * decl2.c (delete_sanity): resolve_offset_ref.
286
92f5c135
JM
287 * except.c (expand_start_catch_block): Fix catching a reference
288 to pointer.
289
290Tue Nov 25 11:28:21 1997 Jason Merrill <jason@yorick.cygnus.com>
291
292 * init.c (build_new): Copy size to the saveable obstack.
293
294 * init.c (build_new): Stick a CLEANUP_POINT_EXPR inside the
295 TRY_CATCH_EXPR for now.
296
20b90169
JM
297Mon Nov 24 12:15:55 1997 Jason Merrill <jason@yorick.cygnus.com>
298
9b493293
JM
299 * typeck.c (mark_addressable): Don't assume a FUNCTION_DECL
300 has DECL_LANG_SPECIFIC.
301
20b90169
JM
302 * exception.cc (struct cp_eh_info): Add handlers field.
303 (__cp_push_exception): Initialize it.
304 (__cp_pop_exception): Decrement it. Don't pop unless it's 0.
305 (__throw_bad_exception): Remove.
306 * except.c (call_eh_info): Add handlers field.
307 (get_eh_handlers): New fn.
308 (push_eh_cleanup): Increment handlers.
309
25d5eb3f
JM
310Fri Nov 21 12:22:07 1997 Jason Merrill <jason@yorick.cygnus.com>
311
6c20b7e9
JM
312 * except.c (expand_start_eh_spec): Use the try/catch code.
313 (expand_end_eh_spec): Likewise. Call __check_eh_spec instead of
314 doing everything inline.
315 (init_exception_processing): throw_type_match now takes
316 const void pointers.
317 * exception.cc (__check_eh_spec): New fn.
318 * inc/exception: Neither terminate nor unexpected return.
319 * decl.c: Make const_ptr_type_node public.
320 * tinfo2.cc (__throw_type_match_rtti): Take the typeinfos constly.
321
25d5eb3f
JM
322 * except.c (expand_start_catch_block): We only need the rethrow
323 region for non-sjlj exceptions.
324 (expand_end_catch_block): Likewise. Use outer_context_label_stack.
325
047f64a3
JM
326Thu Nov 20 14:40:17 1997 Jason Merrill <jason@yorick.cygnus.com>
327
ced78d8b
JM
328 * Make-lang.in (CXX_LIB2FUNCS): Add new op new and op delete objs.
329 (various.o): Likewise.
330 * inc/new: Add placement deletes. Add throw specs for default new.
331 * new.cc (set_new_handler): Move here from libgcc2.
332 * new1.cc (new (nothrow)): Catch a bad_alloc thrown from the handler.
333 (new): Move from libgcc2. Throw bad_alloc.
334 * new2.cc: Move the rest of the op news and op deletes from libgcc2.
335 * decl.c (init_decl_processing): Update exception specs on new and
336 delete.
337
047f64a3
JM
338 * method.c (build_decl_overload_real): Don't mess with global
339 placement delete.
340
341 * init.c (build_new): Check for null throw spec, not nothrow_t.
342
343 * decl.c (duplicate_decls): Don't complain about different exceptions
344 from an internal declaration.
345
346 * call.c (build_op_delete_call): Fix check for member fns again.
347
348 * decl2.c (import_export_decl): Interface hackery affects
349 virtual synthesized methods.
350
5951f637
JM
351Wed Nov 19 18:24:14 1997 Jason Merrill <jason@yorick.cygnus.com>
352
f2d773a2
JM
353 * decl.c (start_decl): Don't just complain about a mismatched
354 scope, fix it.
355
5951f637
JM
356 * decl.c (make_implicit_typename): Handle case where t is not
357 actually from context.
358 * tree.c (get_type_decl): Lose identifier case.
359 * spew.c (yylex): Lose useless call to identifer_typedecl_value.
360 * parse.y (nonnested_type): Just use lookup_name.
361 (complex_type_name): Just use IDENTIFIER_GLOBAL_VALUE.
362
363Wed Nov 19 11:45:07 1997 Michael Tiemann <tiemann@axon.cygnus.com>
364
365 * error.c (dump_function_name): Test DECL_LANG_SPECIFIC in case
366 T was built in C language context (for example, by
367 output_func_start_profiler).
368
bd2a82a6
JM
369Wed Nov 19 10:39:27 1997 Jason Merrill <jason@yorick.cygnus.com>
370
371 * decl.c (make_implicit_typename): New fn.
372 (lookup_name_real): Use it. Use current_class_type as the context.
373
8baa713c
BH
374Mon Nov 17 23:42:03 1997 Bruno Haible <haible@ilog.fr>
375
376 * pt.c (do_poplevel): Don't prohibit jumps into this contour.
377
37130ac3
JM
378Mon Nov 17 02:01:28 1997 Jason Merrill <jason@yorick.cygnus.com>
379
380 * friend.c (do_friend): Warn about non-template friends in templates.
381
382 * call.c (build_op_delete_call): Fix handling of inherited delete.
383
384 * search.c (dfs_record_inheritance): Ignore template type parms.
385
da4768fe
JM
386Sat Nov 15 00:30:51 1997 Jason Merrill <jason@yorick.cygnus.com>
387
388 * call.c (build_new_op): Fix copy error.
389 (build_op_new_call): New fn.
390 (build_op_delete_call): New fn.
391 * cp-tree.h: Declare them.
392 * init.c (build_new): Use them. Support placement delete.
393 (build_x_delete): Use build_op_delete_call.
394 (build_delete): Likewise.
395 * decl2.c (delete_sanity): Likewise.
396 (coerce_delete_type): Don't complain about placement delete.
397
2bb14213
JM
398Thu Nov 13 01:52:36 1997 Jason Merrill <jason@yorick.cygnus.com>
399
9babbf20
JM
400 * call.c (build_new_function_call): Remove unused 'obj' parm.
401 * cp-tree.h, typeck.c: Adjust.
402
2bb14213
JM
403 * init.c (build_new): Make the cleanup last longer.
404 (expand_vec_init): Call do_pending_stack_adjust.
405
a7d87521
JM
406Wed Nov 12 11:04:33 1997 Jason Merrill <jason@yorick.cygnus.com>
407
408 * pt.c (do_type_instantiation): Fix typo.
409 (mark_class_instantiated): If we support one_only but not weak
410 symbols, don't mark this as known.
411
2bd3bc6f 412 * init.c (build_new): Handle vec delete in EH cleanup.
a7d87521 413
6d2b1bee
BK
414Wed Nov 12 08:11:55 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
415
416 * call.c (build_method_call): Call complete_type before checking
417 for destructor.
418
69f9c1f6
JW
419Sun Nov 9 01:29:55 1997 Jim Wilson (wilson@cygnus.com)
420
421 * decl.c (add_block_current_level): Delete.
422 * init.c (build_vec_delete_1): Delete build_block and
423 add_block_current_level calls.
424
1f109f0f
JM
425Wed Nov 12 00:48:16 1997 Jason Merrill <jason@yorick.cygnus.com>
426
427 * init.c (build_new): Handle freeing allocated memory when the
428 constructor throws.
429
430 * call.c (build_new_method_call): Fix flags arg.
431
432 * pt.c (do_type_instantiation): Don't try to instantiate
433 member templates.
434 (mark_decl_instantiated): If we support one_only but not
435 weak symbols, mark this one_only.
436 * decl2.c (import_export_vtable): Don't defer handling of vtables
437 if MULTIPLE_SYMBOL_SPACES.
438
0b3ca5ee
JM
439Tue Nov 11 12:02:12 1997 Jason Merrill <jason@yorick.cygnus.com>
440
441 * except.c (expand_end_catch_block): Lose call to __sjpopnthrow.
442
c0700ea5
JM
443Tue Nov 11 02:53:44 1997 Jason Merrill <jason@lasher.cygnus.com>
444
445 * except.c (do_pop_exception): Return a value.
446
00d3396f
JM
447Mon Nov 10 20:25:31 1997 Jason Merrill <jason@yorick.cygnus.com>
448
449 * call.c (build_new_method_call): Handle getting a
450 TEMPLATE_ID_EXPR around a TEMPLATE_DECL. Don't look for a field
451 if we got template parms.
452 * typeck.c (build_x_function_call): Remember the TEMPLATE_ID_EXPR,
453 not just the args.
454 * decl2.c (build_expr_from_tree): Tweak last change.
455 * pt.c (tsubst_copy): Use get_first_fn instead of TREE_VALUE.
456 (maybe_fold_nontype_arg): Split out from tsubst_copy.
457 * tree.c (get_first_fn): Just return a TEMPLATE_ID_EXPR.
458
459Mon Nov 10 20:08:38 1997 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu>
460
461 * pt.c (tsubst_copy): Handle explicit template arguments in
462 function calls.
463 * typeck.c (build_x_function_call): Likewise.
464 * decl2.c (build_expr_from_tree): Lookup function name if it
465 hasn't been done.
466
467 * pt.c (tsubst): Instantiate template functions properly when
468 template parameter does not appear in function arguments and return
469 type.
470 (comp_template_args): Handle member templates required by tsubst.
471
343fdf03
JM
472Mon Nov 10 20:08:38 1997 Jason Merrill <jason@yorick.cygnus.com>
473
474 * decl.c (grokdeclarator): Tweak conditions for pedwarn in
475 previous change.
476
477Mon Nov 10 20:08:29 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
478
479 * pt.c (coerce_template_parms): Tweak error message.
480
481 * decl.c (grokdeclarator): If -Wreturn-type, warn everytime a
482 return type defaults to `int', even if there are storage-class
483 specifiers.
484
c7ae64f2
JM
485Mon Nov 10 03:04:20 1997 Jason Merrill <jason@yorick.cygnus.com>
486
487 Complete nested exception support.
488 * except.c (do_pop_exception): Split out...
489 (push_eh_cleanup): From here. Handle the EH region by hand.
490 (expand_start_catch_block): Add a new level for the catch parm.
491 Move the rethrow region outside the two cleanup regions.
492 Protect the initializer for the catch parm with terminate.
493 (expand_end_catch_block): Likewise. End the region for the eh_cleanup.
494 * exception.cc (__cp_pop_exception): Now takes two parms. Handle
495 popping off the middle of the stack.
496 * tree.c (lvalue_p, real_lvalue_p): Handle TRY_CATCH_EXPR,
497 WITH_CLEANUP_EXPR, and UNSAVE_EXPR.
498 (build_cplus_new): Only wrap CALL_EXPRs.
499 * init.c (expand_default_init): Handle a TRY_CATCH_EXPR around
500 the constructor call.
501
502Sun Nov 9 18:00:26 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
503
504 * Make-lang.in (c++.distdir): Make inc subdirectory.
505
bd871063
JM
506Fri Nov 7 11:57:28 1997 Jason Merrill <jason@yorick.cygnus.com>
507
508 * decl2.c (finish_file): Put back some code.
509
4d6efa25
JM
510Thu Nov 6 11:28:14 1997 Jason Merrill <jason@yorick.cygnus.com>
511
512 * decl2.c (finish_file): Remove redundant code.
513 * method.c (emit_thunk): Don't let the backend defer generic thunks.
514
95e8dcba
JM
515Wed Nov 5 23:52:50 1997 Jason Merrill <jason@yorick.cygnus.com>
516
517 * except.c (call_eh_info): Split out...
518 (push_eh_info): From here.
519 (expand_builtin_throw): Use it.
520 (expand_start_catch_block): Move region start back.
521
30c317f5
DE
522Tue Nov 4 13:45:10 1997 Doug Evans <devans@canuck.cygnus.com>
523
524 * lex.c (MULTIBYTE_CHARS): #undef if cross compiling.
525 (real_yylex): Record wide strings using target endianness, not host.
526
a8a63732
BK
5271997-11-03 Brendan Kehoe <brendan@lisa.cygnus.com>
528
529 * repo.c (rindex): Add decl unconditionally.
530 (get_base_filename, open_repo_file): Don't cast rindex.
531 * xref.c (rindex): Add decl unconditionally.
532 (index): Remove unused decl.
533 (open_xref_file): Don't cast rindex.
534
b9ddcfac
JM
535Sun Nov 2 15:04:12 1997 Jason Merrill <jason@yorick.cygnus.com>
536
537 * class.c (build_vbase_path): Propagate the result type properly.
538
5a0fa1de
BK
5391997-11-01 Brendan Kehoe <brendan@lisa.cygnus.com>
540
55e0182b
BK
541 * except.c (expand_builtin_throw) [!DWARF2_UNWIND_INFO]: Replace
542 remaining use of saved_throw_type with a call to get_eh_type.
543
5441997-10-31 Brendan Kehoe <brendan@lisa.cygnus.com>
545
b2bb2710
BK
546 * lex.c (FILE_NAME_NONDIRECTORY): Delete macro.
547 (file_name_nondirectory): New function, doing the same as the macro.
548 (set_typedecl_interface_info): Use it instead of the macro.
549 (check_newline): Likewise.
550 (handle_cp_pragma): Likewise.
551
552 * repo.c (get_base_filename): Cast result of rindex to char*.
553 (open_repo_file): Likewise.
554 * xref.c (open_xref_file): Likewise.
555 * error.c (dump_char): Make its arg int, not char.
556
cf9d67e3
BK
557 * except.c (push_eh_info): Pass the number of fields - 1 down, not
558 the exact number of fields.
559
6874c264
JM
560Fri Oct 31 01:47:57 1997 Jason Merrill <jason@yorick.cygnus.com>
561
562 Support for nested exceptions.
563 * tinfo2.cc (__is_pointer): New fn.
564 * exception.cc (struct cp_eh_info): Define.
565 (__cp_exception_info, __uncatch_exception): New fns.
566 (__cp_push_exception, __cp_pop_exception): New fns.
567 * except.c: Lose saved_throw_{type,value,cleanup,in_catch}.
568 Lose empty_fndecl.
569 (init_exception_processing): Likewise. __eh_pc is now external.
570 (push_eh_info): New fn.
571 (get_eh_{info,value,type,caught}): New fns.
572 (push_eh_cleanup): Just call __cp_pop_exception.
573 (expand_start_catch_block): Use push_eh_info. Start the eh region
574 sooner.
575 (expand_end_eh_spec): Use push_eh_info.
576 (expand_throw): Call __cp_push_exception to set up the exception info.
577 Just pass the destructor or 0 as the cleanup. Call __uncatch_exception
578 when we rethrow.
579 (expand_builtin_throw): Don't refer to empty_fndecl.
580
7b4f18a3
JM
581Thu Oct 23 02:01:30 1997 Jason Merrill <jason@yorick.cygnus.com>
582
583 * pt.c (instantiate_decl): SET_DECL_IMPLICIT_INSTANTIATION on new decl.
584
4966381a
BK
5851997-10-22 Brendan Kehoe <brendan@cygnus.com>
586
587 * method.c (build_template_parm_names, build_decl_overload_real):
588 Add static to definitions.
589 * pt.c (add_to_template_args, note_template_header,
590 processing_explicit_specialization, type_unification_real): Likewise.
591 ({determine,check}_explicit_specialization): Use a single string for
592 error messages.
593
92b96838
JM
594Mon Oct 20 12:06:34 1997 Jason Merrill <jason@yorick.cygnus.com>
595
596 * except.c (expand_exception_blocks): Call do_pending_stack_adust.
597 (expand_end_catch_block): Likewise.
598 (expand_end_eh_spec): Likewise.
599
92eca640
MM
600Mon Oct 20 11:44:20 1997 Mark Mitchell <mmitchell@usa.net>
601
602 * decl.c (duplicate_decls): Handle template specializations
603 correctly.
604 * error.c (dump_function_name): Fix printing of specializations of
605 member functions that are not member templates.
606 * cp-tree.h (processing_specialization): Make global.
607 * pt.c (processing_specialization): Likewise.
608 * lex.c (cons_up_default_function): Save and restore
609 processing_specialization to avoid confusion.
610
a6967cc0
JM
611Mon Oct 20 10:52:22 1997 Jason Merrill <jason@yorick.cygnus.com>
612
613 * decl.c (init_decl_processing): Give null_node unknown* type.
614 * typeck.c (comp_target_types): Handle UNKNOWN_TYPE.
615 (common_type): Likewise.
616 * error.c (args_as_string): Recognize null_node.
e9a25f70
JL
617
618Sun Oct 19 09:13:01 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
619
620 * typeck.c (rationalize_conditional_expr): Handle {MIN,MAX}_EXPR.
621 (unary_complex_lvalue): Call it for {MIN,MAX}_EXPR.
622
623 * decl.c (init_decl_processing): Call using_eh_for_cleanups.
624
625 * Make-lang.in (g++): Include prefix.o.
a6967cc0 626
bdd7e652
JG
627Thu Oct 16 15:31:09 1997 Judy Goldberg <judygold@sanwafp.com>
628
629 * pt.c (determine_explicit_specialization): Initialize "dummy"
630 to keep Purify quiet.
631
2636fde4
JM
632Thu Oct 16 00:14:48 1997 Jason Merrill <jason@yorick.cygnus.com>
633
634 * method.c (build_overload_value): Handle TEMPLATE_CONST_PARMs here.
635 (build_overload_int): Not here.
636
637Wed Oct 15 00:35:28 1997 Mike Stump <mrs@wrs.com>
638
639 * class.c (build_type_pathname): Remove.
640 (prepare_fresh_vtable): Fix problem with complex MI vtable names.
641
32066e1a
BK
6421997-10-14 Brendan Kehoe <brendan@lisa.cygnus.com>
643
644 * parse.y (unary_expr): Give a pedwarn if someone tries to use the
645 &&label GNU extension.
646
1f06b267
MM
647Tue Oct 14 12:01:00 1997 Mark Mitchell <mmitchell@usa.net>
648
649 * decl.c (pushtag): Unset DECL_ASSEMBLER_NAME before setting it,
650 so as to avoid incorrect manglings.
651 * method.c (build_decl_overload_real): Don't mangle return types
652 for constructors.
653
e66d884e
JM
654Tue Oct 14 11:46:14 1997 Jason Merrill <jason@yorick.cygnus.com>
655
656 * cp-tree.h (scratchalloc, build_scratch_list, make_scratch_vec,
657 scratch_tree_cons): Define as macros for now.
658 * call.c, class.c, cvt.c, decl.c, decl2.c, except.c, expr.c, init.c,
659 lex.c, method.c, parse.y, pt.c, rtti.c, search.c, tree.c, typeck.c,
660 typeck2.c: Use them and the expression_obstack variants.
dae1d6f6 661
e66d884e 662Mon Oct 13 17:41:26 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
dae1d6f6 663
e66d884e
JM
664 * decl.c (store_return_init): Allow classes with explicit ctors to
665 be used with the named return values extension.
dae1d6f6 666
7ac63bca
JM
667Fri Oct 10 12:21:11 1997 Jason Merrill <jason@yorick.cygnus.com>
668
669 * pt.c (instantiate_decl): Fix previous change.
670
fee23f54
JM
671Thu Oct 9 12:08:21 1997 Jason Merrill <jason@yorick.cygnus.com>
672
673 * pt.c (tsubst): Fix thinko.
674 (instantiate_decl): Really use the original template.
675
676 * call.c (build_new_method_call): Use simple constructor_name for
677 error messages.
678
c8907853
JL
679Wed Oct 8 22:44:42 1997 Jeffrey A Law (law@cygnus.com)
680
681 * method.c (build_underscore_int): Don't use ANSI specific
682 features.
683
3bd1e206
JM
684Wed Oct 8 00:18:22 1997 Jason Merrill <jason@yorick.cygnus.com>
685
686 * decl2.c (finish_prevtable_vardecl): Check DECL_REALLY_EXTERN
687 for our key method; it might have been inlined by -O3.
688
ffb690bd
JM
689Tue Oct 7 23:00:12 1997 Mark Mitchell <mmitchell@usa.net>
690
691 * decl.c (make_typename_type): Do not try to call lookup_field for
692 non-aggregate types.
693
694Tue Oct 7 22:52:10 1997 Jason Merrill <jason@yorick.cygnus.com>
695
696 * typeck.c (build_reinterpret_cast): Tweak.
697
698Tue Oct 7 22:45:31 1997 Alexandre Oliva <oliva@dcc.unicamp.br>
699
700 * typeck.c (build_reinterpret_cast): converting a void pointer
701 to function pointer with a reinterpret_cast produces a warning
702 if -pedantic is issued
703
704Tue Oct 7 22:43:43 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
705
706 * typeck.c (c_expand_return): Don't warn about returning a
707 reference-type variable as a reference.
708
a6f02587
JM
709Tue Oct 7 21:11:22 1997 Jason Merrill <jason@yorick.cygnus.com>
710
711 * method.c (build_static_name): Fix typo.
712
7131997-10-07 Brendan Kehoe <brendan@lisa.cygnus.com>
714
715 * decl.c (duplicate_decls): Make sure DECL_LANG_SPECIFIC is set on
716 OLDDECL before we try to do DECL_USE_TEMPLATE.
717
c32381b1
JM
718Tue Oct 7 00:48:36 1997 Jason Merrill <jason@yorick.cygnus.com>
719
720 * decl.c (duplicate_decls): Don't warn about template instances.
721
722 * typeck.c (mark_addressable): Lose ancient code that unsets
723 DECL_EXTERNAL.
724
725 * pt.c (do_decl_instantiation): Lose support for instantiating
726 non-templates.
727
728 * call.c (build_new_function_call): Fix handling of null explicit
729 template args.
730 (build_new_method_call): Likewise.
731
732Mon Oct 6 23:44:34 1997 Mark Mitchell <mmitchell@usa.net>
733
734 * method.c (build_underscore_int): Fix typo.
735
3f2270ec
BK
7361997-10-06 Brendan Kehoe <brendan@lisa.cygnus.com>
737
738 * tree.c (print_lang_statistics): #if 0 call to
739 print_inline_obstack_statistics until its definition is checked in.
740
27bb8339
JM
741Mon Oct 6 09:27:29 1997 Jason Merrill <jason@yorick.cygnus.com>
742
c32381b1
JM
743 * decl2.c (finish_file): Move dump_tree_statistics to end.
744
27bb8339
JM
745 * pt.c (instantiate_decl): Look for the original template.
746 (tsubst): Set DECL_IMPLICIT_INSTANTIATION on partial instantiations
747 of member templates.
748
5408ce78
JM
749Wed Oct 1 08:41:38 1997 Jason Merrill <jason@yorick.cygnus.com>
750
751 * Makefile.in (g++FAQ.*): New rules.
752 (CONFLICTS): Update.
753 * g++FAQ.texi: Moved from libg++.
754
755 * parse.y (PFUNCNAME): Only specify the type once.
756
a3f44a13
BK
7571997-10-01 Brendan Kehoe <brendan@lasher.cygnus.com>
758
759 * lex.c (real_yylex): Clean up the code to fully behave the way
760 the c-lex.c parser does for complex and real numbers.
761
5a45bc3e
JM
762Tue Sep 30 08:51:36 1997 Jason Merrill <jason@yorick.cygnus.com>
763
764 * method.c (build_decl_overload_real): Reformat.
765
b7067a12
JM
766Tue Sep 30 00:18:26 1997 Jason Merrill <jason@yorick.cygnus.com>
767
768 * method.c (synthesize_method): If at_eof, determine our linkage.
769
4f6140be
PE
7701997-09-29 Paul Eggert <eggert@twinsun.com>
771
772 * lex.c (real_yylex): Treat `$' just like `_', except issue a
773 diagnostic if !dollars_in_ident or if pedantic.
774
775 * lang-specs.h (@c++): -ansi no longer implies -$.
776
777 * decl2.c (lang_decode_option):
778 -traditional and -ansi now do not mess with
779 dollars_in_ident.
780
9f617717
L
781Mon Sep 29 19:57:51 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
782
783 * Makefile.in (parse.o, decl.o): Also depend on
784 $(srcdir)/../except.h $(srcdir)/../output.h.
785 (decl2.o): Also depend on $(srcdir)/../expr.h ../insn-codes.h
786 $(srcdir)/../except.h $(srcdir)/../output.h.
787 (typeck.o, init.o): Also depend on $(srcdir)/../expr.h
788 ../insn-codes.h.
789
790 * call.c, cp-tree.h, decl.c, tree.c: Finish prototyping.
791
792 * expr.c (cplus_expand_expr): Make it static.
793
794 * decl2.c, init.c, typeck.c: Include "expr.h".
795 (expand_expr): Use proper values when calling the function.
796
0c4b14c4
JM
797Mon Sep 29 11:05:54 1997 Alexandre Oliva <oliva@dcc.unicamp.br>
798
799 * lang-options.h: new -Wold-style-cast flag.
800 * cp-tree.h (warn_old_style_cast): new variable.
801 * decl2.c (warn_old_style_cast): ditto.
802 (lang_decode_option): support -Wold-style-cast.
803 (reparse_absdcl_as_casts): produce old-style-cast warning.
804
805Mon Sep 29 09:20:53 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
806
807 * decl.c (cp_finish_decl): Allow expand_aggr_init to set
808 TREE_USED, reset value based on already_used.
809
810 * init.c (expand_member_init): Revert change.
811
893de33c
JM
812Mon Sep 29 08:57:53 1997 Jason Merrill <jason@yorick.cygnus.com>
813
814 * cp-tree.h, decl.c, decl2.c, pt.c:
815 Lose DECL_C_STATIC and DECL_PUBLIC. Don't pretend statics are public.
816
817 * decl2.c (lang_decode_option): Add missing ;.
818
386b8a85
JM
819Sat Sep 27 16:22:48 1997 Jason Merrill <jason@yorick.cygnus.com>
820
821 * friend.c (do_friend): Disable injection for all template-derived
822 decls.
823 * decl2.c (lang_decode_option): Handle -fguiding-decls.
824 * parse.y (notype_template_declarator): New nonterminal.
825 (direct_notype_declarator): Use it.
826 (complex_direct_notype_declarator): Likewise.
827 (object_template_id): Accept any kind of identifier after TEMPLATE.
828 (notype_qualified_id): Don't add template declarators here.
829
830Sat Sep 27 16:21:58 1997 Mark Mitchell <mmitchell@usa.net>
831
832 * call.c (add_template_candidate): Add explicit_targs parameter.
833 (build_scoped_method_call): Use it.
834 (build_overload_call_real): Likewise.
835 (build_user_type_conversion_1): Likewise.
836 (build_new_function_call): Likewise.
837 (build_object_call): Likewise.
838 (build_new_op): Likewise.
839 (build_new_method_call): Likewise.
840 (build_new_function_call): Handle TEMPLATE_ID_EXPR.
841 (build_new_method_call): Likewise.
842
843 * class.c (finish_struct_methods): Add specialization pass to
844 determine which methods were specializing which other methods.
845 (instantiate_type): Handle TEMPLATE_ID_EXPR.
846
847 * cp-tree.def (TEMPLATE_ID_EXPR): New tree code.
848
849 * cp-tree.h (name_mangling_version): New variable.
850 (flag_guiding_decls): Likewise.
851 (build_template_decl_overload): New function.
852 (begin_specialization): Likewise.
853 (reset_specialization): Likewise.
854 (end_specialization): Likewise.
855 (determine_explicit_specialization): Likewise.
856 (check_explicit_specialization): Likewise.
857 (lookup_template_function): Likewise.
858 (fn_type_unification): Add explicit_targs parameter.
859 (type_unification): Likewise.
860
861 * decl.c (duplicate_decls): Add smarts for explicit
862 specializations.
863 (grokdeclarator): Handle TEMPLATE_ID_EXPR, and function
864 specializations.
865 (grokfndecl): Call check_explicit_specialization.
866
867 * decl2.c (lang_decode_option): Handle -fname-mangling-version.
868 (build_expr_from_tree): Handle TEMPLATE_ID_EXPR.
869 (check_classfn): Handle specializations.
870
871 * error.c (dump_function_name): Print specialization arguments.
872
873 * friend.c (do_friend): Don't call pushdecl for template
874 instantiations.
875
876 * init.c (build_member_call): Handle TEMPLATE_ID_EXPR.
877
878 * lang-options.h: Add -fname-mangling-version, -fguiding-decls,
879 and -fno-guiding-decls.
880
881 * lex.c (identifier_type): Return PFUNCNAME for template function
882 names.
883
884 * method.c (build_decl_overload_real): New function.
885 (build_template_parm_names): New function.
886 (build_overload_identifier): Use it.
887 (build_underscore_int): New function.
888 (build_overload_int): Use it. Add levels for template
889 parameters.
890 (build_overload_name): Likewise. Also, handle TYPENAME_TYPEs.
891 (build_overload_nested_names): Handle template type parameters.
892 (build_template_decl_overload): New function.
893
894 * parse.y (YYSTYPE): New ntype member.
895 (nested_name_specifier): Use it.
896 (nested_name_specifier_1): Likewise.
897 (PFUNCNAME): New token.
898 (template_id, object_template_id): New non-terminals.
899 (template_parm_list): Note specializations.
900 (template_def): Likewise.
901 (structsp): Likewise.
902 (fn.def2): Handle member template specializations.
903 (component_decl_1): Likewise.
904 (direct_notype_declarator): Handle template-ids.
905 (component_decl_1): Likewise.
906 (direct_notype_declarator): Handle template-ids.
907 (primary): Handle TEMPLATE_ID_EXPR, and template-ids.
908
909 * pt.c (processing_specializations): New variable.
910 (template_header_count): Likewise.
911 (type_unification_real): New function.
912 (processing_explicit_specialization): Likewise.
913 (note_template_header): Likewise.
914 (is_member_template): Handle specializations.
915 (end_template_decl): Call reset_specialization.
916 (push_template_decl): Handle member template specializations.
917 (tsubst): Likewise.
918 (tsubst_copy): Handle TEMPLATE_ID_EXPR.
919 (instantiate_template): Handle specializations.
920 (instantiate_decl): Likewise.
921 (fn_type_unification): Handle explicit_targs.
922 (type_unification): Likewise. Allow incomplete unification
923 without an error message, if allow_incomplete.
924 (get_bindings): Use new calling sequence for fn_type_unification.
925
926 * spew.c (yylex): Handle PFUNCNAME.
927
928 * tree.c (is_overloaded_fn): Handle TEMPLATE_ID_EXPR.
929 (really_overloaded_fn): Likewise.
930 (get_first_fn): Handle function templates.
931
932 * typeck.c (build_x_function_call): Use really_overloaded_fn.
933 Handle TEMPLATE_ID_EXPR.
934 (build_x_unary_op): Likewise.
935 (build_unary_op): Likewise.
936 (mark_addressable): Templates whose address is taken are marked
937 as used.
938
b9620d0e
AS
9391997-09-25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
940
941 * decl.c (init_decl_processing): Declare __builtin_constant_p as
942 accepting any kind of type, not only int.
943
405a745b
JM
944Fri Sep 26 00:22:56 1997 Jason Merrill <jason@yorick.cygnus.com>
945
1052cd65
JM
946 * search.c (get_matching_virtual): Notice virtual bases when sorrying
947 about covariant returns.
948
405a745b
JM
949 * parse.y (member_init): Also imply typename here. Remove ancient
950 extension for initializing base members.
951
653cc74a
JM
952Thu Sep 25 11:11:13 1997 Jason Merrill <jason@yorick.cygnus.com>
953
954 Handle multi-level typenames and implicit typename in base list.
955 * parse.y (typename_sub{,[0-2]}): New rules.
956 (structsp, rule TYPENAME_KEYWORD): Use typename_sub.
957 (nonnested_type): New rule.
958 (complete_type_name): Use it.
959 (base_class.1): Use typename_sub and nonnested_type.
960 (nested_name_specifier): Don't elide std:: here.
961 * decl.c (make_typename_type): Handle getting a type for NAME.
962 (lookup_name_real): Turn std:: into :: here.
963
964 Rvalue conversions were removed in London.
965 * call.c (is_subseq): Don't consider lvalue transformations.
966 (build_conv): LVALUE_CONV and RVALUE_CONV get IDENTITY_RANK.
967 (joust): Reenable ?: kludge.
968
59f1f2c4
BK
9691997-09-22 Brendan Kehoe <brendan@lisa.cygnus.com>
970
971 * decl.c (start_function): Up warning of no return type to be a
972 pedwarn.
973
249555b0
BK
974Mon Sep 22 14:15:34 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
975
976 * init.c (expand_member_init): Don't set TREE_USED.
977 * decl.c (cp_finish_decl): Mark decls used if type has TREE_USED
978 set,don't clear TREE_USED wholesale.
979
b82b76c6
JM
980Sat Sep 20 15:31:00 1997 Jason Merrill <jason@yorick.cygnus.com>
981
982 * call.c (build_over_call): Do require_complete_type before
983 build_cplus_new.
984
238109cd
JM
985Thu Sep 18 16:47:52 1997 Jason Merrill <jason@yorick.cygnus.com>
986
987 * search.c (lookup_field): Call complete_type in all cases.
988
989 * decl.c (finish_function): Just warn about flowing off the end.
990
66f2e88d
JM
991Wed Sep 17 10:31:25 1997 Jason Merrill <jason@yorick.cygnus.com>
992
993 * decl.c (grokparms): Don't bash a permanent list node if we're
994 in a function.
995
8552680f
BK
9961997-09-17 Brendan Kehoe <brendan@lisa.cygnus.com>
997
998 * Makefile.in (CONFLICTS): Fix s/r conflict count to 18.
999
5c825fc2
JM
1000Tue Sep 16 14:06:56 1997 Jason Merrill <jason@yorick.cygnus.com>
1001
d5467e20
JM
1002 * call.c (build_new_op): Give better error for syntactically
1003 correct, but semantically invalid, use of undeclared template.
1004
549121cd
JM
1005 * call.c (compare_qual): Handle pmfs.
1006
5c825fc2
JM
1007 * decl.c (store_parm_decls): last_parm_cleanup_insn is the insn
1008 after the exception spec.
1009
18a7cd24
JM
1010Mon Sep 15 11:52:13 1997 Jason Merrill <jason@yorick.cygnus.com>
1011
5168dcfc
JM
1012 * call.c (null_ptr_cst_p): Integer type, not integral type.
1013
18a7cd24
JM
1014 * call.c (joust): Disable warnings until they can be moved to the
1015 right place.
1016
0520f6c0
PB
1017Fri Sep 12 16:11:13 1997 Per Bothner <bothner@cygnus.com>
1018
1019 * Makefile.in, config-lang.in: Convert to autoconf.
1020
85b71cf2
JM
1021Thu Sep 11 17:14:55 1997 Jason Merrill <jason@yorick.cygnus.com>
1022
1023 * decl.c (lookup_name_real): Add implicit 'typename' to types from
1024 base classes.
1025
1026 * pt.c (most_specialized_class): Fix typo.
1027 (tsubst): Move constant folding to TREE_VEC case.
1028
1029Thu Sep 11 10:08:45 1997 Mark Mitchell <mmitchell@usa.net>
1030
1031 * pt.c (do_poplevel): Don't warn about unused local variables
1032 while processing_template_decl since we don't always know whether
1033 or not they will need constructing/destructing.
1034
1035 * pt.c (uses_template_parms): Check the values of an enumeration
1036 type to make sure they don't depend on template parms.
1037
1038 * decl.c (make_typename_type): Don't lookup the field if the
1039 context uses template parms, even if we're not
1040 processing_template_decl at the moment.
1041
1042 * pt.c (coerce_template_parms): Avoid looking at the
1043 TYPE_LANG_DECL portion of a typename type, since there won't be
1044 one.
1045 (tsubst): Do constant folding as necessary to make sure that
1046 arguments passed to lookup_template_class really are constants.
1047
ca55abae
JM
1048Wed Sep 10 11:21:55 1997 Jason Merrill <jason@yorick.cygnus.com>
1049
1050 * except.c (expand_builtin_throw): #ifndef DWARF2_UNWIND_INFO.
1051 * decl2.c (finish_file): Only register exception tables if we
1052 need to.
1053
1054 * decl.c (init_decl_processing): Add __builtin_[fs]p.
1055
2ca340ae
JM
1056Tue Sep 9 19:49:38 1997 Jason Merrill <jason@yorick.cygnus.com>
1057
1058 * pt.c (unify): Just return 0 for a TYPENAME_TYPE.
1059
03555413
MM
1060Tue Sep 9 17:57:25 1997 Mark Mitchell <mmitchell@usa.net>
1061
1062 * error.c (dump_decl): Avoid crashing when presented with a
81e98a98
JM
1063 uninitialized constant, as can occur with a template parameter.
1064 (dump_expr): Make sure that there are enough levels of
1065 current_template_parms before we start diving through them.
03555413 1066
b0d75c1e
BK
10671997-09-09 Brendan Kehoe <brendan@lisa.cygnus.com>
1068
1069 * typeck.c (build_indirect_ref): Heed FLAG_VOLATILE similar to
1070 c-typeck.c.
1071
a2676865
JM
1072Tue Sep 9 09:36:39 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
1073
1074 * except.c (expand_throw): Call build_delete for all
1075 exception types, not just objects with destructors.
1076
b3d5a58b
JG
1077Mon Sep 8 02:33:20 1997 Jody Goldberg <jodyg@idt.net>
1078
1079 * decl.c (current_local_enum): Remove static.
1080 * pt.c (tsubst_enum): Save and restore value of current_local_enum
1081 in case template is expanded in enum decl.
1082 (instantiate_class_template) : Use new tsubst_enum signature.
1083 (tsubst_expr): Likewise.
1084
786b5245
MM
1085Mon Sep 8 01:21:43 1997 Mark Mitchell <mmitchell@usa.net>
1086
1087 * pt.c (begin_member_template_processing): Take a function as
1088 argument, not a set of template arguments. Use the template
1089 parameters, rather than the arguments. Handle non-type parameters
1090 correctly. Push a binding level for the parameters so that multiple
1091 member templates using the same parameter names can be declared.
1092 (end_member_template_processing): Pop the binding level.
1093 (push_template_decl): Mark member templates as static when
1094 appropriate.
1095
1096 * lex.c (do_pending_inlines): Pass the function, not its template
1097 arguments, to begin_member_template_processing.
1098 (process_next_inline): Likewise.
1099 (do_pending_defargs): Likewise.
1100
1101 * error.c (dump_expr): Obtain the correct declaration for a
1102 TEMPLATE_CONST_PARM.
1103
1104 * call.c (add_template_conv_candidate): New function.
1105 (build_object_call): Handle member templates, as done in the other
1106 build_ functions.
1107
aa5f3bad
MM
1108Sat Sep 6 10:20:27 1997 Mark Mitchell <mmitchell@usa.net>
1109
1110 * decl.c (replace_defag): Undo previous change.
1111 * lex.c (do_pending_defargs): Deal with member templates.
1112
1113 * pt.c (is_member_template): Avoid crashing when passed a
1114 non-function argument.
1115
98c1c668
JM
1116Fri Sep 5 17:27:38 1997 Jason Merrill <jason@yorick.cygnus.com>
1117
1118 * class.c (grow_method): Remove check for redeclaration.
1119
a2676865
JM
1120Fri Sep 5 01:37:17 1997 Mark Mitchell <mmitchell@usa.net>
1121
1122 * cp-tree.h (INNERMOST_TEMPLATE_PARMS): New macro.
1123 (DECL_INNERMOST_TEMPLATE_PARMS): Likewise.
1124 (PRIMARY_TEMPLATE_P): Use it.
1125 * call.c (build_overload_call_real): Use it.
1126 * class.c (instantiate_type): Likewise.
1127 * decl.c (decls_match): Likewise.
1128 * method.c (build_overload_identifier): Likewise.
1129 * pt.c (push_template_decl): Likewise.
1130 (classtype_mangled_name): Likewise.
1131 (lookup_template_class): Likewise.
1132
1133 * cp-tree.h (DECL_NTPARMS): Change name from DECL_NT_PARMS to
1134 DECL_NTPARMS to conform to usage elsewhere.
1135 * call.c (add_template_candidate): Likewise.
1136 * class.c (instantiate_type): Likewise.
1137 * pt.c (instantiate_template): Likewise.
1138 (get_bindings): Likewise.
1139
1140 * class.c (grow_method): Use DECL_FUNCTION_TEMPLATE_P instead of
1141 is_member_template.
1142
1143 * pt.c (unify): Undo changes to allow multiple levels of template
1144 parameters.
1145 (type_unification): Likewise.
1146 (fn_type_unification): Likewise.
1147 (get_class_bindings): Likewise.
1148 * cp-tree.h (Likewise).
1149
1150 * decl.c (replace_defarg): Check that the type of the default
1151 parameter does not invlove a template type before complaining
1152 about the initialization.
1153
1154 * error.c (dump_expr): Deal with template constant parameters in
1155 member templates correctly.
1156
1157 * pt.c (is_member_template): Deal with class specializations
1158 correctly.
1159 (tsubst): Handle "partial instantiation" of member templates
1160 correctly.
1161
98c1c668
JM
1162Wed Sep 3 12:30:24 1997 Mark Mitchell <mmitchell@usa.net>
1163
1164 * pt.c (type_unification): Change calling squence to allow for
1165 multiple levels of template parameters.
1166 (tsubst_expr): Likewise.
1167 (tsubst): Likewise.
1168 (tsubst_copy): Likewise.
1169 (instantiate_template): Likewise.
1170 (unify): Likewise.
1171 * call.c (build_overload_call_real): Use it.
1172 (add_builtin_candidate): Use it.
1173 (build_new_method_call): Use it.
1174 * class.c (instantiate_type): Use it.
1175 * decl.c (grokdeclarator): Use it.
1176 * decl2.c (finish_file): Use it.
1177 * method.c (build_overload_identifier): Use it.
1178
1179 * call.c (add_template_candidate): Add additional parameter for
1180 the function return type. Call fn_type_unification istead of
1181 type_unification.
1182 (build_user_type_conversion_1): Handle member templates.
1183 (build_new_function_call): Likewise.
1184 (build_new_op): Likewise.
1185 (build_new_method_call): Likewise.
1186
1187 * class.c (grow_method): Don't give an error message indicating
1188 that two member templates with the same name are ambiguous.
1189 (finish_struct): Treat member template functions just like member
1190 functions.
1191
1192 * cp-tree.h (check_member_template): Add declaration.
1193 (begin_member_template_processing): Likewise.
1194 (end_member_template_processing): Likewise.
1195 (fn_type_unification): Likewise.
1196 (is_member_template): Likewise.
1197 (tsubst): Change prototype.
1198 (tsubst_expr): Likewise.
1199 (tsubst_copy): Likewise.
1200 (instantiate_template): Likewise.
1201 (get_bindings): Likewise.
1202
1203 * decl.c (decls_match): Handle multiple levels of template
1204 parameters.
1205 (pushdecl): Handle template type params just like other type
1206 declarations.
1207 (push_class_level_binding): Return immediately if the
1208 class_binding_level is NULL.
1209 (grokfndecl): If check_classfn() returns a member_template, use
1210 the result of the template, not the template itself.
1211
1212 * decl2.c (check_member_template): New function. Check to see
1213 that the entity declared to be a member template can be one.
1214 (check_classfn): Allow redeclaration of member template functions
1215 with different types; the new functions can be specializations or
1216 explicit instantiations.
1217
1218 * error.c (dump_decl): Handle multiple levels of template
1219 parameters.
1220 (dump_function_decl): Update to handle function templates.
1221
1222 * lex.c (do_pending_inlines): Set up template parameter context
1223 for member templates.
1224 (process_next_inline): Likewise.
1225
1226 * method. (build_overload_identifier): Adjust for multiple levels
1227 of template parameters.
1228
1229 * parse.y (fn.def2): Add member templates.
1230 (component_decl_1): Likewise.
1231
1232 * pt.c (begin_member_template_processing): New function.
1233 (end_member_template_processing): Likewise.
1234 (is_member_template): Likewise.
1235 (fn_type_unification): Likewise.
1236 (current_template_parms): Return a vector of all the template
1237 parms, not just the innermost level of parms.
1238 (push_template_decl): Deal with the possibility of member
1239 templates.
1240 (lookup_template_class): Likewise.
1241 (uses_template_parms): Likewise.
1242 (tsubst): Modify processing to TEMPLATE_TYPE_PARM and
1243 TEMPLATE_CONST_PARM to deal with multiple levels of template
1244 arguments. Add processing of TEMPLATE_DECL to produce new
1245 TEMPLATE_DECLs from old ones.
1246 (do_decl_instantiation): Handle member templates.
1247
1248 * search.c (lookup_fnfields_1): Handle member template conversion
1249 operators.
1250
1251 * tree.c (cp_tree_equal): Check the levels, as well as the
1252 indices, of TEMPLATE_CONST_PARMs.
1253
1254 * typeck.c (comptypes): Check the levels, as well as the indices,
1255 fo TEMPLATE_TYPE_PARMs.
1256 (build_x_function_call): Treat member templates like member
1257 functions.
1258
03e70705
JM
1259Wed Sep 3 11:09:25 1997 Jason Merrill <jason@yorick.cygnus.com>
1260
c1bc6829
JM
1261 * typeck.c (c_expand_return): Always convert_for_initialization
1262 before checking for returning a pointer to local.
1263
03e70705
JM
1264 * pt.c (type_unification): If strict and the function parm doesn't
1265 use template parms, just compare types.
1266
1267Wed Sep 3 10:35:49 1997 Klaus Espenlaub <kespenla@student.informatik.uni-ulm.de>
3d015f46
KE
1268
1269 * method.c (build_overloaded_value): Replace direct call
1270 to the floating point emulator with REAL_VALUE_TO_DECIMAL macro.
1271
056c014d
JM
1272Wed Sep 3 00:02:53 1997 Jason Merrill <jason@yorick.cygnus.com>
1273
1274 * typeck.c (convert_arguments): Don't arbitrarily choose the first
1275 of a set of overloaded functions.
1276
ca79f85d
JM
1277Tue Sep 2 12:09:13 1997 Jason Merrill <jason@yorick.cygnus.com>
1278
056c014d
JM
1279 * lex.c (real_yylex): Don't elide __FUNCTION__.
1280
37dac039
JM
1281 * method.c (build_overload_value): Add in_template parm.
1282 (build_overload_int): Likewise.
1283 (build_overload_identifier): Pass it.
1284
1285 * decl.c (duplicate_decls): Don't bash a previous template
1286 definition with a redeclaration.
1287
ca79f85d
JM
1288 * pt.c (unify): float doesn't match double.
1289
1290 * pt.c (do_type_instantiation): Handle getting a _TYPE or a
1291 TYPE_DECL. Handle getting non-template types.
1292 * parse.y (explicit_instantiation): Use typespec instead of
1293 aggr template_type.
1294
1295Tue Sep 2 10:27:08 1997 Richard Henderson <rth@cygnus.com>
1296
1297 * typeck.c (build_ptrmemfunc1): Clean up ptr->int cast warnings.
1298
238109cd 1299Mon Sep 1 13:19:04 1997 Eugene Mamchits <eugin@ips.ras.ru>
7e3af374 1300
03e70705
JM
1301 * call.c (add_builtin_candidate): Add missing TREE_TYPE.
1302 (compare_ics): Likewise.
238109cd
JM
1303
1304Mon Sep 1 13:19:04 1997 Jason Merrill <jason@yorick.cygnus.com>
03e70705
JM
1305
1306 * call.c (joust): Warn about choosing one conversion op over
1307 another because of 'this' argument when the other return type is
1308 better.
1309 (source_type): New fn.
1310
7e3af374
JM
1311 * call.c (build_new_op): Strip leading REF_BIND from first operand
1312 to builtin operator.
1313
1314 * decl2.c (mark_vtable_entries): Mark abort_fndecl as used when we
1315 use its RTL.
1316
8e69329a
JM
1317Thu Aug 28 09:45:23 1997 Jason Merrill <jason@yorick.cygnus.com>
1318
1319 * call.c (null_ptr_cst_p): Remove support for (void*)0.
1320
5ddc28a5
JL
1321Wed Aug 27 02:03:34 1997 Jeffrey A Law (law@cygnus.com)
1322
bdcaf773
JL
1323 * typeck.c (expand_target_expr): Make definition match declaration.
1324
5ddc28a5
JL
1325 * class.c (get_basefndecls): Make definition match declaration.
1326
922ddba4
JM
1327Mon Aug 25 14:30:02 1997 Jason Merrill <jason@yorick.cygnus.com>
1328
818045b6
JM
1329 * input.c (sub_getch): Eventually give up and release the input file.
1330
1331 * decl.c (cp_finish_decl): If #p i/i, put inline statics in the
1332 right place.
1333
922ddba4
JM
1334 * call.c (joust): Tweak message.
1335
1336Sat Aug 23 18:02:59 1997 Mark Mitchell <mmitchell@usa.net>
1337
1338 * error.c (type_as_string): Put const/volatile on template type
1339 parameters where appropriate.
1340
4c9e597b
JL
1341Sat Aug 23 17:47:22 1997 Jeffrey A Law (law@cygnus.com)
1342
1343 * call.c (strictly_better): Make arguments unsigned ints.
1344
8eeda2ec
JM
1345Thu Aug 21 18:48:44 1997 Jason Merrill <jason@yorick.cygnus.com>
1346
1347 * lex.c (real_yylex): Refer to __complex instead of complex.
1348
8975416c
R
1349Thu Aug 21 22:25:46 1997 J"orn Rennecke <amylaar@cygnus.co.uk>
1350
1351 * lex.c (real_yylex): Don't use getc directly.
1352
49c249e1
JM
1353Wed Aug 20 17:25:08 1997 Jason Merrill <jason@yorick.cygnus.com>
1354
1355 * call.c (is_subseq): Don't try to be clever.
1356
1357Wed Aug 20 03:13:36 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
1358
1359 * parse.y, pt.c: Include "except.h".
1360 * call.c, class.c, class.h, cp-tree.h, cvt.c, decl.c, decl2.c,
1361 error.c, except.c, expr.c, friend.c, g++spec.c, init.c, input.c,
1362 lex.c, lex.h, method.c, parse.y, pt.c, repo.c, rtti.c, search.c,
1363 sig.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c: Finish
1364 prototyping.
1365
1366Wed Aug 20 01:34:40 1997 Jason Merrill <jason@yorick.cygnus.com>
1367
1368 * decl2.c (mark_vtable_entries): Instead of replacing pure
1369 virtuals with a reference to __pure_virtual, copy the decl and
1370 change the RTL.
1371
f62dbf03
JM
1372Tue Aug 19 02:26:07 1997 Jason Merrill <jason@yorick.cygnus.com>
1373
f017f649
JM
1374 * pt.c (lookup_nested_type_by_name): Handle typedef wierdness.
1375
1376 * typeck2.c (my_friendly_abort): Report bugs to egcs-bugs@cygnus.com.
1377
fe4e8851
JM
1378 * pt.c (instantiate_class_template): Call repo_template_used
1379 before finish_prevtable_vardecl.
1380
f62dbf03
JM
1381 * call.c (is_subseq): New fn.
1382 (compare_ics): Use it.
1383
1384 * repo.c (finish_repo): Don't crash on no args.
1385
1386 * parse.y (named_complex_class_head_sans_basetype): Handle
1387 explicit global scope.
1388 * decl2.c (handle_class_head): New fn.
1389
1390 * pt.c (unify): Add CONST_DECL case.
1391
da20811c
JM
1392Thu Aug 14 10:05:13 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1393
1394 * rtti.c (permanent_obstack): Fix decl to not be a pointer.
1395
1396 * cp-tree.h (report_type_mismatch): Add prototype.
1397 * call.c (build_overload_call_real): Remove erroneous fourth
1398 argument to report_type_mismatch.
1399 (build_user_type_conversion_1): Remove erroneous second arg to
1400 tourney.
1401 (build_new_function_call): Likewise.
1402 (build_object_call): Likewise.
1403 (build_new_op): Likewise.
1404 (build_new_method_call): Likewise.
1405
1406Wed Aug 13 19:19:25 1997 Jason Merrill <jason@yorick.cygnus.com>
1407
1408 * error.c (dump_decl): Don't bother processing a function with no
1409 DECL_LANG_SPECIFIC.
1410
1411 * method.c (emit_thunk): Call init_function_start in the macro case.
1412
1413Wed Aug 13 10:46:19 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
1414
1415 * decl2.c (DEFAULT_VTABLE_THUNKS): Define to be 0 if not
1416 defined and used to set flag_vtable_thunks.
1417
1418Tue Aug 12 20:13:57 1997 Jason Merrill <jason@yorick.cygnus.com>
1419
1420 * parse.y: Don't clear the inlines from their obstack until they've
1421 all been processed.
1422
1423 * decl.c (duplicate_decls): Don't complain about exception
1424 specification mismatch if flag_exceptions is off.
1425
1426Mon Aug 11 15:01:56 1997 Marc Lehmann <pcg@goof.com>
1427
1428 * Make-lang.in (c++.distclean): Remove g++.c on make distclean.
1429
1430Sun Aug 10 12:06:09 1997 Paul Eggert <eggert@twinsun.com>
1431
1432 * cp-tree.h: Replace STDIO_PROTO with PROTO in include files.
1433 * cvt.c, error.c, except.c, expr.c, friend.c, init.c, rtti.c:
1434 Include <stdio.h> before include files that formerly used STDIO_PROTO.
1435
1436 * decl.c, g++spec.c, lex.c, method.c, repo.c:
1437 Include "config.h" first, as per autoconf manual.
1438
1439Fri Aug 8 11:47:48 1997 Jason Merrill <jason@yorick.cygnus.com>
1440
1441 * decl.c (duplicate_decls): Tweak wording.
1442 * lex.c (do_pending_defargs): Don't die if we see a default arg
1443 that isn't a DEFAULT_ARG.
1444 * error.c (dump_expr): Handle DEFAULT_ARG.
1445
1446 * decl2.c (lang_decode_option): Handle -fhandle-exceptions.
1447 * lang-options.h: Add -fhandle-exceptions.
1448
1449 * class.c (build_vtable): vtables are artificial.
1450 (prepare_fresh_vtable): Likewise.
1451
1452Wed Aug 6 11:02:36 1997 Jason Merrill <jason@yorick.cygnus.com>
1453
1454 * cvt.c (ocp_convert): After converting to the target type, set
1455 LOOKUP_NO_CONVERSION.
1456
1457 * call.c (joust): Warn about potentially confusing promotion rules
1458 with -Wsign-promo.
1459 * cp-tree.h, lang-options.h, decl2.c: Support -Wsign-promo.
1460
1461Tue Aug 5 15:15:07 1997 Michael Meissner <meissner@cygnus.com>
1462
1463 * exception.cc: Declare __terminate_func with noreturn attribute.
1464
8dff1027
MS
1465Fri Aug 1 03:18:15 1997 Jason Merrill <jason@yorick.cygnus.com>
1466
1467 * parse.y: Break out eat_saved_input, handle errors.
da20811c 1468 (function_try_block): Use compstmt instead of compstmt_or_error.
8dff1027
MS
1469
1470Thu Jul 31 17:14:04 1997 Jason Merrill <jason@yorick.cygnus.com>
1471
1472 * tree.c (build_cplus_new): Don't set TREE_ADDRESSABLE.
1473
1474Fri Jul 4 01:45:16 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
1475
1476 * Make-lang.in (cplib2.txt, cplib2.ready): Instead of checking for
1477 existence of cc1plus check whether $(LANGUAGES) contains C++.
1478
1479Wed Jul 30 13:04:21 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
1480
1481 * method.c (do_build_copy_constructor): When copying an anonymous
1482 union member loop around to handle nested anonymous unions. Use
1483 the offset of the member relative to the outer structure, not the
1484 union.
1485
86e6f22f
JM
1486Tue Jul 29 21:17:29 1997 Jason Merrill <jason@yorick.cygnus.com>
1487
1488 * call.c (resolve_args): New fn.
1489 (build_new_function_call): Use it.
1490 (build_object_call): Likewise.
1491 (build_new_method_call): Likewise.
1492
1493Mon Jul 28 16:02:36 1997 Jason Merrill <jason@yorick.cygnus.com>
1494
1495 * call.c (build_over_call): tsubst all default parms from templates.
1496
42976354
BK
1497Wed Jul 23 13:36:25 1997 Jason Merrill <jason@yorick.cygnus.com>
1498
1499 * decl.c (struct cp_function): Add static_labelno.
1500 (push_cp_function_context): Save it.
1501 (pop_cp_function_context): Restore it.
1502
1503Tue Jul 22 14:43:29 1997 Jason Merrill <jason@yorick.cygnus.com>
1504
1505 * typeck.c (build_component_ref_1): Convert from reference.
1506
1507Tue Jul 22 11:06:23 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1508
1509 * parse.y (current_declspecs, prefix_attributes): Initialize to
1510 NULL_TREE.
1511
1512 * parse.y (initdcl0): Make sure CURRENT_DECLSPECS is non-nil
1513 before we try to force it to be a TREE_LIST.
1514 (decl): Make sure $1.t is non-nil.
1515
1516Sun Jul 20 11:53:07 1997 Jason Merrill <jason@yorick.cygnus.com>
1517
1518 * pt.c (uses_template_parms): Handle template first-parse codes.
1519
1520 * decl.c (cp_finish_decl): Only warn about user-defined statics.
1521
1522Fri Jul 18 17:56:08 1997 Jason Merrill <jason@yorick.cygnus.com>
1523
1524 * pt.c (unify): Handle BOOLEAN_TYPE.
1525
1526 * cp-tree.h: Lose PARM_DEFAULT_FROM_TEMPLATE.
1527 * pt.c (tsubst): Don't set it.
1528 * call.c (build_over_call): Use uses_template_parms.
1529
1530Thu Jul 17 18:06:30 1997 Jason Merrill <jason@yorick.cygnus.com>
1531
1532 * method.c (build_overload_nested_name): Use static_labelno
1533 instead of var_labelno.
1534 (build_qualified_name): New fn.
1535 (build_overload_name): Split out from here.
1536 (build_static_name): Use build_qualified_name.
1537 * decl.c (cp_finish_decl): Statics in extern inline functions
1538 have comdat linkage.
1539 (start_function): Initialize static_labelno.
1540
1541Thu Jul 17 11:20:17 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
1542
1543 * class.c (finish_struct_methods): add check of warn_ctor_dtor_privacy
1544 before "all member functions in class [] are private"
1545
1546Wed Jul 16 23:47:08 1997 Jason Merrill <jason@yorick.cygnus.com>
1547
1548 * lex.c (do_scoped_id): convert_from_reference.
1549 * init.c (build_offset_ref): Likewise.
1550
42976354
BK
1551Wed Jul 16 12:34:29 1997 Benjamin Kosnik <bkoz@lisa.cygnus.com>
1552
1553 * error.c (dump_expr): Check TREE_OPERAND before dump_expr_list.
1554
1555Mon Jul 14 03:23:46 1997 Jason Merrill <jason@yorick.cygnus.com>
1556
1557 * typeck.c (get_member_function_from_ptrfunc): Promote index
1558 before saving it.
1559
1560Sun Jul 13 00:11:52 1997 Jason Merrill <jason@yorick.cygnus.com>
1561
1562 * tree.c (layout_basetypes): Move non-virtual destructor warning.
1563 * decl.c (xref_basetypes): Remove non-virtual destructor warning.
1564
1565Sat Jul 12 12:47:12 1997 Jason Merrill <jason@yorick.cygnus.com>
1566
1567 * decl.c (grokdeclarator): Call add_defarg_fn for the function
1568 type, too.
1569 * lex.c (add_defarg_fn): Adjust.
1570 (do_pending_defargs): Adjust. Don't skip the first parm.
1571
1572Fri Jul 11 01:39:50 1997 Jason Merrill <jason@yorick.cygnus.com>
1573
1574 * decl.c (build_enumerator): Global enumerators are also readonly.
1575
1576 * rtti.c (build_dynamic_cast_1): Renamed from build_dynamic_cast.
1577 (build_dynamic_cast): Call it and convert_from_reference.
1578
1579 * lex.c (add_defarg_fn): New fn.
1580 (snarf_defarg): Don't add to defarg_types.
1581 (do_pending_defargs): Lose defarg_types. All fns we process now
1582 have defargs.
1583 * decl.c (grokfndecl): Call add_defarg_fn.
1584
1585 * Makefile.in (CONFLICTS): Expect 18 s/r conflicts.
1586 * cp-tree.def: Add DEFAULT_ARG.
1587 * spew.c (yylex): Call snarf_defarg as appropriate.
1588 * parse.y: New tokens DEFARG and DEFARG_MARKER.
1589 (defarg_again, pending_defargs, defarg, defarg1): New rules.
1590 (structsp): Use pending_defargs.
1591 (parms, full_parm): Use defarg.
1592 * lex.c (init_lex): Initialize inline_text_firstobj.
1593 (do_pending_inlines): Never pass the obstack to feed_input.
1594 (process_next_inline): Call end_input instead of restore_pending_input.
1595 (clear_inline_text_obstack, reinit_parse_for_expr, do_pending_defargs,
1596 finish_defarg, feed_defarg, snarf_defarg, maybe_snarf_defarg): New fns.
1597 * input.c (end_input): New fn.
1598 (sub_getch): At the end of some fed input, just keep returning EOF
1599 until someone calls end_input.
1600 Remove 'obstack' field from struct input_source.
1601 * decl.c (grokparms): Handle DEFAULT_ARG.
1602 (replace_defarg): New fn.
1603 * cp-tree.h (DEFARG_LENGTH, DEFARG_POINTER): New macros.
1604
1605Wed Jul 9 13:44:12 1997 Jason Merrill <jason@yorick.cygnus.com>
1606
1607 * call.c (implicit_conversion): If nothing else works, try binding
1608 an rvalue to a reference.
1609
1610Wed Jul 9 13:04:38 1997 Geoffrey Noer <noer@cygnus.com>
1611
1612 * decl.c (init_decl_processing): fix Jun 30 patch -- move
1613 ifndef for Cygwin32 to include SIGSEGV.
1614
7834ab39
MS
1615Thu Jul 3 01:44:05 1997 Jason Merrill <jason@yorick.cygnus.com>
1616
1617 * class.c (finish_struct_1): Only complain about pointers without
1618 copy stuff if there are any constructors.
1619
1620 * rtti.c (build_dynamic_cast): Call complete_type on the types.
1621
1622 * decl.c (grokfndecl): If the function we chose doesn't actually
1623 match, die.
1624
1625 * decl2.c (grokclassfn): Don't specify 'const int' for the
1626 artificial destructor parm.
1627
1628 * pt.c (type_unification): If we are called recursively, nothing
1629 decays.
1630
1631Mon Jun 30 17:53:21 1997 Geoffrey Noer <noer@cygnus.com>
1632
42976354
BK
1633 * decl.c (init_decl_processing): Stop trying to catch signals
1634 other than SIGABRT since the Cygwin32 library doesn't support
1635 them correctly yet. This fixes a situation in which g++ causes
1636 a hang on SIGSEGVs and other such signals in our Win32-hosted
1637 tools.
7834ab39
MS
1638
1639Mon Jun 30 14:50:01 1997 Jason Merrill <jason@yorick.cygnus.com>
1640
1641 * tree.c (mapcar, case CALL_EXPR): Handle all the parse node data.
1642
1643Fri Jun 27 15:18:49 1997 Jason Merrill <jason@yorick.cygnus.com>
1644
1645 * typeck2.c (store_init_value): Always return the value if our
1646 type needs constructing.
1647
1648 * method.c (hack_identifier): Convert class statics from
1649 reference, too.
1650
1651Thu Jun 26 11:44:46 1997 Jason Merrill <jason@yorick.cygnus.com>
1652
1653 * Make-lang.in (cplib2.ready): Add $(LANGUAGES) dependency.
1654
b88c08b6
MS
1655Thu Jun 19 16:49:28 1997 Mike Stump <mrs@cygnus.com>
1656
1657 * typeck.c (c_expand_return): Make sure we clean up temporaries at
1658 the end of return x;
1659
1660Thu Jun 19 12:28:43 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1661
1662 * lex.c (check_for_missing_semicolon): Also check for CV_QUALIFIER.
1663
6633d636
MS
1664Tue Jun 17 18:35:57 1997 Mike Stump <mrs@cygnus.com>
1665
1666 * except.c (expand_builtin_throw): Add support
1667 -fno-sjlj-exceptions -fPIC exception handling on the SPARC.
1668
1669Mon Jun 16 01:24:37 1997 Jason Merrill <jason@yorick.cygnus.com>
1670
1671 * repo.c (extract_string): Null-terminate.
1672
1673 * cp-tree.h (TI_SPEC_INFO): New macro.
1674 (CLASSTYPE_TI_SPEC_INFO): New macro.
1675 * pt.c (push_template_decl): Correctly determine # of template parms
1676 for partial specs.
1677
1678 * call.c (compare_ics): Really fix 'this' conversions.
1679
1680 * pt.c (do_decl_instantiation): Don't crash on explicit inst of
1681 non-template fn.
1682
1683 * pt.c (push_template_decl): Complain about mismatch in # of
1684 template parms between a class template and a member template.
1685
1686Sun Jun 15 02:38:20 1997 Jason Merrill <jason@yorick.cygnus.com>
1687
1688 * method.c (synthesize_method): You can't call
1689 function_cannot_inline_p after finish_function.
1690 * decl.c (finish_function): Turn on flag_inline_functions and turn
1691 off DECL_INLINE before handing a synthesized method to the
1692 backend.
1693
1694Thu Jun 12 17:35:28 1997 Jason Merrill <jason@yorick.cygnus.com>
1695
1696 * method.c (synthesize_method): Remove July 30 change to never set
1697 DECL_INLINE if at_eof.
1698
1699Thu Jun 12 15:25:08 1997 Mike Stump <mrs@cygnus.com>
1700
1701 * xref.c (GNU_xref_member): Ensure that the node has a
1702 decl_lang_specific part before checking DECL_FRIEND_P.
1703
1704Thu Jun 12 12:36:05 1997 Jason Merrill <jason@yorick.cygnus.com>
1705
1706 * pt.c (instantiate_class_template): Diagnose non-class types used
1707 as bases.
1708
1709Wed Jun 11 17:33:40 1997 Jason Merrill <jason@yorick.cygnus.com>
1710
1711 * typeck.c (build_conditional_expr): Use convert_for_initialization
1712 instead of convert_and_check.
1713
1714Wed Jun 11 12:31:33 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1715
1716 * parse.y (typespec): Don't pedwarn for typeof.
1717
1718Tue Jun 10 00:22:09 1997 Jason Merrill <jason@yorick.cygnus.com>
1719
1720 * repo.c (finish_repo): Only check changes if we would write a
1721 repo file.
1722
1723 * call.c (compare_ics): Fix handling of 'this' conversions.
1724
1725 * pt.c (do_decl_instantiation): Support static data too. Rename
1726 from do_function_instantiation.
1727 * cp-tree.h: Adjust.
1728 * parse.y: Adjust.
1729
1730 * repo.c (extract_string): New fn.
1731 (get_base_filename): Use it.
1732 (init_repo): Compare old args with current args.
1733
1734Mon Jun 9 14:25:30 1997 Mike Stump <mrs@cygnus.com>
1735
1736 * Makefile.in, Make-lang.in: Protect C-ls with a comment
1737 character, idea from Paul Eggert <eggert@twinsun.com>.
1738
1739Mon Jun 9 01:52:03 1997 Jason Merrill <jason@yorick.cygnus.com>
1740
1741 * typeck.c (c_expand_return): Be more persistent in looking for
1742 returned temps.
1743
1744 * cvt.c (build_up_reference): Use NOP_EXPR for switching from
1745 pointer to reference.
1746
1747 * class.c (build_vbase_path): Don't do anything if PATH has no steps.
1748
1749Sun Jun 8 03:07:05 1997 Jason Merrill <jason@yorick.cygnus.com>
1750
1751 * init.c (build_member_call, build_offset_ref):
1752 Use do_scoped_id instead of do_identifier.
1753
1754 * cvt.c (convert): Remove bogosity.
1755
1756Sat Jun 7 20:50:17 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1757
1758 * cvt.c (build_up_reference): Do checks of ARGTYPE and
1759 TARGET_TYPE before trying to use get_binfo.
1760
1761Fri Jun 6 17:36:39 1997 Jason Merrill <jason@yorick.cygnus.com>
1762
1763 * cvt.c (build_up_reference): Call get_binfo to get access control.
1764
1765 * decl2.c (import_export_decl): If we don't support weaks, leave
1766 statics undefined.
1767
1768Fri Jun 6 15:55:49 1997 Mike Stump <mrs@cygnus.com>
1769
1770 * except.c (expand_builtin_throw): Add support for machines that
1771 cannot access globals after throw's epilogue when
1772 -fno-sjlj-exceptions is used.
1773
1774Thu Jun 5 16:28:43 1997 Jason Merrill <jason@yorick.cygnus.com>
1775
1776 * parse.y: 'std::' becomes '::'.
1777 * lex.c (real_yylex): Remove 'namespace' warning.
1778 * init.c (build_member_call): Ignore 'std::'.
1779 (build_offset_ref): Likewise.
1780 * decl2.c (do_using_directive): Ignore 'using namespace std;'.
1781 (do_toplevel_using_decl): Ignore 'using std::whatever'.
1782 * decl.c (push_namespace): Just sorry.
1783 (pop_namespace): Nop.
1784 (init_decl_processing): Declare std namespace.
1785
013bc8af
MS
1786Tue Jun 3 18:08:23 1997 Jason Merrill <jason@yorick.cygnus.com>
1787
1788 * search.c (push_class_decls): A name which ambiguously refers to
1789 several instantiations of the same template just refers to the
1790 template.
1791
1792Tue Jun 3 12:30:40 1997 Benjamin Kosnik <bkoz@cirdan.cygnus.com>
1793
1794 * decl.c (build_enumerator): fix problem with unsigned long
1795 enumerated values being smashed to ints, causing overflow
1796 when computing next enumerated value. (for enum values around
1797 MAX_VAL).
1798
1799Mon Jun 2 17:40:56 1997 Jason Merrill <jason@yorick.cygnus.com>
1800
1801 * typeck.c (build_component_ref): Only call mark_used on a decl.
1802
1803Thu May 29 15:54:17 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1804
1805 * typeck.c (build_c_cast): Make the check for a ptr to function
1806 more specific before possible default_conversion call.
1807
e00737d2
MS
1808Thu May 29 13:02:06 1997 Mike Stump <mrs@cygnus.com>
1809
1810 * except.c (expand_exception_blocks): Simplify and fix and make
1811 sure we don't end a region in a sequence, as expand_end_bindings
1812 doesn't like it.
1813
1814Wed May 28 17:08:03 1997 Mike Stump <mrs@cygnus.com>
1815
1816 * except.c (init_exception_processing): Mark terminate as not
1817 returning so that the optimizer can optimize better.
1818
37c46b43
MS
1819Tue May 27 19:49:19 1997 Mike Stump <mrs@cygnus.com>
1820
1821 * cvt.c (convert): Don't do any extra work, if we can avoid it
1822 easily.
1823
1824Tue May 27 18:21:47 1997 Mike Stump <mrs@cygnus.com>
1825
1826 * *.[chy]: Change cp_convert to ocp_convert, change convert to
1827 cp_convert. convert is now reserved for the backend, and doesn't
1828 have the semantics a frontend person should ever want.
1829
1830Fri May 23 10:58:31 1997 Jason Merrill <jason@yorick.cygnus.com>
1831
1832 * lang-specs.h: Define __EXCEPTIONS if exceptions are enabled.
1833 Lose -traditional support.
1834
1835Thu May 22 15:41:28 1997 Jason Merrill <jason@yorick.cygnus.com>
1836
1837 * rtti.c (get_tinfo_var): Use TYPE_PRECISION (sizetype).
1838
1839 * parse.y (self_reference): Do it for templates, too.
1840 * class.c (pushclass): Don't overload_template_name; the alias
1841 generated by build_self_reference serves the same purpose.
1842
1843 * tree.c (list_hash): Make static, take more args.
1844 (list_hash_lookup): Likewise.
1845 (list_hash_add): Make static.
1846 (list_hash_canon): Lose.
1847 (hash_tree_cons): Only build a new node if one isn't already in the
1848 hashtable.
1849 (hash_tree_chain): Use hash_tree_cons.
1850 * cp-tree.h: Adjust.
1851 * decl.c (grokfndecl): Just check IDENTIFIER_GLOBAL_VALUE instead
1852 of calling lookup_name.
1853
1854Wed May 21 18:24:19 1997 Jason Merrill <jason@yorick.cygnus.com>
1855
1856 * pt.c (instantiate_class_template): TYPE_VALUES for an enum
1857 doesn't refer to the CONST_DECLs.
1858
1859Tue May 20 21:09:32 1997 Bob Manson <manson@charmed.cygnus.com>
1860
1861 * rtti.c (get_tinfo_var): Either INT_TYPE_SIZE or 32, whichever
1862 is bigger.
1863 (expand_class_desc): Convert the last argument to a sizetype.
1864
1865Tue May 20 13:55:57 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1866
1867 * gxx.gperf (__complex, __complex__, __imag, __imag__, __real,
1868 __real__): Add reswords.
1869 * hash.h: Regenerate.
1870 * lex.h (rid): Add RID_COMPLEX.
1871 (RID_LAST_MODIFIER): Set to RID_COMPLEX.
8eeda2ec 1872 * lex.c (init_lex): Add building of RID_COMPLEX.
37c46b43
MS
1873 (real_yylex): General cleanup in line with what c-lex.c also has,
1874 sans the cruft for traditional; add handling of SPEC_IMAG, complex
1875 types, and imaginary numeric constants.
1876 * parse.y (REALPART, IMAGPART): Add tokens.
1877 (unary_expr): Add REALPART and IMAGPART rules.
1878 * cp-tree.h (complex_{integer,float,double,long}_type_node): Declare.
1879 * decl.c (complex_{integer,float,double,long}_type_node): Define
1880 types.
1881 (init_decl_processing): Set up the types.
1882 (grokdeclarator): Add handling of RID_COMPLEX. Set and use
1883 DEFAULTED_INT instead of EXPLICIT_INT when we default to int type.
1884 * call.c (build_new_op): Add REALPART_EXPR and IMAGPART_EXPR cases.
1885 * cvt.c (cp_convert): Handle COMPLEX_TYPE.
1886 * error.c (dump_type_prefix, dump_type, dump_type_suffix): Add
1887 COMPLEX_TYPE case.
1888 * method.c (build_overload_name): Add handling of the different
1889 COMPLEX_TYPEs, prefixing them with `J'.
1890 * pt.c (process_template_parm): Don't let them use a COMPLEX_TYPE
1891 as a template parm.
1892 (uses_template_parms, tsubst, unify): Add COMPLEX_TYPE case.
1893 * tree.c (lvalue_p): Add REALPART_EXPR and IMAGPART_EXPR cases.
1894 (mapcar): Handle COMPLEX_CST.
1895 * typeck.c (build_binary_op_nodefault): Handle COMPLEX_TYPE.
1896 (common_type): Add code for complex types.
1897 (build_unary_op): Add REALPART_EXPR and IMAGPART_EXPR cases.
1898 (convert_for_assignment): Likewise.
1899 (mark_addressable): Add REALPART_EXPR and IMAGPART_EXPR cases.
1900
1901Mon May 19 12:26:27 1997 Jason Merrill <jason@yorick.cygnus.com>
1902
1903 * pt.c (tsubst): Don't pass the MINUS_EXPR for an array domain to
1904 tsubst_expr, as it might try to do overload resolution.
1905
b87692e5
MS
1906Sat May 17 10:48:31 1997 Jason Merrill <jason@yorick.cygnus.com>
1907
1908 * pt.c (instantiate_class_template): Oops.
1909
1910Fri May 16 14:23:57 1997 Jason Merrill <jason@yorick.cygnus.com>
1911
1912 * cp-tree.def: Add TAG_DEFN.
1913 * pt.c (tsubst_enum): New fn.
1914 (instantiate_class_template): Use it.
1915 (tsubst_expr): Support TAG_DEFN.
1916 (tsubst): Support local enums.
1917 (tsubst_copy): Likewise.
1918 * decl.c (finish_enum): Likewise.
1919 (start_enum): If this is a local enum, switch to permanent_obstack.
1920
1921Wed May 14 19:08:28 1997 Mike Stump <mrs@cygnus.com>
1922
1923 * decl.c (store_parm_decls): Set last_parm_cleanup_insn here.
1924 (finish_function): Put the base init code for constructors just
1925 after the parm cleanup insns.
1926 (struct cp_function): Add last_parm_cleanup_insn.
1927 (push_cp_function_context): Likewise.
1928 (pop_cp_function_context): Likewise.
1929
1930Tue May 13 15:51:20 1997 Jason Merrill <jason@yorick.cygnus.com>
1931
1932 * pt.c (tsubst_copy): Handle BIT_NOT_EXPR.
1933
1934Wed May 7 11:17:59 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1935
1936 * method.c (emit_thunk) [ASM_OUTPUT_MI_THUNK]: Build up the RTL
1937 for THUNK_FNDECL before we switch to temporary allocation.
1938
beb53fb8
JM
1939Mon May 5 14:46:53 1997 Jason Merrill <jason@yorick.cygnus.com>
1940
1941 * call.c (build_new_op): Handle null arg2 for ?:.
1942
eb448459
MS
1943Thu May 1 18:26:37 1997 Mike Stump <mrs@cygnus.com>
1944
1945 * except.c (expand_exception_blocks): Ensure that we flow through
37c46b43
MS
1946 the end of the exception region for the exception specification.
1947 Move exception region for the exception specification in, so that
1948 it doesn't protect the parm cleanup. Remove some obsolete code.
1949 * decl.c (store_parm_decls): Likewise.
eb448459
MS
1950 (finish_function): Likewise.
1951
1952Tue Apr 29 15:38:54 1997 Jason Merrill <jason@yorick.cygnus.com>
1953
1954 * init.c (build_new): Fix nothrow handling.
1955
1956Tue Apr 29 14:29:50 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1957
1958 * init.c (emit_base_init): Don't warn about the initialization
1959 list for an artificial member.
1960
1961Fri Apr 25 17:47:59 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1962
1963 * expr.c (do_case): Handle !START case for the error msg.
1964
1965Fri Apr 25 11:55:23 1997 Jason Merrill <jason@yorick.cygnus.com>
1966
1967 * decl2.c, lang-options.h: New option -Weffc++.
1968 * class.c, decl.c, init.c, typeck.c: Move Effective C++ warnings
1969 to -Weffc++.
1970
1971 * decl2.c (finish_prevtable_vardecl): Change NO_LINKAGE_HEURISTICS
37c46b43 1972 to MULTIPLE_SYMBOL_SPACES.
eb448459
MS
1973
1974Wed Apr 23 18:06:50 1997 Jason Merrill <jason@yorick.cygnus.com>
1975
1976 * method.c (emit_thunk, generic case): Set current_function_is_thunk.
1977
1978 * method.c (emit_thunk, macro case): Set up DECL_RESULT.
1979
1980 * typeck.c (c_expand_return): Don't complain about returning void
1981 to void in an artificial function.
1982 * method.c (make_thunk): Change settings of READONLY/VOLATILE,
1983 don't set DECL_RESULT, set DECL_ARTIFICIAL.
1984 (emit_thunk, generic code): Also set up DECL_LANG_SPECIFIC.
1985
eb66be0e
MS
1986Wed Apr 23 14:43:06 1997 Mike Stump <mrs@cygnus.com>
1987
1988 * init.c (init_decl_processing): Add supoprt for setjmp/longjmp based
1989 exception handling.
1990 * except.c (init_exception_processing): Likewise.
1991 (expand_end_catch_block): Likewise.
1992 (expand_exception_blocks): Likewise.
1993 (expand_throw): Likewise.
1994 * exception.cc (__default_terminate): Likewise.
1995
1996 * init.c (perform_member_init): Use new method of expr level
37c46b43 1997 cleanups, instead of cleanups_this_call and friends.
eb66be0e
MS
1998 (emit_base_init): Likewise.
1999 (expand_aggr_vbase_init_1): Likewise.
2000 (expand_vec_init): Likewise.
2001 * decl.c (cp_finish_decl): Likewise.
2002 (expand_static_init): Likewise.
2003 (store_parm_decls): Likewise.
2004 (cplus_expand_expr_stmt): Likewise.
2005 * decl2.c (finish_file): Likewise.
2006
2007 * Make-lang.in (exception.o): Ok to compile with -O now.
2008
2009 * decl.c (maybe_build_cleanup_1): We no longer have to unsave, as
2010 we know it will be done later by the backend.
2011
2012 * decl2.c (lang_f_options): Remove support for short temps.
2013 * lang-options.h: Likewise.
2014
2015Wed Apr 23 04:12:06 1997 Jason Merrill <jason@yorick.cygnus.com>
2016
2017 * tree.c (varargs_function_p): New fn.
2018 * method.c (emit_thunk): Replace broken generic code with code to
37c46b43 2019 generate a heavyweight thunk function.
eb66be0e
MS
2020
2021Tue Apr 22 02:45:18 1997 Jason Merrill <jason@yorick.cygnus.com>
2022
2023 * pt.c (process_template_parm): pedwarn about floating-point parms.
2024
2025 * decl.c (grokdeclarator): inline no longer implies static.
2026
2027 * spew.c (yylex): Always return the TYPE_DECL if we got a scope.
2028
2029Mon Apr 21 15:42:27 1997 Jason Merrill <jason@yorick.cygnus.com>
2030
2031 * class.c (check_for_override): The signature of an overriding
37c46b43 2032 function is not changed.
eb66be0e
MS
2033
2034 * call.c (build_over_call): Move setting of conv into the loop.
da20811c
JM
2035 Note: this change, along with the related changes of the 18th thru
2036 the 20th of April, fix an infinite loop problem in conversions.
eb66be0e
MS
2037
2038Sun Apr 20 16:24:29 1997 Jason Merrill <jason@yorick.cygnus.com>
2039
2040 * call.c (build_user_type_conversion_1): Really ignore rvalue
37c46b43 2041 conversions when looking for a REFERENCE_TYPE.
eb66be0e
MS
2042
2043 * cvt.c (build_up_reference): Eviscerate, use build_unary_op.
2044 * cp-tree.h (TREE_REFERENCE_EXPR): #if 0.
2045 * typeck.c (decay_conversion): Don't set TREE_REFERENCE_EXPR.
2046 (build_unary_op): Likewise.
2047 * call.c (build_over_call): See through a CONVERT_EXPR around the
37c46b43 2048 ADDR_EXPR for on a temporary.
eb66be0e 2049 * typeck.c (c_expand_return): See through a CONVERT_EXPR around
37c46b43 2050 the ADDR_EXPR for a local variable.
eb66be0e
MS
2051
2052Fri Apr 18 12:11:33 1997 Jason Merrill <jason@yorick.cygnus.com>
2053
2054 * call.c (build_user_type_conversion_1): If we're trying to
37c46b43 2055 convert to a REFERENCE_TYPE, only consider lvalue conversions.
eb66be0e
MS
2056 (build_new_function_call): Print candidates.
2057 (implicit_conversion): Try a temp binding if the lvalue conv is BAD.
2058 (reference_binding): Binding a temporary of a reference-related type
2059 is BAD.
2060
2061Thu Apr 17 14:37:22 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2062
2063 * inc/typeinfo (type_info::before): Add cv-qualifier-seq.
2064 * tinfo2.cc (type_info::before): Likewise.
2065
2066Mon Apr 14 12:38:17 1997 Jason Merrill <jason@yorick.cygnus.com>
2067
2068 * call.c (implicit_conversion): Oops.
2069
2070Fri Apr 11 02:18:30 1997 Jason Merrill <jason@yorick.cygnus.com>
2071
2072 * call.c (implicit_conversion): Try to find a reference conversion
37c46b43 2073 before binding a const reference to a temporary.
eb66be0e
MS
2074
2075Wed Apr 2 12:51:36 1997 Mike Stump <mrs@cygnus.com>
2076
2077 * exception.cc (__default_unexpected): Call terminate by default,
2078 so that if the user overrides terminate, the correct function will
2079 be called.
2080
bd6dd845
MS
2081Wed Mar 19 14:14:45 1997 Mike Stump <mrs@cygnus.com>
2082
2083 * parse.y (left_curly): Avoid trying to use any fields of
eb66be0e 2084 error_mark_node, as there aren't any.
bd6dd845
MS
2085
2086Thu Mar 13 16:33:22 1997 Jason Merrill <jason@yorick.cygnus.com>
2087
2088 * lex.c (do_identifier): Avoid breaking on overloaded methods
2089 as default arguments.
2090
2091Wed Mar 12 13:55:10 1997 Hans-Peter Nilsson <Hans-Peter.Nilsson@axis.se>
2092
eb66be0e 2093 * call.c (add_template_candidate): Initialize the variable "dummy".
bd6dd845
MS
2094
2095Mon Mar 10 15:13:14 1997 Brendan Kehoe <brendan@canuck.cygnus.com>
2096
2097 * decl.c (start_decl): Make sure TYPE isn't an error_mark_node
2098 before we try to use TYPE_SIZE and TREE_CONSTANT on it.
2099
2100Fri Mar 7 13:19:36 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2101
2102 * cp-tree.h (comp_ptr_ttypes, more_specialized): Add decl.
2103 (debug_binfo): Delete decl, not needed.
2104
2105 * tree.c (fnaddr_from_vtable_entry, function_arg_chain,
2106 promotes_to_aggr_type): Delete fns.
2107 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY,
2108 SET_FNADDR_FROM_VTABLE_ENTRY, FUNCTION_ARG_CHAIN,
2109 PROMOTES_TO_AGGR_TYPE): Delete alternates to #if 1.
2110
2111 * decl.c (pending_invalid_xref{,_file,_line}): Delete unused vars.
2112
2113 * friend.c (is_friend_type): Delete fn.
2114 * cp-tree.h (is_friend_type): Delete decl.
2115
2116 * decl.c (original_result_rtx, double_ftype_double,
2117 double_ftype_double_double, int_ftype_int, long_ftype_long,
2118 float_ftype_float, ldouble_ftype_ldouble, last_dtor_insn): Make static.
2119 * typeck.c (original_result_rtx, warn_synth): Delete extern decls.
2120
2121 * decl.c (push_overloaded_decl{,_top_level}): Make static, adding
2122 fwd decls.
2123 * cp-tree.h (push_overloaded_decl{,_top_level}): Delete decls.
2124
2125 * decl.c (pushdecl_nonclass_level): #if 0, unused.
2126 * cp-tree.h (pushdecl_nonclass_level): #if 0 decl.
2127
2128 * lex.c (reinit_lang_specific): #if 0, unused.
2129 * cp-tree.h (reinit_lang_specific): #if 0 decl.
2130
2131 * decl.c (revert_static_member_fn): Make static, adding fwd decl.
2132 * cp-tree.h (revert_static_member_fn): Delete decl.
2133
2134 * class.c (root_lang_context_p): Delete fn.
2135 * cp-tree.h (root_lang_context_p): Delete decl.
2136
2137 * decl.c (set_current_level_tags_transparency): #if 0, unused.
2138 * cp-tree.h (set_current_level_tags_transparency): #if 0 decl.
2139
2140 * lex.c (set_vardecl_interface_info): Make static.
2141 * cp-tree.h (set_vardecl_interface_info): Delete decl.
2142
2143 * call.c (find_scoped_type): Make static.
2144 * cp-tree.h (find_scoped_type): Delete decl.
2145
2146 * search.c (convert_pointer_to_vbase): Make static.
2147 * cp-tree.h (convert_pointer_to_vbase): Delete decl.
2148
2149 * decl.c (const_ptr_type_node): Likewise.
2150 * cp-tree.h (const_ptr_type_node): Delete decl.
2151
2152 * typeck.c (common_base_type): Make static.
2153 * cp-tree.h (common_base_types): Delete erroneous decl.
2154
2155 * pt.c (classtype_mangled_name): Make static.
2156 * cp-tree.h (classtype_mangled_name): Delete decl.
2157
2158 * lex.c (check_newline): Make static.
2159 * cp-tree.h (check_newline): Delete decl.
2160
2161 * typeck.c (build_x_array_ref): Delete fn, same idea as
2162 grok_array_decl.
2163 * cp-tree.h (build_x_array_ref): Delete decl.
2164
2165 * lex.c (copy_decl_lang_specific): Delete fn, same idea as
2166 copy_lang_decl.
2167 * cp-tree.h (copy_decl_lang_specific): #if 0 decl.
2168
2169 * class.c (build_vtable_entry): Make static.
2170 * cp-tree.h (build_vtable_entry): Delete decl.
2171
2172 * class.c (build_vbase_pointer): Make static.
2173 * cp-tree.h (build_vbase_pointer): Delete decl.
2174
2175 * sig.c (build_sptr_ref): Add forward decl and make static.
2176 * cp-tree.h (build_sptr_ref): Delete decl.
2177
2178 * call.c (build_new_method_call): Add forward decl and make static.
2179 * cp-tree.h (build_new_method_call): Delete decl.
2180
2181 * call.c (build_object_call): Make static.
2182 * class.c (check_for_override, complete_type_p, mark_overriders):
2183 Likewise.
2184 * decl.c (cp_function_chain): Likewise.
2185 * lex.c (set_typedecl_interface_info, reinit_parse_for_block):
2186 Likewise.
2187 * pt.c (comp_template_args, get_class_bindings, push_tinst_level):
2188 Likewise.
2189 * tree.c (build_cplus_array_type_1): Likewise.
2190 * typeck.c (comp_ptr_ttypes_{const,real,reinterpret}): Likewise.
2191 (comp_target_parms): Likewise.
2192
2193 * init.c (build_builtin_call): Make static.
2194 * cp-tree.h (build_builtin_call): Delete decl.
2195
2196 * typeck.c (binary_op_error): Delete decl.
2197 * cp-tree.h (binary_op_error): Likewise.
2198
2199Thu Mar 6 16:13:52 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2200
2201 * call.c (build_method_call): Compare against error_mark_node
2202 directly, rather than the ERROR_MARK tree code.
2203 * cvt.c (cp_convert): Likewise.
2204 * decl.c (print_binding_level): Likewise.
2205 (duplicate_decls): Likewise.
2206 (grokdeclarator): Likewise.
2207 (grokdeclarator): Likewise.
2208 * init.c (expand_aggr_init_1): Likewise.
2209 (decl_constant_value): Likewise.
2210 * method.c (build_opfncall): Likewise.
2211 (hack_identifier): Likewise.
2212 * typeck.c (build_modify_expr): Likewise.
2213
2214 * typeck.c (build_c_cast): Don't decl TYPE as register tree.
2215
2216Sun Mar 2 02:54:36 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
2217
2218 * pt.c (unify): Strip NOP_EXPR wrappers before unifying integer values.
2219
2220 * pt.c (coerce_template_parms): Add new error message.
2221
2222 * method.c (build_overload_value): Implement name mangling for
2223 floating-point template arguments.
2224
2225 * method.c (build_overload_int, icat, dicat): Fix mangling of template
2226 arguments whose absolute value doesn't fit in a signed word.
2227
2228Mon Mar 3 12:14:54 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2229
2230 * friend.c: New file; put all of the friend stuff in here.
2231 * init.c: Instead of here.
2232 * Makefile.in (CXX_OBJS): Add friend.o.
2233 (friend.o): Add dependencies.
2234 * Make-lang.in (CXX_SRCS): Add $(srcdir)/cp/friend.c.
2235
2236Sun Mar 2 11:04:43 1997 Jason Merrill <jason@yorick.cygnus.com>
2237
2238 * call.c (build_scoped_method_call): Complain if the scope isn't a
eb66be0e 2239 base.
bd6dd845
MS
2240
2241Wed Feb 26 11:31:06 1997 Jason Merrill <jason@yorick.cygnus.com>
2242
2243 * parse.y (left_curly): Don't crash on erroneous type.
2244
2245 * init.c (build_delete): Fix type of ref.
2246
2247Tue Feb 25 12:41:48 1997 Jason Merrill <jason@yorick.cygnus.com>
2248
2249 * search.c (get_vbase_1): Renamed from get_vbase.
2250 (get_vbase): Wrapper, now non-static.
2251 (convert_pointer_to_vbase): Now static.
2252
2253 * call.c (build_scoped_method_call): Accept a binfo for BASETYPE.
2254 * init.c (build_delete): Pass one.
2255 (build_partial_cleanup_for): Use build_scoped_method_call.
2256 * decl.c (finish_function): Pass a binfo.
2257
2258Mon Feb 24 15:00:12 1997 Jason Merrill <jason@yorick.cygnus.com>
2259
2260 * call.c (build_over_call): Only synthesize non-trivial copy ctors.
2261
2262 * typeck.c (build_c_cast): Lose other reference to flag.
2263
2264 * call.c (build_field_call): Don't look for [cd]tor_identifier.
2265 * decl2.c (delete_sanity): Remove meaningless use of
eb66be0e 2266 LOOKUP_HAS_IN_CHARGE.
bd6dd845 2267 * decl.c (finish_function): Use build_scoped_method_call instead
eb66be0e 2268 of build_delete for running vbase dtors.
bd6dd845 2269 * init.c (build_delete): Call overload resolution code instead of
eb66be0e 2270 duplicating it badly.
bd6dd845 2271
2ba25f50
MS
2272Thu Feb 20 15:12:15 1997 Jason Merrill <jason@yorick.cygnus.com>
2273
2274 * call.c (build_over_call): Call mark_used before trying to elide
2275 the call.
2276
2277 * decl.c (implicitly_declare): Don't set DECL_ARTIFICIAL.
2278
2279Wed Feb 19 11:18:53 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2280
2281 * typeck.c (build_modify_expr): Always pedwarn for a cast to
2282 non-reference used as an lvalue.
2283
2284Wed Feb 19 10:35:37 1997 Jason Merrill <jason@yorick.cygnus.com>
2285
2286 * cvt.c (cp_convert_to_pointer): Convert from 0 to a pmf properly.
2287
2288Tue Feb 18 15:40:57 1997 Jason Merrill <jason@yorick.cygnus.com>
2289
2290 * parse.y (handler): Fix template typo.
2291
2292Sun Feb 16 02:12:28 1997 Jason Merrill <jason@yorick.cygnus.com>
2293
2294 * error.c (lang_decl_name): New fn.
2295 * tree.c (lang_printable_name): Use it.
2296
2297Fri Feb 14 16:57:05 1997 Mike Stump <mrs@cygnus.com>
2298
2299 * g++spec.c: Include config.h so that we can catch bzero #defines
2300 from the config file.
2301
e9f32eb5
MS
2302Tue Feb 11 13:50:48 1997 Mike Stump <mrs@cygnus.com>
2303
2304 * new1.cc: Include a declaration for malloc, to avoid warning, and
eb66be0e
MS
2305 avoid lossing on systems that require one (ones that define malloc
2306 in xm.h).
e9f32eb5
MS
2307
2308Mon Feb 10 22:51:13 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
2309
2310 * decl2.c (max_tinst_depth): New variable.
2311 (lang_decode_option): Parse "-ftemplate-depth-NN" command line
2312 option.
2313 * pt.c (max_tinst_depth): Variable moved.
2314 * lang-options.h: Declare "-ftemplate-depth-NN" command line option
2315 as legal.
2316
2317Fri Feb 7 15:43:34 1997 Jason Merrill <jason@yorick.cygnus.com>
2318
2319 * decl.c (xref_basetypes): Allow a base class that depends on
eb66be0e 2320 template parms to be incomplete.
e9f32eb5
MS
2321
2322 * decl2.c (build_expr_from_tree): Support typeid(type).
2323 * rtti.c (get_typeid): Support templates.
2324 (expand_si_desc, expand_class_desc): Fix string length.
2325 (expand_ptr_desc, expand_attr_desc, expand_generic_desc): Likewise.
2326
312e7d50
JM
2327Tue Feb 4 11:28:24 1997 Jason Merrill <jason@yorick.cygnus.com>
2328
2329 * pt.c (unify, case TEMPLATE_CONST_PARM): Use cp_tree_equal.
2330
2331 * pt.c (tsubst): Put it back for -fno-ansi-overloading.
2332
2333Mon Feb 3 18:41:12 1997 Jason Merrill <jason@yorick.cygnus.com>
2334
2335 * pt.c (tsubst, case FUNCTION_DECL): Lose obsolete code that
eb66be0e
MS
2336 smashes together template and non-template decls of the same
2337 signature.
312e7d50 2338
824b9a4c
MS
2339Thu Jan 30 19:18:00 1997 Jason Merrill <jason@yorick.cygnus.com>
2340
824b9a4c
MS
2341 * pt.c (tsubst): Don't recurse for the type of a TYPENAME_TYPE.
2342
2343Wed Jan 29 11:40:35 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2344
2345 * decl.c (duplicate_decls): Next route, pedwarn about different
2346 exceptions if -pedantic *or* olddecl !DECL_IN_SYSTEM_HEADER.
2347
2348Tue Jan 28 20:43:29 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2349
2350 * cp-tree.h (HAS_DEFAULT_IMPLEMENTATION): Delete macro.
2351 (struct lang_type): Delete has_default_implementation member.
2352 Increase dummy to 21.
2353 * decl.c (start_method): Delete usage.
2354
2355 * cp-tree.h (build_call, null_ptr_cst_p, in_function_p,
2356 store_after_parms, start_decl_1, auto_function): Add decls.
2357 (get_arglist_len_in_bytes, declare_implicit_exception,
2358 have_exceptions_p, make_type_decl, typedecl_for_tag,
2359 store_in_parms, pop_implicit_try_blocks, push_exception_cleanup,
2360 build_component_type_expr, cplus_exception_name,
2361 {make,clear}_anon_parm_name, dont_see_typename): Removed decls.
2362 * call.c (build_this): Make static.
2363 (is_complete): Likewise.
2364 (implicit_conversion): Likewise.
2365 (reference_binding): Likewise.
2366 (standard_conversion): Likewise.
2367 (strip_top_quals): Likewise.
2368 (non_reference): Likewise.
2369 (build_conv): Likewise.
2370 (user_harshness): Likewise.
2371 (rank_for_ideal): Likewise.
2372 * decl.c (start_decl_1): Delete forward decl.
2373 (push_decl_level): Make static.
2374 (resume_binding_level): Make static.
2375 (namespace_bindings_p): Make static.
2376 (declare_namespace_level): Make static.
2377 (lookup_name_real): Make static.
2378 (duplicate_decls): Make static. Take register off NEWDECL and
2379 OLDDECL parm decls.
2380 * decl2.c (get_sentry): Make static.
2381 (temp_name_p): Delete fn.
2382 * except.c (auto_function): Delete decl.
2383 * lex.c (handle_{cp,sysv}_pragma): Make static.
2384 (handle_sysv_pragma) [HANDLE_SYSV_PRAGMA]: Add forward decl.
2385 * method.c (do_build_{copy_constructor,assign_ref}): Make static.
2386 * pt.c (tsubst_expr_values): Make static.
2387 * rtti.c (combine_strings): Delete decl.
2388
2389Tue Jan 28 16:40:40 1997 Jason Merrill <jason@yorick.cygnus.com>
2390
2391 * pt.c (push_template_decl): Handle getting a typedef.
2392
2393 * call.c (build_new_function_call): Complain about void arg.
2394
2395Tue Jan 28 15:25:09 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2396
2397 * decl.c (duplicate_decls): Give pedwarn of different exceptions
2398 if -pedantic, instead of olddecl !DECL_IN_SYSTEM_HEADER.
2399
2400Mon Jan 27 19:21:29 1997 Mike Stump <mrs@cygnus.com>
2401
2402 * except.c (expand_throw): Don't expand the cleanup tree here,
eb66be0e
MS
2403 since we are not going to write the rtl out. Fixes problem with
2404 -g -O on SPARC.
824b9a4c
MS
2405
2406Mon Jan 27 16:24:35 1997 Sean McNeil <sean@mcneil.com>
2407
2408 * Make-lang.in: Add $(exeext) as necessary.
2409
2410Mon Jan 27 13:20:39 1997 Mike Stump <mrs@cygnus.com>
2411
2412 * parse.y (handler_seq): Must have at least one catch clause.
2413
2414Sat Jan 25 12:00:05 1997 Jason Merrill <jason@yorick.cygnus.com>
2415
2416 * call.c (add_builtin_candidate): Restore ?: hack.
2417
2418 * decl.c (grok_op_properties): More warnings.
2419
2420Sat Jan 25 08:50:03 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2421
2422 * decl.c (duplicate_decls): On second thought, do it as a pedwarn
2423 still but only if !DECL_IN_SYSTEM_HEADER (olddecl).
2424
2425 * decl.c (duplicate_decls): Scale back to a warning, and only do
2426 'em if -pedantic.
2427
2428Fri Jan 24 17:52:54 1997 Mike Stump <mrs@cygnus.com>
2429
2430 * decl.c (duplicate_decls): pedwarn mismatched exception
eb66be0e 2431 specifications.
824b9a4c
MS
2432
2433Thu Jan 23 18:18:54 1997 Mike Stump <mrs@cygnus.com>
2434
2435 * call.c (build_new_method_call): Don't display the invisible
eb66be0e 2436 argument for controlling virtual bases.
824b9a4c
MS
2437
2438Thu Jan 23 16:48:10 1997 Mike Stump <mrs@cygnus.com>
2439
2440 * new: Add nothrow new and delete, bad_alloc and throw specifications
2441 for delete.
2442 * decl.c (init_decl_processing): Add throw specification for delete.
2443 * new.cc (nothrow): Define.
2444 * lex.c (real_yylex): Removing warning that throw and friends are
2445 keywords.
2446 * new1.cc (operator new (size_t sz, const nothrow_t&)): Define.
2447 * new2.cc (operator new[] (size_t sz, const nothrow_t&): Define.
2448 * Make-lang.in: Add new{1,2}.{cc,o}.
2449
2450Thu Jan 23 16:39:06 1997 Jason Merrill <jason@yorick.cygnus.com>
2451
2452 * lex.c (cons_up_default_function): Fix return type of synth op=.
2453
2454 * init.c (emit_base_init): Add warnings for uninitialized members
eb66be0e 2455 and bases.
824b9a4c
MS
2456
2457 * decl.c (xref_basetypes): Add warning for non-polymorphic type
eb66be0e 2458 with destructor used as base type.
824b9a4c
MS
2459
2460 * decl.c (grok_op_properties): Add warning for op= returning void.
2461 * typeck.c (c_expand_return): Add warning for op= returning anything
2462 other than *this.
2463
2464 * class.c (finish_struct_1): Add warning for class with pointers
eb66be0e 2465 but not copy ctor or copy op=.
824b9a4c
MS
2466
2467 * cp-tree.h (TI_PENDING_TEMPLATE_FLAG): New macro.
2468 * pt.c (add_pending_template): Use it instead of LANG_FLAG_0.
2469 (instantiate_template): If -fexternal-templates, add this
eb66be0e 2470 instantiation to pending_templates.
824b9a4c
MS
2471
2472 * decl2.c (copy_assignment_arg_p): Disable old hack to support
eb66be0e 2473 Booch components.
824b9a4c
MS
2474
2475Tue Jan 21 18:32:04 1997 Mike Stump <mrs@cygnus.com>
2476
2477 * cvt.c (cp_convert): Pedwarn enum to pointer conversions.
2478
de22184b
MS
2479Mon Jan 20 17:59:51 1997 Jason Merrill <jason@yorick.cygnus.com>
2480
2481 * call.c (standard_conversion): Handle getting references. Tack
eb66be0e 2482 on RVALUE_CONV here. Do it for non-class types, too.
de22184b
MS
2483 (reference_binding): Pass references to standard_conversion.
2484 (implicit_conversion): Likewise.
2485 (add_builtin_candidate): Disable one ?: kludge.
2486 (convert_like): Handle RVALUE_CONVs for non-class types.
2487 (joust): Disable the other ?: kludge.
2488
2489Mon Jan 20 14:53:13 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2490
2491 * decl.c (init_decl_processing): Add code to build up common
2492 function types beforehand, to avoid creation then removal of
2493 things already in the hash table.
2494
2495Mon Jan 20 14:43:49 1997 Jason Merrill <jason@yorick.cygnus.com>
2496
2497 * decl.c (finish_function): Also zero out DECL_INCOMING_RTL for
eb66be0e 2498 the arguments.
de22184b
MS
2499
2500 * error.c (dump_expr, TEMPLATE_CONST_PARM): Don't require
eb66be0e 2501 current_template_parms.
de22184b
MS
2502
2503Fri Jan 17 10:25:42 1997 Jason Merrill <jason@yorick.cygnus.com>
2504
2505 * search.c (lookup_field): Don't return a function, check want_type.
2506
2507Thu Jan 16 18:14:35 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2508
2509 * init.c (build_new): Make sure PLACEMENT has a type.
2510
2511Thu Jan 16 17:40:28 1997 Jason Merrill <jason@yorick.cygnus.com>
2512
2513 * init.c (build_new): Support new (nothrow).
2514
2515Wed Jan 15 12:38:14 1997 Jason Merrill <jason@yorick.cygnus.com>
2516
2517 * pt.c (instantiate_decl): Also do push_to_top_level before setting
2518 up DECL_INITIAL.
2519
2520 * cp-tree.h (PARM_DEFAULT_FROM_TEMPLATE): New macro.
2521 * pt.c (tsubst): Defer instantiation of default args.
2522 * call.c (build_over_call): Until here.
2523
2524Wed Jan 15 10:08:10 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2525
2526 * search.c (lookup_field): Make sure we have an
2527 IDENTIFIER_CLASS_VALUE before we try to return it.
2528
2529Thu Jan 9 07:19:01 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2530
2531 * call.c (build_method_call): Delete unused var PARM.
2532 (build_overload_call_real): Likewise.
2533 (build_object_call): Delete unused var P.
2534 (build_new_op): Likewise.
2535 * decl.c (builtin_type_tdescs_{arr, len, max}): #if 0 out static
2536 var definitions, which are never used.
2537 (shadow_tag): Delete unused var FN.
2538 * expr.c (cplus_expand_expr): Delete unused var ORIGINAL_TARGET.
2539 * init.c (build_new): Delete unused var ALLOC_TEMP.
2540 * method.c (hack_identifier): Delete unused var CONTEXT.
2541 (do_build_copy_constructor): Delete unused var NAME.
2542 (synthesize_method): Delete unused var BASE.
2543 * pt.c (lookup_template_class): Delete unused var CODE_TYPE_NODE.
2544 * rtti.c (build_headof): Delete unused var VPTR.
2545 (get_typeid): Delete unused var T.
2546 * typeck.c (build_conditional_expr): Delete unused vars ORIG_OP1
2547 and ORIG_OP2.
2548 (build_ptrmemfunc): Delete unused vars U and NINDEX.
2549 * typeck2.c (build_functional_cast): Delete unused var BINFO.
2550
2551Wed Jan 8 13:09:54 1997 Jason Merrill <jason@yorick.cygnus.com>
2552
2553 * search.c (lookup_field): Use IDENTIFIER_CLASS_VALUE to look up
2554 things in a type being defined.
2555 * decl.c (finish_enum): Reverse the values so that they are in
2556 the correct order.
2557
2558 * pt.c (instantiate_class_template): Don't initialize
eb66be0e 2559 BINFO_BASETYPES until the vector is filled out.
de22184b
MS
2560 (unify): Don't abort on conflicting bindings, just fail.
2561 (instantiate_decl): Do push_tinst_level before any tsubsting.
2562
2563 * method.c (build_overload_value): Handle getting a
eb66be0e 2564 TEMPLATE_CONST_PARM for a pointer.
de22184b
MS
2565
2566Tue Jan 7 14:00:58 1997 Jason Merrill <jason@yorick.cygnus.com>
2567
2568 * init.c (expand_member_init): Don't give 'not a base' error for
eb66be0e 2569 templates.
de22184b
MS
2570
2571 * pt.c (instantiate_decl): Call import_export_decl later.
2572
2573 * pt.c (instantiate_class_template): Return a value.
2574
2575 * parse.y (extension): New rule for __extension__.
2576 (extdef, unary_expr, decl, component_decl): Use it.
2577
2578Tue Jan 7 09:20:28 1997 Mike Stump <mrs@cygnus.com>
2579
2580 * class.c (base_binfo): Remove unused base_has_virtual member.
2581 (finish_base_struct): Likewise.
2582 (finish_struct_1): Likewise.
2583
2584Tue Dec 31 20:25:50 1996 Mike Stump <mrs@cygnus.com>
2585
2586 * search.c (expand_upcast_fixups): Fix bogus code generation
2587 problem where the generated code uses the wrong index into the
2588 runtime built vtable on the stack. Old code could clobber random
2589 stack values.
2590
2591Tue Dec 31 15:16:56 1996 Mike Stump <mrs@cygnus.com>
2592
2593 * init.c (perform_member_init): Make sure the partial EH cleanups
eb66be0e 2594 live on the function_obstack.
de22184b 2595
f7da6097
MS
2596Fri Dec 27 10:31:40 1996 Paul Eggert <eggert@twinsun.com>
2597
2598 * Make-lang.in (g++spec.o): Don't use $< with an explicit target;
2599 this isn't portable to some versions of `make' (e.g. Solaris 2.5.1).
2600
2601Tue Dec 24 10:24:03 1996 Jeffrey A Law (law@cygnus.com)
2602
2603 * decl.c (grokvardecl): Avoid ANSI style initialization.
2604
2605Sun Dec 22 04:22:06 1996 Jason Merrill <jason@yorick.cygnus.com>
2606
2607 * pt.c (tsubst): Tweak arg types for a FUNCTION_TYPE.
2608
2609Fri Dec 20 17:09:25 1996 Jason Merrill <jason@yorick.cygnus.com>
2610
2611 * pt.c (instantiate_class_template): Call grok_{ctor,op}_properties.
2612
1bf2b2d2
BK
2613Fri Dec 20 12:17:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2614
2615 * g++spec.c (lang_specific_driver): Put missing hyphen in front of
2616 arguments we compare against. Start the count of I at 1, not 0,
2617 since argv[0] is still the command.
2618
f7da6097
MS
2619Thu Dec 19 11:53:57 1996 Stan Shebs <shebs@andros.cygnus.com>
2620
2621 * lang-specs.h: Accept .cp as an C++ extension.
2622
d2e5ee5c
MS
2623Mon Dec 16 22:43:31 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2624
2625 * cp-tree.h (ptr_reasonably_similar): Add decl.
2626
2627Thu Dec 12 15:00:35 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2628
2629 * decl.c (grokvardecl): Change SPECBITS parm to be the SPECBITS_IN
2630 pointer. New local SPECBITS with the parm's value.
2631 (grokdeclarator): Pass &specbits down.
2632
2633 * parse.y (expr_no_commas): Make sure $$ is not an error_mark_node
2634 before we try to do C_SET_EXP_ORIGINAL_CODE on it.
2635
2636 * search.c (envelope_add_decl): Check that the CLASSTYPE_CID of
2637 CONTEXT is not 0 before we try to use TYPE_DERIVES_FROM.
2638
2639 * decl.c (cplus_expand_expr_stmt): Only expand the expr if EXP is
2640 not an error_mark_node.
2641
2642Sat Dec 7 17:20:22 1996 Jason Merrill <jason@yorick.cygnus.com>
2643
2644 * cp-tree.h (TYPE_MAIN_DECL): Use TYPE_STUB_DECL.
2645 * *.c: Use TYPE_MAIN_DECL instead of TYPE_NAME where appropriate.
2646
2647Fri Dec 6 14:40:09 1996 Jason Merrill <jason@yorick.cygnus.com>
2648
2649 * decl.c (grokdeclarator): When giving an anonymous struct a name,
2650 replace TYPE_NAME instead of TYPE_IDENTIFIER (so TYPE_STUB_DECL is
2651 not affected).
2652
2653 * typeck2.c (build_m_component_ref): If component is a pointer
2654 to data member, resolve the OFFSET_REF now.
2655
2656 * call.c (convert_like): Don't go into infinite recursion.
2657
2658 * pt.c (coerce_template_parms): Use tsubst_expr for non-type args.
2659
2660 * class.c (finish_struct_1): Set DECL_ARTIFICIAL on the vptr.
2661 * tree.c (layout_basetypes): And on the vbase ptr.
2662
2663Thu Dec 5 02:11:28 1996 Jason Merrill <jason@yorick.cygnus.com>
2664
2665 * decl.c (BOOL_TYPE_SIZE): Define in terms of POINTER_SIZE or
2666 CHAR_TYPE_SIZE so bool is always the same size as another type.
2667
2668 * decl.c (pushtag): Set DECL_IGNORED_P for DWARF, too.
2669
2670Tue Dec 3 23:18:37 1996 Jason Merrill <jason@yorick.cygnus.com>
2671
2672 * decl2.c (grok_x_components): Remove synthesized methods from
eb66be0e
MS
2673 TYPE_METHODS of an anonymous union, complain about member
2674 functions.
d2e5ee5c
MS
2675 * decl.c (shadow_tag): Wipe out memory of synthesized methods in
2676 anonymous unions.
2677 (finish_function): Just clear the DECL_RTL of our arguments.
2678
2679Fri Nov 29 21:54:17 1996 Jason Merrill <jason@yorick.cygnus.com>
2680
2681 * decl2.c (finish_file): Emit DWARF debugging info for static data
2682 members.
2683
2684 * pt.c (tsubst): If t is a stub decl, return the stub decl for type.
2685
2686Wed Nov 27 14:47:15 1996 Bob Manson <manson@charmed.cygnus.com>
2687
2688 * typeck.c (build_component_ref): Don't die if COMPONENT isn't a
eb66be0e 2689 IDENTIFIER_NODE.
d2e5ee5c
MS
2690
2691Wed Nov 27 16:05:19 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2692
2693 * Make-lang.in (g++-cross$(exeext)): Fix typo.
2694
2695Wed Nov 27 08:14:00 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2696
2697 Make the g++ driver now be a standalone program, rather than one
2698 that tries to run the gcc driver after munging up the options.
2699 * Make-lang.in (g++.c, g++spec.o): New rules.
2700 (g++.o): New rule, based on gcc.o with -DLANG_SPECIFIC_DRIVER
2701 added.
2702 (g++$(exeext)): New rule, based on xgcc rule.
2703 (g++-cross$(exeext)): Now just copies g++$(exeext) over.
2704 * g++spec.c: New file.
2705 * g++.c: Removed file.
2706
2707Tue Nov 26 19:01:09 1996 Mike Stump <mrs@cygnus.com>
2708
2709 * cvt.c (build_up_reference): Arrange for any temporary values
2710 that have been keep in registers until now to be put into memory.
2711
faf5394a 2712Mon Nov 25 15:16:41 1996 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9a3b49ac 2713
faf5394a
MS
2714 * Make-lang.in (c++.stage[1234]): Depend upon stage[1-4]-start, so
2715 that make -j3 bootstrap works better.
9a3b49ac 2716
faf5394a
MS
2717Sun Nov 24 02:09:39 1996 Jason Merrill <jason@yorick.cygnus.com>
2718
2719 * decl.c (pushtag): Do pushdecl for anon tags.
2720
2721Thu Nov 21 16:30:24 1996 Jason Merrill <jason@yorick.cygnus.com>
2722
2723 * typeck.c (c_expand_return): Fix logic.
2724 (unary_complex_lvalue): Avoid unused warning on address of INIT_EXPR.
2725
faf5394a
MS
2726Wed Nov 20 18:47:31 1996 Bob Manson <manson@charmed.cygnus.com>
2727
2728 * g++.c (main): Make sure arglist has a final NULL entry. Add
eb66be0e
MS
2729 PEXECUTE_LAST to the flags passed to pexecute, as otherwise
2730 stdin/stdout of the invoked program are redirected to
2731 nowheresville.
faf5394a
MS
2732
2733Tue Nov 19 16:12:44 1996 Jason Merrill <jason@yorick.cygnus.com>
2734
2735 * decl.c (implicitly_declare): Set DECL_ARTIFICIAL.
2736
2737Tue Nov 19 15:48:19 1996 Mike Stump <mrs@cygnus.com>
2738
2739 * init.c (resolve_offset_ref): Handle obj.vfn better.
2740 * typeck.c (build_component_ref): Set TREE_TYPE on result from
2741 build_vfn_ref.
2742
2743Tue Nov 19 13:14:33 1996 Mike Stump <mrs@cygnus.com>
2744
2745 * typeck.c (convert_for_assignment): Also handle anachronistic
2746 implicit conversions from (::*)() to cv void*.
2747 * cvt.c (cp_convert_to_pointer): Likewise.
2748
2749Mon Nov 18 17:05:26 1996 Jason Merrill <jason@yorick.cygnus.com>
2750
2751 * lex.c (handle_cp_pragma): Fix bogus warning.
2752
2753Mon Nov 18 16:10:43 1996 Mike Stump <mrs@cygnus.com>
2754
2755 * cvt.c (cp_convert_to_pointer): Avoid thinking a POINTER_TYPE
eb66be0e 2756 (METHOD_TYPE) is a TYPE_PTRMEMFUNC_P.
faf5394a
MS
2757
2758Thu Nov 14 23:18:17 1996 Jason Merrill <jason@yorick.cygnus.com>
2759
2760 * class.c (finish_struct_1): Support DWARF2_DEBUG.
2761 * search.c (dfs_debug_mark): Likewise.
2762 * decl2.c (finish_vtable_vardecl): Likewise.
2763 * decl.c (pushtag, finish_enum): Likewise.
2764 * lex.c (check_newline): Use debug_* instead of calling *out
eb66be0e 2765 functions directly.
faf5394a
MS
2766
2767Thu Nov 14 15:21:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2768
2769 * Make-lang.in (cplib2.ready): Add else clause to avoid problems
2770 on some picky hosts.
2771
2772Wed Nov 13 12:32:07 1996 Jason Merrill <jason@yorick.cygnus.com>
2773
2774 * class.c (finish_struct_1): A class has a non-trivial copy
eb66be0e 2775 constructor if it has virtual functions.
faf5394a
MS
2776
2777 * cvt.c (cp_convert): Always call a constructor.
2778
2779 * call.c (reference_binding): Still tack on a REF_BIND
eb66be0e 2780 for bad conversions.
faf5394a
MS
2781 (build_user_type_conversion_1): Propagate ICS_BAD_FLAG.
2782
2783 * typeck.c (convert_arguments): Pass LOOKUP_ONLYCONVERTING.
2784 (c_expand_return): Likewise.
2785 * typeck2.c (digest_init): Likewise for { }.
2786 * init.c (expand_aggr_init_1): Keep the CONSTRUCTOR handling.
2787 * cvt.c (cp_convert): Handle failure better.
2788
2789Wed Nov 13 11:51:20 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2790
2791 * g++.c (main): Also set PEXECUTE_SEARCH, to make the invocation
2792 of GCC be path-relative.
2793
2794Wed Nov 13 11:27:16 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2795
2796 * Make-lang.in (g++-cross): G++-cross doesn't need version.o, but
2797 it does need choose-temp.o and pexecute.o.
2798
2799Wed Nov 13 07:53:38 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2800
2801 * g++.c (error) [!HAVE_VPRINTF]: Put error back for the only time
2802 that we still use it.
2803 (P_tmpdir, R_OK, W_OK, X_OK) [__MSDOS__]: Delete unnecessary macros.
2804
2805Wed Nov 13 02:00:26 1996 Jason Merrill <jason@yorick.cygnus.com>
2806
2807 * init.c (expand_default_init): Avoid calling constructors to
2808 initialize reference temps.
2809
2810 * cvt.c (convert_to_reference): Fix.
2811
2812Tue Nov 12 19:10:07 1996 Jason Merrill <jason@yorick.cygnus.com>
2813
2814 * cvt.c (cp_convert): Simplify for flag_ansi_overloading.
2815 (convert_to_reference): Likewise.
2816 * typeck.c (convert_for_initialization): Likewise.
2817 * init.c (expand_default_init): Likewise.
2818 (expand_aggr_init_1): Likewise.
2819 * cp-tree.h (CONV_NONCONVERTING): Lose.
2820 * typeck.c (build_c_cast): Lose allow_nonconverting parm.
2821 * *.c: Adjust.
2822 * call.c (build_user_type_conversion_1): Assume LOOKUP_ONLYCONVERTING.
2823
2824Tue Nov 12 16:29:04 1996 Brendan Kehoe <brendan@canuck.cygnus.com>
2825
2826 * pt.c (tsubst_expr): Reverse args to expand_start_catch_block.
2827
2828Tue Nov 12 15:26:17 1996 Jason Merrill <jason@yorick.cygnus.com>
2829
2830 * init.c (expand_aggr_init_1): Don't crash on non-constructor
2831 TARGET_EXPR.
2832
2833Tue Nov 12 14:00:50 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2834
2835 * g++.c: Include gansidecl.h.
2836 (VPROTO, PVPROTO, VA_START): Delete.
2837 (choose_temp_base_try, choose_temp_base, perror_exec,
2838 run_dos) [__MSDOS__]: Delete fns.
2839 (pfatal_with_name): Delete fn.
2840 (temp_filename): Declare like in gcc.c.
2841 (pexecute, pwait, choose_temp_base): Declare from gcc.c.
2842 (error_count, signal_count): Define.
2843 (error): Delete both definitions.
2844 (PEXECUTE_{FIRST,LAST,SEARCH,VERBOSE}): Define from gcc.c.
2845 (pfatal_pexecute): Add fn from gcc.c.
2846 (main): Rename local VERBOSE var to VERBOSE_FLAG. Rewrite the
2847 code to use the pexecute stuff also used by gcc.c.
2848 (MIN_FATAL_STATUS): Define.
2849 * Make-lang.in (g++): Add dependency on and linking with
2850 choose-temp.o and pexecute.o.
2851
2852 * cp-tree.h: Include gansidecl.h.
2853 (STDIO_PROTO): Delete #undef/#define.
2854 * cvt.c (NULL): Delete #undef/#define.
2855 * expr.c (NULL): Likewise.
2856 * init.c (NULL): Likewise.
2857 * rtti.c (NULL): Likewise.
2858 * xref.c (NULL): Likewise.
2859
2860 * cp-tree.h (build_user_type_conversion): Add prototype.
2861 * call.c (build_user_type_conversion): Delete prototype. Correct
2862 decl of FLAGS arg to be an int.
2863 * cvt.c (build_user_type_conversion): Likewise.
2864
2865Tue Nov 12 12:16:20 1996 Jason Merrill <jason@yorick.cygnus.com>
2866
2867 * cp-tree.def: Add TRY_BLOCK and HANDLER.
2868 * except.c (expand_start_catch_block): Support templates.
2869 * parse.y (try_block, handler_seq): Likewise.
2870 * pt.c (tsubst_expr): Support TRY_BLOCK and HANDLER.
9a3b49ac
MS
2871
2872Mon Nov 11 13:57:31 1996 Jason Merrill <jason@yorick.cygnus.com>
2873
2874 * pt.c (current_template_args): New fn.
2875 (push_template_decl): Use it.
2876 * decl.c (grokdeclarator): Use it.
2877
2878 * decl2.c (build_expr_from_tree): Dereference ref vars.
2879
2880 * decl.c (grokdeclarator): Generalize handling of TYPENAME_TYPEs in
2881 the decl-specifier-seq.
2882
2883 * decl.c (grok_op_properties): Don't force the type of a conversion
2884 op to be complete. Don't warn about converting to the same type
2885 for template instantiations.
2886
2887 * decl2.c (finish_file): Don't call instantiate_decl on synthesized
2888 methods.
2889
2890Mon Nov 11 13:20:34 1996 Bob Manson <manson@charmed.cygnus.com>
2891
2892 * typeck.c (get_delta_difference): Remove previous bogusness.
2893 Don't give errors if force is set.
2894
2895Fri Nov 8 17:38:44 1996 Jason Merrill <jason@yorick.cygnus.com>
2896
2897 * decl2.c (finish_file): Don't emit debug info.
d2e5ee5c 2898 * decl.c (pushdecl): Lose obsolete code.
9a3b49ac 2899 (grokdeclarator): Still do the long long thing after complaining.
d2e5ee5c
MS
2900 * search.c (note_debug_info_needed): Don't do anything if we're in a
2901 template.
9a3b49ac 2902 * method.c (synthesize_method): For non-local classes,
eb66be0e 2903 push_to_top_level first.
9a3b49ac
MS
2904
2905Fri Nov 8 11:52:28 1996 Bob Manson <manson@charmed.cygnus.com>
2906
2907 * typeck.c (get_delta_difference): Add no_error parameter.
2908 (build_ptrmemfunc): Call get_delta_difference with no_error set;
eb66be0e
MS
2909 we don't want error messages when converting unrelated
2910 pointer-to-member functions.
9a3b49ac
MS
2911
2912Thu Nov 7 11:16:24 1996 Mike Stump <mrs@cygnus.com>
2913
2914 * error.c (dump_expr): Improve the wording on error messages that
2915 involve pointer to member functions.
2916
2917Tue Nov 5 17:12:05 1996 Mike Stump <mrs@cygnus.com>
2918
2919 * cvt.c (cp_convert_to_pointer): Move code for conversions from
eb66be0e 2920 (::*)() to void* or (*)() up a bit, so that we can convert from
9a3b49ac
MS
2921 METHOD_TYPEs as well.
2922
2923Tue Nov 5 14:54:17 1996 Jason Merrill <jason@yorick.cygnus.com>
2924
2925 * rtti.c (get_tinfo_fn): Make sure 'type' is permanent.
2926 There are no 'member' types.
2927 (get_tinfo_fn_dynamic): Diagnose typeid of overloaded fn.
2928 (build_x_typeid): Handle errors.
2929
2930Mon Nov 4 17:43:12 1996 Mike Stump <mrs@cygnus.com>
2931
2932 * typeck.c (convert_for_assignment): Handle anachronistic implicit
2933 conversions from (::*)() to void* or (*)().
2934 * cvt.c (cp_convert_to_pointer): Likewise.
2935 (cp_convert_to_pointer_force): Remove cp_convert_to_pointer
2936 conversions from here.
2937 * decl2.c (lang_decode_option): Add -W{no-,}pmf-conversions.
2938 * lang-options.h: Likewise.
2939 * decl2.c (warn_pmf2ptr): Define.
2940 * cp-tree.h: Declare it.
2941 * typeck2.c (digest_init): Allow pmfs down into
2942 convert_for_initialization.
2943
2944Sun Nov 3 09:43:00 1996 Jason Merrill <jason@yorick.cygnus.com>
2945
2946 * typeck.c (c_expand_return): Fix for returning overloaded fn.
2947
2948Fri Nov 1 08:53:17 1996 Jason Merrill <jason@yorick.cygnus.com>
2949
2950 * cp-tree.h (DIRECT_BIND): Change from INDIRECT_BIND.
2951 * decl.c (grok_reference_init): Pass DIRECT_BIND.
2952 * cvt.c (build_up_reference): Don't mark 'this' addressable. Use
eb66be0e 2953 DIRECT_BIND.
9a3b49ac
MS
2954 * call.c (convert_like): Don't pass INDIRECT_BIND.
2955 * typeck.c (convert_arguments): Likewise.
2956 * typeck.c (mark_addressable): Allow &this if flag_this_is_variable.
2957
2958Thu Oct 31 17:08:49 1996 Jason Merrill <jason@yorick.cygnus.com>
2959
2960 * typeck.c (mark_addressable): Support TARGET_EXPR, unify with
eb66be0e 2961 similar code in build_up_ref.
9a3b49ac
MS
2962 * cvt.c (build_up_reference): Drastically simplify.
2963
691c003d
MS
2964Mon Oct 28 12:45:05 1996 Jeffrey A Law (law@cygnus.com)
2965
2966 * typeck.c (signed_or_unsigned_type): If the given type already
2967 as the correct signedness, then just return it.
2968
eb66be0e
MS
2969 * typeck.c ({un,}signed_type): If can't do anything, call
2970 signed_or_unsigned_type.
691c003d
MS
2971
2972Thu Oct 24 14:21:59 1996 Bob Manson <manson@charmed.cygnus.com>
2973
2974 * decl2.c (copy_assignment_arg_p): Don't buy the farm if
2975 current_class_type is NULL.
2976
2977Wed Oct 23 00:43:10 1996 Jason Merrill <jason@gerbil.cygnus.com>
2978
2979 * class.c (finish_struct_1): Avoid empty structs by adding a field
eb66be0e 2980 so layout_type gets the mode right.
691c003d
MS
2981
2982 * typeck.c (c_expand_return): Drastically simplify.
2983
2984Mon Oct 21 22:34:02 1996 Jason Merrill <jason@yorick.cygnus.com>
2985
2986 * typeck.c (decay_conversion): Handle overloaded methods.
2987
2988Fri Oct 18 16:03:48 1996 Jason Merrill <jason@yorick.cygnus.com>
2989
2990 * call.c (build_over_call): A TARGET_EXPR has side-effects.
2991
f49422da
MS
2992Thu Oct 17 11:31:59 1996 Mike Stump <mrs@cygnus.com>
2993
2994 * cvt.c (convert_to_pointer_force): Add code to support pointer to
eb66be0e 2995 member function to pointer to function conversions.
f49422da 2996 * init.c (resolve_offset_ref): Add code to allow faked up objects,
eb66be0e
MS
2997 ignoring them if they are not used, and giving an error, if they
2998 are needed.
f49422da 2999 * typeck.c (get_member_function_from_ptrfunc): Fold e1 to improve
eb66be0e
MS
3000 code, and so that we can give an error, if we needed an object,
3001 and one was not provided.
f49422da 3002 (build_c_cast): Don't call default_conversion when we want to
eb66be0e 3003 convert to pointer to function from a METHOD_TYPE.
f49422da
MS
3004
3005Mon Oct 14 00:28:51 1996 Jason Merrill <jason@yorick.cygnus.com>
3006
3007 * Make-lang.in (cplib2.ready): Fix logic.
3008
3009 * decl.c (shadow_tag): Only complain about non-artificial function
eb66be0e 3010 members.
f49422da
MS
3011
3012 * class.c (finish_struct_1): Add synthesized methods to TYPE_METHODS.
3013
3014Fri Oct 11 16:12:40 1996 Jason Merrill <jason@yorick.cygnus.com>
3015
3016 * expr.c (cplus_expand_expr): Pre-tweak call_target like
eb66be0e 3017 expand_inline_function would.
f49422da
MS
3018
3019 * pt.c (mark_decl_instantiated): If extern_p, call
eb66be0e 3020 mark_inline_for_output.
f49422da 3021
3d4683cb
MS
3022Thu Oct 10 15:58:08 1996 Mike Stump <mrs@cygnus.com>
3023
3024 * typeck.c (unary_complex_lvalue): Add code to handle intermediate
3025 pmd conversions.
3026
3027 * typeck.c (get_delta_difference): Fix wording, as we can be used
3028 for pointer to data members.
3029
3030Tue Oct 8 12:43:51 1996 Bob Manson <manson@charmed.cygnus.com>
3031
3032 * pt.c (tsubst): If the function decl isn't a member of this
eb66be0e
MS
3033 template, return a copy of the decl (including copying the
3034 lang-specific part) so we don't hose ourselves later.
3d4683cb
MS
3035
3036Thu Oct 3 16:24:28 1996 Jason Merrill <jason@yorick.cygnus.com>
3037
3038 * class.c (finish_struct): Remove DWARF-specific tag handling.
3039 * decl.c (pushtag): Likewise.
3040 (finish_function): Always clear DECL_ARGUMENTS on function decls with
3041 no saved RTX.
3042 * decl2.c (finish_file): Emit DWARF debugging info for static data
3043 members.
3044
3045Wed Oct 2 21:58:01 1996 Bob Manson <manson@charmed.cygnus.com>
3046
3047 * decl.c (duplicate_decls): Make sure the old DECL_LANG_SPECIFIC
3048 isn't the same as the new one before we whack it.
3049
3050Mon Sep 30 13:38:24 1996 Jason Merrill <jason@yorick.cygnus.com>
3051
3052 * class.c, cp-tree.h, cvt.c, decl.c, decl2.c, gxx.gperf, hash.h,
eb66be0e
MS
3053 lex.c, method.c, parse.y, typeck.c, typeck2.c: Remove
3054 warn_traditional and warn_strict_prototypes; remove ancient
3055 'overload' code; remove references to flag_traditional.
3d4683cb 3056
5156628f
MS
3057Mon Sep 30 12:58:40 1996 Mike Stump <mrs@cygnus.com>
3058
3059 * input.c (sub_getch): Handle 8-bit characters in string literals.
3060
3061Sun Sep 29 03:12:01 1996 Jason Merrill <jason@yorick.cygnus.com>
3062
3063 * tree.c (mapcar): Handle CONSTRUCTORs.
3064 (copy_to_permanent): Handle expression_obstack properly.
3065
3066 * Make-lang.in (cplib2.txt): Also depend on the headers.
3067
3068 * rtti.c (get_tinfo_var): Don't assume that POINTER_SIZE ==
eb66be0e 3069 INT_TYPE_SIZE.
5156628f
MS
3070 (expand_class_desc): Use USItype for offset field.
3071 * tinfo.h (struct __class_type_info): Likewise.
3072
3073 * method.c (build_overload_int): TYPE_PRECISION should be applied
eb66be0e 3074 to types.
5156628f
MS
3075
3076Sat Sep 28 14:44:50 1996 Jason Merrill <jason@yorick.cygnus.com>
3077
3078 * call.c (build_new_op): A COND_EXPR involving void must be a
3079 builtin.
3080
3081Fri Sep 27 16:40:30 1996 Jason Merrill <jason@yorick.cygnus.com>
3082
3083 * typeck.c (build_x_component_ref): New fn.
3084 (build_object_ref): Use it.
3085 * parse.y (primary): Use it.
3086 * decl2.c (build_expr_from_tree): Use it.
3087 * cp-tree.h: Declare it.
3088
3089 * decl.c (start_decl): variable-sized arrays cannot be initialized.
3090 * error.c (dump_type_suffix): Handle variable arrays.
3091
3092Fri Sep 27 13:14:05 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3093
3094 * Make-lang.in (exception.o): Put back compiling it with -fPIC.
3095
3096Fri Sep 27 03:00:09 1996 Jason Merrill <jason@yorick.cygnus.com>
3097
3098 * decl.c (lookup_name_real): Don't try to look up anything in a
eb66be0e 3099 TYPENAME_TYPE.
5156628f
MS
3100
3101 * tinfo2.cc (__throw_type_match_rtti): Oops.
3102
3103Thu Sep 26 22:11:05 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3104
3105 * Make-lang.in (exception.o): Use -fno-PIC for now.
3106
3107Thu Sep 26 10:59:00 1996 Jason Merrill <jason@yorick.cygnus.com>
3108
3109 * rtti.c (build_dynamic_cast): Pass tinfo fns rather than
eb66be0e 3110 calling them.
5156628f
MS
3111 (get_tinfo_fn_dynamic): Extracted from build_typeid.
3112 * tinfo2.cc (__dynamic_cast): Adjust.
3113
3114 * rtti.c (build_typeid): Use resolves_to_fixed_type_p.
3115 (build_x_typeid): Likewise.
3116
3117 * parse.y: Call build_x_typeid instead of build_typeid.
3118 * cp-tree.def: Add TYPEID_EXPR.
3119 * pt.c (tsubst_copy): Handle typeid.
3120 * decl2.c (build_expr_from_tree): Likewise.
3121 * rtti.c (build_x_typeid): Throw bad_typeid from here.
3122 (build_typeid): Not here.
3123 * cp-tree.h: Declare build_x_typeid.
3124
3125Wed Sep 25 17:26:16 1996 Jason Merrill <jason@yorick.cygnus.com>
3126
3127 * call.c (convert_like): Pull out constant values.
3128
3129 * tree.c (mapcar): Use build_cplus_array_type, not build_array_type.
3130
3131Wed Sep 25 17:28:53 1996 Michael Meissner <meissner@tiktok.cygnus.com>
3132
3133 * decl.c (init_decl_processing): Create short int types before
3134 creating size_t in case a machine description needs to use
3135 unsigned short for size_t.
3136
3137Tue Sep 24 18:18:44 1996 Jason Merrill <jason@yorick.cygnus.com>
3138
3139 * Make-lang.in (exception.o): Turn off pic.
3140
3141 * tinfo2.cc (__throw_type_match_rtti): Fix cv-variants of the same
3142 type, multi-level ptr conversions.
3143
3144 * rtti.c (call_void_fn): Renamed and genericized from throw_bad_cast.
3145 (throw_bad_cast): Use it.
3146 (throw_bad_typeid): New fn.
3147 (build_typeid): Throw bad_typeid as needed.
3148 Use build_call.
3149 (synthesize_tinfo_fn): Handle functions and arrays before checking
3150 for cv-quals.
3151
3152 * Remove .h from standard C++ headers, add new.h, move into inc
eb66be0e 3153 subdirectory.
5156628f
MS
3154
3155 * exception*: Remove pointer from object, constructors. Add
eb66be0e
MS
3156 default exception::what that uses type_info::name. Add
3157 __throw_bad_typeid.
5156628f
MS
3158
3159 * init.c (build_new): Don't add a cookie to new (void *) T[2].
3160
3161Mon Sep 23 15:21:53 1996 Jason Merrill <jason@yorick.cygnus.com>
3162
3163 * Make-lang.in: Building C++ code depends on cc1plus.
3164
3165Mon Sep 23 12:38:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3166
3167 * decl.c (struct saved_scope): Declare PROCESSING_TEMPLATE_DECL as
3168 a HOST_WIDE_INT, not a tree.
3169
3170Mon Sep 23 12:36:02 1996 Jason Merrill <jason@yorick.cygnus.com>
3171
3172 * exception.cc: Don't include <stdlib.h>.
3173
3174 * Make-lang.in (c++.clean): Remove cplib2.*.
3175
3176Mon Sep 23 09:42:19 1996 Doug Evans <dje@canuck.cygnus.com>
3177
3178 * parse.y (component_decl_1, component_costructor_declarator case):
3179 Pass attributes/prefix_attributes in tree list.
3180
3181Mon Sep 23 01:18:50 1996 Jason Merrill <jason@yorick.cygnus.com>
3182
3183 * tinfo{,2}.cc: #include <stddef.h> instead of <stdlib.h>.
3184
3185Sun Sep 22 05:31:22 1996 Jason Merrill <jason@yorick.cygnus.com>
3186
3187 * lex.c (do_identifier): Don't do deferred lookup in a template
eb66be0e 3188 header.
5156628f
MS
3189
3190 * typeck2.c (store_init_value): Oops.
3191
3192 * new.{h,cc}, exception.{h,cc}, typeinfo.h, tinfo{2.cc,.cc,.h}:
3193 New files for C++ lang-support library.
3194 * Make-lang.in (CXX_EXTRA_HEADERS): Define.
3195 (CXX_LIB2FUNCS): Define.
3196 And rules for building the C++ lang-support code.
3197 * config-lang.in (headers): Define.
3198 (lib2funcs): Define.
3199
3200Sat Sep 21 19:17:28 1996 Jason Merrill <jason@yorick.cygnus.com>
3201
3202 * decl2.c (build_expr_from_tree): If CONSTRUCTOR has a type, call
3203 digest_init.
3204 * pt.c (tsubst_copy): Compute type for CONSTRUCTOR.
3205 * typeck2.c (store_init_value): Check for initializing pmf with { }
3206 here.
3207 (process_init_constructor): Not here.
3208
3209Thu Sep 19 16:41:07 1996 Jason Merrill <jason@yorick.cygnus.com>
3210
3211 * pt.c (begin_template_parm_list): Increment
eb66be0e 3212 processing_template_decl here.
5156628f
MS
3213 (end_template_parm_list): Not here.
3214 (process_template_parm): No need to add 1 to it now.
3215 * *.c: Use processing_template_decl instead of current_template_parms
3216 to check for being in a template.
3217
3218 * pt.c (uses_template_parms): Handle SCOPE_REF. Fix CONSTRUCTOR.
3219 (tsubst_copy): Handle CONSTRUCTOR.
3220 (instantiate_decl): Set up context properly for variables.
3221 * decl2.c (build_expr_from_tree): Handle CONSTRUCTOR.
3222 * class.c (finish_struct): Reverse CLASSTYPE_TAGS.
3223
3224Wed Sep 18 13:30:20 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3225
3226 * lex.c (enum tree_node_kind) [GATHER_STATISTICS]: Put the enum back.
3227
7fcdf4c2
MS
3228Wed Sep 18 04:24:07 1996 Jason Merrill <jason@yorick.cygnus.com>
3229
3230 * method.c (make_thunk): Call comdat_linkage before setting the
eb66be0e 3231 TREE_CODE.
7fcdf4c2
MS
3232
3233 * decl2.c (comdat_linkage): Use make_decl_one_only.
3234 (import_export_decl): Likewise.
3235 * decl.c (init_decl_processing): Check supports_one_only instead of
3236 SUPPORTS_WEAK.
3237
3238Sat Sep 14 08:34:41 1996 Jason Merrill <jason@yorick.cygnus.com>
3239
3240 * decl2.c (grokfield): Tighten checking for access decls.
3241
3242 * decl.c (make_typename_type): Resolve references to
eb66be0e 3243 current_class_type. Set CLASSTYPE_GOT_SEMICOLON.
7fcdf4c2 3244 (lookup_name_real): Types that depend on a template parameter get
eb66be0e 3245 an implicit 'typename' unless they're in the current scope.
7fcdf4c2 3246 (start_decl_1): We don't care about incomplete types that depend
eb66be0e 3247 on a template parm.
7fcdf4c2 3248 (grokdeclarator): Resolve 'typename's in the type specifier that
eb66be0e 3249 refer to members of the current scope.
7fcdf4c2
MS
3250
3251 * call.c (build_over_call): Remove 'inline called before
eb66be0e 3252 definition' diagnostic.
7fcdf4c2
MS
3253 (build_method_call): Likewise.
3254 * decl.c (duplicate_decls): Downgrade 'used before declared
eb66be0e 3255 inline' to a warning, only with -Winline.
7fcdf4c2
MS
3256
3257Fri Sep 13 17:31:40 1996 Stan Shebs <shebs@andros.cygnus.com>
3258
3259 * mpw-make.sed: Fix include paths, add @DASH_C_FLAG@ to compile.
3260
c11b6f21
MS
3261Wed Sep 11 22:38:13 1996 Gerald Baumgartner <gb@cs.purdue.edu>
3262
3263 * call.c (build_method_call): When calling a signature
3264 default implementation, as in other cases, let instance_ptr simply
3265 be instance.
3266
3267Wed Sep 11 22:14:44 1996 Mike Stump <mrs@cygnus.com>
3268
3269 * parse.y (simple_stmt): Cleanup and use do_poplevel ().
3270
3271Wed Sep 11 22:10:48 1996 Mike Stump <mrs@cygnus.com>
3272
3273 * except.c (expand_start_catch_block): Add a pushlevel so that -g
eb66be0e 3274 works on hppa and SPARC.
c11b6f21
MS
3275
3276Wed Sep 11 10:18:06 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3277
3278 * typeck.c (build_indirect_ref): Catch PTR being an error_mark_node.
3279
3280Mon Sep 9 19:51:14 1996 Gerald Baumgartner <gb@cs.purdue.edu>
3281
3282 * call.c (build_over_call): Check first whether DECL_CONTEXT exists
3283 before testing whether it's a signature.
3284
3285Sun Sep 8 16:06:57 1996 Gerald Baumgartner <gb@cs.purdue.edu>
3286
3287 * call.c (build_new_method_call): Don't complain about signature
3288 pointers and references not being an aggr type.
3289 (build_this): If a signature pointer or reference was passed in,
3290 just return it.
3291 (build_new_method_call): If instance is a signature pointer, set
3292 basetype to the signature type of instance.
3293 * sig.c (build_signature_method_call): Deleted basetype and
3294 instance parameters, they can be found as the DECL_CONTEXT of
3295 function and as the first argument passed in.
3296 * cp-tree.h: Changed declaration of build_signature_method_call.
3297 * call.c (build_method_call): Deleted first two arguments in call
3298 of build_signature_method_call.
3299 (build_over_call): Added call to build_signature_method_call.
3300
3301Thu Sep 5 16:51:28 1996 Jason Merrill <jason@yorick.cygnus.com>
3302
3303 * typeck.c (build_c_cast): Don't tack a non_lvalue_expr onto a
eb66be0e 3304 target_expr.
c11b6f21
MS
3305
3306Thu Sep 5 10:05:38 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3307
3308 * cvt.c (convert_to_reference): Use %#T, not %#D, for error.
3309
9ffa2541
BM
3310Wed Sep 4 17:16:09 1996 Bob Manson <manson@charmed.cygnus.com>
3311
3312 * except.c (expand_start_try_stmts): Move to except.c in the backend.
3313 (expand_end_try_stmts): Remove.
3314
3315 * init.c (perform_member_init): Use add_partial_entry () instead
3316 of directly manipulating lists.
3317 (emit_base_init): Ditto.
3318
c11b6f21
MS
3319Wed Sep 4 12:14:36 1996 Mike Stump <mrs@cygnus.com>
3320
3321 * except.c (expand_exception_blocks): Always make sure USE and
eb66be0e
MS
3322 CLOBBER insns that came at the end still do, the backend relies
3323 upon this.
c11b6f21
MS
3324
3325Wed Sep 4 07:44:48 1996 Jason Merrill <jason@yorick.cygnus.com>
3326
3327 * call.c (build_over_call): We can only use a TARGET_EXPR of the
eb66be0e 3328 right type.
c11b6f21
MS
3329
3330Tue Sep 3 19:26:05 1996 Jason Merrill <jason@yorick.cygnus.com>
3331
3332 * cvt.c (convert_to_reference): Revert last change, don't complain
eb66be0e 3333 about temp without target decl.
c11b6f21
MS
3334
3335Tue Sep 3 10:22:56 1996 Mike Stump <mrs@cygnus.com>
3336
3337 * decl.c (grokdeclarator): Don't core dump when void() is given.
3338
3339Tue Sep 3 02:38:56 1996 Jason Merrill <jason@yorick.cygnus.com>
3340
3341 * decl.c (copy_args_p): Don't crash.
3342
3343Fri Aug 30 14:26:57 1996 Mike Stump <mrs@cygnus.com>
3344
3345 * pt.c (tsubst): And support template args inside the exception
eb66be0e 3346 specification.
c11b6f21
MS
3347
3348 * pt.c (tsubst): Add support for exception specifications in
eb66be0e 3349 template functions.
c11b6f21
MS
3350
3351Fri Aug 30 10:01:55 1996 Mike Stump <mrs@cygnus.com>
3352
3353 * cp-tree.def (DECL_STMT): Eliminate the throw spec field, only 3
eb66be0e 3354 fields now.
c11b6f21
MS
3355 * cp-tree.h (start_decl): Eliminate the throw spec parameter.
3356 (start_function): Likewise.
3357 (start_method): Likewise.
3358 (grokfield): Likewise.
3359 (make_call_declarator): Add throw spec parameter.
3360 (set_quals_and_spec): Add routine.
3361 * lex.c (set_quals_and_spec): Likewise.
3362 * decl.h (grokdeclarator): Eliminate the throw spec parameter.
3363 * decl.c (shadow_tag): Eliminate the throw spec parameter to
eb66be0e 3364 grokdeclarator.
c11b6f21
MS
3365 (groktypename): Likewise.
3366 (start_decl): Eliminate the throw spec parameter. Eliminate the
eb66be0e
MS
3367 throw spec parameter to grokdeclarator. Eliminate the throw spec
3368 field in DECL_STMT.
c11b6f21
MS
3369 (cp_finish_decl): Eliminate the throw spec field in DECL_STMT.
3370 (grokfndecl): Remove useless set of raises.
3371 (grokdeclarator): Eliminate the throw spec parameter. Eliminate
eb66be0e
MS
3372 the throw spec parameter to start_decl. Pull the throw spec out
3373 of the call declarator.
c11b6f21
MS
3374 (grokparms): Eliminate the throw spec parameter to grokdeclarator.
3375 (start_function): Eliminate the throw spec parameter. Eliminate
eb66be0e 3376 the throw spec parameter to grokdeclarator.
c11b6f21
MS
3377 (start_method): Likewise.
3378 * decl2.c (grokfield): Likewise.
3379 (grokbitfield): Eliminate the throw spec parameter to grokdeclarator.
3380 (grokoptypename): Likewise.
3381 (finish_file): Eliminate the throw spec parameter to
eb66be0e 3382 start_function. Add throw spec to make_call_declarator.
c11b6f21 3383 * except.c (init_exception_processing): Add throw spec to
eb66be0e
MS
3384 make_call_declarator. Eliminate the throw spec parameter to
3385 start_decl.
c11b6f21 3386 (expand_start_catch_block): Eliminate the throw spec parameter to
eb66be0e 3387 grokdeclarator.
c11b6f21
MS
3388 (expand_builtin_throw): Add throw spec to make_call_declarator.
3389 Eliminate the throw spec parameter to start_function.
3390 (start_anon_func): Likewise.
3391 * lex.c (make_call_declarator): Add throw spec parameter.
3392 (set_quals_and_spec): New routine.
3393 (cons_up_default_function): Add throw spec to make_call_declarator.
3394 Eliminate the throw spec parameter to grokfield.
3395 * method.c (synthesize_method): Eliminate the throw spec parameter
eb66be0e 3396 to start_function.
c11b6f21 3397 * pt.c (process_template_parm): Eliminate the throw spec parameter
eb66be0e 3398 to grokdeclarator.
c11b6f21
MS
3399 (tsubst): Add throw spec to make_call_declarator.
3400 (tsubst_expr): Eliminate the throw spec parameter to start_decl.
3401 (do_function_instantiation): Eliminate the throw spec parameter to
eb66be0e
MS
3402 grokdeclarator. Eliminate the throw spec parameter to
3403 start_function.
c11b6f21 3404 * rtti.c (synthesize_tinfo_fn): Eliminate the throw spec parameter
eb66be0e 3405 to start_function.
c11b6f21
MS
3406 * parse.y (datadef): Remove non-winning optimization.
3407 (decl): Likewise.
3408 (fndef): Remove ambiguous error productions uncovered by grammer
eb66be0e 3409 fixing.
c11b6f21
MS
3410 (constructor_declarator): Add exception_specification_opt here.
3411 (component_constructor_declarator): Likewise.
3412 (direct_after_type_declarator): Likewise.
3413 (complex_direct_notype_declarator): Likewise.
3414 (direct_abstract_declarator): Likewise.
3415 (fn.def1): Remove exception_specification_opt.
3416 (fn.def2): Likewise.
3417 (condition): Likewise.
3418 (initdcl0): Likewise.
3419 (initdcl): Likewise.
3420 (notype_initdcl0): Likewise.
3421 (nomods_initdcl0): Likewise.
3422 (component_decl_1): Likewise.
3423 (component_declarator): Likewise.
3424 (after_type_component_declarator0): Likewise.
3425 (after_type_component_declarator): Likewise.
3426 (notype_component_declarator): Likewise.
3427
3428Wed Aug 28 01:40:30 1996 Jason Merrill <jason@yorick.cygnus.com>
3429
3430 * call.c (build_over_call): Also use an INIT_EXPR when
eb66be0e 3431 initializing anything from an rvalue.
c11b6f21
MS
3432
3433 * call.c (build_over_call): Call stabilize_reference when building
eb66be0e 3434 an INIT_EXPR instead of calling the copy ctor.
c11b6f21
MS
3435
3436 * call.c (joust): Extend the previous change to all comparisons.
3437
3438 * decl2.c, method.c, lex.c: Use MAKE_DECL_ONE_ONLY and
3439 NO_LINKAGE_HEURISTICS.
3440
3441 * decl2.c (finish_file): Emit any statics that weren't already.
3442
3443 * typeck.c (build_static_cast): Implement.
3444 * tree.c (build_cplus_new): Handle getting a TARGET_EXPR.
3445 * decl.c (grokparms): Use can_convert_arg instead of
eb66be0e 3446 implicit_conversion directly.
c11b6f21
MS
3447 (copy_args_p): New fn.
3448 * cvt.c (convert_to_reference): Don't complain about temp with
eb66be0e 3449 static_cast.
c11b6f21
MS
3450 (build_up_reference): Handle TARGET_EXPRs.
3451 * call.c (build_over_call): Elide unnecessary temps.
3452 (can_convert*): Use new overloading code.
3453
3454Tue Aug 27 13:12:21 1996 Jason Merrill <jason@yorick.cygnus.com>
3455
3456 * call.c: Move TYPE_PTR*_MACROS ...
3457 * cp-tree.h: To here.
3458 * typeck.c (build_reinterpret_cast): Implement.
3459
3460 * call.c (add_builtin_candidate): Use TYPE_PTROB_P instead of
eb66be0e 3461 ptr_complete_ob.
c11b6f21
MS
3462 (joust): If we're comparing a function to a builtin and the worst
3463 conversion for the builtin is worse than the worst conversion for the
3464 function, take the function.
3465
3466 * typeck.c (build_const_cast): Implement.
3467 (comp_ptr_ttypes_const): Like comp_ptr_ttypes, for const_cast.
3468 (comp_ptr_ttypes_reinterpret): Like cpt, for reinterpret_cast.
3469
3470Tue Aug 27 13:14:58 1996 Bob Manson <manson@charmed.cygnus.com>
3471
3472 * rtti.c (build_dynamic_cast): Don't try to dereference exprtype
eb66be0e
MS
3473 too early. Make sure we explode if exprtype turns out to be a
3474 NULL_TREE when it shouldn't be.
c11b6f21
MS
3475
3476Tue Aug 27 10:56:21 1996 Mike Stump <mrs@cygnus.com>
3477
3478 * cp-tree.h: New routine make_call_declarator.
3479 * lex.c (make_call_declarator): Define it.
3480 * except.c (init_exception_processing): Use it.
3481 (expand_builtin_throw): Likewise.
3482 (start_anon_func): Likewise.
3483 * decl2.c (finish_file): Likewise.
3484 * lex.c (cons_up_default_function): Likewise.
3485 * parse.y: Likewise.
3486 * pt.c (tsubst): Likewise.
3487
3488Mon Aug 26 17:40:03 1996 Mike Stump <mrs@cygnus.com>
3489
3490 * decl2.c (groktypefield): Remove unused code.
3491
3492Mon Aug 26 17:00:33 1996 Mike Stump <mrs@cygnus.com>
3493
3494 * gxx.gperf: Change TYPE_QUAL into CV_QUALIFIER.
3495 * parse.y: Likewise. Change maybe_type_qual into maybe_cv_qualifier.
3496 Change type_quals into cv_qualifiers. Change nonempty_type_quals into
3497 nonempty_cv_qualifiers.
3498 * hash.h: Rebuild.
3499
3500 * lex.c (make_pointer_declarator): Change type_quals into
eb66be0e 3501 cv_qualifiers.
c11b6f21
MS
3502 (make_reference_declarator): Likewise.
3503
d11ad92e
MS
3504Thu Aug 22 01:09:22 1996 Jason Merrill <jason@yorick.cygnus.com>
3505
3506 * decl.c (start_function): Only check interface_* for templates
eb66be0e 3507 with flag_alt_external_templates.
d11ad92e
MS
3508
3509 * call.c (build_new_op): Check for comparison of different enum types.
3510 (build_over_call): Fix arg # output.
3511
3512 * typeck.c (build_component_ref): Handle pre-found TYPE_DECL.
3513
3514Wed Aug 21 00:13:15 1996 Jason Merrill <jason@yorick.cygnus.com>
3515
3516 * call.c (build_new_op): Check for erroneous args.
3517
3518 * call.c (build_new_method_call): Add missing args to cp_error.
3519
3520 * tree.c (error_type): Dont print reference-to-array.
3521
3522 * typeck.c (convert_for_assignment): Don't say contravariance for
eb66be0e 3523 removing const.
d11ad92e
MS
3524
3525Tue Aug 20 13:23:00 1996 Jason Merrill <jason@yorick.cygnus.com>
3526
3527 * call.c (build_over_call): Diagnose bad convs for `this'.
3528
3529 * lex.c (cons_up_default_function): Set DECL_ARTIFICIAL
3530 on _ctor_arg.
3531
3532 * call.c (convert_like): Handle bad convs.
3533 (build_over_call): Handle bad convs better.
3534
3535 * decl2.c: -fansi-overloading is now the default.
3536
3537 * call.c (build_new_method_call): Check for erroneous args.
3538
3539 * pt.c (instantiate_class_template): Propagate
eb66be0e 3540 TYPE_USES_MULTIPLE_INHERITANCE.
d11ad92e
MS
3541
3542Tue Aug 20 13:09:57 1996 Mike Stump <mrs@cygnus.com>
3543
3544 * call.c (enforce_access): Add static to routine.
3545
3546Sun Aug 18 14:35:54 1996 Jason Merrill <jason@yorick.cygnus.com>
3547
3548 * call.c (build_user_type_conversion_1): Fix bad handling.
3549 (compare_ics): Likewise.
3550
3551Sat Aug 17 21:54:11 1996 Jason Merrill <jason@yorick.cygnus.com>
3552
3553 * call.c (standard_conversion): Oops.
3554
3555Sat Aug 17 16:28:11 1996 Geoffrey Noer <noer@cygnus.com>
3556
3557 * g++.c: Update test for win32 (&& ! cygwin32).
3558
3559Sat Aug 17 03:45:31 1996 Jason Merrill <jason@yorick.cygnus.com>
3560
3561 * typeck.c (comp_ptr_ttypes_real): Handle OFFSET_TYPEs properly.
3562 (ptr_reasonably_similar): New fn.
3563 * call.c (BAD_RANK): New rank.
3564 (ICS_BAD_FLAG): New macro.
3565 (standard_conversion): Handle almost-right pointer conversions.
3566 (reference_binding): Handle bad rvalue bindings.
3567 (add_*_candidate): Stuff.
3568 (build_over_call): Pass bad conversions to convert_for_initialization.
3569 (compare_ics): Handle bad convs.
3570 (joust): Likewise.
3571
3572Fri Aug 16 15:02:19 1996 Bob Manson <manson@charmed.cygnus.com>
3573
3574 * init.c (expand_vec_init): Use ptrdiff_type_node instead of
3575 integer_type_node when computing pointer offsets.
3576
3577Fri Aug 16 01:28:32 1996 Jason Merrill <jason@yorick.cygnus.com>
3578
3579 * tree.c (lvalue_type): New fn.
3580 (error_type): New fn.
3581 * call.c (op_error): Use error_type.
3582 (add_conv_candidate): Use lvalue_type.
3583 (add_builtin_candidates): Likewise.
3584 * error.c (args_as_string): Use error_type.
3585
3586Thu Aug 15 17:27:13 1996 Jason Merrill <jason@yorick.cygnus.com>
3587
3588 * pt.c (instantiate_decl): Evaluate DECL_INITIAL of a VAR_DECL here.
3589 (tsubst): Not here.
3590
3591 * decl.c (init_decl_processing): With -ansi, __null's type is the
3592 signed integral type with the same number of bits as a pointer.
3593 Introduce a new variable null_node for it.
3594 * cp-tree.h: Adjust.
3595 * call.c (null_ptr_cst_p): Adjust.
3596
3597Thu Aug 15 17:09:54 1996 Mike Stump <mrs@cygnus.com>
3598
3599 * except.c (do_unwind): Mark %i7 as used on the SPARC so we can
eb66be0e 3600 optimize.
d11ad92e
MS
3601
3602Thu Aug 15 01:36:49 1996 Jason Merrill <jason@yorick.cygnus.com>
3603
3604 * decl2.c (import_export_decl): Ignore #pragma interface for tinfo
eb66be0e 3605 fns of classes without virtual functions.
d11ad92e
MS
3606
3607 * call.c (add_function_candidate): Handle `this' specially.
3608 (compare_ics): Likewise.
3609
3610Tue Aug 13 12:16:10 1996 Jason Merrill <jason@yorick.cygnus.com>
3611
3612 * typeck.c (build_conditional_expr): Fix handling of __null.
3613
3614 * decl2.c (comdat_linkage): New fn.
3615 (import_export_vtable): Use it.
3616 (import_export_decl): Use it.
3617 * method.c (make_thunk): Use it.
3618
73aad9b9
JM
3619Mon Aug 12 00:09:18 1996 Jason Merrill <jason@yorick.cygnus.com>
3620
3621 * pt.c (end_template_decl): If we don't actually have parms, return.
3622 * parse.y (template_header): Accept 'template <>'.
3623
3624 * errfn.c: Allow 5 args.
3625
3626Sun Aug 11 15:20:58 1996 Jason Merrill <jason@yorick.cygnus.com>
3627
3628 * tree.c (make_temp_vec): New fn.
3629 * pt.c (push_template_decl): Handle partial specs.
d11ad92e 3630 (instantiate_class_template): Likewise.
73aad9b9
JM
3631 (more_specialized): Use get_bindings.
3632 (more_specialized_class): New fn.
3633 (get_class_bindings): New fn.
3634 (most_specialized_class): New fn.
3635 (do_function_instantiation): List candidates for ambiguous case.
3636 * decl.c (duplicate_decls): Lose reference to DECL_TEMPLATE_MEMBERS.
3637 (shadow_tag): Call push_template_decl for partial specializations.
d11ad92e 3638 * parse.y: Likewise.
73aad9b9 3639 * cp-tree.h (DECL_TEMPLATE_SPECIALIZATIONS): Replaces
eb66be0e 3640 DECL_TEMPLATE_MEMBERS.
73aad9b9
JM
3641 * call.c (print_z_candidates): Reduce duplication.
3642
3643Fri Aug 9 14:36:08 1996 Jason Merrill <jason@yorick.cygnus.com>
3644
3645 * decl2.c (lang_decode_option): Allow -fansi-overloading.
3646
3647Thu Aug 8 17:04:18 1996 Jason Merrill <jason@yorick.cygnus.com>
3648
3649 * pt.c (get_bindings): New fn.
d11ad92e 3650 (most_specialized): Likewise.
73aad9b9
JM
3651 (do_function_instantiation): Use them.
3652 (add_maybe_template): New fn.
3653 * cp-tree.h (DECL_MAYBE_TEMPLATE): New macro.
3654 * call.c (build_new_op): Handle guiding decls.
d11ad92e
MS
3655 (build_new_function_call): Likewise.
3656 * decl2.c (finish_file): Likewise.
73aad9b9
JM
3657
3658 * decl2.c (mark_used): Do synthesis here.
3659 * call.c (build_method_call): Not here.
3660 (build_over_call): Or here.
3661 * typeck.c (build_function_call_real): Or here.
3662 * tree.c (bot_manip): Call mark_used on functions used in default
eb66be0e 3663 args.
73aad9b9 3664
2eee5e3a
MM
3665Thu Aug 8 17:48:16 1996 Michael Meissner <meissner@tiktok.cygnus.com>
3666
3667 * decl2.c (import_export_vtable): Delete code that disabled vtable
eb66be0e 3668 heuristic on systems with ASM_OUTPUT_EXTERNAL.
2eee5e3a 3669
c73964b2
MS
3670Wed Aug 7 12:44:11 1996 Jason Merrill <jason@yorick.cygnus.com>
3671
3672 * typeck.c (build_x_function_call): Handle static call context
3673 better.
3674
3675 * decl.c (finish_function): Set the DECL_CONTEXT of the result to
eb66be0e 3676 the function, not its outer block.
c73964b2
MS
3677
3678 * call.c (build_field_call): Pass fields on to build_opfncall
eb66be0e 3679 regardless of TYPE_OVERLOADS_CALL_EXPR.
c73964b2
MS
3680 (build_method_call): Pass on to build_new_method_call sooner.
3681
3682 * typeck.c (build_ptrmemfunc): Just return what instantiate_type
3683 gives us.
3684 * class.c (instantiate_type): Don't put a POINTER_TYPE to
eb66be0e 3685 METHOD_TYPE on an expression. Also make a copy of rhs instead of
c73964b2
MS
3686 modifying it.
3687
3688Tue Aug 6 12:58:46 1996 Jason Merrill <jason@yorick.cygnus.com>
3689
3690 * call.c (compare_ics): Handle qual_conv after lvalue_conv.
3691 (add_builtin_candidate): Don't take enums for ++.
3692 (build_new_method_call): Handle non-aggregates and field calls.
3693 Move new overloading code from...
3694 * cvt.c: Here.
3695
3696 * decl.c (grokparms): Don't check default args in templates.
3697
3698Mon Aug 5 17:17:06 1996 Jason Merrill <jason@yorick.cygnus.com>
3699
3700 * cvt.c (build_new_op): Fix args to build_unary_op.
3701 (add_builtin_candidates): Don't call type_promotes_to on float.
3702
3703 * decl.c (grokparms): Check the type of the default arg.
3704
3705 * cvt.c (build_new_op): Pass non-overloaded cases on rather than
3706 returning NULL_TREE.
3707
3708 * typeck.c (build_x_binary_op): Avoid doing extra work.
d11ad92e
MS
3709 (build_x_unary_op): Likewise.
3710 (build_x_conditional_expr): Likewise.
c73964b2
MS
3711 * cvt.c (build_over_call): Return.
3712 (add_builtin_candidate): Fix MEMBER_REF.
d11ad92e 3713 (build_new_op): Likewise.
c73964b2
MS
3714
3715Mon Aug 5 17:07:47 1996 Mike Stump <mrs@cygnus.com>
3716
3717 * method.c (build_overload_name): Put bug fix into code but leave
eb66be0e
MS
3718 disabled for now so we can be bug compatible with older releases
3719 that do repeats incorrectly. In the future, we can enable it.
c73964b2
MS
3720
3721Mon Aug 5 13:46:28 1996 Jason Merrill <jason@yorick.cygnus.com>
3722
3723 * cvt.c (convert_like): Don't call build_cplus_new twice.
3724
3725 * call.c, cp-tree.h, cvt.c, decl2.c, init.c, method.c, pt.c, typeck.c:
3726 Control new overloading code with -fansi-overloading.
3727
3728Sun Aug 4 15:29:11 1996 Jason Merrill <jason@yorick.cygnus.com>
3729
3730 * cvt.c (build_over_call): Call build_cplus_new.
d11ad92e
MS
3731 * call.c (build_method_call): Likewise.
3732 * typeck.c (build_function_call_real): Likewise.
c73964b2
MS
3733 (build_conditional_expr): If both operands are TARGET_EXPRs, wrap
3734 the COND_EXPR in a TARGET_EXPR so they use the same slot.
3735
3736 * cvt.c (build_up_reference): Propagate INDIRECT_BIND to
3737 recursive calls.
3738 * typeck.c (complete_type): Propagate
eb66be0e 3739 TYPE_NEEDS_{CONSTRUCTING,DESTRUCTOR}.
c73964b2
MS
3740
3741Sat Aug 3 14:05:07 1996 Jason Merrill <jason@yorick.cygnus.com>
3742
3743 * cvt.c (joust): More ?: kludging. Sigh.
3744 (build_over_call): Don't try to synthesize global fns.
3745
3746 * search.c (lookup_conversions): Use binfo marking.
3747
3748Sat Aug 3 12:33:42 1996 Bob Manson <manson@charmed.cygnus.com>
3749
3750 * search.c (build_mi_matrix): Use the correct value of cid
3751 when determining the new mi_size.
3752
3753Sat Aug 3 01:27:41 1996 Jason Merrill <jason@yorick.cygnus.com>
3754
3755 * cvt.c (add_builtin_candidates): Do consider type conversion ops
3756 for the first parms of += et al.
3757 (strip_top_quals): New fn.
3758 (reference_binding): Use it instead of TYPE_MAIN_VARIANT.
d11ad92e 3759 (implicit_conversion): Likewise.
c73964b2
MS
3760 (add_builtin_candidates): Be careful about arrays.
3761 (build_new_method_call): Handle vtable optimization.
3762
3763Fri Aug 2 01:26:59 1996 Jason Merrill <jason@yorick.cygnus.com>
3764
3765 * cp-tree.h (LOOKUP_NO_TEMP_BIND): New flag.
3766 * cvt.c (reference_binding): Use it.
3767 (implicit_conversion): Use it.
3768 (add_builtin_candidate, COND_EXPR): Use it.
3769
3770 * cvt.c (build_new_function_call): Check for error args.
3771
3772 * typeck.c (comptypes): Just check DERIVED_FROM_P, not UNIQUELY.
3773
3774 * gxx.gperf: Add __null.
3775 * hash.h: Regenerate.
3776 * lex.h: Add RID_NULL.
3777 * lex.c (init_lex): Create null_pointer_node here, stick it in
eb66be0e 3778 RID_NULL.
c73964b2
MS
3779 * decl.c (init_decl_processing): Still set its type here.
3780 * cvt.c (cp_convert_to_pointer): Don't produce null_pointer_node.
d11ad92e 3781 (convert_to_pointer_force): Likewise.
c73964b2
MS
3782 (null_ptr_cst_p): Check for null_pointer_node; only accept (void*)0
3783 if (! pedantic).
3784 * call.c (convert_harshness): Use null_ptr_cst_p.
d11ad92e 3785 * typeck.c (convert_for_assignment): Likewise. Don't produce
c73964b2
MS
3786 null_pointer_node.
3787
3788 * error.c (args_as_string): Handle lists of actual args, too.
3789 * cvt.c (null_ptr_cst): Support (void*)0 for now.
3790 (build_user_type_conversion_1): Improve diagnostics.
3791 (build_new_function_call): Likewise.
3792 (build_object_call): Likewise.
3793 (build_new_method_call): Likewise. Move call before def diagnostic...
3794 (build_over_call): Here.
3795
3796 * cvt.c (build_new_method_call): Don't complain about no match if
eb66be0e 3797 LOOKUP_SPECULATIVELY.
c73964b2
MS
3798 (build_over_call): Fix 'this' for virtual fn.
3799 (build_new_method_call): Add diagnostic.
3800
3801Thu Aug 1 16:45:09 1996 Jason Merrill <jason@yorick.cygnus.com>
3802
3803 * cvt.c (add_function_candidate): Expect 'this' and 'in_chrg' for
eb66be0e 3804 constructors to be passed in.
c73964b2
MS
3805 (build_over_call): Likewise.
3806 (build_user_type_conversion_1): Pass them in.
3807 (convert_like): Likewise.
3808 (build_object_call): Handle overloaded conversions.
3809 (build_over_call): Pass the right args to build_vfn_ref.
3810 (standard_conversion): Fix pmf convs.
3811 (joust): Handle comparing statics and non-statics.
3812 (build_new_method_call): New fn.
3813 * call.c (build_method_call): Call it if NEW_OVER.
3814
3815Thu Aug 1 16:06:14 1996 Mike Stump <mrs@cygnus.com>
3816
3817 * lex.c (do_identifier): Don't use %O on IDENTIFIER_OPNAME_Ps, use
eb66be0e 3818 %D instead.
c73964b2
MS
3819
3820Thu Aug 1 15:24:02 1996 Mike Stump <mrs@cygnus.com>
3821
3822 * except.c (expand_throw): Use maybe_build_cleanup_and_delete
eb66be0e
MS
3823 instead of just maybe_build_cleanup so that we deallocate the
3824 thrown object.
c73964b2
MS
3825
3826Thu Aug 1 15:18:00 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3827
3828 * decl2.c (finish_prevtable_vardecl): Make non-static for pt.c's use.
3829 * cp-tree.h (finish_prevtable_vardecl): Add decl.
3830
14548a19
MS
3831Thu Aug 1 11:53:51 1996 Bob Manson <manson@charmed.cygnus.com>
3832
c73964b2 3833 * pt.c (instantiate_class_template): Call complete_type. Also, if
eb66be0e
MS
3834 we're at the end of the file and we just instantiated a template
3835 class with a vtable, call finish_prevtable_vardecl.
c73964b2 3836
14548a19 3837 * error.c (dump_decl): Don't explode (or explode more gracefully
eb66be0e 3838 as appropriate) if the object being dumped has a null type.
d11ad92e 3839 (dump_expr): Likewise.
14548a19
MS
3840
3841 * search.c (build_mi_matrix): Ensure that mi_size is large enough,
eb66be0e
MS
3842 by counting the number of nodes that we'll need before allocating
3843 the array.
14548a19
MS
3844 (lookup_fnfields): Fix comment.
3845 (breadth_first_search): Fix comment.
3846
3847Wed Jul 31 09:57:05 1996 Jason Merrill <jason@yorick.cygnus.com>
3848
3849 * pt.c (instantiate_class_template): Propagate TYPE_PACKED and
eb66be0e 3850 TYPE_ALIGN.
14548a19
MS
3851 * class.c (finish_struct): Call cplus_decl_attributes here.
3852 (finish_struct_1): Not here.
3853 * cp-tree.h: Adjust.
3854
3855 * pt.c (type_unification): New parameter STRICT.
3856 (unify): If STRICT, don't allow cv addition or base deduction.
3857 * call.c, class.c, cvt.c, cp-tree.h: Adjust.
3858
3859Tue Jul 30 13:06:13 1996 Jason Merrill <jason@yorick.cygnus.com>
3860
3861 * search.c (get_template_base{_recursive}): New fns.
3862 * pt.c (more_specialized): New fn.
3863 (do_function_instantiation): Use it.
3864 (unify): Handle base deduction.
3865 * cvt.c (joust): Use more_specialized.
3866 Don't arbitrarily choose between non-builtin candidates.
3867 (build_over_call): Call require_complete_type.
3868
3869 * decl.c (start_function): Statics are static even in a #pragma
eb66be0e 3870 interface file.
14548a19
MS
3871
3872 * decl2.c (import_export_vtable): Disable vtable heuristic on
eb66be0e 3873 systems with ASM_OUTPUT_EXTERNAL.
14548a19
MS
3874
3875 * cvt.c (compare_ics): Fix comparison of PMEM_CONV and BASE_CONV.
3876 (standard_conversion): No std conv to enum type.
3877
3878 * cvt.c (standard_conversion): Fix order of args to DERIVED_FROM_P
3879 for ptm's.
3880
3881 * cvt.c (reference_binding): Bind directly to a base subobject of
eb66be0e 3882 a class rvalue.
14548a19
MS
3883
3884 * cvt.c (build_new_op): Enforce access control.
3885
3886Tue Jul 30 09:22:53 1996 Bob Manson <manson@charmed.cygnus.com>
3887
3888 * typeck2.c (process_init_constructor): When scanning the
3889 union for a named field, skip things that aren't FIELD_DECLs.
3890
3891 * method.c (synthesize_method): Don't scan fndecl's rtl if
3892 we're at the end of the file; just assume the function can't
3893 be inlined.
3894
3895Mon Jul 29 15:48:30 1996 Jason Merrill <jason@yorick.cygnus.com>
3896
3897 * cvt.c (build_builtin_candidate): Stick a dummy conversion in if
eb66be0e 3898 it failed.
14548a19
MS
3899
3900 * cvt.c (build_user_type_conversion_1): Handle overloaded
eb66be0e 3901 conversion ops.
14548a19
MS
3902
3903 * cvt.c (add_builtin_candidates): Don't consider type conversion
eb66be0e 3904 operators for the first parameter of operator=.
14548a19
MS
3905
3906Mon Jul 29 15:33:55 1996 Bob Manson <manson@charmed.cygnus.com>
3907
3908 * typeck.c (complete_type): Only call layout_type if we're not
eb66be0e 3909 expanding a template.
14548a19
MS
3910
3911Mon Jul 29 14:40:38 1996 Jason Merrill <jason@yorick.cygnus.com>
3912
3913 * cvt.c (compare_ics): Oops.
3914
3915 * cvt.c (op_error): Oops.
3916
3917 * cp-tree.def: Add RVALUE_CONV, rename EXACT_CONV to IDENTITY_CONV.
3918 * cvt.c: Add IDENTITY_RANK before others. Use real_lvalue_p.
3919 (build_conv): Use them.
3920 (implicit_conversion): Use them.
3921 (convert_like): Handle them.
3922 (build_new_op): Handle builtin COND_EXPR again.
3923 (add_builtin_candidates): Strip cv-quals. Fix oops. Include enums
3924 in lists of types for COND_EXPR.
3925 (add_builtin_candidate): Add enum candidates for COND_EXPR.
3926
3927Mon Jul 29 12:05:40 1996 Bob Manson <manson@charmed.cygnus.com>
3928
3929 * typeck.c (build_modify_expr): Always attempt to build a call to
eb66be0e 3930 the assignment operator, even if we're using a default one.
14548a19
MS
3931 (convert_for_initialization): Call complete_type.
3932
3933Mon Jul 29 11:25:08 1996 Jason Merrill <jason@yorick.cygnus.com>
3934
3935 * cvt.c (reference_binding): A REF_BIND gets the reference type.
3936 (implicit_conversion): Likewise.
3937 (convert_like): Likewise.
3938 (compare_ics): Likewise.
3939 (compare_qual): Likewise.
3940 (print_z_candidates): Handle no candidates.
3941 (build_new_op): Don't handle builtin COND_EXPR for now.
3942
3943Sat Jul 27 11:27:47 1996 Stan Shebs <shebs@andros.cygnus.com>
3944
3945 * cvt.c (build_builtin_candidate): Init local var in an ANSI way.
3946
3947Fri Jul 26 01:07:22 1996 Jason Merrill <jason@yorick.cygnus.com>
3948
3949 * cvt.c (joust): If the candidates are the same, arbitrarily pick one.
3950
3951 * cvt.c (build_builtin_candidate): Oops.
3952 (build_new_op): Oops.
3953
3954 * method.c (build_opfncall): Pass COND_EXPR on.
3955 * cvt.c (build_builtin_candidate): Reorganize, support COND_EXPR.
3956 (add_builtin_candidate{,s}): Likewise.
3957 (add_builtin_candidates): Likewise.
3958 (print_z_candidates, op_error, build_new_op): Likewise.
3959 (type_decays_to): New fn.
3960 * lex.c (init_lex): Just say ?: for COND_EXPR.
3961
3962Thu Jul 25 09:33:33 1996 Jason Merrill <jason@yorick.cygnus.com>
3963
3964 * typeck.c (complete_type): Call layout_type rather than building
eb66be0e 3965 a new array type.
14548a19
MS
3966
3967 * cvt.c (add_builtin_candidate): Pointer arithmetic candidates
eb66be0e 3968 only use ptrdiff_t.
14548a19
MS
3969
3970Wed Jul 24 12:45:08 1996 Jason Merrill <jason@yorick.cygnus.com>
3971
3972 * cvt.c: Always compile the new overloading code (but don't use it).
3973 (implicit_conversion): Add a BASE_CONV when converting to
eb66be0e 3974 the same class type.
14548a19
MS
3975 (convert_like): Handle BASE_CONV.
3976
3977Tue Jul 23 12:46:30 1996 Jason Merrill <jason@yorick.cygnus.com>
3978
3979 * cvt.c (build_new_op): Support {MAX,MIN}_EXPR.
3980 (add_builtin_candidate): Likewise.
3981
3982 NEW_OVER changes:
3983 * typeck.c (build_x_function_call): Try an operator function
eb66be0e 3984 whenever we call an object of class type.
14548a19
MS
3985 * method.c (build_opfncall): Pass CALL_EXPRs through.
3986 * cvt.c (implicit_conversion): Do const-ref case first.
3987 (add_conv_candidate, build_object_call, op_error): New fns.
3988 (ptr_complete_ob, TYPE_PTROB_P): void is not an object type.
3989 ({add,build}_builtin_candidate{,s}, print_z_candidates): Display
3990 builtin candidates.
3991 (build_new_op): Handle CALL_EXPR. Don't try to decay void.
3992 Fall back on preincrement handling. Use op_error.
3993 Handle warn_synth.
3994 (convert_like): Pass INDIRECT_BIND. Don't try to do anything with
3995 an error_mark_node.
3996 (build_over_call): Handle PROMOTE_PROTOTYPES and ellipsis promotions
3997 properly.
3998
3999Mon Jul 22 16:21:55 1996 Bob Manson <manson@charmed.cygnus.com>
4000
4001 * pt.c (tsubst_expr): Handle CONTINUE_STMT.
4002
4003Mon Jul 22 15:38:58 1996 Mike Stump <mrs@cygnus.com>
4004
4005 * typeck.c (build_component_ref_1): Use build_component_ref
4006 instead of open coding it here.
4007
4008Mon Jul 22 12:18:54 1996 Jason Merrill <jason@yorick.cygnus.com>
4009
4010 * g++.c (main): Don't link with -lg++.
4011
4012 NEW_OVER changes:
4013 * cvt.c (convert_to_reference): Don't use convert_from_refeence on
eb66be0e 4014 result of build_type_conversion.
14548a19
MS
4015 (cp_convert): Only call build_method_call for ctors if
4016 build_type_conversion failed.
4017 (ptr_complete_ob): New function.
4018 (TYPE_PTR{,OB,MEM}_P): New macros.
4019 ({add,build}_builtin_candidate{,s}): New functions.
4020 (print_z_candidates): Handle builtins.
4021 (build_user_type_conversion_1): Don't use conversion fns for
4022 converting to a base type.
4023 (build_user_type_conversion_1): Set ICS_USER_FLAG on AMBIG_CONVs.
4024 (build_user_type_conversion): Use convert_from_reference.
4025 (build_new_op): New function.
4026 (build_over_call): Fix handling of methods.
4027 (compare_ics): Handle AMBIG_CONV properly.
4028 * typeck2.c: Increment abort count.
4029 * method.c (build_opfncall): Forward most requests to build_new_op.
4030 * cp-tree.h (IS_OVERLOAD_TYPE): Tweak.
4031
4032Fri Jul 19 17:59:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4033
4034 * error.c (dump_expr, case CONSTRUCTOR, case CAST_EXPR): Take out
4035 invalid second argument to dump_expr_list.
4036
594740f3
MS
4037Fri Jul 19 14:04:05 1996 Mike Stump <mrs@cygnus.com>
4038
4039 * decl.c (lookup_name_real): Make sure we do obj->X::i correctly.
4040
4041Thu Jul 18 14:48:23 1996 Bob Manson <manson@charmed.cygnus.com>
4042
4043 * decl2.c (import_export_vtable): ASM_OUTPUT_EXTERNAL, not
4044 ASSEMBLE_EXTERNAL.
4045
4046Mon Jul 15 17:48:43 1996 Mike Stump <mrs@cygnus.com>
4047
4048 * typeck2.c (process_init_constructor): New pedwarn for using { }
4049 to initialize a pointer to member function.
4050 * typeck.c (build_ptrmemfunc1): Avoid use of digest_init so that
4051 we can avoid the new error.
4052
4053Mon Jul 15 15:42:03 1996 Mike Stump <mrs@cygnus.com>
4054
4055 * typeck.c (build_ptrmemfunc1): New function to hide details of
4056 pointer to member functions better.
4057
4058Mon Jul 15 14:23:02 1996 Mike Stump <mrs@cygnus.com>
4059
4060 * init.c (resolve_offset_ref): Resolve OFFSET_REFs that are
4061 methods into the actual method, as we know the implied object is
4062 not used.
4063
4064Mon Jul 15 13:08:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4065
4066 * parse.y (maybecomma_warn): Only emit the pedwarn if we're not
4067 inside a system header.
4068
4069Fri Jul 12 16:30:05 1996 Bob Manson <manson@charmed.cygnus.com>
4070
4071 * call.c (build_method_call): Call complete_type on the
4072 instance type.
4073
4074Thu Jul 11 17:16:40 1996 Mike Stump <mrs@cygnus.com>
4075
4076 * typeck.c (build_component_ref): Always build up an OFFSET_REF
4077 for obj_ptr->func so that we can know which object to use in a
4078 method call.
4079
4080Wed Jul 10 19:36:37 1996 Mike Stump <mrs@cygnus.com>
4081
4082 * typeck.c (build_ptrmemfunc): Remove sorry, now we can cast
4083 around things. Also improve maintainability.
4084
4085Wed Jul 10 18:20:11 1996 Bob Manson <manson@charmed.cygnus.com>
4086
4087 * decl.c (grokdeclarator): Check for overflow when evaluating an
eb66be0e 4088 array dimension.
594740f3
MS
4089
4090Wed Jul 10 17:26:19 1996 Jason Merrill <jason@yorick.cygnus.com>
4091
4092 * cvt.c (cp_convert): Don't check for ambiguity with constructor
eb66be0e 4093 if NEW_OVER.
594740f3
MS
4094
4095 * typeck.c (build_x_function_call): Pass function overload
eb66be0e 4096 questions to new overloading code if NEW_OVER.
594740f3 4097 * init.c (expand_aggr_init_1): Only check for type conversion ops
eb66be0e
MS
4098 if we're doing copy-initialization (i.e. LOOKUP_ONLYCONVERTING).
4099 Don't check for ambiguity with constructor if NEW_OVER.
594740f3 4100 * cvt.c (convert_to_reference): Dereference the result of a type
eb66be0e 4101 conversion operator.
594740f3
MS
4102 (build_conv): Propagate ICS_USER_FLAG.
4103 (implicit_conversion): Call instantiate_type.
4104 Pass LOOKUP_ONLYCONVERTING instead of LOOKUP_NORMAL.
4105 (add_function_candidate): Fix cv-quals on argtype.
4106 (print_z_candidates): New function.
4107 (build_new_function_call): Call it.
4108 (build_user_type_conversion_1): If LOOKUP_ONLYCONVERTING, don't
4109 consider non-converting constructors.
4110 Call print_z_candidates.
4111 Return an AMBIG_CONV for an ambiguous conversion.
4112 (build_user_type_conversion): Handle AMBIG_CONV.
4113 (convert_like): Fix test for building TARGET_EXPR.
4114 Call instantiate_type.
4115 Handle AMBIG_CONV and LVALUE_CONV.
4116 (build_over_call): Handle 0 args and ellipsis.
4117 * cp-tree.def: Add AMBIG_CONV.
4118
e92cc029
MS
4119Tue Jul 9 17:48:48 1996 Mike Stump <mrs@cygnus.com>
4120
4121 * decl.c (lookup_name_real): If we find mem in obj when parsing
eb66be0e 4122 `obj->mem', make sure we return the right value.
e92cc029
MS
4123
4124Tue Jul 9 16:11:28 1996 Bob Manson <manson@charmed.cygnus.com>
4125
4126 * search.c (get_base_distance): Call complete_type.
4127
4128Tue Jul 9 12:46:34 1996 Mike Stump <mrs@cygnus.com>
4129
4130 * decl.c (store_bindings): Make static.
4131
4132Mon Jul 8 16:42:31 1996 Jason Merrill <jason@yorick.cygnus.com>
4133
4134 * init.c (expand_aggr_init_1): Don't check type conversions if
eb66be0e 4135 NEW_OVER.
e92cc029
MS
4136
4137 * cvt.c (z_candidate): Put back template field.
4138 (add_function_candidate): Set it.
4139 (add_template_candidate): Likewise.
4140 (joust): Use it.
4141 (compare_qual): Handle references and pointers to members.
4142 (compare_ics): Handle reference bindings.
4143
4144 * decl.c (duplicate_decls): Propagate DECL_ONE_ONLY.
4145
4146Mon Jul 8 16:18:56 1996 Bob Manson <manson@charmed.cygnus.com>
4147
4148 * call.c (compute_conversion_costs): Call complete_type.
4149
4150 * tree.c (vec_binfo_member): Use comptypes instead of comparing
eb66be0e 4151 pointers, so we can handle template parameters.
e92cc029
MS
4152
4153Fri Jul 5 16:51:53 1996 Bob Manson <manson@charmed.cygnus.com>
4154
4155 * cvt.c (cp_convert_to_pointer): We have to call complete_type
4156 here; let's make it explicit instead of a side effect of an
4157 error check.
4158
4159Wed Jul 3 16:29:51 1996 Jason Merrill <jason@yorick.cygnus.com>
4160
4161 * cvt.c (z_candidate): Remove template field.
4162 (reference_binding): Handle binding to temporary.
4163 (implicit_conversion): Likewise.
4164 (add_function_candidate): Handle artificial constructor parms.
4165 Handle functions with too few parms.
4166 (add_template_candidate): New function.
4167 (build_user_type_conversion_1): Handle constructors.
4168 (convert_like): Likewise.
4169 (build_over_call): Likewise.
4170 (build_new_function_call): Support templates.
4171 (compare_ics): Fix reference, inheritance handling.
4172
4173Mon Jul 1 22:58:18 1996 Bob Manson <manson@charmed.cygnus.com>
4174
4175 * decl.c: Add signed_size_zero_node.
4176 (init_decl_processing): Build it.
4177 * class.c (prepare_fresh_vtable): Use it instead of size_zero_node
eb66be0e 4178 when we're trying to make a negative delta.
e92cc029
MS
4179
4180Mon Jul 1 17:56:19 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4181
4182 Stop doing this damn index==strchr variable name confusion.
4183 * class.c (add_virtual_function): Change local var INDEX to be
4184 named IDX.
4185 (add_method): Likewise.
4186 * lex.c (print_parse_statistics): Likewise.
4187 * search.c (make_memoized_table_entry): Likewise.
4188 (lookup_fnfields_here): Likewise.
4189 (lookup_field): Likewise.
4190 (lookup_fnfields): Likewise.
4191 (get_baselinks): Likewise.
4192 * sig.c (build_signature_table_constructor): Likewise.
4193 (build_signature_method_call): Likewise.
4194 * typeck.c (build_x_array_ref): Change INDEX parm to be named IDX.
4195 (get_member_function_from_ptrfunc): Likewise.
4196 (build_ptrmemfunc): Change local var INDEX to be IDX.
4197 (c_expand_start_case): Likewise.
4198
4199Sat Jun 29 14:05:46 1996 Jason Merrill <jason@yorick.cygnus.com>
4200
4201 * cvt.c (cp_convert_to_pointer): Move user-defined type conversion
eb66be0e 4202 handling to before extraction of TYPE_PTRMEMFUNC_FN_TYPE.
e92cc029 4203 (convert_to_reference): Use build_type_conversion to convert to
eb66be0e 4204 the reference type directly.
e92cc029
MS
4205 (standard_conversion): Fix void* case, non-conversions.
4206 (reference_binding): Fix expr == 0 case, non-conversions.
4207 (convert_like): Support REF_BIND.
4208 (compare_qual): Split out from compare_ics.
4209 (compare_ics): Use it, handle icses with only a qual_conv.
4210
4211 * init.c (expand_vec_init): Don't crash if decl is NULL.
4212
4213Fri Jun 28 11:52:51 1996 Stan Shebs <shebs@andros.cygnus.com>
4214
4215 * mpw-config.in: New file, configury for Mac MPW.
4216 * mpw-make.sed: New file, makefile editing for MPW.
4217
4218Thu Jun 27 15:18:30 1996 Jason Merrill <jason@yorick.cygnus.com>
4219
4220 * pt.c (instantiate_class_template): Call repo_template_used.
4221
4222 * search.c (lookup_conversions): Only lookup conversions in
eb66be0e 4223 complete types.
e92cc029
MS
4224
4225Thu Jun 27 12:59:53 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4226
4227 * cp-tree.def: Renamed from tree.def, to avoid confusion with
4228 gcc's tree.def.
4229 * cp-tree.h, lex.c: Include cp-tree.def.
4230 * Makefile.in (CXX_TREE_H): Reference cp-tree.def.
4231
4232Wed Jun 26 18:29:47 1996 Bob Manson <manson@charmed.cygnus.com>
4233
4234 * init.c (build_vec_delete_1): Call complete_type.
4235
4236Mon Jun 24 17:17:32 1996 Mike Stump <mrs@cygnus.com>
4237
4238 * except.c (start_anon_func): Make sure anonymous functions are
eb66be0e 4239 never external.
e92cc029
MS
4240
4241Fri Jun 21 15:10:58 1996 Jason Merrill <jason@yorick.cygnus.com>
4242
4243 * decl.c (finish_function): If function_depth > 1, set nested.
4244
4245 * decl2.c (grokbitfield): Revert Bob's change.
4246 * class.c (finish_struct_1): Fix handling of named bitfield widths.
4247
4248Thu Jun 20 23:35:38 1996 Jason Merrill <jason@yorick.cygnus.com>
4249
4250 * pt.c (add_pending_template): Handle types.
4251 (lookup_template_class): With -fexternal-templates, just add the class
4252 to pending_templates instead of instantiating it now.
4253 * decl2.c (finish_file): Handle types in pending_templates.
4254
4255Thu Jun 20 14:08:40 1996 Bob Manson <manson@charmed.cygnus.com>
4256
4257 * decl2.c (grokbitfield): Handle constant decls appropriately.
eb66be0e
MS
4258 Give an appropriate error message now instead of spewing core
4259 later.
e92cc029
MS
4260
4261Thu Jun 20 13:01:51 1996 Jason Merrill <jason@yorick.cygnus.com>
4262
4263 * decl2.c: Don't turn on thunks by default for now.
4264
4265Wed Jun 19 11:37:04 1996 Jason Merrill <jason@yorick.cygnus.com>
4266
4267 * typeck.c (complete_type): Handle error_mark_node.
4268 (common_type, OFFSET_TYPE): Handle template_type_parms.
4269
4270Tue Jun 18 10:02:15 1996 Jason Merrill <jason@yorick.cygnus.com>
4271
4272 * pt.c (instantiate_decl): If at_eof, call import_export_decl
eb66be0e 4273 regardless of DECL_INLINE.
e92cc029
MS
4274
4275 * typeck.c (mark_addressable): Set TREE_ADDRESSABLE on CONSTRUCTORs.
4276
4277 * class.c (finish_struct_bits): Copy TYPE_SIZE.
4278
4279 * rtti.c (build_dynamic_cast): Support templates.
4280 * tree.def: Support DYNAMIC_CAST_EXPR.
4281 * pt.c (tsubst_copy): Likewise.
4282 * decl2.c (build_expr_from_tree): Likewise.
4283
4284Mon Jun 17 15:23:36 1996 Jason Merrill <jason@yorick.cygnus.com>
4285
4286 * typeck.c (build_static_cast): Support templates.
4287 (build_const_cast): Likewise.
4288 * tree.def: Support CONST/STATIC_CAST_EXPR.
4289 * pt.c (tsubst_copy): Likewise.
4290 * decl2.c (build_expr_from_tree): Likewise.
4291
4292Sun Jun 16 12:33:57 1996 Jason Merrill <jason@yorick.cygnus.com>
4293
4294 * decl2.c (finish_vtable_vardecl): Don't trust
eb66be0e 4295 TREE_SYMBOL_REFERENCED for vtables of local classes.
e92cc029
MS
4296
4297Fri Jun 14 18:13:36 1996 Jason Merrill <jason@yorick.cygnus.com>
4298
4299 * pt.c (tsubst_copy): Handle operator T.
4300
4301Wed Jun 12 17:52:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4302
4303 * init.c (build_delete): Move creation of PARMS inside test of
4304 TYPE_HAS_DESTRUCTOR, since it's never used outside of that block.
4305
4306Tue Jun 11 15:09:18 1996 Bob Manson <manson@charmed.cygnus.com>
4307
4308 * typeck.c (build_conditional_expr): Don't assume that
4309 the arguments to ?: are always pointers or records.
4310
4311Tue Jun 11 13:56:23 1996 Jason Merrill <jason@yorick.cygnus.com>
4312
4313 * decl2.c (import_export_decl): Still emit static/weak/comdat
eb66be0e 4314 copies of inline template functions with -fno-implicit-templates.
e92cc029
MS
4315
4316Tue Jun 11 11:42:13 1996 Bob Manson <manson@charmed.cygnus.com>
4317
4318 * init.c (build_delete): Determine the complete basetype
4319 path to the destructor we're calling.
4320
4321Fri Jun 7 15:30:10 1996 Bob Manson <manson@charmed.cygnus.com>
4322
4323 * decl.c (build_enumerator): Always copy the INTEGER_CST used to
eb66be0e
MS
4324 initialize the enum, because we really and truly don't know where
4325 it came from.
e92cc029 4326 (start_enum): Don't copy integer_zero_node because
eb66be0e 4327 build_enumerator will do it.
e92cc029
MS
4328
4329Fri Jun 7 11:11:09 1996 Jason Merrill <jason@yorick.cygnus.com>
4330
4331 * decl.c (finish_function): Do access control on base destructors.
4332
4333 * pt.c (tsubst, case FUNCTION_DECL): Set up
eb66be0e
MS
4334 IDENTIFIER_GLOBAL_VALUE for member functions so pushdecl doesn't
4335 hose us.
e92cc029
MS
4336
4337Fri Jun 7 10:37:33 1996 Mike Stump <mrs@cygnus.com>
4338
4339 * cvt.c (build_up_reference): If we have already extended the
eb66be0e 4340 lifetime of the temporary, don't try it again.
e92cc029
MS
4341 * typeck.c (c_expand_return): Don't try and convert the return
4342 value twice when we want a reference, once is enough.
4343
a0128b67
MS
4344Tue Jun 4 15:41:45 1996 Jason Merrill <jason@yorick.cygnus.com>
4345
4346 * pt.c (tsubst_expr, case DECL_STMT): Don't pass
eb66be0e 4347 LOOKUP_ONLYCONVERTING at all for now.
a0128b67
MS
4348
4349 * search.c (add_conversions): Put the conversion function in
eb66be0e 4350 TREE_VALUE, the basetype in TREE_PURPOSE.
a0128b67
MS
4351 * cvt.c (build_type_conversion): Adjust.
4352 * cvt.c (build_expr_type_conversion): Adjust.
4353 * call.c (user_harshness): Adjust.
4354
4355Mon Jun 3 15:30:52 1996 Jason Merrill <jason@yorick.cygnus.com>
4356
4357 * method.c (emit_thunk): Pretend this is a FUNCTION_DECL for the
eb66be0e 4358 backend's benefit.
a0128b67 4359
14548a19
MS
4360Mon Jun 10 18:58:19 1996 Mike Stump <mrs@cygnus.com>
4361
4362 * except.c (expand_start_catch_block): Add a dummy region, if we
4363 get an error, so that we can avoid core dumping later.
4364
a0128b67
MS
4365Fri May 31 14:56:13 1996 Mike Stump <mrs@cygnus.com>
4366
4367 * cp-tree.h (OFFSET_REF): Remove.
4368 * tree.def (CP_OFFSET_REF): Rename to OFFSET_REF.
4369 * expr.c (cplus_expand_expr): Cleanup callers of expand_expr.
d11ad92e
MS
4370 * init.c (expand_aggr_init_1): Likewise.
4371 (build_new): Likewise.
4372 * typeck.c (expand_target_expr): Likewise.
a0128b67
MS
4373
4374Fri May 31 14:22:08 1996 Jason Merrill <jason@yorick.cygnus.com>
4375
4376 * typeck.c (build_modify_expr): Don't use TREE_VALUE on a
eb66be0e 4377 TARGET_EXPR.
a0128b67 4378
e349ee73
MS
4379Wed May 29 17:04:33 1996 Mike Stump <mrs@cygnus.com>
4380
4381 * cvt.c (build_up_reference): Redo how and when temporaries are
4382 created.
4383 * decl.c (grok_reference_init): Don't try and be smart about
4384 running cleanups.
4385
4386Wed May 29 16:02:08 1996 Mike Stump <mrs@cygnus.com>
4387
4388 * cvt.c (build_up_reference): Add NULL_TREE to all calls to build
4389 (TARGET_EXPR...), now that it has 4 arguments.
d11ad92e 4390 * tree.c (build_cplus_new): Likewise.
e349ee73
MS
4391
4392Thu May 23 16:40:30 1996 Jason Merrill <jason@yorick.cygnus.com>
4393
4394 * error.c (dump_expr, case CAST_EXPR): Handle T() properly.
4395
4396 * pt.c (instantiate_decl): Don't call push/pop_cp_function_context.
4397 * decl.c (struct saved_scope): Remove named_labels,
4398 {base,member}_init_list.
4399 (maybe_push_to_top_level): Don't set them. Call
4400 push_cp_function_context if appropriate.
4401 (pop_from_top_level): Likewise.
4402
4403 * method.c (do_build_assign_ref): Remove obsolete check of
4404 TYPE_HAS_ASSIGN_REF (basetype).
4405
4406 * decl.c (grokfndecl): Diagnose user definition of
eb66be0e 4407 implicitly-declared methods.
e349ee73
MS
4408
4409Thu May 23 12:13:08 1996 Bob Manson <manson@charmed.cygnus.com>
4410
4411 * method.c (do_build_copy_constructor): Add code to give
eb66be0e
MS
4412 meaningful error messages instead of crashing.
4413 (do_build_assign_ref): Don't synthesize assignment operators for
4414 classes containing reference or const members.
e349ee73
MS
4415
4416 * class.c (struct base_info): Remove cant_synth_copy_ctor
4417 and cant_synth_asn_ref.
4418 (finish_base_struct): Remove the code that tries to conditionalize
eb66be0e
MS
4419 synthesis of copy constructors & assignment operators based on
4420 access permissions. Instead, let it fail when it tries to
4421 synthesize the copy constructor. This will give meaningful error
4422 messages instead of silently generating code to perform a bitcopy.
e349ee73
MS
4423
4424Wed May 22 11:45:19 1996 Bob Manson <manson@charmed.cygnus.com>
4425
4426 * lex.c (real_yylex): Remove old-n-crufty #if 0 code for
eb66be0e 4427 determining types for constant values.
e349ee73
MS
4428
4429 * decl.c (struct named_label_list): Use instead of stuffing
4430 random items into a TREE_LIST node.
4431 (named_label_uses): Use the new struct.
d11ad92e
MS
4432 (poplevel): Likewise.
4433 (lookup_label): Likewise.
e349ee73 4434 (define_label): Add an error message to tell the user the line
eb66be0e
MS
4435 where the goto is located in addition to the destination of the
4436 goto.
e349ee73
MS
4437 (init_decl_processing): Use NULL instead of NULL_TREE to initialize
4438 named_label_uses.
d11ad92e 4439 (finish_function): Likewise.
e349ee73
MS
4440
4441 (start_decl): Complain about defining a static data member
4442 in a different type from which it was declared.
4443
4444Wed May 22 09:33:23 1996 Jason Merrill <jason@yorick.cygnus.com>
4445
4446 * cvt.c (build_expr_type_conversion): Adjust.
4447
4448Tue May 21 11:21:56 1996 Jason Merrill <jason@yorick.cygnus.com>
4449
4450 * call.c (build_method_call): Always convert 'this' to the
eb66be0e 4451 appropriate type.
e349ee73
MS
4452
4453 * search.c (add_conversions): Put the conversion function in
eb66be0e 4454 TREE_VALUE, the type in TREE_PURPOSE.
e349ee73
MS
4455 * cvt.c (build_type_conversion): Adjust.
4456 * call.c (user_harshness): Adjust.
4457
4458 * method.c (emit_thunk): Call temporary_allocation and
eb66be0e 4459 permanent_allocation around the ASM_OUTPUT_MI_THUNK case, too.
e349ee73
MS
4460
4461 * tree.c (build_cplus_array_type): Handle tweaking of
eb66be0e 4462 TYPE_MAIN_VARIANT here.
e349ee73
MS
4463 * typeck.c (common_type): Not here.
4464
4465 * typeck.c (complete_type): Only try to complete an array type if
eb66be0e 4466 it has a domain.
e349ee73
MS
4467
4468Mon May 20 14:55:59 1996 Jason Merrill <jason@yorick.cygnus.com>
4469
4470 * decl.c (grokvardecl): Call complete_type.
4471 (grokdeclarator): Call complete_type for PARM_DECLs.
4472
4473Fri May 17 16:41:17 1996 Jason Merrill <jason@yorick.cygnus.com>
4474
4475 * pt.c (instantiate_class_template): Re-set
eb66be0e 4476 CLASSTYPE_GOT_SEMICOLON after calling finish_struct_1.
e349ee73
MS
4477
4478Fri May 17 14:56:55 1996 Mike Stump <mrs@cygnus.com>
4479
4480 * cp-tree.h (cp_expand_decl_cleanup): Remove, the backend is now
4481 smart enough to do it right.
d11ad92e 4482 * tree.c (cp_expand_decl_cleanup): Likewise.
e349ee73
MS
4483 * decl.c (cp_finish_decl): Use expand_decl_cleanup instead of
4484 cp_expand_decl_cleanup.
d11ad92e
MS
4485 (store_parm_decls): Likewise.
4486 (hack_incomplete_structures): Likewise.
4487 * except.c (push_eh_cleanup): Likewise.
e349ee73
MS
4488
4489Fri May 17 13:13:51 1996 Mike Stump <mrs@cygnus.com>
4490
4491 * expr.c (expand_expr, cond UNSAVE_EXPR): Move from the C++
4492 frontend to the backend where it belongs.
d11ad92e
MS
4493 * tree.c (unsave_expr): Likewise.
4494 (unsave_expr_now): Likewise.
4495 * tree.def (UNSAVE_EXPR): Likewise.
4496 * cp-tree.h (unsave_expr): Likewise.
4497 (unsave_expr_now): Likewise.
e349ee73
MS
4498
4499Fri May 17 11:02:41 1996 Mike Stump <mrs@cygnus.com>
4500
4501 * init.c (emit_base_init): Make sure the partial EH cleanups live
4502 on the function_obstack.
4503
ce122a86
MS
4504Thu May 16 15:29:33 1996 Bob Manson <manson@charmed.cygnus.com>
4505
4506 * expr.c (do_case): Don't try to dereference null TREE_TYPEs
4507 when checking for pointer types.
4508
4509Thu May 16 13:38:58 1996 Jason Merrill <jason@yorick.cygnus.com>
4510
4511 * pt.c (instantiate_class_template): Remove obsolete check for
eb66be0e 4512 access declarations.
ce122a86
MS
4513
4514Thu May 16 13:34:15 1996 Mike Stump <mrs@cygnus.com>
4515
4516 * call.c (build_overload_call): Simplify calls to
4517 build_overload_call by removing last parameter.
d11ad92e
MS
4518 (build_method_call): Likewise.
4519 * cp-tree.h: Likewise.
4520 * method.c (build_opfncall): Likewise.
4521 * typeck.c (build_x_function_call): Likewise.
ce122a86
MS
4522
4523Thu May 16 13:15:43 1996 Mike Stump <mrs@cygnus.com>
4524
4525 * call.c (default_parm_conversions): Factor out common code.
4526 (build_method_call): Use it.
4527 (build_overload_call_real): Use it.
4528
4ac14744
MS
4529Wed May 15 14:46:14 1996 Mike Stump <mrs@cygnus.com>
4530
4531 * call.c (build_method_call): Allow implicit & on METHOD_TYPEs,
4532 but pedwarn as the code is bogus.
d11ad92e 4533 * typeck.c (decay_conversion): Likewise.
4ac14744
MS
4534 (build_function_call_real): Use build_addr_func instead of
4535 default_conversion. Don't allow pointer-to-method functions down
4536 here.
4537 (build_unary_op): Use real pointer-to-member functions instead of
4538 fake ones.
4539 (build_ptrmemfunc): Use build_addr_func instead of build_unary_op.
4540 (convert_for_assignment): Removed some obsolete code.
4541 * decl2.c (reparse_absdcl_as_expr): Pass current_class_ref to
4542 build_x_function_call instead of current_class_ptr. Only call
4543 digest_init once on an initializer, we do this just checking
4544 TREE_TYPE.
4545 (build_expr_from_tree): Pass current_class_ref to
4546 build_x_function_call instead of current_class_ptr.
d11ad92e
MS
4547 * init.c (build_member_call): Likewise.
4548 * pase.y: Likewise.
4ac14744
MS
4549 * error.c (dump_expr): Handle OFFSET_REFs better.
4550 * pt.c (unify): Handle pointer-to-member functions better.
4551 * decl.c (finish_function): Clear out current_class_ref just like
4552 we do for current_class_ptr.
4553
4554 * typeck.c (get_delta_difference): Handle virtual bases better.
4555
4556Tue May 14 16:37:37 1996 Jason Merrill <jason@yorick.cygnus.com>
4557
4558 * sig.c (build_signature_table_constructor): Use the delta for
4559 the original basetype for this virtual function with thunks.
4560 (build_signature_method_call): We still need to adjust 'this'
4561 with thunks.
4562
4563Tue May 14 16:27:25 1996 Mike Stump <mrs@cygnus.com>
4564
4565 * call.c (build_addr_func): New routine. Used to get the `real'
4566 address of a function or a method. Needed to avoid getting a
4567 pointer-to-member function.
4568 (build_call): New routine to build CALL_EXPRs.
4569 (build_method_call): Use it.
d11ad92e
MS
4570 * cvt.c (convert_to_aggr): Likewise.
4571 * typeck.c (build_function_call_real): Likewise.
4ac14744
MS
4572 * sig.c (build_signature_table_constructor): Use build_addr_func.
4573 * cp-tree.h (build_call, build_addr_func): Declare them.
4574
4575Tue May 14 12:47:47 1996 Mike Stump <mrs@cygnus.com>
4576
4577 * cp-tree.h (LOOKUP_AGGR): Remove, unused.
4578 * parse.y: Remove uses of LOOKUP_AGGR.
4579
4580Tue May 14 12:07:51 1996 Mike Stump <mrs@cygnus.com>
4581
4582 * *.[chy]: Rename current_class_decl to current_class_ptr, and
4583 C_C_D to current_class_ref.
4584
4585Mon May 13 16:55:23 1996 Jason Merrill <jason@yorick.cygnus.com>
4586
4587 * call.c (convert_harshness): Tighten up pointer conversions.
4588
4589Sat May 11 04:33:50 1996 Doug Evans <dje@canuck.cygnus.com>
4590
4591 * decl2.c (finish_vtable_vardecl): Surround DECL_ONE_ONLY with ifdef.
4592 (finish_file): Likewise.
4593
4594Fri May 10 11:09:57 1996 Jason Merrill <jason@yorick.cygnus.com>
4595
4596 * cvt.c (convert_fn_ptr): We don't use thunks for pmfs.
4597
4598 * method.c (emit_thunk): Set flag_omit_frame_pointer in default
eb66be0e 4599 code.
4ac14744
MS
4600
4601Thu May 9 18:18:30 1996 Jason Merrill <jason@yorick.cygnus.com>
4602
4603 * decl2.c: Turn on thunks by default where supported.
4604
4dabb379
MS
4605Tue May 7 20:39:57 1996 Mike Stump <mrs@cygnus.com>
4606
4607 * cp-tree.h (build_overload_call_maybe): Removed.
4608 * call.c (build_overload_call_real): Invert meaning of last arg to
4609 be require_complete.
d11ad92e 4610 (build_overload_call): Likewise.
4dabb379
MS
4611 * typeck.c (build_x_function_call): Use build_overload_call_real
4612 instead of build_overload_call_maybe.
4613
a50f0918
MS
4614Mon May 6 01:23:32 1996 Jason Merrill <jason@yorick.cygnus.com>
4615
4616 * decl2.c (finish_file): Don't try to emit functions that haven't
eb66be0e 4617 been compiled.
a50f0918
MS
4618
4619Fri May 3 09:30:13 1996 Jason Merrill <jason@yorick.cygnus.com>
4620
4621 * decl2.c (finish_vtable_vardecl): Oops.
4622
4623 * decl.c (maybe_push_to_top_level): Do save previous_class_*.
eb66be0e 4624 Also store the bindings from previous_class_values.
a50f0918
MS
4625 (pop_from_top_level): Restore them.
4626
4627Thu May 2 21:56:49 1996 Jason Merrill <jason@yorick.cygnus.com>
4628
4629 * decl2.c (finish_vtable_vardecl): Only write out vtable if its
eb66be0e 4630 symbol has been referenced.
a50f0918
MS
4631 (finish_file): Re-join synthesis/vtable loop with inline emission
4632 loop, disable inlining when an inline is output.
4633
4634Thu May 2 17:20:02 1996 Mike Stump <mrs@cygnus.com>
4635
4636 * except.c (init_exception_processing): Setup saved_in_catch.
4637 (push_eh_cleanup): Reset __eh_in_catch.
4638 (expand_start_catch_block): Set __eh_in_catch.
4639
4640Thu May 2 16:21:17 1996 Mike Stump <mrs@cygnus.com>
4641
4642 * except.c (push_eh_cleanup): Add tracking for whether or not we
4643 have an active exception object.
4644 (expand_builtin_throw): Use it to make sure a rethrow without an
4645 exception object is caught.
4646
4647Thu May 2 11:26:41 1996 Jason Merrill <jason@yorick.cygnus.com>
4648
4649 * decl.c (maybe_push_to_top_level): Clear out class-level bindings
eb66be0e 4650 cache.
a50f0918 4651
809c8c30
JM
4652Wed May 1 11:26:52 1996 Jason Merrill <jason@yorick.cygnus.com>
4653
4654 * decl2.c (finish_file): Also use sentries for vars with
eb66be0e
MS
4655 DECL_ONE_ONLY or DECL_WEAK set (should any such happen to be
4656 created).
809c8c30
JM
4657
4658 * lex.c (handle_cp_pragma): Disable #pragma
eb66be0e 4659 interface/implementation if SUPPORTS_ONE_ONLY > 1.
809c8c30
JM
4660
4661Tue Apr 30 11:25:46 1996 Jason Merrill <jason@yorick.cygnus.com>
4662
4663 * method.c (emit_thunk): Wrap default case in
eb66be0e 4664 temporary/permanent_allocation.
809c8c30
JM
4665
4666 * method.c (make_thunk): Use DECL_ONE_ONLY.
4667 (emit_thunk): Call assemble_end_function.
4668
46b02c6d
MS
4669Mon Apr 29 15:38:29 1996 Jason Merrill <jason@yorick.cygnus.com>
4670
4671 * decl2.c (import_export_vtable): Use DECL_ONE_ONLY.
d11ad92e 4672 (import_export_decl): Likewise.
46b02c6d
MS
4673 (finish_prevtable_vardecl): Disable vtable hack if
4674 SUPPORTS_ONE_ONLY > 1.
4675
4676Mon Apr 29 14:32:47 1996 Mike Stump <mrs@cygnus.com>
4677
4678 * typeck.c (build_modify_expr): PREINCREMENT_EXPR and
4679 PREDECREMENT_EXPRs take two arguments, not one.
4680
4681Mon Apr 29 00:27:53 1996 Jason Merrill <jason@yorick.cygnus.com>
4682
4683 * class.c (build_vtable_entry): Don't build thunks for abstract
eb66be0e 4684 virtuals.
46b02c6d
MS
4685
4686 * lex.c (real_yylex): Fix handling of __PRETTY_FUNCTION__ like C
eb66be0e 4687 frontend.
46b02c6d
MS
4688
4689Sat Apr 27 16:45:35 1996 Jason Merrill <jason@yorick.cygnus.com>
4690
4691 * class.c (set_rtti_entry): Use size_zero_node.
d11ad92e 4692 (build_vtable): Likewise.
46b02c6d
MS
4693
4694Sat Apr 27 14:48:57 1996 Jason Merrill <jason@phydeaux.cygnus.com>
4695
4696 * class.c (finish_struct_1): Pass size_zero_node to set_rtti_entry.
d11ad92e 4697 (prepare_fresh_vtable): Likewise.
46b02c6d
MS
4698
4699Fri Apr 26 13:14:14 1996 Jason Merrill <jason@yorick.cygnus.com>
4700
4701 * method.c (emit_thunk): Call mark_used on the target function.
4702
4703 * call.c (build_method_call): Don't warn about pending templates.
4704
c7690c68
JM
4705Thu Apr 25 14:55:44 1996 Jason Merrill <jason@yorick.cygnus.com>
4706
4707 * decl2.c (finish_file): Fix list walking logic.
4708
46b02c6d
MS
4709 * typeck2.c (check_for_new_type): Only warn if -pedantic.
4710
4711Wed Apr 24 15:41:15 1996 Bob Manson <manson@charmed.cygnus.com>
4712
4713 * class.c (finish_struct_1): Remove old code for
4714 dont_allow_type_definitions.
d11ad92e 4715 * cp-tree.h: Likewise.
46b02c6d
MS
4716 * spew.c: Make sure cp-tree.h is included before parse.h, so the
4717 definition of flagged_type_tree is found before it is used.
d11ad92e 4718 * lex.c: Likewise.
46b02c6d 4719 * parse.y: Added the ftype member to the type union, and changed a
eb66be0e 4720 number of rules to use it instead of ttype. Added calls to
46b02c6d
MS
4721 check_for_new_type() as appropriate.
4722 * typeck2.c (check_for_new_type): New function for checking
4723 if a newly defined type appears in the specified tree.
4724 * cp-tree.h: Add new type flagged_type_tree. Add a prototype
4725 for check_for_new_type().
4726
67d743fe
MS
4727Wed Apr 24 00:36:21 1996 Jason Merrill <jason@yorick.cygnus.com>
4728
c7690c68
JM
4729 * decl2.c (finish_file): Only use a sentry if the decl is public.
4730
67d743fe
MS
4731 * pt.c (tsubst_expr, DECL_STMT): If we don't have an initializer,
4732 don't pass LOOKUP_ONLYCONVERTING.
4733
4734Tue Apr 23 17:18:47 1996 Bob Manson <manson@charmed.cygnus.com>
4735
4736 * typeck.c (common_type): Fix the ARRAY_TYPE case so it
4737 properly keeps track of const and volatile type modifiers.
4738
4739Tue Apr 23 10:52:56 1996 Jason Merrill <jason@yorick.cygnus.com>
4740
4741 * tree.c (cp_tree_equal): C++ version of simple_cst_equal.
4742 * pt.c (comp_template_args): Use it.
4743
4744 * rtti.c (get_tinfo_fn, build_dynamic_cast, expand_*_desc): Call
4745 assemble_external for artificial function decls.
4746
4747 * decl.c (cp_finish_decl): Oops.
4748
4749Mon Apr 22 17:28:27 1996 Jason Merrill <jason@yorick.cygnus.com>
4750
4751 * decl2.c (import_export_decl): Put static data member templates
eb66be0e
MS
4752 into common storage, or make them weak, depending on whether they
4753 are dynamically or statically initialized.
67d743fe
MS
4754 (get_sentry): New function.
4755 (finish_file): Do import_export_decl for static data members before
4756 building the init/fini functions. Don't init/fini a variable that's
4757 EXTERNAL. Use a sentry for variables in common. Fix mismatching
4758 push/pop_temp_slots.
4759 * decl.c (cp_finish_decl): If DECL_NOT_REALLY_EXTERN, do the
eb66be0e 4760 expand_static_init thang.
67d743fe
MS
4761 * method.c (get_id_2): New function.
4762
4763Mon Apr 22 15:32:45 1996 Bob Manson <manson@charmed.cygnus.com>
4764
4765 * parse.y (empty_parms): Make sure we use C++-style prototypes
eb66be0e 4766 when we're declaring member functions.
67d743fe
MS
4767
4768Sun Apr 21 10:08:22 1996 Jason Merrill <jason@yorick.cygnus.com>
4769
4770 * Makefile.in (CONFLICTS): 16 s/r conflicts.
4771 * parse.y (self_template_type): New nonterminal.
4772
a80e4195
MS
4773Thu Apr 18 08:56:54 1996 Jason Merrill <jason@yorick.cygnus.com>
4774
4775 * decl.c (make_typename_type): Handle getting a TYPE_DECL for a
eb66be0e 4776 name.
a80e4195
MS
4777 * parse.y (base_class.1): Allow 'typename foo::bar'.
4778
4779 * lex.c (check_newline): Remove #pragma code that plays with the
eb66be0e
MS
4780 input stream, since we now deal with tokens. Clear nextchar when
4781 we're done.
a80e4195
MS
4782 (handle_cp_pragma): Use real_yylex.
4783 (handle_sysv_pragma): Don't do skipline here. Only call real_yylex
4784 in one place.
4785
4786 * lex.c (check_for_missing_semicolon): Handle SELFNAME.
4787
4788 * lex.c (handle_cp_pragma): Fix "#pragma implementation".
4789
4790Wed Apr 17 16:51:33 1996 Jason Merrill <jason@yorick.cygnus.com>
4791
4792 * parse.y: New token SELFNAME for potential constructor.
4793 * spew.c (yylex): Handle it.
4794 * lex.c (identifier_type): Produce it.
4795
4796 * parse.y (complete_type_name): In :: case, don't push class binding.
d11ad92e 4797 (complex_type_name): Likewise.
a80e4195
MS
4798
4799Wed Apr 17 15:02:40 1996 Mike Stump <mrs@cygnus.com>
4800
4801 * typeck.c (build_reinterpret_cast): Handle pointer to member
eb66be0e 4802 functions.
a80e4195
MS
4803
4804Wed Apr 17 12:28:26 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
f72bbc37
BK
4805
4806 * lex.c (handle_cp_pragma): New function, with decl, doing the cc1plus
eb66be0e 4807 pragmas.
f72bbc37 4808 (check_newline): Put the vtable/unit/implementation/interface pragma
eb66be0e 4809 code into handle_cp_pragma, replacing it with a call.
f72bbc37 4810 (handle_sysv_pragma): Give int return type, and take FINPUT and TOKEN
eb66be0e 4811 args. Get the next token after handling the pragma token.
a80e4195
MS
4812
4813Wed Apr 17 10:28:34 1996 Jason Merrill <jason@yorick.cygnus.com>
4814
4815 * cvt.c (cp_convert_to_pointer): Avoid doing base analysis on pmfs.
d11ad92e 4816 (convert_to_pointer_force): Likewise.
a80e4195
MS
4817
4818 * init.c (build_new): Fix array new without -fcheck-new.
4819
4820Tue Apr 16 13:44:58 1996 Jason Merrill <jason@yorick.cygnus.com>
4821
4822 * cp-tree.h, call.c, class.c, decl.c, parse.y, pt.c, rtti.c,
4823 tree.c: Lose TYPE_NESTED_NAME.
4824
4825 * parse.y (nested_name_specifier_1): Don't treat non-identifiers
4826 as identifiers.
4827
4828 * tree.def: Add VEC_INIT_EXPR.
4829 * expr.c (cplus_expand_expr): Handle it.
4830 * init.c (build_new): Use it instead of the RTL_EXPR nastiness and
eb66be0e 4831 the extra file-scope symbol nastiness.
a80e4195
MS
4832
4833Mon Apr 15 16:21:29 1996 Jason Merrill <jason@yorick.cygnus.com>
4834
4835 * method.c (make_thunk): Thunks are static.
4836 (emit_thunk): Use ASM_OUTPUT_MI_THUNK if it's defined.
4837
4838 * decl2.c (mark_vtable_entries): Emit thunks as needed.
4839 (finish_file): Don't emit them here.
4840
4841Sun Apr 14 11:34:39 1996 Jason Merrill <jason@yorick.cygnus.com>
4842
4843 * rtti.c (build_dynamic_cast): Handle null pointers.
4844 (ifnonnull): New function.
f72bbc37 4845
6b5fbb55
MS
4846Fri Apr 12 09:08:27 1996 Bob Manson <manson@charmed.cygnus.com>
4847
a80e4195 4848 * call.c (build_method_call): Remember the original basetype we
eb66be0e
MS
4849 were called with. Give an error message instead of trying
4850 (incorrectly) to call a non-static member function through a
4851 non-inherited class.
a80e4195 4852
6b5fbb55
MS
4853 * search.c (expand_upcast_fixups): Mark the new fixup as
4854 DECL_ARTIFICIAL.
4855
4856Thu Apr 11 03:57:09 1996 Jason Merrill <jason@yorick.cygnus.com>
4857
4858 * init.c (build_new): Use a TARGET_EXPR for alloc_expr.
4859
4860 * class.c (set_rtti_entry): Fix for thunks.
4861
4862 * decl2.c (import_export_decl): Still emit typeinfo fns for
4863 cv-variants of builtin types.
4864
4865 * rtti.c (expand_class_desc): Set up base_info_type_node here.
4866 (init_rtti_processing): Instead of here.
4867
4868Wed Apr 10 14:17:13 1996 Jason Merrill <jason@yorick.cygnus.com>
4869
4870 * rtti.c (init_rtti_processing): Do init regardless of -frtti.
4871 (build_typeid): Only complain about taking dynamic typeid without
4872 -frtti.
4873
4874 * decl2.c: flag_rtti defaults to 1.
4875
4876 * rtti.c (get_tinfo_var): The general class case is now smaller.
4877 (init_rtti_processing): Pack the latter three fields of base_info
4878 into 32 bits.
4879
4880Wed Apr 10 13:50:14 1996 Mike Stump <mrs@cygnus.com>
4881
4882 * init.c (expand_member_init): Don't dump if name is NULL_TREE.
4883
4884Wed Apr 10 12:56:02 1996 Mike Stump <mrs@cygnus.com>
4885
4886 * search.c (make_memoized_table_entry): Undefer the pop, if necessary.
4887 (push_memoized_context): Split out code to undefer pop_type_level to
4888 (clear_memoized_cache): here.
4889 (pop_memoized_context): We can only handle one layer of deferral of
4890 pop_type_level so clear the cache, if there was a previous level.
4891
4892Tue Apr 9 23:06:09 1996 Jason Merrill <jason@yorick.cygnus.com>
4893
4894 * rtti.c (init_rtti_processing): Build up base_info_type_node.
4895 (expand_class_desc): Use one pointer to an array of base_info
4896 structs, passed using a CONSTRUCTOR.
4897
4898Tue Apr 9 14:20:57 1996 Mike Stump <mrs@cygnus.com>
4899
4900 * class.c (build_vbase_path): Remove block extern for
4901 flag_assume_nonnull_objects here.
4902 (build_vfn_ref): Split out functionality into build_vtbl_ref.
4903 (build_vtbl_ref): New routine.
4904 (build_vtable): Set up rtti info here.
4905 (add_virtual_function): Note in CLASSTYPE_RTTI the best
4906 place where we can get the rtti pointers from to avoid having to
4907 search around for a place.
d11ad92e
MS
4908 (finish_base_struct): Likewise.
4909 (finish_struct_1): Likewise. Never create totally new vtables
4910 with totally new vtable pointers for rtti. Disable code to layout
4911 vtable pointers better until we want to break binary
4912 compatibility.
6b5fbb55
MS
4913 * rtti.c (build_headof_sub): New routine to convert down to a
4914 sub-object that has an rtti pointer in the vtable.
4915 (build_headof): Use it. Also, use build_vtbl_ref now to be more
4916 maintainable.
4917 (build_dynamic_cast): Make sure we have saved it, if we need to.
4918 * search.c (dfs_init_vbase_pointers): Disable code that deals with
4919 a more efficient vtable layout, enable later.
4920 * call.c (flag_assume_nonnull_objects): Moved declaration to
4921 * cp-tree.h: here. Declare build_vtbl_ref.
4922 * pt.c (instantiate_class_template): Use NULL_TREE instead of 0 in
4923 function calls that want a tree.
4924
4925Tue Apr 9 12:10:26 1996 Jason Merrill <jason@yorick.cygnus.com>
4926
4927 * rtti.c (build_dynamic_cast): Handle downcasting to X* given
eb66be0e 4928 other X subobjects in the most derived type. Ack.
6b5fbb55
MS
4929
4930 * rtti.c (build_dynamic_cast): No need to strip cv-quals here,
eb66be0e 4931 get_typeid will do it for us.
6b5fbb55
MS
4932 (get_typeid_1): Break out call-building for expand_*_desc to use.
4933 (get_typeid): Call it.
d11ad92e 4934 (expand_*_desc): Likewise.
6b5fbb55 4935 * decl.c (init_decl_processing): Don't set TYPE_BUILT_IN on char *
eb66be0e 4936 and void *.
6b5fbb55
MS
4937 (init_decl_processing): Lose builtin_type_tdescs lossage.
4938 * decl2.c (finish_vtable_vardecl): Remove obsolete code.
4939
4940Mon Apr 8 17:23:23 1996 Bob Manson <manson@charmed.cygnus.com>
4941
4942 * pt.c (tsubst): When calling set_nested_typename, use
eb66be0e
MS
4943 TYPE_NESTED_NAME (current_class_type) instead of
4944 current_class_name.
6b5fbb55 4945
d11ad92e
MS
4946 * decl.c (pushdecl): Likewise.
4947 (pushdecl_class_level): Likewise.
6b5fbb55
MS
4948 (grokdeclarator): Use NULL_TREE instead of 0 in the call to
4949 set_nested_typename.
4950
4951Sun Apr 7 10:44:31 1996 Jason Merrill <jason@yorick.cygnus.com>
4952
4953 * rtti.c (synthesize_tinfo_fn): Handle arrays.
4954
4955 * cp-tree.h (DECL_REALLY_EXTERN): New macro.
4956
4957Sat Apr 6 13:56:27 1996 Jason Merrill <jason@yorick.cygnus.com>
4958
4959 * rtti.c (throw_bad_cast): Use entry point __throw_bad_cast.
4960 (init_rtti_processing): Lose bad_cast_type.
4961 (build_dynamic_cast): Use throw_bad_cast.
4962
4963 * rtti.c (synthesize_tinfo_fn): Handle enums and pmfs.
4964
4965 * decl2.c (finish_file): Don't synthesize artificial functions
eb66be0e 4966 that are external and not inline.
6b5fbb55
MS
4967
4968 * rtti.c (get_tinfo_fn): If at_eof, call import_export_decl.
4969
4970 * decl2.c (finish_file): Handle having new inlines added to
eb66be0e 4971 saved_inlines by synthesis.
6b5fbb55
MS
4972
4973 * rtti.c (get_bad_cast_node): Don't require <typeinfo>.
4974
4975Fri Apr 5 17:02:09 1996 Jason Merrill <jason@yorick.cygnus.com>
4976
4977 RTTI rewrite to initialize nodes as needed, not require that
4978 users #include <typeinfo>, complete functionality and reduce wasted
4979 space.
4980 * rtti.c (init_rtti_processing): New fn.
4981 (build_typeid): The vtable entry is now a function.
4982 (get_tinfo_var): New fn.
d11ad92e 4983 (get_tinfo_fn): Likewise.
6b5fbb55
MS
4984 (get_typeid): Use it.
4985 (build_dynamic_cast): Declare and use entry point __dynamic_cast.
4986 (build_*_desc): Rename to expand_*_desc and rewrite to use entry
4987 points __rtti_*.
4988 (add_uninstantiated_desc, get_def_to_follow, build_t_desc): Lose.
4989 (synthesize_tinfo_fn): New fn.
4990 * method.c (build_t_desc_overload): Lose.
4991 (build_overload_with_type): More generic.
4992 * decl.c (init_decl_processing): Call init_rtti_processing.
4993 * class.c (set_rtti_entry): Use get_tinfo_fn.
4994 * decl2.c (mark_vtable_entries): Mark the rtti function.
4995 (finish_prevtable_vardecl): Don't build_t_desc.
4996 (import_export_decl): Handle tinfo functions.
d11ad92e 4997 (finish_file): Likewise.
6b5fbb55
MS
4998 * typeck.c (inline_conversion): New fn.
4999 (build_function_call_real): Use it.
5000 * cp-tree.h: Add decls.
5001
5002 * method.c (hack_identifier): Also convert component_refs from
eb66be0e 5003 references.
6b5fbb55
MS
5004
5005 * lex.c (cons_up_default_function): Use the type, not the name, in
eb66be0e 5006 declspecs.
6b5fbb55
MS
5007
5008 * decl2.c (import_export_vtable): Fix weak vtables.
5009
5010Fri Apr 5 13:30:17 1996 Bob Manson <manson@charmed.cygnus.com>
5011
5012 * search.c (get_base_distance_recursive): Fix access checks for
eb66be0e 5013 protected bases.
6b5fbb55
MS
5014
5015Fri Apr 5 11:02:06 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5016
5017 * call.c (unary_complex_lvalue): Delete unneeded decl, it's in
5018 cp-tree.h.
5019 (convert_harshness): Add prototypes wrapped by PROTO.
5020 * decl2.c (grok_function_init): Likewise.
5021 (do_toplevel_using_decl): Change to void return type.
5022 * class.c (build_vtable_entry): Remove decl of make_thunk.
5023 (merge_overrides): Fix order of arg definitions.
5024 (finish_vtbls): Likewise.
5025 (fixup_vtable_deltas): Likewise.
5026 (modify_all_direct_vtables): Likewise.
5027 (modify_all_indirect_vtables): Likewise.
5028 * search.c (get_base_distance_recursive): Likewise.
5029 (get_abstract_virtuals_1): Likewise.
5030 (fixup_virtual_upcast_offsets): Likewise.
5031 (lookup_fnfields_1): Add prototypes wrapped by PROTO.
5032 * init.c (perform_member_init): Fix order of arg definitions.
5033 (expand_aggr_init_1): Add prototypes wrapped by PROTO.
5034 * cp-tree.h (make_thunk): Add decl.
5035 (overload_template_name, push_template_decl): Add decls.
5036 (do_toplevel_using_decl): Change to void return type.
5037 (vec_binfo_member): Add decl.
5038
cdf5b885
MS
5039Thu Apr 4 13:33:10 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5040
5041 * typeck.c (mark_addressable, convert_for_assignment,
5042 convert_for_initialization, pointer_int_sum, pointer_diff,
5043 unary_complex_lvalue): Add prototypes wrapped by PROTO.
5044 (convert_sequence): #if 0 fn decl, since definition also is.
5045
5046Thu Apr 4 11:00:53 1996 Mike Stump <mrs@cygnus.com>
5047
5048 * rtti.c (build_dynamic_cast): Make sure we strip qualifiers on
5049 cast to pointer types for type searching.
5050
5051Wed Apr 3 17:10:57 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5052
5053 * typeck.c (get_delta_difference): Use cp_error, not error, in the
5054 case where BINFO == 0.
5055
5056Wed Apr 3 12:01:02 1996 Mike Stump <mrs@cygnus.com>
5057
5058 * call.c (build_method_call): Fix wording of error messages so
5059 constructors come out right.
5060
5061Tue Apr 2 16:06:59 1996 Bob Manson <manson@charmed.cygnus.com>
5062
5063 * decl.c (push_overloaded_decl): Don't warn about hidden
5064 constructors when both the type and the function are declared
5065 in a system header file.
5066
c91a56d2
MS
5067Mon Apr 1 09:03:13 1996 Bob Manson <manson@charmed.cygnus.com>
5068
5069 * class.c (finish_struct_1): Propagate the TYPE_PACKED
5070 flag for the type to the type's fields.
5071
5072Sat Mar 30 12:14:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5073
5074 * parse.y (complex_parmlist, ELLIPSES): Take out ARM-based warning.
5075
5076Fri Mar 29 15:51:36 1996 Bob Manson <manson@charmed.cygnus.com>
5077
5078 * class.c (base_info, finish_base_struct): Replace
5079 needs_virtual_dtor with base_has_virtual.
5080
5081 (finish_struct_1): Remove the old code that tried to make default
eb66be0e
MS
5082 destructors virtual. Use base_has_virtual when checking if we need
5083 to add a vtable entry for the rtti code.
c91a56d2
MS
5084
5085Fri Mar 29 14:02:36 1996 Jason Merrill <jason@yorick.cygnus.com>
5086
5087 * pt.c (push_template_decl): Complain about template decl with
eb66be0e 5088 inappropriate declaration.
c91a56d2
MS
5089
5090Fri Mar 29 12:15:35 1996 Bob Manson <manson@charmed.cygnus.com>
5091
5092 * typeck.c (build_x_unary_op): Remove bogus check for taking
5093 the address of a member function.
5094
5095Fri Mar 29 11:56:02 1996 Jason Merrill <jason@yorick.cygnus.com>
5096
5097 * parse.y (constructor_declarator): Only push the class if
5098 we are not already in the class.
5099
5100Fri Mar 29 09:41:02 1996 Jeffrey A. Law <law@cygnus.com>
6752b7d4
JL
5101
5102 * method.c (emit_thunk): Remove current_call_is_indirect nonsense.
5103 Add additional argument to INIT_CUMULATIVE_ARGS.
5104
c91a56d2
MS
5105Thu Mar 28 16:41:39 1996 Jason Merrill <jason@yorick.cygnus.com>
5106
5107 * decl.c (shadow_tag): Fix error about anon union with methods.
5108
5109 * parse.y (self_reference): Only generate a self-reference if this
eb66be0e 5110 is a non-template class.
c91a56d2
MS
5111 (opt.component_decl_list): Only use it if it was generated.
5112
5113 * parse.y (component_decl_1): Use constructor_declarator.
d11ad92e
MS
5114 (fn.def2): Likewise.
5115 (notype_component_declarator0): Likewise.
c91a56d2
MS
5116
5117Thu Mar 28 15:11:35 1996 Bob Manson <manson@charmed.cygnus.com>
5118
5119 * typeck.c (build_x_unary_op): Add checks for taking the address
5120 of a TARGET_EXPR or of a member function, and give appropriate
5121 warnings.
5122
5123Thu Mar 28 14:49:26 1996 Jason Merrill <jason@yorick.cygnus.com>
5124
5125 * pt.c (process_template_parm): Allow template type parms to be
eb66be0e 5126 used as types for template const parms.
c91a56d2
MS
5127
5128Wed Mar 27 15:51:19 1996 Mike Stump <mrs@cygnus.com>
5129
5130 * init.c (expand_vec_init): Ensure the eh cleanups are on the
5131 function_obstack.
5132
5133Wed Mar 27 10:14:30 1996 Jason Merrill <jason@yorick.cygnus.com>
5134
5135 * decl.c (lookup_name_real): Be even more picky about the
eb66be0e 5136 ambiguous lookup warning.
c91a56d2
MS
5137 (grokdeclarator): Tweak SCOPE_REF constructor declarators here.
5138 * parse.y (constructor_declarator): Rather than here.
5139
5140 * parse.y (constructor_declarator): New nonterminal.
5141 (fn.def1): Use it.
d11ad92e 5142 (explicit_instantiation): Likewise.
c91a56d2
MS
5143
5144Tue Mar 26 13:41:33 1996 Jason Merrill <jason@yorick.cygnus.com>
5145
5146 Add implicit declaration of class name at class scope.
5147 * decl.c (lookup_name_real): Restrict pedwarn about ambiguous lookup.
5148 * parse.y (self_reference): New nonterminal.
5149 (opt.component_decl_list): Use it.
5150 (fn.def1): Add nested_name_specifier type_name cases.
5151 * class.c (build_self_reference): New function.
5152 (finish_struct): Handle access_default later, move self-reference
5153 decl to the end.
5154 * pt.c (lookup_template_class): Handle getting a TYPE_DECL.
5155 * cp-tree.h: Adjust.
5156
5157 * pt.c (do_function_instantiation): Separate handling of member
eb66be0e 5158 functions and non-member functions properly.
c91a56d2
MS
5159
5160Mon Mar 25 14:23:22 1996 Jason Merrill <jason@yorick.cygnus.com>
5161
5162 * pt.c (process_template_parm): Improve error for 'volatile class K'.
5163
5164 * class.c (finish_struct_1): Check the right slot for destructors.
5165
5166 * decl.c (start_enum): Complain about enum templates.
5167
5168Mon Mar 25 13:25:31 1996 Mike Stump <mrs@cygnus.com>
5169
5170 * init.c (resolve_offset_ref): Offset pointers to member data by one.
d11ad92e 5171 * typeck.c (unary_complex_lvalue): Likewise.
c91a56d2
MS
5172
5173Mon Mar 25 13:30:42 1996 Bob Manson <manson@charmed.cygnus.com>
5174
5175 * typeck.c (c_expand_return): Check for a returned local
5176 array name, similar to the check for an ADDR_EXPR.
5177
5178Mon Mar 25 13:07:19 1996 Jason Merrill <jason@yorick.cygnus.com>
5179
5180 * decl.c (cp_finish_decl): Don't build cleanups for static
eb66be0e 5181 variables here.
c91a56d2
MS
5182
5183Fri Mar 22 17:57:55 1996 Mike Stump <mrs@cygnus.com>
5184
5185 * typeck.c (build_modify_expr): Fix error messages to be more
5186 accurate.
5187 * cp-tree.h (assop_as_string): Parallel to op_as_string, but for
5188 assignment operators.
d11ad92e 5189 * error.c (assop_as_string): Likewise. Add support for `%Q' for
c91a56d2
MS
5190 assignment operators.
5191
909e536a
MS
5192Fri Mar 22 13:48:29 1996 Jason Merrill <jason@yorick.cygnus.com>
5193
c91a56d2 5194 * decl.c (grokdeclarator): Call bad_specifiers for typedefs. Also
eb66be0e
MS
5195 give an error if initialized. Pedwarn about nested type with the
5196 same name as its enclosing class.
c91a56d2 5197
909e536a
MS
5198 * pt.c (tsubst, case TYPE_DECL): Set DECL_CONTEXT.
5199
5200 * typeck.c (require_complete_type): Be sure to instantiate the
eb66be0e 5201 MAIN_VARIANT of the type.
909e536a
MS
5202
5203 * decl2.c (finish_file): Instantiate pending templates before
eb66be0e 5204 processing static constructors and destructors.
909e536a
MS
5205
5206 * pt.c (instantiate_decl): Don't instantiate functions at toplevel
eb66be0e 5207 unless at_eof.
909e536a
MS
5208
5209Fri Mar 22 09:30:17 1996 Bob Manson <manson@beauty.cygnus.com>
5210
5211 * decl2.c (delete_sanity): If error_mark_node is passed
5212 in as an expression, quit while we're ahead.
5213
5214 * decl.c (grokdeclarator): Give an error message if `friend'
5215 is combined with any storage class specifiers.
5216
fc378698
MS
5217Wed Mar 20 14:51:55 1996 Jason Merrill <jason@yorick.cygnus.com>
5218
5219 * parse.y (named_complex_class_head_sans_basetype): Don't crash on
eb66be0e 5220 definition of nonexistent nested type.
fc378698
MS
5221
5222 * error.c (dump_decl, case TYPE_DECL): Fix decision for whether or
eb66be0e 5223 not to say 'typedef'.
fc378698
MS
5224
5225Wed Mar 20 00:11:47 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5226
5227 * cp-tree.h (struct lang_type): Make search_slot a tree, not a char*.
5228 * search.c (dfs_walk, dfs_init_vbase_pointers,
5229 expand_upcast_fixups): Remove cast of CLASSTYPE_SEARCH_SLOT.
5230 (dfs_find_vbases): Remove cast for CLASSTYPE_SEARCH_SLOT init.
5231
5232Tue Mar 19 17:56:03 1996 Jason Merrill <jason@yorick.cygnus.com>
5233
5234 * except.c (build_throw): Support minimal parse.
5235 * pt.c (tsubst_copy): Support THROW_EXPR.
d11ad92e 5236 * decl2.c (build_expr_from_tree): Likewise.
fc378698
MS
5237
5238 * pt.c (mangle_class_name_for_template): Always allocate
eb66be0e 5239 scratch_firstobj.
fc378698
MS
5240
5241Tue Mar 19 16:34:31 1996 Bob Manson <manson@beauty.cygnus.com>
5242
5243 * cvt.c (cp_convert_to_pointer): Give an appropriate error
5244 when trying to cast from an incomplete type.
5245
5246Tue Mar 19 16:00:33 1996 Jason Merrill <jason@yorick.cygnus.com>
5247
5248 * pt.c (instantiate_class_template): Don't bother setting up
eb66be0e
MS
5249 CLASSTYPE_TAGS explicitly, as the nested types will add
5250 themselves.
fc378698
MS
5251
5252Tue Mar 19 15:48:43 1996 Bob Manson <manson@beauty.cygnus.com>
5253
5254 * decl.c (shadow_tag): Remove old error check for usage of
5255 an enum without a previous declaration.
5256 (xref_tag): Add error message about usage of enums without a
5257 previous declaration.
5258
5259Tue Mar 19 09:21:35 1996 Jason Merrill <jason@yorick.cygnus.com>
5260
5261 * lex.c (do_identifier): Only do name consistency check if we're
eb66be0e 5262 parsing.
fc378698
MS
5263
5264 * pt.c (push_template_decl): Don't crash if we get a member defn
5265 that doesn't match.
5266
5267 * decl.c (xref_tag_from_type): New function to do an xref without
eb66be0e 5268 always having to figure out code_type_node.
fc378698
MS
5269 * cp-tree.h: Declare it.
5270 * pt.c (instantiate_class_template): Use it for friend classes.
eb66be0e 5271 (lookup_template_class): Use it.
fc378698
MS
5272
5273 * typeck2.c (build_functional_cast): Pull out a single parm before
eb66be0e 5274 passing it to build_c_cast.
fc378698
MS
5275
5276Tue Mar 19 09:07:15 1996 Bob Manson <manson@beauty.cygnus.com>
5277
5278 * expr.c (do_case): Give an error message if a pointer is
5279 given as a case value.
5280
5281Mon Mar 18 21:57:54 1996 Jason Merrill <jason@yorick.cygnus.com>
5282
5283 * typeck.c (build_c_cast): Don't pull single TEMPLATE_DECL out of
eb66be0e 5284 an overload list.
fc378698
MS
5285
5286 * lex.c (cons_up_default_function): Really, now, interface hackery
eb66be0e 5287 does not apply to synthesized methods.
fc378698
MS
5288
5289Mon Mar 18 18:20:57 1996 Mike Stump <mrs@cygnus.com>
5290
5291 * call.c (build_method_call): Ctors and dtors now have special names
5292 with respect to lookups.
d11ad92e
MS
5293 * class.c (add_method): Likewise.
5294 (grow_method): Likewise.
5295 (finish_struct_methods): Likewise.
5296 (warn_hidden): Likewise.
5297 (finish_struct_1): Likewise.
5298 * cvt.c (convert_to_reference): Likewise.
5299 (convert_to_aggr): Likewise.
5300 (cp_convert): Likewise.
5301 * decl2.c (check_classfn): Likewise.
5302 * init.c (expand_member_init): Likewise.
5303 (expand_default_init): Likewise.
5304 (expand_aggr_init_1): Likewise.
5305 (build_offset_ref): Likewise.
5306 (build_new): Likewise.
5307 (build_delete): Likewise.
5308 * lex.c (do_inline_function_hair): Likewise.
5309 * search.c (lookup_field_1): Likewise.
5310 (lookup_fnfields_here): Likewise.
5311 (lookup_field): Likewise.
5312 (lookup_fnfields): Likewise.
5313 (get_virtual_destructor): Likewise.
5314 (dfs_debug_mark): Likewise.
5315 (dfs_pushdecls): Likewise.
5316 (dfs_compress_decls): Likewise.
5317 * tree.c (layout_basetypes): Likewise.
5318 * typeck.c (build_component_ref): Likewise.
5319 (build_x_function_call): Likewise.
5320 (build_modify_expr): Likewise.
5321 (convert_for_initialization): Likewise.
5322 (build_functional_cast): Likewise.
5323 * cp-tree.h (CLASSTYPE_FIRST_CONVERSION): Likewise.
fc378698
MS
5324 (CTOR_NAME): New.
5325 (DTOR_NAME): New.
5326 * decl.c (ctor_identifier): New.
5327 (dtor_identifier): New.
5328 (init_decl_processing): Set them.
5329
5330Mon Mar 18 18:00:51 1996 Mike Stump <mrs@cygnus.com>
5331
5332 * typeck.c (build_component_ref): Don't get confused by fields whose
5333 context has no type name, like pointer to member functions.
5334
5335Mon Mar 18 13:19:03 1996 Jason Merrill <jason@yorick.cygnus.com>
5336
5337 * decl.c (grokdeclarator): Handle typedef without declarator.
5338
5339 * pt.c (tsubst): Handle SCOPE_REF in declarator.
5340
5341 * parse.y (bad_parm): Catch another case of missing `typename'.
5342
5343 * lex.c (yyprint): Handle TYPE_DECLs.
5344
5345 * decl.c (start_function): Don't try to be clever.
5346
5347 * lex.c: Lose compiler_error_with_decl.
5348 * typeck2.c: Lose error_with_aggr_type.
5349 (incomplete_type_error): Use cp_* instead of old functions.
d11ad92e
MS
5350 (readonly_error): Likewise.
5351 * typeck.c (convert_arguments): Likewise.
5352 * search.c (lookup_nested_field): Likewise.
5353 * method.c (make_thunk): Likewise.
5354 * decl.c (grokparms): Likewise.
fc378698
MS
5355 * cp-tree.h: Update.
5356
5357 * tree.c (min_tree_cons): Call copy_to_permanent for the purpose
eb66be0e 5358 and value.
fc378698
MS
5359
5360Mon Mar 18 11:25:52 1996 Bob Manson <manson@beauty.cygnus.com>
5361
5362 * method.c (build_opfncall): When deleting a pointer to an
5363 array, build a new pointer to the tree past any ARRAY_TYPE
5364 nodes.
5365
5366Mon Mar 18 10:11:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5367
5368 * decl.c (lookup_name_real): Initialize local var TYPE to NULL_TREE.
5369
5370Fri Mar 15 11:03:57 1996 Jason Merrill <jason@yorick.cygnus.com>
5371
5372 * pt.c (instantiate_decl): Only call import_export_decl if at_eof
eb66be0e 5373 and ! DECL_INLINE.
fc378698
MS
5374
5375 * decl.c (finish_function): Don't set nested based on
eb66be0e 5376 hack_decl_function_context.
fc378698 5377 * parse.y (function_try_block): Check for nested function.
d11ad92e 5378 (pending_inlines): Likewise.
fc378698
MS
5379
5380 * decl2.c (build_expr_from_tree): If a unary op already has a
eb66be0e 5381 type, just return it.
fc378698
MS
5382
5383 * decl2.c (finish_prevtable_vardecl): Use ADJUST_VTABLE_LINKAGE.
5384
5385 * decl2.c (walk_vtables): vardecl_fn returns int; return 1 if it does.
5386 (finish_file): Check the return value of walk_vtables.
5387 (finish_prevtable_vardecl): Return int.
d11ad92e
MS
5388 (finish_vtable_vardecl): Likewise.
5389 (prune_vtable_vardecl): Likewise.
5390 * lex.c (set_vardecl_interface_info): Likewise.
fc378698
MS
5391 * cp-tree.h: Adjust return types.
5392
5393 * class.c (delete_duplicate_fields_1): Don't complain about
eb66be0e 5394 duplicate nested types if they're the same type.
fc378698
MS
5395 (finish_struct): Remove check for duplicate.
5396 * decl2.c (grokfield): Don't check for typedef of anonymous type.
5397
5398Thu Mar 14 10:00:19 1996 Jason Merrill <jason@yorick.cygnus.com>
5399
5400 * cp-tree.h: Lose SIGNATURE_GROKKING_TYPEDEF.
5401
5402 * decl.c (grokdeclarator): Lose special handling of class-level
eb66be0e
MS
5403 typedef. Lose SIGNATURE_GROKKING_TYPEDEF. Set
5404 SIGNATURE_HAS_OPAQUE_TYPEDECLS later.
fc378698
MS
5405
5406 * cvt.c (convert_pointer_to_real): Retain cv-quals in conversion.
5407
5408 * pt.c (tsubst_copy): Strip cv-quals from destructor name types.
5409
5410 * search.c (compute_access): Fix handling of anonymous union
eb66be0e 5411 members.
fc378698 5412 * class.c (finish_struct_anon): Propagate TREE_{PRIVATE,PROTECTED}
eb66be0e 5413 from anonymous unions to their members.
fc378698
MS
5414
5415 * typeck.c (build_x_function_call): For static member functions,
eb66be0e 5416 hand off to build_member_call.
fc378698
MS
5417
5418Wed Mar 13 14:03:34 1996 Jason Merrill <jason@yorick.cygnus.com>
5419
5420 * typeck.c (build_component_ref): Handle OFFSET_REFs.
5421
5422 * init.c (expand_vec_init): Fix init == 0 case.
5423
5424Tue Mar 12 14:36:02 1996 Jason Merrill <jason@yorick.cygnus.com>
5425
5426 * init.c (build_new): Pedwarn about init and array new.
eb291d05 5427 (expand_vec_init): Handle lists, use convert_for_initialization.
fc378698
MS
5428
5429 * typeck.c (convert_for_initialization): Pass LOOKUP_NO_CONVERSION
eb66be0e 5430 when converting to an aggregate type.
fc378698
MS
5431 * cvt.c (cp_convert): Pass it through.
5432
5433 * typeck.c (build_conditional_expr): Handle user-defined
eb66be0e 5434 conversions to slightly different types.
fc378698
MS
5435
5436 * decl.c (grokdeclarator): Force an array type in a parm to be
eb66be0e 5437 permanent.
fc378698
MS
5438
5439 * decl2.c (do_using_directive): Sorry.
d11ad92e 5440 (do_namespace_alias): Likewise.
fc378698
MS
5441 * lex.c (real_yylex): Warn about using the `namespace' keyword.
5442
5443Sun Mar 10 22:26:09 1996 Jason Merrill <jason@yorick.cygnus.com>
5444
5445 * parse.y (datadef): Move call to note_list_got_semicolon up.
5446
934c6b13
MS
5447Fri Mar 8 11:47:26 1996 Mike Stump <mrs@cygnus.com>
5448
5449 * tree.c (unsave_expr): Don't unsave, UNSAVE_EXPRs.
5450
5451Fri Mar 8 11:29:06 1996 Mike Stump <mrs@cygnus.com>
5452
5453 * decl.c (cp_finish_decl): The exception regions have to be
5454 nested, not overlapping. We start the exception region for a
5455 decl, after it has been fully built, and all temporaries for it
5456 have been cleaned up.
5457
5458Thu Mar 7 17:46:06 1996 Mike Stump <mrs@cygnus.com>
5459
5460 * tree.c (vec_binfo_member): Don't core dump if we have no bases.
5461
e76a2646
MS
5462Thu Mar 7 14:11:49 1996 Jason Merrill <jason@yorick.cygnus.com>
5463
5464 * tree.def: Add RETURN_INIT.
5465 * pt.c (instantiate_decl): Handle RETURN_INIT.
5466 * decl.c (store_return_init): Handle minimal_parse_mode.
5467
5468 * tree.c (cp_build_type_variant): Just return an error_mark_node.
5469 * decl.c (make_typename_type): Don't try to get the file and line
eb66be0e 5470 of an identifier.
e76a2646
MS
5471 * typeck.c (comptypes): Handle TYPENAME_TYPE.
5472
5473Wed Mar 6 18:47:50 1996 Per Bothner <bothner@kalessin.cygnus.com>
5474
5475 * decl.c (poplevel): Make sure we clear out and restore old local
5476 non-VAR_DECL values by default when they go out of scope.
5477
5478Wed Mar 6 09:57:36 1996 Jason Merrill <jason@yorick.cygnus.com>
5479
5480 * method.c (build_overload_value): Use DECL_ASSEMBLER_NAME in
eb66be0e 5481 referring to addresses of variables and functions.
e76a2646
MS
5482
5483 * error.c (dump_expr): Support SIZEOF_EXPR.
5484
5485 * init.c (do_friend): Use the return value of check_classfn.
5486
5487 * typeck.c (convert_arguments): Call complete_type.
5488
5489 * method.c (hack_identifier): After giving an error, set value to
eb66be0e 5490 error_mark_node.
e76a2646
MS
5491
5492Tue Mar 5 16:00:15 1996 Jason Merrill <jason@yorick.cygnus.com>
5493
5494 * tree.c (hack_decl_function_context): Kludge around DECL_CONTEXT
eb66be0e 5495 lossage for local classes.
e76a2646
MS
5496 * cp-tree.h: Declare it.
5497 * decl.c (lookup_name_real): Evil, painful hack for local classes.
5498 (grokfndecl): Set DECL_CLASS_CONTEXT and DECL_NO_STATIC_CHAIN here.
5499 Use hack_decl_function_context.
5500 (grokdeclarator): Don't set DECL_NO_STATIC_CHAIN here.
5501 (start_function): Use hack_decl_function_context.
d11ad92e
MS
5502 (finish_function): Likewise.
5503 * method.c (synthesize_method): Likewise.
5504 * lex.c (process_next_inline): Likewise.
5505 (do_pending_inlines): Likewise.
e76a2646 5506 * decl2.c (finish_file): Unset DECL_STATIC_FUNCTION_P when we're
eb66be0e 5507 done with it.
e76a2646
MS
5508
5509Mon Mar 4 22:38:39 1996 Gerald Baumgartner <gb@alexander.cs.purdue.edu>
5510
5511 * sig.c (build_signature_pointer_or_reference_type): Align
5512 signature pointers/references on 8-byte boundaries so they can be
5513 grabbed 2 words at a time on a Sparc.
5514
5515Tue Mar 5 10:21:01 1996 Jason Merrill <jason@yorick.cygnus.com>
5516
5517 * method.c (hack_identifier): Requiring a static chain is now a
eb66be0e 5518 hard error.
e76a2646 5519 * decl.c (grokdeclarator): Set DECL_NO_STATIC_CHAIN on nested
eb66be0e 5520 functions.
e76a2646
MS
5521
5522Mon Mar 4 20:03:33 1996 Jason Merrill <jason@yorick.cygnus.com>
5523
5524 * init.c (build_offset_ref): Call complete_type.
5525
5526 * decl.c (pop_from_top_level): Always pop previous_class_type.
5527
5528 * parse.y: Handle multiple decls in a for-init-statement.
d11ad92e 5529 * pt.c (tsubst_expr): Likewise.
e76a2646
MS
5530
5531 * pt.c (tsubst): Use tsubst_expr for the second operand of an
eb66be0e 5532 ARRAY_REF.
e76a2646
MS
5533
5534 * decl.c (maybe_push_to_top_level): Don't save previous_class_type.
5535 (poplevel_class): Set it here.
5536 (pop_from_top_level): Pop it here if we're returning to class scope.
5537 * class.c (pushclass): Don't set it here.
5538
5539 * decl.c (maybe_push_to_top_level): Save current_template_parms,
eb66be0e 5540 and clear it if !pseudo.
e76a2646
MS
5541 (pop_from_top_level): Restore it.
5542
5543 * decl2.c (finish_file): Push the dummy each time we walk the list
eb66be0e 5544 of vtables.
e76a2646
MS
5545
5546 * error.c (dump_expr): Support LOOKUP_EXPR and actually do
eb66be0e 5547 something for CAST_EXPR.
e76a2646
MS
5548
5549Mon Feb 19 14:49:18 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
5550
5551 * cvt.c (cp_convert): Warn about implicit conversion of the
5552 address of a function to bool, as it is always true.
5553
5554Fri Feb 23 23:06:01 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
5555
5556 * typeck.c (c_expand_return): Fix warning for local externs returned.
5557
5558Mon Mar 4 15:03:11 1996 Jason Merrill <jason@yorick.cygnus.com>
5559
5560 * tree.c (mapcar): Propagate const and volatile properly.
5561
5562 * typeck.c (complete_type): Be sure to instantiate the
eb66be0e 5563 MAIN_VARIANT of the type.
e76a2646
MS
5564
5565 * method.c (synthesize_method): Class interface hackery does not
5566 apply to synthesized methods.
5567
5568Mon Mar 4 14:05:23 1996 Jason Merrill <jason@yorick.cygnus.com>
5569
5570 * pt.c (comp_template_args): Use comptypes rather than just
eb66be0e 5571 checking for TEMPLATE_TYPE_PARM equivalence.
e76a2646
MS
5572
5573 * typeck.c (build_x_function_call): Call complete_type before
eb66be0e 5574 checking TYPE_OVERLOADS_CALL_EXPR.
e76a2646 5575
7ea63af7
MH
5576Mon Mar 4 18:48:30 1996 Manfred Hollstein <manfred@lts.sel.alcatel.de>
5577
5578 * g++.c (main): Check also for new define ALT_LIBM.
5579
ec255269
MS
5580Fri Mar 1 13:09:33 1996 Jason Merrill <jason@yorick.cygnus.com>
5581
5582 * pt.c (instantiate_class_template): If we don't have a pattern
eb66be0e 5583 yet, that's OK.
ec255269
MS
5584 (coerce_template_parms): If we see a local class, bail.
5585
5586 * decl.c (grok_reference_init): Make sure there's a type before
eb66be0e 5587 checking its code.
ec255269
MS
5588
5589 * pt.c (do_function_instantiation): Avoid crashing on invalid decls.
d11ad92e 5590 (push_template_decl): Likewise.
ec255269
MS
5591
5592 * parse.y (named_class_head): Set
eb66be0e 5593 CLASSTYPE_TEMPLATE_SPECIALIZATION here if we have basetypes.
ec255269
MS
5594
5595 * decl.c (xref_tag): Diagnose redeclaration of template
eb66be0e 5596 type-parameter name.
ec255269
MS
5597
5598 * error.c (dump_type): Handle anonymous template type parms.
5599
5600 * pt.c (instantiate_template): Use TYPE_MAIN_DECL instead of
eb66be0e 5601 TYPE_STUB_DECL.
d11ad92e 5602 (coerce_template_parms): Likewise.
ec255269
MS
5603
5604Thu Feb 29 16:26:01 1996 Mike Stump <mrs@cygnus.com>
5605
5606 * class.c (instantiate_type, case {ARRAY,INDIRECT}_REF,
5607 case ADDR_EXPR): Don't modify rhs if a subinstantiation fails.
5608
5609Thu Feb 29 08:20:25 1996 Jason Merrill <jason@yorick.cygnus.com>
5610
5611 * pt.c (instantiate_template): Take the MAIN_VARIANT of the type
eb66be0e 5612 before trying to get its STUB_DECL.
d11ad92e 5613 (coerce_template_parms): Likewise.
ec255269
MS
5614
5615 * parse.y (template_type_parm): If they didn't use 'class',
eb66be0e 5616 pretend they did after giving an error.
ec255269
MS
5617
5618 * pt.c (coerce_template_parms): Diagnose use of local class.
5619
5620 * decl.c (grok_reference_init): Use instantiate_type.
5621
5622 * error.c (dump_expr): Handle TEMPLATE_DECLs.
5623
5624 * parse.y (named_class_head): Diagnose mismatching types and tags.
5625
5626 * decl.c (pushdecl): Type decls and class templates clash with
eb66be0e 5627 artificial type decls, not hide them.
ec255269
MS
5628
5629 * decl.c (redeclaration_error_message): Diagnose redefinition of
eb66be0e 5630 templates properly.
ec255269
MS
5631 (duplicate_decls): Diagnose disallowed overloads for template
5632 functions, too.
5633
5634 * decl.c (start_decl): Call complete_type before checking for a
eb66be0e 5635 destructor.
ec255269
MS
5636
5637 * pt.c (tsubst): Use tsubst_expr on the elts of a VEC.
5638
5639 * decl.c (xref_tag): A TEMPLATE_TYPE_PARM is a match.
5640
5566b478
MS
5641Wed Feb 28 09:28:44 1996 Jason Merrill <jason@yorick.cygnus.com>
5642
ec255269 5643 * decl.c (grok_op_properties): Don't check for operator++(int) in
eb66be0e 5644 a template.
ec255269
MS
5645
5646 * tree.c (perm_manip): Return a copy of variable and function
eb66be0e 5647 decls with external linkage.
ec255269
MS
5648
5649 * tree.def: Change some of the min tree codes to type "1".
5650 * pt.c (uses_template_parms): Handle 'e's, return 1 for LOOKUP_EXPRs.
5651 * method.c (build_overload_int): Emit something arbitrary for
eb66be0e 5652 anything but an INTEGER_CST if we're in a template.
ec255269
MS
5653
5654 * decl.c (cp_finish_decl): Call complete_type before deciding
eb66be0e 5655 whether or not to lay out the decl.
ec255269 5656
5566b478
MS
5657 * lex.c (do_identifier): Check for DECL_INITIAL before using it.
5658
5659Tue Feb 27 16:35:32 1996 Jason Merrill <jason@yorick.cygnus.com>
5660
5661 * typeck2.c (build_x_arrow): Call complete_type.
5662
5663 * pt.c (add_pending_template): Broken out.
eb66be0e
MS
5664 (lookup_template_class): If -fexternal-templates, call it for all
5665 the methods of implemented types.
5566b478
MS
5666 (instantiate_class_template): Instead of instantiating them here.
5667 (instantiate_decl): Handle -fexternal-templates earlier.
5668
5669Tue Feb 27 15:51:32 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5670
5671 * search.c, lex.c, decl.c, class.c, cp-tree.h: Don't wrap the
5672 memoized lookup stuff inside GATHER_STATISTICS.
5673
5674Tue Feb 27 10:38:08 1996 Jason Merrill <jason@yorick.cygnus.com>
5675
5676 * decl.c (start_decl): Complain about array of incomplete type
5677 here.
5678 (grokdeclarator): Not here.
5679
5680 * parse.y (template_parm): Expand full_parm inline so we can set
eb66be0e 5681 the rule's precedence.
5566b478
MS
5682
5683 * pt.c (tsubst_expr): If we're in a template, just do tsubst_copy.
5684 (tsubst): tsubst_expr the DECL_INITIAL of FIELD_DECLs.
5685 * decl2.c (grokbitfield): Don't check for integer constant here.
5686 * class.c (finish_struct_1): Check here.
5687
5688 * decl.c (define_label): Make the min decl go on permanent_obstack.
5689
5690 * pt.c (unify): Don't handle CONST_DECLs.
5691 (uses_template_parms): Don't check DECL_INITIAL on a CONST_DECL.
d11ad92e 5692 (tsubst_copy): Likewise.
5566b478
MS
5693
5694 * lex.c (do_identifier): Do pull the DECL_INITIAL out of a
eb66be0e 5695 CONST_DECL for a template parm.
5566b478
MS
5696
5697Mon Feb 26 12:48:18 1996 Jason Merrill <jason@yorick.cygnus.com>
5698
5699 * decl.c (grokdeclarator): Complain about array of incomplete type
5700 here.
5701 (start_decl_1): Not here.
5702
5703 * pt.c (tsubst): Handle pointer-to-function declarators.
5704
5705 * method.c (hack_identifier): If pedantic, diagnose local class
eb66be0e 5706 methods that require a static chain.
5566b478
MS
5707
5708 * decl.c (grok_op_properties): No longer static.
5709 * cp-tree.h: Declare it.
5710 * pt.c (tsubst): Call it for operators.
5711 Use tsubst_copy for TREE_VECs.
5712
5713 * parse.y (template_arg): The expr has precedence like '>'.
5714
5715Fri Feb 23 14:51:52 1996 Jason Merrill <jason@yorick.cygnus.com>
5716
5717 * pt.c (coerce_template_parms): Don't coerce an expression using
eb66be0e 5718 template parms.
5566b478
MS
5719 (uses_template_parms): Also check DECL_INITIAL in CONST_DECLs.
5720 (tsubst): Don't use build_index_2_type if the max_value uses template
5721 parms.
5722 * method.c (build_overload_int): Emit something arbitrary for an
eb66be0e 5723 expression using template parms.
5566b478
MS
5724
5725 * parse.y (template_close_bracket): New non-terminal to catch use
eb66be0e 5726 of '>>' instead of '> >' in template class names.
5566b478
MS
5727 (template_type): Use it.
5728 * Makefile.in (CONFLICTS): Causes one more r/r conflict.
5729
5730 * tree.def: Add CAST_EXPR.
5731 * typeck2.c (build_functional_cast): Use CAST_EXPR instead of
eb66be0e 5732 CONVERT_EXPR for minimal_parse_mode.
d11ad92e
MS
5733 * typeck.c (build_c_cast): Likewise.
5734 * pt.c (tsubst_copy): Likewise.
5735 * decl2.c (build_expr_from_tree): Likewise.
5736 * error.c (dump_expr): Likewise.
5566b478
MS
5737
5738Fri Feb 23 10:36:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5739
5740 * except.c (SetTerminate, SetUnexpected): Put back global vars.
5741 (init_exception_processing): Put back decl/init of
5742 set_unexpected_fndecl and set_terminate_fndecl, needed to get the
5743 fns from libstdc++.
5744
5745 * decl.c (struct binding_level): Delete ACCEPT_ANY bitfield.
5746 (declare_uninstantiated_type_level, uninstantiated_type_level_p):
5747 Delete unused fns.
5748 * cp-tree.h (declare_uninstantiated_type_level,
5749 uninstantiated_type_level_p): Delete prototypes.
5750
5751Thu Feb 22 19:36:15 1996 Jason Merrill <jason@yorick.cygnus.com>
5752
5753 * pt.c (tsubst_expr): Add default return.
5754
5755Thu Feb 22 16:47:24 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5756
5757 * error.c (fndecl_as_string): Delete unused arg CNAME.
5758 * sig.c (build_signature_table_constructor,
5759 build_signature_method_call): Fix calls.
5760
5761 * class.c (the_null_vtable_entry): Delete var definition.
5762 (init_class_processing): Delete tree the_null_vtable_entry init.
5763 * decl.c (no_print_{functions, builtins}): Declare as static.
5764 (__tp_desc_type_node): #if 0 var definition.
5765 (init_type_desc): #if 0 init of __tp_desc_type_node.
5766 (vb_off_identifier): Move var decl into init_decl_processing.
5767 (current_function_assigns_this): Declare as static.
5768 (int_ftype_ptr_ptr_int, void_ftype_ptr_int_int): Delete var decls.
5769 (init_decl_processing): Delete init of void_ftype_ptr_ptr_int.
5770 Move decls of string_ftype_ptr_ptr and int_ftype_string_string here.
5771 * decl2.c (delete_sanity): Delete definition/mod of local var ELT_SIZE.
5772 * init.c (BI_header_type, BI_header_size): Declare as static.
5773 * pt.c (template_classes): Delete unused var.
5774 (add_pending_template): Delete decl for non-existent fn.
5775 (lookup_template_class): Delete vars CODE and TAG_CODE.
5776 (instantiate_template): Delete unused var TARGS.
5777 * cp-tree.h (vb_off_identifier, current_function_assigns_this):
5778 Delete decls.
5779 (__tp_desc_type_node): #if 0 var decl.
5780 (fndecl_as_string): Fix prototype.
5781
5782Thu Feb 22 15:56:19 1996 Jason Merrill <jason@yorick.cygnus.com>
5783
5784 * tree.def: Add GOTO_STMT.
5785 * pt.c (tsubst_expr): Support goto and labels.
5786 * decl.c (define_label): Support minimal parsing.
d11ad92e 5787 * parse.y (simple_stmt): Likewise.
5566b478
MS
5788
5789Thu Feb 22 15:30:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5790
5791 * xref.c (GNU_xref_member): Only define/set var I if
5792 XREF_SHORT_MEMBER_NAMES is defined, to match when it's actually
5793 used.
5794 (GNU_xref_end_scope): Delete unused fifth arg TRNS.
5795 (GNU_xref_end): Fix call.
5796 * decl.c (poplevel, poplevel_class, finish_method): Fix calls.
5797 * cp-tree.h (GNU_xref_end_scope): Fix prototype.
5798
5799 * tree.c (build_exception_variant): Delete unused vars I, A, T,
5800 T2, and CNAME.
5801 (layout_vbasetypes): Delete unused var NONVIRTUAL_VAR_SIZE.
5802 (mapcar): Delete unused var CODE.
5803 (build_cplus_new): Delete unused arg WITH_CLEANUP_P.
5804 (break_out_cleanups): Fix call.
5805 (bot_manip): Likewise.
5806 * call.c (build_method_call): Likewise.
5807 * cvt.c (build_up_reference, convert_to_reference, cp_convert):
5808 Likewise.
5809 * typeck.c (unary_complex_lvalue, build_modify_expr,
5810 convert_for_initialization): Likewise.
5811 * typeck2.c (build_functional_cast): Likewise.
5812 * cp-tree.h (build_cplus_new): Fix prototype.
5813
5814 * repo.c (open_repo_file): Delete unused var Q.
5815 (repo_compile_flags, repo_template_declared,
5816 repo_template_defined, repo_class_defined, repo_inline_used,
5817 repo_vtable_used, repo_tinfo_used): #if 0 unused fns.
5818 (repo_get_id, repo_vtable_used): Declare as static.
5819 * cp-tree.h (mark_{decl,class}_instantiated, finish_repo): Add
5820 prototypes.
5821
5822Thu Feb 22 14:53:35 1996 Jason Merrill <jason@yorick.cygnus.com>
5823
5824 * parse.y (pending_inlines): Add function_try_block case.
5825
5826 * pt.c (unify): Fix for template const parms.
5827
5828Thu Feb 22 13:24:15 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5829
5830 * lex.c (extract_interface_info): Delete forward decl.
5831 (default_copy_constructor_body, default_assign_ref_body): Delete
5832 decls for non-existent functions.
5833 (synth_firstobj, inline_text_firstobjs): Delete unused vars.
5834 (init_lex): Delete setting them.
5835 (cons_up_default_function): Delete unused vars FUNC_BUF,
5836 FUNC_LEN, and COMPLEX. Delete code setting COMPLEX. Delete old
5837 #if 0'd synth code.
5838 (toplevel, expression_obstack): Delete unused extern decls.
5839 (tree_node_kind): Delete unused enum.
5840 (tree_node_counts, tree_node_sizes): Wrap with #ifdef
5841 GATHER_STATISTICS.
5842 (tree_node_kind_names): Delete unused extern decl.
5843 (synth_obstack): Delete unused var.
5844 (init_lex): Don't set it.
5845 (init_parse): Add decl before use.
5846 (reduce_count): Only define #ifdef GATHER_STATISTICS && REDUCE_LENGTH.
5847 (current_unit_{name, language}): Delete unused vars.
5848 (check_newline): Don't bother setting them, just accept the #pragma.
5849 * cp-tree.h (init_repo, peek_yylex): Add prototypes.
5850 (current_unit_{name, language}): Delete decls.
5851
5852 * search.c: Wrap all of the memoized functions, macros, and
5853 variables inside #ifdef GATHER_STATISTICS.
5854 (lookup_field, lookup_fnfields): Likewise.
5855 (init_search_processing): Likewise.
5856 (reinit_search_statistics): Wrap whole function.
5857 * lex.c (reinit_lang_specific): Wrap call to reinit_search_statistics.
5858
5859 * decl.c (finish_function): Only call pop_memoized_context if
5860 GATHER_STATISTICS is defined.
5861 (start_function): Likewise for push_memoized_context.
5862 * class.c (pushclass, popclass): Likewise.
5863
5864 * cp-tree.h (CLASSTYPE_MTABLE_ENTRY): Move definition from here...
5865 * search.c (CLASSTYPE_MTABLE_ENTRY): ... to here.
5866
5867 * cvt.c (cp_convert): Delete unused local var FORM.
5868 * cp-tree.h (can_convert, can_convert_arg, real_lvalue_p): Add
5869 prototypes.
5870
5871Thu Feb 22 13:19:44 1996 Jason Merrill <jason@yorick.cygnus.com>
5872
5873 * pt.c (do_poplevel): Oops; really return what we get from
eb66be0e 5874 poplevel this time.
5566b478
MS
5875
5876Thu Feb 22 11:41:44 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5877
5878 * cp-tree.h (is_aggr_type): Add prototype.
5879
5880 * cp-tree.h ({push,pop}_cp_function_context): Add decls.
5881 * method.c ({push,pop}_cp_function_context): Delete decls.
5882 * except.c (start_eh_unwinder, end_eh_unwinder): Declare as void.
5883 (SetUnexpected, SetTerminate): Delete unused vars.
5884 (init_exception_processing): Don't set SetUnexpected or
5885 SetTerminate. Don't set SET_UNEXPECTED_FNDECL or SET_TERMINATE_FNDECL.
5886 (output_exception_table_entry): Delete unused array LABEL.
5887 (expand_internal_throw): Delete unused var PARAMS.
5888 (expand_start_catch_block): Delete unused var CLEANUP.
5889 (emit_exception_table): Delete unused var EH_NODE_DECL.
5890 (expand_builtin_throw): Delete unused vars UNWIND_AND_THROW and
5891 GOTO_UNWIND_AND_THROW. Don't set them.
5892 (end_eh_unwinder): Add top decl.
5893 (pop_rtl_from_perm): Delete unused decl of PERMANENT_OBSTACK.
5894 (exception_section, push_rtl_perm, do_function_call,
5895 lang_interim_eh, push_eh_cleanup, eh_outer_context,
5896 expand_end_eh_spec, end_eh_unwinder): Declare as static.
5897 (saved_pc, saved_throw_type, saved_throw_value, saved_cleanup,
5898 throw_used): Likewise.
5899 * cp-tree.h (expand_end_eh_spec): Delete prototype.
5900
5901 * search.c (dfs_mark, dfs_mark_vtable_path,
5902 dfs_unmark_vtable_path, dfs_mark_new_vtable,
5903 dfs_unmark_new_vtable, dfs_clear_search_slot,
5904 dfs_search_slot_nonempty_p, bfs_markedp, bfs_unmarkedp,
5905 bfs_marked_vtable_pathp, bfs_unmarked_vtable_pathp,
5906 bfs_marked_new_vtablep, bfs_unmarked_new_vtablep): #if 0 unused
5907 functions.
5908 (n_fields_searched, n_calls_lookup_field, n_calls_lookup_field_1,
5909 n_calls_lookup_fnfields, n_calls_lookup_fnfields_1,
5910 n_calls_get_base_type, n_outer_fields_searched, n_contexts_saved):
5911 Only define #ifdef GATHER_STATISTICS.
5912 (reinit_search_statistics): Only init some vars if GATHER_STATISTICS
5913 is defined.
5914 (vbase_decl): Delete var definition.
5915 (init_search): Delete old decl.
5916 (init_vbase_pointers): Delete building of VBASE_DECL, since it's
5917 never actually used.
5918 (expand_indirect_vtbls_init): Delete init of VBASE_DECL.
5919 (get_base_distance_recursive): Delete unused fourth arg
5920 BASETYPE_PATH. Fix call .
5921 (get_base_distance): Fix call.
5922 (push_class_decls): Delete unused var ID.
5923 (make_memoized_table_entry): Declare as static.
5924 (breadth_first_search): Declare as static.
5925 (tree_has_any_destructor_p): Declare as static.
5926 (pop_class_decls): Delete unused arg pop_class_decls.
5927 * class.c (popclass): Fix call to pop_class_decls.
5928 * cp-tree.h (make_memoized_table_entry, breadth_first_search,
5929 tree_has_any_destructor_p): Delete prototypes.
5930
5931 * rtti.c (build_ptmf_desc): Delete unused arg TYPE.
5932 (build_t_desc): Fix call. Delete unused vars ELEMS and TT.
5933 (build_dynamic_cast): Delete unused local vars TMP1 and RETVAL.
5934 (build_user_desc): Delete unused var T.
5935 (build_class_desc): Delete unused vars T and OFF.
5936 (build_t_desc): Delete unused var NAME_STRING.
5937 (build_headof): Make static.
5938 (get_bad_cast_node): Likewise.
5939 (get_def_to_follow): Likewise.
5940 * cp-tree.h (init_type_desc): Add prototype.
5941 (build_headof): Remove prototype.
5942
5943Thu Feb 22 00:54:22 1996 Jason Merrill <jason@yorick.cygnus.com>
5944
5945 * pt.c (tsubst): Only look for matching decls at file scope for
eb66be0e 5946 non-member functions.
5566b478
MS
5947
5948 * call.c (build_scoped_method_call): Handle scoped destructor
eb66be0e 5949 calls in templates.
5566b478
MS
5950
5951 * decl.c (*_top_level): Also save previous_class_values.
5952
5953 * pt.c (tsubst_expr): Support do {} while loops.
d11ad92e
MS
5954 * parse.y (simple_stmt): Likewise.
5955 * tree.def: Likewise.
5566b478
MS
5956
5957 * method.c (build_overload_identifier): For a class nested in a
eb66be0e
MS
5958 template class, don't mangle in the template parms from our
5959 context.
5566b478
MS
5960
5961 * lex.c, cp-tree.h: Remove support for template instantiations in
eb66be0e 5962 the pending_inlines code.
5566b478
MS
5963 * pt.c: Remove dead functions and unused arguments.
5964 (uses_template_parms): TYPENAME_TYPEs always use template parms.
5965 * parse.y: Stop passing anything to end_template_decl.
5966 * tree.c (print_lang_statistics): Only print tinst info #ifdef
eb66be0e 5967 GATHER_STATISTICS.
5566b478
MS
5968
5969Wed Feb 21 16:57:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5970
5971 * init.c (expand_recursive_init{,_1}): Delete decls.
5972 (sort_member_init): Delete unused var INIT.
5973 (emit_base_init): Delete unused var X.
5974 (build_offset_ref): Delete unused var CNAME.
5975 (sort_member_init): Delete unused var FIELDS_TO_UNMARK.
5976 (emit_base_init): Delete unused local var BASE. Delete extern
5977 decl of IN_CHARGE_IDENTIFIER.
5978 (build_delete): Delete unused local var VIRTUAL_SIZE.
5979
5980 * init.c (build_vec_delete): Delete unused third arg ELT_SIZE.
5981 (build_delete): Fix call.
5982 * decl2.c (delete_sanity): Likewise.
5983 * cp-tree.h (build_vec_delete): Update prototype.
5984
5985 * typeck.c (common_base_type): Delete unused var TMP.
5986 (build_binary_op): Delete local var ARGS_SAVE.
5987 (build_array_ref): Delete unused var ITYPE.
5988 (c_expand_return): Delete unused var USE_TEMP.
5989
5990 * typeck.c (compexcepttypes): Delete unused arg STRICT.
5991 (comptypes): Fix calls.
5992 * decl.c (duplicate_decls): Likewise.
5993 * cp-tree.h (compexcepttypes): Delete extra arg.
5994
5995 * decl2.c (check_classfn): Delete unused second arg CNAME.
5996 * decl.c (start_decl, grokfndecl): Fix calls.
5997 * init.c (do_friend): Likewise.
5998 * cp-tree.h (check_classfn): Update prototype.
5999
6000 * cp-tree.h (signature_error, import_export_vtable,
6001 append_signature_fields, id_in_current_class, mark_used,
6002 copy_assignment_arg_p): Add decls.
6003 * decl2.c (mark_used): Delete decl.
6004
6005 * class.c (n_*): Wrap with #ifdef GATHER_STATISTICS.
6006
6007 * class.c (get_vtable_entry): Diable unused function.
6008 (doing_hard_virtuals): Delete unused static global var.
6009 (finish_struct_1): Don't init DOING_HARD_VIRTUALS.
6010 (prepare_fresh_vtable): Delete unused vars PATH and RESULT.
6011 (overrides): Delete unused vars RETTYPE and BASE_RETTYPE.
6012 (modify_one_vtable): Delete unused var OLD_RTTI.
6013 (finish_struct_anon): Delete unused vars OFFSET and X.
6014 (finish_struct_bits): Delete unused var METHOD_VEC.
6015 (get_basefndecls): Delete unused var PURPOSE. Delete unused
6016 for-scope local variable METHODS.
6017
6018 * call.c (user_harshness): Delete unused/unneeded arg PARM.
6019 (ideal_candidate): Delete unused args BASETYPE and PARMS.
6020 (build_method_call): Delete unused args passed into ideal_candidate.
6021 (build_overload_call_real): Likewise. Delete unused var OVERLOAD_NAME.
6022 * cp-tree.h (synthesize_method): Add decl.
6023
6024 * decl.c (note_level_for_for): Give void return type.
6025 (pushdecl_nonclass_level): Likewise.
6026 (finish_function): Delete unused vars VFIELDS and ALLOCATED_THIS.
6027 (poplevel): Delete unused var IMPLICIT_TRY_BLOCK.
6028 (suspend_binding_level): Delete unused var LEVEL.
6029 (duplicate_decls): Delete unused var CTYPE.
6030 (duplicate_decls): Delete unused var PREVIOUS_C_DECL.
6031 (init_decl_processing): Delete unused vars FLOAT_ENDLINK and
6032 PTR_ENDLINK.
6033 (grokdeclarator): Delete unused var C.
6034 (grokdeclarator): Delete unused var SIZE_VARIES.
6035 (grokparms): Delete unused var SAW_VOID.
6036 (start_function): Delete unused var OLDDECL.
6037 (cplus_expand_expr_stmt): Delete unused var
6038 REMOVE_IMPLICIT_IMMEDIATELY.
6039
6040 * cp-tree.h (pushdecl_nonclass_level): Fix prototype.
6041
6042 * Makefile.in (CONFLICTS): Update to 12 shift/reduce.
6043
6044Wed Feb 21 00:06:17 1996 Jason Merrill <jason@yorick.cygnus.com>
6045
6046 * tree.c (build_min): Set TREE_COMPLEXITY to lineno.
d11ad92e 6047 (build_min_nt): Likewise.
5566b478
MS
6048 * pt.c (do_pushlevel): Emit line note.
6049 (do_poplevel): Return what we get from poplevel.
6050 (tsubst_expr): Set lineno from TREE_COMPLEXITY in stmt nodes.
6051 * parse.y: Use do_pushlevel and do_poplevel.
6052 * cp-tree.h: Declare do_poplevel.
6053
6054 * cp-tree.h: Declare at_eof.
6055 * decl.c (cp_finish_decl): Pass it to rest_of_decl_compilation.
6056 * decl2.c (import_export_decl): Renamed from import_export_inline.
6057 (finish_file): Call it to do interface handling for statics.
6058 * pt.c (tsubst_copy): Call mark_used on variables and functions
eb66be0e 6059 used here.
5566b478
MS
6060
6061 * decl2.c (finish_file): Don't emit statics we can't generate.
6062 * pt.c (instantiate_decl): Don't set interface on instantiations
eb66be0e 6063 we can't generate.
5566b478
MS
6064
6065 * cp-tree.h (struct tinst_level): Change 'classname' to 'decl'.
6066 * tree.c (print_lang_statistics): Print max template depth.
6067 * pt.c (push_tinst_level): Dump entire instantiation context.
6068 (instantiate_class_template): Use it and pop_tinst_level.
d11ad92e 6069 (instantiate_decl): Likewise.
5566b478
MS
6070
6071 * call.c class.c cp-tree.h decl.c decl2.c error.c lex.c method.c
eb66be0e 6072 pt.c ptree.c tree.def: Remove all traces of UNINSTANTIATED_P_TYPE.
5566b478
MS
6073
6074Tue Feb 20 18:21:51 1996 Jason Merrill <jason@yorick.cygnus.com>
6075
6076 * call.c class.c cp-tree.h cvt.c decl.c decl2.c error.c expr.c
eb66be0e
MS
6077 init.c lex.c method.c parse.y pt.c repo.c search.c spew.c tree.c
6078 tree.def typeck.c typeck2.c xref.c: Massive, systemic changes for
6079 the new template implementation.
5566b478
MS
6080
6081Tue Feb 20 17:14:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6082
6083 * decl2.c (check_cp_case_value): Use STRIP_TYPE_NOPS.
6084
cffa8729
MS
6085Thu Feb 15 18:44:42 1996 Mike Stump <mrs@cygnus.com>
6086
6087 * decl.c (cp_finish_decl): Delay emitting the debug information for
6088 a typedef that has been installed as the canonical typedef, if the
6089 type has not yet been defined.
6090
6091Thu Feb 15 09:39:08 1996 Jason Merrill <jason@yorick.cygnus.com>
6092
6093 * decl2.c (grokfield): Still call pop_nested_class for access decls.
6094
6095Wed Feb 14 17:30:04 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6096
6097 * decl.c (lookup_label): Call label_rtx.
6098
6099 * decl.c (make_binding_level): New function.
6100 (pushlevel, pushlevel_class): Call it instead of explicit
6101 duplicate calls to xmalloc.
6102
6103 * decl.c (init_decl_processing): Delete useless build_pointer_type
6104 call.
6105
6106 * decl.c (float_ftype_float, ldouble_ftype_ldouble): Add definitions.
6107 (sizet_ftype_string): Delete variable.
6108 (init_decl_processing): Add built-in functions fabsf, fabsl,
6109 sqrtf, sqrtl, sinf, sin, sinl, cosf, cos, cosl. New local
6110 variable strlen_ftype, used for strlen.
6111
6112Wed Feb 14 16:21:25 1996 Jason Merrill <jason@yorick.cygnus.com>
6113
6114 * decl.c (push_to_top_level): Start from current_binding_level
eb66be0e
MS
6115 again for now; the stl hacks depend on g++ being broken in this
6116 way, and it'll be fixed in the template rewrite.
cffa8729
MS
6117
6118 * tree.def: Add USING_DECL.
6119 * decl2.c (do_class_using_decl): Implement.
6120 (grokfield): Pass access decls off to do_class_using_decl instead of
6121 grokdeclarator.
6122 * error.c (dump_decl): Handle USING_DECLs.
6123 * decl.c (grokdeclarator): Remove code for handling access decls.
6124 * class.c (finish_struct_1): Adjust accordingly, treat using-decls
eb66be0e 6125 as access decls for now.
cffa8729
MS
6126 (finish_struct): Don't check USING_DECLs for other uses of the name.
6127
6128 * search.c (get_matching_virtual): Use cp_error_at.
6129
6130Wed Feb 14 10:36:58 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6131
6132 * typeck.c (comptypes): Default COMP_TYPE_ATTRIBUTES to 1, to
6133 match c-typeck.c.
6134 (self_promoting_args_p): Move the check that TYPE is non-nil
6135 before trying to look at its main variant.
6136 (unsigned_type, signed_type): Add checking of DI/SI/HI/QI nodes.
6137
6138 * cp-tree.h (DECL_WAITING_FRIENDS, SET_DECL_WAITING_FRIENDS):
6139 Delete macros.
6140 * init.c (xref_friend, embrace_waiting_friends): Delete functions.
6141 (do_friend): Delete call to xref_friend.
6142 * class.c (finish_struct_1): Delete call to embrace_waiting_friends.
6143
6144 * typeck.c (convert_sequence): #if 0 unused function.
6145
6146 * cp-tree.h (DECL_IN_MEMORY_P): New macro w/ the check that used to
6147 be in decl_in_memory_p.
6148 (decl_in_memory_p): Delete decl.
6149 * expr.c (decl_in_memory_p): Delete fn.
6150 * typeck.c (mark_addressable): Use DECL_IN_MEMORY_P.
6151
6152 * decl.c (cp_finish_decl): Use DECL_IN_MEMORY_P.
6153
6154Tue Feb 13 12:51:21 1996 Jason Merrill <jason@yorick.cygnus.com>
6155
6156 * class.c (finish_struct_1): Check for a pure-specifier on a
eb66be0e 6157 non-virtual function here.
cffa8729
MS
6158
6159 * decl2.c (grok_function_init): Don't check whether the function
eb66be0e 6160 is virtual here.
cffa8729
MS
6161 (grokfield): Don't call check_for_override here.
6162
6163 * decl.c (push_to_top_level): Start from inner_binding_level,
eb66be0e 6164 check class_shadowed in class levels.
cffa8729
MS
6165
6166Mon Feb 12 17:46:59 1996 Mike Stump <mrs@cygnus.com>
6167
6168 * decl.c (resume_level): Ignore things that don't have names, instead
6169 of core dumping.
6170
6171Mon Feb 12 15:47:44 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6172
6173 * decl2.c (grokfield): Set DECL_VINDEX properly for FUNCTION_DECLs.
6174
6175Sat Feb 10 17:59:45 1996 Jason Merrill <jason@yorick.cygnus.com>
6176
6177 * class.c (finish_struct_1): Set DECL_VINDEX properly on a
eb66be0e 6178 synthesized dtor.
cffa8729
MS
6179
6180 * parse.y (complete_type_name): Bind global_scope earlier.
d11ad92e 6181 (complex_type_name): Likewise.
cffa8729
MS
6182 (qualified_type_name): Remove.
6183
2ee887f2
MS
6184Thu Feb 8 15:15:14 1996 Jason Merrill <jason@yorick.cygnus.com>
6185
6186 * decl.c (grokfndecl): Move code that looks for virtuals in base
eb66be0e 6187 classes...
cffa8729 6188 * class.c (check_for_override): ... to a new function.
2ee887f2
MS
6189 (finish_struct_1): Call it.
6190
6191 * cp-tree.h: Declare warn_sign_compare.
6192
6193 * typeck.c (build_binary_op_nodefault): Check warn_sign_compare
eb66be0e
MS
6194 rather than extra_warnings to decide whether to warn about
6195 comparison of signed and unsigned.
2ee887f2
MS
6196
6197 * decl2.c (lang_decode_option): Handle warn_sign_compare. -Wall
eb66be0e 6198 implies -Wsign-compare. -Wall doesn't imply -W.
2ee887f2
MS
6199
6200Wed Feb 7 15:27:57 1996 Mike Stump <mrs@cygnus.com>
6201
6202 * typeck.c (build_component_ref): Fix to handle anon unions in base
6203 classes as well.
6204
6205Wed Feb 7 14:29:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6206
6207 * class.c (resolves_to_fixed_type_p): Delete code dealing with
6208 a WITH_CLEANUP_EXPR, since we don't generate them any more.
6209 * cvt.c (build_up_reference): Likewise.
6210 * decl.c (grok_reference_init): Likewise.
6211 (cp_finish_decl): Likewise.
6212 * error.c (dump_expr): Likewise.
6213 * tree.c (real_lvalue_p): Likewise.
6214 (lvalue_p): Likewise.
6215 (build_cplus_new): Likewise.
6216 (unsave_expr_now): Likewise.
6217 * typeck.c (unary_complex_lvalue, build_modify_expr,
6218 c_expand_return): Likewise.
6219
6220Tue Feb 6 13:39:22 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6221
6222 Make the C++ front-end pay attention to attributes for structures.
6223 * class.c (finish_struct): New argument ATTRIBUTES, passed down into
6224 finish_struct_1.
eb66be0e 6225 (finish_struct_1): New argument ATTRIBUTES; call cplus_decl_attributes.
2ee887f2
MS
6226 Take out old round_up_size use and setting the DECL_ALIGN possibly
6227 using it. Take out setting of TYPE_ALIGN to round_up_size, which
6228 can override what the attribute set.
6229 * cp-tree.h (finish_struct): Update prototype.
6230 * parse.y (template_instantiate_once): Pass a NULL_TREE for the
6231 attributes to finish_struct.
6232 (structsp): For a CLASS decl, add maybe_attribute to rule and pass that
6233 value down into finish_struct.
6234 * Makefile.in (CONFLICTS): Switch to 7 shift/reduce conflicts.
6235
6236Tue Feb 6 13:12:15 1996 Per Bothner <bothner@kalessin.cygnus.com>
6237
6238 * decl.c (poplevel): Re-word dead for local handling.
6239 (pushdecl): Remove useless DECL_DEAD_FOR_LOCAL test.
6240 (cp_finish_decl): If is_for_scope, check for duplicates so
6241 we can disable is_for_scope. Otherwise, preserve_temp_slots.
6242
6243 * lex.c (do_identifier): Use global binding in preference of
6244 dead for local variable.
6245
6246Mon Feb 5 17:46:46 1996 Mike Stump <mrs@cygnus.com>
6247
6248 * init.c (initializing_context): Handle anon union changes, the
6249 context where fields of anon unions can be initialized now has to be
6250 found by walking up the TYPE_CONTEXT chain.
6251
6252Fri Feb 2 14:54:04 1996 Doug Evans <dje@charmed.cygnus.com>
6253
6254 * decl.c (start_decl): #ifdef out code to set DECL_COMMON
6255 if ASM_OUTPUT{,_ALIGNED}_BSS is defined.
6256 (obscure_complex_init): If bss is supported, always set
6257 DECL_INITIAL to error_mark_node.
6258
6259Thu Feb 1 16:19:56 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6260
6261 * init.c (is_friend): Make sure there's a context before we see if
6262 it's an aggr type.
6263
6264Thu Feb 1 15:44:53 1996 Mike Stump <mrs@cygnus.com>
6265
6266 * init.c (is_friend): Classes are not friendly with nested classes.
6267
6268Thu Feb 1 15:27:37 1996 Doug Evans <dje@charmed.cygnus.com>
6269
6270 * lex.c (check_newline): Pass last character read to HANDLE_PRAGMA,
6271 and record its result.
6272
9e9ff709
MS
6273Thu Feb 1 09:27:01 1996 Mike Stump <mrs@cygnus.com>
6274
6275 * class.c (finish_struct_anon): Switch around code to not move anon
6276 union elements around, nor mess up their contexts, nor offsets,
6277 instead we now build up the right number of COMPONENT_REFs for all
6278 the anon unions that may be present at build_component_ref time.
6279 * typeck.c (lookup_anon_field): New routine to handle field lookup
6280 on fields without names. We find them, based upon their unique type
6281 instead.
6282 * typeck.c (build_component_ref): Allow FIELD_DECL components.
6283 Handle finding components in anonymous unions, and ensure that a
6284 COMPONENT_REF is built for each level as necessary.
6285
6286Tue Jan 30 18:18:23 1996 Mike Stump <mrs@cygnus.com>
6287
6288 * cvt.c (build_up_reference): Make the INDIRECT_BIND case come after
6289 code that ensures that copy ctors are used if appropriate.
6290
6291Tue Jan 30 17:35:14 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6292
6293 * init.c (build_vec_delete): Only give an error if base isn't an
6294 error_mark_node.
6295
6296Mon Jan 29 17:09:06 1996 Mike Stump <mrs@cygnus.com>
6297
6298 * spew.c (do_aggr): `new struct S;' isn't a forward declaration.
6299 (yylex): If we see `new', keep slurping.
6300
6301Thu Jan 25 18:31:36 1996 Mike Stump <mrs@cygnus.com>
6302
6303 * class.c (finish_struct_1): Move code for handling anon unions...
6304 (finish_struct_anon): to here. Fixup so that we do the offset
6305 calculations right, and so that the fields are physically moved to
6306 the containers's chain.
6307
6308Thu Jan 25 18:27:37 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6309
6310 * decl.c (grokdeclarator): Avoid trying to get an operand off an
6311 identifier node.
6312
6313Wed Jan 24 11:25:30 1996 Jim Wilson <wilson@chestnut.cygnus.com>
6314
6315 * typeck.c (pointer_int_sum): Use TYPE_PRECISION (sizetype) not
6316 POINTER_SIZE to agree with expr.c.
6317
6318Thu Jan 25 13:01:23 1996 Mike Stump <mrs@cygnus.com>
6319
6320 * search.c (lookup_field): Don't report ambiguities if protect is 0,
6321 instead return NULL_TREE.
6322
6323Wed Jan 24 13:01:26 1996 Mike Stump <mrs@cygnus.com>
6324
6325 * class.c (finish_struct_1): Call warn_hidden if we want warnings
6326 about overloaded virtual functions.
6327 (warn_hidden): New routine to warn of virtual functions that are
6328 hidden by other virtual functions, that are not overridden.
6329 (get_basefndecls): New routine, used by warn_hidden.
6330 (mark_overriders): New routine, used by warn_hidden.
6331 * search.c (get_matching_virtual): Remove old warning that just
6332 isn't very useful.
6333
6334Tue Jan 23 12:26:10 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6335
6336 * decl.c (output_builtin_tdesc_entries): #if 0 the function definition.
6337
6338 * typeck.c (null_ptr_cst_p): Delete unused fn.
6339 (build_function_call_maybe): Delete unused fn.
6340
6341 * expr.c (extract_init): #if 0 the code after unconditional return 0
6342 for now.
6343
6344 Delete old cadillac code.
6345 * edsel.c: Remove file.
6346 * Make-lang.in (CXX_SRCS): Take edsel.c off the list.
6347 * Makefile.in (CXX_OBJS): Delete edsel.o.
6348 (edsel.o): Delete rule.
6349 * cp-tree.h (flag_cadillac): Delete var decl.
6350 * lang-options.h: Delete "-fcadillac" and "-fno-cadillac".
6351 * decl2.c (flag_cadillac): Delete var definition.
6352 (lang_decode_option): Delete handling of -fcadillac and -fno-cadillac.
6353 (grokfield): Delete code depending on flag_cadillac.
6354 (finish_anon_union): Likewise.
6355 * class.c (finish_struct_1): Likewise.
6356 (pushclass): Likewise.
6357 (popclass): Likewise.
6358 (push_lang_context): Likewise.
6359 (pop_lang_context): Likewise.
6360 * decl.c (init_decl_processing): Likewise.
6361 (start_decl): Likewise.
6362 (cp_finish_decl): Likewise.
6363 (xref_tag): Likewise.
6364 (finish_enum): Likewise.
6365 (start_function): Likewise.
6366 (finish_function): Likewise.
6367 (finish_stmt): Likewise.
6368 * lex.c (lang_init): Likewise.
6369 (check_newline): Likewise.
6370
6371 * lex.c (do_pending_inlines): Delete synthesized method kludge.
6372
6373 Delete defunct, ancient garbage collection implementation.
6374 * rtti.c: New file with the RTTI stuff from gc.c.
6375 * gc.c: Removed file (moved the remaining stuff into rtti.c).
6376 * Makefile.in (CXX_OBJS): Replace gc.o with rtti.o.
6377 (rtti.o): New rule, replacing gc.o.
6378 * Make-lang.in (CXX_SRCS): Replace gc.c with rtti.c.
6379 * cp-tree.h: Delete gc-related fn decls.
6380 (DECL_GC_OFFSET): Delete macro.
6381 (flag_gc): Delete extern decl.
6382 * decl.c (current_function_obstack_index): Delete var decl.
6383 (current_function_obstack_usage): Delete var decl.
6384 (start_function): Delete clearing of current_function_obstack_index
6385 and current_function_obstack_usage.
6386 (init_decl_processing): Delete code relying on -fgc.
6387 Delete call to init_gc_processing.
6388 (cp_finish_decl): Delete calls to build_static_gc_entry and
6389 type_needs_gc_entry. Delete gc code setting DECL_GC_OFFSET.
6390 (store_parm_decls): Delete -fgc calls to cp_expand_decl_cleanup
6391 and to expand_expr of a __gc_main call.
6392 (maybe_gc_cleanup): Delete var decl.
6393 (finish_function): Delete call to expand_gc_prologue_and_epilogue.
6394 * decl2.c (flag_gc): Delete var decl.
6395 (lang_f_options): Delete offering of -fgc.
6396 (lang_decode_option): Delete -fgc and -fno-gc handling.
6397 (get_temp_regvar): Delete gc code.
6398 * init.c (build_new): Delete gc code.
6399 * lex.c (init_lex): Delete checking of flag_gc.
6400
6401 * typeck.c (convert_arguments): Delete gc code.
6402 (build_component_addr): Delete -fgc warning.
6403 (build_modify_expr): Delete gc code.
6404
6405 * decl2.c (build_push_scope): Delete fn.
6406 * cp-tree.h (build_push_scope): Delete decl.
6407
6408 * search.c (clear_search_slots): Delete fn.
6409 * cp-tree.h (clear_search_slots): Delete decl.
6410
6411 * search.c (tree_needs_constructor_p): Delete fn.
6412 * cp-tree.h (tree_needs_constructor_p): Delete decl.
6413
6414 * tree.c (id_cmp): Delete fn.
6415
6416 * tree.c (set_fnaddr_from_vtable_entry): Delete fn.
6417 * cp-tree.h (set_fnaddr_from_vtable_entry): Delete decl.
6418
6419 * tree.c (decl_value_member): Delete fn.
6420 * cp-tree.h (decl_value_member): Delete decl.
6421
6422 * tree.c (list_hash_lookup_or_cons): Delete fn.
6423 * cp-tree.h (list_hash_lookup_or_cons): Delete decl.
6424
6425 * method.c (cplus_exception_name): Delete fn.
6426 (EXCEPTION_NAME_{PREFIX, LENGTH}): Delete macros.
6427
6428 * spew.c (shift_tokens): Delete fn.
6429
6430Mon Jan 22 17:49:33 1996 Jason Merrill <jason@yorick.cygnus.com>
6431
6432 * except.c (init_exception_processing): Pass 1 to needs_pop in calls
6433 to cp_finish_decl.
d11ad92e 6434 * parse.y: Likewise.
9e9ff709
MS
6435
6436Mon Jan 22 17:34:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6437
6438 * tree.c (build_cplus_staticfn_type): Delete function definition;
6439 never used.
6440 * cp-tree.h (build_cplus_staticfn_type): Delete decl.
6441
6442 * tree.c (virtual_member): Delete function definition; never used.
6443 * cp-tree.h (virtual_member): Delete decl.
6444
45537677
MS
6445Fri Jan 19 18:03:14 1996 Mike Stump <mrs@cygnus.com>
6446
6447 * typeck.c (build_component_ref): Handle getting vbase pointers
6448 out of complex multiple inheritance better.
6449
6450Fri Jan 19 16:27:40 1996 Mike Stump <mrs@cygnus.com>
6451
6452 * typeck.c (build_object_ref): Make sure we use the real type, not
6453 any reference type.
6454
6455Fri Jan 19 16:01:47 1996 Mike Stump <mrs@cygnus.com>
6456
6457 * tree.c (build_exception_variant): Don't create new types if we
6458 don't have to, also build new types on the right obstack.
6459
6460Fri Jan 19 14:09:44 1996 Jason Merrill <jason@yorick.cygnus.com>
6461
6462 * decl.c (store_bindings): Split out from push_to_top_level.
9e9ff709
MS
6463 (push_to_top_level): Call it for b->type_shadowed on class binding
6464 levels.
45537677
MS
6465
6466Fri Jan 19 13:53:14 1996 Mike Stump <mrs@cygnus.com>
6467
6468 * search.c (expand_upcast_fixups): Fix so that offsets stored in
6469 vbase_offsets are always right. Fixes a problem where virtual base
6470 upcasting and downcasting could be wrong during conversions on this
6471 during virtual function dispatch at ctor/dtor time when dynamic
6472 vtable fixups for deltas are needed. This only sounds easier than
6473 it is. :-)
6474 (fixup_virtual_upcast_offsets): Change to reflect new calling
6475 convention for expand_upcast_fixups.
6476
6477Fri Jan 19 12:23:08 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6478
6479 * decl2.c (grokbitfield): Strip the NOPs from WIDTH before we
6480 check that it's usable as the bitfield width.
6481
6482Wed Jan 17 21:22:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6483
6484 * decl2.c (grokfield): Call cplus_decl_attributes with the attrlist.
6485 Pass a null tree to grokdeclarator for its ATTRLIST arg, since it's
6486 only ever used for functions in it.
6487
6488Wed Jan 17 12:10:38 1996 Jason Merrill <jason@yorick.cygnus.com>
6489
6490 * parse.y (qualified_type_name): Use the TYPE_DECL, not the type.
d11ad92e 6491 (nested_type): Likewise.
45537677
MS
6492 (nested_name_specifier): Use lastiddecl.
6493
6494 * decl.c (grokdeclarator): Adjust accordingly.
d11ad92e
MS
6495 * init.c (expand_member_init): Likewise.
6496 * parse.y (base_class): Likewise.
6497 * typeck2.c (build_functional_cast): Likewise.
45537677
MS
6498
6499 * typeck2.c (build_functional_cast): Fill in name after we've
6500 checked for non-aggr type.
6501
be99da77
MS
6502Wed Jan 17 10:18:01 1996 Mike Stump <mrs@cygnus.com>
6503
6504 * decl2.c (warn_pointer_arith): Default to on.
6505
6506Tue Jan 16 12:45:38 1996 Jason Merrill <jason@yorick.cygnus.com>
6507
6508 * lex.c (is_rid): New function.
6509 * decl.c (grokdeclarator): Diagnose reserved words used as
6510 declarator-ids.
6511
6512Tue Jan 16 11:39:40 1996 Jason Merrill <jason@yorick.cygnus.com>
6513
6514 * tree.c (get_decl_list): Don't lose cv-quals.
6515
6516 * decl.c (grokdeclarator): Fix SCOPE_REF handling and diagnose
6517 typespecs used as declarator-ids.
6518
6519Tue Jan 16 11:09:42 1996 Mike Stump <mrs@cygnus.com>
6520
6521 * decl.c (poplevel): When poping a level, don't give a warning for
6522 any subblocks that already exist.
6523
6524Tue Jan 16 00:25:33 1996 Jason Merrill <jason@yorick.cygnus.com>
6525
6526 * typeck.c (build_object_ref): Finish what I started.
6527
6528 * parse.y (qualified_type_name): Don't check TYPE_BUILT_IN.
6529
6530 * decl2.c (constructor_name_full): Handle TEMPLATE_TYPE_PARMs.
6531
6532 * decl.c (grokdeclarator): Also accept TEMPLATE_TYPE_PARM as a
9e9ff709 6533 scope.
be99da77
MS
6534
6535Mon Jan 15 16:19:32 1996 Jason Merrill <jason@yorick.cygnus.com>
6536
6537 * decl.c (xref_tag): Handle passing a type in directly.
6538
6539 * parse.y (qualified_type_name): Pull out the type.
d11ad92e 6540 (nested_type): Likewise.
be99da77
MS
6541 Take types directly instead of as identifiers.
6542 * call.c (build_scoped_method_call): Take types directly instead of
9e9ff709 6543 as identifiers.
d11ad92e
MS
6544 * decl.c (xref_basetypes): Likewise.
6545 * init.c (expand_member_init): Likewise.
6546 (build_member_call): Likewise.
6547 (build_offset_ref): Likewise.
6548 * typeck2.c (build_scoped_ref): Likewise, remove bogus code.
6549 * method.c (do_build_assign_ref): Likewise.
be99da77
MS
6550 * decl.c (grokdeclarator): Handle a type appearing as the
6551 declarator-id for constructors.
6552 * method.c (do_build_copy_constructor): current_base_init_list now
6553 uses the types directly, not their names.
d11ad92e
MS
6554 * init.c (sort_base_init): Likewise.
6555 (expand_member_init): Likewise.
be99da77 6556 * init.c (is_aggr_type): New function, like is_aggr_typedef.
be99da77 6557
d11ad92e 6558Mon Jan 15 08:45:01 1996 Jeffrey A Law <law@cygnus.com>
be99da77
MS
6559
6560 * tree.c (layout_basetypes): Call build_lang_field_decl instead
6561 of build_lang_decl if first arg is a FIELD_DECL.
be99da77
MS
6562
6563Thu Jan 11 14:55:07 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6564
6565 * decl.c (cp_finish_decl): Only clear TREE_USED if DECL_NAME is
6566 non-empty.
6567 * except.c (expand_start_catch_block): Set TREE_USED to avoid
6568 warnings about the catch handler.
6569
6570Mon Jan 8 17:35:12 1996 Jason Merrill <jason@yorick.cygnus.com>
6571
6572 * typeck.c (build_modify_expr): Use a COMPOUND_EXPR instead of
9e9ff709 6573 expand_target_expr.
be99da77
MS
6574
6575Thu Jan 4 12:30:32 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6576
6577 Fix access control to use trees rather than integers.
6578 * class.c (access_{default, public, protected, private,
6579 default_virtual, public_virtual, private_virtual}_node): Add
6580 definitions.
6581 (init_class_processing): Do creation of those nodes.
6582 * cp-tree.h (access_type): Delete enum decl.
6583 (access_{default, public, protected, private, default_virtual,
6584 public_virtual, private_virtual}_node): Add decls.
6585 (compute_access): Change return type.
6586 * search.c (compute_access): Have tree return type, instead of enum.
6587 (lookup_field): Declare THIS_V and NEW_V to be tree nodes.
6588 * lex.c (real_yylex): Use yylval.ttype for giving the value of the
6589 access_* node for each of RID_{PUBLIC, PRIVATE, PROTECTED}.
6590 * parse.y (VISSPEC): Make ttype rather than itype.
6591 (base_class_access_list): Likewise.
6592 * *.[cy]: Change all refs of `access_public' to `access_public_node',
6593 etc.
6594 * call.c (build_method_call): Make ACCESS be a tree.
6595 * class.c (alter_access, finish_struct_1, filter_struct): Likewise.
6596 * cvt.c (convert_to_aggr): Likewise.
6597 * init.c (build_offset_ref, resolve_offset_ref, build_delete):
6598 Likewise.
6599 * method.c (hack_identifier): Likewise.
6600 * typeck.c (build_component_ref_1, build_component_ref): ): Likewise.
6601
6602Thu Jan 4 11:02:20 1996 Mike Stump <mrs@cygnus.com>
6603
6604 * typeck.c (pointer_int_sum, pointer_diff): Make code agree with C
6605 frontend, and make it more consistent with respect to
6606 warn_pointer_arith.
6607
6608Tue Jan 2 00:13:38 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
6609
6610 * decl.c (pushdecl): Check for duplicate parameter names.
6611
6612Wed Jan 3 09:25:48 1996 Mike Stump <mrs@cygnus.com>
6613
6614 * decl.c (expand_static_init): Call assemble_external for atexit.
6615
6616Wed Jan 3 07:55:19 1996 Mike Stump <mrs@cygnus.com>
6617
6618 * except.c (do_unwind): Remove some generated dead code.
6619 (eh_outer_context): New routine, factor out some common code from
6620 expand_builtin_throw and end_eh_unwinder. Add code to do return
6621 address masking for the PA.
6622 (expand_builtin_throw): Use eh_outer_context instead of open coding
6623 it here.
d11ad92e 6624 (end_eh_unwinder): Likewise.
be99da77
MS
6625
6626Tue Jan 2 17:00:56 1996 Mike Stump <mrs@cygnus.com>
6627
6628 * except.c (expand_throw): Call assemble_external for __empty, if we
6629 use it.
6630
21451173
MS
6631Thu Dec 28 11:13:15 1995 Mike Stump <mrs@cygnus.com>
6632
6633 * except.c (expand_builtin_throw): Use RETURN_ADDR_OFFSET instead of
6634 NORMAL_RETURN_ADDR_OFFSET.
d11ad92e 6635 (end_eh_unwinder): Likewise.
21451173
MS
6636
6637Wed Dec 27 22:18:16 1995 Mike Stump <mrs@cygnus.com>
6638
6639 * gc.c (build_dynamic_cast): Make sure we don't cast away const
6640 when dealing with references, and make sure we handle dynamic
6641 casting to a cv qualified reference.
6642
6643Thu Dec 21 23:50:35 1995 Mike Stump <mrs@cygnus.com>
6644
6645 * except.c (struct eh_context): New structure top hold eh context
6646 information.
6647 (push_eh_context): New routine.
d11ad92e 6648 (pop_eh_context): Likewise.
21451173 6649 * decl.c (push_cp_function_context): Use them.
d11ad92e 6650 (pop_cp_function_context): Likewise.
21451173
MS
6651
6652Wed Dec 20 12:42:51 1995 Jason Merrill <jason@yorick.cygnus.com>
6653
6654 * decl2.c (finish_file): Also prune uninteresting functions in the
6655 inline emission loop.
6656
d11ad92e 6657Wed Dec 20 02:32:07 1995 Jeffrey A Law <law@cygnus.com>
21451173
MS
6658
6659 * sig.c (build_signature_table_constructor): Mark functions
6660 in the signature as referenced.
6661
6662Tue Dec 19 22:36:56 1995 Jason Merrill <jason@yorick.cygnus.com>
6663
6664 * decl2.c (finish_file): Do all the vtable/synthesis stuff before
6665 the inline emission stuff.
6666
72b7eeff
MS
6667Mon Dec 18 15:51:33 1995 Jason Merrill <jason@yorick.cygnus.com>
6668
6669 * cp-tree.h, decl2.c (flag_weak): New flag to control the use of
9e9ff709 6670 weak symbols.
72b7eeff
MS
6671 * lang-options.h: Add -f{no-,}weak.
6672 * decl.c (init_decl_processing): If the target does not support weak
6673 symbols, don't use them.
6674 * decl2.c, pt.c: s/SUPPORTS_WEAK/flag_weak/.
6675
6676Sun Dec 17 21:13:23 1995 Rusty Russell <rusty@adelaide.maptek.com.au>
6677
6678 * init.c (expand_member_init): warning for base init after members.
6679
72b7eeff
MS
6680Fri Dec 15 15:32:18 1995 Jason Merrill <jason@yorick.cygnus.com>
6681
6682 * cvt.c (build_expr_type_conversion): Don't convert to a reference
6683 type.
6684
6685Thu Dec 14 16:05:58 1995 Mike Stump <mrs@cygnus.com>
6686
6687 * method.c (report_type_mismatch): Improve wording for volatile
6688 mismatches.
6689
6690Thu Dec 14 14:16:26 1995 Mike Stump <mrs@cygnus.com>
6691
6692 * init.c (expand_aggr_init_1): Use expand_aggr_init_1 instead of
9e9ff709 6693 expand_assignment, as the later doesn't handle things that have
72b7eeff
MS
6694 copy constructors well. The compiler would do bitwise copying,
6695 instead of ctor calling in some cases.
6696
6697Wed Dec 13 17:05:54 PST 1995 Paul Eggert <eggert@twinsun.com>
6698
6699 * g++.c (my_strerror): Return "cannot access" if errno is 0.
6700 (pfatal_with_name, perror_exec): Don't assume that
6701 the returned value from my_strerror contains no '%'s.
6702 (concat): Remove.
6703 (sys_nerror): Declare only if HAVE_STRERROR is not defined.
6704
6705Wed Dec 13 16:22:38 1995 Jason Merrill <jason@yorick.cygnus.com>
6706
6707 Lose CLASSTYPE_METHODS/DECL_NEXT_METHOD chain; make
6708 TYPE_METHODS/TREE_CHAIN mean what they used to.
6709 * decl2.c (constructor_name_full): Refer to CLASSTYPE_METHOD_VEC
6710 instead of TYPE_METHODS.
6711 * decl.c (duplicate_decls): Lose references to DECL_NEXT_METHOD.
d11ad92e 6712 * tree.c (tree_copy_lang_decl_for_deferred_output): Likewise.
72b7eeff
MS
6713 * cp-tree.h (CLASSTYPE_METHODS): Lose.
6714 (CLASSTYPE_METHOD_VEC): Point to lang_spec->methods instead of
6715 TYPE_METHODS.
6716 (struct lang_decl): Lose next_method field.
6717 (DECL_NEXT_METHOD): Lose.
6718 * class.c (finish_struct_methods): Don't mess with TYPE_METHODS.
6719 (finish_struct): Just use TYPE_METHODS; we don't need fn_fields
6720 anymore.
6721 (finish_struct_methods): Don't mess with the TREE_CHAINs in
6722 fn_fields.
6723
6724 * search.c (add_conversions): Don't use TREE_CHAIN to traverse method
6725 vector.
6726
6727 * call.c (build_method_call): Synthesize here even when not inlining.
d11ad92e 6728 * typeck.c (build_function_call_real): Likewise.
72b7eeff
MS
6729
6730Wed Dec 13 15:02:39 1995 Ian Lance Taylor <ian@cygnus.com>
6731
6732 * cp/lex.c (check_newline): If DBX_DEBUGGING_INFO and write_symbols
6733 == DBX_DEBUG, call dbxout_start_new_source_file and
6734 dbxout_resume_previous_source_file when appropriate.
6735
6736Tue Dec 12 20:38:55 1995 Mike Stump <mrs@cygnus.com>
6737
6738 * except.c (start_anon_func): Push to the top level.
6739 (end_anon_func): Pop from the top level.
6740
6741Mon Dec 11 18:56:14 1995 Mike Stump <mrs@cygnus.com>
6742
6743 * cp-tree.h (build_cleanup): New routine to build cleanups.
6744 * decl.c (expand_static_init): Use build_cleanup to build a cleanup
6745 call at ctor time and use atexit to run it later.
6746 * decl2.c (build_cleanup): New routine, taken from finish_file.
6747 (finish_file): Use build_cleanup instead, and don't put function
6748 local statics in global dtor list.
6749
6750Wed Dec 6 14:34:29 1995 Mike Stump <mrs@cygnus.com>
6751
6752 * except.c (expand_throw): Ensure that we have cleanups, if we try
6753 and expand cleanups.
6754
6755Wed Dec 6 11:48:21 1995 Mike Stump <mrs@cygnus.com>
6756
6757 * except.c (expand_throw): Add logic to manage dynamic cleanups for
6758 the EH object.
6759 (expand_end_catch_block): Use the magic of expand_goto, instead of
6760 emit_jump so that we get the cleanup for any catch clause parameter
6761 and the cleanup for the exception object. Update to reflect label
6762 changes.
6763 (push_eh_cleanup): New routine to register a cleanup for an
6764 exception object.
9e9ff709 6765 (empty_fndecl): Used to default cleanup actions to
72b7eeff
MS
6766 nothing.
6767 (init_exception_processing): Setup empty_fndecl. Setup
6768 saved_cleanup.
6769 (expand_start_catch_block): Update to reflect label changes. Call
6770 push_eh_object to register the cleanup for the EH object.
6771 (start_anon_func): New routine to start building lambda expressions
6772 from trees.
6773 (end_anon_func): New routine to end them.
6774 (struct labelNode): Change so that we can use tree labels, or rtx
6775 labels.
6776 (saved_cleanup): Object to check for dynamic cleanups for the
6777 exception handling object.
6778 (push_label_entry): Change so that we can use tree labels, or rtx
6779 labels.
d11ad92e
MS
6780 (pop_label_entry): Likewise.
6781 (top_label_entry): Likewise.
72b7eeff
MS
6782 (expand_start_all_catch): Use tree label instead of rtx label, so
6783 that we can get the magic of expand_goto.
6784 (expand_end_all_catch): Update to reflect label changes.
6785
6786 * class.c (build_vfn_ref): Remove building_cleanup logic, as we now
6787 use UNSAVE_EXPRs.
6788 typeck.c (get_member_function_from_ptrfunc): Remove remnants of
6789 building_cleanup logic, as we now use UNSAVE_EXPRs.
6790 * cp-tree.h (unsave_expr): Declare it.
6791 * decl.c (building_cleanup): Remove.
6792 (maybe_build_cleanup): Remove building_cleanup logic, and use
6793 UNSAVE_EXPR instead.
6794
6795Sun Dec 3 01:34:58 1995 Mike Stump <mrs@cygnus.com>
6796
6797 * gc.c (build_t_desc): Update error message to say <typeinfo>.
6798
6799Thu Nov 30 12:30:05 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
6800
6801 * decl.c (pushdecl): Only warn about shadowing a local variable if
6802 warn_shadow is true.
6803
6804Sun Nov 26 16:06:55 1995 Rusty Russell <rusty@adelaide.maptek.com.au>
6805
6806 * typeck.c (build_binary_op_nodefault): Added warning about
6807 comparisons between different enum types with -Wall, unless
6808 -fenum-int-equiv set.
6809
6810Wed Nov 22 15:44:02 1995 Mike Stump <mrs@cygnus.com>
6811
6812 * class.c (finish_struct_1): Skip down to the inner type in
6813 multidimensional arrays. Ensures ctors will be made for types that
6814 need constructing.
6815
6816Wed Nov 22 14:19:22 1995 Mike Stump <mrs@cygnus.com>
6817
6818 * decl.c (last_dtor_insn): New to track the last compiler generated
6819 insn in a dtor.
6820 (store_parm_decls): Set it.
6821 (finish_function): Use it to see if the dtor is empty. Avoid doing
6822 vtable setup all the time, if we can.
6823 (struct cp_function): Add last_dtor_insn.
6824 (push_cp_function_context): Save it.
6825 (pop_cp_function_context): Restore it.
6826
6827Wed Nov 22 11:52:19 1995 Paul Russell <Rusty.Russell@adelaide.maptek.com.au>
6828
6829 * typeck.c (build_unary_op): Set TREE_NO_UNUSED_WARNING to avoid
9e9ff709 6830 warnings.
72b7eeff
MS
6831
6832Tue Nov 21 17:15:23 1995 Mike Stump <mrs@cygnus.com>
6833
6834 * typeck.c (expand_target_expr): Make sure targets get put into the
6835 current temp_slot_level, so that the free_temp_slots call will reuse
6836 them.
6837
6838Tue Nov 21 13:32:03 1995 Mike Stump <mrs@cygnus.com>
6839
6840 * class.c (finish_struct_1): Delay delta fixups for virtual bases
6841 until after we have done the hard virtuals, to avoid a bogus `every
6842 virtual function must have a unique final overrider' for virtual
6843 functions that are only overridden by hard virtuals.
6844
6845Thu Nov 9 13:35:30 1995 Jason Merrill <jason@yorick.cygnus.com>
6846
6847 * pt.c (do_function_instantiation): Don't try to find a file-scope
9e9ff709 6848 template for a member function.
72b7eeff
MS
6849
6850Tue Nov 14 06:20:35 1995 Mike Stump <mrs@cygnus.com>
6851
6852 * g++.c (main): Add handling of -nodefaultlibs.
6853
6854Mon Nov 13 15:45:34 1995 Mike Stump <mrs@cygnus.com>
6855
6856 * cp-tree.h (INDIRECT_BIND): Add a way for the frontend to
6857 distinguish between direct bindings of reference variables, and
6858 indirect bindings of reference variables.
6859 * cvt.c (build_up_reference): Use it.
6860 * typeck.c (convert_arguments): Use it to indicate this is an
6861 indirect binding.
6862 * decl.c (cp_finish_decl): Ensure that we reuse stack slots as fast
6863 as they are unused.
d11ad92e
MS
6864 (expand_static_init): Likewise.
6865 (cplus_expand_expr_stmt): Likewise.
6866 * decl2.c (finish_file): Likewise.
6867 * init.c (perform_member_init): Likewise.
6868 (emit_base_init): Likewise.
6869 (expand_aggr_vbase_init_1): Likewise.
72b7eeff 6870
72b7eeff
MS
6871Fri Nov 10 09:18:09 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
6872
6873 * decl.c (push_namespace): Rewrite to use build_lang_decl, so we
6874 get a DECL_LANG_SPECIFIC node.
6875 * cp-tree.h (lang_decl_flags): Add new member `level'.
6876 (NAMESPACE_LEVEL): Don't use decl.arguments, instead use the
6877 decl_flags level member.
6878
6879Mon Nov 6 18:36:13 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
6880
6881 * call.c (build_method_call): Make sure instance has a
6882 TYPE_LANG_SPECIFIC node before we dive into it.
6883
d11ad92e 6884Sat Nov 4 20:01:52 1995 Jason Molenda <crash@phydeaux.cygnus.com>
72b7eeff
MS
6885
6886 * method.c (make_thunk): use TREE_SET_CODE to set thunk's tree code.
6887
6888Thu Nov 2 17:56:57 1995 Mike Stump <mrs@cygnus.com>
6889
6890 * decl.c (duplicate_decls): When smashing decls, smash staticness in
6891 the usual way.
6892
6893Thu Nov 2 16:44:02 1995 Mike Stump <mrs@cygnus.com>
6894
6895 * decl.c (poplevel): Handle the merging of subblocks of cleanups
6896 when finishing blocks that have already been created (usually due to
6897 the fixup goto code). Fixes bad debugging information.
6898
6899Wed Nov 1 12:33:53 1995 Jason Merrill <jason@yorick.cygnus.com>
6900
6901 * method.c (hack_identifier): Don't abort when we get a TREE_LIST
6902 that's not a list of overloaded functions.
6903
6904Wed Nov 1 11:38:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
6905
6906 * decl2.c (mark_vtable_entries): Check DECL_LANG_SPECIFIC on fn
6907 before trying to use DECL_ABSTRACT_VIRTUAL_P.
6908
6909Tue Oct 31 11:56:55 1995 Jason Merrill <jason@yorick.cygnus.com>
6910
6911 * decl2.c (mark_used): New function for hooking into setting of
6912 TREE_USED on decls.
6913 * call.c (build_method_call): Use it.
d11ad92e
MS
6914 * class.c (instantiate_type): Likewise.
6915 * init.c (build_offset_ref): Likewise. Don't call assemble_external
72b7eeff 6916 for all like-named functions.
d11ad92e 6917 * method.c (hack_identifier): Likewise.
72b7eeff
MS
6918 (emit_thunk): Don't call assemble_external.
6919 (make_thunk): Create thunk as a FUNCTION_DECL so that it
6920 gets the right mode and ENCODE_SECTION_INFO works.
6921
6922 * parse.y: Use mark_used. Pass operator names to do_identifier.
6923 * lex.c (do_identifier): Handle operator names.
6924
6925 * decl2.c (grokclassfn): Tweak __in_chrg attributes.
6926
72b7eeff
MS
6927Thu Oct 26 16:45:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
6928
6929 * errfn.c: Include stdio.h.
6930 (cp_sprintf): Take out decl of sprintf, and cast sprintf to errorfn*.
6931
6932Wed Oct 25 18:58:41 1995 Mike Stump <mrs@cygnus.com>
6933
6934 * typeck2.c (digest_init): Always convert initializers to the
6935 right type.
6936
6937Wed Oct 25 13:25:24 1995 Mike Stump <mrs@cygnus.com>
6938
6939 * init.c (member_init_ok_or_else): Don't allow member initializers
6940 for indirect members, as it is invalid.
6941
6942Wed Oct 25 11:35:28 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
6943
6944 * decl.c (grokdeclarator): Don't allow `friend signed ()'.
6945
6946Fri Oct 20 10:30:59 1995 Mike Stump <mrs@cygnus.com>
6947
6948 * parse.y (for.init.statement): Catch compound statements inside for
6949 initializations, if we're being pedantic.
6950
6951Fri Oct 20 10:03:42 1995 Mike Stump <mrs@cygnus.com>
6952
6953 * decl.c (lookup_tag): Return NULL_TREE if we don't find what we are
6954 looking for.
6955
6956Thu Oct 19 14:26:10 1995 Mike Stump <mrs@cygnus.com>
6957
6958 * error.c (dump_expr): Don't core dump when a boolean expression is
6959 used as a default argument.
6960
6961Thu Oct 19 10:36:30 1995 Jason Merrill <jason@yorick.cygnus.com>
6962
6963 * class.c (finish_struct_bits): Check aggregate_value_p instead of
9e9ff709 6964 RETURN_IN_MEMORY.
72b7eeff
MS
6965
6966Wed Oct 18 18:12:32 1995 Jason Merrill <jason@yorick.cygnus.com>
6967
6968 * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE on a
6969 BLKmode type that would otherwise be returned in registers.
6970
6971Mon Oct 16 12:32:19 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
6972
6973 * g++.c (WITHLIBC): New macro.
6974 (main): Declare saw_libc. Use WITHLIBC if `-lc' was used; set
6975 saw_libc and pass it at the end if it was set.
6976
6977Wed Oct 11 16:30:34 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
6978
6979 * parse.y (fn.def1): Call split_specs_attrs in
6980 declmods notype_declarator case.
7b8dd497
JL
6981\f
6982Use a consistent time stamp format in ChangeLog entries.
6983Not everyone has Emacs 20 yet, so stick with Emacs 19 format for now.
6984
6985Local Variables:
6986add-log-time-format: current-time-string
6987End:
This page took 0.977228 seconds and 5 git commands to generate.