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