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