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