1169689SkanTue Dec 28 21:10:03 1993  Mike Stump  <mrs@cygnus.com>
2169689Skan
3169689Skan	* cp-init.c (expand_vec_init): Remove comptypes test, as it is too
4169689Skan	harsh here.
5169689Skan
6169689SkanTue Dec 28 13:42:22 1993  Mike Stump  <mrs@cygnus.com>
7169689Skan
8169689Skan	* cp-pt.c (do_pending_expansions): Decide to expand a template
9169689Skan	member function, based upon it's class type, not the class type of
10169689Skan	the first place it was declared.
11169689Skan
12169689SkanTue Dec 28 05:42:31 1993  Mike Stump  <mrs@cygnus.com>
13169689Skan
14169689Skan	* cp-class.c (is_normal): New routine, use to determine when the
15169689Skan	given binfo is the normal one.  (The one that should have the simple
16169689Skan	vtable name.)
17169689Skan	* cp-class.c (modify_other_vtable_entries): Use DECL_ASSEMBLER_NAME
18169689Skan	to check if two fndecls are `the same'.  Sometimes this routine can
19169689Skan	modify the main vtable, and normal should be 1, in that case, so use
20169689Skan	is_normal() to determine if this is the main vtable for the class.
21169689Skan	Don't recurse down virtual bases, as they are shared, and we take
22169689Skan	care of them elsewhere.
23169689Skan	* cp-class.c (modify_vtable_entries): If we have already updated the
24169689Skan	vtable with the new virtual, don't do it again.
25169689Skan	* cp-class.c (finish_struct): Set CLASSTYPE_VFIELD_PARENT as
26169689Skan	appropriate.  Do virtual function overriding in virtual bases, after
27169689Skan	normal overriding, so that the base function list in DECL_VINDEX is
28169689Skan	not overridden, before we have a chance to run through the list.
29169689Skan	Use DECL_ASSEMBLER_NAME to check if two fndecls are `the same'.
30169689Skan	Make sure we pass the right address into modify_vtable_entries.
31169689Skan	* cp-tree.h (CLASSTYPE_VFIELD_PARENT): New field to indicate which
32169689Skan	binfo is the one that has the vtable that we based our vtable on.
33169689Skan
34169689SkanFri Dec 24 09:40:52 1993  Michael Tiemann  <tiemann@blues.cygnus.com>
35169689Skan
36169689Skan	* cp-typeck.c (c_expand_start_case): Use default_conversion to
37169689Skan	convert expression from reference type if necessary.
38169689Skan
39169689SkanWed Dec 22 17:58:43 1993  Jason Merrill  <jason@deneb.cygnus.com>
40169689Skan
41169689Skan	* cp-typeck.c (build_unary_op): Make sure that it's a TREE_LIST before
42169689Skan	trying to read its TREE_VALUE.
43169689Skan
44169689Skan	* cp-class.c (finish_struct_methods): Clear DECL_IN_AGGR_P here.
45169689Skan	(finish_struct): Instead of here.
46169689Skan
47169689SkanTue Dec 21 14:34:25 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>
48169689Skan
49169689Skan	* cp-tree.c (list_hash_lookup_or_cons): Make sure the type doesn't
50169689Skan	have TYPE_PTRMEMFUNC_P set before we try to build its
51169689Skan	CLASSTYPE_ID_AS_LIST.
52169689Skan	(get_decl_list): Likewise, when trying to read it.
53169689Skan
54169689Skan	* cp-tree.h (VTABLE_NAME): No def with NO_{DOLLAR,DOT} defined.
55169689Skan	(VTABLE_NAME_P): Use it instead of VTABLE_NAME_FORMAT.
56169689Skan
57169689SkanMon Dec 20 13:35:03 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>
58169689Skan
59169689Skan	* cp-typeck.c (rationalize_conditional_expr): New function.
60169689Skan	(unary_complex_lvalue): Use it.
61169689Skan	(build_modify_expr): Use it, since trying to do an ADDR_EXPR of it
62169689Skan	with build_unary_op won't cut it.  Don't wrap the COND_EXPR with a
63169689Skan	SAVE_EXPR either.
64169689Skan
65169689Skan	* cp-decl2.c (explicit_warn_return_type): Deleted variable.
66169689Skan	(lang_decode_option): Set warn_return_type, not explicit_*, for
67169689Skan	-Wreturn-type and -Wall.  This is what rest_of_compilation uses to
68169689Skan	decide if it should go into jump_optimize or not.
69169689Skan	* cp-tree.h (explicit_warn_return_type): Deleted.
70169689Skan	* cp-decl.c (grokdeclarator): Use warn_return_type, not explicit_*.
71169689Skan	(finish_function): Also complain about no return in a non-void fn if
72169689Skan	we're being pedantic (don't rely on use of -Wreturn-type).
73169689Skan
74169689SkanFri Dec 17 15:45:46 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>
75169689Skan
76169689Skan	* cp-decl.c (grokdeclarator): Forbid declaration of a function as
77169689Skan	static if it's being done inside another function.
78169689Skan
79169689Skan	* cp-search.c (compute_visibility): Check for friendship both ways.
80169689Skan
81169689SkanFri Dec 17 14:28:25 1993  Jason Merrill  <jason@deneb.cygnus.com>
82169689Skan
83169689Skan	* cp-cvt.c (build_default_binary_type_conversion): Make error
84169689Skan	messages more helpful.
85169689Skan
86169689Skan	* cp-error.c (op_as_string): New function, returns "operator =="
87169689Skan	given EQ_EXPR or suchlike.
88169689Skan
89169689SkanFri Dec 17 13:28:11 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>
90169689Skan
91169689Skan	* cp-call.c (print_n_candidates): New function.
92169689Skan	(build_overload_call_real): Use it when we complain about a call
93169689Skan	being ambiguous.
94169689Skan
95169689SkanFri Dec 17 12:41:17 1993  Jason Merrill  <jason@deneb.cygnus.com>
96169689Skan
97169689Skan	* cp-call.c (build_method_call): Fix checking for static call
98169689Skan	context.
99169689Skan
100169689Skan	* cp-method.c (build_opfncall): Call build_indirect_ref on argument
101169689Skan	to operator new.
102169689Skan
103169689Skan	* cp-init.c (build_new): Don't mess with rval when building
104169689Skan	indirect ref.
105169689Skan
106169689SkanThu Dec 16 16:48:05 1993  Kung Hsu  <kung@cirdan.cygnus.com>
107169689Skan
108169689Skan	* cp-lex.c (default_assign_ref_body): Add check when TYPE_NESTED_
109169689Skan	NAME(type) may not be exist.  It's not a problem for old compiler.
110169689Skan
111169689SkanThu Dec 16 14:46:06 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>
112169689Skan
113169689Skan	* cp-tree.h (CLASSTYPE_ALTERS_VISIBILITIES_P): Delete macro, it's
114169689Skan	never used for anything.
115169689Skan	(struct lang_type, member type_flags): Delete field
116169689Skan	`alters_visibility', and up `dummy' by 1.
117169689Skan	* cp-class.c (finish_base_struct): Delete code that copies the
118169689Skan	setting of CLASSTYPE_ALTERS_VISIBILITIES_P.
119169689Skan	(finish_struct): Delete code that sets it.
120169689Skan
121169689SkanThu Dec 16 14:44:39 1993  Jason Merrill  <jason@deneb.cygnus.com>
122169689Skan
123169689Skan	* cp-decl.c, cp-init.c, cp-typeck.c: Fix arguments to
124169689Skan	build_method_call that I messed up before.
125169689Skan
126169689Skan	* cp-search.c (get_base_distance): If protect > 1, allow immediate
127169689Skan	private base.
128169689Skan
129169689Skan	* cp-class.c (finish_base_struct): Set cant_synth_* correctly.
130169689Skan	(finish_struct): Likewise.  Well, nigh-correctly; it won't deal
131169689Skan	properly with the case where a class contains an object of an
132169689Skan	ambiguous base class which has a protected op=.  Should be fixed
133169689Skan	when the access control code gets overhauled.
134169689Skan	(finish_struct_methods): Set TYPE_HAS_NONPUBLIC_* correctly.
135169689Skan
136169689SkanThu Dec 16 12:17:06 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>
137169689Skan
138169689Skan	* cp-lex.c (real_yylex): Turn the code back on that deals with
139169689Skan	__FUNCTION__ and __PRETTY_FUNCTION__.  Don't use lookup_name, to
140169689Skan	avoid the ambiguity problems that led to it being turned off in the
141169689Skan	first place.
142169689Skan
143169689Skan	* cp-method.c (hack_identifier): Also check for a TYPE_PTRMEMFUNC_P
144169689Skan	to see if something is a method.
145169689Skan
146169689SkanWed Dec 15 18:35:58 1993  Mike Stump  <mrs@cygnus.com>
147169689Skan
148169689Skan	* cp-typeck.c (build_modify_expr): Avoid error messages on small
149169689Skan	enum bit fields.
150169689Skan	* cp-typeck.c (convert_for_assignment): Add missing argument to
151169689Skan	cp_warning and cp_pedwarn calls.
152169689Skan
153169689SkanWed Dec 15 18:25:32 1993  Jason Merrill  <jason@deneb.cygnus.com>
154169689Skan
155169689Skan	* cp-parse.y (member_init): ANSI C++ doesn't forbid old-style base
156169689Skan	initializers; it's just anachronistic.
157169689Skan
158169689Skan	* cp-decl.c (finish_decl): Don't require external-linkage arrays
159169689Skan	to have a complete type at declaration time when pedantic.
160169689Skan
161169689SkanTue Dec 14 11:37:23 1993  Jason Merrill  <jason@deneb.cygnus.com>
162169689Skan
163169689Skan	* cp-decl.c (pushdecl): Don't set DECL_CONTEXT if it's already set.
164169689Skan
165169689Skan	* cp-call.c (build_method_call): Don't dereference pointer given
166169689Skan	as instance.
167169689Skan
168169689Skan	* cp-decl.c (finish_function): Don't pass pointer to
169169689Skan	build_method_call.
170169689Skan	(finish_function): Likewise.
171169689Skan
172169689Skan	* cp-typeck.c (build_x_function_call): Likewise.
173169689Skan
174169689Skan	* cp-method.c (build_component_type_expr): Likewise.
175169689Skan
176169689Skan	* cp-init.c (build_member_call): Likewise.
177169689Skan	(build_new): Likewise.
178169689Skan
179169689SkanMon Dec 13 18:04:33 1993  Kung Hsu  <kung@cirdan.cygnus.com>
180169689Skan
181169689Skan	* cp-decl.c (xref_tag): Fix regression created by changes made
182169689Skan	in Dec. 7 1993.
183169689Skan	* cp-decl.c (xref_defn_tag): Fix parallel nested class problem.
184169689Skan
185169689SkanFri Dec 10 12:40:25 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>
186169689Skan
187169689Skan	* cp-call.c (compute_conversion_costs_ansi) [DEBUG_MATCHING]: Print
188169689Skan	out the final evaluation of the function, so we can see if ELLIPSIS,
189169689Skan	USER, and EVIL were set at the end.
190169689Skan
191169689Skan	* cp-call.c (convert_harshness_ansi): When the parm isn't an lvalue,
192169689Skan	only go for setting TRIVIAL_CODE if we are dealing with types that
193169689Skan	are compatible.
194169689Skan
195169689SkanThu Dec  9 18:27:22 1993  Mike Stump  <mrs@cygnus.com>
196169689Skan
197169689Skan	* cp-decl.c (flag_huge_objects): New flag to allow large objects.
198169689Skan	* toplev.c (lang_options): Likewise.
199169689Skan	* cp-decl2.c (flag_huge_objects, lang_f_options): Likewise.
200169689Skan	* cp-decl.c (delta_type_node): New type for delta entries.
201169689Skan	* cp-tree.h (delta_type_node): Likewise.
202169689Skan	* cp-decl.c (init_decl_processing): Setup delta_type_node.
203169689Skan	* cp-decl.c (init_decl_processing, build_ptrmemfunc_type): Use
204169689Skan	delta_type_node instead of short_integer_type_node.
205169689Skan	* cp-class.c (build_vtable_entry): Likewise.
206169689Skan
207169689SkanThu Dec  9 16:19:05 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>
208169689Skan
209169689Skan	* cp-tree.h (OPERATOR_TYPENAME_P): Define outside of
210169689Skan	NO_{DOLLAR,DOT} macro checks, so it always gets defined.
211169689Skan	(VTABLE_NAME_P): Define for NO_DOT && NO_DOLLAR_IN_LABEL.
212169689Skan
213169689SkanWed Dec  8 17:38:06 1993  Mike Stump  <mrs@cygnus.com>
214169689Skan
215169689Skan	* cp-decl.c (finish_decl): Make sure things that can go into
216169689Skan	"common", do go into common, if -fcommon is given.
217169689Skan
218169689SkanWed Dec  8 13:01:54 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>
219169689Skan
220169689Skan	* cp-call.c (print_harshness) [DEBUG_MATCHING]: New function.
221169689Skan	(compute_conversion_costs_ansi) [DEBUG_MATCHING]: Print out
222169689Skan	argument matching diagnostics to make instantly clear what the
223169689Skan	compiler is doing.
224169689Skan
225169689Skan	* cp-call.c (convert_harshness_ansi): If the parm isn't an lvalue,
226169689Skan	then check to see if the penalty was increased due to
227169689Skan	signed/unsigned mismatch, and use a TRIVIAL_CODE if it wasn't.
228169689Skan
229169689SkanTue Dec  7 18:29:14 1993  Kung Hsu  <kung@cirdan.cygnus.com>
230169689Skan
231169689Skan	* cp-decl.c (xref_tag, pushtag): Fix nested class search/resolution
232169689Skan	problem.
233169689Skan
234169689SkanTue Dec  7 16:09:34 1993  Jason Merrill  <jason@deneb.cygnus.com>
235169689Skan
236169689Skan	* cp-class.c (finish_struct): Before synthesizing methods, if no
237169689Skan	methods have yet been declared then set nonprivate_method.  Don't
238169689Skan	set non_private method after synthesizing a method.
239169689Skan
240169689Skan	* cp-lex.c (extract_interface_info): If flag_alt_external_templates
241169689Skan	is set, tie emitted code to the location of template instantiation,
242169689Skan	rather than definition.
243169689Skan
244169689Skan	* cp-tree.h: Declare flag_alt_external_templates.
245169689Skan
246169689Skan	* cp-decl2.c (lang_decode_option): Support -falt-external-templates.
247169689Skan
248169689Skan	* toplev.c (lang_options): Likewise.
249169689Skan
250169689SkanMon Oct  4 12:50:02 1993  Chip Salzenberg  <chip@fin.uucp>
251169689Skan
252169689Skan	[changes propagated from 930810 snapshot]
253169689Skan	* cp-decl.c (init_decl_processing): Make long long available for use
254169689Skan	as SIZE_TYPE and PTRDIFF_TYPE.
255169689Skan	(finish_decl): Allow file-scope static incomplete array.
256169689Skan	(grokdeclarator): Don't pass on const and volatile fron function
257169689Skan	value type to function type.
258169689Skan	Warn here for volatile fn returning non-void type.
259169689Skan	* cp-parse.y (attrib): Accept attributes `volatile' with alias
260169689Skan	`noreturn', and `const'.
261169689Skan	* cp-typeck.c (default_conversion): Don't lose const and volatile.
262169689Skan	(build_binary_op_nodefault): Generate pedantic warning for comparison
263169689Skan	of complete pointer type with incomplete pointer type.
264169689Skan	(build_c_cast): Be careful that null pointer constant be INTEGER_CST.
265169689Skan
266169689SkanTue Dec  7 10:46:48 1993  Jason Merrill  <jason@deneb.cygnus.com>
267169689Skan
268169689Skan	* cp-init.c (expand_vec_init): When creating a temporary for copying
269169689Skan	arrays, use the type of the source, not the target.
270169689Skan
271169689Skan	* cp-cvt.c (convert): Pass an argument for errtype to
272169689Skan	convert_to_reference.
273169689Skan
274169689Skan	* cp-error.c (dump_expr, COMPONENT_REF & CALL_EXPR): Deal with
275169689Skan	methods, -> and `this'.
276169689Skan
277169689SkanMon Dec  6 17:12:33 1993  Jason Merrill  <jason@deneb.cygnus.com>
278169689Skan
279169689Skan	* cp-error.c (parm_as_string): New function; returns `this' or arg
280169689Skan	number.  Corresponds to %P.
281169689Skan	(dump_expr): Deal with method calls.
282169689Skan
283169689Skan	* cp-cvt.c (convert_to_reference): Stop using warn_for_assignment.
284169689Skan	* cp-typeck.c (convert_for_assignment): Likewise.
285169689Skan	(warn_for_assignment): Lose.
286169689Skan
287169689SkanMon Dec  6 11:33:35 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>
288169689Skan
289169689Skan	* cp-call.c (ideal_candidate_ansi): Delete code that was never
290169689Skan	doing anything useful.  Instead, sort once, and DO NOT wipe
291169689Skan	out any codes with EVIL_CODE, since that's what we use as a
292169689Skan	marker for the end of the list of candidates.
293169689Skan
294169689Skan	* cp-cvt.c (convert_to_aggr): Make sure to always set H_LEN.
295169689Skan
296169689SkanMon Dec  6 12:49:17 1993  Jason Merrill  <jason@deneb.cygnus.com>
297169689Skan
298169689Skan	* cp-init.c (get_aggr_from_typedef): New function, like
299169689Skan	is_aggr_typedef but returns the _TYPE.
300169689Skan
301169689Skan	* cp-call.c, cp-init.c, cp-method.c: Eradicate err_name.
302169689Skan
303169689SkanSun Dec  5 18:12:48 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>
304169689Skan
305169689Skan	* cp-lex.c (readescape): Pedwarn when a hex escape is out of range.
306169689Skan
307169689SkanThu Nov 25 23:50:19 1993  Chip Salzenberg  <chip@fin.uucp>
308169689Skan
309169689Skan	Delay language context change until beginning of next decl.
310169689Skan
311169689Skan	* cp-lex.h (c_header_level): Removed.
312169689Skan	(pending_lang_change): Declared.
313169689Skan	* cp-lex.c (c_header_level): Renamed from in_c_header, made static.
314169689Skan	(pending_lang_change): Defined.
315169689Skan	(check_newline): Rework code that recognizes line number and
316169689Skan	filename changes.  Instead of pushing and popping lang context,
317169689Skan	increment and decrement pending_lang_change.
318169689Skan	(do_pending_lang_change):  Push and pop lang context according
319169689Skan	to value of pending_lang_change.
320169689Skan	* cp-parse.y (extdefs): Use lang_extdef instead of extdef.
321169689Skan	(extdef): Same as extdef, but call do_pending_lang_change() first.
322169689Skan
323169689SkanMon Nov 15 15:39:15 1993  Chip Salzenberg  <chip@fin.uucp>
324169689Skan
325169689Skan	* cp-typeck.c (build_binary_op_nodefault): Warn for ordered
326169689Skan	compare of ptr with 0 only if pedantic in both cases.
327169689Skan
328169689SkanThu Nov 25 13:31:37 1993  Chip Salzenberg  <chip@fin.uucp>
329169689Skan
330169689Skan	Reinstate the below patch, which got lost in the Cygnus merge:
331169689Skan	Tue Nov 23 13:59:24 1993  Hallvard B Furuseth  (hbf@durin.uio.no)
332169689Skan	* cp-parse.y (maybe_type_qual): Don't fail to set $$.
333169689Skan
334169689SkanWed Nov 17 19:03:30 1993  Chip Salzenberg  <chip@fin.uucp>
335169689Skan
336169689Skan	* cp-parse.y (attrib): Allow "ident(ident)" like the C front end.
337169689Skan
338169689SkanFri Oct 22 20:43:37 1993  Paul Eggert  <eggert@twinsun.com>
339169689Skan
340169689Skan	* cp-lex.c (real_yylex): Diagnose floating point constants
341169689Skan	that are too large.
342169689Skan
343169689SkanWed Nov 17 19:10:37 1993  Chip Salzenberg  <chip@fin.uucp>
344169689Skan
345169689Skan	* cp-type2.c (build_functional_cast): ARM page 16: When a class
346169689Skan	and an object, function or enumerator are declared in the same
347169689Skan	scope with the same name, the class name is hidden.
348169689Skan
349169689SkanWed Nov 17 19:07:18 1993  Chip Salzenberg  <chip@fin.uucp>
350169689Skan
351169689Skan	* cp-call.c (convert_harshness_ansi): Distinguish float, double,
352169689Skan	and long double from each other when overloading.
353169689Skan	(compute_conversion_costs_{ansi,old}, build_method_call,
354169689Skan	build_overlay_call_real, convert_to_aggr): Always set and
355169689Skan	always use H_LEN member of candidate structure.
356169689Skan
357169689SkanMon Oct 11 23:10:53 1993  Chip Salzenberg  <chip@fin.uucp>
358169689Skan
359169689Skan	* cp-decl.c (duplicate_decls): Note redeclarations of library
360169689Skan	functions, and generate distinct warnings for them.
361169689Skan
362169689SkanMon Oct  4 12:26:49 1993  Chip Salzenberg  <chip@fin.uucp>
363169689Skan
364169689Skan	Support format warnings in G++.
365169689Skan
366169689Skan	* cp-tree.h: Protect against multiple inclusion.
367169689Skan	Declare all public functions in c-common.c (copy from c-tree.h).
368169689Skan	(STDIO_PROTO): Define.
369169689Skan	(warn_format): Declare.
370169689Skan	(record_format_info): Remove declaration.
371169689Skan	* cp-decl.c (init_decl_processing): Call init_function_format_info.
372169689Skan	* cp-decl2.c (lang_decode_option): Make "-Wall" include warn_format.
373169689Skan	* cp-typeck.c (build_function_call_real): Call check_function_format.
374169689Skan	(record_format_info): Remove -- obsolete stub.
375169689Skan
376169689SkanSat Jul 24 12:04:29 1993  Chip Salzenberg  <chip@fin.uucp>
377169689Skan
378169689Skan	* cp-decl.c (duplicate_decls): Don't warn for non-extern var decl
379169689Skan	following an extern one (for -Wredundant-decls).
380169689Skan	* cp-parse.y (primary): In statement expression case, if compstmt
381169689Skan	returns something other than a BLOCK, return it unchanged.
382169689Skan
383169689SkanThu Dec  2 20:44:58 1993  Chip Salzenberg  <chip@fin.uucp>
384169689Skan
385169689Skan	* cp-decl.c (warn_extern_redeclared_static): New function made
386169689Skan	from code extracted from pushdecl.
387169689Skan	(duplicate_decls, pushdecl): Call new function.
388169689Skan	(lookup_name_current_level): Allow for IDENTIFIER_GLOBAL_VALUE
389169689Skan	to be a TREE_LIST when function is declared in 'extern "C" {}'.
390169689Skan
391169689SkanFri Dec  3 16:01:10 1993  Jason Merrill  <jason@deneb.cygnus.com>
392169689Skan
393169689Skan	* cp-class.c (duplicate_tag_error): Use cp_error.
394169689Skan	(finish_base_struct): Check for ambiguity with direct base, and don't
395169689Skan	generate op= or copy ctor if it exists.
396169689Skan
397169689SkanFri Dec  3 15:32:34 1993  Kung Hsu  <kung@cirdan.cygnus.com>
398169689Skan
399169689Skan	* cp-init.c (expand_member_init): When initializer name is null,
400169689Skan	don't try to build it now because emit_base_init will handle it.
401169689Skan
402169689SkanFri Dec  3 12:28:59 1993  Jason Merrill  <jason@deneb.cygnus.com>
403169689Skan
404169689Skan	* cp-lex.c (init_lex): Initialize input_filename to "<internal>" for
405169689Skan	code such as ExceptionHandler::operator=.
406169689Skan
407169689SkanFri Dec  3 10:32:08 1993  Jason Merrill  <jason@deneb.cygnus.com>
408169689Skan
409169689Skan	* cp-decl.c (grokdeclarator): Don't try to print out dname when
410169689Skan	complaining about arrays of references if decl_context==TYPENAME,
411169689Skan	since it will be null.
412169689Skan
413169689Skan	* cp-decl2.c: Default to flag_ansi_overloading.
414169689Skan
415169689SkanThu Dec  2 18:05:56 1993  Kung Hsu  <kung@cirdan.cygnus.com>
416169689Skan
417169689Skan	* cp-call.c (build_method_call): Use binfo from instance if it's
418169689Skan	different from binfo (basetype_path) passed from above.
419169689Skan
420169689SkanWed Nov 17 19:14:29 1993  Chip Salzenberg  <chip@fin.uucp>
421169689Skan
422169689Skan	cp-error.c (dump_expr): Use unsigned chars to output a
423169689Skan	TREE_REAL_CST in hex.
424169689Skan
425169689SkanThu Dec  2 11:05:48 1993  Jason Merrill  <jason@deneb.cygnus.com>
426169689Skan
427169689Skan	* cp-class.c (finish_struct): Fix typo in setting
428169689Skan	cant_synth_asn_ref.
429169689Skan
430169689Skan	* cp-tree.h (TYPE_NESTED_NAME): New macro, does
431169689Skan	DECL_NESTED_TYPENAME (TYPE_NAME (NODE)).
432169689Skan
433169689Skan	* cp-lex.c (default_copy_constructor_body): Change
434169689Skan	DECL_NAME (TYPE_NAME (btype)) to TYPE_NESTED_NAME (btype).
435169689Skan	(default_assign_ref_body): Likewise.
436169689Skan	(default_copy_constructor_body): Call operator= explicitly for
437169689Skan	base classes that have no constructor.
438169689Skan
439169689SkanThu Dec  2 10:47:15 1993  Michael Tiemann  <tiemann@blues.cygnus.com>
440169689Skan
441169689Skan	* cp-call.c (build_method_call): If the instance variable is
442169689Skan	converted to error_mark_node when we're trying to convert it to the
443169689Skan	base type of a method we're looking up, return error_mark_node.
444169689Skan
445169689SkanThu Dec  2 10:41:16 1993  Torbjorn Granlund  <tege@cygnus.com>
446169689Skan
447169689Skan	* cp-typeck.c (build_binary_op_nodefault): In *_DIV_EXPR *_MOD_EXPR
448169689Skan	cases, tests for unsigned operands by peeking inside a NOP_EXPR.
449169689Skan
450169689SkanWed Dec  1 13:33:34 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>
451169689Skan
452169689Skan	* cp-call.c (compute_conversion_costs_ansi): Use the size of struct
453169689Skan	harshness_code, not the size of short, for clearing out the
454169689Skan	ansi_harshness.
455169689Skan
456169689Skan	* cp-call.c (print_candidates): New function.
457169689Skan	(build_method_call): When we had some candidates, but didn't get a
458169689Skan	usable match, don't report that we got an error with the first
459169689Skan	candidate.  Instead, say there were no matches, and list the
460169689Skan	candidates with print_candidates.  In the second pass, make sure we
461169689Skan	clear out ever_seen, so we can accurately count the number of
462169689Skan	functions that qualified.
463169689Skan
464169689SkanWed Dec  1 09:53:59 1993  Torbjorn Granlund  <tege@cygnus.com>
465169689Skan
466169689Skan	* cp-typeck.c (build_binary_op_nodefault): Shorten for *_MOD_EXPR
467169689Skan	only if op1 is known to be != -1.
468169689Skan	(build_binary_op_nodefault): Handle *_DIV_EXPR likewise.
469169689Skan
470169689SkanTue Nov 30 14:07:26 1993  Brendan Kehoe  <brendan@lisa.cygnus.com>
471169689Skan
472169689Skan	* cp-method.c (hack_identifier): If the field itself is private, and
473169689Skan	not from a private base class, say so.
474169689Skan
475169689SkanMon Nov 29 03:00:56 1993  Jason Merrill  <jason@deneb.cygnus.com>
476169689Skan
477169689Skan	* cp-decl.c (grokdeclarator): Always warn on initialization of
478169689Skan	const member.
479169689Skan
480169689SkanWed Nov 24 00:49:35 1993  Jason Merrill  <jason@deneb.cygnus.com>
481169689Skan
482169689Skan	* cp-class.c (finish_struct): Set TYPE_GETS_CONST_* properly.
483169689Skan	(finish_base_struct): Set cant_synth_asn_ref properly.
484169689Skan
485169689Skan	* cp-lex.c (cons_up_default_function): Add section for operator=.
486169689Skan	(default_assign_ref_body): New function, mostly cribbed from
487169689Skan	default_copy_constructor_body.
488169689Skan
489169689Skan	* cp-class.c (base_info): Add members cant_synth_copy_ctor,
490169689Skan	cant_synth_asn_ref, no_const_asn_ref.
491169689Skan	(finish_base_struct): Update no_const_asn_ref, note that you should
492169689Skan	update cant_synth_*, propagate TYPE_GETS_ASSIGN_REF.
493169689Skan	(finish_struct): Add decls for cant_synth_*, no_const_asn_ref, and
494169689Skan	initialize them properly.  Set no_const_asn_ref properly.  Set
495169689Skan	cant_synth_* in some of the situations where they should be set.
496169689Skan	Propagate TYPE_GETS_ASSIGN_REF.  Use cant_synth_copy_ctor.  Add call
497169689Skan	to cons_up_default_function for operator=.
498169689Skan
499169689SkanTue Nov 23 20:24:58 1993  Mike Stump  <mrs@cygnus.com>
500169689Skan
501169689Skan	* cp-cvt.c (convert_force): Add code to perform casting of pointer
502169689Skan	to member function types.
503169689Skan	* cp-typeck.c (build_ptrmemfunc): Add FORCE parameter to indicate
504169689Skan	when the conversion should be done, regardless.
505169689Skan	* cp-tree.h (build_ptrmemfunc): Likewise.
506169689Skan	* cp-type2.c (digest_init): Likewise.
507169689Skan	* cp-typeck.c (convert_for_assignment): Likewise.
508169689Skan
509169689SkanTue Nov 23 18:06:58 1993  Jason Merrill  <jason@deneb.cygnus.com>
510169689Skan
511169689Skan	* cp-error.c (dump_expr): Do the right thing for variables of
512169689Skan	reference type.
513169689Skan
514169689Skan	* cp-decl.c (grok_op_properties): Set TYPE_HAS_ASSIGN_REF
515169689Skan	and its kin properly.
516169689Skan	(xref_tag): Propagate TYPE_GETS_ASSIGN_REF.
517169689Skan
518169689SkanTue Nov 23 12:26:13 1993  Mike Stump  <mrs@cygnus.com>
519169689Skan
520169689Skan	* cp-method.c (build_opfncall): Don't count pointer to member
521169689Skan	functions as aggregates here, as we don't want to look up methods in
522169689Skan	them.  The compiler would core dump if we did, as they don't have
523169689Skan	normal names.
524169689Skan	* cp-typeck.c (build_indirect_ref): Improve wording on error
525169689Skan	message.
526169689Skan
527169689SkanMon Nov 22 14:22:23 1993  Jason Merrill  <jason@deneb.cygnus.com>
528169689Skan
529169689Skan	* cp-decl.c (grok_op_properties): Allow operator?: with pedwarn
530169689Skan	(since it's supported in other compiler bits).
531169689Skan
532169689Skan	* cp-method.c (report_type_mismatch): Use cp_error; ignore err_name
533169689Skan	argument.
534169689Skan
535169689Skan	* cp-error.c (dump_function_decl): Don't print return type for
536169689Skan	constructors and destructors.
537169689Skan
538169689Skan	* cp-cvt.c (cp_convert_to_pointer): Import code from
539169689Skan	convert_to_pointer so we can return error_mark_node in the case of an
540169689Skan	error, and to allow more meaningful error messages.
541169689Skan	(build_type_conversion): Don't go through void* when trying
542169689Skan	to convert to a pointer type.
543169689Skan
544169689Skan	* cp-decl.c (grokfndecl): Move call to grok_op_properties back
545169689Skan	after grokclassfn so that it's dealing with the right decl.
546169689Skan	(grok_op_properties): Don't assert !methodp for op new and op delete.
547169689Skan
548169689Skan	* cp-init.c (build_delete): Don't use TYPE_BUILT_IN (there are now
549169689Skan	no uses of it in the compiler).
550169689Skan
551169689Skan	* cp-call.c (build_scoped_method_call): Fix for destructors of simple
552169689Skan	types.
553169689Skan	(build_method_call): Likewise.
554169689Skan
555169689SkanFri Nov 19 12:59:38 1993  Jason Merrill  <jason@deneb.cygnus.com>
556169689Skan
557169689Skan	* cp-tree.c (count_functions): Abstraction function.
558169689Skan
559169689Skan	* cp-call.c (build_overload_call_real): Deal with new overloading
560169689Skan	properly, remove dead code.
561169689Skan
562169689Skan	* gcc.c (default_compilers): Generate and use .ii files in the
563169689Skan	intermediate stage of compiling C++ source.
564169689Skan
565169689SkanFri Nov 19 11:26:09 1993  Jim Wilson  <wilson@sphagnum.cygnus.com>
566169689Skan
567169689Skan	* cp-expr.c (cplus_expand_expr): Make call_target a valid memory
568169689Skan	address before using it, so it can be later safely compared.
569169689Skan
570169689SkanFri Nov 12 15:30:27 1993  Jason Merrill  <jason@deneb.cygnus.com>
571169689Skan
572169689Skan	* cp-pt.c (tsubst): Deal with new overloading.
573169689Skan
574169689Skan	* cp-typeck.c (fntype_p): Is the arg function type?
575169689Skan	(comp_target_parms): pedwarn on conversion from (anything) to (...).
576169689Skan	(build_x_function_call): Deal with new overloading.
577169689Skan
578169689Skan	* cp-tree.c (decl_list_length): Deal with new overloading.
579169689Skan	(decl_value_member): Like value_member, but for DECL_CHAINs.
580169689Skan
581169689Skan	* cp-decl.c (duplicate_decls): Deal with new overloading.
582169689Skan	(start_decl): Likewise.
583169689Skan
584169689Skan	* cp-class.c (instantiate_type): Deal with new overloading.
585169689Skan
586169689Skan	* cp-call.c (convert_harshness_ansi): Deal with new overloading.
587169689Skan	(convert_harshness_old): Deal with new overloading.
588169689Skan	(build_overload_call_real): Likewise.
589169689Skan
590169689SkanMon Nov  8 13:50:49 1993  Jason Merrill  <jason@deneb.cygnus.com>
591169689Skan
592169689Skan	* cp-tree.c (get_unique_fn): New function; returns FUNCTION_DECL
593169689Skan	if unambiguous, NULL_TREE otherwise.
594169689Skan	(get_first_fn): Returns the first appropriate FUNCTION_DECL.
595169689Skan	(is_overloaded_fn): Returns whether or not the passed tree is
596169689Skan	a function or list of functions.
597169689Skan
598169689Skan	* cp-init.c (init_init_processing): Use `get_first_fn' to find
599169689Skan	the FUNCTION_DEFN for new and delete.
600169689Skan
601169689Skan	* cp-decl.c (push_overloaded_decl): Use new overloading strategy, cut
602169689Skan	code size in half (I spit on special cases).
603169689Skan
604169689SkanTue Sep  7 20:03:33 1993  Jason Merrill  <jason@deneb.cygnus.com>
605169689Skan
606169689Skan	* cp-decl.c: Allow references and template type parameters as well
607