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