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