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