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