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