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