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