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