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