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