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