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