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