]> gcc.gnu.org Git - gcc.git/blame - gcc/cp/ChangeLog
except.c (do_unwind): Delete dead function.
[gcc.git] / gcc / cp / ChangeLog
CommitLineData
430bb96b
JL
1Sun Mar 29 00:47:32 1998 Jeffrey A Law (law@cygnus.com)
2
942632ac
JL
3 * except.c (do_unwind): Delete dead function.
4 (easy_expand_asm): Likewise.
5
228fab4a
JL
6 * cvt.c (build_conversion_type_1): Delete dead function.
7
00c493f2
JL
8 * cp-tree.h (push_expression_obstack): Declare.
9
3a87a9f5
JL
10 * call.c (source_type): #if 0 out.
11
430bb96b
JL
12 * class.c (alter_access): Remove unused label. Add braces
13 around empty else clause.
14
15 * lex.c (yyprint): Fix argument to printf.
16
b4c4a9ec
MM
17Sat Mar 28 17:43:52 1998 Mark Mitchell <mmitchell@usa.net>
18
19 * pt.c (tsubst): Clear TREE_USED for new FUNCTION_DECLs.
20
21 * pt.c (instantiate_class_template): Make sure template
22 arguments are permanent.
23 * init.c (resolve_offset_ref): Don't go looking around in
24 template types.
25
26 * semantics.c: Add routines to handle expressions, and some
27 declaration processing.
28 * parse.y: Use them.
29 (current_class_depth): Move declaration to cp-tree.h.
30 * parse.c: Regenerated.
31 * cp-tree.h: Use them.
32 (current_class_depth): Declare.
33 * pt.c (tsubst_copy): Use begin_stmt_expr and finish_stmt_expr.
34
a9936d39
MM
35Fri Mar 27 20:23:18 1998 Mark Mitchell <mmitchell@usa.net>
36
37 * error.c (dump_decl): Be a bit more explicit with template
38 type arguments, when verbose.
39
fae4153b
JM
40Fri Mar 27 18:16:40 1998 Jason Merrill <jason@yorick.cygnus.com>
41
42 * inc/exception: Reorder closing braces.
43
7fe6899f
MM
44Fri Mar 27 13:22:18 1998 Mark Mitchell <mmitchell@usa.net>
45
46 * pt.c (redeclare_class_template): New function.
47 * cp_tree.h (redeclare_class_template): Declare it.
48 * decl.c (xref_tag): Use it.
49
18922a6b
JM
50Thu Mar 26 11:16:30 1998 Jason Merrill <jason@yorick.cygnus.com>
51
b3e4ff59
JM
52 * call.c (build_over_call): Check IS_AGGR_TYPE, not
53 TYPE_LANG_SPECIFIC.
54 * typeck.c (convert_arguments): Likewise.
55
18922a6b
JM
56 * decl.c (grokdeclarator): Remove const and volatile from type after
57 setting constp and volatilep.
58
59 * class.c (finish_struct_1): Don't warn about bool bitfield larger
60 than one bit.
61
49bf0d6f
MM
62Thu Mar 26 10:25:52 1998 Mark Mitchell <mmitchell@usa.net>
63
64 * pt.c (convert_nontype_argument): STRIP_NOPS where appropriate.
65
734e8cc5
MM
66Thu Mar 26 10:24:05 1998 Mark Mitchell <mmitchell@usa.net>
67
68 * call.c (build_object_call): Complain about ambiguous operator(),
69 rather that crashing.
70 (build_new_op): Likewise.
71 (build_op_delete_call): Likewise.
72
17b75c91
MM
73Thu Mar 26 10:23:24 1998 Mark Mitchell <mmitchell@usa.net>
74
75 * cvt.c (perform_qualification_conversions): Use comp_target_types
76 instead of comp_ptr_ttypes.
77
38afd588
MM
78Wed Mar 25 16:10:50 1998 Mark Mitchell <mmitchell@usa.net>
79
80 * cp-tree.h (enforce_access): Declare.
81 * call.c (enforce_access): Make it extern, not static.
82 * class.c (alter_access): Use enforce_access; modify code for ISO
83 compliance, rather than ARM rules.
84
e4959d7c
KL
85Wed Mar 25 12:10:45 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu>
86
87 * cp-tree.h: Fix typo.
88
97e7cbe4
JM
89Wed Mar 25 02:01:02 1998 Jason Merrill <jason@yorick.cygnus.com>
90
6b4e8391
JM
91 * expr.c (cplus_expand_expr): Only do PCC_STATIC_STRUCT_RETURN thing
92 if (aggregate_value_p (type)).
93
97e7cbe4
JM
94 * decl2.c (constructor_name_full): Handle TYPENAME_TYPE.
95
d2298965
MM
96Tue Mar 24 16:12:01 1998 Mark Mitchell <mmitchell@usa.net>
97
98 * tree.c (mapcar): When dealing with a DECL, use it's constant
99 value, if any.
100 * pt.c (lookup_template_class): Don't mangle the names of template
101 classes whose arguments are unknown.
102
103 * pt.c (tsubst_expr): Handle GOTO_STMT correctly.
104
bc6ecde7
BK
105Tue Mar 24 12:21:55 1998 Benjamin Kosnik <bkoz@lisa.cygnus.com>
106
107 * decl.c (init_decl_processing): Set TYPE_PRECISON for bools to 1.
108
109Tue Mar 24 12:21:48 1998 Jim Wilson <wilson@cygnus.com>
110
111 * decl.c (init_decl_processing): Initialize TYPE_MAX_VALUE for
112 boolean_type_node to 1.
113
050367a3
MM
114Tue Mar 24 10:23:47 1998 Mark Mitchell <mmitchell@usa.net>
115
116 * error.c (dump_expr): Remove unused variable `l'.
117
118 * pt.c (for_each_template_parm): New function, created by
119 converting uses_template_parms.
120 (tree_fn_t): New typedef.
121 (uses_template_parms): Use it.
122 (mark_template_parm): New function.
123 (push_template_decl): Check that the argument list of a partial
124 specialization uses all the template parameters.
125
126 * Make-lang.in (c++filt): Don't delete cxxmain.c after we're done
127 with it; we might want it for debugging.
128 * cp-tree.h (type_unification): Change interface.
129 * class.c (finish_struct_1): Skip nested template types, just like
130 ordinary nested types.
131 (instantiate_type): Use new interface to type_unification.
132 * lex.c (init_lex): Add __sz as opname for sizeof.
133 * method.c (build_overload_scope_ref): New function.
134 (build_overload_int): Handle complex expressions. Set
135 numeric_output_need_bar if necessary.
136 (build_overload_value): Handle non-PARM_DECL nodes; this
137 routine is now used by build_overload_int. Remove some
138 assignments to numeric_output_need_bar. Use
139 build_overload_scope_ref.
140 (build_qualified_name): Note that some template mangled names end
141 with digits, and set numeric_output_need_bar appropriately. Use
142 build_underscore_int.
143 * pt.c (unify): Change interface.
144 (type_unification_real): Likewise.
145 (determine_specialization): Use new interfaces.
146 (tsubst): Deal gracefully with situations in which the argument
147 vector is not fully filled.
148 (fn_type_unification): Use new interfaces.
149 (type_unification): Likewise. Remove NOP_EXPR hack.
150 (type_unification_real): Likewise.
151 (unify): Likewise. Deal with unification of complex expresions.
152
b3709d9b
JM
153Mon Mar 23 12:24:37 1998 Jason Merrill <jason@yorick.cygnus.com>
154
9c65eeca
JM
155 * pt.c (complete_template_args): Initialize skip properly.
156
b3709d9b
JM
157 * decl.c (make_typename_type): Revert.
158 (make_implicit_typename): Remove.
159 (lookup_name_real): Don't call it. Call lookup_field if we see a
160 TYPE_DECL from a template base.
161 * search.c (lookup_field): Do implicit typename stuff.
162
a73cab0f
NC
163Sun Mar 22 00:50:42 1998 Nick Clifton <nickc@cygnus.com>
164 Geoff Noer <noer@cygnus.com>
165
166 * Makefile.in: Various fixes for building cygwin32 native toolchains.
167 * Make-lang.in: Likewise.
168
362badb0
KL
169Fri Mar 20 18:07:39 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu>
170
171 * pt.c (tsubst, TEMPLATE_TEMPLATE_PARM): Simplify.
172
e6f1275f
JM
173Fri Mar 20 10:42:07 1998 Jason Merrill <jason@yorick.cygnus.com>
174
1107c4b3
JM
175 * decl.c (make_implicit_typename): Rewrite removed code.
176 (make_typename_type): Call it if the type we look up comes from
177 a base that uses template parms.
178
e6f1275f
JM
179 * pt.c (complete_template_args): Rewrite.
180 (tsubst, FUNCTION_DECL): Use it.
181
182Fri Mar 20 08:12:43 1998 H.J. Lu (hjl@gnu.org)
183
184 * semantics.c (finish_asm_stmt): Fix combine strings. Call
185 c_expand_asm_operands () if output_operands, input_operands or
186 clobbers is not NULL_TREE.
187
188Fri Mar 20 00:10:19 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu>
189
190 * pt.c (complete_template_args): New function.
191 (get_bindings): Deal with specializations of function templates
192 with return type containing parameters from outer class
193 templates.
194 (tsubst, TEMPLATE_TEMPLATE_PARM): When reducing parameter level,
195 substitute arguments and compose a new type.
196
ff369548
MM
197Thu Mar 19 19:01:48 1998 Mark Mitchell <mmitchell@usa.net>
198
199 * pt.c (tsubst): Clear DECL_PENDING_INLINE_INFO for new
200 FUNCTION_DECLs.
201
76b9a14d
JM
202Thu Mar 19 11:51:58 1998 Jason Merrill <jason@yorick.cygnus.com>
203
9d703598
JM
204 * decl.c (make_implicit_typename): Lose useless code.
205
4d50dd69
JM
206 * call.c (standard_conversion): Handle A* -> const A* properly.
207
76b9a14d
JM
208 * pt.c (get_bindings_real): Rename from get_bindings. Add
209 check_rettype parm.
210 (get_bindings): Pass 1.
211 (get_bindings_overload): Pass 0.
212
366c0f1e
MM
213Wed Mar 19 09:08:12 1998 Mark Mitchell <mmitchell@usa.net>
214
215 * pt.c (check_explicit_specialization): When reverting a static
216 member function, also remove the `this' parameter from
217 last_function_parms.
218
78957a2a
JM
219Thu Mar 19 02:27:48 1998 Jason Merrill <jason@yorick.cygnus.com>
220
0978790f
JM
221 * pt.c (tsubst_copy, CONST_DECL): Don't bother tsubsting
222 a function context.
223
78957a2a
JM
224 * decl.c (store_bindings): Use free_binding_vecs.
225 (pop_from_top_level): Likewise.
226
74ef3b26
JM
227Wed Mar 18 12:41:43 1998 Jason Merrill <jason@yorick.cygnus.com>
228
229 * decl.c (make_implicit_typename): Only change the type of a
230 TYPENAME_TYPE.
231
ad321293
MM
232Wed Mar 18 10:09:51 1998 Mark Mitchell <mmitchell@usa.net>
233
234 * semantics.c: New file, containing routines to perform the
235 semantic phase of parsing.
236 * parse.y: Use it.
237 * pt.c (tsubst_expr): Likewise.
238 * cp-tree.h: Declare the various functions in semantics.c.
239 Provide macros to access _STMT tree nodes.
240 * cp-tree.def: Add ASM_STMT tree node.
241 * Makefile.in, Make-lang.in: Add dependencies on and for
242 semantics.c.
243
ef76081a
JM
244Wed Mar 18 00:24:10 1998 Jason Merrill <jason@yorick.cygnus.com>
245
83566abf
JM
246 * pt.c (push_template_decl): Only check primary templates.
247
670960ac
JM
248 * pt.c (check_explicit_specialization): Complain about default args
249 in explicit specialization.
250
ef76081a
JM
251 * parse.y (nomods_initdcl0): Also call cp_finish_decl for a
252 constructor_declarator.
253
297dcfb3
MM
254Tue Mar 17 14:44:54 1998 Mark Mitchell <mmitchell@usa.net>
255
256 * typeck2.c (build_x_arrow): Don't crash when an aggregate type
257 has no overloaded operator ->.
258
259 * call.c (build_field_call): Don't crash when presented with a
260 field that is actually a nested type.
261
262 * decl.c (pushtag): Deal with friend class injection in local
263 classes.
264
265 * call.c (build_object_call): Don't crash if OBJ is a
266 pointer-to-member-function.
267
c7dfe584
JM
268Tue Mar 17 11:40:26 1998 Jason Merrill <jason@yorick.cygnus.com>
269
270 * pt.c (push_template_decl): Complain about template with C linkage,
271 anonymous template class.
272
22531e51
JM
273Mon Mar 16 12:10:39 1998 Jason Merrill <jason@yorick.cygnus.com>
274
275 * class.c (pushclass): Only use the mi_matrix stuff #ifdef MI_MATRIX.
276 * search.c: Likewise.
277
278 * lex.c (do_pending_defargs): Only call
279 maybe_{begin,end}_member_template_processing for FUNCTION_DECLs.
280
281 * parse.y (initdcl0_innards): Move maybeasm back into initdcl0 et al.
282
8b1616ad
MM
283Mon Mar 16 10:47:22 1998 Mark Mitchell <mmitchell@usa.net>
284
285 * parse.y: Deal with CONSTRUCTORS in new_initializers.
286
544c188d
MM
287Mon Mar 16 10:54:21 1998 Mark Mitchell <mmitchell@usa.net>
288
289 * pt.c (tsubst_copy): Deal with BIND_EXPR in a way that more
290 closely mimics the behavior in parse.y.
291 (tsubst_expr): Return the resuting BLOCK when making a tsubst'ing
292 into a compound statement.
293
cae40af6
JM
294Sun Mar 15 02:07:26 1998 Jason Merrill <jason@yorick.cygnus.com>
295
296 * cp-tree.h (TEMPLATE_PARMS_FOR_INLINE): New macro.
297 * pt.c (inline_needs_template_parms): New fn.
298 (original_template): New fn.
299 (push_inline_template_parms_recursive): New fn.
300 (maybe_begin_member_template_processing): Use them.
301 (maybe_end_member_template_processing): Likewise.
302 (is_member_or_friend_template): Rename to is_member_template.
303 Member functions of local classes are never member templates.
304
305Sun Mar 15 01:14:22 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu>
306
307 * lex.c (do_identifier): Handle TEMPLATE_DECL that was
308 added in the class scope to catch redefinition error.
309
310 * pt.c (reduce_template_parm_level): Also copy
311 the DECL_TEMPLATE_PARMS field.
312
debf0b88
MM
313Sun Mar 15 10:54:08 1998 Mark Mitchell <mmitchell@usa.net>
314
315 * pt.c (tsubst): Clear TYPE_REFERENCE_TO when creating a
316 reduced-level template type parameter.
317
4099c493
MH
318Sun Mar 15 12:26:02 1998 Manfred Hollstein <manfred@s-direktnet.de>
319
320 * cp-tree.h (struct lang_decl_flags): Add needs_final_overrider.
321 (DECL_NEEDS_FINAL_OVERRIDER_P): New macro.
322 * class.c (override_one_vtable): Set DECL_NEEDS_FINAL_OVERRIDER_P.
323 * decl.c (duplicate_decls): Propagate it.
324 * typeck2.c (abstract_virtuals_error): Use two loops to emit
325 abstract virtual functions and virtual functions which need a
326 final overrider separately.
327
9c318306
MH
328Thu Mar 12 09:39:40 1998 Manfred Hollstein <manfred@s-direktnet.de>
329
cae40af6
JM
330 * lang-specs.h: Properly put brackets around array elements in
331 initializer.
9c318306
MH
332
333 * typeck.c (build_binary_op_nodefault): Correctly place parens around
334 && and || in expression.
335
56c5d8bf
MH
336Thu Mar 12 09:26:04 1998 Manfred Hollstein <manfred@s-direktnet.de>
337
338 * call.c (default_parm_conversions): Remove prototype definition.
339 (build_method_call): Remove unused variable result.
340
341 * cvt.c (ocp_convert): Remove unused variable conversion.
342
343 * decl2.c (ambiguous_decl): Add explicit parameter definition for name.
344
345 * except.c (do_unwind): #if 0 definition of unused variables fcall
346 and next_pc.
347
cae40af6
JM
348 * expr.c (extract_scalar_init): #if 0 prototype and function
349 definition.
56c5d8bf
MH
350
351 * init.c (expand_aggr_init_1): Remove unused variable init_type.
352 (build_new_1): Remove unused variable t.
353
354 * pt.c (instantiate_class_template): Remove unused variable newtag;
355 cast called function return value to void.
356 (do_decl_instantiation): Remove unused variables name and fn.
357
358 * tree.c (get_type_decl): Add default return to shut up compiler from
359 complaining control reaches end of non-void function.
360
361 * typeck.c (build_x_conditional_expr): Remove unused variable rval.
362
93a46d8d
MH
363Thu Mar 12 09:12:15 1998 Manfred Hollstein <manfred@s-direktnet.de>
364
365 * call.c (default_parm_conversions): Remove prototype definition.
366 (build_method_call): Remove unused variable result.
367 (build_over_call): Add default case in enumeration switch.
368
85066503
MH
369Thu Mar 12 08:39:13 1998 Manfred Hollstein <manfred@s-direktnet.de>
370
371 * decl2.c (lang_decode_option): Change j's type to size_t.
372
373 * tree.c (layout_vbasetypes): record_align and desired_align are of
374 type unsigned int; const_size and nonvirtual_const_size likewise.
375
070d3be3
MM
376Wed Mar 11 07:25:20 1998 Mark Mitchell <mmitchell@usa.net>
377
378 * parse.y (new_initializer): Make sure all initializers are
379 lists.
380
af9c2d8a
MM
381Tue Mar 10 07:32:36 1998 Mark Mitchell <mmitchell@usa.net>
382
383 * decl2.c (import_export_decl): Mark tinfo functions for
384 cv-qualified versions of class types as DECL_NOT_REALLY_EXTERN.
385
e817b5e3
JL
386Fri Mar 6 23:27:35 1998 Jeffrey A Law (law@cygnus.com)
387
388 * method.c: Fix typo.
389
3e81fe04
KG
390Fri Mar 6 10:06:59 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
391
392 * method.c: Include "system.h" to get stdlib.h, stdio.h,
393 ctype.h, string.h, etc.
394 (issue_nrepeats): Add default case in enumeration switch.
395 (check_btype): Likewise.
396 (process_overload_item): Likewise.
397
398 * Makefile.in (method.o): Depend on system.h.
399
d574824c
AS
400Wed Mar 4 22:26:53 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
401
402 * lex.c (do_scoped_id): Fix parenthesizing.
403
5427d758
MT
404Wed Mar 4 12:11:53 1998 Michael Tiemann <tiemann@axon.cygnus.com>
405
406 * rtti.c (get_tinfo_fn_dynamic): If this function is called an
407 FLAG_RTTI is unset, initialize type info machinery and continue
408 with FLAG_RTTI enabled.
409 (get_typeid): Ditto.
410
8f279ed7
JM
411Wed Mar 4 11:47:55 1998 Jason Merrill <jason@yorick.cygnus.com>
412
413 * typeck.c (unary_complex_lvalue): &D::i has type B::* if i comes
414 from B.
415
a1da6cba
MM
416Wed Mar 4 11:28:08 1998 Mark Mitchell <mmitchell@usa.net>
417
418 * pt.c (finish_member_template_decl): Deal more gracefully with
419 invalid declarations.
420
3b3ba9f0
JM
421Tue Mar 3 01:38:17 1998 Jason Merrill <jason@yorick.cygnus.com>
422
8f279ed7
JM
423 * cvt.c, decl.c, decl2.c, init.c, rtti.c, typeck.c, typeck2.c,
424 cp-tree.h: Clean up more old overloading code, old RTTI code, and
425 some formatting quirks.
426
277294d7
JM
427 * call.c, class.c, cp-tree.h, cvt.c, decl.c, init.c, lex.c,
428 method.c, pt.c, ptree.c, typeck.c: Remove support for
429 -fno-ansi-overloading and overloading METHOD_CALL_EXPR.
430 * class.h: Remove.
431 * Makefile.in: Adjust.
432
49432171
JM
433 * pt.c (unify): Don't allow reduced cv-quals when strict.
434
3b3ba9f0
JM
435 * call.c, class.c, pt.c, cp-tree.h: Remove nsubsts parm from
436 *type_unification* and unify.
437
2604412d
JM
438Mon Mar 2 12:11:06 1998 Jason Merrill <jason@yorick.cygnus.com>
439
440 * parse.y (explicit_template_type): Remove TEMPLATE keyword.
441 (nested_name_specifier): And add it before this use.
442 (typename_sub0): And this use. Also add use without the keyword.
443 (typename_sub1): Likewise.
444 * pt.c (instantiate_class_template): Don't actually instantiate
445 anything if our type uses template parms.
446
948edfa7
JW
447Mon Mar 2 11:04:59 1998 Jim Wilson <wilson@cygnus.com>
448
449 * decl.c (start_function): Don't call temporary_allocation for a
450 nested function.
451
574817a2
JM
452Sun Mar 1 21:06:37 1998 Jason Merrill <jason@yorick.cygnus.com>
453
454 * pt.c (instantiate_class_template): Don't mess with friends if
455 our type uses template parms.
456
b2b7d40a
JM
457Sat Feb 28 12:06:44 1998 Jason Merrill <jason@yorick.cygnus.com>
458
11686454
JM
459 * parse.y (nested_name_specifier): Use explicit_template_type.
460 (typename_sub): Allow a template_type, an explicit_template_type,
461 or an implicit template type at the end.
462 * lex.c (yyprint): Handle a PTYPENAME being a TEMPLATE_DECL.
463 * decl.c (make_typename_type): Handle template-id where the name
464 is a TEMPLATE_DECL.
465 * call.c (build_scoped_method_call): Handle member template
466 destructor call.
467 * pt.c (tsubst_copy, METHOD_CALL_EXPR): Don't assume a member
468 destructor is represented by the type.
469
b2b7d40a
JM
470 * cp-tree.h (TYPENAME_TYPE_FULLNAME): New macro.
471 * parse.y (nested_name_specifier): Add 'template' case.
472 (explicit_template_type): New rule.
473 (typename_sub): Use it.
474 * decl.c (make_typename_type): Handle getting a template-id for NAME.
475 * pt.c (tsubst): Likewise.
476
8d019cef
JM
477Fri Feb 27 11:17:50 1998 Jason Merrill <jason@yorick.cygnus.com>
478
db897306
JM
479 * pt.c (add_to_template_args): Fix thinko.
480 (instantiate_class_template): Call it later.
481
8d019cef
JM
482 * pt.c (get_class_bindings): Add outer_args parm.
483 (most_specialized_class): Likewise.
484 (instantiate_class_template): Pass it.
485 (more_specialized_class): Likewise.
486 (lookup_template_class): Get context from template if none
487 was specified.
488 (finish_member_template_decl): Don't do anything with a
489 partial specialization.
490 * decl2.c (check_member_template): Use IS_AGGR_TYPE instead of
491 AGGREGATE_TYPE_P.
492 * class.c (finish_struct): Member class templates have already been
493 checked for name clashes.
494 * decl.c (pushdecl_with_scope): Handle pushing at class level.
495
93cdc044
JM
496Fri Feb 27 02:25:16 1998 Jason Merrill <jason@yorick.cygnus.com>
497
498 * pt.c (tsubst, TEMPLATE_DECL): Support member class templates.
499 (tsubst, *_PARM): Support multiple levels of template classes.
500 (instantiate_class_template): Look up the pattern from the
501 original template.
502 (lookup_template_class): Handle getting a template for d1.
503 (push_template_decl): Correct setting of 'primary'.
504 (reduce_template_parm_level): Add 'levels' parm.
505 (finish_member_template_decl): Support member class templates.
506 (template_class_depth): Handle multiple levels.
507 * parse.y (component_decl_1, fn.def2): Remove member template case.
508 (component_decl): Add member template cases.
509 * decl2.c (check_member_template): We now handle member template
510 classes.
511 * decl.c (pushtag): Handle member templates.
512 * method.c (do_inline_function_hair): Don't touch
513 IDENTIFIER_GLOBAL_VALUE.
514 * init.c (build_offset_ref): If name isn't an identifier, just
515 return it.
516 * spew.c (yylex): Handle PTYPENAME like TYPENAME.
517
518 * typeck.c (get_delta_difference): Do adjust for conversions to
519 and from virtual base.
520
32e02ee0
JM
521Wed Feb 25 09:51:29 1998 Jason Merrill <jason@yorick.cygnus.com>
522
523 * typeck.c (get_delta_difference): Give hard error for conversion
524 from virtual base.
525
526 * cp-tree.h: Tweak formatting.
527
30394414
JM
528Wed Feb 25 00:35:33 1998 Jason Merrill <jason@yorick.cygnus.com>
529
530 * decl.c (push_namespace): Handle redeclaration error.
531
532 * cp-tree.h (IDENTIFIER_NAMESPACE_VALUE): New macro.
533 (IDENTIFIER_NAMESPACE_BINDINGS): New macro.
534 (NAMESPACE_BINDING): New macro.
535 (IDENTIFIER_GLOBAL_VALUE): Use NAMESPACE_BINDING.
536 * *.c: Use them.
537
538 * pt.c (push_template_decl): Use innermost_args.
539
540 * decl.c (get_unique_name): Tweak from earlier in the name.
541
542Tue Feb 24 22:15:04 1998 Martin von Loewis <loewis@informatik.hu-berlin.de>
543
544 * cp-tree.def: Add CPLUS_BINDING node.
545 * cp-tree.h (tree_binding): new struct
546 (BINDING_SCOPE, BINDING_VALUE): new macros
547 (current_namespace, global_namespace): declare extern
548 (struct lang_decl_flags): new field in_namespace
549 (DECL_NAMESPACE_USING, DECL_NAMESPACE_USERS): new macros
550 (DECL_NAMESPACE, SET_DECL_NAMESPACE): new macros
551 (TREE_INDIRECT_USING): new macro
552 * decl2.c (current_namespace, global_namespace): Declare. The
553 value is a NAMESPACE_DECL now, not a TREE_LIST.
554 (is_namespace_ancestor, namespace_ancestor):new static functions.
555 (add_using_namespace, ambiguous_decl): likewise.
556 (lookup_using_namespace): new support function for lookup_name.
557 (qualified_lookup_using_namespace): new support function for
558 do_scoped_id and lookup_namespace_name
559 (get_namespace_id): mark as obsolete.
560 (current_namespace_id): Likewise.
561 (do_namespace_alias): Implement.
562 (do_using_directive): Implement as call to add_using_namespace.
563 * decl.c (binding_for_name): new function.
564 (push_namespace, pop_namespace): implement.
565 (push_decl): don't install a FUNCTION_DECL in the global branch.
566 (lookup_namespace_name): implement using qualified lookup.
567 (lookup_name_real): For global scoping, lookup in
568 global_namespace. For namespace scoping, lookup in given
569 namespace. For unscoped lookup, iterate over namespace,
570 considering using directives.
571 (init_decl_processing): initialize global_namespace.
572 (grokvardecl): Build assembler name as static name for globals.
573 (grokdeclarator): Remove old namespace mangling.
574 (xref_tag): When installing a global binding for the
575 tag, make sure we have an identifier.
576 * method.c (build_overload_nested_name): mangle namespaces.
577 (build_qualified_name): Likewise.
578 (build_decl_overload_real): Likewise.
579 * lex.c (build_lang_decl): set namespace for new declaration to
580 current_namespace.
581 (do_scoped_id): find global names in global or current
582 namespace, or using qualified namespace lookup, depending on
583 context.
584 * init.c (build_member_call): When scope is namespace, use
585 build_x_function_call instead.
586 (build_offset_ref): When scope is namespace, collapse processing
587 to lookup_namespace_name instead.
588 * error.c (dump_decl): Support NAMESPACE_DECL.
589 * decl.c (pushdecl): Bind globals to current namespace.
590 (push_overloaded_decl): Likewise.
591 (lookup_tag): Likewise.
592 (lookup_name_current_level): Likewise.
593 (xref_tag): Likewise.
594 (start_function): Likewise.
595 * lex.c (do_identifier): Likewise.
596 (identifier_typedecl_value): Likewise.
597 (real_yylex): Likewise.
598 * method.c (do_inline_function_hair): Likewise.
599 * parse.y (unscoped): Likewise.
600 * pt.c (check_explicit_specialization): Likewise.
601 (lookup_template_class): Likewise.
602 * rtti.c (call_void_fn): Likewise.
603 * sig.c (build_sigtable): Likewise.
604 * ptree.c (lang_print_xnode): New function.
605
8adf5b5e
JM
606Tue Feb 24 01:40:24 1998 Jason Merrill <jason@yorick.cygnus.com>
607
608 * pt.c (instantiate_class_template): Don't instantiate if pedantic
609 and the args use template parms.
610
611 * pt.c (push_tinst_level): If the instantiaton uses template parms,
612 fail silently.
613 * decl.c (xref_basetypes): Do call complete_type for basetypes
614 that involve template parameters.
615
6c3e25eb
JM
616Tue Feb 24 00:36:43 1998 Jason Merrill <jason@yorick.cygnus.com>
617
618 * typeck2.c (process_init_constructor): Fix labeled init check.
619
f7d98d58
JM
620Mon Feb 23 05:08:55 1998 Jason Merrill <jason@yorick.cygnus.com>
621
622 * pt.c, call.c, decl.c, method.c, cp-tree.h: Remove unused NARGS
623 argument to tsubst and friends.
f84b4be9 624
a221d52f
JM
625 * pt.c (tsubst, FUNCTION_DECL): Tidy.
626
f84b4be9
JM
627 * typeck.c (build_x_function_call): Handle static member function
628 templates like non-templates. Handle friend templates like normal
629 function templates.
630 * pt.c (tsubst, *_PARM): Don't use orig_level.
631 (get_bindings): Don't call add_to_template_args.
632 (instantiate_template): Likewise.
633 (tsubst, FUNCTION_DECL): Call add_to_template_args as appropriate.
634 * ptree.c (print_lang_type): Print index/level for template parms.
635
636Mon Feb 23 02:52:29 1998 Mark Mitchell <mmitchell@usa.net>
637
638 * Make-lang.in (cc1plus): Note that cc1plus depends on
639 cp/cp-tree.h and cp/cp-tree.def.
640
641 * cp-tree.def (TEMPLATE_CONST_PARM): Remove.
642 (TEMPLATE_PARM_INDEX): New tree code, used to indicate a
643 position in a template parameter list.
644 * cp-tree.h (template_parm_index): New structure, used as the tree
645 structure for a TEMPLATE_PARM_INDEX.
646 (TEMPLATE_PARM_IDX): New macro.
647 (TEMPLATE_PARM_LEVEL): Likewise.
648 (TEMPLATE_PARM_DESCENDANTS): Likewise.
649 (TEMPLATE_PARM_ORIG_LEVEL): Likewise.
650 (TEMPLATE_PARM_DECL): Likewise.
651 (TEMPLATE_TYPE_PARM_INDEX): Likewise.
652 (TEMPLATE_TYPE_ORIG_LEVEL): Likewise.
653 (TEMPLATE_TYPE_DECL): Likewise.
654 (TEMPLATE_CONST_IDX): Remove.
655 (TEMPLATE_CONST_LEVEL): Likewise.
656 (TEMPLATE_CONST_SET_INFO): Likewise.
657 (TEMPLATE_TYPE_SET_INFO): Likewise.
658 (TEMPLATE_TYPE_IDX): Redefine in terms of TEMPLATE_PARM_INDEX
659 node.
660 (TEMPLATE_TYPE_LEVEL): Likewise.
661 * decl.c (decls_match): Call comp_template_parms, rather than
662 expanding it inline.
663 (duplicate_decls): If two template declarations are being merged,
664 then their TEMPLATE_INFOs should be merged as well.
665 (grokfndecl): Save template-id information when declaring a friend
666 with explicit template arguments. Pass arguments to
667 check_explicit_specialization via correct convention; at some
668 point check_explicit_specialization changed, but these call-sites
669 did not.
670 (grokdeclarator): Tidy up slightly.
671 * decl2.c (check_classfn): Tidy up slightly. Don't assume that
672 two template functions with the same DECL_ASSEMBLER_NAME the same,
673 since the names are not yet mangled.
674 * error.c (dump_decl): Use TEMPLATE_PARM_INDEX instead of
675 TEMPLATE_CONST_PARM.
676 (dump_expr): Likewise. Use the TEMPLATE_PARM_DECL to get at the
677 decl for a non-type parameter, rather than printing `<tparm ...>'.
678 * friend.c (is_friend): Handle TEMPLATE_DECL friends.
679 (do_friend): Deal with template friends.
680 * lex.c (do_pending_inlines): Call
681 maybe_begin_member_template_processing, rather than
682 conditionally calling begin_member_template_processing.
683 (process_next_inline): Likewise. Call
684 maybe_end_member_template_processing, rather than
685 conditionally calling end_member_template_processing.
686 (do_pending_defargs): Likewise.
687 (do_identifier): Use TEMPLATE_PARM_INDEX instead of
688 TEMPLATE_CONST_PARM.
689 * method.c (build_mangled_template_parm_index): New function.
690 (build_overload_value): Use it.
691 (build_overload_name): Likewise.
692 * pt.c (finish_member_template_decl): Allow friend declarations.
693 (template_class_depth): New function.
694 (is_member_template): Rename, and modify, to become...
695 (is_member_or_friend_template): New function.
696 (end_member_template_processing): Rename, and modify, to become...
697 (maybe_end_member_template_processing).
698 (build_template_parm_index): New function.
699 (reduce_template_parm_level): New function.
700 (process_template_parm): Modify to use build_template_parm_index.
f84b4be9
JM
701 (push_template_decl): Deal with friend templates.
702 (uses_template_parms): Use TEMPLATE_PARM_INDEX instead of
703 TEMPLATE_CONST_PARM.
704 (tsubst_friend_function): New function.
705 (instantiate_class_template): Generate the DECL_FRIENDLIST
706 for a new instantiation by using tsubst_friend_function rather
707 than just tsubst.
708 (tsubst): Don't tsubst into a type which is a TEMPLATE_DECL.
709 Use TEMPLATE_PARM_INDEX instead of TEMPLATE_CONST_PARM, and the
710 appropriate new macros. Use reduce_template_parm_level to
711 generate lower-level template parameters. Handle tsubst'ing into
712 TEMPLATE_DECLS that declare TEMPLATE_TEMPLATE_PARMS. Don't forget
713 to tsubst the DECL_CONTEXT and DECL_CLASS_CONTEXT of newly created
714 templates. Similarly for the template parameters for a new
715 template.
716 (tsubst_copy): Tidy up slightly. Use TEMPLATE_PARM_INDEX instead
717 of TEMPLATE_CONST_PARM. Handle TYPE_DECLs by tsubsting into them.
718 (unify): Use TEMPLATE_PARM_INDEX instead of TEMPLATE_CONST_PARM.
719 (get_bindings): Call add_to_template_args if necessary.
720 (instantiate_decl): Handle instantiations of friend templates.
721 * search.c (lookup_field_1): Don't treat the TYPE_FIELDS of a
722 TEMPLATE_TYPE_PARM as a list of fields; it's not!
723 * spew.c (yylex): Do a little manual constant propogation to
724 clarify the code.
725
e30416cf
JL
726Sun Feb 22 19:53:29 1998 Jeffrey A Law (law@cygnus.com)
727
728 * error.c: Include sys/types.h.
729
2fc11007
JL
730Thu Feb 19 14:49:09 1998 Jeffrey A Law (law@cygnus.com)
731
732 * method.c (build_mangled_name): Start CPP directives in column zero.
733
c8fcb331
JM
734Thu Feb 19 10:36:48 1998 Jason Merrill <jason@yorick.cygnus.com>
735
736 * typeck2.c (process_init_constructor): Sorry about non-trivial
737 labeled initializers.
738 * parse.y (initlist): Reenable labeled initializers.
739
de575009
KL
740Thu Feb 19 10:15:55 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu>
741
742 * pt.c (coerce_template_parms) Add a new parameter, is_tmpl_parm,
743 all callers changed. Rely on the new parameter instead of arg
744 being a TREE_LIST when determine whether we are working inside
745 template template parameter. Clean up is_type test.
746
31bcaa20
JM
747Thu Feb 19 10:04:12 1998 Jason Merrill <jason@yorick.cygnus.com>
748
749 * cvt.c (cp_convert_to_pointer): Preserve TREE_CONSTANT.
750 * typeck2.c (initializer_constant_valid_p): Allow conversions
751 between pointers and refrerences.
752
e62d5b58
BK
7531998-02-19 Brendan Kehoe <brendan@cygnus.com>
754
755 * typeck.c (build_unary_op): Only warn about incr/decr a pointer
756 if pedantic || warn_pointer_arith.
757
027905b4
KL
758Thu Feb 19 09:37:21 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu>
759
760 * pt.c (unify): Handle TEMPLATE_DECL.
761
3dc888ad
BK
7621998-02-18 Brendan Kehoe <brendan@cygnus.com>
763
764 * cp-tree.h (strip_attrs): Remove decl.
765
d9525bec
BK
7661998-02-18 Doug Evans <devans@cygnus.com>
767
768 * decl.c (duplicate_decls): Call merge_machine_decl_attributes.
769 Update olddecl's attributes too.
770 (strip_attrs): Remove function.
771 * typeck.c (common_type): Call merge_machine_type_attributes.
772
153305b0
MM
773Tue Feb 17 14:07:52 1998 Mark Mitchell <mmitchell@usa.net>
774
775 * parse.y (initdcl0_innards): New grammar symbol.
776 (nomods_initdecls, nomods_initdcl0): Change type from itype to
777 none, since the resulting value is never used.
778 (parse_decl): New function.
779 (datadef): Remove redundant actions.
780 (initdcl0, notype_initdcl0, nomods_initdcl0): Use initdcl0_innards.
781 * parse.c: Regenerated.
782
beb31faa
JM
783Tue Feb 17 11:54:16 1998 Jason Merrill <jason@yorick.cygnus.com>
784
785 * parse.y (simple_stmt): Use getdecls() to check for decl.
786
5b477224
MH
787Sat Feb 14 11:50:51 1998 Manfred Hollstein <manfred@s-direktnet.de>
788
789 * Make-lang.in (DEMANGLER_INSTALL_NAME, DEMANGLER_CROSS_NAME): New
790 macros.
791 (c++.install-common): Install c++filt properly as native or as cross
792 variant.
793 (c++.uninstall): Add c++filt.
794
798eed5e 795Fri Feb 13 14:55:37 1998 Jason Merrill <jason@yorick.cygnus.com>
6bc7be5f 796
798eed5e 797 * call.c (standard_conversion): Fix multi-level ptr conversions.
6bc7be5f 798
80170791
MS
799Fri Feb 13 14:06:22 1998 Mike Stump <mrs@wrs.com>
800
801 * init.c (build_new): Propagate error_mark_node up.
802
440a6c2a
JM
803Fri Feb 13 13:24:32 1998 Jason Merrill <jason@yorick.cygnus.com>
804
805 * parse.y (simple_stmt): If the condition isn't a declaration,
806 start the controlled block after the test.
807
387c47a3
AS
808Fri Feb 13 02:26:10 1998 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
809
810 * call.c (build_over_call): Convert builtin abs, labs and fabs to
811 tree-codes.
812 * decl.c (init_decl_processing): Reenable abs, labs and fabs as
813 builtins.
814
2dbfb418
JM
815Fri Feb 13 01:36:42 1998 Jason Merrill <jason@yorick.cygnus.com>
816
817 * call.c (standard_conversion): A BASE_CONV replaces an RVALUE_CONV.
818
d8b55a76
JM
819Fri Feb 13 00:21:59 1998 Jason Merrill <jason@yorick.cygnus.com>
820
821 * cp-tree.h: Add access_protected_virtual_node.
822 * class.c (init_class_processing): Initialize it.
823 * decl.c (xref_basetypes): Use it.
824 * parse.y (base_class_access_list): Likewise.
825
826 * Make-lang.in (DEMANGLER_PROG): Add $(exeext).
827 (c++.install-common): Install c++filt.
828
ea957dd5
BK
829Thu Feb 12 12:46:51 1998 Benjamin Kosnik <bkoz@rhino.cygnus.com>
830
831 * decl.c (shadow_tag): Give error for typedef-ing built-in types.
832
153305b0
MM
833Wed Feb 11 23:28:05 1998 Mark Mitchell <mmitchell@usa.net>
834
835 * call.c (reference_binding): Use comptypes when comparing
836 TYPE_MAIN_VARIANTS to handle non-canonical array/index types.
837
06ab59df
MM
838Wed Feb 11 16:42:04 1998 Mark Mitchell <mmitchell@usa.net>
839
840 * tree.c (is_overloaded_fn): Use really_overloaded_fn.
841 (really_overloaded_fn): Move check here from is_overloaded_fn.
842 (get_first_fn): Use really_overloaded_fn and is_overloaded_fn.
843
153305b0
MM
844Wed Feb 11 15:54:18 1998 Mark Mitchell <mmitchell@usa.net>
845
846 * typeck.c (build_ptrmemfunc): Type-check pointer-to-member
847 conversions.
848
3ac3d9ea
MM
849Mon Feb 9 22:23:31 1998 Mark Mitchell <mmitchell@usa.net>
850
851 * cp-tree.h (push_template_decl): Return the decl passed in, or an
852 equivalent duplicate.
853 * decl.c (pushtag): Use the return value from push_template_decl.
854 (duplicate_decls): When duplicating a template declaration, merge
855 the DECL_TEMPLATE_RESULTs as well.
856 (make_implicit_typename): Don't try to dive into typename types to
857 find a context for making a new implicit typename.
858 (start_decl): Use the return value from push_template_decl.
859 (grokdeclarator): Complain about declarations list `const operator
860 int'. Since we don't correctly handle in-class initializations of
861 non-static data members, complain about this (now illegal)
862 practice. Issue an error for initializations of non-const statics
863 since that is illegal as well, and since we don't handle that case
864 correctly either.
865 (start_function): Use the return value from push_template_decl.
866 (start_method): Likewise.
867 * decl2.c (grokfield): Likewise. Since the change to
868 grokdeclarator ensures that all initialized fields are in fact
869 static, remove a redundant test for TREE_PUBLIC.
870 * parse.y (initlist): Disable labeled initializers since they do
871 not work as per the documentation, and since they do not use the
872 same syntax as the C front end.
873 * pt.c (push_template_decl): Return the decl passed in, or an
874 equivalent duplicate.
875 (lookup_template_class): When searching in a nested context,
876 use the right arguments.
877 (uses_template_parms): Handle the DECL_INITIAL for a CONST_DECL.
878 * typeck.c (build_component_ref): Assign the correct type to the
879 result of build_vfn_ref.
880
c29c4e23 881Tue Feb 10 23:56:46 1998 Jason Merrill <jason@yorick.cygnus.com>
c6f2ed0d 882
c29c4e23
JM
883 * pt.c (convert_nontype_argument): Fix typo.
884 (check_explicit_specialization): Allow old-style specialization
c6f2ed0d
JM
885 of class template members.
886
71cc65bd
JM
887Tue Feb 10 20:36:52 1998 Jason Merrill <jason@yorick.cygnus.com>
888 Manfred Hollstein <manfred@s-direktnet.de>
889
890 * decl.c (grokdeclarator): Use DECL_USE_TEMPLATE instead
891 when deciding to override DECL_ASSEMBLER_NAME.
892
727e39c7
AM
893Tue Feb 10 15:30:55 EST 1998 Andrew MacLeod <amacleod@torpedo.to.cygnus.com>
894
895 * decl2.c (lang_f_options): Add -fsquangle to option processing list.
727e39c7 896 * cp-tree.h (flag_do_squangling): Add declaration.
727e39c7 897 * lang-options.h: Add -fsquangle and -fno-squangle.
727e39c7
AM
898 * method.c: Add macros and static variables for squangling.
899 (build_overload_name): Rename to build_mangled_name, add logic for B
71cc65bd
JM
900 compression, and split into process_modifiers and
901 process_overload_item.
727e39c7
AM
902 (process_modifiers): New function, to handle constant, reference,
903 and pointer types.
904 (process_overload_item): New function, handles issue of type codes.
905 (build_overload_name): New function, start squangling and call
906 build_mangled_name.
907 (ALLOCATE_TYPEVEC, DEALLOCATE_TYPEVEC): Remove macro and expand inline.
908 (start_squangling): New function to initialize squangling structs.
909 (end_squangling): New function to destroy squangling structs.
910 (nrepeats): Rename variable to Nrepeats.
911 (issue_nrepeats): New function for issuing 'n' type repeats.
912 (check_ktype): New function to check for type K name compression.
913 (build_overload_nested_name): Add a check for K name compression.
914 (build_qualified_name): Add a check for K name compression and don't
915 use DECL_ASSEMBLER_NAME when squangling is on.
916 (check_btype): New function, checks for B type compression.
917 (build_static_name, build_decl_overload_real): Initiate squangling.
918 (build_typename_overload, build_overload_with_type): Initiate
919 squangling
920
aea955a2
SS
921Sun Feb 8 23:47:38 1998 scott snyder <sss@d0linux01.fnal.gov>
922
923 * method.c (make_thunk): Avoid name buffer overflow.
924
bd0f14dc
JM
925Sat Feb 7 16:48:54 1998 Jason Merrill <jason@yorick.cygnus.com>
926
927 * pt.c (instantiate_decl): Call cp_finish_decl for vars even if we
928 don't define them yet.
ced68160
JM
929
930 * parse.y (nomods_initdcl0): Add constructor_declarator case.
931
d60846c7
JM
932Thu Feb 5 19:10:40 1998 Jason Merrill <jason@yorick.cygnus.com>
933
934 * tinfo2.cc: Add tinfo for signed char.
935
eabb2eba
MS
936Thu Feb 5 14:38:23 1998 Mike Stump <mrs@wrs.com>
937
938 * search.c (compute_access): Handle protected constructors in derived
939 classes as accessible.
940
2a66ec2b
JM
941Wed Feb 4 01:26:49 1998 Jason Merrill <jason@yorick.cygnus.com>
942
943 * expr.c (cplus_expand_expr, PCC_STATIC_STRUCT_RETURN code):
944 Call convert_from_reference sooner.
945
9c0d0367
MM
946Tue Feb 3 23:50:52 1998 Mark Mitchell <mmitchell@usa.net>
947
948 * cvt.c (ocp_convert): Obtain the constant values from constant
949 decls even if the destination type is the same as the type of the
950 decl.
951
952 * decl2.c (finish_file): Make sure that static inlines with
953 definitions are not marked DECL_EXTERNAL before returning.
954
cf776105
JM
955Tue Feb 3 22:43:42 1998 Jason Merrill <jason@yorick.cygnus.com>
956
957 * decl.c: Lose arg_looking_for_template.
958 (lookup_name_real): Likewise.
959 * parse.y: Lose processing_template_arg, template_arg1
960 (primary): Likewise.
961 * spew.c (yylex): Set lastiddecl for PTYPENAMEs, too.
962
e7e66632
KL
963Tue Feb 3 22:04:01 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu>
964
965 * error.c (dump_decl): Fix type of default arguments for template
966 template parameters and nontype template parameters.
967 * parse.y (template_parm): Handle invalid default template
968 template arguments here.
969
970 * parse.y (template_parm): Use template_arg instead of PTYPENAME
971 for default template template argument.
972 * pt.c (coerce_template_parms): Merge default template argument
973 codes. Can treat RECORD_TYPE as template name if it is implicitly
974 created. Fix argument index in error message.
975 * typeck.c (comptypes): Merge template argument comparison codes in
976 TEMPLATE_TEMPLATE_PARM and RECORD_TYPE.
977
e95d117b
MK
978Tue Jan 6 01:42:44 1998 Mumit Khan <khan@xraylith.wisc.edu>
979
980 * lex.c (file_name_nondirectory): Also check for '/'.
981
8857f91e
MM
982Mon Feb 2 11:24:22 1998 Mark Mitchell <mmitchell@usa.net>
983
67da3287
MM
984 * parse.y (primary): Deal with statement-expressions in
985 templates.
986 * pt.c (tsubst_copy): Handle BIND_EXPR.
987 * tree.c (mapcar): Likewise.
988
d7684f2d
MM
989 * call.c (add_template_candidate_real): Pass extra parameter to
990 fn_type_unification.
991 * cp-tree.h (fn_type_unification): Add parameter.
992 * pt.c (fn_type_unification): Add additional parameter to deal with
993 static member functions.
994 (get_bindings): Deal with static member functions.
995
8857f91e
MM
996 * cp-tree.h (DECL_NONSTATIC_MEMBER_FUNCTION_P): New macro.
997 (revert_static_member_fn): Declare.
998 * decl.c (revert_static_member_fn): Remove declaration. Change
999 linkage from internal to external.
1000 (cp_finish_decl): Deal with virtual functions in classes local to
1001 template functions.
1002 * decl2.c (finish_file): Don't forget to emit increment/decrement
1003 expressions in initializers for file-scope variables.
1004 * parse.y (typename_sub2): If the typename doesn't names a
1005 template, rather than a type, issue an error message.
1006 * pt.c (check_explicit_specialization): Handle specializations of
1007 static member functions.
1008 (coerce_template_parms): Handle offset references to lists of
1009 member functions.
1010 * search.c (note_debug_info_needed): Don't crash when handed a
1011 type which is being defined.
1012 * typeck.c (complete_type): Don't crash when handed NULL_TREE;
1013 that can happen with some illegal code.
1014
a703fb38
KG
1015Mon Feb 2 00:57:38 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1016
1017 * call.c (user_harshness): Initialize `code' to 0.
1018 (build_method_call): Initialize `candidates', `cp' and `len' to 0.
1019 (null_ptr_cst_p): Add parentheses around && within ||.
1020 (standard_conversion): Likewise.
1021 (z_candidate): Likewise.
1022 (build_user_type_conversion_1): Initialize `args' to NULL_TREE.
1023 (build_object_call): Likewise for `mem_args'.
1024 (build_new_op): Likewise for `mem_arglist'. Add `return' from
1025 default case in enumeration switch.
1026
1027 * class.c (build_vtable_entry): Add explicit braces to avoid
1028 ambiguous `else'.
1029 (build_class_init_list): Likewise.
1030 (finish_struct_1): Initialize `width' to 0.
1031 (instantiate_type): Initialize `name' to NULL_TREE. Add
1032 explicit braces to avoid ambiguous `else'.
1033
1034 * cvt.c (convert_to_aggr): Add explicit braces to avoid ambiguous
1035 `else'.
1036
1037 * decl.c (grok_reference_init): Eliminate unused parameter, all
1038 callers changed.
1039 (record_builtin_type): Initialize `tdecl' to NULL_TREE.
1040 (init_decl_processing): Initialize `vb_off_identifier' to NULL_TREE.
1041 (cp_finish_decl): Initialize `ttype' to NULL_TREE.
1042 (grokdeclarator): Add parentheses around && within ||. Add
1043 explicit braces to avoid ambiguous `else'.
1044 (grokparms): Initialize `type' to NULL_TREE.
1045 (xref_tag): Remove unused label `just_return'.
1046 (finish_enum): Initialize `minnode' and `maxnode' to NULL_TREE.
1047 (finish_function): Initialize `cond' and `thenclause' to NULL_TREE.
1048 (hack_incomplete_structures): Add parentheses around assignment
1049 used as truth value.
1050
1051 * decl2.c (coerce_delete_type): Hide definition of `e3'.
1052
1053 * error.c: Include <stdlib.h>.
1054 (dump_expr): Change the type of `i' to size_t. Remove unused
1055 label `error'.
1056
1057 * except.c (init_exception_processing): Remove unused variable `d'.
1058 (expand_throw): Likewise for `label'.
1059
1060 * friend.c (add_friends): Add explicit braces to avoid ambiguous
1061 `else'.
1062
1063 * init.c (sort_member_init): Initialize `last_field' to NULL_TREE.
1064 (sort_base_init): Likewise for `binfo'.
1065 (expand_member_init): Likewise for `rval'.
1066 (build_member_call): Add parentheses around assignment used as
1067 truth value.
1068 (build_offset_ref): Add explicit braces to avoid ambiguous `else'.
1069 (build_new): Initialize `nelts' to NULL_TREE. Initialize
1070 `old_immediate_size_expand' to 0.
1071 (build_new_1): Initialize `nelts' and `alloc_node' to NULL_TREE.
1072 (build_vec_delete_1): Remove unused variable `block'.
1073 (expand_vec_init): Initialize `itype' to NULL_TREE.
1074
1075 * lex.c: Include <strings.h> if we don't have <string.h>. Protect
1076 declaration of `index' and `rindex' with autoconf macros.
1077 (reinit_parse_for_expr): Remove unused variables
1078 `look_for_semicolon' and `look_for_lbrac'.
1079 (cons_up_default_function): Initialize `args' to NULL_TREE.
1080 (readescape): Initialize `firstdig' to 0.
1081 (real_yylex): Add parentheses around assignment used as truth value.
1082
1083 * method.c: Include <strings.h> if we don't have <string.h>.
1084 Protect declaration of `index' with autoconf macro.
1085
1086 * parse.y (primary): Add explicit braces to avoid ambiguous `else'.
1087 Initialize `type' to NULL_TREE.
1088 (structsp): Remove unused variable `id'.
1089
1090 * pt.c (coerce_template_parms): Add explicit braces to avoid
1091 ambiguous `else'.
1092 (lookup_template_class): Initialize `template' to NULL_TREE.
1093 (instantiate_class_template): Remove unused variable `name' and `e'.
1094 (tsubst): Likewise for `i'. Initialize `last' to NULL_TREE.
1095 (do_poplevel): Initialize `saved_warn_unused' to 0.
1096 (type_unification): Remove unused varable `parm'.
1097 (unify): Likewise for `j'.
1098
1099 * repo.c (init_repo): Add parentheses around assignment used as
1100 truth value.
1101 (finish_repo): Remove unused varable `p'.
1102
1103 * search.c (get_binfo): Initiize `type' to NULL_TREE.
1104 (get_base_distance): Likewise.
1105 (lookup_field): Initialize `rval_binfo_h', `type', `basetype_path'
1106 and `new_v' to NULL_TREE.
1107 (lookup_fnfields): Likewise for `rval_binfo_h'.
1108 (breadth_first_search): Add parentheses around assignment used as
1109 truth value.
1110 (get_template_base): Initialize `type' to NULL_TREE.
1111
1112 * sig.c (append_signature_fields): Initialize `last_mfptr' to
1113 NULL_TREE.
1114 (build_signature_table_constructor): Likewise for
1115 `last_rhs_field', `pfn' and `vt_off'.
1116 (build_sigtable): Likewise for `init'.
1117
1118 * tree.c (break_out_calls): Initialize `t2' to NULL_TREE.
1119 (propagate_binfo_offsets): Likewise for `delta'.
1120 (hash_tree_cons): Initialize hashcode to 0.
1121 (can_free): Likewise for `size'.
1122 (cp_tree_equal): Add explicit braces to avoid ambiguous `else'.
1123
1124 * typeck.c (convert_sequence): Hide prototype.
1125 (common_type): Add explicit braces to avoid ambiguous `else'.
1126 (comp_target_types): Likewise.
1127 (build_x_function_call): Initialize `ctypeptr' to NULL_TREE.
1128 (build_function_call_real): Add explicit braces to avoid ambiguous
1129 `else'.
1130 (convert_arguments): Initialize `called_thing' to 0.
1131 (convert_for_initialization): Initialize `savew' and `savee' to 0.
1132
1133 * typeck2.c (incomplete_type_error): Initialize `errmsg' to 0.
1134 (digest_init): Initialize `old_tail_contents' to NULL_TREE.
1135 (build_x_arrow): Likewise for `last_rval'.
1136
1137 * xref.c (GNU_xref_decl): Initialize `cls' to 0.
1138
f5426d1e
R
1139Sun Feb 1 12:45:34 1998 J"orn Rennecke <amylaar@cygnus.co.uk>
1140
1141 * decl.c (init_decl_processing): Use set_sizetype.
1142 * decl2.c (sizetype): Don't declare.
1143 * typeck.c (c_sizeof): Convert result of *_DIV_EXPR to sizetype.
1144 (c_sizeof_nowarn, build_binary_op_nodefault): Likewise.
1145 (build_component_addr, unary_complex_lvalue): Likewise.
1146 * rtti.c (expand_class_desc): Likewise.
1147 * class.c (get_vfield_offset): Likewise.
1148
7bf2682f
MM
1149Thu Jan 29 10:39:30 1998 Mark Mitchell <mmitchell@usa.net>
1150
1151 * pt.c (convert_nontype_argument): Move check for is_overloaded_fn
1152 early to avoid bogus error. Handle overloaded function
1153 names provided as template arguments correctly.
1154 (coerce_template_parms): Don't mishandle overloaded functions when
1155 dealing with template template parameters.
1156 (lookup_template_class): Issue an error message, rather than
1157 crashing, when the TYPE_DECL provided is not a template type.
1158
abff8e06
JM
1159Wed Jan 28 23:14:44 1998 Jason Merrill <jason@yorick.cygnus.com>
1160
1161 * class.c (instantiate_type): Don't just return a known type if
1162 it's wrong.
1163
86052cc3
JM
1164Wed Jan 28 11:04:07 1998 Mark Mitchell <mmitchell@usa.net>
1165
abff8e06
JM
1166 * class.c (instantiate_type): Remove handling of FUNCTION_DECL
1167 since that code could never be reached.
1168
1169 * error.c (dump_decl): Avoid aborting in the midst of printing an
1170 error message about an illegal template declaration.
1171
1172 * parse.y (structsp): Print an error message, rather than crashing,
1173 when a class-head does not name a class.
1174
1175 * pt.c (convert_nontype_argument): Allow REAL_TYPE and COMPLEX_TYPE
1176 template arguments as a g++ extension.
1177
1178 * cp-tree.def (ALIGNOF_EXPR): New tree code.
1179 * decl2.c (grok_alignof): If processing_template_decl, just store
1180 the expression.
1181 * typeck.c (c_alignof): Likewise.
1182 * decl2.c (build_expr_from_tree): Handle ALIGNOF_EXPR.
1183 * error.c (dump_expr): Likewise.
1184 * pt.c (tsubst_copy): Likewise.
1185 * tree.c (cp_tree_equal): Likewise.
1186 * pt.c (uses_template_parms): Correctly determine whether or not a
1187 SIZEOF_EXPR/ALIGNOF_EXPR uses template parameters so that constant
1188 folding can be done.
1189
86052cc3
JM
1190 * cp-tree.h (grok_enum_decls): Remove type parameter.
1191 * decl.c (grok_enum_decls): Likewise.
1192 * decl2.c (grok_x_components): Call grok_enum_decls
1193 unconditionally, since it will do nothing if there is no
1194 current_local_enum. Use the new calling sequence.
1195 * pt.c (tsubst_enum): Use the new calling sequence for
1196 grok_enum_decls.
1197
1198 * decl.c (start_function): Make member functions of local classes
1199 in extern inline functions have comdat linkage here...
1200 (grokdeclarator): Rather than here.
1201
1202Wed Jan 28 10:55:47 1998 Jason Merrill <jason@yorick.cygnus.com>
1203
1204 * pt.c (convert_nontype_argument): Use decl_constant_value.
1205
e1467ff2
MM
1206Tue Jan 27 16:42:21 1998 Mark Mitchell <mmitchell@usa.net>
1207
1208 * call.c (add_template_candidate_real): New function.
1209 (add_template_candidate): Use it.
1210 (add_template_conv_candidate): Likewise.
1211 (joust): Pass extra argument to more_specialized.
1212 * class.c (instantiate_type): Handle a single FUNCTION_DECL.
1213 (is_local_class): Remove.
1214 (finish_struct): Check TI_PENDING_SPECIALIZATION_FLAG.
1215 * cp-tree.h (is_local_class): Remove.
1216 (perform_array_to_pointer_conversion): Likewise.
1217 (finish_member_template_decl): Add.
1218 (check_explicit_specialization): Return a tree, not an int.
1219 (more_specialized): Take additional argument.
1220 (get_bindings): Likewise.
86052cc3 1221 (TI_PENDING_SPECIALIZATION_FLAG): New macro.
e1467ff2
MM
1222 * cvt.c (perform_qualification_conversions): Use comp_ptr_ttypes.
1223 (perform_array_to_pointer_conversion): Remove.
1224 * decl.c (saved_scope): Add processing_specialization,
1225 processing_explicit_instantiation fields.
1226 (maybe_push_to_top_level): Save them.
1227 (pop_from_top_level): Restore them.
1228 (grokfndecl): Use new return value from
1229 check_explicit_specialization.
1230 (start_decl): Don't check flag_guiding_decls before pushing
1231 decls.
1232 (cp_finish_decl): Remove previous (bogus) change.
1233 (grok_declarator): Use decl_function_context rather than
1234 is_local_class.
1235 * decl2.c (finish_file): Pass extra argument to get_bindings.
1236 (build_expr_from_tree): Let build_x_component_ref check
1237 validity of arguments rather than doing it here.
1238 * lex.c (cons_up_default_function): Remove code fooling with
1239 processing_specialization, processing_explicit_instantiation
1240 flags, as that is now done in {maybe_push_top,pop_from}_top_level.
1241 * method.c (build_overload_identifier): Mangle local classes in
1242 template functions correctly.
1243 * parse.y (finish_member_template_decl): Move to pt.c.
1244 * pt.c (finish_member_template_decl): Moved here from parse.y.
1245 (print_candidates): New function.
1246 (determine_specialization): Change interface. Properly look for
1247 most specialized versions of template candidates.
1248 (check_explicit_specialization): Fully process explicit
1249 instantiations.
1250 (push_template_decl): Avoid looking at CLASSTYPE fields in
1251 FUNCTION_DECLS.
1252 (determine_overloaded_function): Remove.
1253 (convert_nontype_argument): Change name from
1254 convert_nontype_parameter. Use determine_overloaded_function
1255 instead of instantiate_type.
1256 (mangle_class_name_for_template): Handle type contexts as well as
1257 function contexts.
1258 (classtype_mangled_name): Likewise.
1259 (lookup_template_class): Likewise.
1260 (tsubst): Likewise.
1261 (more_specialized): Take explict template arguments as a
1262 parameter.
1263 (most_specialized): Likewise.
1264 (get_bindings): Likewise. Check that return types match before
1265 proclaiming a function a match.
1266 (do_decl_instantiation): Remove code searching for function to
1267 instantiate; that is now done in check_explicit_specialization.
1268 (add_maybe_template): Pass extra argument to get_bindings.
1269 * tree.c (really_overloaded_fn): Use is_overloaded_fn to simplify
1270 implementation.
1271 * typeck.c (build_component_ref): Check for invalid arguments.
1272
343c89cd
JM
1273Tue Jan 27 01:44:02 1998 Jason Merrill <jason@yorick.cygnus.com>
1274
56841f01
JM
1275 * expr.c (cplus_expand_expr, AGGR_INIT_EXPR): Don't check that
1276 return_target and call_target are equivalent.
1277
343c89cd 1278 * pt.c (type_unification_real): Just accept function parms that
56841f01 1279 don't use any template parms.
343c89cd 1280
d3959d60
JM
1281Sun Jan 25 03:30:00 1998 Jason Merrill <jason@yorick.cygnus.com>
1282
be343556
JM
1283 * decl.c (cp_finish_decl): When bailing on a comdat variable, also
1284 unset DECL_NOT_REALLY_EXTERN.
1285
d3959d60
JM
1286 * parse.y (typename_sub*): Fix std::.
1287
67c2a928
JM
1288Sat Jan 24 12:13:54 1998 Jason Merrill <jason@yorick.cygnus.com>
1289
1290 * error.c (dump_decl): Fix type default template args.
1291 (dump_type): Hand TEMPLATE_DECL off to dump_decl.
1292
ab535dac
MK
1293Fri Jan 23 18:34:37 1998 Mumit Khan <khan@xraylith.wisc.edu>
1294
1295 * lex.c (DIR_SEPARATOR): Define to be '/' if not already defined.
1296 (file_name_nondirectory): Use.
1297
73b0fce8
KL
1298Wed Jan 21 10:29:57 1998 Kriang Lerdsuwanakij <lerdsuwa@scf.usc.edu>
1299
1300 * pt.c (coerce_template_parms): Don't access elements of ARGLIST
d1fefbce 1301 that are not really present. Substitute default arguments in
73b0fce8
KL
1302 template template arguments. Correctly convert TEMPLATE_DECL to
1303 TEMPLATE_TEMPLATE_PARM.
1304 (comp_template_args): TEMPLATE_DECL and TEMPLATE_TEMPLATE_PARM
1305 are no longer treated specially here.
1306 * parse.y (template_template_parm): Fix copy error.
1307 * decl.c (grokdeclarator): Warn about missing `typename' for nested
1308 type created from template template parameters.
1309 * parse.y (bad_parm): Likewise
1310
1311 * class.c (finish_struct): Handle TEMPLATE_TEMPLATE_PARM.
1312 (push_nested_class): Likewise.
1313 * cp-tree.def (TEMPLATE_TEMPLATE_PARM): New tree code.
1314 * cp-tree.h (DECL_TEMPLATE_TEMPLATE_PARM_P): New macro.
1315 (copy_template_template_parm): Declare.
1316 * decl.c (arg_looking_for_template): New variable.
1317 (lookup_name_real): Handle TEMPLATE_TEMPLATE_PARM.
1318 Try to return TEMPLATE_DECL or TEMPLATE_TEMPLATE_PARM
1319 node if arg_looking_for_template is nonzero.
1320 (pushdecl): Handle TEMPLATE_TEMPLATE_PARM.
1321 (grok_op_properties, xref_tag, xref_basetypes): Likewise.
1322 (grokdeclarator): Handle TEMPLATE_DECL.
1323 * decl2.c (constructor_name_full): Handle TEMPLATE_TEMPLATE_PARM.
1324 * error.c (dump_type): Add TEMPLATE_DECL and TEMPLATE_TEMPLATE_PARM.
1325 (dump_type_prefix, dump_type_suffix) Handle TEMPLATE_TEMPLATE_PARM.
1326 (dump_decl): Handle unnamed template type parameters.
1327 Handle template template parameters.
1328 (dump_function_name): Handle template template parameters.
1329 * init.c (is_aggr_typedef, is_aggr_type, get_aggr_from_typedef):
1330 Handle TEMPLATE_TEMPLATE_PARM.
1331 * method.c (build_template_template_parm_names): New function.
1332 (build_template_parm_names): Handle TEMPLATE_DECL.
1333 (build_overload_nested_name, build_overload_name):
1334 Handle TEMPLATE_TEMPLATE_PARM.
1335 * parse.y (maybe_identifier): New nonterminal.
1336 (template_type_parm): Use it.
1337 (template_template_parm, template_arg1): New nonterminal.
1338 (template_parm): Add template_template_parm rules.
1339 (template_arg): Set processing_template_arg.
1340 (template_arg1): Rules moved from template_arg.
1341 (primary, nonnested_type): Set arg_looking_for_template if we are
1342 processing template arguments.
1343 * pt.c (begin_member_template_processing): Handle TEMPLATE_DECL.
1344 (process_template_parm): Handle template template parameters.
1345 (coerce_template_parms, comp_template_args): Likewise.
1346 (mangle_class_name_for_template, lookup_template_class): Likewise.
1347 (uses_template_parms): Handle TEMPLATE_DECL and
1348 TEMPLATE_TEMPLATE_PARM.
1349 (current_template_args): Handle TEMPLATE_DECL.
1350 (tsubst, tsubst_copy, unify): Handle TEMPLATE_TEMPLATE_PARM.
1351 * search.c (dfs_walk, dfs_record_inheritance):
1352 Handle TEMPLATE_TEMPLATE_PARM.
1353 * tree.c (copy_template_template_parm): New function.
1354 (mapcar): Handle TEMPLATE_TEMPLATE_PARM.
1355 * typeck.c (comptypes): Handle TEMPLATE_TEMPLATE_PARM.
1356
75650646
MM
1357Mon Jan 19 22:40:03 1998 Mark Mitchell <mmitchell@usa.net>
1358
1359 * decl.c (start_decl): Don't allow duplicate definitions of static
1360 data members.
1361
1362 * call.c (build_user_type_conversion_1): Handle user-defined
1363 template conversion operators correctly.
1364
1365 * decl2.c (build_expr_from_tree): Issue an error message if the
1366 object in a COMPONENT_REF is a TEMPLATE_DECL.
1367
1368 * typeck.c (incomplete_type_error): Handle TEMPLATE_TYPE_PARMs.
1369
1370 * class.c (is_local_class): New function.
1371 * cp-tree.h (is_local_class): Declare it.
1372 (last_tree): Likewise.
1373 (begin_tree): Likewise.
1374 (end_tree): Likewise.
1375 (lookup_template_class): Change prototype.
1376 * decl.c (cp_finish_decl): Check for NULL where necesary.
1377 Consider FUNCTION_DECLS to declare objects with top-level binding,
1378 when calling make_decl_rtl.
1379 (grokdeclarator): Give members of local classes internal linkage.
1380 (start_function): Remove declaration of last_tree.
1381 (finish_function): Set flag_keep_inline_functions around call to
1382 rest_of_compilation if we are processing a member function in a
1383 local class.
1384 (start_method): Call push_template_decl for member functions of
1385 local classes in template functions.
1386 * decl2.c (import_export_decl): Don't give external linkage to
1387 instantiations of templates with internal linkage.
1388 * parse.y (last_tree): Remove declaration.
1389 (template_type): Pass extra parameter to lookup_template_class.
1390 (self_template_type): Likewise.
1391 (structsp): Move call to reset_specialization into left_curly.
1392 (left_curly): Call reset_specialization, and begin_tree.
1393 * pt.c (saved_trees): New variable.
1394 (mangle_class_name_for_template): Change prototype. Use
1395 additional function context to name local classes in templates
1396 correctly.
1397 (classtype_mangled_name): Pass the context.
1398 (push_template_decl): Handle local classes and templates, and
1399 member functions for such classes.
1400 (convert_nontype_parameter): Fix handling of pointer-to-member
1401 constants.
1402 (lookup_template_class): Handle local classes in templates.
1403 (tsubst): Likewise. Don't assume that template instantiations
1404 have external linkage; pay attention to the template declaration.
1405 (mark_decl_instantiated): Likewise.
1406 (begin_tree): New function.
1407 (end_tree): Likewise.
1408
1409 * decl.c (xref_basetypes): Don't call complete_type for basetypes
1410 that involve template parameters; that can lead to infinite
1411 recursion unnecessarily.
1412
1413 * pt.c (register_specialization): Do not register specializations
1414 that aren't ready to be registered yet.
1415 (check_explicit_specialization): Handle explicit specialization of
1416 constructors and destructors.
1417 (build_template_decl): New function.
1418 (push_template_delc): Handle out-of-class specializations of
1419 member templates.
1420
1421 * pt.c (check_explicit_specialization): Set up the template
1422 information before registering the specialization.
1423 (coerce_template_parms): Fix thinko.
1424 (tsubst): Handle specializations of member templates correctly.
1425
1426 * class.c (finish_struct_methods): Remove calls to
1427 check_explicit_specialization from here.
1428 (finish_struct): And insert them here.
1429 * cp-tree.h (perform_qualification_conversions): New function.
1430 (perform_array_to_pointer_conversion): Likewise.
1431 (begin_explicit_instantiation): Likewise.
1432 (end_explicit_instantiation): Likewise.
1433 (determine_specialization): Renamed from
1434 determine_explicit_specialization.
1435 (comp_template_parms): New function.
1436 (processing_explicit_instantiation): New variable.
1437 * cvt.c (perform_qualification_conversions): New function.
1438 (perform_array_to_pointer_conversion): Likewise.
1439 * decl.c (duplicate_decls): Don't consider template functions
1440 alike unless they have the same parameters. Refine handling of
1441 instantiation/specialization mismatches.
1442 (start_decl): Don't call pushdecl for template specializations,
1443 since they don't affect overloading.
1444 (start_function): Likewise
1445 (grokfndecl): Call check_explicit_specialization a little later.
1446 Don't call duplicate_decls for memberm template specializations.
1447 (grokdeclarator): Don't update template_count for classes that are
1448 themselves specializations. Remove use of `2' as parameter to
1449 grokfndecl since that value isn't used.
1450 * lex.c (cons_up_default_function): Save and restore
1451 processing_explicit_instantiation around calls to grokfield.
1452 * parse.y (finish_member_template_decl): New function.
1453 (component_decl_1): Use it.
1454 (fn.def2): Likewise.
1455 (template_arg_list_opt): New nonterminal.
1456 (template_type): Use it.
1457 (self_template_type): Likewise.
1458 (template_id): Likewise.
1459 (object_template_id): Likewise.
1460 (notype_template_declarator): Likwise.
1461 (begin_explicit_instantiation): Likewise.
1462 (end_explicit_instantiation): Likewise.
1463 (explicit_instantiation): Use them.
1464 * pt.c (coerce_template_parms): Add parameters.
1465 (processing_explicit_instantiation): New variable.
1466 (convert_nontype_parameter): New function.
1467 (determine_overloaded_function): Likewise.
1468 (begin_explicit_instantiation): Likewise.
1469 (end_explicit_instantiation): Likewise.
1470 (retrieve_specialization): Likewise.
1471 (register_specialization): Likewise.
1472 (processing_explicit_specialization): Removed.
1473 (determine_specialization): Handle specializations of member
1474 functions of template class instantiations.
1475 (check_explicit_specialization): Refine to conform to standard.
1476 (comp_template_parms): New function.
1477 (coerce_template_parms): Call convert_nontype_parameter.
1478 (tsubst): Refine handling of member templates. Use
1479 register_specialization.
1480 (instantiate_template): Use retrieve_specialization.
1481 (do_decl_instantiation): Likewise.
1482 (instantiate_decl): Likewise.
1483 (type_unification): Improve handling of explict template
1484 arguments.
1485 * tree.c (mapcar): Return error_mark_node, rather than aborting,
1486 on VAR_DECLS, FUNCTION_DECLS, and CONST_DECLS.
1487 * typeck.c (build_unary_op): Call determine_specialization, rather
1488 than determine_explicit_specialization.
1489
f62aa8f3
JM
1490Mon Jan 19 13:18:51 1998 Jason Merrill <jason@yorick.cygnus.com>
1491
1492 * cvt.c (build_up_reference): A TARGET_EXPR has side effects.
1493
224c649b
BH
1494Fri Jan 16 11:40:50 1998 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
1495
1496 * error.c (dump_decl): For enum tags, output the tag, not its value.
1497
1737fe20
BK
14981998-01-13 Brendan Kehoe <brendan@cygnus.com>
1499
1500 * decl.c (init_decl_processing): Only call init_rtti_processing
1501 FLAG_RTTI is set.
1502
a0d5fba7
JM
1503Mon Jan 12 01:35:18 1998 Jason Merrill <jason@yorick.cygnus.com>
1504
1505 * init.c (build_new_1): Split out from build_new.
1506 (build_new): Just return a NEW_EXPR.
1507 * expr.c (cplus_expand_expr): Handle NEW_EXPR.
1508
1509 * decl2.c (get_temp_regvar): Tweak.
1510
1511 * cp-tree.h (TREE_CALLS_NEW): Comment out.
1512 * class.c (resolves_to_fixed_type_p): Remove use.
1513 * method.c (build_opfncall): Likewise.
1514 * call.c (build_new_op): Likewise.
1515
f4a23343
JM
1516Wed Jan 7 23:47:13 1998 Jason Merrill <jason@yorick.cygnus.com>
1517
1518 * exception.cc (__eh_alloc, __eh_free): New fns.
1519 (__cp_push_exception, __cp_pop_exception): Use them.
1520 (__uncatch_exception): Call terminate here if no exception.
1521 * except.c (build_terminate_handler): New fn.
1522 (expand_start_catch_block): Use it.
1523 (expand_exception_blocks): Likewise.
1524 (alloc_eh_object): New fn.
1525 (expand_throw): Use it. Protect exception init with terminate.
1526 * typeck.c (build_modify_expr): Remove code that ignores trivial
1527 methods.
1528
7f85441b
KG
1529Mon Dec 22 11:36:27 1997 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1530
1531 * call.c (add_builtin_candidate): Add default case in enumeration
1532 switch.
1533 (build_new_op): Likewise.
1534 (convert_like): Likewise.
1535 * cvt.c (build_expr_type_conversion): Likewise.
1536 * tree.c (real_lvalue_p): Likewise.
1537 (lvalue_p): Likewise.
1538 (cp_tree_equal): Likewise.
1539 * typeck.c (comptypes): Likewise.
1540 (build_component_ref): Likewise.
1541 (build_function_call_real): Likewise.
1542 (build_binary_op_nodefault): Likewise.
1543 (build_unary_op): Likewise.
1544 (build_modify_expr): Likewise.
1545 * typeck2.c (initializer_constant_valid_p): Likewise.
1546
f9fc59e8
NC
1547Sun Dec 21 15:59:00 1997 Nick Clifton <nickc@cygnus.com>
1548
1549 * decl2.c (lang_decode_option): Add support for -Wunknown-pragmas.
1550
864b83b9
MM
1551Thu Dec 18 14:51:50 1997 Mark Mitchell <mmitchell@usa.net>
1552
6ba4439c
MM
1553 * pt.c (coerce_template_parms): Make sure to digest_init if
1554 possible.
1555
864b83b9
MM
1556 * decl.c (duplicate_decls): Make the newdecl virtual if the
1557 olddecl was, just as is done with other attributes of olddecl.
1558
02531345
JM
1559Thu Dec 18 14:43:19 1997 Jason Merrill <jason@yorick.cygnus.com>
1560
4cac9464
JM
1561 * typeck.c (unary_complex_lvalue): Ignore op0 when taking the
1562 address of an OFFSET_REF.
1563
02531345
JM
1564 * cp-tree.def: Add AGGR_INIT_EXPR.
1565 * error.c, tree.c, typeck.c: Replace uses of NEW_EXPR with
1566 AGGR_INIT_EXPR where appropriate.
1567 * expr.c (cplus_expand_expr): Likewise. Simplify.
1568
1569 * decl2.c (finish_file): Remove call to register_exception_table.
1570
4f4da4e9
BK
1571Wed Dec 17 17:08:52 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
1572
1573 * pt.c (instantiate_class_template): Don't do injection when
1574 processing_template_decl is true, as pollutes current_binding_level
1575 for base classes.
1576
840b09b4
PS
1577Wed Dec 17 21:17:39 1997 Peter Schmid <schmid@ltoi.iap.physik.tu-darmstadt.de>
1578
1579 * pt.c (maybe_fold_nontype_arg): Add prototype.
1580
6748b643
JM
1581Tue Dec 16 10:31:20 1997 Jason Merrill <jason@yorick.cygnus.com>
1582
1583 * tree.c (mapcar): Handle TRY_CATCH_EXPR et al.
1584 * error.c (dump_expr): Likewise.
1585
4bfc4dda
JM
1586Mon Dec 15 12:22:04 1997 Jason Merrill <jason@yorick.cygnus.com>
1587
1588 * typeck.c (build_function_call_real): Remove "inline called before
1589 definition" pedwarn.
1590
1591 * pt.c (coerce_template_parms): Use maybe_fold_nontype_arg.
1592
5c0ad672
JM
1593Sun Dec 14 22:34:20 1997 Jason Merrill <jason@yorick.cygnus.com>
1594
1595 * cvt.c (cp_convert_to_pointer): Fix base conversion of pm's.
1596
1597 * pt.c (type_unification_real): Change __null to type void* with
1598 a warning.
1599
3042d5be
MM
1600Sun Dec 14 20:38:35 1997 Mark Mitchell <mmitchell@usa.net>
1601
1602 * call.c (implicit_conversion): Don't call
1603 build_user_type_conversion_1 with a NULL expr, since it will
1604 crash.
1605
1606 * pt.c (unify): Don't try to unify array bounds if either array is
1607 unbounded.
1608
9664b89e
JM
1609Fri Dec 12 16:09:14 1997 Jason Merrill <jason@yorick.cygnus.com>
1610
1611 * errfn.c (cp_pedwarn, cp_pedwarn_at, cp_error_at, cp_warning_at):
1612 Replace extern decls with casts.
1613
1614 * decl.c (expand_start_early_try_stmts): Don't mess with a sequence.
1615 Update last_parm_cleanup_insn.
1616 (store_after_parms): Remove.
1617 * cp-tree.h: Adjust.
1618
ab23f787
JM
1619Thu Dec 11 22:18:37 1997 Jason Merrill <jason@yorick.cygnus.com>
1620
1621 * decl2.c (comdat_linkage): Also set DECL_COMDAT.
1622 (finish_file): Check DECL_COMDAT instead of weak|one_only.
1623 (import_export_vtable): Use make_decl_one_only instead of
1624 comdat_linkage for win32 tweak.
1625 (import_export_decl): Likewise.
1626 * pt.c (mark_decl_instantiated): Likewise.
1627
1628 * decl2.c (finish_file): Lose handling of templates in pending_statics.
1629
0776059e
JM
1630Thu Dec 11 21:12:09 1997 Jason Merrill <jason@yorick.cygnus.com>
1631
1632 * decl2.c (finish_file): Lose call to expand_builtin_throw.
1633 * except.c (expand_builtin_throw): Remove.
1634 * cp-tree.h: Remove ptr_ptr_type_node.
1635 * decl.c: Likewise.
1636
154bba13
TT
1637Thu Dec 11 20:43:33 1997 Teemu Torma <tot@trema.com>
1638
1639 * decl.c (ptr_ptr_type_node): Define.
1640 (init_decl_processing): Initialize it.
1641 * cp-tree.h: Declare it.
1642 * exception.cc (__cp_exception_info): Use __get_eh_info.
1643 (__cp_push_exception): Ditto.
1644 (__cp_pop_exception): Ditto.
1645
1646 From Scott Snyder <snyder@d0sgif.fnal.gov>:
1647 * except.c (expand_builtin_throw): Use get_saved_pc_ref instead of
1648 saved_pc.
1649 (init_exception_processing): Removed saved_pc initialization.
1650
c4ae3f91
JM
1651Wed Dec 10 11:04:45 1997 Jason Merrill <jason@yorick.cygnus.com>
1652
1653 * pt.c (instantiate_decl): Defer all templates but inline functions.
1654
67437d5b
JM
1655Mon Dec 8 23:17:13 1997 Jason Merrill <jason@yorick.cygnus.com>
1656
eb291d05
JM
1657 * init.c (expand_vec_init): Don't fold a list of parameters.
1658
67437d5b
JM
1659 * decl.c (copy_args_p): Handle copy elision for types with virtual
1660 bases.
1661 * call.c (build_over_call): Likewise.
1662
4de02abd
MM
1663Sun Dec 7 22:38:12 1997 Mark Mitchell <mmitchell@usa.net>
1664
1665 * pt.c (lookup_template_function): Copy the template arguments,
1666 not just the list containing them, to the permanent obstack.
1667
0fb9f1c3
JM
1668Sun Dec 7 15:53:06 1997 Jason Merrill <jason@yorick.cygnus.com>
1669
2b8b44d8
JM
1670 * except.c (expand_start_catch_block): suspend_momentary for the
1671 terminate handler.
1672
0fb9f1c3
JM
1673 * error.c (dump_decl): Handle LOOKUP_EXPR.
1674
1675Sun Dec 7 15:45:07 1997 Mark Mitchell <mmitchell@usa.net>
1676
1677 * rtti.c (build_dynamic_cast): Copy the cast-to type to the
1678 permanent obstack if we are processing a template decl.
1679 * typeck.c (build_static_cast): Likewise.
1680 (build_const_cast): Likewise.
1681 (build_reinterpret_cast): Likewise.
1682
1683 * pt.c (coerce_template_parms): Coerce some expressions, even
1684 when processing_template_decl.
1685
79a7c7fa
JM
1686Sun Dec 7 01:46:33 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
1687
1688 * typeck.c (build_binary_op_nodefault, pointer_diff): Symmetric
1689 handling of pointer difference expressions.
1690
1691 * typeck.c (comp_target_types): Comparison of function/method types
1692 is independent of nptrs.
1693
1694Sun Dec 7 01:40:27 1997 Mark Mitchell <mmitchell@usa.net>
1695
1696 * pt.c (tsubst): Avoid creating pointer to reference and
1697 reference to reference types.
1698
46422d6c
JM
1699Sat Dec 6 01:29:37 1997 Jason Merrill <jason@yorick.cygnus.com>
1700
1701 * parse.y (do_id): New nonterminal.
1702 (template_id): Use it.
1703
7211716d
JM
1704Fri Dec 5 01:17:34 1997 Jason Merrill <jason@yorick.cygnus.com>
1705
1706 * parse.y (template_id): do_identifier for PFUNCNAMEs, too.
1707 * spew.c (yylex): Don't do_identifier here.
1708 * decl2.c (build_expr_from_tree): Revert last change.
1709
1710 * decl2.c (build_expr_from_tree): Expand the name for a method call.
1711 * parse.y (object_template_id): Don't try to take the DECL_NAME.
1712
e701eb4d
JM
1713Wed Dec 3 20:02:39 1997 Jason Merrill <jason@yorick.cygnus.com>
1714
2face519
JM
1715 * init.c (build_new): Use a TARGET_EXPR instead of SAVE_EXPR for
1716 alloc_expr.
1717 * call.c (build_op_delete_call): Adjust.
1718
e701eb4d
JM
1719 * except.c (expand_end_catch_block): Lose rethrow region.
1720 (expand_start_catch_block): Likewise.
1721 (expand_end_catch_block): Don't expand_leftover_cleanups.
1722
53d4d75f
BK
1723Wed Dec 3 13:24:04 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
1724
1725 * pt.c (tsubst): Remove tree_cons call (places redundant info into
1726 DECL_TEMPLATE_INSTANTIATION).
1727
aa36c081
JM
1728Wed Dec 3 11:44:52 1997 Jason Merrill <jason@yorick.cygnus.com>
1729
1730 * tree.c (is_overloaded_fn): Handle getting a fn template.
1731 (really_overloaded_fn): Likewise.
1732 * error.c (dump_decl): Handle TEMPLATE_ID_EXPRs better.
1733 * pt.c (check_explicit_specialization): Tweak.
1734 (determine_explicit_specialization): Tweak.
1735
1736 * tree.c, cp-tree.h (get_target_expr): New fn.
1737
956d6950
JL
1738Wed Dec 3 08:47:27 1997 Paul Eggert <eggert@twinsun.com>
1739
1740 * pt.c (check_explicit_specialization): Fix misspelling in
1741 diagnostic: `preceeded'.
1742 * typeck.c (get_delta_difference): Fix misspelling in diagnostic:
1743 `conversiona'.
1744
aa36c081
JM
17451997-12-02 Mark Mitchell <mmitchell@usa.net>
1746
1747 * pt.c (determine_explicit_specialization): Avoid an internal
1748 error for bad specializations.
1749
1750 * method.c (build_overload_value): Handle SCOPE_REF.
1751
de35891e
JM
1752Tue Dec 2 19:18:50 1997 Mike Stump <mrs@wrs.com>
1753
1754 * class.c (prepare_fresh_vtable): Enable even more complex MI
1755 vtable names.
1756
1757Tue Dec 2 01:37:19 1997 Jason Merrill <jason@yorick.cygnus.com>
1758
1759 * exception.cc (__check_eh_spec): Optimize a bit.
1760
1761 * exception.cc (__cp_pop_exception): Lose handler arg.
1762 * except.c (do_pop_exception): Likewise.
1763 (push_eh_cleanup): Let the cleanup mechanism supply the handler.
1764 (expand_end_catch_block): Likewise.
1765
74cd8397
JM
1766Fri Nov 28 01:58:14 1997 Jason Merrill <jason@yorick.cygnus.com>
1767
1768 * pt.c (check_explicit_specialization): Complain about using a
1769 template-id for a non-specialization.
1770
956d6950
JL
1771Fri Nov 28 12:35:19 1997 Scott Christley <scottc@net-community.com>
1772
1773 * repo.c: Prototype rindex only if needed.
1774 * xref.c: Likewise.
1775
74cd8397
JM
1776Fri Nov 28 01:56:35 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
1777
1778 * error.c (dump_decl): Handle TEMPLATE_ID_EXPR.
1779
aa598818
JM
1780Thu Nov 27 00:59:46 1997 Jason Merrill <jason@yorick.cygnus.com>
1781
c2840dfb
JM
1782 * typeck.c (build_const_cast): Handle references here instead of
1783 handing off to convert_to_reference.
1784
fb98cff6
JM
1785 * except.c: Lose Unexpected, SetTerminate, SetUnexpected,
1786 TerminateFunctionCall.
1787 (init_exception_processing): Likewise. Terminate et al are now
1788 the fns, not ADDR_EXPRs.
1789 (various): Lose redundant assemble_external calls.
1790 (do_unwind): s/BuiltinReturnAddress/builtin_return_address_fndecl/.
1791
77be6f82
JM
1792 * cp-tree.h (struct lang_decl_flags): Add comdat.
1793 (DECL_COMDAT): New macro.
1794 * decl.c (duplicate_decls): Propagate it.
1795 (cp_finish_decl): Handle it.
1796 * decl2.c (import_export_decl): Just set DECL_COMDAT on VAR_DECLs.
1797
aa598818
JM
1798 * class.c: Remove static pending_hard_virtuals.
1799 (add_virtual_function): Take pointers to pending_virtuals
1800 and pending_hard_virtuals.
1801 (finish_struct_1): Pass them. Declare pending_hard_virtuals.
1802
e872bb7a
JM
1803Wed Nov 26 20:28:49 1997 Jason Merrill <jason@yorick.cygnus.com>
1804
eb773359
JM
1805 * decl2.c (import_export_vtable): If we support one_only but not
1806 weak symbols, mark instantiated template vtables one_only.
1807 (import_export_decl): Likewise for tinfo functions.
1808 (finish_vtable_vardecl): Also write out vtables from explicitly
1809 instantiated template classes.
1810 * pt.c (mark_class_instantiated): Revert last change.
1811
e872bb7a
JM
1812 * except.c (expand_throw): Call mark_used on the destructor.
1813
956d6950
JL
1814Wed Nov 26 15:13:48 1997 Jeffrey A Law (law@cygnus.com)
1815
1816 * lex.c (lang_init): Enable flag_exceptions by default if no
1817 command line switch was specified.
1818
5ad5a526
MM
18191997-11-26 Mark Mitchell <mmitchell@usa.net>
1820
1821 * pt.c (unify): Handle `void' template parameters in
1822 specializations.
1823
92f5c135
JM
1824Wed Nov 26 01:11:24 1997 Jason Merrill <jason@yorick.cygnus.com>
1825
328d03d7
JM
1826 * rtti.c (build_dynamic_cast): Handle template case here.
1827 (build_dynamic_cast_1): Not here.
1828
19754d4c
JM
1829 * typeck2.c (digest_init): Make copies where appropriate.
1830
1831 * decl2.c (delete_sanity): resolve_offset_ref.
1832
92f5c135
JM
1833 * except.c (expand_start_catch_block): Fix catching a reference
1834 to pointer.
1835
1836Tue Nov 25 11:28:21 1997 Jason Merrill <jason@yorick.cygnus.com>
1837
1838 * init.c (build_new): Copy size to the saveable obstack.
1839
1840 * init.c (build_new): Stick a CLEANUP_POINT_EXPR inside the
1841 TRY_CATCH_EXPR for now.
1842
20b90169
JM
1843Mon Nov 24 12:15:55 1997 Jason Merrill <jason@yorick.cygnus.com>
1844
9b493293
JM
1845 * typeck.c (mark_addressable): Don't assume a FUNCTION_DECL
1846 has DECL_LANG_SPECIFIC.
1847
20b90169
JM
1848 * exception.cc (struct cp_eh_info): Add handlers field.
1849 (__cp_push_exception): Initialize it.
1850 (__cp_pop_exception): Decrement it. Don't pop unless it's 0.
1851 (__throw_bad_exception): Remove.
1852 * except.c (call_eh_info): Add handlers field.
1853 (get_eh_handlers): New fn.
1854 (push_eh_cleanup): Increment handlers.
1855
25d5eb3f
JM
1856Fri Nov 21 12:22:07 1997 Jason Merrill <jason@yorick.cygnus.com>
1857
6c20b7e9
JM
1858 * except.c (expand_start_eh_spec): Use the try/catch code.
1859 (expand_end_eh_spec): Likewise. Call __check_eh_spec instead of
1860 doing everything inline.
1861 (init_exception_processing): throw_type_match now takes
1862 const void pointers.
1863 * exception.cc (__check_eh_spec): New fn.
1864 * inc/exception: Neither terminate nor unexpected return.
1865 * decl.c: Make const_ptr_type_node public.
1866 * tinfo2.cc (__throw_type_match_rtti): Take the typeinfos constly.
1867
25d5eb3f
JM
1868 * except.c (expand_start_catch_block): We only need the rethrow
1869 region for non-sjlj exceptions.
1870 (expand_end_catch_block): Likewise. Use outer_context_label_stack.
1871
047f64a3
JM
1872Thu Nov 20 14:40:17 1997 Jason Merrill <jason@yorick.cygnus.com>
1873
ced78d8b
JM
1874 * Make-lang.in (CXX_LIB2FUNCS): Add new op new and op delete objs.
1875 (various.o): Likewise.
1876 * inc/new: Add placement deletes. Add throw specs for default new.
1877 * new.cc (set_new_handler): Move here from libgcc2.
1878 * new1.cc (new (nothrow)): Catch a bad_alloc thrown from the handler.
1879 (new): Move from libgcc2. Throw bad_alloc.
1880 * new2.cc: Move the rest of the op news and op deletes from libgcc2.
1881 * decl.c (init_decl_processing): Update exception specs on new and
1882 delete.
1883
047f64a3
JM
1884 * method.c (build_decl_overload_real): Don't mess with global
1885 placement delete.
1886
1887 * init.c (build_new): Check for null throw spec, not nothrow_t.
1888
1889 * decl.c (duplicate_decls): Don't complain about different exceptions
1890 from an internal declaration.
1891
1892 * call.c (build_op_delete_call): Fix check for member fns again.
1893
1894 * decl2.c (import_export_decl): Interface hackery affects
1895 virtual synthesized methods.
1896
5951f637
JM
1897Wed Nov 19 18:24:14 1997 Jason Merrill <jason@yorick.cygnus.com>
1898
f2d773a2
JM
1899 * decl.c (start_decl): Don't just complain about a mismatched
1900 scope, fix it.
1901
5951f637
JM
1902 * decl.c (make_implicit_typename): Handle case where t is not
1903 actually from context.
1904 * tree.c (get_type_decl): Lose identifier case.
1905 * spew.c (yylex): Lose useless call to identifer_typedecl_value.
1906 * parse.y (nonnested_type): Just use lookup_name.
1907 (complex_type_name): Just use IDENTIFIER_GLOBAL_VALUE.
1908
1909Wed Nov 19 11:45:07 1997 Michael Tiemann <tiemann@axon.cygnus.com>
1910
1911 * error.c (dump_function_name): Test DECL_LANG_SPECIFIC in case
1912 T was built in C language context (for example, by
1913 output_func_start_profiler).
1914
bd2a82a6
JM
1915Wed Nov 19 10:39:27 1997 Jason Merrill <jason@yorick.cygnus.com>
1916
1917 * decl.c (make_implicit_typename): New fn.
1918 (lookup_name_real): Use it. Use current_class_type as the context.
1919
8baa713c
BH
1920Mon Nov 17 23:42:03 1997 Bruno Haible <haible@ilog.fr>
1921
1922 * pt.c (do_poplevel): Don't prohibit jumps into this contour.
1923
37130ac3
JM
1924Mon Nov 17 02:01:28 1997 Jason Merrill <jason@yorick.cygnus.com>
1925
1926 * friend.c (do_friend): Warn about non-template friends in templates.
1927
1928 * call.c (build_op_delete_call): Fix handling of inherited delete.
1929
1930 * search.c (dfs_record_inheritance): Ignore template type parms.
1931
da4768fe
JM
1932Sat Nov 15 00:30:51 1997 Jason Merrill <jason@yorick.cygnus.com>
1933
1934 * call.c (build_new_op): Fix copy error.
1935 (build_op_new_call): New fn.
1936 (build_op_delete_call): New fn.
1937 * cp-tree.h: Declare them.
1938 * init.c (build_new): Use them. Support placement delete.
1939 (build_x_delete): Use build_op_delete_call.
1940 (build_delete): Likewise.
1941 * decl2.c (delete_sanity): Likewise.
1942 (coerce_delete_type): Don't complain about placement delete.
1943
2bb14213
JM
1944Thu Nov 13 01:52:36 1997 Jason Merrill <jason@yorick.cygnus.com>
1945
9babbf20
JM
1946 * call.c (build_new_function_call): Remove unused 'obj' parm.
1947 * cp-tree.h, typeck.c: Adjust.
1948
2bb14213
JM
1949 * init.c (build_new): Make the cleanup last longer.
1950 (expand_vec_init): Call do_pending_stack_adjust.
1951
a7d87521
JM
1952Wed Nov 12 11:04:33 1997 Jason Merrill <jason@yorick.cygnus.com>
1953
1954 * pt.c (do_type_instantiation): Fix typo.
1955 (mark_class_instantiated): If we support one_only but not weak
1956 symbols, don't mark this as known.
1957
2bd3bc6f 1958 * init.c (build_new): Handle vec delete in EH cleanup.
a7d87521 1959
6d2b1bee
BK
1960Wed Nov 12 08:11:55 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
1961
1962 * call.c (build_method_call): Call complete_type before checking
1963 for destructor.
1964
69f9c1f6
JW
1965Sun Nov 9 01:29:55 1997 Jim Wilson (wilson@cygnus.com)
1966
1967 * decl.c (add_block_current_level): Delete.
1968 * init.c (build_vec_delete_1): Delete build_block and
1969 add_block_current_level calls.
1970
1f109f0f
JM
1971Wed Nov 12 00:48:16 1997 Jason Merrill <jason@yorick.cygnus.com>
1972
1973 * init.c (build_new): Handle freeing allocated memory when the
1974 constructor throws.
1975
1976 * call.c (build_new_method_call): Fix flags arg.
1977
1978 * pt.c (do_type_instantiation): Don't try to instantiate
1979 member templates.
1980 (mark_decl_instantiated): If we support one_only but not
1981 weak symbols, mark this one_only.
1982 * decl2.c (import_export_vtable): Don't defer handling of vtables
1983 if MULTIPLE_SYMBOL_SPACES.
1984
0b3ca5ee
JM
1985Tue Nov 11 12:02:12 1997 Jason Merrill <jason@yorick.cygnus.com>
1986
1987 * except.c (expand_end_catch_block): Lose call to __sjpopnthrow.
1988
c0700ea5
JM
1989Tue Nov 11 02:53:44 1997 Jason Merrill <jason@lasher.cygnus.com>
1990
1991 * except.c (do_pop_exception): Return a value.
1992
00d3396f
JM
1993Mon Nov 10 20:25:31 1997 Jason Merrill <jason@yorick.cygnus.com>
1994
1995 * call.c (build_new_method_call): Handle getting a
1996 TEMPLATE_ID_EXPR around a TEMPLATE_DECL. Don't look for a field
1997 if we got template parms.
1998 * typeck.c (build_x_function_call): Remember the TEMPLATE_ID_EXPR,
1999 not just the args.
2000 * decl2.c (build_expr_from_tree): Tweak last change.
2001 * pt.c (tsubst_copy): Use get_first_fn instead of TREE_VALUE.
2002 (maybe_fold_nontype_arg): Split out from tsubst_copy.
2003 * tree.c (get_first_fn): Just return a TEMPLATE_ID_EXPR.
2004
2005Mon Nov 10 20:08:38 1997 Kriang Lerdsuwanakij <lerdsuwa@scf-fs.usc.edu>
2006
2007 * pt.c (tsubst_copy): Handle explicit template arguments in
2008 function calls.
2009 * typeck.c (build_x_function_call): Likewise.
2010 * decl2.c (build_expr_from_tree): Lookup function name if it
2011 hasn't been done.
2012
2013 * pt.c (tsubst): Instantiate template functions properly when
2014 template parameter does not appear in function arguments and return
2015 type.
2016 (comp_template_args): Handle member templates required by tsubst.
2017
343fdf03
JM
2018Mon Nov 10 20:08:38 1997 Jason Merrill <jason@yorick.cygnus.com>
2019
2020 * decl.c (grokdeclarator): Tweak conditions for pedwarn in
2021 previous change.
2022
2023Mon Nov 10 20:08:29 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
2024
2025 * pt.c (coerce_template_parms): Tweak error message.
2026
2027 * decl.c (grokdeclarator): If -Wreturn-type, warn everytime a
2028 return type defaults to `int', even if there are storage-class
2029 specifiers.
2030
c7ae64f2
JM
2031Mon Nov 10 03:04:20 1997 Jason Merrill <jason@yorick.cygnus.com>
2032
2033 Complete nested exception support.
2034 * except.c (do_pop_exception): Split out...
2035 (push_eh_cleanup): From here. Handle the EH region by hand.
2036 (expand_start_catch_block): Add a new level for the catch parm.
2037 Move the rethrow region outside the two cleanup regions.
2038 Protect the initializer for the catch parm with terminate.
2039 (expand_end_catch_block): Likewise. End the region for the eh_cleanup.
2040 * exception.cc (__cp_pop_exception): Now takes two parms. Handle
2041 popping off the middle of the stack.
2042 * tree.c (lvalue_p, real_lvalue_p): Handle TRY_CATCH_EXPR,
2043 WITH_CLEANUP_EXPR, and UNSAVE_EXPR.
2044 (build_cplus_new): Only wrap CALL_EXPRs.
2045 * init.c (expand_default_init): Handle a TRY_CATCH_EXPR around
2046 the constructor call.
2047
2048Sun Nov 9 18:00:26 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2049
2050 * Make-lang.in (c++.distdir): Make inc subdirectory.
2051
bd871063
JM
2052Fri Nov 7 11:57:28 1997 Jason Merrill <jason@yorick.cygnus.com>
2053
2054 * decl2.c (finish_file): Put back some code.
2055
4d6efa25
JM
2056Thu Nov 6 11:28:14 1997 Jason Merrill <jason@yorick.cygnus.com>
2057
2058 * decl2.c (finish_file): Remove redundant code.
2059 * method.c (emit_thunk): Don't let the backend defer generic thunks.
2060
95e8dcba
JM
2061Wed Nov 5 23:52:50 1997 Jason Merrill <jason@yorick.cygnus.com>
2062
2063 * except.c (call_eh_info): Split out...
2064 (push_eh_info): From here.
2065 (expand_builtin_throw): Use it.
2066 (expand_start_catch_block): Move region start back.
2067
30c317f5
DE
2068Tue Nov 4 13:45:10 1997 Doug Evans <devans@canuck.cygnus.com>
2069
2070 * lex.c (MULTIBYTE_CHARS): #undef if cross compiling.
2071 (real_yylex): Record wide strings using target endianness, not host.
2072
a8a63732
BK
20731997-11-03 Brendan Kehoe <brendan@lisa.cygnus.com>
2074
2075 * repo.c (rindex): Add decl unconditionally.
2076 (get_base_filename, open_repo_file): Don't cast rindex.
2077 * xref.c (rindex): Add decl unconditionally.
2078 (index): Remove unused decl.
2079 (open_xref_file): Don't cast rindex.
2080
b9ddcfac
JM
2081Sun Nov 2 15:04:12 1997 Jason Merrill <jason@yorick.cygnus.com>
2082
2083 * class.c (build_vbase_path): Propagate the result type properly.
2084
5a0fa1de
BK
20851997-11-01 Brendan Kehoe <brendan@lisa.cygnus.com>
2086
55e0182b
BK
2087 * except.c (expand_builtin_throw) [!DWARF2_UNWIND_INFO]: Replace
2088 remaining use of saved_throw_type with a call to get_eh_type.
2089
20901997-10-31 Brendan Kehoe <brendan@lisa.cygnus.com>
2091
b2bb2710
BK
2092 * lex.c (FILE_NAME_NONDIRECTORY): Delete macro.
2093 (file_name_nondirectory): New function, doing the same as the macro.
2094 (set_typedecl_interface_info): Use it instead of the macro.
2095 (check_newline): Likewise.
2096 (handle_cp_pragma): Likewise.
2097
2098 * repo.c (get_base_filename): Cast result of rindex to char*.
2099 (open_repo_file): Likewise.
2100 * xref.c (open_xref_file): Likewise.
2101 * error.c (dump_char): Make its arg int, not char.
2102
cf9d67e3
BK
2103 * except.c (push_eh_info): Pass the number of fields - 1 down, not
2104 the exact number of fields.
2105
6874c264
JM
2106Fri Oct 31 01:47:57 1997 Jason Merrill <jason@yorick.cygnus.com>
2107
2108 Support for nested exceptions.
2109 * tinfo2.cc (__is_pointer): New fn.
2110 * exception.cc (struct cp_eh_info): Define.
2111 (__cp_exception_info, __uncatch_exception): New fns.
2112 (__cp_push_exception, __cp_pop_exception): New fns.
2113 * except.c: Lose saved_throw_{type,value,cleanup,in_catch}.
2114 Lose empty_fndecl.
2115 (init_exception_processing): Likewise. __eh_pc is now external.
2116 (push_eh_info): New fn.
2117 (get_eh_{info,value,type,caught}): New fns.
2118 (push_eh_cleanup): Just call __cp_pop_exception.
2119 (expand_start_catch_block): Use push_eh_info. Start the eh region
2120 sooner.
2121 (expand_end_eh_spec): Use push_eh_info.
2122 (expand_throw): Call __cp_push_exception to set up the exception info.
2123 Just pass the destructor or 0 as the cleanup. Call __uncatch_exception
2124 when we rethrow.
2125 (expand_builtin_throw): Don't refer to empty_fndecl.
2126
7b4f18a3
JM
2127Thu Oct 23 02:01:30 1997 Jason Merrill <jason@yorick.cygnus.com>
2128
2129 * pt.c (instantiate_decl): SET_DECL_IMPLICIT_INSTANTIATION on new decl.
2130
4966381a
BK
21311997-10-22 Brendan Kehoe <brendan@cygnus.com>
2132
2133 * method.c (build_template_parm_names, build_decl_overload_real):
2134 Add static to definitions.
2135 * pt.c (add_to_template_args, note_template_header,
2136 processing_explicit_specialization, type_unification_real): Likewise.
2137 ({determine,check}_explicit_specialization): Use a single string for
2138 error messages.
2139
92b96838
JM
2140Mon Oct 20 12:06:34 1997 Jason Merrill <jason@yorick.cygnus.com>
2141
2142 * except.c (expand_exception_blocks): Call do_pending_stack_adust.
2143 (expand_end_catch_block): Likewise.
2144 (expand_end_eh_spec): Likewise.
2145
92eca640
MM
2146Mon Oct 20 11:44:20 1997 Mark Mitchell <mmitchell@usa.net>
2147
2148 * decl.c (duplicate_decls): Handle template specializations
2149 correctly.
2150 * error.c (dump_function_name): Fix printing of specializations of
2151 member functions that are not member templates.
2152 * cp-tree.h (processing_specialization): Make global.
2153 * pt.c (processing_specialization): Likewise.
2154 * lex.c (cons_up_default_function): Save and restore
2155 processing_specialization to avoid confusion.
2156
a6967cc0
JM
2157Mon Oct 20 10:52:22 1997 Jason Merrill <jason@yorick.cygnus.com>
2158
2159 * decl.c (init_decl_processing): Give null_node unknown* type.
2160 * typeck.c (comp_target_types): Handle UNKNOWN_TYPE.
2161 (common_type): Likewise.
2162 * error.c (args_as_string): Recognize null_node.
e9a25f70
JL
2163
2164Sun Oct 19 09:13:01 1997 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
2165
2166 * typeck.c (rationalize_conditional_expr): Handle {MIN,MAX}_EXPR.
2167 (unary_complex_lvalue): Call it for {MIN,MAX}_EXPR.
2168
2169 * decl.c (init_decl_processing): Call using_eh_for_cleanups.
2170
2171 * Make-lang.in (g++): Include prefix.o.
a6967cc0 2172
bdd7e652
JG
2173Thu Oct 16 15:31:09 1997 Judy Goldberg <judygold@sanwafp.com>
2174
2175 * pt.c (determine_explicit_specialization): Initialize "dummy"
2176 to keep Purify quiet.
2177
2636fde4
JM
2178Thu Oct 16 00:14:48 1997 Jason Merrill <jason@yorick.cygnus.com>
2179
2180 * method.c (build_overload_value): Handle TEMPLATE_CONST_PARMs here.
2181 (build_overload_int): Not here.
2182
2183Wed Oct 15 00:35:28 1997 Mike Stump <mrs@wrs.com>
2184
2185 * class.c (build_type_pathname): Remove.
2186 (prepare_fresh_vtable): Fix problem with complex MI vtable names.
2187
32066e1a
BK
21881997-10-14 Brendan Kehoe <brendan@lisa.cygnus.com>
2189
2190 * parse.y (unary_expr): Give a pedwarn if someone tries to use the
2191 &&label GNU extension.
2192
1f06b267
MM
2193Tue Oct 14 12:01:00 1997 Mark Mitchell <mmitchell@usa.net>
2194
2195 * decl.c (pushtag): Unset DECL_ASSEMBLER_NAME before setting it,
2196 so as to avoid incorrect manglings.
2197 * method.c (build_decl_overload_real): Don't mangle return types
2198 for constructors.
2199
e66d884e
JM
2200Tue Oct 14 11:46:14 1997 Jason Merrill <jason@yorick.cygnus.com>
2201
2202 * cp-tree.h (scratchalloc, build_scratch_list, make_scratch_vec,
2203 scratch_tree_cons): Define as macros for now.
2204 * call.c, class.c, cvt.c, decl.c, decl2.c, except.c, expr.c, init.c,
2205 lex.c, method.c, parse.y, pt.c, rtti.c, search.c, tree.c, typeck.c,
2206 typeck2.c: Use them and the expression_obstack variants.
dae1d6f6 2207
e66d884e 2208Mon Oct 13 17:41:26 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
dae1d6f6 2209
e66d884e
JM
2210 * decl.c (store_return_init): Allow classes with explicit ctors to
2211 be used with the named return values extension.
dae1d6f6 2212
7ac63bca
JM
2213Fri Oct 10 12:21:11 1997 Jason Merrill <jason@yorick.cygnus.com>
2214
2215 * pt.c (instantiate_decl): Fix previous change.
2216
fee23f54
JM
2217Thu Oct 9 12:08:21 1997 Jason Merrill <jason@yorick.cygnus.com>
2218
2219 * pt.c (tsubst): Fix thinko.
2220 (instantiate_decl): Really use the original template.
2221
2222 * call.c (build_new_method_call): Use simple constructor_name for
2223 error messages.
2224
c8907853
JL
2225Wed Oct 8 22:44:42 1997 Jeffrey A Law (law@cygnus.com)
2226
2227 * method.c (build_underscore_int): Don't use ANSI specific
2228 features.
2229
3bd1e206
JM
2230Wed Oct 8 00:18:22 1997 Jason Merrill <jason@yorick.cygnus.com>
2231
2232 * decl2.c (finish_prevtable_vardecl): Check DECL_REALLY_EXTERN
2233 for our key method; it might have been inlined by -O3.
2234
ffb690bd
JM
2235Tue Oct 7 23:00:12 1997 Mark Mitchell <mmitchell@usa.net>
2236
2237 * decl.c (make_typename_type): Do not try to call lookup_field for
2238 non-aggregate types.
2239
2240Tue Oct 7 22:52:10 1997 Jason Merrill <jason@yorick.cygnus.com>
2241
2242 * typeck.c (build_reinterpret_cast): Tweak.
2243
2244Tue Oct 7 22:45:31 1997 Alexandre Oliva <oliva@dcc.unicamp.br>
2245
2246 * typeck.c (build_reinterpret_cast): converting a void pointer
2247 to function pointer with a reinterpret_cast produces a warning
2248 if -pedantic is issued
2249
2250Tue Oct 7 22:43:43 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
2251
2252 * typeck.c (c_expand_return): Don't warn about returning a
2253 reference-type variable as a reference.
2254
a6f02587
JM
2255Tue Oct 7 21:11:22 1997 Jason Merrill <jason@yorick.cygnus.com>
2256
2257 * method.c (build_static_name): Fix typo.
2258
22591997-10-07 Brendan Kehoe <brendan@lisa.cygnus.com>
2260
2261 * decl.c (duplicate_decls): Make sure DECL_LANG_SPECIFIC is set on
2262 OLDDECL before we try to do DECL_USE_TEMPLATE.
2263
c32381b1
JM
2264Tue Oct 7 00:48:36 1997 Jason Merrill <jason@yorick.cygnus.com>
2265
2266 * decl.c (duplicate_decls): Don't warn about template instances.
2267
2268 * typeck.c (mark_addressable): Lose ancient code that unsets
2269 DECL_EXTERNAL.
2270
2271 * pt.c (do_decl_instantiation): Lose support for instantiating
2272 non-templates.
2273
2274 * call.c (build_new_function_call): Fix handling of null explicit
2275 template args.
2276 (build_new_method_call): Likewise.
2277
2278Mon Oct 6 23:44:34 1997 Mark Mitchell <mmitchell@usa.net>
2279
2280 * method.c (build_underscore_int): Fix typo.
2281
3f2270ec
BK
22821997-10-06 Brendan Kehoe <brendan@lisa.cygnus.com>
2283
2284 * tree.c (print_lang_statistics): #if 0 call to
2285 print_inline_obstack_statistics until its definition is checked in.
2286
27bb8339
JM
2287Mon Oct 6 09:27:29 1997 Jason Merrill <jason@yorick.cygnus.com>
2288
c32381b1
JM
2289 * decl2.c (finish_file): Move dump_tree_statistics to end.
2290
27bb8339
JM
2291 * pt.c (instantiate_decl): Look for the original template.
2292 (tsubst): Set DECL_IMPLICIT_INSTANTIATION on partial instantiations
2293 of member templates.
2294
5408ce78
JM
2295Wed Oct 1 08:41:38 1997 Jason Merrill <jason@yorick.cygnus.com>
2296
2297 * Makefile.in (g++FAQ.*): New rules.
2298 (CONFLICTS): Update.
2299 * g++FAQ.texi: Moved from libg++.
2300
2301 * parse.y (PFUNCNAME): Only specify the type once.
2302
a3f44a13
BK
23031997-10-01 Brendan Kehoe <brendan@lasher.cygnus.com>
2304
2305 * lex.c (real_yylex): Clean up the code to fully behave the way
2306 the c-lex.c parser does for complex and real numbers.
2307
5a45bc3e
JM
2308Tue Sep 30 08:51:36 1997 Jason Merrill <jason@yorick.cygnus.com>
2309
2310 * method.c (build_decl_overload_real): Reformat.
2311
b7067a12
JM
2312Tue Sep 30 00:18:26 1997 Jason Merrill <jason@yorick.cygnus.com>
2313
2314 * method.c (synthesize_method): If at_eof, determine our linkage.
2315
4f6140be
PE
23161997-09-29 Paul Eggert <eggert@twinsun.com>
2317
2318 * lex.c (real_yylex): Treat `$' just like `_', except issue a
2319 diagnostic if !dollars_in_ident or if pedantic.
2320
2321 * lang-specs.h (@c++): -ansi no longer implies -$.
2322
2323 * decl2.c (lang_decode_option):
2324 -traditional and -ansi now do not mess with
2325 dollars_in_ident.
2326
9f617717
L
2327Mon Sep 29 19:57:51 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
2328
2329 * Makefile.in (parse.o, decl.o): Also depend on
2330 $(srcdir)/../except.h $(srcdir)/../output.h.
2331 (decl2.o): Also depend on $(srcdir)/../expr.h ../insn-codes.h
2332 $(srcdir)/../except.h $(srcdir)/../output.h.
2333 (typeck.o, init.o): Also depend on $(srcdir)/../expr.h
2334 ../insn-codes.h.
2335
2336 * call.c, cp-tree.h, decl.c, tree.c: Finish prototyping.
2337
2338 * expr.c (cplus_expand_expr): Make it static.
2339
2340 * decl2.c, init.c, typeck.c: Include "expr.h".
2341 (expand_expr): Use proper values when calling the function.
2342
0c4b14c4
JM
2343Mon Sep 29 11:05:54 1997 Alexandre Oliva <oliva@dcc.unicamp.br>
2344
2345 * lang-options.h: new -Wold-style-cast flag.
2346 * cp-tree.h (warn_old_style_cast): new variable.
2347 * decl2.c (warn_old_style_cast): ditto.
2348 (lang_decode_option): support -Wold-style-cast.
2349 (reparse_absdcl_as_casts): produce old-style-cast warning.
2350
2351Mon Sep 29 09:20:53 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
2352
2353 * decl.c (cp_finish_decl): Allow expand_aggr_init to set
2354 TREE_USED, reset value based on already_used.
2355
2356 * init.c (expand_member_init): Revert change.
2357
893de33c
JM
2358Mon Sep 29 08:57:53 1997 Jason Merrill <jason@yorick.cygnus.com>
2359
2360 * cp-tree.h, decl.c, decl2.c, pt.c:
2361 Lose DECL_C_STATIC and DECL_PUBLIC. Don't pretend statics are public.
2362
2363 * decl2.c (lang_decode_option): Add missing ;.
2364
386b8a85
JM
2365Sat Sep 27 16:22:48 1997 Jason Merrill <jason@yorick.cygnus.com>
2366
2367 * friend.c (do_friend): Disable injection for all template-derived
2368 decls.
2369 * decl2.c (lang_decode_option): Handle -fguiding-decls.
2370 * parse.y (notype_template_declarator): New nonterminal.
2371 (direct_notype_declarator): Use it.
2372 (complex_direct_notype_declarator): Likewise.
2373 (object_template_id): Accept any kind of identifier after TEMPLATE.
2374 (notype_qualified_id): Don't add template declarators here.
2375
2376Sat Sep 27 16:21:58 1997 Mark Mitchell <mmitchell@usa.net>
2377
2378 * call.c (add_template_candidate): Add explicit_targs parameter.
2379 (build_scoped_method_call): Use it.
2380 (build_overload_call_real): Likewise.
2381 (build_user_type_conversion_1): Likewise.
2382 (build_new_function_call): Likewise.
2383 (build_object_call): Likewise.
2384 (build_new_op): Likewise.
2385 (build_new_method_call): Likewise.
2386 (build_new_function_call): Handle TEMPLATE_ID_EXPR.
2387 (build_new_method_call): Likewise.
2388
2389 * class.c (finish_struct_methods): Add specialization pass to
2390 determine which methods were specializing which other methods.
2391 (instantiate_type): Handle TEMPLATE_ID_EXPR.
2392
2393 * cp-tree.def (TEMPLATE_ID_EXPR): New tree code.
2394
2395 * cp-tree.h (name_mangling_version): New variable.
2396 (flag_guiding_decls): Likewise.
2397 (build_template_decl_overload): New function.
2398 (begin_specialization): Likewise.
2399 (reset_specialization): Likewise.
2400 (end_specialization): Likewise.
2401 (determine_explicit_specialization): Likewise.
2402 (check_explicit_specialization): Likewise.
2403 (lookup_template_function): Likewise.
2404 (fn_type_unification): Add explicit_targs parameter.
2405 (type_unification): Likewise.
2406
2407 * decl.c (duplicate_decls): Add smarts for explicit
2408 specializations.
2409 (grokdeclarator): Handle TEMPLATE_ID_EXPR, and function
2410 specializations.
2411 (grokfndecl): Call check_explicit_specialization.
2412
2413 * decl2.c (lang_decode_option): Handle -fname-mangling-version.
2414 (build_expr_from_tree): Handle TEMPLATE_ID_EXPR.
2415 (check_classfn): Handle specializations.
2416
2417 * error.c (dump_function_name): Print specialization arguments.
2418
2419 * friend.c (do_friend): Don't call pushdecl for template
2420 instantiations.
2421
2422 * init.c (build_member_call): Handle TEMPLATE_ID_EXPR.
2423
2424 * lang-options.h: Add -fname-mangling-version, -fguiding-decls,
2425 and -fno-guiding-decls.
2426
2427 * lex.c (identifier_type): Return PFUNCNAME for template function
2428 names.
2429
2430 * method.c (build_decl_overload_real): New function.
2431 (build_template_parm_names): New function.
2432 (build_overload_identifier): Use it.
2433 (build_underscore_int): New function.
2434 (build_overload_int): Use it. Add levels for template
2435 parameters.
2436 (build_overload_name): Likewise. Also, handle TYPENAME_TYPEs.
2437 (build_overload_nested_names): Handle template type parameters.
2438 (build_template_decl_overload): New function.
2439
2440 * parse.y (YYSTYPE): New ntype member.
2441 (nested_name_specifier): Use it.
2442 (nested_name_specifier_1): Likewise.
2443 (PFUNCNAME): New token.
2444 (template_id, object_template_id): New non-terminals.
2445 (template_parm_list): Note specializations.
2446 (template_def): Likewise.
2447 (structsp): Likewise.
2448 (fn.def2): Handle member template specializations.
2449 (component_decl_1): Likewise.
2450 (direct_notype_declarator): Handle template-ids.
2451 (component_decl_1): Likewise.
2452 (direct_notype_declarator): Handle template-ids.
2453 (primary): Handle TEMPLATE_ID_EXPR, and template-ids.
2454
2455 * pt.c (processing_specializations): New variable.
2456 (template_header_count): Likewise.
2457 (type_unification_real): New function.
2458 (processing_explicit_specialization): Likewise.
2459 (note_template_header): Likewise.
2460 (is_member_template): Handle specializations.
2461 (end_template_decl): Call reset_specialization.
2462 (push_template_decl): Handle member template specializations.
2463 (tsubst): Likewise.
2464 (tsubst_copy): Handle TEMPLATE_ID_EXPR.
2465 (instantiate_template): Handle specializations.
2466 (instantiate_decl): Likewise.
2467 (fn_type_unification): Handle explicit_targs.
2468 (type_unification): Likewise. Allow incomplete unification
2469 without an error message, if allow_incomplete.
2470 (get_bindings): Use new calling sequence for fn_type_unification.
2471
2472 * spew.c (yylex): Handle PFUNCNAME.
2473
2474 * tree.c (is_overloaded_fn): Handle TEMPLATE_ID_EXPR.
2475 (really_overloaded_fn): Likewise.
2476 (get_first_fn): Handle function templates.
2477
2478 * typeck.c (build_x_function_call): Use really_overloaded_fn.
2479 Handle TEMPLATE_ID_EXPR.
2480 (build_x_unary_op): Likewise.
2481 (build_unary_op): Likewise.
2482 (mark_addressable): Templates whose address is taken are marked
2483 as used.
2484
b9620d0e
AS
24851997-09-25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
2486
2487 * decl.c (init_decl_processing): Declare __builtin_constant_p as
2488 accepting any kind of type, not only int.
2489
405a745b
JM
2490Fri Sep 26 00:22:56 1997 Jason Merrill <jason@yorick.cygnus.com>
2491
1052cd65
JM
2492 * search.c (get_matching_virtual): Notice virtual bases when sorrying
2493 about covariant returns.
2494
405a745b
JM
2495 * parse.y (member_init): Also imply typename here. Remove ancient
2496 extension for initializing base members.
2497
653cc74a
JM
2498Thu Sep 25 11:11:13 1997 Jason Merrill <jason@yorick.cygnus.com>
2499
2500 Handle multi-level typenames and implicit typename in base list.
2501 * parse.y (typename_sub{,[0-2]}): New rules.
2502 (structsp, rule TYPENAME_KEYWORD): Use typename_sub.
2503 (nonnested_type): New rule.
2504 (complete_type_name): Use it.
2505 (base_class.1): Use typename_sub and nonnested_type.
2506 (nested_name_specifier): Don't elide std:: here.
2507 * decl.c (make_typename_type): Handle getting a type for NAME.
2508 (lookup_name_real): Turn std:: into :: here.
2509
2510 Rvalue conversions were removed in London.
2511 * call.c (is_subseq): Don't consider lvalue transformations.
2512 (build_conv): LVALUE_CONV and RVALUE_CONV get IDENTITY_RANK.
2513 (joust): Reenable ?: kludge.
2514
59f1f2c4
BK
25151997-09-22 Brendan Kehoe <brendan@lisa.cygnus.com>
2516
2517 * decl.c (start_function): Up warning of no return type to be a
2518 pedwarn.
2519
249555b0
BK
2520Mon Sep 22 14:15:34 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
2521
2522 * init.c (expand_member_init): Don't set TREE_USED.
2523 * decl.c (cp_finish_decl): Mark decls used if type has TREE_USED
2524 set,don't clear TREE_USED wholesale.
2525
b82b76c6
JM
2526Sat Sep 20 15:31:00 1997 Jason Merrill <jason@yorick.cygnus.com>
2527
2528 * call.c (build_over_call): Do require_complete_type before
2529 build_cplus_new.
2530
238109cd
JM
2531Thu Sep 18 16:47:52 1997 Jason Merrill <jason@yorick.cygnus.com>
2532
2533 * search.c (lookup_field): Call complete_type in all cases.
2534
2535 * decl.c (finish_function): Just warn about flowing off the end.
2536
66f2e88d
JM
2537Wed Sep 17 10:31:25 1997 Jason Merrill <jason@yorick.cygnus.com>
2538
2539 * decl.c (grokparms): Don't bash a permanent list node if we're
2540 in a function.
2541
8552680f
BK
25421997-09-17 Brendan Kehoe <brendan@lisa.cygnus.com>
2543
2544 * Makefile.in (CONFLICTS): Fix s/r conflict count to 18.
2545
5c825fc2
JM
2546Tue Sep 16 14:06:56 1997 Jason Merrill <jason@yorick.cygnus.com>
2547
d5467e20
JM
2548 * call.c (build_new_op): Give better error for syntactically
2549 correct, but semantically invalid, use of undeclared template.
2550
549121cd
JM
2551 * call.c (compare_qual): Handle pmfs.
2552
5c825fc2
JM
2553 * decl.c (store_parm_decls): last_parm_cleanup_insn is the insn
2554 after the exception spec.
2555
18a7cd24
JM
2556Mon Sep 15 11:52:13 1997 Jason Merrill <jason@yorick.cygnus.com>
2557
5168dcfc
JM
2558 * call.c (null_ptr_cst_p): Integer type, not integral type.
2559
18a7cd24
JM
2560 * call.c (joust): Disable warnings until they can be moved to the
2561 right place.
2562
0520f6c0
PB
2563Fri Sep 12 16:11:13 1997 Per Bothner <bothner@cygnus.com>
2564
2565 * Makefile.in, config-lang.in: Convert to autoconf.
2566
85b71cf2
JM
2567Thu Sep 11 17:14:55 1997 Jason Merrill <jason@yorick.cygnus.com>
2568
2569 * decl.c (lookup_name_real): Add implicit 'typename' to types from
2570 base classes.
2571
2572 * pt.c (most_specialized_class): Fix typo.
2573 (tsubst): Move constant folding to TREE_VEC case.
2574
2575Thu Sep 11 10:08:45 1997 Mark Mitchell <mmitchell@usa.net>
2576
2577 * pt.c (do_poplevel): Don't warn about unused local variables
2578 while processing_template_decl since we don't always know whether
2579 or not they will need constructing/destructing.
2580
2581 * pt.c (uses_template_parms): Check the values of an enumeration
2582 type to make sure they don't depend on template parms.
2583
2584 * decl.c (make_typename_type): Don't lookup the field if the
2585 context uses template parms, even if we're not
2586 processing_template_decl at the moment.
2587
2588 * pt.c (coerce_template_parms): Avoid looking at the
2589 TYPE_LANG_DECL portion of a typename type, since there won't be
2590 one.
2591 (tsubst): Do constant folding as necessary to make sure that
2592 arguments passed to lookup_template_class really are constants.
2593
ca55abae
JM
2594Wed Sep 10 11:21:55 1997 Jason Merrill <jason@yorick.cygnus.com>
2595
2596 * except.c (expand_builtin_throw): #ifndef DWARF2_UNWIND_INFO.
2597 * decl2.c (finish_file): Only register exception tables if we
2598 need to.
2599
2600 * decl.c (init_decl_processing): Add __builtin_[fs]p.
2601
2ca340ae
JM
2602Tue Sep 9 19:49:38 1997 Jason Merrill <jason@yorick.cygnus.com>
2603
2604 * pt.c (unify): Just return 0 for a TYPENAME_TYPE.
2605
03555413
MM
2606Tue Sep 9 17:57:25 1997 Mark Mitchell <mmitchell@usa.net>
2607
2608 * error.c (dump_decl): Avoid crashing when presented with a
81e98a98
JM
2609 uninitialized constant, as can occur with a template parameter.
2610 (dump_expr): Make sure that there are enough levels of
2611 current_template_parms before we start diving through them.
03555413 2612
b0d75c1e
BK
26131997-09-09 Brendan Kehoe <brendan@lisa.cygnus.com>
2614
2615 * typeck.c (build_indirect_ref): Heed FLAG_VOLATILE similar to
2616 c-typeck.c.
2617
a2676865
JM
2618Tue Sep 9 09:36:39 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
2619
2620 * except.c (expand_throw): Call build_delete for all
2621 exception types, not just objects with destructors.
2622
b3d5a58b
JG
2623Mon Sep 8 02:33:20 1997 Jody Goldberg <jodyg@idt.net>
2624
2625 * decl.c (current_local_enum): Remove static.
2626 * pt.c (tsubst_enum): Save and restore value of current_local_enum
2627 in case template is expanded in enum decl.
2628 (instantiate_class_template) : Use new tsubst_enum signature.
2629 (tsubst_expr): Likewise.
2630
786b5245
MM
2631Mon Sep 8 01:21:43 1997 Mark Mitchell <mmitchell@usa.net>
2632
2633 * pt.c (begin_member_template_processing): Take a function as
2634 argument, not a set of template arguments. Use the template
2635 parameters, rather than the arguments. Handle non-type parameters
2636 correctly. Push a binding level for the parameters so that multiple
2637 member templates using the same parameter names can be declared.
2638 (end_member_template_processing): Pop the binding level.
2639 (push_template_decl): Mark member templates as static when
2640 appropriate.
2641
2642 * lex.c (do_pending_inlines): Pass the function, not its template
2643 arguments, to begin_member_template_processing.
2644 (process_next_inline): Likewise.
2645 (do_pending_defargs): Likewise.
2646
2647 * error.c (dump_expr): Obtain the correct declaration for a
2648 TEMPLATE_CONST_PARM.
2649
2650 * call.c (add_template_conv_candidate): New function.
2651 (build_object_call): Handle member templates, as done in the other
2652 build_ functions.
2653
aa5f3bad
MM
2654Sat Sep 6 10:20:27 1997 Mark Mitchell <mmitchell@usa.net>
2655
2656 * decl.c (replace_defag): Undo previous change.
2657 * lex.c (do_pending_defargs): Deal with member templates.
2658
2659 * pt.c (is_member_template): Avoid crashing when passed a
2660 non-function argument.
2661
98c1c668
JM
2662Fri Sep 5 17:27:38 1997 Jason Merrill <jason@yorick.cygnus.com>
2663
2664 * class.c (grow_method): Remove check for redeclaration.
2665
a2676865
JM
2666Fri Sep 5 01:37:17 1997 Mark Mitchell <mmitchell@usa.net>
2667
2668 * cp-tree.h (INNERMOST_TEMPLATE_PARMS): New macro.
2669 (DECL_INNERMOST_TEMPLATE_PARMS): Likewise.
2670 (PRIMARY_TEMPLATE_P): Use it.
2671 * call.c (build_overload_call_real): Use it.
2672 * class.c (instantiate_type): Likewise.
2673 * decl.c (decls_match): Likewise.
2674 * method.c (build_overload_identifier): Likewise.
2675 * pt.c (push_template_decl): Likewise.
2676 (classtype_mangled_name): Likewise.
2677 (lookup_template_class): Likewise.
2678
2679 * cp-tree.h (DECL_NTPARMS): Change name from DECL_NT_PARMS to
2680 DECL_NTPARMS to conform to usage elsewhere.
2681 * call.c (add_template_candidate): Likewise.
2682 * class.c (instantiate_type): Likewise.
2683 * pt.c (instantiate_template): Likewise.
2684 (get_bindings): Likewise.
2685
2686 * class.c (grow_method): Use DECL_FUNCTION_TEMPLATE_P instead of
2687 is_member_template.
2688
2689 * pt.c (unify): Undo changes to allow multiple levels of template
2690 parameters.
2691 (type_unification): Likewise.
2692 (fn_type_unification): Likewise.
2693 (get_class_bindings): Likewise.
2694 * cp-tree.h (Likewise).
2695
2696 * decl.c (replace_defarg): Check that the type of the default
2697 parameter does not invlove a template type before complaining
2698 about the initialization.
2699
2700 * error.c (dump_expr): Deal with template constant parameters in
2701 member templates correctly.
2702
2703 * pt.c (is_member_template): Deal with class specializations
2704 correctly.
2705 (tsubst): Handle "partial instantiation" of member templates
2706 correctly.
2707
98c1c668
JM
2708Wed Sep 3 12:30:24 1997 Mark Mitchell <mmitchell@usa.net>
2709
2710 * pt.c (type_unification): Change calling squence to allow for
2711 multiple levels of template parameters.
2712 (tsubst_expr): Likewise.
2713 (tsubst): Likewise.
2714 (tsubst_copy): Likewise.
2715 (instantiate_template): Likewise.
2716 (unify): Likewise.
2717 * call.c (build_overload_call_real): Use it.
2718 (add_builtin_candidate): Use it.
2719 (build_new_method_call): Use it.
2720 * class.c (instantiate_type): Use it.
2721 * decl.c (grokdeclarator): Use it.
2722 * decl2.c (finish_file): Use it.
2723 * method.c (build_overload_identifier): Use it.
2724
2725 * call.c (add_template_candidate): Add additional parameter for
2726 the function return type. Call fn_type_unification istead of
2727 type_unification.
2728 (build_user_type_conversion_1): Handle member templates.
2729 (build_new_function_call): Likewise.
2730 (build_new_op): Likewise.
2731 (build_new_method_call): Likewise.
2732
2733 * class.c (grow_method): Don't give an error message indicating
2734 that two member templates with the same name are ambiguous.
2735 (finish_struct): Treat member template functions just like member
2736 functions.
2737
2738 * cp-tree.h (check_member_template): Add declaration.
2739 (begin_member_template_processing): Likewise.
2740 (end_member_template_processing): Likewise.
2741 (fn_type_unification): Likewise.
2742 (is_member_template): Likewise.
2743 (tsubst): Change prototype.
2744 (tsubst_expr): Likewise.
2745 (tsubst_copy): Likewise.
2746 (instantiate_template): Likewise.
2747 (get_bindings): Likewise.
2748
2749 * decl.c (decls_match): Handle multiple levels of template
2750 parameters.
2751 (pushdecl): Handle template type params just like other type
2752 declarations.
2753 (push_class_level_binding): Return immediately if the
2754 class_binding_level is NULL.
2755 (grokfndecl): If check_classfn() returns a member_template, use
2756 the result of the template, not the template itself.
2757
2758 * decl2.c (check_member_template): New function. Check to see
2759 that the entity declared to be a member template can be one.
2760 (check_classfn): Allow redeclaration of member template functions
2761 with different types; the new functions can be specializations or
2762 explicit instantiations.
2763
2764 * error.c (dump_decl): Handle multiple levels of template
2765 parameters.
2766 (dump_function_decl): Update to handle function templates.
2767
2768 * lex.c (do_pending_inlines): Set up template parameter context
2769 for member templates.
2770 (process_next_inline): Likewise.
2771
2772 * method. (build_overload_identifier): Adjust for multiple levels
2773 of template parameters.
2774
2775 * parse.y (fn.def2): Add member templates.
2776 (component_decl_1): Likewise.
2777
2778 * pt.c (begin_member_template_processing): New function.
2779 (end_member_template_processing): Likewise.
2780 (is_member_template): Likewise.
2781 (fn_type_unification): Likewise.
2782 (current_template_parms): Return a vector of all the template
2783 parms, not just the innermost level of parms.
2784 (push_template_decl): Deal with the possibility of member
2785 templates.
2786 (lookup_template_class): Likewise.
2787 (uses_template_parms): Likewise.
2788 (tsubst): Modify processing to TEMPLATE_TYPE_PARM and
2789 TEMPLATE_CONST_PARM to deal with multiple levels of template
2790 arguments. Add processing of TEMPLATE_DECL to produce new
2791 TEMPLATE_DECLs from old ones.
2792 (do_decl_instantiation): Handle member templates.
2793
2794 * search.c (lookup_fnfields_1): Handle member template conversion
2795 operators.
2796
2797 * tree.c (cp_tree_equal): Check the levels, as well as the
2798 indices, of TEMPLATE_CONST_PARMs.
2799
2800 * typeck.c (comptypes): Check the levels, as well as the indices,
2801 fo TEMPLATE_TYPE_PARMs.
2802 (build_x_function_call): Treat member templates like member
2803 functions.
2804
03e70705
JM
2805Wed Sep 3 11:09:25 1997 Jason Merrill <jason@yorick.cygnus.com>
2806
c1bc6829
JM
2807 * typeck.c (c_expand_return): Always convert_for_initialization
2808 before checking for returning a pointer to local.
2809
03e70705
JM
2810 * pt.c (type_unification): If strict and the function parm doesn't
2811 use template parms, just compare types.
2812
2813Wed Sep 3 10:35:49 1997 Klaus Espenlaub <kespenla@student.informatik.uni-ulm.de>
3d015f46
KE
2814
2815 * method.c (build_overloaded_value): Replace direct call
2816 to the floating point emulator with REAL_VALUE_TO_DECIMAL macro.
2817
056c014d
JM
2818Wed Sep 3 00:02:53 1997 Jason Merrill <jason@yorick.cygnus.com>
2819
2820 * typeck.c (convert_arguments): Don't arbitrarily choose the first
2821 of a set of overloaded functions.
2822
ca79f85d
JM
2823Tue Sep 2 12:09:13 1997 Jason Merrill <jason@yorick.cygnus.com>
2824
056c014d
JM
2825 * lex.c (real_yylex): Don't elide __FUNCTION__.
2826
37dac039
JM
2827 * method.c (build_overload_value): Add in_template parm.
2828 (build_overload_int): Likewise.
2829 (build_overload_identifier): Pass it.
2830
2831 * decl.c (duplicate_decls): Don't bash a previous template
2832 definition with a redeclaration.
2833
ca79f85d
JM
2834 * pt.c (unify): float doesn't match double.
2835
2836 * pt.c (do_type_instantiation): Handle getting a _TYPE or a
2837 TYPE_DECL. Handle getting non-template types.
2838 * parse.y (explicit_instantiation): Use typespec instead of
2839 aggr template_type.
2840
2841Tue Sep 2 10:27:08 1997 Richard Henderson <rth@cygnus.com>
2842
2843 * typeck.c (build_ptrmemfunc1): Clean up ptr->int cast warnings.
2844
238109cd 2845Mon Sep 1 13:19:04 1997 Eugene Mamchits <eugin@ips.ras.ru>
7e3af374 2846
03e70705
JM
2847 * call.c (add_builtin_candidate): Add missing TREE_TYPE.
2848 (compare_ics): Likewise.
238109cd
JM
2849
2850Mon Sep 1 13:19:04 1997 Jason Merrill <jason@yorick.cygnus.com>
03e70705
JM
2851
2852 * call.c (joust): Warn about choosing one conversion op over
2853 another because of 'this' argument when the other return type is
2854 better.
2855 (source_type): New fn.
2856
7e3af374
JM
2857 * call.c (build_new_op): Strip leading REF_BIND from first operand
2858 to builtin operator.
2859
2860 * decl2.c (mark_vtable_entries): Mark abort_fndecl as used when we
2861 use its RTL.
2862
8e69329a
JM
2863Thu Aug 28 09:45:23 1997 Jason Merrill <jason@yorick.cygnus.com>
2864
2865 * call.c (null_ptr_cst_p): Remove support for (void*)0.
2866
5ddc28a5
JL
2867Wed Aug 27 02:03:34 1997 Jeffrey A Law (law@cygnus.com)
2868
bdcaf773
JL
2869 * typeck.c (expand_target_expr): Make definition match declaration.
2870
5ddc28a5
JL
2871 * class.c (get_basefndecls): Make definition match declaration.
2872
922ddba4
JM
2873Mon Aug 25 14:30:02 1997 Jason Merrill <jason@yorick.cygnus.com>
2874
818045b6
JM
2875 * input.c (sub_getch): Eventually give up and release the input file.
2876
2877 * decl.c (cp_finish_decl): If #p i/i, put inline statics in the
2878 right place.
2879
922ddba4
JM
2880 * call.c (joust): Tweak message.
2881
2882Sat Aug 23 18:02:59 1997 Mark Mitchell <mmitchell@usa.net>
2883
2884 * error.c (type_as_string): Put const/volatile on template type
2885 parameters where appropriate.
2886
4c9e597b
JL
2887Sat Aug 23 17:47:22 1997 Jeffrey A Law (law@cygnus.com)
2888
2889 * call.c (strictly_better): Make arguments unsigned ints.
2890
8eeda2ec
JM
2891Thu Aug 21 18:48:44 1997 Jason Merrill <jason@yorick.cygnus.com>
2892
2893 * lex.c (real_yylex): Refer to __complex instead of complex.
2894
8975416c
R
2895Thu Aug 21 22:25:46 1997 J"orn Rennecke <amylaar@cygnus.co.uk>
2896
2897 * lex.c (real_yylex): Don't use getc directly.
2898
49c249e1
JM
2899Wed Aug 20 17:25:08 1997 Jason Merrill <jason@yorick.cygnus.com>
2900
2901 * call.c (is_subseq): Don't try to be clever.
2902
2903Wed Aug 20 03:13:36 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
2904
2905 * parse.y, pt.c: Include "except.h".
2906 * call.c, class.c, class.h, cp-tree.h, cvt.c, decl.c, decl2.c,
2907 error.c, except.c, expr.c, friend.c, g++spec.c, init.c, input.c,
2908 lex.c, lex.h, method.c, parse.y, pt.c, repo.c, rtti.c, search.c,
2909 sig.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c: Finish
2910 prototyping.
2911
2912Wed Aug 20 01:34:40 1997 Jason Merrill <jason@yorick.cygnus.com>
2913
2914 * decl2.c (mark_vtable_entries): Instead of replacing pure
2915 virtuals with a reference to __pure_virtual, copy the decl and
2916 change the RTL.
2917
f62dbf03
JM
2918Tue Aug 19 02:26:07 1997 Jason Merrill <jason@yorick.cygnus.com>
2919
f017f649
JM
2920 * pt.c (lookup_nested_type_by_name): Handle typedef wierdness.
2921
2922 * typeck2.c (my_friendly_abort): Report bugs to egcs-bugs@cygnus.com.
2923
fe4e8851
JM
2924 * pt.c (instantiate_class_template): Call repo_template_used
2925 before finish_prevtable_vardecl.
2926
f62dbf03
JM
2927 * call.c (is_subseq): New fn.
2928 (compare_ics): Use it.
2929
2930 * repo.c (finish_repo): Don't crash on no args.
2931
2932 * parse.y (named_complex_class_head_sans_basetype): Handle
2933 explicit global scope.
2934 * decl2.c (handle_class_head): New fn.
2935
2936 * pt.c (unify): Add CONST_DECL case.
2937
da20811c
JM
2938Thu Aug 14 10:05:13 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
2939
2940 * rtti.c (permanent_obstack): Fix decl to not be a pointer.
2941
2942 * cp-tree.h (report_type_mismatch): Add prototype.
2943 * call.c (build_overload_call_real): Remove erroneous fourth
2944 argument to report_type_mismatch.
2945 (build_user_type_conversion_1): Remove erroneous second arg to
2946 tourney.
2947 (build_new_function_call): Likewise.
2948 (build_object_call): Likewise.
2949 (build_new_op): Likewise.
2950 (build_new_method_call): Likewise.
2951
2952Wed Aug 13 19:19:25 1997 Jason Merrill <jason@yorick.cygnus.com>
2953
2954 * error.c (dump_decl): Don't bother processing a function with no
2955 DECL_LANG_SPECIFIC.
2956
2957 * method.c (emit_thunk): Call init_function_start in the macro case.
2958
2959Wed Aug 13 10:46:19 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
2960
2961 * decl2.c (DEFAULT_VTABLE_THUNKS): Define to be 0 if not
2962 defined and used to set flag_vtable_thunks.
2963
2964Tue Aug 12 20:13:57 1997 Jason Merrill <jason@yorick.cygnus.com>
2965
2966 * parse.y: Don't clear the inlines from their obstack until they've
2967 all been processed.
2968
2969 * decl.c (duplicate_decls): Don't complain about exception
2970 specification mismatch if flag_exceptions is off.
2971
2972Mon Aug 11 15:01:56 1997 Marc Lehmann <pcg@goof.com>
2973
2974 * Make-lang.in (c++.distclean): Remove g++.c on make distclean.
2975
2976Sun Aug 10 12:06:09 1997 Paul Eggert <eggert@twinsun.com>
2977
2978 * cp-tree.h: Replace STDIO_PROTO with PROTO in include files.
2979 * cvt.c, error.c, except.c, expr.c, friend.c, init.c, rtti.c:
2980 Include <stdio.h> before include files that formerly used STDIO_PROTO.
2981
2982 * decl.c, g++spec.c, lex.c, method.c, repo.c:
2983 Include "config.h" first, as per autoconf manual.
2984
2985Fri Aug 8 11:47:48 1997 Jason Merrill <jason@yorick.cygnus.com>
2986
2987 * decl.c (duplicate_decls): Tweak wording.
2988 * lex.c (do_pending_defargs): Don't die if we see a default arg
2989 that isn't a DEFAULT_ARG.
2990 * error.c (dump_expr): Handle DEFAULT_ARG.
2991
2992 * decl2.c (lang_decode_option): Handle -fhandle-exceptions.
2993 * lang-options.h: Add -fhandle-exceptions.
2994
2995 * class.c (build_vtable): vtables are artificial.
2996 (prepare_fresh_vtable): Likewise.
2997
2998Wed Aug 6 11:02:36 1997 Jason Merrill <jason@yorick.cygnus.com>
2999
3000 * cvt.c (ocp_convert): After converting to the target type, set
3001 LOOKUP_NO_CONVERSION.
3002
3003 * call.c (joust): Warn about potentially confusing promotion rules
3004 with -Wsign-promo.
3005 * cp-tree.h, lang-options.h, decl2.c: Support -Wsign-promo.
3006
3007Tue Aug 5 15:15:07 1997 Michael Meissner <meissner@cygnus.com>
3008
3009 * exception.cc: Declare __terminate_func with noreturn attribute.
3010
8dff1027
MS
3011Fri Aug 1 03:18:15 1997 Jason Merrill <jason@yorick.cygnus.com>
3012
3013 * parse.y: Break out eat_saved_input, handle errors.
da20811c 3014 (function_try_block): Use compstmt instead of compstmt_or_error.
8dff1027
MS
3015
3016Thu Jul 31 17:14:04 1997 Jason Merrill <jason@yorick.cygnus.com>
3017
3018 * tree.c (build_cplus_new): Don't set TREE_ADDRESSABLE.
3019
3020Fri Jul 4 01:45:16 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
3021
3022 * Make-lang.in (cplib2.txt, cplib2.ready): Instead of checking for
3023 existence of cc1plus check whether $(LANGUAGES) contains C++.
3024
3025Wed Jul 30 13:04:21 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
3026
3027 * method.c (do_build_copy_constructor): When copying an anonymous
3028 union member loop around to handle nested anonymous unions. Use
3029 the offset of the member relative to the outer structure, not the
3030 union.
3031
86e6f22f
JM
3032Tue Jul 29 21:17:29 1997 Jason Merrill <jason@yorick.cygnus.com>
3033
3034 * call.c (resolve_args): New fn.
3035 (build_new_function_call): Use it.
3036 (build_object_call): Likewise.
3037 (build_new_method_call): Likewise.
3038
3039Mon Jul 28 16:02:36 1997 Jason Merrill <jason@yorick.cygnus.com>
3040
3041 * call.c (build_over_call): tsubst all default parms from templates.
3042
42976354
BK
3043Wed Jul 23 13:36:25 1997 Jason Merrill <jason@yorick.cygnus.com>
3044
3045 * decl.c (struct cp_function): Add static_labelno.
3046 (push_cp_function_context): Save it.
3047 (pop_cp_function_context): Restore it.
3048
3049Tue Jul 22 14:43:29 1997 Jason Merrill <jason@yorick.cygnus.com>
3050
3051 * typeck.c (build_component_ref_1): Convert from reference.
3052
3053Tue Jul 22 11:06:23 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
3054
3055 * parse.y (current_declspecs, prefix_attributes): Initialize to
3056 NULL_TREE.
3057
3058 * parse.y (initdcl0): Make sure CURRENT_DECLSPECS is non-nil
3059 before we try to force it to be a TREE_LIST.
3060 (decl): Make sure $1.t is non-nil.
3061
3062Sun Jul 20 11:53:07 1997 Jason Merrill <jason@yorick.cygnus.com>
3063
3064 * pt.c (uses_template_parms): Handle template first-parse codes.
3065
3066 * decl.c (cp_finish_decl): Only warn about user-defined statics.
3067
3068Fri Jul 18 17:56:08 1997 Jason Merrill <jason@yorick.cygnus.com>
3069
3070 * pt.c (unify): Handle BOOLEAN_TYPE.
3071
3072 * cp-tree.h: Lose PARM_DEFAULT_FROM_TEMPLATE.
3073 * pt.c (tsubst): Don't set it.
3074 * call.c (build_over_call): Use uses_template_parms.
3075
3076Thu Jul 17 18:06:30 1997 Jason Merrill <jason@yorick.cygnus.com>
3077
3078 * method.c (build_overload_nested_name): Use static_labelno
3079 instead of var_labelno.
3080 (build_qualified_name): New fn.
3081 (build_overload_name): Split out from here.
3082 (build_static_name): Use build_qualified_name.
3083 * decl.c (cp_finish_decl): Statics in extern inline functions
3084 have comdat linkage.
3085 (start_function): Initialize static_labelno.
3086
3087Thu Jul 17 11:20:17 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
3088
3089 * class.c (finish_struct_methods): add check of warn_ctor_dtor_privacy
3090 before "all member functions in class [] are private"
3091
3092Wed Jul 16 23:47:08 1997 Jason Merrill <jason@yorick.cygnus.com>
3093
3094 * lex.c (do_scoped_id): convert_from_reference.
3095 * init.c (build_offset_ref): Likewise.
3096
42976354
BK
3097Wed Jul 16 12:34:29 1997 Benjamin Kosnik <bkoz@lisa.cygnus.com>
3098
3099 * error.c (dump_expr): Check TREE_OPERAND before dump_expr_list.
3100
3101Mon Jul 14 03:23:46 1997 Jason Merrill <jason@yorick.cygnus.com>
3102
3103 * typeck.c (get_member_function_from_ptrfunc): Promote index
3104 before saving it.
3105
3106Sun Jul 13 00:11:52 1997 Jason Merrill <jason@yorick.cygnus.com>
3107
3108 * tree.c (layout_basetypes): Move non-virtual destructor warning.
3109 * decl.c (xref_basetypes): Remove non-virtual destructor warning.
3110
3111Sat Jul 12 12:47:12 1997 Jason Merrill <jason@yorick.cygnus.com>
3112
3113 * decl.c (grokdeclarator): Call add_defarg_fn for the function
3114 type, too.
3115 * lex.c (add_defarg_fn): Adjust.
3116 (do_pending_defargs): Adjust. Don't skip the first parm.
3117
3118Fri Jul 11 01:39:50 1997 Jason Merrill <jason@yorick.cygnus.com>
3119
3120 * decl.c (build_enumerator): Global enumerators are also readonly.
3121
3122 * rtti.c (build_dynamic_cast_1): Renamed from build_dynamic_cast.
3123 (build_dynamic_cast): Call it and convert_from_reference.
3124
3125 * lex.c (add_defarg_fn): New fn.
3126 (snarf_defarg): Don't add to defarg_types.
3127 (do_pending_defargs): Lose defarg_types. All fns we process now
3128 have defargs.
3129 * decl.c (grokfndecl): Call add_defarg_fn.
3130
3131 * Makefile.in (CONFLICTS): Expect 18 s/r conflicts.
3132 * cp-tree.def: Add DEFAULT_ARG.
3133 * spew.c (yylex): Call snarf_defarg as appropriate.
3134 * parse.y: New tokens DEFARG and DEFARG_MARKER.
3135 (defarg_again, pending_defargs, defarg, defarg1): New rules.
3136 (structsp): Use pending_defargs.
3137 (parms, full_parm): Use defarg.
3138 * lex.c (init_lex): Initialize inline_text_firstobj.
3139 (do_pending_inlines): Never pass the obstack to feed_input.
3140 (process_next_inline): Call end_input instead of restore_pending_input.
3141 (clear_inline_text_obstack, reinit_parse_for_expr, do_pending_defargs,
3142 finish_defarg, feed_defarg, snarf_defarg, maybe_snarf_defarg): New fns.
3143 * input.c (end_input): New fn.
3144 (sub_getch): At the end of some fed input, just keep returning EOF
3145 until someone calls end_input.
3146 Remove 'obstack' field from struct input_source.
3147 * decl.c (grokparms): Handle DEFAULT_ARG.
3148 (replace_defarg): New fn.
3149 * cp-tree.h (DEFARG_LENGTH, DEFARG_POINTER): New macros.
3150
3151Wed Jul 9 13:44:12 1997 Jason Merrill <jason@yorick.cygnus.com>
3152
3153 * call.c (implicit_conversion): If nothing else works, try binding
3154 an rvalue to a reference.
3155
3156Wed Jul 9 13:04:38 1997 Geoffrey Noer <noer@cygnus.com>
3157
3158 * decl.c (init_decl_processing): fix Jun 30 patch -- move
3159 ifndef for Cygwin32 to include SIGSEGV.
3160
7834ab39
MS
3161Thu Jul 3 01:44:05 1997 Jason Merrill <jason@yorick.cygnus.com>
3162
3163 * class.c (finish_struct_1): Only complain about pointers without
3164 copy stuff if there are any constructors.
3165
3166 * rtti.c (build_dynamic_cast): Call complete_type on the types.
3167
3168 * decl.c (grokfndecl): If the function we chose doesn't actually
3169 match, die.
3170
3171 * decl2.c (grokclassfn): Don't specify 'const int' for the
3172 artificial destructor parm.
3173
3174 * pt.c (type_unification): If we are called recursively, nothing
3175 decays.
3176
3177Mon Jun 30 17:53:21 1997 Geoffrey Noer <noer@cygnus.com>
3178
42976354
BK
3179 * decl.c (init_decl_processing): Stop trying to catch signals
3180 other than SIGABRT since the Cygwin32 library doesn't support
3181 them correctly yet. This fixes a situation in which g++ causes
3182 a hang on SIGSEGVs and other such signals in our Win32-hosted
3183 tools.
7834ab39
MS
3184
3185Mon Jun 30 14:50:01 1997 Jason Merrill <jason@yorick.cygnus.com>
3186
3187 * tree.c (mapcar, case CALL_EXPR): Handle all the parse node data.
3188
3189Fri Jun 27 15:18:49 1997 Jason Merrill <jason@yorick.cygnus.com>
3190
3191 * typeck2.c (store_init_value): Always return the value if our
3192 type needs constructing.
3193
3194 * method.c (hack_identifier): Convert class statics from
3195 reference, too.
3196
3197Thu Jun 26 11:44:46 1997 Jason Merrill <jason@yorick.cygnus.com>
3198
3199 * Make-lang.in (cplib2.ready): Add $(LANGUAGES) dependency.
3200
b88c08b6
MS
3201Thu Jun 19 16:49:28 1997 Mike Stump <mrs@cygnus.com>
3202
3203 * typeck.c (c_expand_return): Make sure we clean up temporaries at
3204 the end of return x;
3205
3206Thu Jun 19 12:28:43 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
3207
3208 * lex.c (check_for_missing_semicolon): Also check for CV_QUALIFIER.
3209
6633d636
MS
3210Tue Jun 17 18:35:57 1997 Mike Stump <mrs@cygnus.com>
3211
3212 * except.c (expand_builtin_throw): Add support
3213 -fno-sjlj-exceptions -fPIC exception handling on the SPARC.
3214
3215Mon Jun 16 01:24:37 1997 Jason Merrill <jason@yorick.cygnus.com>
3216
3217 * repo.c (extract_string): Null-terminate.
3218
3219 * cp-tree.h (TI_SPEC_INFO): New macro.
3220 (CLASSTYPE_TI_SPEC_INFO): New macro.
3221 * pt.c (push_template_decl): Correctly determine # of template parms
3222 for partial specs.
3223
3224 * call.c (compare_ics): Really fix 'this' conversions.
3225
3226 * pt.c (do_decl_instantiation): Don't crash on explicit inst of
3227 non-template fn.
3228
3229 * pt.c (push_template_decl): Complain about mismatch in # of
3230 template parms between a class template and a member template.
3231
3232Sun Jun 15 02:38:20 1997 Jason Merrill <jason@yorick.cygnus.com>
3233
3234 * method.c (synthesize_method): You can't call
3235 function_cannot_inline_p after finish_function.
3236 * decl.c (finish_function): Turn on flag_inline_functions and turn
3237 off DECL_INLINE before handing a synthesized method to the
3238 backend.
3239
3240Thu Jun 12 17:35:28 1997 Jason Merrill <jason@yorick.cygnus.com>
3241
3242 * method.c (synthesize_method): Remove July 30 change to never set
3243 DECL_INLINE if at_eof.
3244
3245Thu Jun 12 15:25:08 1997 Mike Stump <mrs@cygnus.com>
3246
3247 * xref.c (GNU_xref_member): Ensure that the node has a
3248 decl_lang_specific part before checking DECL_FRIEND_P.
3249
3250Thu Jun 12 12:36:05 1997 Jason Merrill <jason@yorick.cygnus.com>
3251
3252 * pt.c (instantiate_class_template): Diagnose non-class types used
3253 as bases.
3254
3255Wed Jun 11 17:33:40 1997 Jason Merrill <jason@yorick.cygnus.com>
3256
3257 * typeck.c (build_conditional_expr): Use convert_for_initialization
3258 instead of convert_and_check.
3259
3260Wed Jun 11 12:31:33 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
3261
3262 * parse.y (typespec): Don't pedwarn for typeof.
3263
3264Tue Jun 10 00:22:09 1997 Jason Merrill <jason@yorick.cygnus.com>
3265
3266 * repo.c (finish_repo): Only check changes if we would write a
3267 repo file.
3268
3269 * call.c (compare_ics): Fix handling of 'this' conversions.
3270
3271 * pt.c (do_decl_instantiation): Support static data too. Rename
3272 from do_function_instantiation.
3273 * cp-tree.h: Adjust.
3274 * parse.y: Adjust.
3275
3276 * repo.c (extract_string): New fn.
3277 (get_base_filename): Use it.
3278 (init_repo): Compare old args with current args.
3279
3280Mon Jun 9 14:25:30 1997 Mike Stump <mrs@cygnus.com>
3281
3282 * Makefile.in, Make-lang.in: Protect C-ls with a comment
3283 character, idea from Paul Eggert <eggert@twinsun.com>.
3284
3285Mon Jun 9 01:52:03 1997 Jason Merrill <jason@yorick.cygnus.com>
3286
3287 * typeck.c (c_expand_return): Be more persistent in looking for
3288 returned temps.
3289
3290 * cvt.c (build_up_reference): Use NOP_EXPR for switching from
3291 pointer to reference.
3292
3293 * class.c (build_vbase_path): Don't do anything if PATH has no steps.
3294
3295Sun Jun 8 03:07:05 1997 Jason Merrill <jason@yorick.cygnus.com>
3296
3297 * init.c (build_member_call, build_offset_ref):
3298 Use do_scoped_id instead of do_identifier.
3299
3300 * cvt.c (convert): Remove bogosity.
3301
3302Sat Jun 7 20:50:17 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
3303
3304 * cvt.c (build_up_reference): Do checks of ARGTYPE and
3305 TARGET_TYPE before trying to use get_binfo.
3306
3307Fri Jun 6 17:36:39 1997 Jason Merrill <jason@yorick.cygnus.com>
3308
3309 * cvt.c (build_up_reference): Call get_binfo to get access control.
3310
3311 * decl2.c (import_export_decl): If we don't support weaks, leave
3312 statics undefined.
3313
3314Fri Jun 6 15:55:49 1997 Mike Stump <mrs@cygnus.com>
3315
3316 * except.c (expand_builtin_throw): Add support for machines that
3317 cannot access globals after throw's epilogue when
3318 -fno-sjlj-exceptions is used.
3319
3320Thu Jun 5 16:28:43 1997 Jason Merrill <jason@yorick.cygnus.com>
3321
3322 * parse.y: 'std::' becomes '::'.
3323 * lex.c (real_yylex): Remove 'namespace' warning.
3324 * init.c (build_member_call): Ignore 'std::'.
3325 (build_offset_ref): Likewise.
3326 * decl2.c (do_using_directive): Ignore 'using namespace std;'.
3327 (do_toplevel_using_decl): Ignore 'using std::whatever'.
3328 * decl.c (push_namespace): Just sorry.
3329 (pop_namespace): Nop.
3330 (init_decl_processing): Declare std namespace.
3331
013bc8af
MS
3332Tue Jun 3 18:08:23 1997 Jason Merrill <jason@yorick.cygnus.com>
3333
3334 * search.c (push_class_decls): A name which ambiguously refers to
3335 several instantiations of the same template just refers to the
3336 template.
3337
3338Tue Jun 3 12:30:40 1997 Benjamin Kosnik <bkoz@cirdan.cygnus.com>
3339
3340 * decl.c (build_enumerator): fix problem with unsigned long
3341 enumerated values being smashed to ints, causing overflow
3342 when computing next enumerated value. (for enum values around
3343 MAX_VAL).
3344
3345Mon Jun 2 17:40:56 1997 Jason Merrill <jason@yorick.cygnus.com>
3346
3347 * typeck.c (build_component_ref): Only call mark_used on a decl.
3348
3349Thu May 29 15:54:17 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
3350
3351 * typeck.c (build_c_cast): Make the check for a ptr to function
3352 more specific before possible default_conversion call.
3353
e00737d2
MS
3354Thu May 29 13:02:06 1997 Mike Stump <mrs@cygnus.com>
3355
3356 * except.c (expand_exception_blocks): Simplify and fix and make
3357 sure we don't end a region in a sequence, as expand_end_bindings
3358 doesn't like it.
3359
3360Wed May 28 17:08:03 1997 Mike Stump <mrs@cygnus.com>
3361
3362 * except.c (init_exception_processing): Mark terminate as not
3363 returning so that the optimizer can optimize better.
3364
37c46b43
MS
3365Tue May 27 19:49:19 1997 Mike Stump <mrs@cygnus.com>
3366
3367 * cvt.c (convert): Don't do any extra work, if we can avoid it
3368 easily.
3369
3370Tue May 27 18:21:47 1997 Mike Stump <mrs@cygnus.com>
3371
3372 * *.[chy]: Change cp_convert to ocp_convert, change convert to
3373 cp_convert. convert is now reserved for the backend, and doesn't
3374 have the semantics a frontend person should ever want.
3375
3376Fri May 23 10:58:31 1997 Jason Merrill <jason@yorick.cygnus.com>
3377
3378 * lang-specs.h: Define __EXCEPTIONS if exceptions are enabled.
3379 Lose -traditional support.
3380
3381Thu May 22 15:41:28 1997 Jason Merrill <jason@yorick.cygnus.com>
3382
3383 * rtti.c (get_tinfo_var): Use TYPE_PRECISION (sizetype).
3384
3385 * parse.y (self_reference): Do it for templates, too.
3386 * class.c (pushclass): Don't overload_template_name; the alias
3387 generated by build_self_reference serves the same purpose.
3388
3389 * tree.c (list_hash): Make static, take more args.
3390 (list_hash_lookup): Likewise.
3391 (list_hash_add): Make static.
3392 (list_hash_canon): Lose.
3393 (hash_tree_cons): Only build a new node if one isn't already in the
3394 hashtable.
3395 (hash_tree_chain): Use hash_tree_cons.
3396 * cp-tree.h: Adjust.
3397 * decl.c (grokfndecl): Just check IDENTIFIER_GLOBAL_VALUE instead
3398 of calling lookup_name.
3399
3400Wed May 21 18:24:19 1997 Jason Merrill <jason@yorick.cygnus.com>
3401
3402 * pt.c (instantiate_class_template): TYPE_VALUES for an enum
3403 doesn't refer to the CONST_DECLs.
3404
3405Tue May 20 21:09:32 1997 Bob Manson <manson@charmed.cygnus.com>
3406
3407 * rtti.c (get_tinfo_var): Either INT_TYPE_SIZE or 32, whichever
3408 is bigger.
3409 (expand_class_desc): Convert the last argument to a sizetype.
3410
3411Tue May 20 13:55:57 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
3412
3413 * gxx.gperf (__complex, __complex__, __imag, __imag__, __real,
3414 __real__): Add reswords.
3415 * hash.h: Regenerate.
3416 * lex.h (rid): Add RID_COMPLEX.
3417 (RID_LAST_MODIFIER): Set to RID_COMPLEX.
8eeda2ec 3418 * lex.c (init_lex): Add building of RID_COMPLEX.
37c46b43
MS
3419 (real_yylex): General cleanup in line with what c-lex.c also has,
3420 sans the cruft for traditional; add handling of SPEC_IMAG, complex
3421 types, and imaginary numeric constants.
3422 * parse.y (REALPART, IMAGPART): Add tokens.
3423 (unary_expr): Add REALPART and IMAGPART rules.
3424 * cp-tree.h (complex_{integer,float,double,long}_type_node): Declare.
3425 * decl.c (complex_{integer,float,double,long}_type_node): Define
3426 types.
3427 (init_decl_processing): Set up the types.
3428 (grokdeclarator): Add handling of RID_COMPLEX. Set and use
3429 DEFAULTED_INT instead of EXPLICIT_INT when we default to int type.
3430 * call.c (build_new_op): Add REALPART_EXPR and IMAGPART_EXPR cases.
3431 * cvt.c (cp_convert): Handle COMPLEX_TYPE.
3432 * error.c (dump_type_prefix, dump_type, dump_type_suffix): Add
3433 COMPLEX_TYPE case.
3434 * method.c (build_overload_name): Add handling of the different
3435 COMPLEX_TYPEs, prefixing them with `J'.
3436 * pt.c (process_template_parm): Don't let them use a COMPLEX_TYPE
3437 as a template parm.
3438 (uses_template_parms, tsubst, unify): Add COMPLEX_TYPE case.
3439 * tree.c (lvalue_p): Add REALPART_EXPR and IMAGPART_EXPR cases.
3440 (mapcar): Handle COMPLEX_CST.
3441 * typeck.c (build_binary_op_nodefault): Handle COMPLEX_TYPE.
3442 (common_type): Add code for complex types.
3443 (build_unary_op): Add REALPART_EXPR and IMAGPART_EXPR cases.
3444 (convert_for_assignment): Likewise.
3445 (mark_addressable): Add REALPART_EXPR and IMAGPART_EXPR cases.
3446
3447Mon May 19 12:26:27 1997 Jason Merrill <jason@yorick.cygnus.com>
3448
3449 * pt.c (tsubst): Don't pass the MINUS_EXPR for an array domain to
3450 tsubst_expr, as it might try to do overload resolution.
3451
b87692e5
MS
3452Sat May 17 10:48:31 1997 Jason Merrill <jason@yorick.cygnus.com>
3453
3454 * pt.c (instantiate_class_template): Oops.
3455
3456Fri May 16 14:23:57 1997 Jason Merrill <jason@yorick.cygnus.com>
3457
3458 * cp-tree.def: Add TAG_DEFN.
3459 * pt.c (tsubst_enum): New fn.
3460 (instantiate_class_template): Use it.
3461 (tsubst_expr): Support TAG_DEFN.
3462 (tsubst): Support local enums.
3463 (tsubst_copy): Likewise.
3464 * decl.c (finish_enum): Likewise.
3465 (start_enum): If this is a local enum, switch to permanent_obstack.
3466
3467Wed May 14 19:08:28 1997 Mike Stump <mrs@cygnus.com>
3468
3469 * decl.c (store_parm_decls): Set last_parm_cleanup_insn here.
3470 (finish_function): Put the base init code for constructors just
3471 after the parm cleanup insns.
3472 (struct cp_function): Add last_parm_cleanup_insn.
3473 (push_cp_function_context): Likewise.
3474 (pop_cp_function_context): Likewise.
3475
3476Tue May 13 15:51:20 1997 Jason Merrill <jason@yorick.cygnus.com>
3477
3478 * pt.c (tsubst_copy): Handle BIT_NOT_EXPR.
3479
3480Wed May 7 11:17:59 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
3481
3482 * method.c (emit_thunk) [ASM_OUTPUT_MI_THUNK]: Build up the RTL
3483 for THUNK_FNDECL before we switch to temporary allocation.
3484
beb53fb8
JM
3485Mon May 5 14:46:53 1997 Jason Merrill <jason@yorick.cygnus.com>
3486
3487 * call.c (build_new_op): Handle null arg2 for ?:.
3488
eb448459
MS
3489Thu May 1 18:26:37 1997 Mike Stump <mrs@cygnus.com>
3490
3491 * except.c (expand_exception_blocks): Ensure that we flow through
37c46b43
MS
3492 the end of the exception region for the exception specification.
3493 Move exception region for the exception specification in, so that
3494 it doesn't protect the parm cleanup. Remove some obsolete code.
3495 * decl.c (store_parm_decls): Likewise.
eb448459
MS
3496 (finish_function): Likewise.
3497
3498Tue Apr 29 15:38:54 1997 Jason Merrill <jason@yorick.cygnus.com>
3499
3500 * init.c (build_new): Fix nothrow handling.
3501
3502Tue Apr 29 14:29:50 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
3503
3504 * init.c (emit_base_init): Don't warn about the initialization
3505 list for an artificial member.
3506
3507Fri Apr 25 17:47:59 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
3508
3509 * expr.c (do_case): Handle !START case for the error msg.
3510
3511Fri Apr 25 11:55:23 1997 Jason Merrill <jason@yorick.cygnus.com>
3512
3513 * decl2.c, lang-options.h: New option -Weffc++.
3514 * class.c, decl.c, init.c, typeck.c: Move Effective C++ warnings
3515 to -Weffc++.
3516
3517 * decl2.c (finish_prevtable_vardecl): Change NO_LINKAGE_HEURISTICS
37c46b43 3518 to MULTIPLE_SYMBOL_SPACES.
eb448459
MS
3519
3520Wed Apr 23 18:06:50 1997 Jason Merrill <jason@yorick.cygnus.com>
3521
3522 * method.c (emit_thunk, generic case): Set current_function_is_thunk.
3523
3524 * method.c (emit_thunk, macro case): Set up DECL_RESULT.
3525
3526 * typeck.c (c_expand_return): Don't complain about returning void
3527 to void in an artificial function.
3528 * method.c (make_thunk): Change settings of READONLY/VOLATILE,
3529 don't set DECL_RESULT, set DECL_ARTIFICIAL.
3530 (emit_thunk, generic code): Also set up DECL_LANG_SPECIFIC.
3531
eb66be0e
MS
3532Wed Apr 23 14:43:06 1997 Mike Stump <mrs@cygnus.com>
3533
3534 * init.c (init_decl_processing): Add supoprt for setjmp/longjmp based
3535 exception handling.
3536 * except.c (init_exception_processing): Likewise.
3537 (expand_end_catch_block): Likewise.
3538 (expand_exception_blocks): Likewise.
3539 (expand_throw): Likewise.
3540 * exception.cc (__default_terminate): Likewise.
3541
3542 * init.c (perform_member_init): Use new method of expr level
37c46b43 3543 cleanups, instead of cleanups_this_call and friends.
eb66be0e
MS
3544 (emit_base_init): Likewise.
3545 (expand_aggr_vbase_init_1): Likewise.
3546 (expand_vec_init): Likewise.
3547 * decl.c (cp_finish_decl): Likewise.
3548 (expand_static_init): Likewise.
3549 (store_parm_decls): Likewise.
3550 (cplus_expand_expr_stmt): Likewise.
3551 * decl2.c (finish_file): Likewise.
3552
3553 * Make-lang.in (exception.o): Ok to compile with -O now.
3554
3555 * decl.c (maybe_build_cleanup_1): We no longer have to unsave, as
3556 we know it will be done later by the backend.
3557
3558 * decl2.c (lang_f_options): Remove support for short temps.
3559 * lang-options.h: Likewise.
3560
3561Wed Apr 23 04:12:06 1997 Jason Merrill <jason@yorick.cygnus.com>
3562
3563 * tree.c (varargs_function_p): New fn.
3564 * method.c (emit_thunk): Replace broken generic code with code to
37c46b43 3565 generate a heavyweight thunk function.
eb66be0e
MS
3566
3567Tue Apr 22 02:45:18 1997 Jason Merrill <jason@yorick.cygnus.com>
3568
3569 * pt.c (process_template_parm): pedwarn about floating-point parms.
3570
3571 * decl.c (grokdeclarator): inline no longer implies static.
3572
3573 * spew.c (yylex): Always return the TYPE_DECL if we got a scope.
3574
3575Mon Apr 21 15:42:27 1997 Jason Merrill <jason@yorick.cygnus.com>
3576
3577 * class.c (check_for_override): The signature of an overriding
37c46b43 3578 function is not changed.
eb66be0e
MS
3579
3580 * call.c (build_over_call): Move setting of conv into the loop.
da20811c
JM
3581 Note: this change, along with the related changes of the 18th thru
3582 the 20th of April, fix an infinite loop problem in conversions.
eb66be0e
MS
3583
3584Sun Apr 20 16:24:29 1997 Jason Merrill <jason@yorick.cygnus.com>
3585
3586 * call.c (build_user_type_conversion_1): Really ignore rvalue
37c46b43 3587 conversions when looking for a REFERENCE_TYPE.
eb66be0e
MS
3588
3589 * cvt.c (build_up_reference): Eviscerate, use build_unary_op.
3590 * cp-tree.h (TREE_REFERENCE_EXPR): #if 0.
3591 * typeck.c (decay_conversion): Don't set TREE_REFERENCE_EXPR.
3592 (build_unary_op): Likewise.
3593 * call.c (build_over_call): See through a CONVERT_EXPR around the
37c46b43 3594 ADDR_EXPR for on a temporary.
eb66be0e 3595 * typeck.c (c_expand_return): See through a CONVERT_EXPR around
37c46b43 3596 the ADDR_EXPR for a local variable.
eb66be0e
MS
3597
3598Fri Apr 18 12:11:33 1997 Jason Merrill <jason@yorick.cygnus.com>
3599
3600 * call.c (build_user_type_conversion_1): If we're trying to
37c46b43 3601 convert to a REFERENCE_TYPE, only consider lvalue conversions.
eb66be0e
MS
3602 (build_new_function_call): Print candidates.
3603 (implicit_conversion): Try a temp binding if the lvalue conv is BAD.
3604 (reference_binding): Binding a temporary of a reference-related type
3605 is BAD.
3606
3607Thu Apr 17 14:37:22 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
3608
3609 * inc/typeinfo (type_info::before): Add cv-qualifier-seq.
3610 * tinfo2.cc (type_info::before): Likewise.
3611
3612Mon Apr 14 12:38:17 1997 Jason Merrill <jason@yorick.cygnus.com>
3613
3614 * call.c (implicit_conversion): Oops.
3615
3616Fri Apr 11 02:18:30 1997 Jason Merrill <jason@yorick.cygnus.com>
3617
3618 * call.c (implicit_conversion): Try to find a reference conversion
37c46b43 3619 before binding a const reference to a temporary.
eb66be0e
MS
3620
3621Wed Apr 2 12:51:36 1997 Mike Stump <mrs@cygnus.com>
3622
3623 * exception.cc (__default_unexpected): Call terminate by default,
3624 so that if the user overrides terminate, the correct function will
3625 be called.
3626
bd6dd845
MS
3627Wed Mar 19 14:14:45 1997 Mike Stump <mrs@cygnus.com>
3628
3629 * parse.y (left_curly): Avoid trying to use any fields of
eb66be0e 3630 error_mark_node, as there aren't any.
bd6dd845
MS
3631
3632Thu Mar 13 16:33:22 1997 Jason Merrill <jason@yorick.cygnus.com>
3633
3634 * lex.c (do_identifier): Avoid breaking on overloaded methods
3635 as default arguments.
3636
3637Wed Mar 12 13:55:10 1997 Hans-Peter Nilsson <Hans-Peter.Nilsson@axis.se>
3638
eb66be0e 3639 * call.c (add_template_candidate): Initialize the variable "dummy".
bd6dd845
MS
3640
3641Mon Mar 10 15:13:14 1997 Brendan Kehoe <brendan@canuck.cygnus.com>
3642
3643 * decl.c (start_decl): Make sure TYPE isn't an error_mark_node
3644 before we try to use TYPE_SIZE and TREE_CONSTANT on it.
3645
3646Fri Mar 7 13:19:36 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
3647
3648 * cp-tree.h (comp_ptr_ttypes, more_specialized): Add decl.
3649 (debug_binfo): Delete decl, not needed.
3650
3651 * tree.c (fnaddr_from_vtable_entry, function_arg_chain,
3652 promotes_to_aggr_type): Delete fns.
3653 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY,
3654 SET_FNADDR_FROM_VTABLE_ENTRY, FUNCTION_ARG_CHAIN,
3655 PROMOTES_TO_AGGR_TYPE): Delete alternates to #if 1.
3656
3657 * decl.c (pending_invalid_xref{,_file,_line}): Delete unused vars.
3658
3659 * friend.c (is_friend_type): Delete fn.
3660 * cp-tree.h (is_friend_type): Delete decl.
3661
3662 * decl.c (original_result_rtx, double_ftype_double,
3663 double_ftype_double_double, int_ftype_int, long_ftype_long,
3664 float_ftype_float, ldouble_ftype_ldouble, last_dtor_insn): Make static.
3665 * typeck.c (original_result_rtx, warn_synth): Delete extern decls.
3666
3667 * decl.c (push_overloaded_decl{,_top_level}): Make static, adding
3668 fwd decls.
3669 * cp-tree.h (push_overloaded_decl{,_top_level}): Delete decls.
3670
3671 * decl.c (pushdecl_nonclass_level): #if 0, unused.
3672 * cp-tree.h (pushdecl_nonclass_level): #if 0 decl.
3673
3674 * lex.c (reinit_lang_specific): #if 0, unused.
3675 * cp-tree.h (reinit_lang_specific): #if 0 decl.
3676
3677 * decl.c (revert_static_member_fn): Make static, adding fwd decl.
3678 * cp-tree.h (revert_static_member_fn): Delete decl.
3679
3680 * class.c (root_lang_context_p): Delete fn.
3681 * cp-tree.h (root_lang_context_p): Delete decl.
3682
3683 * decl.c (set_current_level_tags_transparency): #if 0, unused.
3684 * cp-tree.h (set_current_level_tags_transparency): #if 0 decl.
3685
3686 * lex.c (set_vardecl_interface_info): Make static.
3687 * cp-tree.h (set_vardecl_interface_info): Delete decl.
3688
3689 * call.c (find_scoped_type): Make static.
3690 * cp-tree.h (find_scoped_type): Delete decl.
3691
3692 * search.c (convert_pointer_to_vbase): Make static.
3693 * cp-tree.h (convert_pointer_to_vbase): Delete decl.
3694
3695 * decl.c (const_ptr_type_node): Likewise.
3696 * cp-tree.h (const_ptr_type_node): Delete decl.
3697
3698 * typeck.c (common_base_type): Make static.
3699 * cp-tree.h (common_base_types): Delete erroneous decl.
3700
3701 * pt.c (classtype_mangled_name): Make static.
3702 * cp-tree.h (classtype_mangled_name): Delete decl.
3703
3704 * lex.c (check_newline): Make static.
3705 * cp-tree.h (check_newline): Delete decl.
3706
3707 * typeck.c (build_x_array_ref): Delete fn, same idea as
3708 grok_array_decl.
3709 * cp-tree.h (build_x_array_ref): Delete decl.
3710
3711 * lex.c (copy_decl_lang_specific): Delete fn, same idea as
3712 copy_lang_decl.
3713 * cp-tree.h (copy_decl_lang_specific): #if 0 decl.
3714
3715 * class.c (build_vtable_entry): Make static.
3716 * cp-tree.h (build_vtable_entry): Delete decl.
3717
3718 * class.c (build_vbase_pointer): Make static.
3719 * cp-tree.h (build_vbase_pointer): Delete decl.
3720
3721 * sig.c (build_sptr_ref): Add forward decl and make static.
3722 * cp-tree.h (build_sptr_ref): Delete decl.
3723
3724 * call.c (build_new_method_call): Add forward decl and make static.
3725 * cp-tree.h (build_new_method_call): Delete decl.
3726
3727 * call.c (build_object_call): Make static.
3728 * class.c (check_for_override, complete_type_p, mark_overriders):
3729 Likewise.
3730 * decl.c (cp_function_chain): Likewise.
3731 * lex.c (set_typedecl_interface_info, reinit_parse_for_block):
3732 Likewise.
3733 * pt.c (comp_template_args, get_class_bindings, push_tinst_level):
3734 Likewise.
3735 * tree.c (build_cplus_array_type_1): Likewise.
3736 * typeck.c (comp_ptr_ttypes_{const,real,reinterpret}): Likewise.
3737 (comp_target_parms): Likewise.
3738
3739 * init.c (build_builtin_call): Make static.
3740 * cp-tree.h (build_builtin_call): Delete decl.
3741
3742 * typeck.c (binary_op_error): Delete decl.
3743 * cp-tree.h (binary_op_error): Likewise.
3744
3745Thu Mar 6 16:13:52 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
3746
3747 * call.c (build_method_call): Compare against error_mark_node
3748 directly, rather than the ERROR_MARK tree code.
3749 * cvt.c (cp_convert): Likewise.
3750 * decl.c (print_binding_level): Likewise.
3751 (duplicate_decls): Likewise.
3752 (grokdeclarator): Likewise.
3753 (grokdeclarator): Likewise.
3754 * init.c (expand_aggr_init_1): Likewise.
3755 (decl_constant_value): Likewise.
3756 * method.c (build_opfncall): Likewise.
3757 (hack_identifier): Likewise.
3758 * typeck.c (build_modify_expr): Likewise.
3759
3760 * typeck.c (build_c_cast): Don't decl TYPE as register tree.
3761
3762Sun Mar 2 02:54:36 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
3763
3764 * pt.c (unify): Strip NOP_EXPR wrappers before unifying integer values.
3765
3766 * pt.c (coerce_template_parms): Add new error message.
3767
3768 * method.c (build_overload_value): Implement name mangling for
3769 floating-point template arguments.
3770
3771 * method.c (build_overload_int, icat, dicat): Fix mangling of template
3772 arguments whose absolute value doesn't fit in a signed word.
3773
3774Mon Mar 3 12:14:54 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
3775
3776 * friend.c: New file; put all of the friend stuff in here.
3777 * init.c: Instead of here.
3778 * Makefile.in (CXX_OBJS): Add friend.o.
3779 (friend.o): Add dependencies.
3780 * Make-lang.in (CXX_SRCS): Add $(srcdir)/cp/friend.c.
3781
3782Sun Mar 2 11:04:43 1997 Jason Merrill <jason@yorick.cygnus.com>
3783
3784 * call.c (build_scoped_method_call): Complain if the scope isn't a
eb66be0e 3785 base.
bd6dd845
MS
3786
3787Wed Feb 26 11:31:06 1997 Jason Merrill <jason@yorick.cygnus.com>
3788
3789 * parse.y (left_curly): Don't crash on erroneous type.
3790
3791 * init.c (build_delete): Fix type of ref.
3792
3793Tue Feb 25 12:41:48 1997 Jason Merrill <jason@yorick.cygnus.com>
3794
3795 * search.c (get_vbase_1): Renamed from get_vbase.
3796 (get_vbase): Wrapper, now non-static.
3797 (convert_pointer_to_vbase): Now static.
3798
3799 * call.c (build_scoped_method_call): Accept a binfo for BASETYPE.
3800 * init.c (build_delete): Pass one.
3801 (build_partial_cleanup_for): Use build_scoped_method_call.
3802 * decl.c (finish_function): Pass a binfo.
3803
3804Mon Feb 24 15:00:12 1997 Jason Merrill <jason@yorick.cygnus.com>
3805
3806 * call.c (build_over_call): Only synthesize non-trivial copy ctors.
3807
3808 * typeck.c (build_c_cast): Lose other reference to flag.
3809
3810 * call.c (build_field_call): Don't look for [cd]tor_identifier.
3811 * decl2.c (delete_sanity): Remove meaningless use of
eb66be0e 3812 LOOKUP_HAS_IN_CHARGE.
bd6dd845 3813 * decl.c (finish_function): Use build_scoped_method_call instead
eb66be0e 3814 of build_delete for running vbase dtors.
bd6dd845 3815 * init.c (build_delete): Call overload resolution code instead of
eb66be0e 3816 duplicating it badly.
bd6dd845 3817
2ba25f50
MS
3818Thu Feb 20 15:12:15 1997 Jason Merrill <jason@yorick.cygnus.com>
3819
3820 * call.c (build_over_call): Call mark_used before trying to elide
3821 the call.
3822
3823 * decl.c (implicitly_declare): Don't set DECL_ARTIFICIAL.
3824
3825Wed Feb 19 11:18:53 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
3826
3827 * typeck.c (build_modify_expr): Always pedwarn for a cast to
3828 non-reference used as an lvalue.
3829
3830Wed Feb 19 10:35:37 1997 Jason Merrill <jason@yorick.cygnus.com>
3831
3832 * cvt.c (cp_convert_to_pointer): Convert from 0 to a pmf properly.
3833
3834Tue Feb 18 15:40:57 1997 Jason Merrill <jason@yorick.cygnus.com>
3835
3836 * parse.y (handler): Fix template typo.
3837
3838Sun Feb 16 02:12:28 1997 Jason Merrill <jason@yorick.cygnus.com>
3839
3840 * error.c (lang_decl_name): New fn.
3841 * tree.c (lang_printable_name): Use it.
3842
3843Fri Feb 14 16:57:05 1997 Mike Stump <mrs@cygnus.com>
3844
3845 * g++spec.c: Include config.h so that we can catch bzero #defines
3846 from the config file.
3847
e9f32eb5
MS
3848Tue Feb 11 13:50:48 1997 Mike Stump <mrs@cygnus.com>
3849
3850 * new1.cc: Include a declaration for malloc, to avoid warning, and
eb66be0e
MS
3851 avoid lossing on systems that require one (ones that define malloc
3852 in xm.h).
e9f32eb5
MS
3853
3854Mon Feb 10 22:51:13 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
3855
3856 * decl2.c (max_tinst_depth): New variable.
3857 (lang_decode_option): Parse "-ftemplate-depth-NN" command line
3858 option.
3859 * pt.c (max_tinst_depth): Variable moved.
3860 * lang-options.h: Declare "-ftemplate-depth-NN" command line option
3861 as legal.
3862
3863Fri Feb 7 15:43:34 1997 Jason Merrill <jason@yorick.cygnus.com>
3864
3865 * decl.c (xref_basetypes): Allow a base class that depends on
eb66be0e 3866 template parms to be incomplete.
e9f32eb5
MS
3867
3868 * decl2.c (build_expr_from_tree): Support typeid(type).
3869 * rtti.c (get_typeid): Support templates.
3870 (expand_si_desc, expand_class_desc): Fix string length.
3871 (expand_ptr_desc, expand_attr_desc, expand_generic_desc): Likewise.
3872
312e7d50
JM
3873Tue Feb 4 11:28:24 1997 Jason Merrill <jason@yorick.cygnus.com>
3874
3875 * pt.c (unify, case TEMPLATE_CONST_PARM): Use cp_tree_equal.
3876
3877 * pt.c (tsubst): Put it back for -fno-ansi-overloading.
3878
3879Mon Feb 3 18:41:12 1997 Jason Merrill <jason@yorick.cygnus.com>
3880
3881 * pt.c (tsubst, case FUNCTION_DECL): Lose obsolete code that
eb66be0e
MS
3882 smashes together template and non-template decls of the same
3883 signature.
312e7d50 3884
824b9a4c
MS
3885Thu Jan 30 19:18:00 1997 Jason Merrill <jason@yorick.cygnus.com>
3886
824b9a4c
MS
3887 * pt.c (tsubst): Don't recurse for the type of a TYPENAME_TYPE.
3888
3889Wed Jan 29 11:40:35 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
3890
3891 * decl.c (duplicate_decls): Next route, pedwarn about different
3892 exceptions if -pedantic *or* olddecl !DECL_IN_SYSTEM_HEADER.
3893
3894Tue Jan 28 20:43:29 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
3895
3896 * cp-tree.h (HAS_DEFAULT_IMPLEMENTATION): Delete macro.
3897 (struct lang_type): Delete has_default_implementation member.
3898 Increase dummy to 21.
3899 * decl.c (start_method): Delete usage.
3900
3901 * cp-tree.h (build_call, null_ptr_cst_p, in_function_p,
3902 store_after_parms, start_decl_1, auto_function): Add decls.
3903 (get_arglist_len_in_bytes, declare_implicit_exception,
3904 have_exceptions_p, make_type_decl, typedecl_for_tag,
3905 store_in_parms, pop_implicit_try_blocks, push_exception_cleanup,
3906 build_component_type_expr, cplus_exception_name,
3907 {make,clear}_anon_parm_name, dont_see_typename): Removed decls.
3908 * call.c (build_this): Make static.
3909 (is_complete): Likewise.
3910 (implicit_conversion): Likewise.
3911 (reference_binding): Likewise.
3912 (standard_conversion): Likewise.
3913 (strip_top_quals): Likewise.
3914 (non_reference): Likewise.
3915 (build_conv): Likewise.
3916 (user_harshness): Likewise.
3917 (rank_for_ideal): Likewise.
3918 * decl.c (start_decl_1): Delete forward decl.
3919 (push_decl_level): Make static.
3920 (resume_binding_level): Make static.
3921 (namespace_bindings_p): Make static.
3922 (declare_namespace_level): Make static.
3923 (lookup_name_real): Make static.
3924 (duplicate_decls): Make static. Take register off NEWDECL and
3925 OLDDECL parm decls.
3926 * decl2.c (get_sentry): Make static.
3927 (temp_name_p): Delete fn.
3928 * except.c (auto_function): Delete decl.
3929 * lex.c (handle_{cp,sysv}_pragma): Make static.
3930 (handle_sysv_pragma) [HANDLE_SYSV_PRAGMA]: Add forward decl.
3931 * method.c (do_build_{copy_constructor,assign_ref}): Make static.
3932 * pt.c (tsubst_expr_values): Make static.
3933 * rtti.c (combine_strings): Delete decl.
3934
3935Tue Jan 28 16:40:40 1997 Jason Merrill <jason@yorick.cygnus.com>
3936
3937 * pt.c (push_template_decl): Handle getting a typedef.
3938
3939 * call.c (build_new_function_call): Complain about void arg.
3940
3941Tue Jan 28 15:25:09 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
3942
3943 * decl.c (duplicate_decls): Give pedwarn of different exceptions
3944 if -pedantic, instead of olddecl !DECL_IN_SYSTEM_HEADER.
3945
3946Mon Jan 27 19:21:29 1997 Mike Stump <mrs@cygnus.com>
3947
3948 * except.c (expand_throw): Don't expand the cleanup tree here,
eb66be0e
MS
3949 since we are not going to write the rtl out. Fixes problem with
3950 -g -O on SPARC.
824b9a4c
MS
3951
3952Mon Jan 27 16:24:35 1997 Sean McNeil <sean@mcneil.com>
3953
3954 * Make-lang.in: Add $(exeext) as necessary.
3955
3956Mon Jan 27 13:20:39 1997 Mike Stump <mrs@cygnus.com>
3957
3958 * parse.y (handler_seq): Must have at least one catch clause.
3959
3960Sat Jan 25 12:00:05 1997 Jason Merrill <jason@yorick.cygnus.com>
3961
3962 * call.c (add_builtin_candidate): Restore ?: hack.
3963
3964 * decl.c (grok_op_properties): More warnings.
3965
3966Sat Jan 25 08:50:03 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
3967
3968 * decl.c (duplicate_decls): On second thought, do it as a pedwarn
3969 still but only if !DECL_IN_SYSTEM_HEADER (olddecl).
3970
3971 * decl.c (duplicate_decls): Scale back to a warning, and only do
3972 'em if -pedantic.
3973
3974Fri Jan 24 17:52:54 1997 Mike Stump <mrs@cygnus.com>
3975
3976 * decl.c (duplicate_decls): pedwarn mismatched exception
eb66be0e 3977 specifications.
824b9a4c
MS
3978
3979Thu Jan 23 18:18:54 1997 Mike Stump <mrs@cygnus.com>
3980
3981 * call.c (build_new_method_call): Don't display the invisible
eb66be0e 3982 argument for controlling virtual bases.
824b9a4c
MS
3983
3984Thu Jan 23 16:48:10 1997 Mike Stump <mrs@cygnus.com>
3985
3986 * new: Add nothrow new and delete, bad_alloc and throw specifications
3987 for delete.
3988 * decl.c (init_decl_processing): Add throw specification for delete.
3989 * new.cc (nothrow): Define.
3990 * lex.c (real_yylex): Removing warning that throw and friends are
3991 keywords.
3992 * new1.cc (operator new (size_t sz, const nothrow_t&)): Define.
3993 * new2.cc (operator new[] (size_t sz, const nothrow_t&): Define.
3994 * Make-lang.in: Add new{1,2}.{cc,o}.
3995
3996Thu Jan 23 16:39:06 1997 Jason Merrill <jason@yorick.cygnus.com>
3997
3998 * lex.c (cons_up_default_function): Fix return type of synth op=.
3999
4000 * init.c (emit_base_init): Add warnings for uninitialized members
eb66be0e 4001 and bases.
824b9a4c
MS
4002
4003 * decl.c (xref_basetypes): Add warning for non-polymorphic type
eb66be0e 4004 with destructor used as base type.
824b9a4c
MS
4005
4006 * decl.c (grok_op_properties): Add warning for op= returning void.
4007 * typeck.c (c_expand_return): Add warning for op= returning anything
4008 other than *this.
4009
4010 * class.c (finish_struct_1): Add warning for class with pointers
eb66be0e 4011 but not copy ctor or copy op=.
824b9a4c
MS
4012
4013 * cp-tree.h (TI_PENDING_TEMPLATE_FLAG): New macro.
4014 * pt.c (add_pending_template): Use it instead of LANG_FLAG_0.
4015 (instantiate_template): If -fexternal-templates, add this
eb66be0e 4016 instantiation to pending_templates.
824b9a4c
MS
4017
4018 * decl2.c (copy_assignment_arg_p): Disable old hack to support
eb66be0e 4019 Booch components.
824b9a4c
MS
4020
4021Tue Jan 21 18:32:04 1997 Mike Stump <mrs@cygnus.com>
4022
4023 * cvt.c (cp_convert): Pedwarn enum to pointer conversions.
4024
de22184b
MS
4025Mon Jan 20 17:59:51 1997 Jason Merrill <jason@yorick.cygnus.com>
4026
4027 * call.c (standard_conversion): Handle getting references. Tack
eb66be0e 4028 on RVALUE_CONV here. Do it for non-class types, too.
de22184b
MS
4029 (reference_binding): Pass references to standard_conversion.
4030 (implicit_conversion): Likewise.
4031 (add_builtin_candidate): Disable one ?: kludge.
4032 (convert_like): Handle RVALUE_CONVs for non-class types.
4033 (joust): Disable the other ?: kludge.
4034
4035Mon Jan 20 14:53:13 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
4036
4037 * decl.c (init_decl_processing): Add code to build up common
4038 function types beforehand, to avoid creation then removal of
4039 things already in the hash table.
4040
4041Mon Jan 20 14:43:49 1997 Jason Merrill <jason@yorick.cygnus.com>
4042
4043 * decl.c (finish_function): Also zero out DECL_INCOMING_RTL for
eb66be0e 4044 the arguments.
de22184b
MS
4045
4046 * error.c (dump_expr, TEMPLATE_CONST_PARM): Don't require
eb66be0e 4047 current_template_parms.
de22184b
MS
4048
4049Fri Jan 17 10:25:42 1997 Jason Merrill <jason@yorick.cygnus.com>
4050
4051 * search.c (lookup_field): Don't return a function, check want_type.
4052
4053Thu Jan 16 18:14:35 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
4054
4055 * init.c (build_new): Make sure PLACEMENT has a type.
4056
4057Thu Jan 16 17:40:28 1997 Jason Merrill <jason@yorick.cygnus.com>
4058
4059 * init.c (build_new): Support new (nothrow).
4060
4061Wed Jan 15 12:38:14 1997 Jason Merrill <jason@yorick.cygnus.com>
4062
4063 * pt.c (instantiate_decl): Also do push_to_top_level before setting
4064 up DECL_INITIAL.
4065
4066 * cp-tree.h (PARM_DEFAULT_FROM_TEMPLATE): New macro.
4067 * pt.c (tsubst): Defer instantiation of default args.
4068 * call.c (build_over_call): Until here.
4069
4070Wed Jan 15 10:08:10 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
4071
4072 * search.c (lookup_field): Make sure we have an
4073 IDENTIFIER_CLASS_VALUE before we try to return it.
4074
4075Thu Jan 9 07:19:01 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
4076
4077 * call.c (build_method_call): Delete unused var PARM.
4078 (build_overload_call_real): Likewise.
4079 (build_object_call): Delete unused var P.
4080 (build_new_op): Likewise.
4081 * decl.c (builtin_type_tdescs_{arr, len, max}): #if 0 out static
4082 var definitions, which are never used.
4083 (shadow_tag): Delete unused var FN.
4084 * expr.c (cplus_expand_expr): Delete unused var ORIGINAL_TARGET.
4085 * init.c (build_new): Delete unused var ALLOC_TEMP.
4086 * method.c (hack_identifier): Delete unused var CONTEXT.
4087 (do_build_copy_constructor): Delete unused var NAME.
4088 (synthesize_method): Delete unused var BASE.
4089 * pt.c (lookup_template_class): Delete unused var CODE_TYPE_NODE.
4090 * rtti.c (build_headof): Delete unused var VPTR.
4091 (get_typeid): Delete unused var T.
4092 * typeck.c (build_conditional_expr): Delete unused vars ORIG_OP1
4093 and ORIG_OP2.
4094 (build_ptrmemfunc): Delete unused vars U and NINDEX.
4095 * typeck2.c (build_functional_cast): Delete unused var BINFO.
4096
4097Wed Jan 8 13:09:54 1997 Jason Merrill <jason@yorick.cygnus.com>
4098
4099 * search.c (lookup_field): Use IDENTIFIER_CLASS_VALUE to look up
4100 things in a type being defined.
4101 * decl.c (finish_enum): Reverse the values so that they are in
4102 the correct order.
4103
4104 * pt.c (instantiate_class_template): Don't initialize
eb66be0e 4105 BINFO_BASETYPES until the vector is filled out.
de22184b
MS
4106 (unify): Don't abort on conflicting bindings, just fail.
4107 (instantiate_decl): Do push_tinst_level before any tsubsting.
4108
4109 * method.c (build_overload_value): Handle getting a
eb66be0e 4110 TEMPLATE_CONST_PARM for a pointer.
de22184b
MS
4111
4112Tue Jan 7 14:00:58 1997 Jason Merrill <jason@yorick.cygnus.com>
4113
4114 * init.c (expand_member_init): Don't give 'not a base' error for
eb66be0e 4115 templates.
de22184b
MS
4116
4117 * pt.c (instantiate_decl): Call import_export_decl later.
4118
4119 * pt.c (instantiate_class_template): Return a value.
4120
4121 * parse.y (extension): New rule for __extension__.
4122 (extdef, unary_expr, decl, component_decl): Use it.
4123
4124Tue Jan 7 09:20:28 1997 Mike Stump <mrs@cygnus.com>
4125
4126 * class.c (base_binfo): Remove unused base_has_virtual member.
4127 (finish_base_struct): Likewise.
4128 (finish_struct_1): Likewise.
4129
4130Tue Dec 31 20:25:50 1996 Mike Stump <mrs@cygnus.com>
4131
4132 * search.c (expand_upcast_fixups): Fix bogus code generation
4133 problem where the generated code uses the wrong index into the
4134 runtime built vtable on the stack. Old code could clobber random
4135 stack values.
4136
4137Tue Dec 31 15:16:56 1996 Mike Stump <mrs@cygnus.com>
4138
4139 * init.c (perform_member_init): Make sure the partial EH cleanups
eb66be0e 4140 live on the function_obstack.
de22184b 4141
f7da6097
MS
4142Fri Dec 27 10:31:40 1996 Paul Eggert <eggert@twinsun.com>
4143
4144 * Make-lang.in (g++spec.o): Don't use $< with an explicit target;
4145 this isn't portable to some versions of `make' (e.g. Solaris 2.5.1).
4146
4147Tue Dec 24 10:24:03 1996 Jeffrey A Law (law@cygnus.com)
4148
4149 * decl.c (grokvardecl): Avoid ANSI style initialization.
4150
4151Sun Dec 22 04:22:06 1996 Jason Merrill <jason@yorick.cygnus.com>
4152
4153 * pt.c (tsubst): Tweak arg types for a FUNCTION_TYPE.
4154
4155Fri Dec 20 17:09:25 1996 Jason Merrill <jason@yorick.cygnus.com>
4156
4157 * pt.c (instantiate_class_template): Call grok_{ctor,op}_properties.
4158
1bf2b2d2
BK
4159Fri Dec 20 12:17:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4160
4161 * g++spec.c (lang_specific_driver): Put missing hyphen in front of
4162 arguments we compare against. Start the count of I at 1, not 0,
4163 since argv[0] is still the command.
4164
f7da6097
MS
4165Thu Dec 19 11:53:57 1996 Stan Shebs <shebs@andros.cygnus.com>
4166
4167 * lang-specs.h: Accept .cp as an C++ extension.
4168
d2e5ee5c
MS
4169Mon Dec 16 22:43:31 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4170
4171 * cp-tree.h (ptr_reasonably_similar): Add decl.
4172
4173Thu Dec 12 15:00:35 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4174
4175 * decl.c (grokvardecl): Change SPECBITS parm to be the SPECBITS_IN
4176 pointer. New local SPECBITS with the parm's value.
4177 (grokdeclarator): Pass &specbits down.
4178
4179 * parse.y (expr_no_commas): Make sure $$ is not an error_mark_node
4180 before we try to do C_SET_EXP_ORIGINAL_CODE on it.
4181
4182 * search.c (envelope_add_decl): Check that the CLASSTYPE_CID of
4183 CONTEXT is not 0 before we try to use TYPE_DERIVES_FROM.
4184
4185 * decl.c (cplus_expand_expr_stmt): Only expand the expr if EXP is
4186 not an error_mark_node.
4187
4188Sat Dec 7 17:20:22 1996 Jason Merrill <jason@yorick.cygnus.com>
4189
4190 * cp-tree.h (TYPE_MAIN_DECL): Use TYPE_STUB_DECL.
4191 * *.c: Use TYPE_MAIN_DECL instead of TYPE_NAME where appropriate.
4192
4193Fri Dec 6 14:40:09 1996 Jason Merrill <jason@yorick.cygnus.com>
4194
4195 * decl.c (grokdeclarator): When giving an anonymous struct a name,
4196 replace TYPE_NAME instead of TYPE_IDENTIFIER (so TYPE_STUB_DECL is
4197 not affected).
4198
4199 * typeck2.c (build_m_component_ref): If component is a pointer
4200 to data member, resolve the OFFSET_REF now.
4201
4202 * call.c (convert_like): Don't go into infinite recursion.
4203
4204 * pt.c (coerce_template_parms): Use tsubst_expr for non-type args.
4205
4206 * class.c (finish_struct_1): Set DECL_ARTIFICIAL on the vptr.
4207 * tree.c (layout_basetypes): And on the vbase ptr.
4208
4209Thu Dec 5 02:11:28 1996 Jason Merrill <jason@yorick.cygnus.com>
4210
4211 * decl.c (BOOL_TYPE_SIZE): Define in terms of POINTER_SIZE or
4212 CHAR_TYPE_SIZE so bool is always the same size as another type.
4213
4214 * decl.c (pushtag): Set DECL_IGNORED_P for DWARF, too.
4215
4216Tue Dec 3 23:18:37 1996 Jason Merrill <jason@yorick.cygnus.com>
4217
4218 * decl2.c (grok_x_components): Remove synthesized methods from
eb66be0e
MS
4219 TYPE_METHODS of an anonymous union, complain about member
4220 functions.
d2e5ee5c
MS
4221 * decl.c (shadow_tag): Wipe out memory of synthesized methods in
4222 anonymous unions.
4223 (finish_function): Just clear the DECL_RTL of our arguments.
4224
4225Fri Nov 29 21:54:17 1996 Jason Merrill <jason@yorick.cygnus.com>
4226
4227 * decl2.c (finish_file): Emit DWARF debugging info for static data
4228 members.
4229
4230 * pt.c (tsubst): If t is a stub decl, return the stub decl for type.
4231
4232Wed Nov 27 14:47:15 1996 Bob Manson <manson@charmed.cygnus.com>
4233
4234 * typeck.c (build_component_ref): Don't die if COMPONENT isn't a
eb66be0e 4235 IDENTIFIER_NODE.
d2e5ee5c
MS
4236
4237Wed Nov 27 16:05:19 1996 Michael Meissner <meissner@tiktok.cygnus.com>
4238
4239 * Make-lang.in (g++-cross$(exeext)): Fix typo.
4240
4241Wed Nov 27 08:14:00 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4242
4243 Make the g++ driver now be a standalone program, rather than one
4244 that tries to run the gcc driver after munging up the options.
4245 * Make-lang.in (g++.c, g++spec.o): New rules.
4246 (g++.o): New rule, based on gcc.o with -DLANG_SPECIFIC_DRIVER
4247 added.
4248 (g++$(exeext)): New rule, based on xgcc rule.
4249 (g++-cross$(exeext)): Now just copies g++$(exeext) over.
4250 * g++spec.c: New file.
4251 * g++.c: Removed file.
4252
4253Tue Nov 26 19:01:09 1996 Mike Stump <mrs@cygnus.com>
4254
4255 * cvt.c (build_up_reference): Arrange for any temporary values
4256 that have been keep in registers until now to be put into memory.
4257
faf5394a 4258Mon Nov 25 15:16:41 1996 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9a3b49ac 4259
faf5394a
MS
4260 * Make-lang.in (c++.stage[1234]): Depend upon stage[1-4]-start, so
4261 that make -j3 bootstrap works better.
9a3b49ac 4262
faf5394a
MS
4263Sun Nov 24 02:09:39 1996 Jason Merrill <jason@yorick.cygnus.com>
4264
4265 * decl.c (pushtag): Do pushdecl for anon tags.
4266
4267Thu Nov 21 16:30:24 1996 Jason Merrill <jason@yorick.cygnus.com>
4268
4269 * typeck.c (c_expand_return): Fix logic.
4270 (unary_complex_lvalue): Avoid unused warning on address of INIT_EXPR.
4271
faf5394a
MS
4272Wed Nov 20 18:47:31 1996 Bob Manson <manson@charmed.cygnus.com>
4273
4274 * g++.c (main): Make sure arglist has a final NULL entry. Add
eb66be0e
MS
4275 PEXECUTE_LAST to the flags passed to pexecute, as otherwise
4276 stdin/stdout of the invoked program are redirected to
4277 nowheresville.
faf5394a
MS
4278
4279Tue Nov 19 16:12:44 1996 Jason Merrill <jason@yorick.cygnus.com>
4280
4281 * decl.c (implicitly_declare): Set DECL_ARTIFICIAL.
4282
4283Tue Nov 19 15:48:19 1996 Mike Stump <mrs@cygnus.com>
4284
4285 * init.c (resolve_offset_ref): Handle obj.vfn better.
4286 * typeck.c (build_component_ref): Set TREE_TYPE on result from
4287 build_vfn_ref.
4288
4289Tue Nov 19 13:14:33 1996 Mike Stump <mrs@cygnus.com>
4290
4291 * typeck.c (convert_for_assignment): Also handle anachronistic
4292 implicit conversions from (::*)() to cv void*.
4293 * cvt.c (cp_convert_to_pointer): Likewise.
4294
4295Mon Nov 18 17:05:26 1996 Jason Merrill <jason@yorick.cygnus.com>
4296
4297 * lex.c (handle_cp_pragma): Fix bogus warning.
4298
4299Mon Nov 18 16:10:43 1996 Mike Stump <mrs@cygnus.com>
4300
4301 * cvt.c (cp_convert_to_pointer): Avoid thinking a POINTER_TYPE
eb66be0e 4302 (METHOD_TYPE) is a TYPE_PTRMEMFUNC_P.
faf5394a
MS
4303
4304Thu Nov 14 23:18:17 1996 Jason Merrill <jason@yorick.cygnus.com>
4305
4306 * class.c (finish_struct_1): Support DWARF2_DEBUG.
4307 * search.c (dfs_debug_mark): Likewise.
4308 * decl2.c (finish_vtable_vardecl): Likewise.
4309 * decl.c (pushtag, finish_enum): Likewise.
4310 * lex.c (check_newline): Use debug_* instead of calling *out
eb66be0e 4311 functions directly.
faf5394a
MS
4312
4313Thu Nov 14 15:21:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4314
4315 * Make-lang.in (cplib2.ready): Add else clause to avoid problems
4316 on some picky hosts.
4317
4318Wed Nov 13 12:32:07 1996 Jason Merrill <jason@yorick.cygnus.com>
4319
4320 * class.c (finish_struct_1): A class has a non-trivial copy
eb66be0e 4321 constructor if it has virtual functions.
faf5394a
MS
4322
4323 * cvt.c (cp_convert): Always call a constructor.
4324
4325 * call.c (reference_binding): Still tack on a REF_BIND
eb66be0e 4326 for bad conversions.
faf5394a
MS
4327 (build_user_type_conversion_1): Propagate ICS_BAD_FLAG.
4328
4329 * typeck.c (convert_arguments): Pass LOOKUP_ONLYCONVERTING.
4330 (c_expand_return): Likewise.
4331 * typeck2.c (digest_init): Likewise for { }.
4332 * init.c (expand_aggr_init_1): Keep the CONSTRUCTOR handling.
4333 * cvt.c (cp_convert): Handle failure better.
4334
4335Wed Nov 13 11:51:20 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4336
4337 * g++.c (main): Also set PEXECUTE_SEARCH, to make the invocation
4338 of GCC be path-relative.
4339
4340Wed Nov 13 11:27:16 1996 Michael Meissner <meissner@tiktok.cygnus.com>
4341
4342 * Make-lang.in (g++-cross): G++-cross doesn't need version.o, but
4343 it does need choose-temp.o and pexecute.o.
4344
4345Wed Nov 13 07:53:38 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4346
4347 * g++.c (error) [!HAVE_VPRINTF]: Put error back for the only time
4348 that we still use it.
4349 (P_tmpdir, R_OK, W_OK, X_OK) [__MSDOS__]: Delete unnecessary macros.
4350
4351Wed Nov 13 02:00:26 1996 Jason Merrill <jason@yorick.cygnus.com>
4352
4353 * init.c (expand_default_init): Avoid calling constructors to
4354 initialize reference temps.
4355
4356 * cvt.c (convert_to_reference): Fix.
4357
4358Tue Nov 12 19:10:07 1996 Jason Merrill <jason@yorick.cygnus.com>
4359
4360 * cvt.c (cp_convert): Simplify for flag_ansi_overloading.
4361 (convert_to_reference): Likewise.
4362 * typeck.c (convert_for_initialization): Likewise.
4363 * init.c (expand_default_init): Likewise.
4364 (expand_aggr_init_1): Likewise.
4365 * cp-tree.h (CONV_NONCONVERTING): Lose.
4366 * typeck.c (build_c_cast): Lose allow_nonconverting parm.
4367 * *.c: Adjust.
4368 * call.c (build_user_type_conversion_1): Assume LOOKUP_ONLYCONVERTING.
4369
4370Tue Nov 12 16:29:04 1996 Brendan Kehoe <brendan@canuck.cygnus.com>
4371
4372 * pt.c (tsubst_expr): Reverse args to expand_start_catch_block.
4373
4374Tue Nov 12 15:26:17 1996 Jason Merrill <jason@yorick.cygnus.com>
4375
4376 * init.c (expand_aggr_init_1): Don't crash on non-constructor
4377 TARGET_EXPR.
4378
4379Tue Nov 12 14:00:50 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4380
4381 * g++.c: Include gansidecl.h.
4382 (VPROTO, PVPROTO, VA_START): Delete.
4383 (choose_temp_base_try, choose_temp_base, perror_exec,
4384 run_dos) [__MSDOS__]: Delete fns.
4385 (pfatal_with_name): Delete fn.
4386 (temp_filename): Declare like in gcc.c.
4387 (pexecute, pwait, choose_temp_base): Declare from gcc.c.
4388 (error_count, signal_count): Define.
4389 (error): Delete both definitions.
4390 (PEXECUTE_{FIRST,LAST,SEARCH,VERBOSE}): Define from gcc.c.
4391 (pfatal_pexecute): Add fn from gcc.c.
4392 (main): Rename local VERBOSE var to VERBOSE_FLAG. Rewrite the
4393 code to use the pexecute stuff also used by gcc.c.
4394 (MIN_FATAL_STATUS): Define.
4395 * Make-lang.in (g++): Add dependency on and linking with
4396 choose-temp.o and pexecute.o.
4397
4398 * cp-tree.h: Include gansidecl.h.
4399 (STDIO_PROTO): Delete #undef/#define.
4400 * cvt.c (NULL): Delete #undef/#define.
4401 * expr.c (NULL): Likewise.
4402 * init.c (NULL): Likewise.
4403 * rtti.c (NULL): Likewise.
4404 * xref.c (NULL): Likewise.
4405
4406 * cp-tree.h (build_user_type_conversion): Add prototype.
4407 * call.c (build_user_type_conversion): Delete prototype. Correct
4408 decl of FLAGS arg to be an int.
4409 * cvt.c (build_user_type_conversion): Likewise.
4410
4411Tue Nov 12 12:16:20 1996 Jason Merrill <jason@yorick.cygnus.com>
4412
4413 * cp-tree.def: Add TRY_BLOCK and HANDLER.
4414 * except.c (expand_start_catch_block): Support templates.
4415 * parse.y (try_block, handler_seq): Likewise.
4416 * pt.c (tsubst_expr): Support TRY_BLOCK and HANDLER.
9a3b49ac
MS
4417
4418Mon Nov 11 13:57:31 1996 Jason Merrill <jason@yorick.cygnus.com>
4419
4420 * pt.c (current_template_args): New fn.
4421 (push_template_decl): Use it.
4422 * decl.c (grokdeclarator): Use it.
4423
4424 * decl2.c (build_expr_from_tree): Dereference ref vars.
4425
4426 * decl.c (grokdeclarator): Generalize handling of TYPENAME_TYPEs in
4427 the decl-specifier-seq.
4428
4429 * decl.c (grok_op_properties): Don't force the type of a conversion
4430 op to be complete. Don't warn about converting to the same type
4431 for template instantiations.
4432
4433 * decl2.c (finish_file): Don't call instantiate_decl on synthesized
4434 methods.
4435
4436Mon Nov 11 13:20:34 1996 Bob Manson <manson@charmed.cygnus.com>
4437
4438 * typeck.c (get_delta_difference): Remove previous bogusness.
4439 Don't give errors if force is set.
4440
4441Fri Nov 8 17:38:44 1996 Jason Merrill <jason@yorick.cygnus.com>
4442
4443 * decl2.c (finish_file): Don't emit debug info.
d2e5ee5c 4444 * decl.c (pushdecl): Lose obsolete code.
9a3b49ac 4445 (grokdeclarator): Still do the long long thing after complaining.
d2e5ee5c
MS
4446 * search.c (note_debug_info_needed): Don't do anything if we're in a
4447 template.
9a3b49ac 4448 * method.c (synthesize_method): For non-local classes,
eb66be0e 4449 push_to_top_level first.
9a3b49ac
MS
4450
4451Fri Nov 8 11:52:28 1996 Bob Manson <manson@charmed.cygnus.com>
4452
4453 * typeck.c (get_delta_difference): Add no_error parameter.
4454 (build_ptrmemfunc): Call get_delta_difference with no_error set;
eb66be0e
MS
4455 we don't want error messages when converting unrelated
4456 pointer-to-member functions.
9a3b49ac
MS
4457
4458Thu Nov 7 11:16:24 1996 Mike Stump <mrs@cygnus.com>
4459
4460 * error.c (dump_expr): Improve the wording on error messages that
4461 involve pointer to member functions.
4462
4463Tue Nov 5 17:12:05 1996 Mike Stump <mrs@cygnus.com>
4464
4465 * cvt.c (cp_convert_to_pointer): Move code for conversions from
eb66be0e 4466 (::*)() to void* or (*)() up a bit, so that we can convert from
9a3b49ac
MS
4467 METHOD_TYPEs as well.
4468
4469Tue Nov 5 14:54:17 1996 Jason Merrill <jason@yorick.cygnus.com>
4470
4471 * rtti.c (get_tinfo_fn): Make sure 'type' is permanent.
4472 There are no 'member' types.
4473 (get_tinfo_fn_dynamic): Diagnose typeid of overloaded fn.
4474 (build_x_typeid): Handle errors.
4475
4476Mon Nov 4 17:43:12 1996 Mike Stump <mrs@cygnus.com>
4477
4478 * typeck.c (convert_for_assignment): Handle anachronistic implicit
4479 conversions from (::*)() to void* or (*)().
4480 * cvt.c (cp_convert_to_pointer): Likewise.
4481 (cp_convert_to_pointer_force): Remove cp_convert_to_pointer
4482 conversions from here.
4483 * decl2.c (lang_decode_option): Add -W{no-,}pmf-conversions.
4484 * lang-options.h: Likewise.
4485 * decl2.c (warn_pmf2ptr): Define.
4486 * cp-tree.h: Declare it.
4487 * typeck2.c (digest_init): Allow pmfs down into
4488 convert_for_initialization.
4489
4490Sun Nov 3 09:43:00 1996 Jason Merrill <jason@yorick.cygnus.com>
4491
4492 * typeck.c (c_expand_return): Fix for returning overloaded fn.
4493
4494Fri Nov 1 08:53:17 1996 Jason Merrill <jason@yorick.cygnus.com>
4495
4496 * cp-tree.h (DIRECT_BIND): Change from INDIRECT_BIND.
4497 * decl.c (grok_reference_init): Pass DIRECT_BIND.
4498 * cvt.c (build_up_reference): Don't mark 'this' addressable. Use
eb66be0e 4499 DIRECT_BIND.
9a3b49ac
MS
4500 * call.c (convert_like): Don't pass INDIRECT_BIND.
4501 * typeck.c (convert_arguments): Likewise.
4502 * typeck.c (mark_addressable): Allow &this if flag_this_is_variable.
4503
4504Thu Oct 31 17:08:49 1996 Jason Merrill <jason@yorick.cygnus.com>
4505
4506 * typeck.c (mark_addressable): Support TARGET_EXPR, unify with
eb66be0e 4507 similar code in build_up_ref.
9a3b49ac
MS
4508 * cvt.c (build_up_reference): Drastically simplify.
4509
691c003d
MS
4510Mon Oct 28 12:45:05 1996 Jeffrey A Law (law@cygnus.com)
4511
4512 * typeck.c (signed_or_unsigned_type): If the given type already
4513 as the correct signedness, then just return it.
4514
eb66be0e
MS
4515 * typeck.c ({un,}signed_type): If can't do anything, call
4516 signed_or_unsigned_type.
691c003d
MS
4517
4518Thu Oct 24 14:21:59 1996 Bob Manson <manson@charmed.cygnus.com>
4519
4520 * decl2.c (copy_assignment_arg_p): Don't buy the farm if
4521 current_class_type is NULL.
4522
4523Wed Oct 23 00:43:10 1996 Jason Merrill <jason@gerbil.cygnus.com>
4524
4525 * class.c (finish_struct_1): Avoid empty structs by adding a field
eb66be0e 4526 so layout_type gets the mode right.
691c003d
MS
4527
4528 * typeck.c (c_expand_return): Drastically simplify.
4529
4530Mon Oct 21 22:34:02 1996 Jason Merrill <jason@yorick.cygnus.com>
4531
4532 * typeck.c (decay_conversion): Handle overloaded methods.
4533
4534Fri Oct 18 16:03:48 1996 Jason Merrill <jason@yorick.cygnus.com>
4535
4536 * call.c (build_over_call): A TARGET_EXPR has side-effects.
4537
f49422da
MS
4538Thu Oct 17 11:31:59 1996 Mike Stump <mrs@cygnus.com>
4539
4540 * cvt.c (convert_to_pointer_force): Add code to support pointer to
eb66be0e 4541 member function to pointer to function conversions.
f49422da 4542 * init.c (resolve_offset_ref): Add code to allow faked up objects,
eb66be0e
MS
4543 ignoring them if they are not used, and giving an error, if they
4544 are needed.
f49422da 4545 * typeck.c (get_member_function_from_ptrfunc): Fold e1 to improve
eb66be0e
MS
4546 code, and so that we can give an error, if we needed an object,
4547 and one was not provided.
f49422da 4548 (build_c_cast): Don't call default_conversion when we want to
eb66be0e 4549 convert to pointer to function from a METHOD_TYPE.
f49422da
MS
4550
4551Mon Oct 14 00:28:51 1996 Jason Merrill <jason@yorick.cygnus.com>
4552
4553 * Make-lang.in (cplib2.ready): Fix logic.
4554
4555 * decl.c (shadow_tag): Only complain about non-artificial function
eb66be0e 4556 members.
f49422da
MS
4557
4558 * class.c (finish_struct_1): Add synthesized methods to TYPE_METHODS.
4559
4560Fri Oct 11 16:12:40 1996 Jason Merrill <jason@yorick.cygnus.com>
4561
4562 * expr.c (cplus_expand_expr): Pre-tweak call_target like
eb66be0e 4563 expand_inline_function would.
f49422da
MS
4564
4565 * pt.c (mark_decl_instantiated): If extern_p, call
eb66be0e 4566 mark_inline_for_output.
f49422da 4567
3d4683cb
MS
4568Thu Oct 10 15:58:08 1996 Mike Stump <mrs@cygnus.com>
4569
4570 * typeck.c (unary_complex_lvalue): Add code to handle intermediate
4571 pmd conversions.
4572
4573 * typeck.c (get_delta_difference): Fix wording, as we can be used
4574 for pointer to data members.
4575
4576Tue Oct 8 12:43:51 1996 Bob Manson <manson@charmed.cygnus.com>
4577
4578 * pt.c (tsubst): If the function decl isn't a member of this
eb66be0e
MS
4579 template, return a copy of the decl (including copying the
4580 lang-specific part) so we don't hose ourselves later.
3d4683cb
MS
4581
4582Thu Oct 3 16:24:28 1996 Jason Merrill <jason@yorick.cygnus.com>
4583
4584 * class.c (finish_struct): Remove DWARF-specific tag handling.
4585 * decl.c (pushtag): Likewise.
4586 (finish_function): Always clear DECL_ARGUMENTS on function decls with
4587 no saved RTX.
4588 * decl2.c (finish_file): Emit DWARF debugging info for static data
4589 members.
4590
4591Wed Oct 2 21:58:01 1996 Bob Manson <manson@charmed.cygnus.com>
4592
4593 * decl.c (duplicate_decls): Make sure the old DECL_LANG_SPECIFIC
4594 isn't the same as the new one before we whack it.
4595
4596Mon Sep 30 13:38:24 1996 Jason Merrill <jason@yorick.cygnus.com>
4597
4598 * class.c, cp-tree.h, cvt.c, decl.c, decl2.c, gxx.gperf, hash.h,
eb66be0e
MS
4599 lex.c, method.c, parse.y, typeck.c, typeck2.c: Remove
4600 warn_traditional and warn_strict_prototypes; remove ancient
4601 'overload' code; remove references to flag_traditional.
3d4683cb 4602
5156628f
MS
4603Mon Sep 30 12:58:40 1996 Mike Stump <mrs@cygnus.com>
4604
4605 * input.c (sub_getch): Handle 8-bit characters in string literals.
4606
4607Sun Sep 29 03:12:01 1996 Jason Merrill <jason@yorick.cygnus.com>
4608
4609 * tree.c (mapcar): Handle CONSTRUCTORs.
4610 (copy_to_permanent): Handle expression_obstack properly.
4611
4612 * Make-lang.in (cplib2.txt): Also depend on the headers.
4613
4614 * rtti.c (get_tinfo_var): Don't assume that POINTER_SIZE ==
eb66be0e 4615 INT_TYPE_SIZE.
5156628f
MS
4616 (expand_class_desc): Use USItype for offset field.
4617 * tinfo.h (struct __class_type_info): Likewise.
4618
4619 * method.c (build_overload_int): TYPE_PRECISION should be applied
eb66be0e 4620 to types.
5156628f
MS
4621
4622Sat Sep 28 14:44:50 1996 Jason Merrill <jason@yorick.cygnus.com>
4623
4624 * call.c (build_new_op): A COND_EXPR involving void must be a
4625 builtin.
4626
4627Fri Sep 27 16:40:30 1996 Jason Merrill <jason@yorick.cygnus.com>
4628
4629 * typeck.c (build_x_component_ref): New fn.
4630 (build_object_ref): Use it.
4631 * parse.y (primary): Use it.
4632 * decl2.c (build_expr_from_tree): Use it.
4633 * cp-tree.h: Declare it.
4634
4635 * decl.c (start_decl): variable-sized arrays cannot be initialized.
4636 * error.c (dump_type_suffix): Handle variable arrays.
4637
4638Fri Sep 27 13:14:05 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4639
4640 * Make-lang.in (exception.o): Put back compiling it with -fPIC.
4641
4642Fri Sep 27 03:00:09 1996 Jason Merrill <jason@yorick.cygnus.com>
4643
4644 * decl.c (lookup_name_real): Don't try to look up anything in a
eb66be0e 4645 TYPENAME_TYPE.
5156628f
MS
4646
4647 * tinfo2.cc (__throw_type_match_rtti): Oops.
4648
4649Thu Sep 26 22:11:05 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4650
4651 * Make-lang.in (exception.o): Use -fno-PIC for now.
4652
4653Thu Sep 26 10:59:00 1996 Jason Merrill <jason@yorick.cygnus.com>
4654
4655 * rtti.c (build_dynamic_cast): Pass tinfo fns rather than
eb66be0e 4656 calling them.
5156628f
MS
4657 (get_tinfo_fn_dynamic): Extracted from build_typeid.
4658 * tinfo2.cc (__dynamic_cast): Adjust.
4659
4660 * rtti.c (build_typeid): Use resolves_to_fixed_type_p.
4661 (build_x_typeid): Likewise.
4662
4663 * parse.y: Call build_x_typeid instead of build_typeid.
4664 * cp-tree.def: Add TYPEID_EXPR.
4665 * pt.c (tsubst_copy): Handle typeid.
4666 * decl2.c (build_expr_from_tree): Likewise.
4667 * rtti.c (build_x_typeid): Throw bad_typeid from here.
4668 (build_typeid): Not here.
4669 * cp-tree.h: Declare build_x_typeid.
4670
4671Wed Sep 25 17:26:16 1996 Jason Merrill <jason@yorick.cygnus.com>
4672
4673 * call.c (convert_like): Pull out constant values.
4674
4675 * tree.c (mapcar): Use build_cplus_array_type, not build_array_type.
4676
4677Wed Sep 25 17:28:53 1996 Michael Meissner <meissner@tiktok.cygnus.com>
4678
4679 * decl.c (init_decl_processing): Create short int types before
4680 creating size_t in case a machine description needs to use
4681 unsigned short for size_t.
4682
4683Tue Sep 24 18:18:44 1996 Jason Merrill <jason@yorick.cygnus.com>
4684
4685 * Make-lang.in (exception.o): Turn off pic.
4686
4687 * tinfo2.cc (__throw_type_match_rtti): Fix cv-variants of the same
4688 type, multi-level ptr conversions.
4689
4690 * rtti.c (call_void_fn): Renamed and genericized from throw_bad_cast.
4691 (throw_bad_cast): Use it.
4692 (throw_bad_typeid): New fn.
4693 (build_typeid): Throw bad_typeid as needed.
4694 Use build_call.
4695 (synthesize_tinfo_fn): Handle functions and arrays before checking
4696 for cv-quals.
4697
4698 * Remove .h from standard C++ headers, add new.h, move into inc
eb66be0e 4699 subdirectory.
5156628f
MS
4700
4701 * exception*: Remove pointer from object, constructors. Add
eb66be0e
MS
4702 default exception::what that uses type_info::name. Add
4703 __throw_bad_typeid.
5156628f
MS
4704
4705 * init.c (build_new): Don't add a cookie to new (void *) T[2].
4706
4707Mon Sep 23 15:21:53 1996 Jason Merrill <jason@yorick.cygnus.com>
4708
4709 * Make-lang.in: Building C++ code depends on cc1plus.
4710
4711Mon Sep 23 12:38:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4712
4713 * decl.c (struct saved_scope): Declare PROCESSING_TEMPLATE_DECL as
4714 a HOST_WIDE_INT, not a tree.
4715
4716Mon Sep 23 12:36:02 1996 Jason Merrill <jason@yorick.cygnus.com>
4717
4718 * exception.cc: Don't include <stdlib.h>.
4719
4720 * Make-lang.in (c++.clean): Remove cplib2.*.
4721
4722Mon Sep 23 09:42:19 1996 Doug Evans <dje@canuck.cygnus.com>
4723
4724 * parse.y (component_decl_1, component_costructor_declarator case):
4725 Pass attributes/prefix_attributes in tree list.
4726
4727Mon Sep 23 01:18:50 1996 Jason Merrill <jason@yorick.cygnus.com>
4728
4729 * tinfo{,2}.cc: #include <stddef.h> instead of <stdlib.h>.
4730
4731Sun Sep 22 05:31:22 1996 Jason Merrill <jason@yorick.cygnus.com>
4732
4733 * lex.c (do_identifier): Don't do deferred lookup in a template
eb66be0e 4734 header.
5156628f
MS
4735
4736 * typeck2.c (store_init_value): Oops.
4737
4738 * new.{h,cc}, exception.{h,cc}, typeinfo.h, tinfo{2.cc,.cc,.h}:
4739 New files for C++ lang-support library.
4740 * Make-lang.in (CXX_EXTRA_HEADERS): Define.
4741 (CXX_LIB2FUNCS): Define.
4742 And rules for building the C++ lang-support code.
4743 * config-lang.in (headers): Define.
4744 (lib2funcs): Define.
4745
4746Sat Sep 21 19:17:28 1996 Jason Merrill <jason@yorick.cygnus.com>
4747
4748 * decl2.c (build_expr_from_tree): If CONSTRUCTOR has a type, call
4749 digest_init.
4750 * pt.c (tsubst_copy): Compute type for CONSTRUCTOR.
4751 * typeck2.c (store_init_value): Check for initializing pmf with { }
4752 here.
4753 (process_init_constructor): Not here.
4754
4755Thu Sep 19 16:41:07 1996 Jason Merrill <jason@yorick.cygnus.com>
4756
4757 * pt.c (begin_template_parm_list): Increment
eb66be0e 4758 processing_template_decl here.
5156628f
MS
4759 (end_template_parm_list): Not here.
4760 (process_template_parm): No need to add 1 to it now.
4761 * *.c: Use processing_template_decl instead of current_template_parms
4762 to check for being in a template.
4763
4764 * pt.c (uses_template_parms): Handle SCOPE_REF. Fix CONSTRUCTOR.
4765 (tsubst_copy): Handle CONSTRUCTOR.
4766 (instantiate_decl): Set up context properly for variables.
4767 * decl2.c (build_expr_from_tree): Handle CONSTRUCTOR.
4768 * class.c (finish_struct): Reverse CLASSTYPE_TAGS.
4769
4770Wed Sep 18 13:30:20 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4771
4772 * lex.c (enum tree_node_kind) [GATHER_STATISTICS]: Put the enum back.
4773
7fcdf4c2
MS
4774Wed Sep 18 04:24:07 1996 Jason Merrill <jason@yorick.cygnus.com>
4775
4776 * method.c (make_thunk): Call comdat_linkage before setting the
eb66be0e 4777 TREE_CODE.
7fcdf4c2
MS
4778
4779 * decl2.c (comdat_linkage): Use make_decl_one_only.
4780 (import_export_decl): Likewise.
4781 * decl.c (init_decl_processing): Check supports_one_only instead of
4782 SUPPORTS_WEAK.
4783
4784Sat Sep 14 08:34:41 1996 Jason Merrill <jason@yorick.cygnus.com>
4785
4786 * decl2.c (grokfield): Tighten checking for access decls.
4787
4788 * decl.c (make_typename_type): Resolve references to
eb66be0e 4789 current_class_type. Set CLASSTYPE_GOT_SEMICOLON.
7fcdf4c2 4790 (lookup_name_real): Types that depend on a template parameter get
eb66be0e 4791 an implicit 'typename' unless they're in the current scope.
7fcdf4c2 4792 (start_decl_1): We don't care about incomplete types that depend
eb66be0e 4793 on a template parm.
7fcdf4c2 4794 (grokdeclarator): Resolve 'typename's in the type specifier that
eb66be0e 4795 refer to members of the current scope.
7fcdf4c2
MS
4796
4797 * call.c (build_over_call): Remove 'inline called before
eb66be0e 4798 definition' diagnostic.
7fcdf4c2
MS
4799 (build_method_call): Likewise.
4800 * decl.c (duplicate_decls): Downgrade 'used before declared
eb66be0e 4801 inline' to a warning, only with -Winline.
7fcdf4c2
MS
4802
4803Fri Sep 13 17:31:40 1996 Stan Shebs <shebs@andros.cygnus.com>
4804
4805 * mpw-make.sed: Fix include paths, add @DASH_C_FLAG@ to compile.
4806
c11b6f21
MS
4807Wed Sep 11 22:38:13 1996 Gerald Baumgartner <gb@cs.purdue.edu>
4808
4809 * call.c (build_method_call): When calling a signature
4810 default implementation, as in other cases, let instance_ptr simply
4811 be instance.
4812
4813Wed Sep 11 22:14:44 1996 Mike Stump <mrs@cygnus.com>
4814
4815 * parse.y (simple_stmt): Cleanup and use do_poplevel ().
4816
4817Wed Sep 11 22:10:48 1996 Mike Stump <mrs@cygnus.com>
4818
4819 * except.c (expand_start_catch_block): Add a pushlevel so that -g
eb66be0e 4820 works on hppa and SPARC.
c11b6f21
MS
4821
4822Wed Sep 11 10:18:06 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4823
4824 * typeck.c (build_indirect_ref): Catch PTR being an error_mark_node.
4825
4826Mon Sep 9 19:51:14 1996 Gerald Baumgartner <gb@cs.purdue.edu>
4827
4828 * call.c (build_over_call): Check first whether DECL_CONTEXT exists
4829 before testing whether it's a signature.
4830
4831Sun Sep 8 16:06:57 1996 Gerald Baumgartner <gb@cs.purdue.edu>
4832
4833 * call.c (build_new_method_call): Don't complain about signature
4834 pointers and references not being an aggr type.
4835 (build_this): If a signature pointer or reference was passed in,
4836 just return it.
4837 (build_new_method_call): If instance is a signature pointer, set
4838 basetype to the signature type of instance.
4839 * sig.c (build_signature_method_call): Deleted basetype and
4840 instance parameters, they can be found as the DECL_CONTEXT of
4841 function and as the first argument passed in.
4842 * cp-tree.h: Changed declaration of build_signature_method_call.
4843 * call.c (build_method_call): Deleted first two arguments in call
4844 of build_signature_method_call.
4845 (build_over_call): Added call to build_signature_method_call.
4846
4847Thu Sep 5 16:51:28 1996 Jason Merrill <jason@yorick.cygnus.com>
4848
4849 * typeck.c (build_c_cast): Don't tack a non_lvalue_expr onto a
eb66be0e 4850 target_expr.
c11b6f21
MS
4851
4852Thu Sep 5 10:05:38 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4853
4854 * cvt.c (convert_to_reference): Use %#T, not %#D, for error.
4855
9ffa2541
BM
4856Wed Sep 4 17:16:09 1996 Bob Manson <manson@charmed.cygnus.com>
4857
4858 * except.c (expand_start_try_stmts): Move to except.c in the backend.
4859 (expand_end_try_stmts): Remove.
4860
4861 * init.c (perform_member_init): Use add_partial_entry () instead
4862 of directly manipulating lists.
4863 (emit_base_init): Ditto.
4864
c11b6f21
MS
4865Wed Sep 4 12:14:36 1996 Mike Stump <mrs@cygnus.com>
4866
4867 * except.c (expand_exception_blocks): Always make sure USE and
eb66be0e
MS
4868 CLOBBER insns that came at the end still do, the backend relies
4869 upon this.
c11b6f21
MS
4870
4871Wed Sep 4 07:44:48 1996 Jason Merrill <jason@yorick.cygnus.com>
4872
4873 * call.c (build_over_call): We can only use a TARGET_EXPR of the
eb66be0e 4874 right type.
c11b6f21
MS
4875
4876Tue Sep 3 19:26:05 1996 Jason Merrill <jason@yorick.cygnus.com>
4877
4878 * cvt.c (convert_to_reference): Revert last change, don't complain
eb66be0e 4879 about temp without target decl.
c11b6f21
MS
4880
4881Tue Sep 3 10:22:56 1996 Mike Stump <mrs@cygnus.com>
4882
4883 * decl.c (grokdeclarator): Don't core dump when void() is given.
4884
4885Tue Sep 3 02:38:56 1996 Jason Merrill <jason@yorick.cygnus.com>
4886
4887 * decl.c (copy_args_p): Don't crash.
4888
4889Fri Aug 30 14:26:57 1996 Mike Stump <mrs@cygnus.com>
4890
4891 * pt.c (tsubst): And support template args inside the exception
eb66be0e 4892 specification.
c11b6f21
MS
4893
4894 * pt.c (tsubst): Add support for exception specifications in
eb66be0e 4895 template functions.
c11b6f21
MS
4896
4897Fri Aug 30 10:01:55 1996 Mike Stump <mrs@cygnus.com>
4898
4899 * cp-tree.def (DECL_STMT): Eliminate the throw spec field, only 3
eb66be0e 4900 fields now.
c11b6f21
MS
4901 * cp-tree.h (start_decl): Eliminate the throw spec parameter.
4902 (start_function): Likewise.
4903 (start_method): Likewise.
4904 (grokfield): Likewise.
4905 (make_call_declarator): Add throw spec parameter.
4906 (set_quals_and_spec): Add routine.
4907 * lex.c (set_quals_and_spec): Likewise.
4908 * decl.h (grokdeclarator): Eliminate the throw spec parameter.
4909 * decl.c (shadow_tag): Eliminate the throw spec parameter to
eb66be0e 4910 grokdeclarator.
c11b6f21
MS
4911 (groktypename): Likewise.
4912 (start_decl): Eliminate the throw spec parameter. Eliminate the
eb66be0e
MS
4913 throw spec parameter to grokdeclarator. Eliminate the throw spec
4914 field in DECL_STMT.
c11b6f21
MS
4915 (cp_finish_decl): Eliminate the throw spec field in DECL_STMT.
4916 (grokfndecl): Remove useless set of raises.
4917 (grokdeclarator): Eliminate the throw spec parameter. Eliminate
eb66be0e
MS
4918 the throw spec parameter to start_decl. Pull the throw spec out
4919 of the call declarator.
c11b6f21
MS
4920 (grokparms): Eliminate the throw spec parameter to grokdeclarator.
4921 (start_function): Eliminate the throw spec parameter. Eliminate
eb66be0e 4922 the throw spec parameter to grokdeclarator.
c11b6f21
MS
4923 (start_method): Likewise.
4924 * decl2.c (grokfield): Likewise.
4925 (grokbitfield): Eliminate the throw spec parameter to grokdeclarator.
4926 (grokoptypename): Likewise.
4927 (finish_file): Eliminate the throw spec parameter to
eb66be0e 4928 start_function. Add throw spec to make_call_declarator.
c11b6f21 4929 * except.c (init_exception_processing): Add throw spec to
eb66be0e
MS
4930 make_call_declarator. Eliminate the throw spec parameter to
4931 start_decl.
c11b6f21 4932 (expand_start_catch_block): Eliminate the throw spec parameter to
eb66be0e 4933 grokdeclarator.
c11b6f21
MS
4934 (expand_builtin_throw): Add throw spec to make_call_declarator.
4935 Eliminate the throw spec parameter to start_function.
4936 (start_anon_func): Likewise.
4937 * lex.c (make_call_declarator): Add throw spec parameter.
4938 (set_quals_and_spec): New routine.
4939 (cons_up_default_function): Add throw spec to make_call_declarator.
4940 Eliminate the throw spec parameter to grokfield.
4941 * method.c (synthesize_method): Eliminate the throw spec parameter
eb66be0e 4942 to start_function.
c11b6f21 4943 * pt.c (process_template_parm): Eliminate the throw spec parameter
eb66be0e 4944 to grokdeclarator.
c11b6f21
MS
4945 (tsubst): Add throw spec to make_call_declarator.
4946 (tsubst_expr): Eliminate the throw spec parameter to start_decl.
4947 (do_function_instantiation): Eliminate the throw spec parameter to
eb66be0e
MS
4948 grokdeclarator. Eliminate the throw spec parameter to
4949 start_function.
c11b6f21 4950 * rtti.c (synthesize_tinfo_fn): Eliminate the throw spec parameter
eb66be0e 4951 to start_function.
c11b6f21
MS
4952 * parse.y (datadef): Remove non-winning optimization.
4953 (decl): Likewise.
4954 (fndef): Remove ambiguous error productions uncovered by grammer
eb66be0e 4955 fixing.
c11b6f21
MS
4956 (constructor_declarator): Add exception_specification_opt here.
4957 (component_constructor_declarator): Likewise.
4958 (direct_after_type_declarator): Likewise.
4959 (complex_direct_notype_declarator): Likewise.
4960 (direct_abstract_declarator): Likewise.
4961 (fn.def1): Remove exception_specification_opt.
4962 (fn.def2): Likewise.
4963 (condition): Likewise.
4964 (initdcl0): Likewise.
4965 (initdcl): Likewise.
4966 (notype_initdcl0): Likewise.
4967 (nomods_initdcl0): Likewise.
4968 (component_decl_1): Likewise.
4969 (component_declarator): Likewise.
4970 (after_type_component_declarator0): Likewise.
4971 (after_type_component_declarator): Likewise.
4972 (notype_component_declarator): Likewise.
4973
4974Wed Aug 28 01:40:30 1996 Jason Merrill <jason@yorick.cygnus.com>
4975
4976 * call.c (build_over_call): Also use an INIT_EXPR when
eb66be0e 4977 initializing anything from an rvalue.
c11b6f21
MS
4978
4979 * call.c (build_over_call): Call stabilize_reference when building
eb66be0e 4980 an INIT_EXPR instead of calling the copy ctor.
c11b6f21
MS
4981
4982 * call.c (joust): Extend the previous change to all comparisons.
4983
4984 * decl2.c, method.c, lex.c: Use MAKE_DECL_ONE_ONLY and
4985 NO_LINKAGE_HEURISTICS.
4986
4987 * decl2.c (finish_file): Emit any statics that weren't already.
4988
4989 * typeck.c (build_static_cast): Implement.
4990 * tree.c (build_cplus_new): Handle getting a TARGET_EXPR.
4991 * decl.c (grokparms): Use can_convert_arg instead of
eb66be0e 4992 implicit_conversion directly.
c11b6f21
MS
4993 (copy_args_p): New fn.
4994 * cvt.c (convert_to_reference): Don't complain about temp with
eb66be0e 4995 static_cast.
c11b6f21
MS
4996 (build_up_reference): Handle TARGET_EXPRs.
4997 * call.c (build_over_call): Elide unnecessary temps.
4998 (can_convert*): Use new overloading code.
4999
5000Tue Aug 27 13:12:21 1996 Jason Merrill <jason@yorick.cygnus.com>
5001
5002 * call.c: Move TYPE_PTR*_MACROS ...
5003 * cp-tree.h: To here.
5004 * typeck.c (build_reinterpret_cast): Implement.
5005
5006 * call.c (add_builtin_candidate): Use TYPE_PTROB_P instead of
eb66be0e 5007 ptr_complete_ob.
c11b6f21
MS
5008 (joust): If we're comparing a function to a builtin and the worst
5009 conversion for the builtin is worse than the worst conversion for the
5010 function, take the function.
5011
5012 * typeck.c (build_const_cast): Implement.
5013 (comp_ptr_ttypes_const): Like comp_ptr_ttypes, for const_cast.
5014 (comp_ptr_ttypes_reinterpret): Like cpt, for reinterpret_cast.
5015
5016Tue Aug 27 13:14:58 1996 Bob Manson <manson@charmed.cygnus.com>
5017
5018 * rtti.c (build_dynamic_cast): Don't try to dereference exprtype
eb66be0e
MS
5019 too early. Make sure we explode if exprtype turns out to be a
5020 NULL_TREE when it shouldn't be.
c11b6f21
MS
5021
5022Tue Aug 27 10:56:21 1996 Mike Stump <mrs@cygnus.com>
5023
5024 * cp-tree.h: New routine make_call_declarator.
5025 * lex.c (make_call_declarator): Define it.
5026 * except.c (init_exception_processing): Use it.
5027 (expand_builtin_throw): Likewise.
5028 (start_anon_func): Likewise.
5029 * decl2.c (finish_file): Likewise.
5030 * lex.c (cons_up_default_function): Likewise.
5031 * parse.y: Likewise.
5032 * pt.c (tsubst): Likewise.
5033
5034Mon Aug 26 17:40:03 1996 Mike Stump <mrs@cygnus.com>
5035
5036 * decl2.c (groktypefield): Remove unused code.
5037
5038Mon Aug 26 17:00:33 1996 Mike Stump <mrs@cygnus.com>
5039
5040 * gxx.gperf: Change TYPE_QUAL into CV_QUALIFIER.
5041 * parse.y: Likewise. Change maybe_type_qual into maybe_cv_qualifier.
5042 Change type_quals into cv_qualifiers. Change nonempty_type_quals into
5043 nonempty_cv_qualifiers.
5044 * hash.h: Rebuild.
5045
5046 * lex.c (make_pointer_declarator): Change type_quals into
eb66be0e 5047 cv_qualifiers.
c11b6f21
MS
5048 (make_reference_declarator): Likewise.
5049
d11ad92e
MS
5050Thu Aug 22 01:09:22 1996 Jason Merrill <jason@yorick.cygnus.com>
5051
5052 * decl.c (start_function): Only check interface_* for templates
eb66be0e 5053 with flag_alt_external_templates.
d11ad92e
MS
5054
5055 * call.c (build_new_op): Check for comparison of different enum types.
5056 (build_over_call): Fix arg # output.
5057
5058 * typeck.c (build_component_ref): Handle pre-found TYPE_DECL.
5059
5060Wed Aug 21 00:13:15 1996 Jason Merrill <jason@yorick.cygnus.com>
5061
5062 * call.c (build_new_op): Check for erroneous args.
5063
5064 * call.c (build_new_method_call): Add missing args to cp_error.
5065
5066 * tree.c (error_type): Dont print reference-to-array.
5067
5068 * typeck.c (convert_for_assignment): Don't say contravariance for
eb66be0e 5069 removing const.
d11ad92e
MS
5070
5071Tue Aug 20 13:23:00 1996 Jason Merrill <jason@yorick.cygnus.com>
5072
5073 * call.c (build_over_call): Diagnose bad convs for `this'.
5074
5075 * lex.c (cons_up_default_function): Set DECL_ARTIFICIAL
5076 on _ctor_arg.
5077
5078 * call.c (convert_like): Handle bad convs.
5079 (build_over_call): Handle bad convs better.
5080
5081 * decl2.c: -fansi-overloading is now the default.
5082
5083 * call.c (build_new_method_call): Check for erroneous args.
5084
5085 * pt.c (instantiate_class_template): Propagate
eb66be0e 5086 TYPE_USES_MULTIPLE_INHERITANCE.
d11ad92e
MS
5087
5088Tue Aug 20 13:09:57 1996 Mike Stump <mrs@cygnus.com>
5089
5090 * call.c (enforce_access): Add static to routine.
5091
5092Sun Aug 18 14:35:54 1996 Jason Merrill <jason@yorick.cygnus.com>
5093
5094 * call.c (build_user_type_conversion_1): Fix bad handling.
5095 (compare_ics): Likewise.
5096
5097Sat Aug 17 21:54:11 1996 Jason Merrill <jason@yorick.cygnus.com>
5098
5099 * call.c (standard_conversion): Oops.
5100
5101Sat Aug 17 16:28:11 1996 Geoffrey Noer <noer@cygnus.com>
5102
5103 * g++.c: Update test for win32 (&& ! cygwin32).
5104
5105Sat Aug 17 03:45:31 1996 Jason Merrill <jason@yorick.cygnus.com>
5106
5107 * typeck.c (comp_ptr_ttypes_real): Handle OFFSET_TYPEs properly.
5108 (ptr_reasonably_similar): New fn.
5109 * call.c (BAD_RANK): New rank.
5110 (ICS_BAD_FLAG): New macro.
5111 (standard_conversion): Handle almost-right pointer conversions.
5112 (reference_binding): Handle bad rvalue bindings.
5113 (add_*_candidate): Stuff.
5114 (build_over_call): Pass bad conversions to convert_for_initialization.
5115 (compare_ics): Handle bad convs.
5116 (joust): Likewise.
5117
5118Fri Aug 16 15:02:19 1996 Bob Manson <manson@charmed.cygnus.com>
5119
5120 * init.c (expand_vec_init): Use ptrdiff_type_node instead of
5121 integer_type_node when computing pointer offsets.
5122
5123Fri Aug 16 01:28:32 1996 Jason Merrill <jason@yorick.cygnus.com>
5124
5125 * tree.c (lvalue_type): New fn.
5126 (error_type): New fn.
5127 * call.c (op_error): Use error_type.
5128 (add_conv_candidate): Use lvalue_type.
5129 (add_builtin_candidates): Likewise.
5130 * error.c (args_as_string): Use error_type.
5131
5132Thu Aug 15 17:27:13 1996 Jason Merrill <jason@yorick.cygnus.com>
5133
5134 * pt.c (instantiate_decl): Evaluate DECL_INITIAL of a VAR_DECL here.
5135 (tsubst): Not here.
5136
5137 * decl.c (init_decl_processing): With -ansi, __null's type is the
5138 signed integral type with the same number of bits as a pointer.
5139 Introduce a new variable null_node for it.
5140 * cp-tree.h: Adjust.
5141 * call.c (null_ptr_cst_p): Adjust.
5142
5143Thu Aug 15 17:09:54 1996 Mike Stump <mrs@cygnus.com>
5144
5145 * except.c (do_unwind): Mark %i7 as used on the SPARC so we can
eb66be0e 5146 optimize.
d11ad92e
MS
5147
5148Thu Aug 15 01:36:49 1996 Jason Merrill <jason@yorick.cygnus.com>
5149
5150 * decl2.c (import_export_decl): Ignore #pragma interface for tinfo
eb66be0e 5151 fns of classes without virtual functions.
d11ad92e
MS
5152
5153 * call.c (add_function_candidate): Handle `this' specially.
5154 (compare_ics): Likewise.
5155
5156Tue Aug 13 12:16:10 1996 Jason Merrill <jason@yorick.cygnus.com>
5157
5158 * typeck.c (build_conditional_expr): Fix handling of __null.
5159
5160 * decl2.c (comdat_linkage): New fn.
5161 (import_export_vtable): Use it.
5162 (import_export_decl): Use it.
5163 * method.c (make_thunk): Use it.
5164
73aad9b9
JM
5165Mon Aug 12 00:09:18 1996 Jason Merrill <jason@yorick.cygnus.com>
5166
5167 * pt.c (end_template_decl): If we don't actually have parms, return.
5168 * parse.y (template_header): Accept 'template <>'.
5169
5170 * errfn.c: Allow 5 args.
5171
5172Sun Aug 11 15:20:58 1996 Jason Merrill <jason@yorick.cygnus.com>
5173
5174 * tree.c (make_temp_vec): New fn.
5175 * pt.c (push_template_decl): Handle partial specs.
d11ad92e 5176 (instantiate_class_template): Likewise.
73aad9b9
JM
5177 (more_specialized): Use get_bindings.
5178 (more_specialized_class): New fn.
5179 (get_class_bindings): New fn.
5180 (most_specialized_class): New fn.
5181 (do_function_instantiation): List candidates for ambiguous case.
5182 * decl.c (duplicate_decls): Lose reference to DECL_TEMPLATE_MEMBERS.
5183 (shadow_tag): Call push_template_decl for partial specializations.
d11ad92e 5184 * parse.y: Likewise.
73aad9b9 5185 * cp-tree.h (DECL_TEMPLATE_SPECIALIZATIONS): Replaces
eb66be0e 5186 DECL_TEMPLATE_MEMBERS.
73aad9b9
JM
5187 * call.c (print_z_candidates): Reduce duplication.
5188
5189Fri Aug 9 14:36:08 1996 Jason Merrill <jason@yorick.cygnus.com>
5190
5191 * decl2.c (lang_decode_option): Allow -fansi-overloading.
5192
5193Thu Aug 8 17:04:18 1996 Jason Merrill <jason@yorick.cygnus.com>
5194
5195 * pt.c (get_bindings): New fn.
d11ad92e 5196 (most_specialized): Likewise.
73aad9b9
JM
5197 (do_function_instantiation): Use them.
5198 (add_maybe_template): New fn.
5199 * cp-tree.h (DECL_MAYBE_TEMPLATE): New macro.
5200 * call.c (build_new_op): Handle guiding decls.
d11ad92e
MS
5201 (build_new_function_call): Likewise.
5202 * decl2.c (finish_file): Likewise.
73aad9b9
JM
5203
5204 * decl2.c (mark_used): Do synthesis here.
5205 * call.c (build_method_call): Not here.
5206 (build_over_call): Or here.
5207 * typeck.c (build_function_call_real): Or here.
5208 * tree.c (bot_manip): Call mark_used on functions used in default
eb66be0e 5209 args.
73aad9b9 5210
2eee5e3a
MM
5211Thu Aug 8 17:48:16 1996 Michael Meissner <meissner@tiktok.cygnus.com>
5212
5213 * decl2.c (import_export_vtable): Delete code that disabled vtable
eb66be0e 5214 heuristic on systems with ASM_OUTPUT_EXTERNAL.
2eee5e3a 5215
c73964b2
MS
5216Wed Aug 7 12:44:11 1996 Jason Merrill <jason@yorick.cygnus.com>
5217
5218 * typeck.c (build_x_function_call): Handle static call context
5219 better.
5220
5221 * decl.c (finish_function): Set the DECL_CONTEXT of the result to
eb66be0e 5222 the function, not its outer block.
c73964b2
MS
5223
5224 * call.c (build_field_call): Pass fields on to build_opfncall
eb66be0e 5225 regardless of TYPE_OVERLOADS_CALL_EXPR.
c73964b2
MS
5226 (build_method_call): Pass on to build_new_method_call sooner.
5227
5228 * typeck.c (build_ptrmemfunc): Just return what instantiate_type
5229 gives us.
5230 * class.c (instantiate_type): Don't put a POINTER_TYPE to
eb66be0e 5231 METHOD_TYPE on an expression. Also make a copy of rhs instead of
c73964b2
MS
5232 modifying it.
5233
5234Tue Aug 6 12:58:46 1996 Jason Merrill <jason@yorick.cygnus.com>
5235
5236 * call.c (compare_ics): Handle qual_conv after lvalue_conv.
5237 (add_builtin_candidate): Don't take enums for ++.
5238 (build_new_method_call): Handle non-aggregates and field calls.
5239 Move new overloading code from...
5240 * cvt.c: Here.
5241
5242 * decl.c (grokparms): Don't check default args in templates.
5243
5244Mon Aug 5 17:17:06 1996 Jason Merrill <jason@yorick.cygnus.com>
5245
5246 * cvt.c (build_new_op): Fix args to build_unary_op.
5247 (add_builtin_candidates): Don't call type_promotes_to on float.
5248
5249 * decl.c (grokparms): Check the type of the default arg.
5250
5251 * cvt.c (build_new_op): Pass non-overloaded cases on rather than
5252 returning NULL_TREE.
5253
5254 * typeck.c (build_x_binary_op): Avoid doing extra work.
d11ad92e
MS
5255 (build_x_unary_op): Likewise.
5256 (build_x_conditional_expr): Likewise.
c73964b2
MS
5257 * cvt.c (build_over_call): Return.
5258 (add_builtin_candidate): Fix MEMBER_REF.
d11ad92e 5259 (build_new_op): Likewise.
c73964b2
MS
5260
5261Mon Aug 5 17:07:47 1996 Mike Stump <mrs@cygnus.com>
5262
5263 * method.c (build_overload_name): Put bug fix into code but leave
eb66be0e
MS
5264 disabled for now so we can be bug compatible with older releases
5265 that do repeats incorrectly. In the future, we can enable it.
c73964b2
MS
5266
5267Mon Aug 5 13:46:28 1996 Jason Merrill <jason@yorick.cygnus.com>
5268
5269 * cvt.c (convert_like): Don't call build_cplus_new twice.
5270
5271 * call.c, cp-tree.h, cvt.c, decl2.c, init.c, method.c, pt.c, typeck.c:
5272 Control new overloading code with -fansi-overloading.
5273
5274Sun Aug 4 15:29:11 1996 Jason Merrill <jason@yorick.cygnus.com>
5275
5276 * cvt.c (build_over_call): Call build_cplus_new.
d11ad92e
MS
5277 * call.c (build_method_call): Likewise.
5278 * typeck.c (build_function_call_real): Likewise.
c73964b2
MS
5279 (build_conditional_expr): If both operands are TARGET_EXPRs, wrap
5280 the COND_EXPR in a TARGET_EXPR so they use the same slot.
5281
5282 * cvt.c (build_up_reference): Propagate INDIRECT_BIND to
5283 recursive calls.
5284 * typeck.c (complete_type): Propagate
eb66be0e 5285 TYPE_NEEDS_{CONSTRUCTING,DESTRUCTOR}.
c73964b2
MS
5286
5287Sat Aug 3 14:05:07 1996 Jason Merrill <jason@yorick.cygnus.com>
5288
5289 * cvt.c (joust): More ?: kludging. Sigh.
5290 (build_over_call): Don't try to synthesize global fns.
5291
5292 * search.c (lookup_conversions): Use binfo marking.
5293
5294Sat Aug 3 12:33:42 1996 Bob Manson <manson@charmed.cygnus.com>
5295
5296 * search.c (build_mi_matrix): Use the correct value of cid
5297 when determining the new mi_size.
5298
5299Sat Aug 3 01:27:41 1996 Jason Merrill <jason@yorick.cygnus.com>
5300
5301 * cvt.c (add_builtin_candidates): Do consider type conversion ops
5302 for the first parms of += et al.
5303 (strip_top_quals): New fn.
5304 (reference_binding): Use it instead of TYPE_MAIN_VARIANT.
d11ad92e 5305 (implicit_conversion): Likewise.
c73964b2
MS
5306 (add_builtin_candidates): Be careful about arrays.
5307 (build_new_method_call): Handle vtable optimization.
5308
5309Fri Aug 2 01:26:59 1996 Jason Merrill <jason@yorick.cygnus.com>
5310
5311 * cp-tree.h (LOOKUP_NO_TEMP_BIND): New flag.
5312 * cvt.c (reference_binding): Use it.
5313 (implicit_conversion): Use it.
5314 (add_builtin_candidate, COND_EXPR): Use it.
5315
5316 * cvt.c (build_new_function_call): Check for error args.
5317
5318 * typeck.c (comptypes): Just check DERIVED_FROM_P, not UNIQUELY.
5319
5320 * gxx.gperf: Add __null.
5321 * hash.h: Regenerate.
5322 * lex.h: Add RID_NULL.
5323 * lex.c (init_lex): Create null_pointer_node here, stick it in
eb66be0e 5324 RID_NULL.
c73964b2
MS
5325 * decl.c (init_decl_processing): Still set its type here.
5326 * cvt.c (cp_convert_to_pointer): Don't produce null_pointer_node.
d11ad92e 5327 (convert_to_pointer_force): Likewise.
c73964b2
MS
5328 (null_ptr_cst_p): Check for null_pointer_node; only accept (void*)0
5329 if (! pedantic).
5330 * call.c (convert_harshness): Use null_ptr_cst_p.
d11ad92e 5331 * typeck.c (convert_for_assignment): Likewise. Don't produce
c73964b2
MS
5332 null_pointer_node.
5333
5334 * error.c (args_as_string): Handle lists of actual args, too.
5335 * cvt.c (null_ptr_cst): Support (void*)0 for now.
5336 (build_user_type_conversion_1): Improve diagnostics.
5337 (build_new_function_call): Likewise.
5338 (build_object_call): Likewise.
5339 (build_new_method_call): Likewise. Move call before def diagnostic...
5340 (build_over_call): Here.
5341
5342 * cvt.c (build_new_method_call): Don't complain about no match if
eb66be0e 5343 LOOKUP_SPECULATIVELY.
c73964b2
MS
5344 (build_over_call): Fix 'this' for virtual fn.
5345 (build_new_method_call): Add diagnostic.
5346
5347Thu Aug 1 16:45:09 1996 Jason Merrill <jason@yorick.cygnus.com>
5348
5349 * cvt.c (add_function_candidate): Expect 'this' and 'in_chrg' for
eb66be0e 5350 constructors to be passed in.
c73964b2
MS
5351 (build_over_call): Likewise.
5352 (build_user_type_conversion_1): Pass them in.
5353 (convert_like): Likewise.
5354 (build_object_call): Handle overloaded conversions.
5355 (build_over_call): Pass the right args to build_vfn_ref.
5356 (standard_conversion): Fix pmf convs.
5357 (joust): Handle comparing statics and non-statics.
5358 (build_new_method_call): New fn.
5359 * call.c (build_method_call): Call it if NEW_OVER.
5360
5361Thu Aug 1 16:06:14 1996 Mike Stump <mrs@cygnus.com>
5362
5363 * lex.c (do_identifier): Don't use %O on IDENTIFIER_OPNAME_Ps, use
eb66be0e 5364 %D instead.
c73964b2
MS
5365
5366Thu Aug 1 15:24:02 1996 Mike Stump <mrs@cygnus.com>
5367
5368 * except.c (expand_throw): Use maybe_build_cleanup_and_delete
eb66be0e
MS
5369 instead of just maybe_build_cleanup so that we deallocate the
5370 thrown object.
c73964b2
MS
5371
5372Thu Aug 1 15:18:00 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5373
5374 * decl2.c (finish_prevtable_vardecl): Make non-static for pt.c's use.
5375 * cp-tree.h (finish_prevtable_vardecl): Add decl.
5376
14548a19
MS
5377Thu Aug 1 11:53:51 1996 Bob Manson <manson@charmed.cygnus.com>
5378
c73964b2 5379 * pt.c (instantiate_class_template): Call complete_type. Also, if
eb66be0e
MS
5380 we're at the end of the file and we just instantiated a template
5381 class with a vtable, call finish_prevtable_vardecl.
c73964b2 5382
14548a19 5383 * error.c (dump_decl): Don't explode (or explode more gracefully
eb66be0e 5384 as appropriate) if the object being dumped has a null type.
d11ad92e 5385 (dump_expr): Likewise.
14548a19
MS
5386
5387 * search.c (build_mi_matrix): Ensure that mi_size is large enough,
eb66be0e
MS
5388 by counting the number of nodes that we'll need before allocating
5389 the array.
14548a19
MS
5390 (lookup_fnfields): Fix comment.
5391 (breadth_first_search): Fix comment.
5392
5393Wed Jul 31 09:57:05 1996 Jason Merrill <jason@yorick.cygnus.com>
5394
5395 * pt.c (instantiate_class_template): Propagate TYPE_PACKED and
eb66be0e 5396 TYPE_ALIGN.
14548a19
MS
5397 * class.c (finish_struct): Call cplus_decl_attributes here.
5398 (finish_struct_1): Not here.
5399 * cp-tree.h: Adjust.
5400
5401 * pt.c (type_unification): New parameter STRICT.
5402 (unify): If STRICT, don't allow cv addition or base deduction.
5403 * call.c, class.c, cvt.c, cp-tree.h: Adjust.
5404
5405Tue Jul 30 13:06:13 1996 Jason Merrill <jason@yorick.cygnus.com>
5406
5407 * search.c (get_template_base{_recursive}): New fns.
5408 * pt.c (more_specialized): New fn.
5409 (do_function_instantiation): Use it.
5410 (unify): Handle base deduction.
5411 * cvt.c (joust): Use more_specialized.
5412 Don't arbitrarily choose between non-builtin candidates.
5413 (build_over_call): Call require_complete_type.
5414
5415 * decl.c (start_function): Statics are static even in a #pragma
eb66be0e 5416 interface file.
14548a19
MS
5417
5418 * decl2.c (import_export_vtable): Disable vtable heuristic on
eb66be0e 5419 systems with ASM_OUTPUT_EXTERNAL.
14548a19
MS
5420
5421 * cvt.c (compare_ics): Fix comparison of PMEM_CONV and BASE_CONV.
5422 (standard_conversion): No std conv to enum type.
5423
5424 * cvt.c (standard_conversion): Fix order of args to DERIVED_FROM_P
5425 for ptm's.
5426
5427 * cvt.c (reference_binding): Bind directly to a base subobject of
eb66be0e 5428 a class rvalue.
14548a19
MS
5429
5430 * cvt.c (build_new_op): Enforce access control.
5431
5432Tue Jul 30 09:22:53 1996 Bob Manson <manson@charmed.cygnus.com>
5433
5434 * typeck2.c (process_init_constructor): When scanning the
5435 union for a named field, skip things that aren't FIELD_DECLs.
5436
5437 * method.c (synthesize_method): Don't scan fndecl's rtl if
5438 we're at the end of the file; just assume the function can't
5439 be inlined.
5440
5441Mon Jul 29 15:48:30 1996 Jason Merrill <jason@yorick.cygnus.com>
5442
5443 * cvt.c (build_builtin_candidate): Stick a dummy conversion in if
eb66be0e 5444 it failed.
14548a19
MS
5445
5446 * cvt.c (build_user_type_conversion_1): Handle overloaded
eb66be0e 5447 conversion ops.
14548a19
MS
5448
5449 * cvt.c (add_builtin_candidates): Don't consider type conversion
eb66be0e 5450 operators for the first parameter of operator=.
14548a19
MS
5451
5452Mon Jul 29 15:33:55 1996 Bob Manson <manson@charmed.cygnus.com>
5453
5454 * typeck.c (complete_type): Only call layout_type if we're not
eb66be0e 5455 expanding a template.
14548a19
MS
5456
5457Mon Jul 29 14:40:38 1996 Jason Merrill <jason@yorick.cygnus.com>
5458
5459 * cvt.c (compare_ics): Oops.
5460
5461 * cvt.c (op_error): Oops.
5462
5463 * cp-tree.def: Add RVALUE_CONV, rename EXACT_CONV to IDENTITY_CONV.
5464 * cvt.c: Add IDENTITY_RANK before others. Use real_lvalue_p.
5465 (build_conv): Use them.
5466 (implicit_conversion): Use them.
5467 (convert_like): Handle them.
5468 (build_new_op): Handle builtin COND_EXPR again.
5469 (add_builtin_candidates): Strip cv-quals. Fix oops. Include enums
5470 in lists of types for COND_EXPR.
5471 (add_builtin_candidate): Add enum candidates for COND_EXPR.
5472
5473Mon Jul 29 12:05:40 1996 Bob Manson <manson@charmed.cygnus.com>
5474
5475 * typeck.c (build_modify_expr): Always attempt to build a call to
eb66be0e 5476 the assignment operator, even if we're using a default one.
14548a19
MS
5477 (convert_for_initialization): Call complete_type.
5478
5479Mon Jul 29 11:25:08 1996 Jason Merrill <jason@yorick.cygnus.com>
5480
5481 * cvt.c (reference_binding): A REF_BIND gets the reference type.
5482 (implicit_conversion): Likewise.
5483 (convert_like): Likewise.
5484 (compare_ics): Likewise.
5485 (compare_qual): Likewise.
5486 (print_z_candidates): Handle no candidates.
5487 (build_new_op): Don't handle builtin COND_EXPR for now.
5488
5489Sat Jul 27 11:27:47 1996 Stan Shebs <shebs@andros.cygnus.com>
5490
5491 * cvt.c (build_builtin_candidate): Init local var in an ANSI way.
5492
5493Fri Jul 26 01:07:22 1996 Jason Merrill <jason@yorick.cygnus.com>
5494
5495 * cvt.c (joust): If the candidates are the same, arbitrarily pick one.
5496
5497 * cvt.c (build_builtin_candidate): Oops.
5498 (build_new_op): Oops.
5499
5500 * method.c (build_opfncall): Pass COND_EXPR on.
5501 * cvt.c (build_builtin_candidate): Reorganize, support COND_EXPR.
5502 (add_builtin_candidate{,s}): Likewise.
5503 (add_builtin_candidates): Likewise.
5504 (print_z_candidates, op_error, build_new_op): Likewise.
5505 (type_decays_to): New fn.
5506 * lex.c (init_lex): Just say ?: for COND_EXPR.
5507
5508Thu Jul 25 09:33:33 1996 Jason Merrill <jason@yorick.cygnus.com>
5509
5510 * typeck.c (complete_type): Call layout_type rather than building
eb66be0e 5511 a new array type.
14548a19
MS
5512
5513 * cvt.c (add_builtin_candidate): Pointer arithmetic candidates
eb66be0e 5514 only use ptrdiff_t.
14548a19
MS
5515
5516Wed Jul 24 12:45:08 1996 Jason Merrill <jason@yorick.cygnus.com>
5517
5518 * cvt.c: Always compile the new overloading code (but don't use it).
5519 (implicit_conversion): Add a BASE_CONV when converting to
eb66be0e 5520 the same class type.
14548a19
MS
5521 (convert_like): Handle BASE_CONV.
5522
5523Tue Jul 23 12:46:30 1996 Jason Merrill <jason@yorick.cygnus.com>
5524
5525 * cvt.c (build_new_op): Support {MAX,MIN}_EXPR.
5526 (add_builtin_candidate): Likewise.
5527
5528 NEW_OVER changes:
5529 * typeck.c (build_x_function_call): Try an operator function
eb66be0e 5530 whenever we call an object of class type.
14548a19
MS
5531 * method.c (build_opfncall): Pass CALL_EXPRs through.
5532 * cvt.c (implicit_conversion): Do const-ref case first.
5533 (add_conv_candidate, build_object_call, op_error): New fns.
5534 (ptr_complete_ob, TYPE_PTROB_P): void is not an object type.
5535 ({add,build}_builtin_candidate{,s}, print_z_candidates): Display
5536 builtin candidates.
5537 (build_new_op): Handle CALL_EXPR. Don't try to decay void.
5538 Fall back on preincrement handling. Use op_error.
5539 Handle warn_synth.
5540 (convert_like): Pass INDIRECT_BIND. Don't try to do anything with
5541 an error_mark_node.
5542 (build_over_call): Handle PROMOTE_PROTOTYPES and ellipsis promotions
5543 properly.
5544
5545Mon Jul 22 16:21:55 1996 Bob Manson <manson@charmed.cygnus.com>
5546
5547 * pt.c (tsubst_expr): Handle CONTINUE_STMT.
5548
5549Mon Jul 22 15:38:58 1996 Mike Stump <mrs@cygnus.com>
5550
5551 * typeck.c (build_component_ref_1): Use build_component_ref
5552 instead of open coding it here.
5553
5554Mon Jul 22 12:18:54 1996 Jason Merrill <jason@yorick.cygnus.com>
5555
5556 * g++.c (main): Don't link with -lg++.
5557
5558 NEW_OVER changes:
5559 * cvt.c (convert_to_reference): Don't use convert_from_refeence on
eb66be0e 5560 result of build_type_conversion.
14548a19
MS
5561 (cp_convert): Only call build_method_call for ctors if
5562 build_type_conversion failed.
5563 (ptr_complete_ob): New function.
5564 (TYPE_PTR{,OB,MEM}_P): New macros.
5565 ({add,build}_builtin_candidate{,s}): New functions.
5566 (print_z_candidates): Handle builtins.
5567 (build_user_type_conversion_1): Don't use conversion fns for
5568 converting to a base type.
5569 (build_user_type_conversion_1): Set ICS_USER_FLAG on AMBIG_CONVs.
5570 (build_user_type_conversion): Use convert_from_reference.
5571 (build_new_op): New function.
5572 (build_over_call): Fix handling of methods.
5573 (compare_ics): Handle AMBIG_CONV properly.
5574 * typeck2.c: Increment abort count.
5575 * method.c (build_opfncall): Forward most requests to build_new_op.
5576 * cp-tree.h (IS_OVERLOAD_TYPE): Tweak.
5577
5578Fri Jul 19 17:59:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5579
5580 * error.c (dump_expr, case CONSTRUCTOR, case CAST_EXPR): Take out
5581 invalid second argument to dump_expr_list.
5582
594740f3
MS
5583Fri Jul 19 14:04:05 1996 Mike Stump <mrs@cygnus.com>
5584
5585 * decl.c (lookup_name_real): Make sure we do obj->X::i correctly.
5586
5587Thu Jul 18 14:48:23 1996 Bob Manson <manson@charmed.cygnus.com>
5588
5589 * decl2.c (import_export_vtable): ASM_OUTPUT_EXTERNAL, not
5590 ASSEMBLE_EXTERNAL.
5591
5592Mon Jul 15 17:48:43 1996 Mike Stump <mrs@cygnus.com>
5593
5594 * typeck2.c (process_init_constructor): New pedwarn for using { }
5595 to initialize a pointer to member function.
5596 * typeck.c (build_ptrmemfunc1): Avoid use of digest_init so that
5597 we can avoid the new error.
5598
5599Mon Jul 15 15:42:03 1996 Mike Stump <mrs@cygnus.com>
5600
5601 * typeck.c (build_ptrmemfunc1): New function to hide details of
5602 pointer to member functions better.
5603
5604Mon Jul 15 14:23:02 1996 Mike Stump <mrs@cygnus.com>
5605
5606 * init.c (resolve_offset_ref): Resolve OFFSET_REFs that are
5607 methods into the actual method, as we know the implied object is
5608 not used.
5609
5610Mon Jul 15 13:08:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5611
5612 * parse.y (maybecomma_warn): Only emit the pedwarn if we're not
5613 inside a system header.
5614
5615Fri Jul 12 16:30:05 1996 Bob Manson <manson@charmed.cygnus.com>
5616
5617 * call.c (build_method_call): Call complete_type on the
5618 instance type.
5619
5620Thu Jul 11 17:16:40 1996 Mike Stump <mrs@cygnus.com>
5621
5622 * typeck.c (build_component_ref): Always build up an OFFSET_REF
5623 for obj_ptr->func so that we can know which object to use in a
5624 method call.
5625
5626Wed Jul 10 19:36:37 1996 Mike Stump <mrs@cygnus.com>
5627
5628 * typeck.c (build_ptrmemfunc): Remove sorry, now we can cast
5629 around things. Also improve maintainability.
5630
5631Wed Jul 10 18:20:11 1996 Bob Manson <manson@charmed.cygnus.com>
5632
5633 * decl.c (grokdeclarator): Check for overflow when evaluating an
eb66be0e 5634 array dimension.
594740f3
MS
5635
5636Wed Jul 10 17:26:19 1996 Jason Merrill <jason@yorick.cygnus.com>
5637
5638 * cvt.c (cp_convert): Don't check for ambiguity with constructor
eb66be0e 5639 if NEW_OVER.
594740f3
MS
5640
5641 * typeck.c (build_x_function_call): Pass function overload
eb66be0e 5642 questions to new overloading code if NEW_OVER.
594740f3 5643 * init.c (expand_aggr_init_1): Only check for type conversion ops
eb66be0e
MS
5644 if we're doing copy-initialization (i.e. LOOKUP_ONLYCONVERTING).
5645 Don't check for ambiguity with constructor if NEW_OVER.
594740f3 5646 * cvt.c (convert_to_reference): Dereference the result of a type
eb66be0e 5647 conversion operator.
594740f3
MS
5648 (build_conv): Propagate ICS_USER_FLAG.
5649 (implicit_conversion): Call instantiate_type.
5650 Pass LOOKUP_ONLYCONVERTING instead of LOOKUP_NORMAL.
5651 (add_function_candidate): Fix cv-quals on argtype.
5652 (print_z_candidates): New function.
5653 (build_new_function_call): Call it.
5654 (build_user_type_conversion_1): If LOOKUP_ONLYCONVERTING, don't
5655 consider non-converting constructors.
5656 Call print_z_candidates.
5657 Return an AMBIG_CONV for an ambiguous conversion.
5658 (build_user_type_conversion): Handle AMBIG_CONV.
5659 (convert_like): Fix test for building TARGET_EXPR.
5660 Call instantiate_type.
5661 Handle AMBIG_CONV and LVALUE_CONV.
5662 (build_over_call): Handle 0 args and ellipsis.
5663 * cp-tree.def: Add AMBIG_CONV.
5664
e92cc029
MS
5665Tue Jul 9 17:48:48 1996 Mike Stump <mrs@cygnus.com>
5666
5667 * decl.c (lookup_name_real): If we find mem in obj when parsing
eb66be0e 5668 `obj->mem', make sure we return the right value.
e92cc029
MS
5669
5670Tue Jul 9 16:11:28 1996 Bob Manson <manson@charmed.cygnus.com>
5671
5672 * search.c (get_base_distance): Call complete_type.
5673
5674Tue Jul 9 12:46:34 1996 Mike Stump <mrs@cygnus.com>
5675
5676 * decl.c (store_bindings): Make static.
5677
5678Mon Jul 8 16:42:31 1996 Jason Merrill <jason@yorick.cygnus.com>
5679
5680 * init.c (expand_aggr_init_1): Don't check type conversions if
eb66be0e 5681 NEW_OVER.
e92cc029
MS
5682
5683 * cvt.c (z_candidate): Put back template field.
5684 (add_function_candidate): Set it.
5685 (add_template_candidate): Likewise.
5686 (joust): Use it.
5687 (compare_qual): Handle references and pointers to members.
5688 (compare_ics): Handle reference bindings.
5689
5690 * decl.c (duplicate_decls): Propagate DECL_ONE_ONLY.
5691
5692Mon Jul 8 16:18:56 1996 Bob Manson <manson@charmed.cygnus.com>
5693
5694 * call.c (compute_conversion_costs): Call complete_type.
5695
5696 * tree.c (vec_binfo_member): Use comptypes instead of comparing
eb66be0e 5697 pointers, so we can handle template parameters.
e92cc029
MS
5698
5699Fri Jul 5 16:51:53 1996 Bob Manson <manson@charmed.cygnus.com>
5700
5701 * cvt.c (cp_convert_to_pointer): We have to call complete_type
5702 here; let's make it explicit instead of a side effect of an
5703 error check.
5704
5705Wed Jul 3 16:29:51 1996 Jason Merrill <jason@yorick.cygnus.com>
5706
5707 * cvt.c (z_candidate): Remove template field.
5708 (reference_binding): Handle binding to temporary.
5709 (implicit_conversion): Likewise.
5710 (add_function_candidate): Handle artificial constructor parms.
5711 Handle functions with too few parms.
5712 (add_template_candidate): New function.
5713 (build_user_type_conversion_1): Handle constructors.
5714 (convert_like): Likewise.
5715 (build_over_call): Likewise.
5716 (build_new_function_call): Support templates.
5717 (compare_ics): Fix reference, inheritance handling.
5718
5719Mon Jul 1 22:58:18 1996 Bob Manson <manson@charmed.cygnus.com>
5720
5721 * decl.c: Add signed_size_zero_node.
5722 (init_decl_processing): Build it.
5723 * class.c (prepare_fresh_vtable): Use it instead of size_zero_node
eb66be0e 5724 when we're trying to make a negative delta.
e92cc029
MS
5725
5726Mon Jul 1 17:56:19 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5727
5728 Stop doing this damn index==strchr variable name confusion.
5729 * class.c (add_virtual_function): Change local var INDEX to be
5730 named IDX.
5731 (add_method): Likewise.
5732 * lex.c (print_parse_statistics): Likewise.
5733 * search.c (make_memoized_table_entry): Likewise.
5734 (lookup_fnfields_here): Likewise.
5735 (lookup_field): Likewise.
5736 (lookup_fnfields): Likewise.
5737 (get_baselinks): Likewise.
5738 * sig.c (build_signature_table_constructor): Likewise.
5739 (build_signature_method_call): Likewise.
5740 * typeck.c (build_x_array_ref): Change INDEX parm to be named IDX.
5741 (get_member_function_from_ptrfunc): Likewise.
5742 (build_ptrmemfunc): Change local var INDEX to be IDX.
5743 (c_expand_start_case): Likewise.
5744
5745Sat Jun 29 14:05:46 1996 Jason Merrill <jason@yorick.cygnus.com>
5746
5747 * cvt.c (cp_convert_to_pointer): Move user-defined type conversion
eb66be0e 5748 handling to before extraction of TYPE_PTRMEMFUNC_FN_TYPE.
e92cc029 5749 (convert_to_reference): Use build_type_conversion to convert to
eb66be0e 5750 the reference type directly.
e92cc029
MS
5751 (standard_conversion): Fix void* case, non-conversions.
5752 (reference_binding): Fix expr == 0 case, non-conversions.
5753 (convert_like): Support REF_BIND.
5754 (compare_qual): Split out from compare_ics.
5755 (compare_ics): Use it, handle icses with only a qual_conv.
5756
5757 * init.c (expand_vec_init): Don't crash if decl is NULL.
5758
5759Fri Jun 28 11:52:51 1996 Stan Shebs <shebs@andros.cygnus.com>
5760
5761 * mpw-config.in: New file, configury for Mac MPW.
5762 * mpw-make.sed: New file, makefile editing for MPW.
5763
5764Thu Jun 27 15:18:30 1996 Jason Merrill <jason@yorick.cygnus.com>
5765
5766 * pt.c (instantiate_class_template): Call repo_template_used.
5767
5768 * search.c (lookup_conversions): Only lookup conversions in
eb66be0e 5769 complete types.
e92cc029
MS
5770
5771Thu Jun 27 12:59:53 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5772
5773 * cp-tree.def: Renamed from tree.def, to avoid confusion with
5774 gcc's tree.def.
5775 * cp-tree.h, lex.c: Include cp-tree.def.
5776 * Makefile.in (CXX_TREE_H): Reference cp-tree.def.
5777
5778Wed Jun 26 18:29:47 1996 Bob Manson <manson@charmed.cygnus.com>
5779
5780 * init.c (build_vec_delete_1): Call complete_type.
5781
5782Mon Jun 24 17:17:32 1996 Mike Stump <mrs@cygnus.com>
5783
5784 * except.c (start_anon_func): Make sure anonymous functions are
eb66be0e 5785 never external.
e92cc029
MS
5786
5787Fri Jun 21 15:10:58 1996 Jason Merrill <jason@yorick.cygnus.com>
5788
5789 * decl.c (finish_function): If function_depth > 1, set nested.
5790
5791 * decl2.c (grokbitfield): Revert Bob's change.
5792 * class.c (finish_struct_1): Fix handling of named bitfield widths.
5793
5794Thu Jun 20 23:35:38 1996 Jason Merrill <jason@yorick.cygnus.com>
5795
5796 * pt.c (add_pending_template): Handle types.
5797 (lookup_template_class): With -fexternal-templates, just add the class
5798 to pending_templates instead of instantiating it now.
5799 * decl2.c (finish_file): Handle types in pending_templates.
5800
5801Thu Jun 20 14:08:40 1996 Bob Manson <manson@charmed.cygnus.com>
5802
5803 * decl2.c (grokbitfield): Handle constant decls appropriately.
eb66be0e
MS
5804 Give an appropriate error message now instead of spewing core
5805 later.
e92cc029
MS
5806
5807Thu Jun 20 13:01:51 1996 Jason Merrill <jason@yorick.cygnus.com>
5808
5809 * decl2.c: Don't turn on thunks by default for now.
5810
5811Wed Jun 19 11:37:04 1996 Jason Merrill <jason@yorick.cygnus.com>
5812
5813 * typeck.c (complete_type): Handle error_mark_node.
5814 (common_type, OFFSET_TYPE): Handle template_type_parms.
5815
5816Tue Jun 18 10:02:15 1996 Jason Merrill <jason@yorick.cygnus.com>
5817
5818 * pt.c (instantiate_decl): If at_eof, call import_export_decl
eb66be0e 5819 regardless of DECL_INLINE.
e92cc029
MS
5820
5821 * typeck.c (mark_addressable): Set TREE_ADDRESSABLE on CONSTRUCTORs.
5822
5823 * class.c (finish_struct_bits): Copy TYPE_SIZE.
5824
5825 * rtti.c (build_dynamic_cast): Support templates.
5826 * tree.def: Support DYNAMIC_CAST_EXPR.
5827 * pt.c (tsubst_copy): Likewise.
5828 * decl2.c (build_expr_from_tree): Likewise.
5829
5830Mon Jun 17 15:23:36 1996 Jason Merrill <jason@yorick.cygnus.com>
5831
5832 * typeck.c (build_static_cast): Support templates.
5833 (build_const_cast): Likewise.
5834 * tree.def: Support CONST/STATIC_CAST_EXPR.
5835 * pt.c (tsubst_copy): Likewise.
5836 * decl2.c (build_expr_from_tree): Likewise.
5837
5838Sun Jun 16 12:33:57 1996 Jason Merrill <jason@yorick.cygnus.com>
5839
5840 * decl2.c (finish_vtable_vardecl): Don't trust
eb66be0e 5841 TREE_SYMBOL_REFERENCED for vtables of local classes.
e92cc029
MS
5842
5843Fri Jun 14 18:13:36 1996 Jason Merrill <jason@yorick.cygnus.com>
5844
5845 * pt.c (tsubst_copy): Handle operator T.
5846
5847Wed Jun 12 17:52:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5848
5849 * init.c (build_delete): Move creation of PARMS inside test of
5850 TYPE_HAS_DESTRUCTOR, since it's never used outside of that block.
5851
5852Tue Jun 11 15:09:18 1996 Bob Manson <manson@charmed.cygnus.com>
5853
5854 * typeck.c (build_conditional_expr): Don't assume that
5855 the arguments to ?: are always pointers or records.
5856
5857Tue Jun 11 13:56:23 1996 Jason Merrill <jason@yorick.cygnus.com>
5858
5859 * decl2.c (import_export_decl): Still emit static/weak/comdat
eb66be0e 5860 copies of inline template functions with -fno-implicit-templates.
e92cc029
MS
5861
5862Tue Jun 11 11:42:13 1996 Bob Manson <manson@charmed.cygnus.com>
5863
5864 * init.c (build_delete): Determine the complete basetype
5865 path to the destructor we're calling.
5866
5867Fri Jun 7 15:30:10 1996 Bob Manson <manson@charmed.cygnus.com>
5868
5869 * decl.c (build_enumerator): Always copy the INTEGER_CST used to
eb66be0e
MS
5870 initialize the enum, because we really and truly don't know where
5871 it came from.
e92cc029 5872 (start_enum): Don't copy integer_zero_node because
eb66be0e 5873 build_enumerator will do it.
e92cc029
MS
5874
5875Fri Jun 7 11:11:09 1996 Jason Merrill <jason@yorick.cygnus.com>
5876
5877 * decl.c (finish_function): Do access control on base destructors.
5878
5879 * pt.c (tsubst, case FUNCTION_DECL): Set up
eb66be0e
MS
5880 IDENTIFIER_GLOBAL_VALUE for member functions so pushdecl doesn't
5881 hose us.
e92cc029
MS
5882
5883Fri Jun 7 10:37:33 1996 Mike Stump <mrs@cygnus.com>
5884
5885 * cvt.c (build_up_reference): If we have already extended the
eb66be0e 5886 lifetime of the temporary, don't try it again.
e92cc029
MS
5887 * typeck.c (c_expand_return): Don't try and convert the return
5888 value twice when we want a reference, once is enough.
5889
a0128b67
MS
5890Tue Jun 4 15:41:45 1996 Jason Merrill <jason@yorick.cygnus.com>
5891
5892 * pt.c (tsubst_expr, case DECL_STMT): Don't pass
eb66be0e 5893 LOOKUP_ONLYCONVERTING at all for now.
a0128b67
MS
5894
5895 * search.c (add_conversions): Put the conversion function in
eb66be0e 5896 TREE_VALUE, the basetype in TREE_PURPOSE.
a0128b67
MS
5897 * cvt.c (build_type_conversion): Adjust.
5898 * cvt.c (build_expr_type_conversion): Adjust.
5899 * call.c (user_harshness): Adjust.
5900
5901Mon Jun 3 15:30:52 1996 Jason Merrill <jason@yorick.cygnus.com>
5902
5903 * method.c (emit_thunk): Pretend this is a FUNCTION_DECL for the
eb66be0e 5904 backend's benefit.
a0128b67 5905
14548a19
MS
5906Mon Jun 10 18:58:19 1996 Mike Stump <mrs@cygnus.com>
5907
5908 * except.c (expand_start_catch_block): Add a dummy region, if we
5909 get an error, so that we can avoid core dumping later.
5910
a0128b67
MS
5911Fri May 31 14:56:13 1996 Mike Stump <mrs@cygnus.com>
5912
5913 * cp-tree.h (OFFSET_REF): Remove.
5914 * tree.def (CP_OFFSET_REF): Rename to OFFSET_REF.
5915 * expr.c (cplus_expand_expr): Cleanup callers of expand_expr.
d11ad92e
MS
5916 * init.c (expand_aggr_init_1): Likewise.
5917 (build_new): Likewise.
5918 * typeck.c (expand_target_expr): Likewise.
a0128b67
MS
5919
5920Fri May 31 14:22:08 1996 Jason Merrill <jason@yorick.cygnus.com>
5921
5922 * typeck.c (build_modify_expr): Don't use TREE_VALUE on a
eb66be0e 5923 TARGET_EXPR.
a0128b67 5924
e349ee73
MS
5925Wed May 29 17:04:33 1996 Mike Stump <mrs@cygnus.com>
5926
5927 * cvt.c (build_up_reference): Redo how and when temporaries are
5928 created.
5929 * decl.c (grok_reference_init): Don't try and be smart about
5930 running cleanups.
5931
5932Wed May 29 16:02:08 1996 Mike Stump <mrs@cygnus.com>
5933
5934 * cvt.c (build_up_reference): Add NULL_TREE to all calls to build
5935 (TARGET_EXPR...), now that it has 4 arguments.
d11ad92e 5936 * tree.c (build_cplus_new): Likewise.
e349ee73
MS
5937
5938Thu May 23 16:40:30 1996 Jason Merrill <jason@yorick.cygnus.com>
5939
5940 * error.c (dump_expr, case CAST_EXPR): Handle T() properly.
5941
5942 * pt.c (instantiate_decl): Don't call push/pop_cp_function_context.
5943 * decl.c (struct saved_scope): Remove named_labels,
5944 {base,member}_init_list.
5945 (maybe_push_to_top_level): Don't set them. Call
5946 push_cp_function_context if appropriate.
5947 (pop_from_top_level): Likewise.
5948
5949 * method.c (do_build_assign_ref): Remove obsolete check of
5950 TYPE_HAS_ASSIGN_REF (basetype).
5951
5952 * decl.c (grokfndecl): Diagnose user definition of
eb66be0e 5953 implicitly-declared methods.
e349ee73
MS
5954
5955Thu May 23 12:13:08 1996 Bob Manson <manson@charmed.cygnus.com>
5956
5957 * method.c (do_build_copy_constructor): Add code to give
eb66be0e
MS
5958 meaningful error messages instead of crashing.
5959 (do_build_assign_ref): Don't synthesize assignment operators for
5960 classes containing reference or const members.
e349ee73
MS
5961
5962 * class.c (struct base_info): Remove cant_synth_copy_ctor
5963 and cant_synth_asn_ref.
5964 (finish_base_struct): Remove the code that tries to conditionalize
eb66be0e
MS
5965 synthesis of copy constructors & assignment operators based on
5966 access permissions. Instead, let it fail when it tries to
5967 synthesize the copy constructor. This will give meaningful error
5968 messages instead of silently generating code to perform a bitcopy.
e349ee73
MS
5969
5970Wed May 22 11:45:19 1996 Bob Manson <manson@charmed.cygnus.com>
5971
5972 * lex.c (real_yylex): Remove old-n-crufty #if 0 code for
eb66be0e 5973 determining types for constant values.
e349ee73
MS
5974
5975 * decl.c (struct named_label_list): Use instead of stuffing
5976 random items into a TREE_LIST node.
5977 (named_label_uses): Use the new struct.
d11ad92e
MS
5978 (poplevel): Likewise.
5979 (lookup_label): Likewise.
e349ee73 5980 (define_label): Add an error message to tell the user the line
eb66be0e
MS
5981 where the goto is located in addition to the destination of the
5982 goto.
e349ee73
MS
5983 (init_decl_processing): Use NULL instead of NULL_TREE to initialize
5984 named_label_uses.
d11ad92e 5985 (finish_function): Likewise.
e349ee73
MS
5986
5987 (start_decl): Complain about defining a static data member
5988 in a different type from which it was declared.
5989
5990Wed May 22 09:33:23 1996 Jason Merrill <jason@yorick.cygnus.com>
5991
5992 * cvt.c (build_expr_type_conversion): Adjust.
5993
5994Tue May 21 11:21:56 1996 Jason Merrill <jason@yorick.cygnus.com>
5995
5996 * call.c (build_method_call): Always convert 'this' to the
eb66be0e 5997 appropriate type.
e349ee73
MS
5998
5999 * search.c (add_conversions): Put the conversion function in
eb66be0e 6000 TREE_VALUE, the type in TREE_PURPOSE.
e349ee73
MS
6001 * cvt.c (build_type_conversion): Adjust.
6002 * call.c (user_harshness): Adjust.
6003
6004 * method.c (emit_thunk): Call temporary_allocation and
eb66be0e 6005 permanent_allocation around the ASM_OUTPUT_MI_THUNK case, too.
e349ee73
MS
6006
6007 * tree.c (build_cplus_array_type): Handle tweaking of
eb66be0e 6008 TYPE_MAIN_VARIANT here.
e349ee73
MS
6009 * typeck.c (common_type): Not here.
6010
6011 * typeck.c (complete_type): Only try to complete an array type if
eb66be0e 6012 it has a domain.
e349ee73
MS
6013
6014Mon May 20 14:55:59 1996 Jason Merrill <jason@yorick.cygnus.com>
6015
6016 * decl.c (grokvardecl): Call complete_type.
6017 (grokdeclarator): Call complete_type for PARM_DECLs.
6018
6019Fri May 17 16:41:17 1996 Jason Merrill <jason@yorick.cygnus.com>
6020
6021 * pt.c (instantiate_class_template): Re-set
eb66be0e 6022 CLASSTYPE_GOT_SEMICOLON after calling finish_struct_1.
e349ee73
MS
6023
6024Fri May 17 14:56:55 1996 Mike Stump <mrs@cygnus.com>
6025
6026 * cp-tree.h (cp_expand_decl_cleanup): Remove, the backend is now
6027 smart enough to do it right.
d11ad92e 6028 * tree.c (cp_expand_decl_cleanup): Likewise.
e349ee73
MS
6029 * decl.c (cp_finish_decl): Use expand_decl_cleanup instead of
6030 cp_expand_decl_cleanup.
d11ad92e
MS
6031 (store_parm_decls): Likewise.
6032 (hack_incomplete_structures): Likewise.
6033 * except.c (push_eh_cleanup): Likewise.
e349ee73
MS
6034
6035Fri May 17 13:13:51 1996 Mike Stump <mrs@cygnus.com>
6036
6037 * expr.c (expand_expr, cond UNSAVE_EXPR): Move from the C++
6038 frontend to the backend where it belongs.
d11ad92e
MS
6039 * tree.c (unsave_expr): Likewise.
6040 (unsave_expr_now): Likewise.
6041 * tree.def (UNSAVE_EXPR): Likewise.
6042 * cp-tree.h (unsave_expr): Likewise.
6043 (unsave_expr_now): Likewise.
e349ee73
MS
6044
6045Fri May 17 11:02:41 1996 Mike Stump <mrs@cygnus.com>
6046
6047 * init.c (emit_base_init): Make sure the partial EH cleanups live
6048 on the function_obstack.
6049
ce122a86
MS
6050Thu May 16 15:29:33 1996 Bob Manson <manson@charmed.cygnus.com>
6051
6052 * expr.c (do_case): Don't try to dereference null TREE_TYPEs
6053 when checking for pointer types.
6054
6055Thu May 16 13:38:58 1996 Jason Merrill <jason@yorick.cygnus.com>
6056
6057 * pt.c (instantiate_class_template): Remove obsolete check for
eb66be0e 6058 access declarations.
ce122a86
MS
6059
6060Thu May 16 13:34:15 1996 Mike Stump <mrs@cygnus.com>
6061
6062 * call.c (build_overload_call): Simplify calls to
6063 build_overload_call by removing last parameter.
d11ad92e
MS
6064 (build_method_call): Likewise.
6065 * cp-tree.h: Likewise.
6066 * method.c (build_opfncall): Likewise.
6067 * typeck.c (build_x_function_call): Likewise.
ce122a86
MS
6068
6069Thu May 16 13:15:43 1996 Mike Stump <mrs@cygnus.com>
6070
6071 * call.c (default_parm_conversions): Factor out common code.
6072 (build_method_call): Use it.
6073 (build_overload_call_real): Use it.
6074
4ac14744
MS
6075Wed May 15 14:46:14 1996 Mike Stump <mrs@cygnus.com>
6076
6077 * call.c (build_method_call): Allow implicit & on METHOD_TYPEs,
6078 but pedwarn as the code is bogus.
d11ad92e 6079 * typeck.c (decay_conversion): Likewise.
4ac14744
MS
6080 (build_function_call_real): Use build_addr_func instead of
6081 default_conversion. Don't allow pointer-to-method functions down
6082 here.
6083 (build_unary_op): Use real pointer-to-member functions instead of
6084 fake ones.
6085 (build_ptrmemfunc): Use build_addr_func instead of build_unary_op.
6086 (convert_for_assignment): Removed some obsolete code.
6087 * decl2.c (reparse_absdcl_as_expr): Pass current_class_ref to
6088 build_x_function_call instead of current_class_ptr. Only call
6089 digest_init once on an initializer, we do this just checking
6090 TREE_TYPE.
6091 (build_expr_from_tree): Pass current_class_ref to
6092 build_x_function_call instead of current_class_ptr.
d11ad92e
MS
6093 * init.c (build_member_call): Likewise.
6094 * pase.y: Likewise.
4ac14744
MS
6095 * error.c (dump_expr): Handle OFFSET_REFs better.
6096 * pt.c (unify): Handle pointer-to-member functions better.
6097 * decl.c (finish_function): Clear out current_class_ref just like
6098 we do for current_class_ptr.
6099
6100 * typeck.c (get_delta_difference): Handle virtual bases better.
6101
6102Tue May 14 16:37:37 1996 Jason Merrill <jason@yorick.cygnus.com>
6103
6104 * sig.c (build_signature_table_constructor): Use the delta for
6105 the original basetype for this virtual function with thunks.
6106 (build_signature_method_call): We still need to adjust 'this'
6107 with thunks.
6108
6109Tue May 14 16:27:25 1996 Mike Stump <mrs@cygnus.com>
6110
6111 * call.c (build_addr_func): New routine. Used to get the `real'
6112 address of a function or a method. Needed to avoid getting a
6113 pointer-to-member function.
6114 (build_call): New routine to build CALL_EXPRs.
6115 (build_method_call): Use it.
d11ad92e
MS
6116 * cvt.c (convert_to_aggr): Likewise.
6117 * typeck.c (build_function_call_real): Likewise.
4ac14744
MS
6118 * sig.c (build_signature_table_constructor): Use build_addr_func.
6119 * cp-tree.h (build_call, build_addr_func): Declare them.
6120
6121Tue May 14 12:47:47 1996 Mike Stump <mrs@cygnus.com>
6122
6123 * cp-tree.h (LOOKUP_AGGR): Remove, unused.
6124 * parse.y: Remove uses of LOOKUP_AGGR.
6125
6126Tue May 14 12:07:51 1996 Mike Stump <mrs@cygnus.com>
6127
6128 * *.[chy]: Rename current_class_decl to current_class_ptr, and
6129 C_C_D to current_class_ref.
6130
6131Mon May 13 16:55:23 1996 Jason Merrill <jason@yorick.cygnus.com>
6132
6133 * call.c (convert_harshness): Tighten up pointer conversions.
6134
6135Sat May 11 04:33:50 1996 Doug Evans <dje@canuck.cygnus.com>
6136
6137 * decl2.c (finish_vtable_vardecl): Surround DECL_ONE_ONLY with ifdef.
6138 (finish_file): Likewise.
6139
6140Fri May 10 11:09:57 1996 Jason Merrill <jason@yorick.cygnus.com>
6141
6142 * cvt.c (convert_fn_ptr): We don't use thunks for pmfs.
6143
6144 * method.c (emit_thunk): Set flag_omit_frame_pointer in default
eb66be0e 6145 code.
4ac14744
MS
6146
6147Thu May 9 18:18:30 1996 Jason Merrill <jason@yorick.cygnus.com>
6148
6149 * decl2.c: Turn on thunks by default where supported.
6150
4dabb379
MS
6151Tue May 7 20:39:57 1996 Mike Stump <mrs@cygnus.com>
6152
6153 * cp-tree.h (build_overload_call_maybe): Removed.
6154 * call.c (build_overload_call_real): Invert meaning of last arg to
6155 be require_complete.
d11ad92e 6156 (build_overload_call): Likewise.
4dabb379
MS
6157 * typeck.c (build_x_function_call): Use build_overload_call_real
6158 instead of build_overload_call_maybe.
6159
a50f0918
MS
6160Mon May 6 01:23:32 1996 Jason Merrill <jason@yorick.cygnus.com>
6161
6162 * decl2.c (finish_file): Don't try to emit functions that haven't
eb66be0e 6163 been compiled.
a50f0918
MS
6164
6165Fri May 3 09:30:13 1996 Jason Merrill <jason@yorick.cygnus.com>
6166
6167 * decl2.c (finish_vtable_vardecl): Oops.
6168
6169 * decl.c (maybe_push_to_top_level): Do save previous_class_*.
eb66be0e 6170 Also store the bindings from previous_class_values.
a50f0918
MS
6171 (pop_from_top_level): Restore them.
6172
6173Thu May 2 21:56:49 1996 Jason Merrill <jason@yorick.cygnus.com>
6174
6175 * decl2.c (finish_vtable_vardecl): Only write out vtable if its
eb66be0e 6176 symbol has been referenced.
a50f0918
MS
6177 (finish_file): Re-join synthesis/vtable loop with inline emission
6178 loop, disable inlining when an inline is output.
6179
6180Thu May 2 17:20:02 1996 Mike Stump <mrs@cygnus.com>
6181
6182 * except.c (init_exception_processing): Setup saved_in_catch.
6183 (push_eh_cleanup): Reset __eh_in_catch.
6184 (expand_start_catch_block): Set __eh_in_catch.
6185
6186Thu May 2 16:21:17 1996 Mike Stump <mrs@cygnus.com>
6187
6188 * except.c (push_eh_cleanup): Add tracking for whether or not we
6189 have an active exception object.
6190 (expand_builtin_throw): Use it to make sure a rethrow without an
6191 exception object is caught.
6192
6193Thu May 2 11:26:41 1996 Jason Merrill <jason@yorick.cygnus.com>
6194
6195 * decl.c (maybe_push_to_top_level): Clear out class-level bindings
eb66be0e 6196 cache.
a50f0918 6197
809c8c30
JM
6198Wed May 1 11:26:52 1996 Jason Merrill <jason@yorick.cygnus.com>
6199
6200 * decl2.c (finish_file): Also use sentries for vars with
eb66be0e
MS
6201 DECL_ONE_ONLY or DECL_WEAK set (should any such happen to be
6202 created).
809c8c30
JM
6203
6204 * lex.c (handle_cp_pragma): Disable #pragma
eb66be0e 6205 interface/implementation if SUPPORTS_ONE_ONLY > 1.
809c8c30
JM
6206
6207Tue Apr 30 11:25:46 1996 Jason Merrill <jason@yorick.cygnus.com>
6208
6209 * method.c (emit_thunk): Wrap default case in
eb66be0e 6210 temporary/permanent_allocation.
809c8c30
JM
6211
6212 * method.c (make_thunk): Use DECL_ONE_ONLY.
6213 (emit_thunk): Call assemble_end_function.
6214
46b02c6d
MS
6215Mon Apr 29 15:38:29 1996 Jason Merrill <jason@yorick.cygnus.com>
6216
6217 * decl2.c (import_export_vtable): Use DECL_ONE_ONLY.
d11ad92e 6218 (import_export_decl): Likewise.
46b02c6d
MS
6219 (finish_prevtable_vardecl): Disable vtable hack if
6220 SUPPORTS_ONE_ONLY > 1.
6221
6222Mon Apr 29 14:32:47 1996 Mike Stump <mrs@cygnus.com>
6223
6224 * typeck.c (build_modify_expr): PREINCREMENT_EXPR and
6225 PREDECREMENT_EXPRs take two arguments, not one.
6226
6227Mon Apr 29 00:27:53 1996 Jason Merrill <jason@yorick.cygnus.com>
6228
6229 * class.c (build_vtable_entry): Don't build thunks for abstract
eb66be0e 6230 virtuals.
46b02c6d
MS
6231
6232 * lex.c (real_yylex): Fix handling of __PRETTY_FUNCTION__ like C
eb66be0e 6233 frontend.
46b02c6d
MS
6234
6235Sat Apr 27 16:45:35 1996 Jason Merrill <jason@yorick.cygnus.com>
6236
6237 * class.c (set_rtti_entry): Use size_zero_node.
d11ad92e 6238 (build_vtable): Likewise.
46b02c6d
MS
6239
6240Sat Apr 27 14:48:57 1996 Jason Merrill <jason@phydeaux.cygnus.com>
6241
6242 * class.c (finish_struct_1): Pass size_zero_node to set_rtti_entry.
d11ad92e 6243 (prepare_fresh_vtable): Likewise.
46b02c6d
MS
6244
6245Fri Apr 26 13:14:14 1996 Jason Merrill <jason@yorick.cygnus.com>
6246
6247 * method.c (emit_thunk): Call mark_used on the target function.
6248
6249 * call.c (build_method_call): Don't warn about pending templates.
6250
c7690c68
JM
6251Thu Apr 25 14:55:44 1996 Jason Merrill <jason@yorick.cygnus.com>
6252
6253 * decl2.c (finish_file): Fix list walking logic.
6254
46b02c6d
MS
6255 * typeck2.c (check_for_new_type): Only warn if -pedantic.
6256
6257Wed Apr 24 15:41:15 1996 Bob Manson <manson@charmed.cygnus.com>
6258
6259 * class.c (finish_struct_1): Remove old code for
6260 dont_allow_type_definitions.
d11ad92e 6261 * cp-tree.h: Likewise.
46b02c6d
MS
6262 * spew.c: Make sure cp-tree.h is included before parse.h, so the
6263 definition of flagged_type_tree is found before it is used.
d11ad92e 6264 * lex.c: Likewise.
46b02c6d 6265 * parse.y: Added the ftype member to the type union, and changed a
eb66be0e 6266 number of rules to use it instead of ttype. Added calls to
46b02c6d
MS
6267 check_for_new_type() as appropriate.
6268 * typeck2.c (check_for_new_type): New function for checking
6269 if a newly defined type appears in the specified tree.
6270 * cp-tree.h: Add new type flagged_type_tree. Add a prototype
6271 for check_for_new_type().
6272
67d743fe
MS
6273Wed Apr 24 00:36:21 1996 Jason Merrill <jason@yorick.cygnus.com>
6274
c7690c68
JM
6275 * decl2.c (finish_file): Only use a sentry if the decl is public.
6276
67d743fe
MS
6277 * pt.c (tsubst_expr, DECL_STMT): If we don't have an initializer,
6278 don't pass LOOKUP_ONLYCONVERTING.
6279
6280Tue Apr 23 17:18:47 1996 Bob Manson <manson@charmed.cygnus.com>
6281
6282 * typeck.c (common_type): Fix the ARRAY_TYPE case so it
6283 properly keeps track of const and volatile type modifiers.
6284
6285Tue Apr 23 10:52:56 1996 Jason Merrill <jason@yorick.cygnus.com>
6286
6287 * tree.c (cp_tree_equal): C++ version of simple_cst_equal.
6288 * pt.c (comp_template_args): Use it.
6289
6290 * rtti.c (get_tinfo_fn, build_dynamic_cast, expand_*_desc): Call
6291 assemble_external for artificial function decls.
6292
6293 * decl.c (cp_finish_decl): Oops.
6294
6295Mon Apr 22 17:28:27 1996 Jason Merrill <jason@yorick.cygnus.com>
6296
6297 * decl2.c (import_export_decl): Put static data member templates
eb66be0e
MS
6298 into common storage, or make them weak, depending on whether they
6299 are dynamically or statically initialized.
67d743fe
MS
6300 (get_sentry): New function.
6301 (finish_file): Do import_export_decl for static data members before
6302 building the init/fini functions. Don't init/fini a variable that's
6303 EXTERNAL. Use a sentry for variables in common. Fix mismatching
6304 push/pop_temp_slots.
6305 * decl.c (cp_finish_decl): If DECL_NOT_REALLY_EXTERN, do the
eb66be0e 6306 expand_static_init thang.
67d743fe
MS
6307 * method.c (get_id_2): New function.
6308
6309Mon Apr 22 15:32:45 1996 Bob Manson <manson@charmed.cygnus.com>
6310
6311 * parse.y (empty_parms): Make sure we use C++-style prototypes
eb66be0e 6312 when we're declaring member functions.
67d743fe
MS
6313
6314Sun Apr 21 10:08:22 1996 Jason Merrill <jason@yorick.cygnus.com>
6315
6316 * Makefile.in (CONFLICTS): 16 s/r conflicts.
6317 * parse.y (self_template_type): New nonterminal.
6318
a80e4195
MS
6319Thu Apr 18 08:56:54 1996 Jason Merrill <jason@yorick.cygnus.com>
6320
6321 * decl.c (make_typename_type): Handle getting a TYPE_DECL for a
eb66be0e 6322 name.
a80e4195
MS
6323 * parse.y (base_class.1): Allow 'typename foo::bar'.
6324
6325 * lex.c (check_newline): Remove #pragma code that plays with the
eb66be0e
MS
6326 input stream, since we now deal with tokens. Clear nextchar when
6327 we're done.
a80e4195
MS
6328 (handle_cp_pragma): Use real_yylex.
6329 (handle_sysv_pragma): Don't do skipline here. Only call real_yylex
6330 in one place.
6331
6332 * lex.c (check_for_missing_semicolon): Handle SELFNAME.
6333
6334 * lex.c (handle_cp_pragma): Fix "#pragma implementation".
6335
6336Wed Apr 17 16:51:33 1996 Jason Merrill <jason@yorick.cygnus.com>
6337
6338 * parse.y: New token SELFNAME for potential constructor.
6339 * spew.c (yylex): Handle it.
6340 * lex.c (identifier_type): Produce it.
6341
6342 * parse.y (complete_type_name): In :: case, don't push class binding.
d11ad92e 6343 (complex_type_name): Likewise.
a80e4195
MS
6344
6345Wed Apr 17 15:02:40 1996 Mike Stump <mrs@cygnus.com>
6346
6347 * typeck.c (build_reinterpret_cast): Handle pointer to member
eb66be0e 6348 functions.
a80e4195
MS
6349
6350Wed Apr 17 12:28:26 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
f72bbc37
BK
6351
6352 * lex.c (handle_cp_pragma): New function, with decl, doing the cc1plus
eb66be0e 6353 pragmas.
f72bbc37 6354 (check_newline): Put the vtable/unit/implementation/interface pragma
eb66be0e 6355 code into handle_cp_pragma, replacing it with a call.
f72bbc37 6356 (handle_sysv_pragma): Give int return type, and take FINPUT and TOKEN
eb66be0e 6357 args. Get the next token after handling the pragma token.
a80e4195
MS
6358
6359Wed Apr 17 10:28:34 1996 Jason Merrill <jason@yorick.cygnus.com>
6360
6361 * cvt.c (cp_convert_to_pointer): Avoid doing base analysis on pmfs.
d11ad92e 6362 (convert_to_pointer_force): Likewise.
a80e4195
MS
6363
6364 * init.c (build_new): Fix array new without -fcheck-new.
6365
6366Tue Apr 16 13:44:58 1996 Jason Merrill <jason@yorick.cygnus.com>
6367
6368 * cp-tree.h, call.c, class.c, decl.c, parse.y, pt.c, rtti.c,
6369 tree.c: Lose TYPE_NESTED_NAME.
6370
6371 * parse.y (nested_name_specifier_1): Don't treat non-identifiers
6372 as identifiers.
6373
6374 * tree.def: Add VEC_INIT_EXPR.
6375 * expr.c (cplus_expand_expr): Handle it.
6376 * init.c (build_new): Use it instead of the RTL_EXPR nastiness and
eb66be0e 6377 the extra file-scope symbol nastiness.
a80e4195
MS
6378
6379Mon Apr 15 16:21:29 1996 Jason Merrill <jason@yorick.cygnus.com>
6380
6381 * method.c (make_thunk): Thunks are static.
6382 (emit_thunk): Use ASM_OUTPUT_MI_THUNK if it's defined.
6383
6384 * decl2.c (mark_vtable_entries): Emit thunks as needed.
6385 (finish_file): Don't emit them here.
6386
6387Sun Apr 14 11:34:39 1996 Jason Merrill <jason@yorick.cygnus.com>
6388
6389 * rtti.c (build_dynamic_cast): Handle null pointers.
6390 (ifnonnull): New function.
f72bbc37 6391
6b5fbb55
MS
6392Fri Apr 12 09:08:27 1996 Bob Manson <manson@charmed.cygnus.com>
6393
a80e4195 6394 * call.c (build_method_call): Remember the original basetype we
eb66be0e
MS
6395 were called with. Give an error message instead of trying
6396 (incorrectly) to call a non-static member function through a
6397 non-inherited class.
a80e4195 6398
6b5fbb55
MS
6399 * search.c (expand_upcast_fixups): Mark the new fixup as
6400 DECL_ARTIFICIAL.
6401
6402Thu Apr 11 03:57:09 1996 Jason Merrill <jason@yorick.cygnus.com>
6403
6404 * init.c (build_new): Use a TARGET_EXPR for alloc_expr.
6405
6406 * class.c (set_rtti_entry): Fix for thunks.
6407
6408 * decl2.c (import_export_decl): Still emit typeinfo fns for
6409 cv-variants of builtin types.
6410
6411 * rtti.c (expand_class_desc): Set up base_info_type_node here.
6412 (init_rtti_processing): Instead of here.
6413
6414Wed Apr 10 14:17:13 1996 Jason Merrill <jason@yorick.cygnus.com>
6415
6416 * rtti.c (init_rtti_processing): Do init regardless of -frtti.
6417 (build_typeid): Only complain about taking dynamic typeid without
6418 -frtti.
6419
6420 * decl2.c: flag_rtti defaults to 1.
6421
6422 * rtti.c (get_tinfo_var): The general class case is now smaller.
6423 (init_rtti_processing): Pack the latter three fields of base_info
6424 into 32 bits.
6425
6426Wed Apr 10 13:50:14 1996 Mike Stump <mrs@cygnus.com>
6427
6428 * init.c (expand_member_init): Don't dump if name is NULL_TREE.
6429
6430Wed Apr 10 12:56:02 1996 Mike Stump <mrs@cygnus.com>
6431
6432 * search.c (make_memoized_table_entry): Undefer the pop, if necessary.
6433 (push_memoized_context): Split out code to undefer pop_type_level to
6434 (clear_memoized_cache): here.
6435 (pop_memoized_context): We can only handle one layer of deferral of
6436 pop_type_level so clear the cache, if there was a previous level.
6437
6438Tue Apr 9 23:06:09 1996 Jason Merrill <jason@yorick.cygnus.com>
6439
6440 * rtti.c (init_rtti_processing): Build up base_info_type_node.
6441 (expand_class_desc): Use one pointer to an array of base_info
6442 structs, passed using a CONSTRUCTOR.
6443
6444Tue Apr 9 14:20:57 1996 Mike Stump <mrs@cygnus.com>
6445
6446 * class.c (build_vbase_path): Remove block extern for
6447 flag_assume_nonnull_objects here.
6448 (build_vfn_ref): Split out functionality into build_vtbl_ref.
6449 (build_vtbl_ref): New routine.
6450 (build_vtable): Set up rtti info here.
6451 (add_virtual_function): Note in CLASSTYPE_RTTI the best
6452 place where we can get the rtti pointers from to avoid having to
6453 search around for a place.
d11ad92e
MS
6454 (finish_base_struct): Likewise.
6455 (finish_struct_1): Likewise. Never create totally new vtables
6456 with totally new vtable pointers for rtti. Disable code to layout
6457 vtable pointers better until we want to break binary
6458 compatibility.
6b5fbb55
MS
6459 * rtti.c (build_headof_sub): New routine to convert down to a
6460 sub-object that has an rtti pointer in the vtable.
6461 (build_headof): Use it. Also, use build_vtbl_ref now to be more
6462 maintainable.
6463 (build_dynamic_cast): Make sure we have saved it, if we need to.
6464 * search.c (dfs_init_vbase_pointers): Disable code that deals with
6465 a more efficient vtable layout, enable later.
6466 * call.c (flag_assume_nonnull_objects): Moved declaration to
6467 * cp-tree.h: here. Declare build_vtbl_ref.
6468 * pt.c (instantiate_class_template): Use NULL_TREE instead of 0 in
6469 function calls that want a tree.
6470
6471Tue Apr 9 12:10:26 1996 Jason Merrill <jason@yorick.cygnus.com>
6472
6473 * rtti.c (build_dynamic_cast): Handle downcasting to X* given
eb66be0e 6474 other X subobjects in the most derived type. Ack.
6b5fbb55
MS
6475
6476 * rtti.c (build_dynamic_cast): No need to strip cv-quals here,
eb66be0e 6477 get_typeid will do it for us.
6b5fbb55
MS
6478 (get_typeid_1): Break out call-building for expand_*_desc to use.
6479 (get_typeid): Call it.
d11ad92e 6480 (expand_*_desc): Likewise.
6b5fbb55 6481 * decl.c (init_decl_processing): Don't set TYPE_BUILT_IN on char *
eb66be0e 6482 and void *.
6b5fbb55
MS
6483 (init_decl_processing): Lose builtin_type_tdescs lossage.
6484 * decl2.c (finish_vtable_vardecl): Remove obsolete code.
6485
6486Mon Apr 8 17:23:23 1996 Bob Manson <manson@charmed.cygnus.com>
6487
6488 * pt.c (tsubst): When calling set_nested_typename, use
eb66be0e
MS
6489 TYPE_NESTED_NAME (current_class_type) instead of
6490 current_class_name.
6b5fbb55 6491
d11ad92e
MS
6492 * decl.c (pushdecl): Likewise.
6493 (pushdecl_class_level): Likewise.
6b5fbb55
MS
6494 (grokdeclarator): Use NULL_TREE instead of 0 in the call to
6495 set_nested_typename.
6496
6497Sun Apr 7 10:44:31 1996 Jason Merrill <jason@yorick.cygnus.com>
6498
6499 * rtti.c (synthesize_tinfo_fn): Handle arrays.
6500
6501 * cp-tree.h (DECL_REALLY_EXTERN): New macro.
6502
6503Sat Apr 6 13:56:27 1996 Jason Merrill <jason@yorick.cygnus.com>
6504
6505 * rtti.c (throw_bad_cast): Use entry point __throw_bad_cast.
6506 (init_rtti_processing): Lose bad_cast_type.
6507 (build_dynamic_cast): Use throw_bad_cast.
6508
6509 * rtti.c (synthesize_tinfo_fn): Handle enums and pmfs.
6510
6511 * decl2.c (finish_file): Don't synthesize artificial functions
eb66be0e 6512 that are external and not inline.
6b5fbb55
MS
6513
6514 * rtti.c (get_tinfo_fn): If at_eof, call import_export_decl.
6515
6516 * decl2.c (finish_file): Handle having new inlines added to
eb66be0e 6517 saved_inlines by synthesis.
6b5fbb55
MS
6518
6519 * rtti.c (get_bad_cast_node): Don't require <typeinfo>.
6520
6521Fri Apr 5 17:02:09 1996 Jason Merrill <jason@yorick.cygnus.com>
6522
6523 RTTI rewrite to initialize nodes as needed, not require that
6524 users #include <typeinfo>, complete functionality and reduce wasted
6525 space.
6526 * rtti.c (init_rtti_processing): New fn.
6527 (build_typeid): The vtable entry is now a function.
6528 (get_tinfo_var): New fn.
d11ad92e 6529 (get_tinfo_fn): Likewise.
6b5fbb55
MS
6530 (get_typeid): Use it.
6531 (build_dynamic_cast): Declare and use entry point __dynamic_cast.
6532 (build_*_desc): Rename to expand_*_desc and rewrite to use entry
6533 points __rtti_*.
6534 (add_uninstantiated_desc, get_def_to_follow, build_t_desc): Lose.
6535 (synthesize_tinfo_fn): New fn.
6536 * method.c (build_t_desc_overload): Lose.
6537 (build_overload_with_type): More generic.
6538 * decl.c (init_decl_processing): Call init_rtti_processing.
6539 * class.c (set_rtti_entry): Use get_tinfo_fn.
6540 * decl2.c (mark_vtable_entries): Mark the rtti function.
6541 (finish_prevtable_vardecl): Don't build_t_desc.
6542 (import_export_decl): Handle tinfo functions.
d11ad92e 6543 (finish_file): Likewise.
6b5fbb55
MS
6544 * typeck.c (inline_conversion): New fn.
6545 (build_function_call_real): Use it.
6546 * cp-tree.h: Add decls.
6547
6548 * method.c (hack_identifier): Also convert component_refs from
eb66be0e 6549 references.
6b5fbb55
MS
6550
6551 * lex.c (cons_up_default_function): Use the type, not the name, in
eb66be0e 6552 declspecs.
6b5fbb55
MS
6553
6554 * decl2.c (import_export_vtable): Fix weak vtables.
6555
6556Fri Apr 5 13:30:17 1996 Bob Manson <manson@charmed.cygnus.com>
6557
6558 * search.c (get_base_distance_recursive): Fix access checks for
eb66be0e 6559 protected bases.
6b5fbb55
MS
6560
6561Fri Apr 5 11:02:06 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6562
6563 * call.c (unary_complex_lvalue): Delete unneeded decl, it's in
6564 cp-tree.h.
6565 (convert_harshness): Add prototypes wrapped by PROTO.
6566 * decl2.c (grok_function_init): Likewise.
6567 (do_toplevel_using_decl): Change to void return type.
6568 * class.c (build_vtable_entry): Remove decl of make_thunk.
6569 (merge_overrides): Fix order of arg definitions.
6570 (finish_vtbls): Likewise.
6571 (fixup_vtable_deltas): Likewise.
6572 (modify_all_direct_vtables): Likewise.
6573 (modify_all_indirect_vtables): Likewise.
6574 * search.c (get_base_distance_recursive): Likewise.
6575 (get_abstract_virtuals_1): Likewise.
6576 (fixup_virtual_upcast_offsets): Likewise.
6577 (lookup_fnfields_1): Add prototypes wrapped by PROTO.
6578 * init.c (perform_member_init): Fix order of arg definitions.
6579 (expand_aggr_init_1): Add prototypes wrapped by PROTO.
6580 * cp-tree.h (make_thunk): Add decl.
6581 (overload_template_name, push_template_decl): Add decls.
6582 (do_toplevel_using_decl): Change to void return type.
6583 (vec_binfo_member): Add decl.
6584
cdf5b885
MS
6585Thu Apr 4 13:33:10 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6586
6587 * typeck.c (mark_addressable, convert_for_assignment,
6588 convert_for_initialization, pointer_int_sum, pointer_diff,
6589 unary_complex_lvalue): Add prototypes wrapped by PROTO.
6590 (convert_sequence): #if 0 fn decl, since definition also is.
6591
6592Thu Apr 4 11:00:53 1996 Mike Stump <mrs@cygnus.com>
6593
6594 * rtti.c (build_dynamic_cast): Make sure we strip qualifiers on
6595 cast to pointer types for type searching.
6596
6597Wed Apr 3 17:10:57 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6598
6599 * typeck.c (get_delta_difference): Use cp_error, not error, in the
6600 case where BINFO == 0.
6601
6602Wed Apr 3 12:01:02 1996 Mike Stump <mrs@cygnus.com>
6603
6604 * call.c (build_method_call): Fix wording of error messages so
6605 constructors come out right.
6606
6607Tue Apr 2 16:06:59 1996 Bob Manson <manson@charmed.cygnus.com>
6608
6609 * decl.c (push_overloaded_decl): Don't warn about hidden
6610 constructors when both the type and the function are declared
6611 in a system header file.
6612
c91a56d2
MS
6613Mon Apr 1 09:03:13 1996 Bob Manson <manson@charmed.cygnus.com>
6614
6615 * class.c (finish_struct_1): Propagate the TYPE_PACKED
6616 flag for the type to the type's fields.
6617
6618Sat Mar 30 12:14:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6619
6620 * parse.y (complex_parmlist, ELLIPSES): Take out ARM-based warning.
6621
6622Fri Mar 29 15:51:36 1996 Bob Manson <manson@charmed.cygnus.com>
6623
6624 * class.c (base_info, finish_base_struct): Replace
6625 needs_virtual_dtor with base_has_virtual.
6626
6627 (finish_struct_1): Remove the old code that tried to make default
eb66be0e
MS
6628 destructors virtual. Use base_has_virtual when checking if we need
6629 to add a vtable entry for the rtti code.
c91a56d2
MS
6630
6631Fri Mar 29 14:02:36 1996 Jason Merrill <jason@yorick.cygnus.com>
6632
6633 * pt.c (push_template_decl): Complain about template decl with
eb66be0e 6634 inappropriate declaration.
c91a56d2
MS
6635
6636Fri Mar 29 12:15:35 1996 Bob Manson <manson@charmed.cygnus.com>
6637
6638 * typeck.c (build_x_unary_op): Remove bogus check for taking
6639 the address of a member function.
6640
6641Fri Mar 29 11:56:02 1996 Jason Merrill <jason@yorick.cygnus.com>
6642
6643 * parse.y (constructor_declarator): Only push the class if
6644 we are not already in the class.
6645
6646Fri Mar 29 09:41:02 1996 Jeffrey A. Law <law@cygnus.com>
6752b7d4
JL
6647
6648 * method.c (emit_thunk): Remove current_call_is_indirect nonsense.
6649 Add additional argument to INIT_CUMULATIVE_ARGS.
6650
c91a56d2
MS
6651Thu Mar 28 16:41:39 1996 Jason Merrill <jason@yorick.cygnus.com>
6652
6653 * decl.c (shadow_tag): Fix error about anon union with methods.
6654
6655 * parse.y (self_reference): Only generate a self-reference if this
eb66be0e 6656 is a non-template class.
c91a56d2
MS
6657 (opt.component_decl_list): Only use it if it was generated.
6658
6659 * parse.y (component_decl_1): Use constructor_declarator.
d11ad92e
MS
6660 (fn.def2): Likewise.
6661 (notype_component_declarator0): Likewise.
c91a56d2
MS
6662
6663Thu Mar 28 15:11:35 1996 Bob Manson <manson@charmed.cygnus.com>
6664
6665 * typeck.c (build_x_unary_op): Add checks for taking the address
6666 of a TARGET_EXPR or of a member function, and give appropriate
6667 warnings.
6668
6669Thu Mar 28 14:49:26 1996 Jason Merrill <jason@yorick.cygnus.com>
6670
6671 * pt.c (process_template_parm): Allow template type parms to be
eb66be0e 6672 used as types for template const parms.
c91a56d2
MS
6673
6674Wed Mar 27 15:51:19 1996 Mike Stump <mrs@cygnus.com>
6675
6676 * init.c (expand_vec_init): Ensure the eh cleanups are on the
6677 function_obstack.
6678
6679Wed Mar 27 10:14:30 1996 Jason Merrill <jason@yorick.cygnus.com>
6680
6681 * decl.c (lookup_name_real): Be even more picky about the
eb66be0e 6682 ambiguous lookup warning.
c91a56d2
MS
6683 (grokdeclarator): Tweak SCOPE_REF constructor declarators here.
6684 * parse.y (constructor_declarator): Rather than here.
6685
6686 * parse.y (constructor_declarator): New nonterminal.
6687 (fn.def1): Use it.
d11ad92e 6688 (explicit_instantiation): Likewise.
c91a56d2
MS
6689
6690Tue Mar 26 13:41:33 1996 Jason Merrill <jason@yorick.cygnus.com>
6691
6692 Add implicit declaration of class name at class scope.
6693 * decl.c (lookup_name_real): Restrict pedwarn about ambiguous lookup.
6694 * parse.y (self_reference): New nonterminal.
6695 (opt.component_decl_list): Use it.
6696 (fn.def1): Add nested_name_specifier type_name cases.
6697 * class.c (build_self_reference): New function.
6698 (finish_struct): Handle access_default later, move self-reference
6699 decl to the end.
6700 * pt.c (lookup_template_class): Handle getting a TYPE_DECL.
6701 * cp-tree.h: Adjust.
6702
6703 * pt.c (do_function_instantiation): Separate handling of member
eb66be0e 6704 functions and non-member functions properly.
c91a56d2
MS
6705
6706Mon Mar 25 14:23:22 1996 Jason Merrill <jason@yorick.cygnus.com>
6707
6708 * pt.c (process_template_parm): Improve error for 'volatile class K'.
6709
6710 * class.c (finish_struct_1): Check the right slot for destructors.
6711
6712 * decl.c (start_enum): Complain about enum templates.
6713
6714Mon Mar 25 13:25:31 1996 Mike Stump <mrs@cygnus.com>
6715
6716 * init.c (resolve_offset_ref): Offset pointers to member data by one.
d11ad92e 6717 * typeck.c (unary_complex_lvalue): Likewise.
c91a56d2
MS
6718
6719Mon Mar 25 13:30:42 1996 Bob Manson <manson@charmed.cygnus.com>
6720
6721 * typeck.c (c_expand_return): Check for a returned local
6722 array name, similar to the check for an ADDR_EXPR.
6723
6724Mon Mar 25 13:07:19 1996 Jason Merrill <jason@yorick.cygnus.com>
6725
6726 * decl.c (cp_finish_decl): Don't build cleanups for static
eb66be0e 6727 variables here.
c91a56d2
MS
6728
6729Fri Mar 22 17:57:55 1996 Mike Stump <mrs@cygnus.com>
6730
6731 * typeck.c (build_modify_expr): Fix error messages to be more
6732 accurate.
6733 * cp-tree.h (assop_as_string): Parallel to op_as_string, but for
6734 assignment operators.
d11ad92e 6735 * error.c (assop_as_string): Likewise. Add support for `%Q' for
c91a56d2
MS
6736 assignment operators.
6737
909e536a
MS
6738Fri Mar 22 13:48:29 1996 Jason Merrill <jason@yorick.cygnus.com>
6739
c91a56d2 6740 * decl.c (grokdeclarator): Call bad_specifiers for typedefs. Also
eb66be0e
MS
6741 give an error if initialized. Pedwarn about nested type with the
6742 same name as its enclosing class.
c91a56d2 6743
909e536a
MS
6744 * pt.c (tsubst, case TYPE_DECL): Set DECL_CONTEXT.
6745
6746 * typeck.c (require_complete_type): Be sure to instantiate the
eb66be0e 6747 MAIN_VARIANT of the type.
909e536a
MS
6748
6749 * decl2.c (finish_file): Instantiate pending templates before
eb66be0e 6750 processing static constructors and destructors.
909e536a
MS
6751
6752 * pt.c (instantiate_decl): Don't instantiate functions at toplevel
eb66be0e 6753 unless at_eof.
909e536a
MS
6754
6755Fri Mar 22 09:30:17 1996 Bob Manson <manson@beauty.cygnus.com>
6756
6757 * decl2.c (delete_sanity): If error_mark_node is passed
6758 in as an expression, quit while we're ahead.
6759
6760 * decl.c (grokdeclarator): Give an error message if `friend'
6761 is combined with any storage class specifiers.
6762
fc378698
MS
6763Wed Mar 20 14:51:55 1996 Jason Merrill <jason@yorick.cygnus.com>
6764
6765 * parse.y (named_complex_class_head_sans_basetype): Don't crash on
eb66be0e 6766 definition of nonexistent nested type.
fc378698
MS
6767
6768 * error.c (dump_decl, case TYPE_DECL): Fix decision for whether or
eb66be0e 6769 not to say 'typedef'.
fc378698
MS
6770
6771Wed Mar 20 00:11:47 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6772
6773 * cp-tree.h (struct lang_type): Make search_slot a tree, not a char*.
6774 * search.c (dfs_walk, dfs_init_vbase_pointers,
6775 expand_upcast_fixups): Remove cast of CLASSTYPE_SEARCH_SLOT.
6776 (dfs_find_vbases): Remove cast for CLASSTYPE_SEARCH_SLOT init.
6777
6778Tue Mar 19 17:56:03 1996 Jason Merrill <jason@yorick.cygnus.com>
6779
6780 * except.c (build_throw): Support minimal parse.
6781 * pt.c (tsubst_copy): Support THROW_EXPR.
d11ad92e 6782 * decl2.c (build_expr_from_tree): Likewise.
fc378698
MS
6783
6784 * pt.c (mangle_class_name_for_template): Always allocate
eb66be0e 6785 scratch_firstobj.
fc378698
MS
6786
6787Tue Mar 19 16:34:31 1996 Bob Manson <manson@beauty.cygnus.com>
6788
6789 * cvt.c (cp_convert_to_pointer): Give an appropriate error
6790 when trying to cast from an incomplete type.
6791
6792Tue Mar 19 16:00:33 1996 Jason Merrill <jason@yorick.cygnus.com>
6793
6794 * pt.c (instantiate_class_template): Don't bother setting up
eb66be0e
MS
6795 CLASSTYPE_TAGS explicitly, as the nested types will add
6796 themselves.
fc378698
MS
6797
6798Tue Mar 19 15:48:43 1996 Bob Manson <manson@beauty.cygnus.com>
6799
6800 * decl.c (shadow_tag): Remove old error check for usage of
6801 an enum without a previous declaration.
6802 (xref_tag): Add error message about usage of enums without a
6803 previous declaration.
6804
6805Tue Mar 19 09:21:35 1996 Jason Merrill <jason@yorick.cygnus.com>
6806
6807 * lex.c (do_identifier): Only do name consistency check if we're
eb66be0e 6808 parsing.
fc378698
MS
6809
6810 * pt.c (push_template_decl): Don't crash if we get a member defn
6811 that doesn't match.
6812
6813 * decl.c (xref_tag_from_type): New function to do an xref without
eb66be0e 6814 always having to figure out code_type_node.
fc378698
MS
6815 * cp-tree.h: Declare it.
6816 * pt.c (instantiate_class_template): Use it for friend classes.
eb66be0e 6817 (lookup_template_class): Use it.
fc378698
MS
6818
6819 * typeck2.c (build_functional_cast): Pull out a single parm before
eb66be0e 6820 passing it to build_c_cast.
fc378698
MS
6821
6822Tue Mar 19 09:07:15 1996 Bob Manson <manson@beauty.cygnus.com>
6823
6824 * expr.c (do_case): Give an error message if a pointer is
6825 given as a case value.
6826
6827Mon Mar 18 21:57:54 1996 Jason Merrill <jason@yorick.cygnus.com>
6828
6829 * typeck.c (build_c_cast): Don't pull single TEMPLATE_DECL out of
eb66be0e 6830 an overload list.
fc378698
MS
6831
6832 * lex.c (cons_up_default_function): Really, now, interface hackery
eb66be0e 6833 does not apply to synthesized methods.
fc378698
MS
6834
6835Mon Mar 18 18:20:57 1996 Mike Stump <mrs@cygnus.com>
6836
6837 * call.c (build_method_call): Ctors and dtors now have special names
6838 with respect to lookups.
d11ad92e
MS
6839 * class.c (add_method): Likewise.
6840 (grow_method): Likewise.
6841 (finish_struct_methods): Likewise.
6842 (warn_hidden): Likewise.
6843 (finish_struct_1): Likewise.
6844 * cvt.c (convert_to_reference): Likewise.
6845 (convert_to_aggr): Likewise.
6846 (cp_convert): Likewise.
6847 * decl2.c (check_classfn): Likewise.
6848 * init.c (expand_member_init): Likewise.
6849 (expand_default_init): Likewise.
6850 (expand_aggr_init_1): Likewise.
6851 (build_offset_ref): Likewise.
6852 (build_new): Likewise.
6853 (build_delete): Likewise.
6854 * lex.c (do_inline_function_hair): Likewise.
6855 * search.c (lookup_field_1): Likewise.
6856 (lookup_fnfields_here): Likewise.
6857 (lookup_field): Likewise.
6858 (lookup_fnfields): Likewise.
6859 (get_virtual_destructor): Likewise.
6860 (dfs_debug_mark): Likewise.
6861 (dfs_pushdecls): Likewise.
6862 (dfs_compress_decls): Likewise.
6863 * tree.c (layout_basetypes): Likewise.
6864 * typeck.c (build_component_ref): Likewise.
6865 (build_x_function_call): Likewise.
6866 (build_modify_expr): Likewise.
6867 (convert_for_initialization): Likewise.
6868 (build_functional_cast): Likewise.
6869 * cp-tree.h (CLASSTYPE_FIRST_CONVERSION): Likewise.
fc378698
MS
6870 (CTOR_NAME): New.
6871 (DTOR_NAME): New.
6872 * decl.c (ctor_identifier): New.
6873 (dtor_identifier): New.
6874 (init_decl_processing): Set them.
6875
6876Mon Mar 18 18:00:51 1996 Mike Stump <mrs@cygnus.com>
6877
6878 * typeck.c (build_component_ref): Don't get confused by fields whose
6879 context has no type name, like pointer to member functions.
6880
6881Mon Mar 18 13:19:03 1996 Jason Merrill <jason@yorick.cygnus.com>
6882
6883 * decl.c (grokdeclarator): Handle typedef without declarator.
6884
6885 * pt.c (tsubst): Handle SCOPE_REF in declarator.
6886
6887 * parse.y (bad_parm): Catch another case of missing `typename'.
6888
6889 * lex.c (yyprint): Handle TYPE_DECLs.
6890
6891 * decl.c (start_function): Don't try to be clever.
6892
6893 * lex.c: Lose compiler_error_with_decl.
6894 * typeck2.c: Lose error_with_aggr_type.
6895 (incomplete_type_error): Use cp_* instead of old functions.
d11ad92e
MS
6896 (readonly_error): Likewise.
6897 * typeck.c (convert_arguments): Likewise.
6898 * search.c (lookup_nested_field): Likewise.
6899 * method.c (make_thunk): Likewise.
6900 * decl.c (grokparms): Likewise.
fc378698
MS
6901 * cp-tree.h: Update.
6902
6903 * tree.c (min_tree_cons): Call copy_to_permanent for the purpose
eb66be0e 6904 and value.
fc378698
MS
6905
6906Mon Mar 18 11:25:52 1996 Bob Manson <manson@beauty.cygnus.com>
6907
6908 * method.c (build_opfncall): When deleting a pointer to an
6909 array, build a new pointer to the tree past any ARRAY_TYPE
6910 nodes.
6911
6912Mon Mar 18 10:11:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
6913
6914 * decl.c (lookup_name_real): Initialize local var TYPE to NULL_TREE.
6915
6916Fri Mar 15 11:03:57 1996 Jason Merrill <jason@yorick.cygnus.com>
6917
6918 * pt.c (instantiate_decl): Only call import_export_decl if at_eof
eb66be0e 6919 and ! DECL_INLINE.
fc378698
MS
6920
6921 * decl.c (finish_function): Don't set nested based on
eb66be0e 6922 hack_decl_function_context.
fc378698 6923 * parse.y (function_try_block): Check for nested function.
d11ad92e 6924 (pending_inlines): Likewise.
fc378698
MS
6925
6926 * decl2.c (build_expr_from_tree): If a unary op already has a
eb66be0e 6927 type, just return it.
fc378698
MS
6928
6929 * decl2.c (finish_prevtable_vardecl): Use ADJUST_VTABLE_LINKAGE.
6930
6931 * decl2.c (walk_vtables): vardecl_fn returns int; return 1 if it does.
6932 (finish_file): Check the return value of walk_vtables.
6933 (finish_prevtable_vardecl): Return int.
d11ad92e
MS
6934 (finish_vtable_vardecl): Likewise.
6935 (prune_vtable_vardecl): Likewise.
6936 * lex.c (set_vardecl_interface_info): Likewise.
fc378698
MS
6937 * cp-tree.h: Adjust return types.
6938
6939 * class.c (delete_duplicate_fields_1): Don't complain about
eb66be0e 6940 duplicate nested types if they're the same type.
fc378698
MS
6941 (finish_struct): Remove check for duplicate.
6942 * decl2.c (grokfield): Don't check for typedef of anonymous type.
6943
6944Thu Mar 14 10:00:19 1996 Jason Merrill <jason@yorick.cygnus.com>
6945
6946 * cp-tree.h: Lose SIGNATURE_GROKKING_TYPEDEF.
6947
6948 * decl.c (grokdeclarator): Lose special handling of class-level
eb66be0e
MS
6949 typedef. Lose SIGNATURE_GROKKING_TYPEDEF. Set
6950 SIGNATURE_HAS_OPAQUE_TYPEDECLS later.
fc378698
MS
6951
6952 * cvt.c (convert_pointer_to_real): Retain cv-quals in conversion.
6953
6954 * pt.c (tsubst_copy): Strip cv-quals from destructor name types.
6955
6956 * search.c (compute_access): Fix handling of anonymous union
eb66be0e 6957 members.
fc378698 6958 * class.c (finish_struct_anon): Propagate TREE_{PRIVATE,PROTECTED}
eb66be0e 6959 from anonymous unions to their members.
fc378698
MS
6960
6961 * typeck.c (build_x_function_call): For static member functions,
eb66be0e 6962 hand off to build_member_call.
fc378698
MS
6963
6964Wed Mar 13 14:03:34 1996 Jason Merrill <jason@yorick.cygnus.com>
6965
6966 * typeck.c (build_component_ref): Handle OFFSET_REFs.
6967
6968 * init.c (expand_vec_init): Fix init == 0 case.
6969
6970Tue Mar 12 14:36:02 1996 Jason Merrill <jason@yorick.cygnus.com>
6971
6972 * init.c (build_new): Pedwarn about init and array new.
eb291d05 6973 (expand_vec_init): Handle lists, use convert_for_initialization.
fc378698
MS
6974
6975 * typeck.c (convert_for_initialization): Pass LOOKUP_NO_CONVERSION
eb66be0e 6976 when converting to an aggregate type.
fc378698
MS
6977 * cvt.c (cp_convert): Pass it through.
6978
6979 * typeck.c (build_conditional_expr): Handle user-defined
eb66be0e 6980 conversions to slightly different types.
fc378698
MS
6981
6982 * decl.c (grokdeclarator): Force an array type in a parm to be
eb66be0e 6983 permanent.
fc378698
MS
6984
6985 * decl2.c (do_using_directive): Sorry.
d11ad92e 6986 (do_namespace_alias): Likewise.
fc378698
MS
6987 * lex.c (real_yylex): Warn about using the `namespace' keyword.
6988
6989Sun Mar 10 22:26:09 1996 Jason Merrill <jason@yorick.cygnus.com>
6990
6991 * parse.y (datadef): Move call to note_list_got_semicolon up.
6992
934c6b13
MS
6993Fri Mar 8 11:47:26 1996 Mike Stump <mrs@cygnus.com>
6994
6995 * tree.c (unsave_expr): Don't unsave, UNSAVE_EXPRs.
6996
6997Fri Mar 8 11:29:06 1996 Mike Stump <mrs@cygnus.com>
6998
6999 * decl.c (cp_finish_decl): The exception regions have to be
7000 nested, not overlapping. We start the exception region for a
7001 decl, after it has been fully built, and all temporaries for it
7002 have been cleaned up.
7003
7004Thu Mar 7 17:46:06 1996 Mike Stump <mrs@cygnus.com>
7005
7006 * tree.c (vec_binfo_member): Don't core dump if we have no bases.
7007
e76a2646
MS
7008Thu Mar 7 14:11:49 1996 Jason Merrill <jason@yorick.cygnus.com>
7009
7010 * tree.def: Add RETURN_INIT.
7011 * pt.c (instantiate_decl): Handle RETURN_INIT.
7012 * decl.c (store_return_init): Handle minimal_parse_mode.
7013
7014 * tree.c (cp_build_type_variant): Just return an error_mark_node.
7015 * decl.c (make_typename_type): Don't try to get the file and line
eb66be0e 7016 of an identifier.
e76a2646
MS
7017 * typeck.c (comptypes): Handle TYPENAME_TYPE.
7018
7019Wed Mar 6 18:47:50 1996 Per Bothner <bothner@kalessin.cygnus.com>
7020
7021 * decl.c (poplevel): Make sure we clear out and restore old local
7022 non-VAR_DECL values by default when they go out of scope.
7023
7024Wed Mar 6 09:57:36 1996 Jason Merrill <jason@yorick.cygnus.com>
7025
7026 * method.c (build_overload_value): Use DECL_ASSEMBLER_NAME in
eb66be0e 7027 referring to addresses of variables and functions.
e76a2646
MS
7028
7029 * error.c (dump_expr): Support SIZEOF_EXPR.
7030
7031 * init.c (do_friend): Use the return value of check_classfn.
7032
7033 * typeck.c (convert_arguments): Call complete_type.
7034
7035 * method.c (hack_identifier): After giving an error, set value to
eb66be0e 7036 error_mark_node.
e76a2646
MS
7037
7038Tue Mar 5 16:00:15 1996 Jason Merrill <jason@yorick.cygnus.com>
7039
7040 * tree.c (hack_decl_function_context): Kludge around DECL_CONTEXT
eb66be0e 7041 lossage for local classes.
e76a2646
MS
7042 * cp-tree.h: Declare it.
7043 * decl.c (lookup_name_real): Evil, painful hack for local classes.
7044 (grokfndecl): Set DECL_CLASS_CONTEXT and DECL_NO_STATIC_CHAIN here.
7045 Use hack_decl_function_context.
7046 (grokdeclarator): Don't set DECL_NO_STATIC_CHAIN here.
7047 (start_function): Use hack_decl_function_context.
d11ad92e
MS
7048 (finish_function): Likewise.
7049 * method.c (synthesize_method): Likewise.
7050 * lex.c (process_next_inline): Likewise.
7051 (do_pending_inlines): Likewise.
e76a2646 7052 * decl2.c (finish_file): Unset DECL_STATIC_FUNCTION_P when we're
eb66be0e 7053 done with it.
e76a2646
MS
7054
7055Mon Mar 4 22:38:39 1996 Gerald Baumgartner <gb@alexander.cs.purdue.edu>
7056
7057 * sig.c (build_signature_pointer_or_reference_type): Align
7058 signature pointers/references on 8-byte boundaries so they can be
7059 grabbed 2 words at a time on a Sparc.
7060
7061Tue Mar 5 10:21:01 1996 Jason Merrill <jason@yorick.cygnus.com>
7062
7063 * method.c (hack_identifier): Requiring a static chain is now a
eb66be0e 7064 hard error.
e76a2646 7065 * decl.c (grokdeclarator): Set DECL_NO_STATIC_CHAIN on nested
eb66be0e 7066 functions.
e76a2646
MS
7067
7068Mon Mar 4 20:03:33 1996 Jason Merrill <jason@yorick.cygnus.com>
7069
7070 * init.c (build_offset_ref): Call complete_type.
7071
7072 * decl.c (pop_from_top_level): Always pop previous_class_type.
7073
7074 * parse.y: Handle multiple decls in a for-init-statement.
d11ad92e 7075 * pt.c (tsubst_expr): Likewise.
e76a2646
MS
7076
7077 * pt.c (tsubst): Use tsubst_expr for the second operand of an
eb66be0e 7078 ARRAY_REF.
e76a2646
MS
7079
7080 * decl.c (maybe_push_to_top_level): Don't save previous_class_type.
7081 (poplevel_class): Set it here.
7082 (pop_from_top_level): Pop it here if we're returning to class scope.
7083 * class.c (pushclass): Don't set it here.
7084
7085 * decl.c (maybe_push_to_top_level): Save current_template_parms,
eb66be0e 7086 and clear it if !pseudo.
e76a2646
MS
7087 (pop_from_top_level): Restore it.
7088
7089 * decl2.c (finish_file): Push the dummy each time we walk the list
eb66be0e 7090 of vtables.
e76a2646
MS
7091
7092 * error.c (dump_expr): Support LOOKUP_EXPR and actually do
eb66be0e 7093 something for CAST_EXPR.
e76a2646
MS
7094
7095Mon Feb 19 14:49:18 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
7096
7097 * cvt.c (cp_convert): Warn about implicit conversion of the
7098 address of a function to bool, as it is always true.
7099
7100Fri Feb 23 23:06:01 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
7101
7102 * typeck.c (c_expand_return): Fix warning for local externs returned.
7103
7104Mon Mar 4 15:03:11 1996 Jason Merrill <jason@yorick.cygnus.com>
7105
7106 * tree.c (mapcar): Propagate const and volatile properly.
7107
7108 * typeck.c (complete_type): Be sure to instantiate the
eb66be0e 7109 MAIN_VARIANT of the type.
e76a2646
MS
7110
7111 * method.c (synthesize_method): Class interface hackery does not
7112 apply to synthesized methods.
7113
7114Mon Mar 4 14:05:23 1996 Jason Merrill <jason@yorick.cygnus.com>
7115
7116 * pt.c (comp_template_args): Use comptypes rather than just
eb66be0e 7117 checking for TEMPLATE_TYPE_PARM equivalence.
e76a2646
MS
7118
7119 * typeck.c (build_x_function_call): Call complete_type before
eb66be0e 7120 checking TYPE_OVERLOADS_CALL_EXPR.
e76a2646 7121
7ea63af7
MH
7122Mon Mar 4 18:48:30 1996 Manfred Hollstein <manfred@lts.sel.alcatel.de>
7123
7124 * g++.c (main): Check also for new define ALT_LIBM.
7125
ec255269
MS
7126Fri Mar 1 13:09:33 1996 Jason Merrill <jason@yorick.cygnus.com>
7127
7128 * pt.c (instantiate_class_template): If we don't have a pattern
eb66be0e 7129 yet, that's OK.
ec255269
MS
7130 (coerce_template_parms): If we see a local class, bail.
7131
7132 * decl.c (grok_reference_init): Make sure there's a type before
eb66be0e 7133 checking its code.
ec255269
MS
7134
7135 * pt.c (do_function_instantiation): Avoid crashing on invalid decls.
d11ad92e 7136 (push_template_decl): Likewise.
ec255269
MS
7137
7138 * parse.y (named_class_head): Set
eb66be0e 7139 CLASSTYPE_TEMPLATE_SPECIALIZATION here if we have basetypes.
ec255269
MS
7140
7141 * decl.c (xref_tag): Diagnose redeclaration of template
eb66be0e 7142 type-parameter name.
ec255269
MS
7143
7144 * error.c (dump_type): Handle anonymous template type parms.
7145
7146 * pt.c (instantiate_template): Use TYPE_MAIN_DECL instead of
eb66be0e 7147 TYPE_STUB_DECL.
d11ad92e 7148 (coerce_template_parms): Likewise.
ec255269
MS
7149
7150Thu Feb 29 16:26:01 1996 Mike Stump <mrs@cygnus.com>
7151
7152 * class.c (instantiate_type, case {ARRAY,INDIRECT}_REF,
7153 case ADDR_EXPR): Don't modify rhs if a subinstantiation fails.
7154
7155Thu Feb 29 08:20:25 1996 Jason Merrill <jason@yorick.cygnus.com>
7156
7157 * pt.c (instantiate_template): Take the MAIN_VARIANT of the type
eb66be0e 7158 before trying to get its STUB_DECL.
d11ad92e 7159 (coerce_template_parms): Likewise.
ec255269
MS
7160
7161 * parse.y (template_type_parm): If they didn't use 'class',
eb66be0e 7162 pretend they did after giving an error.
ec255269
MS
7163
7164 * pt.c (coerce_template_parms): Diagnose use of local class.
7165
7166 * decl.c (grok_reference_init): Use instantiate_type.
7167
7168 * error.c (dump_expr): Handle TEMPLATE_DECLs.
7169
7170 * parse.y (named_class_head): Diagnose mismatching types and tags.
7171
7172 * decl.c (pushdecl): Type decls and class templates clash with
eb66be0e 7173 artificial type decls, not hide them.
ec255269
MS
7174
7175 * decl.c (redeclaration_error_message): Diagnose redefinition of
eb66be0e 7176 templates properly.
ec255269
MS
7177 (duplicate_decls): Diagnose disallowed overloads for template
7178 functions, too.
7179
7180 * decl.c (start_decl): Call complete_type before checking for a
eb66be0e 7181 destructor.
ec255269
MS
7182
7183 * pt.c (tsubst): Use tsubst_expr on the elts of a VEC.
7184
7185 * decl.c (xref_tag): A TEMPLATE_TYPE_PARM is a match.
7186
5566b478
MS
7187Wed Feb 28 09:28:44 1996 Jason Merrill <jason@yorick.cygnus.com>
7188
ec255269 7189 * decl.c (grok_op_properties): Don't check for operator++(int) in
eb66be0e 7190 a template.
ec255269
MS
7191
7192 * tree.c (perm_manip): Return a copy of variable and function
eb66be0e 7193 decls with external linkage.
ec255269
MS
7194
7195 * tree.def: Change some of the min tree codes to type "1".
7196 * pt.c (uses_template_parms): Handle 'e's, return 1 for LOOKUP_EXPRs.
7197 * method.c (build_overload_int): Emit something arbitrary for
eb66be0e 7198 anything but an INTEGER_CST if we're in a template.
ec255269
MS
7199
7200 * decl.c (cp_finish_decl): Call complete_type before deciding
eb66be0e 7201 whether or not to lay out the decl.
ec255269 7202
5566b478
MS
7203 * lex.c (do_identifier): Check for DECL_INITIAL before using it.
7204
7205Tue Feb 27 16:35:32 1996 Jason Merrill <jason@yorick.cygnus.com>
7206
7207 * typeck2.c (build_x_arrow): Call complete_type.
7208
7209 * pt.c (add_pending_template): Broken out.
eb66be0e
MS
7210 (lookup_template_class): If -fexternal-templates, call it for all
7211 the methods of implemented types.
5566b478
MS
7212 (instantiate_class_template): Instead of instantiating them here.
7213 (instantiate_decl): Handle -fexternal-templates earlier.
7214
7215Tue Feb 27 15:51:32 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
7216
7217 * search.c, lex.c, decl.c, class.c, cp-tree.h: Don't wrap the
7218 memoized lookup stuff inside GATHER_STATISTICS.
7219
7220Tue Feb 27 10:38:08 1996 Jason Merrill <jason@yorick.cygnus.com>
7221
7222 * decl.c (start_decl): Complain about array of incomplete type
7223 here.
7224 (grokdeclarator): Not here.
7225
7226 * parse.y (template_parm): Expand full_parm inline so we can set
eb66be0e 7227 the rule's precedence.
5566b478
MS
7228
7229 * pt.c (tsubst_expr): If we're in a template, just do tsubst_copy.
7230 (tsubst): tsubst_expr the DECL_INITIAL of FIELD_DECLs.
7231 * decl2.c (grokbitfield): Don't check for integer constant here.
7232 * class.c (finish_struct_1): Check here.
7233
7234 * decl.c (define_label): Make the min decl go on permanent_obstack.
7235
7236 * pt.c (unify): Don't handle CONST_DECLs.
7237 (uses_template_parms): Don't check DECL_INITIAL on a CONST_DECL.
d11ad92e 7238 (tsubst_copy): Likewise.
5566b478
MS
7239
7240 * lex.c (do_identifier): Do pull the DECL_INITIAL out of a
eb66be0e 7241 CONST_DECL for a template parm.
5566b478
MS
7242
7243Mon Feb 26 12:48:18 1996 Jason Merrill <jason@yorick.cygnus.com>
7244
7245 * decl.c (grokdeclarator): Complain about array of incomplete type
7246 here.
7247 (start_decl_1): Not here.
7248
7249 * pt.c (tsubst): Handle pointer-to-function declarators.
7250
7251 * method.c (hack_identifier): If pedantic, diagnose local class
eb66be0e 7252 methods that require a static chain.
5566b478
MS
7253
7254 * decl.c (grok_op_properties): No longer static.
7255 * cp-tree.h: Declare it.
7256 * pt.c (tsubst): Call it for operators.
7257 Use tsubst_copy for TREE_VECs.
7258
7259 * parse.y (template_arg): The expr has precedence like '>'.
7260
7261Fri Feb 23 14:51:52 1996 Jason Merrill <jason@yorick.cygnus.com>
7262
7263 * pt.c (coerce_template_parms): Don't coerce an expression using
eb66be0e 7264 template parms.
5566b478
MS
7265 (uses_template_parms): Also check DECL_INITIAL in CONST_DECLs.
7266 (tsubst): Don't use build_index_2_type if the max_value uses template
7267 parms.
7268 * method.c (build_overload_int): Emit something arbitrary for an
eb66be0e 7269 expression using template parms.
5566b478
MS
7270
7271 * parse.y (template_close_bracket): New non-terminal to catch use
eb66be0e 7272 of '>>' instead of '> >' in template class names.
5566b478
MS
7273 (template_type): Use it.
7274 * Makefile.in (CONFLICTS): Causes one more r/r conflict.
7275
7276 * tree.def: Add CAST_EXPR.
7277 * typeck2.c (build_functional_cast): Use CAST_EXPR instead of
eb66be0e 7278 CONVERT_EXPR for minimal_parse_mode.
d11ad92e
MS
7279 * typeck.c (build_c_cast): Likewise.
7280 * pt.c (tsubst_copy): Likewise.
7281 * decl2.c (build_expr_from_tree): Likewise.
7282 * error.c (dump_expr): Likewise.
5566b478
MS
7283
7284Fri Feb 23 10:36:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
7285
7286 * except.c (SetTerminate, SetUnexpected): Put back global vars.
7287 (init_exception_processing): Put back decl/init of
7288 set_unexpected_fndecl and set_terminate_fndecl, needed to get the
7289 fns from libstdc++.
7290
7291 * decl.c (struct binding_level): Delete ACCEPT_ANY bitfield.
7292 (declare_uninstantiated_type_level, uninstantiated_type_level_p):
7293 Delete unused fns.
7294 * cp-tree.h (declare_uninstantiated_type_level,
7295 uninstantiated_type_level_p): Delete prototypes.
7296
7297Thu Feb 22 19:36:15 1996 Jason Merrill <jason@yorick.cygnus.com>
7298
7299 * pt.c (tsubst_expr): Add default return.
7300
7301Thu Feb 22 16:47:24 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
7302
7303 * error.c (fndecl_as_string): Delete unused arg CNAME.
7304 * sig.c (build_signature_table_constructor,
7305 build_signature_method_call): Fix calls.
7306
7307 * class.c (the_null_vtable_entry): Delete var definition.
7308 (init_class_processing): Delete tree the_null_vtable_entry init.
7309 * decl.c (no_print_{functions, builtins}): Declare as static.
7310 (__tp_desc_type_node): #if 0 var definition.
7311 (init_type_desc): #if 0 init of __tp_desc_type_node.
7312 (vb_off_identifier): Move var decl into init_decl_processing.
7313 (current_function_assigns_this): Declare as static.
7314 (int_ftype_ptr_ptr_int, void_ftype_ptr_int_int): Delete var decls.
7315 (init_decl_processing): Delete init of void_ftype_ptr_ptr_int.
7316 Move decls of string_ftype_ptr_ptr and int_ftype_string_string here.
7317 * decl2.c (delete_sanity): Delete definition/mod of local var ELT_SIZE.
7318 * init.c (BI_header_type, BI_header_size): Declare as static.
7319 * pt.c (template_classes): Delete unused var.
7320 (add_pending_template): Delete decl for non-existent fn.
7321 (lookup_template_class): Delete vars CODE and TAG_CODE.
7322 (instantiate_template): Delete unused var TARGS.
7323 * cp-tree.h (vb_off_identifier, current_function_assigns_this):
7324 Delete decls.
7325 (__tp_desc_type_node): #if 0 var decl.
7326 (fndecl_as_string): Fix prototype.
7327
7328Thu Feb 22 15:56:19 1996 Jason Merrill <jason@yorick.cygnus.com>
7329
7330 * tree.def: Add GOTO_STMT.
7331 * pt.c (tsubst_expr): Support goto and labels.
7332 * decl.c (define_label): Support minimal parsing.
d11ad92e 7333 * parse.y (simple_stmt): Likewise.
5566b478
MS
7334
7335Thu Feb 22 15:30:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
7336
7337 * xref.c (GNU_xref_member): Only define/set var I if
7338 XREF_SHORT_MEMBER_NAMES is defined, to match when it's actually
7339 used.
7340 (GNU_xref_end_scope): Delete unused fifth arg TRNS.
7341 (GNU_xref_end): Fix call.
7342 * decl.c (poplevel, poplevel_class, finish_method): Fix calls.
7343 * cp-tree.h (GNU_xref_end_scope): Fix prototype.
7344
7345 * tree.c (build_exception_variant): Delete unused vars I, A, T,
7346 T2, and CNAME.
7347 (layout_vbasetypes): Delete unused var NONVIRTUAL_VAR_SIZE.
7348 (mapcar): Delete unused var CODE.
7349 (build_cplus_new): Delete unused arg WITH_CLEANUP_P.
7350 (break_out_cleanups): Fix call.
7351 (bot_manip): Likewise.
7352 * call.c (build_method_call): Likewise.
7353 * cvt.c (build_up_reference, convert_to_reference, cp_convert):
7354 Likewise.
7355 * typeck.c (unary_complex_lvalue, build_modify_expr,
7356 convert_for_initialization): Likewise.
7357 * typeck2.c (build_functional_cast): Likewise.
7358 * cp-tree.h (build_cplus_new): Fix prototype.
7359
7360 * repo.c (open_repo_file): Delete unused var Q.
7361 (repo_compile_flags, repo_template_declared,
7362 repo_template_defined, repo_class_defined, repo_inline_used,
7363 repo_vtable_used, repo_tinfo_used): #if 0 unused fns.
7364 (repo_get_id, repo_vtable_used): Declare as static.
7365 * cp-tree.h (mark_{decl,class}_instantiated, finish_repo): Add
7366 prototypes.
7367
7368Thu Feb 22 14:53:35 1996 Jason Merrill <jason@yorick.cygnus.com>
7369
7370 * parse.y (pending_inlines): Add function_try_block case.
7371
7372 * pt.c (unify): Fix for template const parms.
7373
7374Thu Feb 22 13:24:15 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
7375
7376 * lex.c (extract_interface_info): Delete forward decl.
7377 (default_copy_constructor_body, default_assign_ref_body): Delete
7378 decls for non-existent functions.
7379 (synth_firstobj, inline_text_firstobjs): Delete unused vars.
7380 (init_lex): Delete setting them.
7381 (cons_up_default_function): Delete unused vars FUNC_BUF,
7382 FUNC_LEN, and COMPLEX. Delete code setting COMPLEX. Delete old
7383 #if 0'd synth code.
7384 (toplevel, expression_obstack): Delete unused extern decls.
7385 (tree_node_kind): Delete unused enum.
7386 (tree_node_counts, tree_node_sizes): Wrap with #ifdef
7387 GATHER_STATISTICS.
7388 (tree_node_kind_names): Delete unused extern decl.
7389 (synth_obstack): Delete unused var.
7390 (init_lex): Don't set it.
7391 (init_parse): Add decl before use.
7392 (reduce_count): Only define #ifdef GATHER_STATISTICS && REDUCE_LENGTH.
7393 (current_unit_{name, language}): Delete unused vars.
7394 (check_newline): Don't bother setting them, just accept the #pragma.
7395 * cp-tree.h (init_repo, peek_yylex): Add prototypes.
7396 (current_unit_{name, language}): Delete decls.
7397
7398 * search.c: Wrap all of the memoized functions, macros, and
7399 variables inside #ifdef GATHER_STATISTICS.
7400 (lookup_field, lookup_fnfields): Likewise.
7401 (init_search_processing): Likewise.
7402 (reinit_search_statistics): Wrap whole function.
7403 * lex.c (reinit_lang_specific): Wrap call to reinit_search_statistics.
7404
7405 * decl.c (finish_function): Only call pop_memoized_context if
7406 GATHER_STATISTICS is defined.
7407 (start_function): Likewise for push_memoized_context.
7408 * class.c (pushclass, popclass): Likewise.
7409
7410 * cp-tree.h (CLASSTYPE_MTABLE_ENTRY): Move definition from here...
7411 * search.c (CLASSTYPE_MTABLE_ENTRY): ... to here.
7412
7413 * cvt.c (cp_convert): Delete unused local var FORM.
7414 * cp-tree.h (can_convert, can_convert_arg, real_lvalue_p): Add
7415 prototypes.
7416
7417Thu Feb 22 13:19:44 1996 Jason Merrill <jason@yorick.cygnus.com>
7418
7419 * pt.c (do_poplevel): Oops; really return what we get from
eb66be0e 7420 poplevel this time.
5566b478
MS
7421
7422Thu Feb 22 11:41:44 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
7423
7424 * cp-tree.h (is_aggr_type): Add prototype.
7425
7426 * cp-tree.h ({push,pop}_cp_function_context): Add decls.
7427 * method.c ({push,pop}_cp_function_context): Delete decls.
7428 * except.c (start_eh_unwinder, end_eh_unwinder): Declare as void.
7429 (SetUnexpected, SetTerminate): Delete unused vars.
7430 (init_exception_processing): Don't set SetUnexpected or
7431 SetTerminate. Don't set SET_UNEXPECTED_FNDECL or SET_TERMINATE_FNDECL.
7432 (output_exception_table_entry): Delete unused array LABEL.
7433 (expand_internal_throw): Delete unused var PARAMS.
7434 (expand_start_catch_block): Delete unused var CLEANUP.
7435 (emit_exception_table): Delete unused var EH_NODE_DECL.
7436 (expand_builtin_throw): Delete unused vars UNWIND_AND_THROW and
7437 GOTO_UNWIND_AND_THROW. Don't set them.
7438 (end_eh_unwinder): Add top decl.
7439 (pop_rtl_from_perm): Delete unused decl of PERMANENT_OBSTACK.
7440 (exception_section, push_rtl_perm, do_function_call,
7441 lang_interim_eh, push_eh_cleanup, eh_outer_context,
7442 expand_end_eh_spec, end_eh_unwinder): Declare as static.
7443 (saved_pc, saved_throw_type, saved_throw_value, saved_cleanup,
7444 throw_used): Likewise.
7445 * cp-tree.h (expand_end_eh_spec): Delete prototype.
7446
7447 * search.c (dfs_mark, dfs_mark_vtable_path,
7448 dfs_unmark_vtable_path, dfs_mark_new_vtable,
7449 dfs_unmark_new_vtable, dfs_clear_search_slot,
7450 dfs_search_slot_nonempty_p, bfs_markedp, bfs_unmarkedp,
7451 bfs_marked_vtable_pathp, bfs_unmarked_vtable_pathp,
7452 bfs_marked_new_vtablep, bfs_unmarked_new_vtablep): #if 0 unused
7453 functions.
7454 (n_fields_searched, n_calls_lookup_field, n_calls_lookup_field_1,
7455 n_calls_lookup_fnfields, n_calls_lookup_fnfields_1,
7456 n_calls_get_base_type, n_outer_fields_searched, n_contexts_saved):
7457 Only define #ifdef GATHER_STATISTICS.
7458 (reinit_search_statistics): Only init some vars if GATHER_STATISTICS
7459 is defined.
7460 (vbase_decl): Delete var definition.
7461 (init_search): Delete old decl.
7462 (init_vbase_pointers): Delete building of VBASE_DECL, since it's
7463 never actually used.
7464 (expand_indirect_vtbls_init): Delete init of VBASE_DECL.
7465 (get_base_distance_recursive): Delete unused fourth arg
7466 BASETYPE_PATH. Fix call .
7467 (get_base_distance): Fix call.
7468 (push_class_decls): Delete unused var ID.
7469 (make_memoized_table_entry): Declare as static.
7470 (breadth_first_search): Declare as static.
7471 (tree_has_any_destructor_p): Declare as static.
7472 (pop_class_decls): Delete unused arg pop_class_decls.
7473 * class.c (popclass): Fix call to pop_class_decls.
7474 * cp-tree.h (make_memoized_table_entry, breadth_first_search,
7475 tree_has_any_destructor_p): Delete prototypes.
7476
7477 * rtti.c (build_ptmf_desc): Delete unused arg TYPE.
7478 (build_t_desc): Fix call. Delete unused vars ELEMS and TT.
7479 (build_dynamic_cast): Delete unused local vars TMP1 and RETVAL.
7480 (build_user_desc): Delete unused var T.
7481 (build_class_desc): Delete unused vars T and OFF.
7482 (build_t_desc): Delete unused var NAME_STRING.
7483 (build_headof): Make static.
7484 (get_bad_cast_node): Likewise.
7485 (get_def_to_follow): Likewise.
7486 * cp-tree.h (init_type_desc): Add prototype.
7487 (build_headof): Remove prototype.
7488
7489Thu Feb 22 00:54:22 1996 Jason Merrill <jason@yorick.cygnus.com>
7490
7491 * pt.c (tsubst): Only look for matching decls at file scope for
eb66be0e 7492 non-member functions.
5566b478
MS
7493
7494 * call.c (build_scoped_method_call): Handle scoped destructor
eb66be0e 7495 calls in templates.
5566b478
MS
7496
7497 * decl.c (*_top_level): Also save previous_class_values.
7498
7499 * pt.c (tsubst_expr): Support do {} while loops.
d11ad92e
MS
7500 * parse.y (simple_stmt): Likewise.
7501 * tree.def: Likewise.
5566b478
MS
7502
7503 * method.c (build_overload_identifier): For a class nested in a
eb66be0e
MS
7504 template class, don't mangle in the template parms from our
7505 context.
5566b478
MS
7506
7507 * lex.c, cp-tree.h: Remove support for template instantiations in
eb66be0e 7508 the pending_inlines code.
5566b478
MS
7509 * pt.c: Remove dead functions and unused arguments.
7510 (uses_template_parms): TYPENAME_TYPEs always use template parms.
7511 * parse.y: Stop passing anything to end_template_decl.
7512 * tree.c (print_lang_statistics): Only print tinst info #ifdef
eb66be0e 7513 GATHER_STATISTICS.
5566b478
MS
7514
7515Wed Feb 21 16:57:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
7516
7517 * init.c (expand_recursive_init{,_1}): Delete decls.
7518 (sort_member_init): Delete unused var INIT.
7519 (emit_base_init): Delete unused var X.
7520 (build_offset_ref): Delete unused var CNAME.
7521 (sort_member_init): Delete unused var FIELDS_TO_UNMARK.
7522 (emit_base_init): Delete unused local var BASE. Delete extern
7523 decl of IN_CHARGE_IDENTIFIER.
7524 (build_delete): Delete unused local var VIRTUAL_SIZE.
7525
7526 * init.c (build_vec_delete): Delete unused third arg ELT_SIZE.
7527 (build_delete): Fix call.
7528 * decl2.c (delete_sanity): Likewise.
7529 * cp-tree.h (build_vec_delete): Update prototype.
7530
7531 * typeck.c (common_base_type): Delete unused var TMP.
7532 (build_binary_op): Delete local var ARGS_SAVE.
7533 (build_array_ref): Delete unused var ITYPE.
7534 (c_expand_return): Delete unused var USE_TEMP.
7535
7536 * typeck.c (compexcepttypes): Delete unused arg STRICT.
7537 (comptypes): Fix calls.
7538 * decl.c (duplicate_decls): Likewise.
7539 * cp-tree.h (compexcepttypes): Delete extra arg.
7540
7541 * decl2.c (check_classfn): Delete unused second arg CNAME.
7542 * decl.c (start_decl, grokfndecl): Fix calls.
7543 * init.c (do_friend): Likewise.
7544 * cp-tree.h (check_classfn): Update prototype.
7545
7546 * cp-tree.h (signature_error, import_export_vtable,
7547 append_signature_fields, id_in_current_class, mark_used,
7548 copy_assignment_arg_p): Add decls.
7549 * decl2.c (mark_used): Delete decl.
7550
7551 * class.c (n_*): Wrap with #ifdef GATHER_STATISTICS.
7552
7553 * class.c (get_vtable_entry): Diable unused function.
7554 (doing_hard_virtuals): Delete unused static global var.
7555 (finish_struct_1): Don't init DOING_HARD_VIRTUALS.
7556 (prepare_fresh_vtable): Delete unused vars PATH and RESULT.
7557 (overrides): Delete unused vars RETTYPE and BASE_RETTYPE.
7558 (modify_one_vtable): Delete unused var OLD_RTTI.
7559 (finish_struct_anon): Delete unused vars OFFSET and X.
7560 (finish_struct_bits): Delete unused var METHOD_VEC.
7561 (get_basefndecls): Delete unused var PURPOSE. Delete unused
7562 for-scope local variable METHODS.
7563
7564 * call.c (user_harshness): Delete unused/unneeded arg PARM.
7565 (ideal_candidate): Delete unused args BASETYPE and PARMS.
7566 (build_method_call): Delete unused args passed into ideal_candidate.
7567 (build_overload_call_real): Likewise. Delete unused var OVERLOAD_NAME.
7568 * cp-tree.h (synthesize_method): Add decl.
7569
7570 * decl.c (note_level_for_for): Give void return type.
7571 (pushdecl_nonclass_level): Likewise.
7572 (finish_function): Delete unused vars VFIELDS and ALLOCATED_THIS.
7573 (poplevel): Delete unused var IMPLICIT_TRY_BLOCK.
7574 (suspend_binding_level): Delete unused var LEVEL.
7575 (duplicate_decls): Delete unused var CTYPE.
7576 (duplicate_decls): Delete unused var PREVIOUS_C_DECL.
7577 (init_decl_processing): Delete unused vars FLOAT_ENDLINK and
7578 PTR_ENDLINK.
7579 (grokdeclarator): Delete unused var C.
7580 (grokdeclarator): Delete unused var SIZE_VARIES.
7581 (grokparms): Delete unused var SAW_VOID.
7582 (start_function): Delete unused var OLDDECL.
7583 (cplus_expand_expr_stmt): Delete unused var
7584 REMOVE_IMPLICIT_IMMEDIATELY.
7585
7586 * cp-tree.h (pushdecl_nonclass_level): Fix prototype.
7587
7588 * Makefile.in (CONFLICTS): Update to 12 shift/reduce.
7589
7590Wed Feb 21 00:06:17 1996 Jason Merrill <jason@yorick.cygnus.com>
7591
7592 * tree.c (build_min): Set TREE_COMPLEXITY to lineno.
d11ad92e 7593 (build_min_nt): Likewise.
5566b478
MS
7594 * pt.c (do_pushlevel): Emit line note.
7595 (do_poplevel): Return what we get from poplevel.
7596 (tsubst_expr): Set lineno from TREE_COMPLEXITY in stmt nodes.
7597 * parse.y: Use do_pushlevel and do_poplevel.
7598 * cp-tree.h: Declare do_poplevel.
7599
7600 * cp-tree.h: Declare at_eof.
7601 * decl.c (cp_finish_decl): Pass it to rest_of_decl_compilation.
7602 * decl2.c (import_export_decl): Renamed from import_export_inline.
7603 (finish_file): Call it to do interface handling for statics.
7604 * pt.c (tsubst_copy): Call mark_used on variables and functions
eb66be0e 7605 used here.
5566b478
MS
7606
7607 * decl2.c (finish_file): Don't emit statics we can't generate.
7608 * pt.c (instantiate_decl): Don't set interface on instantiations
eb66be0e 7609 we can't generate.
5566b478
MS
7610
7611 * cp-tree.h (struct tinst_level): Change 'classname' to 'decl'.
7612 * tree.c (print_lang_statistics): Print max template depth.
7613 * pt.c (push_tinst_level): Dump entire instantiation context.
7614 (instantiate_class_template): Use it and pop_tinst_level.
d11ad92e 7615 (instantiate_decl): Likewise.
5566b478
MS
7616
7617 * call.c class.c cp-tree.h decl.c decl2.c error.c lex.c method.c
eb66be0e 7618 pt.c ptree.c tree.def: Remove all traces of UNINSTANTIATED_P_TYPE.
5566b478
MS
7619
7620Tue Feb 20 18:21:51 1996 Jason Merrill <jason@yorick.cygnus.com>
7621
7622 * call.c class.c cp-tree.h cvt.c decl.c decl2.c error.c expr.c
eb66be0e
MS
7623 init.c lex.c method.c parse.y pt.c repo.c search.c spew.c tree.c
7624 tree.def typeck.c typeck2.c xref.c: Massive, systemic changes for
7625 the new template implementation.
5566b478
MS
7626
7627Tue Feb 20 17:14:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
7628
7629 * decl2.c (check_cp_case_value): Use STRIP_TYPE_NOPS.
7630
cffa8729
MS
7631Thu Feb 15 18:44:42 1996 Mike Stump <mrs@cygnus.com>
7632
7633 * decl.c (cp_finish_decl): Delay emitting the debug information for
7634 a typedef that has been installed as the canonical typedef, if the
7635 type has not yet been defined.
7636
7637Thu Feb 15 09:39:08 1996 Jason Merrill <jason@yorick.cygnus.com>
7638
7639 * decl2.c (grokfield): Still call pop_nested_class for access decls.
7640
7641Wed Feb 14 17:30:04 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
7642
7643 * decl.c (lookup_label): Call label_rtx.
7644
7645 * decl.c (make_binding_level): New function.
7646 (pushlevel, pushlevel_class): Call it instead of explicit
7647 duplicate calls to xmalloc.
7648
7649 * decl.c (init_decl_processing): Delete useless build_pointer_type
7650 call.
7651
7652 * decl.c (float_ftype_float, ldouble_ftype_ldouble): Add definitions.
7653 (sizet_ftype_string): Delete variable.
7654 (init_decl_processing): Add built-in functions fabsf, fabsl,
7655 sqrtf, sqrtl, sinf, sin, sinl, cosf, cos, cosl. New local
7656 variable strlen_ftype, used for strlen.
7657
7658Wed Feb 14 16:21:25 1996 Jason Merrill <jason@yorick.cygnus.com>
7659
7660 * decl.c (push_to_top_level): Start from current_binding_level
eb66be0e
MS
7661 again for now; the stl hacks depend on g++ being broken in this
7662 way, and it'll be fixed in the template rewrite.
cffa8729
MS
7663
7664 * tree.def: Add USING_DECL.
7665 * decl2.c (do_class_using_decl): Implement.
7666 (grokfield): Pass access decls off to do_class_using_decl instead of
7667 grokdeclarator.
7668 * error.c (dump_decl): Handle USING_DECLs.
7669 * decl.c (grokdeclarator): Remove code for handling access decls.
7670 * class.c (finish_struct_1): Adjust accordingly, treat using-decls
eb66be0e 7671 as access decls for now.
cffa8729
MS
7672 (finish_struct): Don't check USING_DECLs for other uses of the name.
7673
7674 * search.c (get_matching_virtual): Use cp_error_at.
7675
7676Wed Feb 14 10:36:58 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
7677
7678 * typeck.c (comptypes): Default COMP_TYPE_ATTRIBUTES to 1, to
7679 match c-typeck.c.
7680 (self_promoting_args_p): Move the check that TYPE is non-nil
7681 before trying to look at its main variant.
7682 (unsigned_type, signed_type): Add checking of DI/SI/HI/QI nodes.
7683
7684 * cp-tree.h (DECL_WAITING_FRIENDS, SET_DECL_WAITING_FRIENDS):
7685 Delete macros.
7686 * init.c (xref_friend, embrace_waiting_friends): Delete functions.
7687 (do_friend): Delete call to xref_friend.
7688 * class.c (finish_struct_1): Delete call to embrace_waiting_friends.
7689
7690 * typeck.c (convert_sequence): #if 0 unused function.
7691
7692 * cp-tree.h (DECL_IN_MEMORY_P): New macro w/ the check that used to
7693 be in decl_in_memory_p.
7694 (decl_in_memory_p): Delete decl.
7695 * expr.c (decl_in_memory_p): Delete fn.
7696 * typeck.c (mark_addressable): Use DECL_IN_MEMORY_P.
7697
7698 * decl.c (cp_finish_decl): Use DECL_IN_MEMORY_P.
7699
7700Tue Feb 13 12:51:21 1996 Jason Merrill <jason@yorick.cygnus.com>
7701
7702 * class.c (finish_struct_1): Check for a pure-specifier on a
eb66be0e 7703 non-virtual function here.
cffa8729
MS
7704
7705 * decl2.c (grok_function_init): Don't check whether the function
eb66be0e 7706 is virtual here.
cffa8729
MS
7707 (grokfield): Don't call check_for_override here.
7708
7709 * decl.c (push_to_top_level): Start from inner_binding_level,
eb66be0e 7710 check class_shadowed in class levels.
cffa8729
MS
7711
7712Mon Feb 12 17:46:59 1996 Mike Stump <mrs@cygnus.com>
7713
7714 * decl.c (resume_level): Ignore things that don't have names, instead
7715 of core dumping.
7716
7717Mon Feb 12 15:47:44 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
7718
7719 * decl2.c (grokfield): Set DECL_VINDEX properly for FUNCTION_DECLs.
7720
7721Sat Feb 10 17:59:45 1996 Jason Merrill <jason@yorick.cygnus.com>
7722
7723 * class.c (finish_struct_1): Set DECL_VINDEX properly on a
eb66be0e 7724 synthesized dtor.
cffa8729
MS
7725
7726 * parse.y (complete_type_name): Bind global_scope earlier.
d11ad92e 7727 (complex_type_name): Likewise.
cffa8729
MS
7728 (qualified_type_name): Remove.
7729
2ee887f2
MS
7730Thu Feb 8 15:15:14 1996 Jason Merrill <jason@yorick.cygnus.com>
7731
7732 * decl.c (grokfndecl): Move code that looks for virtuals in base
eb66be0e 7733 classes...
cffa8729 7734 * class.c (check_for_override): ... to a new function.
2ee887f2
MS
7735 (finish_struct_1): Call it.
7736
7737 * cp-tree.h: Declare warn_sign_compare.
7738
7739 * typeck.c (build_binary_op_nodefault): Check warn_sign_compare
eb66be0e
MS
7740 rather than extra_warnings to decide whether to warn about
7741 comparison of signed and unsigned.
2ee887f2
MS
7742
7743 * decl2.c (lang_decode_option): Handle warn_sign_compare. -Wall
eb66be0e 7744 implies -Wsign-compare. -Wall doesn't imply -W.
2ee887f2
MS
7745
7746Wed Feb 7 15:27:57 1996 Mike Stump <mrs@cygnus.com>
7747
7748 * typeck.c (build_component_ref): Fix to handle anon unions in base
7749 classes as well.
7750
7751Wed Feb 7 14:29:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
7752
7753 * class.c (resolves_to_fixed_type_p): Delete code dealing with
7754 a WITH_CLEANUP_EXPR, since we don't generate them any more.
7755 * cvt.c (build_up_reference): Likewise.
7756 * decl.c (grok_reference_init): Likewise.
7757 (cp_finish_decl): Likewise.
7758 * error.c (dump_expr): Likewise.
7759 * tree.c (real_lvalue_p): Likewise.
7760 (lvalue_p): Likewise.
7761 (build_cplus_new): Likewise.
7762 (unsave_expr_now): Likewise.
7763 * typeck.c (unary_complex_lvalue, build_modify_expr,
7764 c_expand_return): Likewise.
7765
7766Tue Feb 6 13:39:22 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
7767
7768 Make the C++ front-end pay attention to attributes for structures.
7769 * class.c (finish_struct): New argument ATTRIBUTES, passed down into
7770 finish_struct_1.
eb66be0e 7771 (finish_struct_1): New argument ATTRIBUTES; call cplus_decl_attributes.
2ee887f2
MS
7772 Take out old round_up_size use and setting the DECL_ALIGN possibly
7773 using it. Take out setting of TYPE_ALIGN to round_up_size, which
7774 can override what the attribute set.
7775 * cp-tree.h (finish_struct): Update prototype.
7776 * parse.y (template_instantiate_once): Pass a NULL_TREE for the
7777 attributes to finish_struct.
7778 (structsp): For a CLASS decl, add maybe_attribute to rule and pass that
7779 value down into finish_struct.
7780 * Makefile.in (CONFLICTS): Switch to 7 shift/reduce conflicts.
7781
7782Tue Feb 6 13:12:15 1996 Per Bothner <bothner@kalessin.cygnus.com>
7783
7784 * decl.c (poplevel): Re-word dead for local handling.
7785 (pushdecl): Remove useless DECL_DEAD_FOR_LOCAL test.
7786 (cp_finish_decl): If is_for_scope, check for duplicates so
7787 we can disable is_for_scope. Otherwise, preserve_temp_slots.
7788
7789 * lex.c (do_identifier): Use global binding in preference of
7790 dead for local variable.
7791
7792Mon Feb 5 17:46:46 1996 Mike Stump <mrs@cygnus.com>
7793
7794 * init.c (initializing_context): Handle anon union changes, the
7795 context where fields of anon unions can be initialized now has to be
7796 found by walking up the TYPE_CONTEXT chain.
7797
7798Fri Feb 2 14:54:04 1996 Doug Evans <dje@charmed.cygnus.com>
7799
7800 * decl.c (start_decl): #ifdef out code to set DECL_COMMON
7801 if ASM_OUTPUT{,_ALIGNED}_BSS is defined.
7802 (obscure_complex_init): If bss is supported, always set
7803 DECL_INITIAL to error_mark_node.
7804
7805Thu Feb 1 16:19:56 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
7806
7807 * init.c (is_friend): Make sure there's a context before we see if
7808 it's an aggr type.
7809
7810Thu Feb 1 15:44:53 1996 Mike Stump <mrs@cygnus.com>
7811
7812 * init.c (is_friend): Classes are not friendly with nested classes.
7813
7814Thu Feb 1 15:27:37 1996 Doug Evans <dje@charmed.cygnus.com>
7815
7816 * lex.c (check_newline): Pass last character read to HANDLE_PRAGMA,
7817 and record its result.
7818
9e9ff709
MS
7819Thu Feb 1 09:27:01 1996 Mike Stump <mrs@cygnus.com>
7820
7821 * class.c (finish_struct_anon): Switch around code to not move anon
7822 union elements around, nor mess up their contexts, nor offsets,
7823 instead we now build up the right number of COMPONENT_REFs for all
7824 the anon unions that may be present at build_component_ref time.
7825 * typeck.c (lookup_anon_field): New routine to handle field lookup
7826 on fields without names. We find them, based upon their unique type
7827 instead.
7828 * typeck.c (build_component_ref): Allow FIELD_DECL components.
7829 Handle finding components in anonymous unions, and ensure that a
7830 COMPONENT_REF is built for each level as necessary.
7831
7832Tue Jan 30 18:18:23 1996 Mike Stump <mrs@cygnus.com>
7833
7834 * cvt.c (build_up_reference): Make the INDIRECT_BIND case come after
7835 code that ensures that copy ctors are used if appropriate.
7836
7837Tue Jan 30 17:35:14 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
7838
7839 * init.c (build_vec_delete): Only give an error if base isn't an
7840 error_mark_node.
7841
7842Mon Jan 29 17:09:06 1996 Mike Stump <mrs@cygnus.com>
7843
7844 * spew.c (do_aggr): `new struct S;' isn't a forward declaration.
7845 (yylex): If we see `new', keep slurping.
7846
7847Thu Jan 25 18:31:36 1996 Mike Stump <mrs@cygnus.com>
7848
7849 * class.c (finish_struct_1): Move code for handling anon unions...
7850 (finish_struct_anon): to here. Fixup so that we do the offset
7851 calculations right, and so that the fields are physically moved to
7852 the containers's chain.
7853
7854Thu Jan 25 18:27:37 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
7855
7856 * decl.c (grokdeclarator): Avoid trying to get an operand off an
7857 identifier node.
7858
7859Wed Jan 24 11:25:30 1996 Jim Wilson <wilson@chestnut.cygnus.com>
7860
7861 * typeck.c (pointer_int_sum): Use TYPE_PRECISION (sizetype) not
7862 POINTER_SIZE to agree with expr.c.
7863
7864Thu Jan 25 13:01:23 1996 Mike Stump <mrs@cygnus.com>
7865
7866 * search.c (lookup_field): Don't report ambiguities if protect is 0,
7867 instead return NULL_TREE.
7868
7869Wed Jan 24 13:01:26 1996 Mike Stump <mrs@cygnus.com>
7870
7871 * class.c (finish_struct_1): Call warn_hidden if we want warnings
7872 about overloaded virtual functions.
7873 (warn_hidden): New routine to warn of virtual functions that are
7874 hidden by other virtual functions, that are not overridden.
7875 (get_basefndecls): New routine, used by warn_hidden.
7876 (mark_overriders): New routine, used by warn_hidden.
7877 * search.c (get_matching_virtual): Remove old warning that just
7878 isn't very useful.
7879
7880Tue Jan 23 12:26:10 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
7881
7882 * decl.c (output_builtin_tdesc_entries): #if 0 the function definition.
7883
7884 * typeck.c (null_ptr_cst_p): Delete unused fn.
7885 (build_function_call_maybe): Delete unused fn.
7886
7887 * expr.c (extract_init): #if 0 the code after unconditional return 0
7888 for now.
7889
7890 Delete old cadillac code.
7891 * edsel.c: Remove file.
7892 * Make-lang.in (CXX_SRCS): Take edsel.c off the list.
7893 * Makefile.in (CXX_OBJS): Delete edsel.o.
7894 (edsel.o): Delete rule.
7895 * cp-tree.h (flag_cadillac): Delete var decl.
7896 * lang-options.h: Delete "-fcadillac" and "-fno-cadillac".
7897 * decl2.c (flag_cadillac): Delete var definition.
7898 (lang_decode_option): Delete handling of -fcadillac and -fno-cadillac.
7899 (grokfield): Delete code depending on flag_cadillac.
7900 (finish_anon_union): Likewise.
7901 * class.c (finish_struct_1): Likewise.
7902 (pushclass): Likewise.
7903 (popclass): Likewise.
7904 (push_lang_context): Likewise.
7905 (pop_lang_context): Likewise.
7906 * decl.c (init_decl_processing): Likewise.
7907 (start_decl): Likewise.
7908 (cp_finish_decl): Likewise.
7909 (xref_tag): Likewise.
7910 (finish_enum): Likewise.
7911 (start_function): Likewise.
7912 (finish_function): Likewise.
7913 (finish_stmt): Likewise.
7914 * lex.c (lang_init): Likewise.
7915 (check_newline): Likewise.
7916
7917 * lex.c (do_pending_inlines): Delete synthesized method kludge.
7918
7919 Delete defunct, ancient garbage collection implementation.
7920 * rtti.c: New file with the RTTI stuff from gc.c.
7921 * gc.c: Removed file (moved the remaining stuff into rtti.c).
7922 * Makefile.in (CXX_OBJS): Replace gc.o with rtti.o.
7923 (rtti.o): New rule, replacing gc.o.
7924 * Make-lang.in (CXX_SRCS): Replace gc.c with rtti.c.
7925 * cp-tree.h: Delete gc-related fn decls.
7926 (DECL_GC_OFFSET): Delete macro.
7927 (flag_gc): Delete extern decl.
7928 * decl.c (current_function_obstack_index): Delete var decl.
7929 (current_function_obstack_usage): Delete var decl.
7930 (start_function): Delete clearing of current_function_obstack_index
7931 and current_function_obstack_usage.
7932 (init_decl_processing): Delete code relying on -fgc.
7933 Delete call to init_gc_processing.
7934 (cp_finish_decl): Delete calls to build_static_gc_entry and
7935 type_needs_gc_entry. Delete gc code setting DECL_GC_OFFSET.
7936 (store_parm_decls): Delete -fgc calls to cp_expand_decl_cleanup
7937 and to expand_expr of a __gc_main call.
7938 (maybe_gc_cleanup): Delete var decl.
7939 (finish_function): Delete call to expand_gc_prologue_and_epilogue.
7940 * decl2.c (flag_gc): Delete var decl.
7941 (lang_f_options): Delete offering of -fgc.
7942 (lang_decode_option): Delete -fgc and -fno-gc handling.
7943 (get_temp_regvar): Delete gc code.
7944 * init.c (build_new): Delete gc code.
7945 * lex.c (init_lex): Delete checking of flag_gc.
7946
7947 * typeck.c (convert_arguments): Delete gc code.
7948 (build_component_addr): Delete -fgc warning.
7949 (build_modify_expr): Delete gc code.
7950
7951 * decl2.c (build_push_scope): Delete fn.
7952 * cp-tree.h (build_push_scope): Delete decl.
7953
7954 * search.c (clear_search_slots): Delete fn.
7955 * cp-tree.h (clear_search_slots): Delete decl.
7956
7957 * search.c (tree_needs_constructor_p): Delete fn.
7958 * cp-tree.h (tree_needs_constructor_p): Delete decl.
7959
7960 * tree.c (id_cmp): Delete fn.
7961
7962 * tree.c (set_fnaddr_from_vtable_entry): Delete fn.
7963 * cp-tree.h (set_fnaddr_from_vtable_entry): Delete decl.
7964
7965 * tree.c (decl_value_member): Delete fn.
7966 * cp-tree.h (decl_value_member): Delete decl.
7967
7968 * tree.c (list_hash_lookup_or_cons): Delete fn.
7969 * cp-tree.h (list_hash_lookup_or_cons): Delete decl.
7970
7971 * method.c (cplus_exception_name): Delete fn.
7972 (EXCEPTION_NAME_{PREFIX, LENGTH}): Delete macros.
7973
7974 * spew.c (shift_tokens): Delete fn.
7975
7976Mon Jan 22 17:49:33 1996 Jason Merrill <jason@yorick.cygnus.com>
7977
7978 * except.c (init_exception_processing): Pass 1 to needs_pop in calls
7979 to cp_finish_decl.
d11ad92e 7980 * parse.y: Likewise.
9e9ff709
MS
7981
7982Mon Jan 22 17:34:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
7983
7984 * tree.c (build_cplus_staticfn_type): Delete function definition;
7985 never used.
7986 * cp-tree.h (build_cplus_staticfn_type): Delete decl.
7987
7988 * tree.c (virtual_member): Delete function definition; never used.
7989 * cp-tree.h (virtual_member): Delete decl.
7990
45537677
MS
7991Fri Jan 19 18:03:14 1996 Mike Stump <mrs@cygnus.com>
7992
7993 * typeck.c (build_component_ref): Handle getting vbase pointers
7994 out of complex multiple inheritance better.
7995
7996Fri Jan 19 16:27:40 1996 Mike Stump <mrs@cygnus.com>
7997
7998 * typeck.c (build_object_ref): Make sure we use the real type, not
7999 any reference type.
8000
8001Fri Jan 19 16:01:47 1996 Mike Stump <mrs@cygnus.com>
8002
8003 * tree.c (build_exception_variant): Don't create new types if we
8004 don't have to, also build new types on the right obstack.
8005
8006Fri Jan 19 14:09:44 1996 Jason Merrill <jason@yorick.cygnus.com>
8007
8008 * decl.c (store_bindings): Split out from push_to_top_level.
9e9ff709
MS
8009 (push_to_top_level): Call it for b->type_shadowed on class binding
8010 levels.
45537677
MS
8011
8012Fri Jan 19 13:53:14 1996 Mike Stump <mrs@cygnus.com>
8013
8014 * search.c (expand_upcast_fixups): Fix so that offsets stored in
8015 vbase_offsets are always right. Fixes a problem where virtual base
8016 upcasting and downcasting could be wrong during conversions on this
8017 during virtual function dispatch at ctor/dtor time when dynamic
8018 vtable fixups for deltas are needed. This only sounds easier than
8019 it is. :-)
8020 (fixup_virtual_upcast_offsets): Change to reflect new calling
8021 convention for expand_upcast_fixups.
8022
8023Fri Jan 19 12:23:08 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
8024
8025 * decl2.c (grokbitfield): Strip the NOPs from WIDTH before we
8026 check that it's usable as the bitfield width.
8027
8028Wed Jan 17 21:22:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
8029
8030 * decl2.c (grokfield): Call cplus_decl_attributes with the attrlist.
8031 Pass a null tree to grokdeclarator for its ATTRLIST arg, since it's
8032 only ever used for functions in it.
8033
8034Wed Jan 17 12:10:38 1996 Jason Merrill <jason@yorick.cygnus.com>
8035
8036 * parse.y (qualified_type_name): Use the TYPE_DECL, not the type.
d11ad92e 8037 (nested_type): Likewise.
45537677
MS
8038 (nested_name_specifier): Use lastiddecl.
8039
8040 * decl.c (grokdeclarator): Adjust accordingly.
d11ad92e
MS
8041 * init.c (expand_member_init): Likewise.
8042 * parse.y (base_class): Likewise.
8043 * typeck2.c (build_functional_cast): Likewise.
45537677
MS
8044
8045 * typeck2.c (build_functional_cast): Fill in name after we've
8046 checked for non-aggr type.
8047
be99da77
MS
8048Wed Jan 17 10:18:01 1996 Mike Stump <mrs@cygnus.com>
8049
8050 * decl2.c (warn_pointer_arith): Default to on.
8051
8052Tue Jan 16 12:45:38 1996 Jason Merrill <jason@yorick.cygnus.com>
8053
8054 * lex.c (is_rid): New function.
8055 * decl.c (grokdeclarator): Diagnose reserved words used as
8056 declarator-ids.
8057
8058Tue Jan 16 11:39:40 1996 Jason Merrill <jason@yorick.cygnus.com>
8059
8060 * tree.c (get_decl_list): Don't lose cv-quals.
8061
8062 * decl.c (grokdeclarator): Fix SCOPE_REF handling and diagnose
8063 typespecs used as declarator-ids.
8064
8065Tue Jan 16 11:09:42 1996 Mike Stump <mrs@cygnus.com>
8066
8067 * decl.c (poplevel): When poping a level, don't give a warning for
8068 any subblocks that already exist.
8069
8070Tue Jan 16 00:25:33 1996 Jason Merrill <jason@yorick.cygnus.com>
8071
8072 * typeck.c (build_object_ref): Finish what I started.
8073
8074 * parse.y (qualified_type_name): Don't check TYPE_BUILT_IN.
8075
8076 * decl2.c (constructor_name_full): Handle TEMPLATE_TYPE_PARMs.
8077
8078 * decl.c (grokdeclarator): Also accept TEMPLATE_TYPE_PARM as a
9e9ff709 8079 scope.
be99da77
MS
8080
8081Mon Jan 15 16:19:32 1996 Jason Merrill <jason@yorick.cygnus.com>
8082
8083 * decl.c (xref_tag): Handle passing a type in directly.
8084
8085 * parse.y (qualified_type_name): Pull out the type.
d11ad92e 8086 (nested_type): Likewise.
be99da77
MS
8087 Take types directly instead of as identifiers.
8088 * call.c (build_scoped_method_call): Take types directly instead of
9e9ff709 8089 as identifiers.
d11ad92e
MS
8090 * decl.c (xref_basetypes): Likewise.
8091 * init.c (expand_member_init): Likewise.
8092 (build_member_call): Likewise.
8093 (build_offset_ref): Likewise.
8094 * typeck2.c (build_scoped_ref): Likewise, remove bogus code.
8095 * method.c (do_build_assign_ref): Likewise.
be99da77
MS
8096 * decl.c (grokdeclarator): Handle a type appearing as the
8097 declarator-id for constructors.
8098 * method.c (do_build_copy_constructor): current_base_init_list now
8099 uses the types directly, not their names.
d11ad92e
MS
8100 * init.c (sort_base_init): Likewise.
8101 (expand_member_init): Likewise.
be99da77 8102 * init.c (is_aggr_type): New function, like is_aggr_typedef.
be99da77 8103
d11ad92e 8104Mon Jan 15 08:45:01 1996 Jeffrey A Law <law@cygnus.com>
be99da77
MS
8105
8106 * tree.c (layout_basetypes): Call build_lang_field_decl instead
8107 of build_lang_decl if first arg is a FIELD_DECL.
be99da77
MS
8108
8109Thu Jan 11 14:55:07 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
8110
8111 * decl.c (cp_finish_decl): Only clear TREE_USED if DECL_NAME is
8112 non-empty.
8113 * except.c (expand_start_catch_block): Set TREE_USED to avoid
8114 warnings about the catch handler.
8115
8116Mon Jan 8 17:35:12 1996 Jason Merrill <jason@yorick.cygnus.com>
8117
8118 * typeck.c (build_modify_expr): Use a COMPOUND_EXPR instead of
9e9ff709 8119 expand_target_expr.
be99da77
MS
8120
8121Thu Jan 4 12:30:32 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
8122
8123 Fix access control to use trees rather than integers.
8124 * class.c (access_{default, public, protected, private,
8125 default_virtual, public_virtual, private_virtual}_node): Add
8126 definitions.
8127 (init_class_processing): Do creation of those nodes.
8128 * cp-tree.h (access_type): Delete enum decl.
8129 (access_{default, public, protected, private, default_virtual,
8130 public_virtual, private_virtual}_node): Add decls.
8131 (compute_access): Change return type.
8132 * search.c (compute_access): Have tree return type, instead of enum.
8133 (lookup_field): Declare THIS_V and NEW_V to be tree nodes.
8134 * lex.c (real_yylex): Use yylval.ttype for giving the value of the
8135 access_* node for each of RID_{PUBLIC, PRIVATE, PROTECTED}.
8136 * parse.y (VISSPEC): Make ttype rather than itype.
8137 (base_class_access_list): Likewise.
8138 * *.[cy]: Change all refs of `access_public' to `access_public_node',
8139 etc.
8140 * call.c (build_method_call): Make ACCESS be a tree.
8141 * class.c (alter_access, finish_struct_1, filter_struct): Likewise.
8142 * cvt.c (convert_to_aggr): Likewise.
8143 * init.c (build_offset_ref, resolve_offset_ref, build_delete):
8144 Likewise.
8145 * method.c (hack_identifier): Likewise.
8146 * typeck.c (build_component_ref_1, build_component_ref): ): Likewise.
8147
8148Thu Jan 4 11:02:20 1996 Mike Stump <mrs@cygnus.com>
8149
8150 * typeck.c (pointer_int_sum, pointer_diff): Make code agree with C
8151 frontend, and make it more consistent with respect to
8152 warn_pointer_arith.
8153
8154Tue Jan 2 00:13:38 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
8155
8156 * decl.c (pushdecl): Check for duplicate parameter names.
8157
8158Wed Jan 3 09:25:48 1996 Mike Stump <mrs@cygnus.com>
8159
8160 * decl.c (expand_static_init): Call assemble_external for atexit.
8161
8162Wed Jan 3 07:55:19 1996 Mike Stump <mrs@cygnus.com>
8163
8164 * except.c (do_unwind): Remove some generated dead code.
8165 (eh_outer_context): New routine, factor out some common code from
8166 expand_builtin_throw and end_eh_unwinder. Add code to do return
8167 address masking for the PA.
8168 (expand_builtin_throw): Use eh_outer_context instead of open coding
8169 it here.
d11ad92e 8170 (end_eh_unwinder): Likewise.
be99da77
MS
8171
8172Tue Jan 2 17:00:56 1996 Mike Stump <mrs@cygnus.com>
8173
8174 * except.c (expand_throw): Call assemble_external for __empty, if we
8175 use it.
8176
21451173
MS
8177Thu Dec 28 11:13:15 1995 Mike Stump <mrs@cygnus.com>
8178
8179 * except.c (expand_builtin_throw): Use RETURN_ADDR_OFFSET instead of
8180 NORMAL_RETURN_ADDR_OFFSET.
d11ad92e 8181 (end_eh_unwinder): Likewise.
21451173
MS
8182
8183Wed Dec 27 22:18:16 1995 Mike Stump <mrs@cygnus.com>
8184
8185 * gc.c (build_dynamic_cast): Make sure we don't cast away const
8186 when dealing with references, and make sure we handle dynamic
8187 casting to a cv qualified reference.
8188
8189Thu Dec 21 23:50:35 1995 Mike Stump <mrs@cygnus.com>
8190
8191 * except.c (struct eh_context): New structure top hold eh context
8192 information.
8193 (push_eh_context): New routine.
d11ad92e 8194 (pop_eh_context): Likewise.
21451173 8195 * decl.c (push_cp_function_context): Use them.
d11ad92e 8196 (pop_cp_function_context): Likewise.
21451173
MS
8197
8198Wed Dec 20 12:42:51 1995 Jason Merrill <jason@yorick.cygnus.com>
8199
8200 * decl2.c (finish_file): Also prune uninteresting functions in the
8201 inline emission loop.
8202
d11ad92e 8203Wed Dec 20 02:32:07 1995 Jeffrey A Law <law@cygnus.com>
21451173
MS
8204
8205 * sig.c (build_signature_table_constructor): Mark functions
8206 in the signature as referenced.
8207
8208Tue Dec 19 22:36:56 1995 Jason Merrill <jason@yorick.cygnus.com>
8209
8210 * decl2.c (finish_file): Do all the vtable/synthesis stuff before
8211 the inline emission stuff.
8212
72b7eeff
MS
8213Mon Dec 18 15:51:33 1995 Jason Merrill <jason@yorick.cygnus.com>
8214
8215 * cp-tree.h, decl2.c (flag_weak): New flag to control the use of
9e9ff709 8216 weak symbols.
72b7eeff
MS
8217 * lang-options.h: Add -f{no-,}weak.
8218 * decl.c (init_decl_processing): If the target does not support weak
8219 symbols, don't use them.
8220 * decl2.c, pt.c: s/SUPPORTS_WEAK/flag_weak/.
8221
8222Sun Dec 17 21:13:23 1995 Rusty Russell <rusty@adelaide.maptek.com.au>
8223
8224 * init.c (expand_member_init): warning for base init after members.
8225
72b7eeff
MS
8226Fri Dec 15 15:32:18 1995 Jason Merrill <jason@yorick.cygnus.com>
8227
8228 * cvt.c (build_expr_type_conversion): Don't convert to a reference
8229 type.
8230
8231Thu Dec 14 16:05:58 1995 Mike Stump <mrs@cygnus.com>
8232
8233 * method.c (report_type_mismatch): Improve wording for volatile
8234 mismatches.
8235
8236Thu Dec 14 14:16:26 1995 Mike Stump <mrs@cygnus.com>
8237
8238 * init.c (expand_aggr_init_1): Use expand_aggr_init_1 instead of
9e9ff709 8239 expand_assignment, as the later doesn't handle things that have
72b7eeff
MS
8240 copy constructors well. The compiler would do bitwise copying,
8241 instead of ctor calling in some cases.
8242
8243Wed Dec 13 17:05:54 PST 1995 Paul Eggert <eggert@twinsun.com>
8244
8245 * g++.c (my_strerror): Return "cannot access" if errno is 0.
8246 (pfatal_with_name, perror_exec): Don't assume that
8247 the returned value from my_strerror contains no '%'s.
8248 (concat): Remove.
8249 (sys_nerror): Declare only if HAVE_STRERROR is not defined.
8250
8251Wed Dec 13 16:22:38 1995 Jason Merrill <jason@yorick.cygnus.com>
8252
8253 Lose CLASSTYPE_METHODS/DECL_NEXT_METHOD chain; make
8254 TYPE_METHODS/TREE_CHAIN mean what they used to.
8255 * decl2.c (constructor_name_full): Refer to CLASSTYPE_METHOD_VEC
8256 instead of TYPE_METHODS.
8257 * decl.c (duplicate_decls): Lose references to DECL_NEXT_METHOD.
d11ad92e 8258 * tree.c (tree_copy_lang_decl_for_deferred_output): Likewise.
72b7eeff
MS
8259 * cp-tree.h (CLASSTYPE_METHODS): Lose.
8260 (CLASSTYPE_METHOD_VEC): Point to lang_spec->methods instead of
8261 TYPE_METHODS.
8262 (struct lang_decl): Lose next_method field.
8263 (DECL_NEXT_METHOD): Lose.
8264 * class.c (finish_struct_methods): Don't mess with TYPE_METHODS.
8265 (finish_struct): Just use TYPE_METHODS; we don't need fn_fields
8266 anymore.
8267 (finish_struct_methods): Don't mess with the TREE_CHAINs in
8268 fn_fields.
8269
8270 * search.c (add_conversions): Don't use TREE_CHAIN to traverse method
8271 vector.
8272
8273 * call.c (build_method_call): Synthesize here even when not inlining.
d11ad92e 8274 * typeck.c (build_function_call_real): Likewise.
72b7eeff
MS
8275
8276Wed Dec 13 15:02:39 1995 Ian Lance Taylor <ian@cygnus.com>
8277
8278 * cp/lex.c (check_newline): If DBX_DEBUGGING_INFO and write_symbols
8279 == DBX_DEBUG, call dbxout_start_new_source_file and
8280 dbxout_resume_previous_source_file when appropriate.
8281
8282Tue Dec 12 20:38:55 1995 Mike Stump <mrs@cygnus.com>
8283
8284 * except.c (start_anon_func): Push to the top level.
8285 (end_anon_func): Pop from the top level.
8286
8287Mon Dec 11 18:56:14 1995 Mike Stump <mrs@cygnus.com>
8288
8289 * cp-tree.h (build_cleanup): New routine to build cleanups.
8290 * decl.c (expand_static_init): Use build_cleanup to build a cleanup
8291 call at ctor time and use atexit to run it later.
8292 * decl2.c (build_cleanup): New routine, taken from finish_file.
8293 (finish_file): Use build_cleanup instead, and don't put function
8294 local statics in global dtor list.
8295
8296Wed Dec 6 14:34:29 1995 Mike Stump <mrs@cygnus.com>
8297
8298 * except.c (expand_throw): Ensure that we have cleanups, if we try
8299 and expand cleanups.
8300
8301Wed Dec 6 11:48:21 1995 Mike Stump <mrs@cygnus.com>
8302
8303 * except.c (expand_throw): Add logic to manage dynamic cleanups for
8304 the EH object.
8305 (expand_end_catch_block): Use the magic of expand_goto, instead of
8306 emit_jump so that we get the cleanup for any catch clause parameter
8307 and the cleanup for the exception object. Update to reflect label
8308 changes.
8309 (push_eh_cleanup): New routine to register a cleanup for an
8310 exception object.
9e9ff709 8311 (empty_fndecl): Used to default cleanup actions to
72b7eeff
MS
8312 nothing.
8313 (init_exception_processing): Setup empty_fndecl. Setup
8314 saved_cleanup.
8315 (expand_start_catch_block): Update to reflect label changes. Call
8316 push_eh_object to register the cleanup for the EH object.
8317 (start_anon_func): New routine to start building lambda expressions
8318 from trees.
8319 (end_anon_func): New routine to end them.
8320 (struct labelNode): Change so that we can use tree labels, or rtx
8321 labels.
8322 (saved_cleanup): Object to check for dynamic cleanups for the
8323 exception handling object.
8324 (push_label_entry): Change so that we can use tree labels, or rtx
8325 labels.
d11ad92e
MS
8326 (pop_label_entry): Likewise.
8327 (top_label_entry): Likewise.
72b7eeff
MS
8328 (expand_start_all_catch): Use tree label instead of rtx label, so
8329 that we can get the magic of expand_goto.
8330 (expand_end_all_catch): Update to reflect label changes.
8331
8332 * class.c (build_vfn_ref): Remove building_cleanup logic, as we now
8333 use UNSAVE_EXPRs.
8334 typeck.c (get_member_function_from_ptrfunc): Remove remnants of
8335 building_cleanup logic, as we now use UNSAVE_EXPRs.
8336 * cp-tree.h (unsave_expr): Declare it.
8337 * decl.c (building_cleanup): Remove.
8338 (maybe_build_cleanup): Remove building_cleanup logic, and use
8339 UNSAVE_EXPR instead.
8340
8341Sun Dec 3 01:34:58 1995 Mike Stump <mrs@cygnus.com>
8342
8343 * gc.c (build_t_desc): Update error message to say <typeinfo>.
8344
8345Thu Nov 30 12:30:05 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
8346
8347 * decl.c (pushdecl): Only warn about shadowing a local variable if
8348 warn_shadow is true.
8349
8350Sun Nov 26 16:06:55 1995 Rusty Russell <rusty@adelaide.maptek.com.au>
8351
8352 * typeck.c (build_binary_op_nodefault): Added warning about
8353 comparisons between different enum types with -Wall, unless
8354 -fenum-int-equiv set.
8355
8356Wed Nov 22 15:44:02 1995 Mike Stump <mrs@cygnus.com>
8357
8358 * class.c (finish_struct_1): Skip down to the inner type in
8359 multidimensional arrays. Ensures ctors will be made for types that
8360 need constructing.
8361
8362Wed Nov 22 14:19:22 1995 Mike Stump <mrs@cygnus.com>
8363
8364 * decl.c (last_dtor_insn): New to track the last compiler generated
8365 insn in a dtor.
8366 (store_parm_decls): Set it.
8367 (finish_function): Use it to see if the dtor is empty. Avoid doing
8368 vtable setup all the time, if we can.
8369 (struct cp_function): Add last_dtor_insn.
8370 (push_cp_function_context): Save it.
8371 (pop_cp_function_context): Restore it.
8372
8373Wed Nov 22 11:52:19 1995 Paul Russell <Rusty.Russell@adelaide.maptek.com.au>
8374
8375 * typeck.c (build_unary_op): Set TREE_NO_UNUSED_WARNING to avoid
9e9ff709 8376 warnings.
72b7eeff
MS
8377
8378Tue Nov 21 17:15:23 1995 Mike Stump <mrs@cygnus.com>
8379
8380 * typeck.c (expand_target_expr): Make sure targets get put into the
8381 current temp_slot_level, so that the free_temp_slots call will reuse
8382 them.
8383
8384Tue Nov 21 13:32:03 1995 Mike Stump <mrs@cygnus.com>
8385
8386 * class.c (finish_struct_1): Delay delta fixups for virtual bases
8387 until after we have done the hard virtuals, to avoid a bogus `every
8388 virtual function must have a unique final overrider' for virtual
8389 functions that are only overridden by hard virtuals.
8390
8391Thu Nov 9 13:35:30 1995 Jason Merrill <jason@yorick.cygnus.com>
8392
8393 * pt.c (do_function_instantiation): Don't try to find a file-scope
9e9ff709 8394 template for a member function.
72b7eeff
MS
8395
8396Tue Nov 14 06:20:35 1995 Mike Stump <mrs@cygnus.com>
8397
8398 * g++.c (main): Add handling of -nodefaultlibs.
8399
8400Mon Nov 13 15:45:34 1995 Mike Stump <mrs@cygnus.com>
8401
8402 * cp-tree.h (INDIRECT_BIND): Add a way for the frontend to
8403 distinguish between direct bindings of reference variables, and
8404 indirect bindings of reference variables.
8405 * cvt.c (build_up_reference): Use it.
8406 * typeck.c (convert_arguments): Use it to indicate this is an
8407 indirect binding.
8408 * decl.c (cp_finish_decl): Ensure that we reuse stack slots as fast
8409 as they are unused.
d11ad92e
MS
8410 (expand_static_init): Likewise.
8411 (cplus_expand_expr_stmt): Likewise.
8412 * decl2.c (finish_file): Likewise.
8413 * init.c (perform_member_init): Likewise.
8414 (emit_base_init): Likewise.
8415 (expand_aggr_vbase_init_1): Likewise.
72b7eeff 8416
72b7eeff
MS
8417Fri Nov 10 09:18:09 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
8418
8419 * decl.c (push_namespace): Rewrite to use build_lang_decl, so we
8420 get a DECL_LANG_SPECIFIC node.
8421 * cp-tree.h (lang_decl_flags): Add new member `level'.
8422 (NAMESPACE_LEVEL): Don't use decl.arguments, instead use the
8423 decl_flags level member.
8424
8425Mon Nov 6 18:36:13 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
8426
8427 * call.c (build_method_call): Make sure instance has a
8428 TYPE_LANG_SPECIFIC node before we dive into it.
8429
d11ad92e 8430Sat Nov 4 20:01:52 1995 Jason Molenda <crash@phydeaux.cygnus.com>
72b7eeff
MS
8431
8432 * method.c (make_thunk): use TREE_SET_CODE to set thunk's tree code.
8433
8434Thu Nov 2 17:56:57 1995 Mike Stump <mrs@cygnus.com>
8435
8436 * decl.c (duplicate_decls): When smashing decls, smash staticness in
8437 the usual way.
8438
8439Thu Nov 2 16:44:02 1995 Mike Stump <mrs@cygnus.com>
8440
8441 * decl.c (poplevel): Handle the merging of subblocks of cleanups
8442 when finishing blocks that have already been created (usually due to
8443 the fixup goto code). Fixes bad debugging information.
8444
8445Wed Nov 1 12:33:53 1995 Jason Merrill <jason@yorick.cygnus.com>
8446
8447 * method.c (hack_identifier): Don't abort when we get a TREE_LIST
8448 that's not a list of overloaded functions.
8449
8450Wed Nov 1 11:38:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
8451
8452 * decl2.c (mark_vtable_entries): Check DECL_LANG_SPECIFIC on fn
8453 before trying to use DECL_ABSTRACT_VIRTUAL_P.
8454
8455Tue Oct 31 11:56:55 1995 Jason Merrill <jason@yorick.cygnus.com>
8456
8457 * decl2.c (mark_used): New function for hooking into setting of
8458 TREE_USED on decls.
8459 * call.c (build_method_call): Use it.
d11ad92e
MS
8460 * class.c (instantiate_type): Likewise.
8461 * init.c (build_offset_ref): Likewise. Don't call assemble_external
72b7eeff 8462 for all like-named functions.
d11ad92e 8463 * method.c (hack_identifier): Likewise.
72b7eeff
MS
8464 (emit_thunk): Don't call assemble_external.
8465 (make_thunk): Create thunk as a FUNCTION_DECL so that it
8466 gets the right mode and ENCODE_SECTION_INFO works.
8467
8468 * parse.y: Use mark_used. Pass operator names to do_identifier.
8469 * lex.c (do_identifier): Handle operator names.
8470
8471 * decl2.c (grokclassfn): Tweak __in_chrg attributes.
8472
72b7eeff
MS
8473Thu Oct 26 16:45:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
8474
8475 * errfn.c: Include stdio.h.
8476 (cp_sprintf): Take out decl of sprintf, and cast sprintf to errorfn*.
8477
8478Wed Oct 25 18:58:41 1995 Mike Stump <mrs@cygnus.com>
8479
8480 * typeck2.c (digest_init): Always convert initializers to the
8481 right type.
8482
8483Wed Oct 25 13:25:24 1995 Mike Stump <mrs@cygnus.com>
8484
8485 * init.c (member_init_ok_or_else): Don't allow member initializers
8486 for indirect members, as it is invalid.
8487
8488Wed Oct 25 11:35:28 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
8489
8490 * decl.c (grokdeclarator): Don't allow `friend signed ()'.
8491
8492Fri Oct 20 10:30:59 1995 Mike Stump <mrs@cygnus.com>
8493
8494 * parse.y (for.init.statement): Catch compound statements inside for
8495 initializations, if we're being pedantic.
8496
8497Fri Oct 20 10:03:42 1995 Mike Stump <mrs@cygnus.com>
8498
8499 * decl.c (lookup_tag): Return NULL_TREE if we don't find what we are
8500 looking for.
8501
8502Thu Oct 19 14:26:10 1995 Mike Stump <mrs@cygnus.com>
8503
8504 * error.c (dump_expr): Don't core dump when a boolean expression is
8505 used as a default argument.
8506
8507Thu Oct 19 10:36:30 1995 Jason Merrill <jason@yorick.cygnus.com>
8508
8509 * class.c (finish_struct_bits): Check aggregate_value_p instead of
9e9ff709 8510 RETURN_IN_MEMORY.
72b7eeff
MS
8511
8512Wed Oct 18 18:12:32 1995 Jason Merrill <jason@yorick.cygnus.com>
8513
8514 * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE on a
8515 BLKmode type that would otherwise be returned in registers.
8516
8517Mon Oct 16 12:32:19 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
8518
8519 * g++.c (WITHLIBC): New macro.
8520 (main): Declare saw_libc. Use WITHLIBC if `-lc' was used; set
8521 saw_libc and pass it at the end if it was set.
8522
8523Wed Oct 11 16:30:34 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
8524
8525 * parse.y (fn.def1): Call split_specs_attrs in
8526 declmods notype_declarator case.
7b8dd497
JL
8527\f
8528Use a consistent time stamp format in ChangeLog entries.
8529Not everyone has Emacs 20 yet, so stick with Emacs 19 format for now.
8530
8531Local Variables:
8532add-log-time-format: current-time-string
8533End:
This page took 1.133822 seconds and 5 git commands to generate.