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