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