summaryrefslogtreecommitdiff
path: root/gcc/cp/ChangeLog-1993
blob: 45ca571fae846f90ab81109a9e93a7b1b9894b5c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
Tue Dec 28 21:10:03 1993  Mike Stump  <mrs@cygnus.com>

	* cp-init.c (expand_vec_init): Remove comptypes test, as it is too
	harsh here.

Tue Dec 28 13:42:22 1993  Mike Stump  <mrs@cygnus.com>

	* cp-pt.c (do_pending_expansions): Decide to expand a template
	member function, based upon it's class type, not the class type of
	the first place it was declared.

Tue Dec 28 05:42:31 1993  Mike Stump  <mrs@cygnus.com>

	* cp-class.c (is_normal): New routine, use to determine when the
	given binfo is the normal one.  (The one that should have the simple
	vtable name.)
	* cp-class.c (modify_other_vtable_entries): Use DECL_ASSEMBLER_NAME
	to check if two fndecls are `the same'.  Sometimes this routine can
	modify the main vtable, and normal should be 1, in that case, so use
	is_normal() to determine if this is the main vtable for the class.
	Don't recurse down virtual bases, as they are shared, and we take
	care of them elsewhere.
	* cp-class.c (modify_vtable_entries): If we have already updated the
	vtable with the new virtual, don't do it again.
	* cp-class.c (finish_struct): Set CLASSTYPE_VFIELD_PARENT as
	appropriate.  Do virtual function overriding in virtual bases, after
	normal overriding, so that the base function list in DECL_VINDEX is
	not overridden, before we have a chance to run through the list.
	Use DECL_ASSEMBLER_NAME to check if two fndecls are `the same'.
	Make sure we pass the right address into modify_vtable_entries.
	* cp-tree.h (CLASSTYPE_VFIELD_PARENT): New field to indicate which
	binfo is the one that has the vtable that we based our vtable on.

Fri Dec 24 09:40:52 1993  Michael Tiemann  <tiemann@blues.cygnus.com>

	* cp-typeck.c (c_expand_start_case): Use default_conversion to
	convert expression from reference type if necessary.

Wed Dec 22 17:58:43 1993  Jason Merrill  <jason@deneb.cygnus.com>

	* cp-typeck.c (build_unary_op): Make sure that it's a TREE_LIST before
	trying to read its TREE_VALUE.

	* cp-class.c (finish_struct_methods): Clear DECL_IN_AGGR_P here.
	(finish_struct): Instead of here.

Tue Dec 21 14:34:25 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* cp-tree.c (list_hash_lookup_or_cons): Make sure the type doesn't
	have TYPE_PTRMEMFUNC_P set before we try to build its
	CLASSTYPE_ID_AS_LIST.
	(get_decl_list): Likewise, when trying to read it.

	* cp-tree.h (VTABLE_NAME): No def with NO_{DOLLAR,DOT} defined.
	(VTABLE_NAME_P): Use it instead of VTABLE_NAME_FORMAT.

Mon Dec 20 13:35:03 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* cp-typeck.c (rationalize_conditional_expr): New function.
	(unary_complex_lvalue): Use it.
	(build_modify_expr): Use it, since trying to do an ADDR_EXPR of it
	with build_unary_op won't cut it.  Don't wrap the COND_EXPR with a
	SAVE_EXPR either.

	* cp-decl2.c (explicit_warn_return_type): Deleted variable.
	(lang_decode_option): Set warn_return_type, not explicit_*, for
	-Wreturn-type and -Wall.  This is what rest_of_compilation uses to
	decide if it should go into jump_optimize or not.
	* cp-tree.h (explicit_warn_return_type): Deleted.
	* cp-decl.c (grokdeclarator): Use warn_return_type, not explicit_*.
	(finish_function): Also complain about no return in a non-void fn if
	we're being pedantic (don't rely on use of -Wreturn-type).

Fri Dec 17 15:45:46 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* cp-decl.c (grokdeclarator): Forbid declaration of a function as
	static if it's being done inside another function.

	* cp-search.c (compute_visibility): Check for friendship both ways.

Fri Dec 17 14:28:25 1993  Jason Merrill  <jason@deneb.cygnus.com>

	* cp-cvt.c (build_default_binary_type_conversion): Make error
	messages more helpful.

	* cp-error.c (op_as_string): New function, returns "operator =="
	given EQ_EXPR or suchlike.

Fri Dec 17 13:28:11 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* cp-call.c (print_n_candidates): New function.
	(build_overload_call_real): Use it when we complain about a call
	being ambiguous.

Fri Dec 17 12:41:17 1993  Jason Merrill  <jason@deneb.cygnus.com>

	* cp-call.c (build_method_call): Fix checking for static call
	context.

	* cp-method.c (build_opfncall): Call build_indirect_ref on argument
	to operator new.

	* cp-init.c (build_new): Don't mess with rval when building
	indirect ref.

Thu Dec 16 16:48:05 1993  Kung Hsu  <kung@cirdan.cygnus.com>

	* cp-lex.c (default_assign_ref_body): Add check when TYPE_NESTED_
	NAME(type) may not be exist.  It's not a problem for old compiler.

Thu Dec 16 14:46:06 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* cp-tree.h (CLASSTYPE_ALTERS_VISIBILITIES_P): Delete macro, it's
	never used for anything.
	(struct lang_type, member type_flags): Delete field
	`alters_visibility', and up `dummy' by 1.
	* cp-class.c (finish_base_struct): Delete code that copies the
	setting of CLASSTYPE_ALTERS_VISIBILITIES_P.
	(finish_struct): Delete code that sets it.

Thu Dec 16 14:44:39 1993  Jason Merrill  <jason@deneb.cygnus.com>

	* cp-decl.c, cp-init.c, cp-typeck.c: Fix arguments to
	build_method_call that I messed up before.

	* cp-search.c (get_base_distance): If protect > 1, allow immediate
	private base.

	* cp-class.c (finish_base_struct): Set cant_synth_* correctly.
	(finish_struct): Likewise.  Well, nigh-correctly; it won't deal
	properly with the case where a class contains an object of an
	ambiguous base class which has a protected op=.  Should be fixed
	when the access control code gets overhauled.
	(finish_struct_methods): Set TYPE_HAS_NONPUBLIC_* correctly.

Thu Dec 16 12:17:06 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* cp-lex.c (real_yylex): Turn the code back on that deals with
	__FUNCTION__ and __PRETTY_FUNCTION__.  Don't use lookup_name, to
	avoid the ambiguity problems that led to it being turned off in the
	first place.

	* cp-method.c (hack_identifier): Also check for a TYPE_PTRMEMFUNC_P
	to see if something is a method.

Wed Dec 15 18:35:58 1993  Mike Stump  <mrs@cygnus.com>

	* cp-typeck.c (build_modify_expr): Avoid error messages on small
	enum bit fields.
	* cp-typeck.c (convert_for_assignment): Add missing argument to
	cp_warning and cp_pedwarn calls.

Wed Dec 15 18:25:32 1993  Jason Merrill  <jason@deneb.cygnus.com>

	* cp-parse.y (member_init): ANSI C++ doesn't forbid old-style base
	initializers; it's just anachronistic.

	* cp-decl.c (finish_decl): Don't require external-linkage arrays
	to have a complete type at declaration time when pedantic.

Tue Dec 14 11:37:23 1993  Jason Merrill  <jason@deneb.cygnus.com>

	* cp-decl.c (pushdecl): Don't set DECL_CONTEXT if it's already set.

	* cp-call.c (build_method_call): Don't dereference pointer given
	as instance.

	* cp-decl.c (finish_function): Don't pass pointer to
	build_method_call.
	(finish_function): Likewise.

	* cp-typeck.c (build_x_function_call): Likewise.

	* cp-method.c (build_component_type_expr): Likewise.

	* cp-init.c (build_member_call): Likewise.
	(build_new): Likewise.

Mon Dec 13 18:04:33 1993  Kung Hsu  <kung@cirdan.cygnus.com>

	* cp-decl.c (xref_tag): Fix regression created by changes made
	in Dec. 7 1993.
	* cp-decl.c (xref_defn_tag): Fix parallel nested class problem.

Fri Dec 10 12:40:25 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* cp-call.c (compute_conversion_costs_ansi) [DEBUG_MATCHING]: Print
	out the final evaluation of the function, so we can see if ELLIPSIS,
	USER, and EVIL were set at the end.

	* cp-call.c (convert_harshness_ansi): When the parm isn't an lvalue,
	only go for setting TRIVIAL_CODE if we are dealing with types that
	are compatible.

Thu Dec  9 18:27:22 1993  Mike Stump  <mrs@cygnus.com>

	* cp-decl.c (flag_huge_objects): New flag to allow large objects.
	* toplev.c (lang_options): Likewise.
	* cp-decl2.c (flag_huge_objects, lang_f_options): Likewise.
	* cp-decl.c (delta_type_node): New type for delta entries.
	* cp-tree.h (delta_type_node): Likewise.
	* cp-decl.c (init_decl_processing): Setup delta_type_node.
	* cp-decl.c (init_decl_processing, build_ptrmemfunc_type): Use
	delta_type_node instead of short_integer_type_node.
	* cp-class.c (build_vtable_entry): Likewise.

Thu Dec  9 16:19:05 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* cp-tree.h (OPERATOR_TYPENAME_P): Define outside of
	NO_{DOLLAR,DOT} macro checks, so it always gets defined.
	(VTABLE_NAME_P): Define for NO_DOT && NO_DOLLAR_IN_LABEL.

Wed Dec  8 17:38:06 1993  Mike Stump  <mrs@cygnus.com>

	* cp-decl.c (finish_decl): Make sure things that can go into
	"common", do go into common, if -fcommon is given.

Wed Dec  8 13:01:54 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* cp-call.c (print_harshness) [DEBUG_MATCHING]: New function.
	(compute_conversion_costs_ansi) [DEBUG_MATCHING]: Print out
	argument matching diagnostics to make instantly clear what the
	compiler is doing.

	* cp-call.c (convert_harshness_ansi): If the parm isn't an lvalue,
	then check to see if the penalty was increased due to
	signed/unsigned mismatch, and use a TRIVIAL_CODE if it wasn't.

Tue Dec  7 18:29:14 1993  Kung Hsu  <kung@cirdan.cygnus.com>

	* cp-decl.c (xref_tag, pushtag): Fix nested class search/resolution
	problem.

Tue Dec  7 16:09:34 1993  Jason Merrill  <jason@deneb.cygnus.com>

	* cp-class.c (finish_struct): Before synthesizing methods, if no
	methods have yet been declared then set nonprivate_method.  Don't
	set non_private method after synthesizing a method.

	* cp-lex.c (extract_interface_info): If flag_alt_external_templates
	is set, tie emitted code to the location of template instantiation,
	rather than definition.

	* cp-tree.h: Declare flag_alt_external_templates.

	* cp-decl2.c (lang_decode_option): Support -falt-external-templates.

	* toplev.c (lang_options): Likewise.

Mon Oct  4 12:50:02 1993  Chip Salzenberg  <chip@fin.uucp>

	[changes propagated from 930810 snapshot]
	* cp-decl.c (init_decl_processing): Make long long available for use
	as SIZE_TYPE and PTRDIFF_TYPE.
	(finish_decl): Allow file-scope static incomplete array.
	(grokdeclarator): Don't pass on const and volatile fron function
	value type to function type.
	Warn here for volatile fn returning non-void type.
	* cp-parse.y (attrib): Accept attributes `volatile' with alias
	`noreturn', and `const'.
	* cp-typeck.c (default_conversion): Don't lose const and volatile.
	(build_binary_op_nodefault): Generate pedantic warning for comparison
	of complete pointer type with incomplete pointer type.
	(build_c_cast): Be careful that null pointer constant be INTEGER_CST.

Tue Dec  7 10:46:48 1993  Jason Merrill  <jason@deneb.cygnus.com>

	* cp-init.c (expand_vec_init): When creating a temporary for copying
	arrays, use the type of the source, not the target.

	* cp-cvt.c (convert): Pass an argument for errtype to
	convert_to_reference.

	* cp-error.c (dump_expr, COMPONENT_REF & CALL_EXPR): Deal with
	methods, -> and `this'.

Mon Dec  6 17:12:33 1993  Jason Merrill  <jason@deneb.cygnus.com>

	* cp-error.c (parm_as_string): New function; returns `this' or arg
	number.  Corresponds to %P.
	(dump_expr): Deal with method calls.

	* cp-cvt.c (convert_to_reference): Stop using warn_for_assignment.
	* cp-typeck.c (convert_for_assignment): Likewise.
	(warn_for_assignment): Lose.

Mon Dec  6 11:33:35 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* cp-call.c (ideal_candidate_ansi): Delete code that was never
	doing anything useful.  Instead, sort once, and DO NOT wipe
	out any codes with EVIL_CODE, since that's what we use as a
	marker for the end of the list of candidates.

	* cp-cvt.c (convert_to_aggr): Make sure to always set H_LEN.

Mon Dec  6 12:49:17 1993  Jason Merrill  <jason@deneb.cygnus.com>

	* cp-init.c (get_aggr_from_typedef): New function, like
	is_aggr_typedef but returns the _TYPE.

	* cp-call.c, cp-init.c, cp-method.c: Eradicate err_name.

Sun Dec  5 18:12:48 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* cp-lex.c (readescape): Pedwarn when a hex escape is out of range.

Thu Nov 25 23:50:19 1993  Chip Salzenberg  <chip@fin.uucp>

	Delay language context change until beginning of next decl.

	* cp-lex.h (c_header_level): Removed.
	(pending_lang_change): Declared.
	* cp-lex.c (c_header_level): Renamed from in_c_header, made static.
	(pending_lang_change): Defined.
	(check_newline): Rework code that recognizes line number and
	filename changes.  Instead of pushing and popping lang context,
	increment and decrement pending_lang_change.
	(do_pending_lang_change):  Push and pop lang context according
	to value of pending_lang_change.
	* cp-parse.y (extdefs): Use lang_extdef instead of extdef.
	(extdef): Same as extdef, but call do_pending_lang_change() first.

Mon Nov 15 15:39:15 1993  Chip Salzenberg  <chip@fin.uucp>

	* cp-typeck.c (build_binary_op_nodefault): Warn for ordered
	compare of ptr with 0 only if pedantic in both cases.

Thu Nov 25 13:31:37 1993  Chip Salzenberg  <chip@fin.uucp>

	Reinstate the below patch, which got lost in the Cygnus merge:
	Tue Nov 23 13:59:24 1993  Hallvard B Furuseth  (hbf@durin.uio.no)
	* cp-parse.y (maybe_type_qual): Don't fail to set $$.

Wed Nov 17 19:03:30 1993  Chip Salzenberg  <chip@fin.uucp>

	* cp-parse.y (attrib): Allow "ident(ident)" like the C front end.

Fri Oct 22 20:43:37 1993  Paul Eggert  <eggert@twinsun.com>

	* cp-lex.c (real_yylex): Diagnose floating point constants
	that are too large.

Wed Nov 17 19:10:37 1993  Chip Salzenberg  <chip@fin.uucp>

	* cp-type2.c (build_functional_cast): ARM page 16: When a class
	and an object, function or enumerator are declared in the same
	scope with the same name, the class name is hidden.

Wed Nov 17 19:07:18 1993  Chip Salzenberg  <chip@fin.uucp>

	* cp-call.c (convert_harshness_ansi): Distinguish float, double,
	and long double from each other when overloading.
	(compute_conversion_costs_{ansi,old}, build_method_call,
	build_overlay_call_real, convert_to_aggr): Always set and
	always use H_LEN member of candidate structure.

Mon Oct 11 23:10:53 1993  Chip Salzenberg  <chip@fin.uucp>

	* cp-decl.c (duplicate_decls): Note redeclarations of library
	functions, and generate distinct warnings for them.

Mon Oct  4 12:26:49 1993  Chip Salzenberg  <chip@fin.uucp>

	Support format warnings in G++.

	* cp-tree.h: Protect against multiple inclusion.
	Declare all public functions in c-common.c (copy from c-tree.h).
	(STDIO_PROTO): Define.
	(warn_format): Declare.
	(record_format_info): Remove declaration.
	* cp-decl.c (init_decl_processing): Call init_function_format_info.
	* cp-decl2.c (lang_decode_option): Make "-Wall" include warn_format.
	* cp-typeck.c (build_function_call_real): Call check_function_format.
	(record_format_info): Remove -- obsolete stub.

Sat Jul 24 12:04:29 1993  Chip Salzenberg  <chip@fin.uucp>

	* cp-decl.c (duplicate_decls): Don't warn for non-extern var decl
	following an extern one (for -Wredundant-decls).
	* cp-parse.y (primary): In statement expression case, if compstmt
	returns something other than a BLOCK, return it unchanged.

Thu Dec  2 20:44:58 1993  Chip Salzenberg  <chip@fin.uucp>

	* cp-decl.c (warn_extern_redeclared_static): New function made
	from code extracted from pushdecl.
	(duplicate_decls, pushdecl): Call new function.
	(lookup_name_current_level): Allow for IDENTIFIER_GLOBAL_VALUE
	to be a TREE_LIST when function is declared in 'extern "C" {}'.

Fri Dec  3 16:01:10 1993  Jason Merrill  <jason@deneb.cygnus.com>

	* cp-class.c (duplicate_tag_error): Use cp_error.
	(finish_base_struct): Check for ambiguity with direct base, and don't
	generate op= or copy ctor if it exists.

Fri Dec  3 15:32:34 1993  Kung Hsu  <kung@cirdan.cygnus.com>

	* cp-init.c (expand_member_init): When initializer name is null,
	don't try to build it now because emit_base_init will handle it.

Fri Dec  3 12:28:59 1993  Jason Merrill  <jason@deneb.cygnus.com>

	* cp-lex.c (init_lex): Initialize input_filename to "<internal>" for
	code such as ExceptionHandler::operator=.

Fri Dec  3 10:32:08 1993  Jason Merrill  <jason@deneb.cygnus.com>

	* cp-decl.c (grokdeclarator): Don't try to print out dname when
	complaining about arrays of references if decl_context==TYPENAME,
	since it will be null.

	* cp-decl2.c: Default to flag_ansi_overloading.

Thu Dec  2 18:05:56 1993  Kung Hsu  <kung@cirdan.cygnus.com>

	* cp-call.c (build_method_call): Use binfo from instance if it's
	different from binfo (basetype_path) passed from above.

Wed Nov 17 19:14:29 1993  Chip Salzenberg  <chip@fin.uucp>

	cp-error.c (dump_expr): Use unsigned chars to output a
	TREE_REAL_CST in hex.

Thu Dec  2 11:05:48 1993  Jason Merrill  <jason@deneb.cygnus.com>

	* cp-class.c (finish_struct): Fix typo in setting
	cant_synth_asn_ref.

	* cp-tree.h (TYPE_NESTED_NAME): New macro, does
	DECL_NESTED_TYPENAME (TYPE_NAME (NODE)).

	* cp-lex.c (default_copy_constructor_body): Change
	DECL_NAME (TYPE_NAME (btype)) to TYPE_NESTED_NAME (btype).
	(default_assign_ref_body): Likewise.
	(default_copy_constructor_body): Call operator= explicitly for
	base classes that have no constructor.

Thu Dec  2 10:47:15 1993  Michael Tiemann  <tiemann@blues.cygnus.com>

	* cp-call.c (build_method_call): If the instance variable is
	converted to error_mark_node when we're trying to convert it to the
	base type of a method we're looking up, return error_mark_node.

Thu Dec  2 10:41:16 1993  Torbjorn Granlund  <tege@cygnus.com>

	* cp-typeck.c (build_binary_op_nodefault): In *_DIV_EXPR *_MOD_EXPR
	cases, tests for unsigned operands by peeking inside a NOP_EXPR.

Wed Dec  1 13:33:34 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* cp-call.c (compute_conversion_costs_ansi): Use the size of struct
	harshness_code, not the size of short, for clearing out the
	ansi_harshness.

	* cp-call.c (print_candidates): New function.
	(build_method_call): When we had some candidates, but didn't get a
	usable match, don't report that we got an error with the first
	candidate.  Instead, say there were no matches, and list the
	candidates with print_candidates.  In the second pass, make sure we
	clear out ever_seen, so we can accurately count the number of
	functions that qualified.

Wed Dec  1 09:53:59 1993  Torbjorn Granlund  <tege@cygnus.com>

	* cp-typeck.c (build_binary_op_nodefault): Shorten for *_MOD_EXPR
	only if op1 is known to be != -1.
	(build_binary_op_nodefault): Handle *_DIV_EXPR likewise.

Tue Nov 30 14:07:26 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>

	* cp-method.c (hack_identifier): If the field itself is private, and
	not from a private base class, say so.

Mon Nov 29 03:00:56 1993  Jason Merrill  <jason@deneb.cygnus.com>

	* cp-decl.c (grokdeclarator): Always warn on initialization of
	const member.

Wed Nov 24 00:49:35 1993  Jason Merrill  <jason@deneb.cygnus.com>

	* cp-class.c (finish_struct): Set TYPE_GETS_CONST_* properly.
	(finish_base_struct): Set cant_synth_asn_ref properly.

	* cp-lex.c (cons_up_default_function): Add section for operator=.
	(default_assign_ref_body): New function, mostly cribbed from
	default_copy_constructor_body.

	* cp-class.c (base_info): Add members cant_synth_copy_ctor,
	cant_synth_asn_ref, no_const_asn_ref.
	(finish_base_struct): Update no_const_asn_ref, note that you should
	update cant_synth_*, propagate TYPE_GETS_ASSIGN_REF.
	(finish_struct): Add decls for cant_synth_*, no_const_asn_ref, and
	initialize them properly.  Set no_const_asn_ref properly.  Set
	cant_synth_* in some of the situations where they should be set.
	Propagate TYPE_GETS_ASSIGN_REF.  Use cant_synth_copy_ctor.  Add call
	to cons_up_default_function for operator=.

Tue Nov 23 20:24:58 1993  Mike Stump  <mrs@cygnus.com>

	* cp-cvt.c (convert_force): Add code to perform casting of pointer
	to member function types.
	* cp-typeck.c (build_ptrmemfunc): Add FORCE parameter to indicate
	when the conversion should be done, regardless.
	* cp-tree.h (build_ptrmemfunc): Likewise.
	* cp-type2.c (digest_init): Likewise.
	* cp-typeck.c (convert_for_assignment): Likewise.

Tue Nov 23 18:06:58 1993  Jason Merrill  <jason@deneb.cygnus.com>

	* cp-error.c (dump_expr): Do the right thing for variables of
	reference type.

	* cp-decl.c (grok_op_properties): Set TYPE_HAS_ASSIGN_REF
	and its kin properly.
	(xref_tag): Propagate TYPE_GETS_ASSIGN_REF.

Tue Nov 23 12:26:13 1993  Mike Stump  <mrs@cygnus.com>

	* cp-method.c (build_opfncall): Don't count pointer to member
	functions as aggregates here, as we don't want to look up methods in
	them.  The compiler would core dump if we did, as they don't have
	normal names.
	* cp-typeck.c (build_indirect_ref): Improve wording on error
	message.

Mon Nov 22 14:22:23 1993  Jason Merrill  <jason@deneb.cygnus.com>

	* cp-decl.c (grok_op_properties): Allow operator?: with pedwarn
	(since it's supported in other compiler bits).

	* cp-method.c (report_type_mismatch): Use cp_error; ignore err_name
	argument.

	* cp-error.c (dump_function_decl): Don't print return type for
	constructors and destructors.

	* cp-cvt.c (cp_convert_to_pointer): Import code from
	convert_to_pointer so we can return error_mark_node in the case of an
	error, and to allow more meaningful error messages.
	(build_type_conversion): Don't go through void* when trying
	to convert to a pointer type.

	* cp-decl.c (grokfndecl): Move call to grok_op_properties back
	after grokclassfn so that it's dealing with the right decl.
	(grok_op_properties): Don't assert !methodp for op new and op delete.

	* cp-init.c (build_delete): Don't use TYPE_BUILT_IN (there are now
	no uses of it in the compiler).

	* cp-call.c (build_scoped_method_call): Fix for destructors of simple
	types.
	(build_method_call): Likewise.

Fri Nov 19 12:59:38 1993  Jason Merrill  <jason@deneb.cygnus.com>

	* cp-tree.c (count_functions): Abstraction function.

	* cp-call.c (build_overload_call_real): Deal with new overloading
	properly, remove dead code.

	* gcc.c (default_compilers): Generate and use .ii files in the
	intermediate stage of compiling C++ source.

Fri Nov 19 11:26:09 1993  Jim Wilson  <wilson@sphagnum.cygnus.com>

	* cp-expr.c (cplus_expand_expr): Make call_target a valid memory
	address before using it, so it can be later safely compared.

Fri Nov 12 15:30:27 1993  Jason Merrill  <jason@deneb.cygnus.com>

	* cp-pt.c (tsubst): Deal with new overloading.

	* cp-typeck.c (fntype_p): Is the arg function type?
	(comp_target_parms): pedwarn on conversion from (anything) to (...).
	(build_x_function_call): Deal with new overloading.

	* cp-tree.c (decl_list_length): Deal with new overloading.
	(decl_value_member): Like value_member, but for DECL_CHAINs.

	* cp-decl.c (duplicate_decls): Deal with new overloading.
	(start_decl): Likewise.

	* cp-class.c (instantiate_type): Deal with new overloading.

	* cp-call.c (convert_harshness_ansi): Deal with new overloading.
	(convert_harshness_old): Deal with new overloading.
	(build_overload_call_real): Likewise.

Mon Nov  8 13:50:49 1993  Jason Merrill  <jason@deneb.cygnus.com>

	* cp-tree.c (get_unique_fn): New function; returns FUNCTION_DECL
	if unambiguous, NULL_TREE otherwise.
	(get_first_fn): Returns the first appropriate FUNCTION_DECL.
	(is_overloaded_fn): Returns whether or not the passed tree is
	a function or list of functions.

	* cp-init.c (init_init_processing): Use `get_first_fn' to find
	the FUNCTION_DEFN for new and delete.

	* cp-decl.c (push_overloaded_decl): Use new overloading strategy, cut
	code size in half (I spit on special cases).

Tue Sep  7 20:03:33 1993  Jason Merrill  <jason@deneb.cygnus.com>

	* cp-decl.c: Allow references and template type parameters as well


Copyright (C) 1993 Free Software Foundation, Inc.

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.