1169689SkanThu Dec 28 11:13:15 1995  Mike Stump  <mrs@cygnus.com>
2169689Skan
3169689Skan	* except.c (expand_builtin_throw): Use RETURN_ADDR_OFFSET instead of
4169689Skan	NORMAL_RETURN_ADDR_OFFSET.
5169689Skan	(end_eh_unwinder): Likewise.
6169689Skan
7169689SkanWed Dec 27 22:18:16 1995  Mike Stump  <mrs@cygnus.com>
8169689Skan
9169689Skan	* gc.c (build_dynamic_cast): Make sure we don't cast away const
10169689Skan	when dealing with references, and make sure we handle dynamic
11169689Skan	casting to a cv qualified reference.
12169689Skan
13169689SkanThu Dec 21 23:50:35 1995  Mike Stump  <mrs@cygnus.com>
14169689Skan
15169689Skan	* except.c (struct eh_context): New structure top hold eh context
16169689Skan	information.
17169689Skan	(push_eh_context): New routine.
18169689Skan	(pop_eh_context): Likewise.
19169689Skan	* decl.c (push_cp_function_context): Use them.
20169689Skan	(pop_cp_function_context): Likewise.
21169689Skan
22169689SkanWed Dec 20 12:42:51 1995  Jason Merrill  <jason@yorick.cygnus.com>
23169689Skan
24169689Skan	* decl2.c (finish_file): Also prune uninteresting functions in the
25169689Skan	inline emission loop.
26169689Skan
27169689SkanWed Dec 20 02:32:07 1995  Jeffrey A Law  <law@cygnus.com>
28169689Skan
29169689Skan	* sig.c (build_signature_table_constructor): Mark functions
30169689Skan	in the signature as referenced.
31169689Skan
32169689SkanTue Dec 19 22:36:56 1995  Jason Merrill  <jason@yorick.cygnus.com>
33169689Skan
34169689Skan	* decl2.c (finish_file): Do all the vtable/synthesis stuff before
35169689Skan	the inline emission stuff.
36169689Skan
37169689SkanMon Dec 18 15:51:33 1995  Jason Merrill  <jason@yorick.cygnus.com>
38169689Skan
39169689Skan	* cp-tree.h, decl2.c (flag_weak): New flag to control the use of
40169689Skan	weak symbols.
41169689Skan	* lang-options.h: Add -f{no-,}weak.
42169689Skan	* decl.c (init_decl_processing): If the target does not support weak
43169689Skan	symbols, don't use them.
44169689Skan	* decl2.c, pt.c: s/SUPPORTS_WEAK/flag_weak/.
45169689Skan
46169689SkanSun Dec 17 21:13:23 1995  Rusty Russell  <rusty@adelaide.maptek.com.au>
47169689Skan
48169689Skan	* init.c (expand_member_init): warning for base init after members.
49169689Skan
50169689SkanFri Dec 15 15:32:18 1995  Jason Merrill  <jason@yorick.cygnus.com>
51169689Skan
52169689Skan	* cvt.c (build_expr_type_conversion): Don't convert to a reference
53169689Skan	type.
54169689Skan
55169689SkanThu Dec 14 16:05:58 1995  Mike Stump  <mrs@cygnus.com>
56169689Skan
57169689Skan	* method.c (report_type_mismatch): Improve wording for volatile
58169689Skan	mismatches.
59169689Skan
60169689SkanThu Dec 14 14:16:26 1995  Mike Stump  <mrs@cygnus.com>
61169689Skan
62169689Skan	* init.c (expand_aggr_init_1): Use expand_aggr_init_1 instead of
63169689Skan	expand_assignment, as the later doesn't handle things that have
64169689Skan	copy constructors well.  The compiler would do bitwise copying,
65169689Skan	instead of ctor calling in some cases.
66169689Skan
67169689SkanWed Dec 13 17:05:54 1995  Paul Eggert  <eggert@twinsun.com>
68169689Skan
69169689Skan	* g++.c (my_strerror): Return "cannot access" if errno is 0.
70169689Skan	(pfatal_with_name, perror_exec): Don't assume that
71169689Skan	the returned value from my_strerror contains no '%'s.
72169689Skan	(concat): Remove.
73169689Skan	(sys_nerror): Declare only if HAVE_STRERROR is not defined.
74169689Skan
75169689SkanWed Dec 13 16:22:38 1995  Jason Merrill  <jason@yorick.cygnus.com>
76169689Skan
77169689Skan	Lose CLASSTYPE_METHODS/DECL_NEXT_METHOD chain; make
78169689Skan	TYPE_METHODS/TREE_CHAIN mean what they used to.
79169689Skan	* decl2.c (constructor_name_full): Refer to CLASSTYPE_METHOD_VEC
80169689Skan	instead of TYPE_METHODS.
81169689Skan	* decl.c (duplicate_decls): Lose references to DECL_NEXT_METHOD.
82169689Skan	* tree.c (tree_copy_lang_decl_for_deferred_output): Likewise.
83169689Skan	* cp-tree.h (CLASSTYPE_METHODS): Lose.
84169689Skan	(CLASSTYPE_METHOD_VEC): Point to lang_spec->methods instead of
85169689Skan	TYPE_METHODS.
86169689Skan	(struct lang_decl): Lose next_method field.
87169689Skan	(DECL_NEXT_METHOD): Lose.
88169689Skan	* class.c (finish_struct_methods): Don't mess with TYPE_METHODS.
89169689Skan	(finish_struct): Just use TYPE_METHODS; we don't need fn_fields
90169689Skan	anymore.
91169689Skan	(finish_struct_methods): Don't mess with the TREE_CHAINs in
92169689Skan	fn_fields.
93169689Skan
94169689Skan	* search.c (add_conversions): Don't use TREE_CHAIN to traverse method
95169689Skan	vector.
96169689Skan
97169689Skan	* call.c (build_method_call): Synthesize here even when not inlining.
98169689Skan	* typeck.c (build_function_call_real): Likewise.
99169689Skan
100169689SkanWed Dec 13 15:02:39 1995  Ian Lance Taylor  <ian@cygnus.com>
101169689Skan
102169689Skan	* cp/lex.c (check_newline): If DBX_DEBUGGING_INFO and write_symbols
103169689Skan	== DBX_DEBUG, call dbxout_start_new_source_file and
104169689Skan	dbxout_resume_previous_source_file when appropriate.
105169689Skan
106169689SkanTue Dec 12 20:38:55 1995  Mike Stump  <mrs@cygnus.com>
107169689Skan
108169689Skan	* except.c (start_anon_func): Push to the top level.
109169689Skan	(end_anon_func): Pop from the top level.
110169689Skan
111169689SkanMon Dec 11 18:56:14 1995  Mike Stump  <mrs@cygnus.com>
112169689Skan
113169689Skan	* cp-tree.h (build_cleanup): New routine to build cleanups.
114169689Skan	* decl.c (expand_static_init): Use build_cleanup to build a cleanup
115169689Skan	call at ctor time and use atexit to run it later.
116169689Skan	* decl2.c (build_cleanup): New routine, taken from finish_file.
117169689Skan	(finish_file): Use build_cleanup instead, and don't put function
118169689Skan	local statics in global dtor list.
119169689Skan
120169689SkanWed Dec  6 14:34:29 1995  Mike Stump  <mrs@cygnus.com>
121169689Skan
122169689Skan	* except.c (expand_throw): Ensure that we have cleanups, if we try
123169689Skan	and expand cleanups.
124169689Skan
125169689SkanWed Dec  6 11:48:21 1995  Mike Stump  <mrs@cygnus.com>
126169689Skan
127169689Skan	* except.c (expand_throw): Add logic to manage dynamic cleanups for
128169689Skan	the EH object.
129169689Skan	(expand_end_catch_block): Use the magic of expand_goto, instead of
130169689Skan	emit_jump so that we get the cleanup for any catch clause parameter
131169689Skan	and the cleanup for the exception object.  Update to reflect label
132169689Skan	changes.
133169689Skan	(push_eh_cleanup): New routine to register a cleanup for an
134169689Skan	exception object.
135169689Skan	(empty_fndecl): Used to default cleanup actions to
136169689Skan	nothing.
137169689Skan	(init_exception_processing): Setup empty_fndecl.  Setup
138169689Skan	saved_cleanup.
139169689Skan	(expand_start_catch_block): Update to reflect label changes.  Call
140169689Skan	push_eh_object to register the cleanup for the EH object.
141169689Skan	(start_anon_func): New routine to start building lambda expressions
142169689Skan	from trees.
143169689Skan	(end_anon_func): New routine to end them.
144169689Skan	(struct labelNode): Change so that we can use tree labels, or rtx
145169689Skan	labels.
146169689Skan	(saved_cleanup): Object to check for dynamic cleanups for the
147169689Skan	exception handling object.
148169689Skan	(push_label_entry): Change so that we can use tree labels, or rtx
149169689Skan	labels.
150169689Skan	(pop_label_entry): Likewise.
151169689Skan	(top_label_entry): Likewise.
152169689Skan	(expand_start_all_catch): Use tree label instead of rtx label, so
153169689Skan	that we can get the magic of expand_goto.
154169689Skan	(expand_end_all_catch): Update to reflect label changes.
155169689Skan
156169689Skan	* class.c (build_vfn_ref): Remove building_cleanup logic, as we now
157169689Skan	use UNSAVE_EXPRs.
158169689Skan	* typeck.c (get_member_function_from_ptrfunc): Remove remnants of
159169689Skan	building_cleanup logic, as we now use UNSAVE_EXPRs.
160169689Skan	* cp-tree.h (unsave_expr): Declare it.
161169689Skan	* decl.c (building_cleanup): Remove.
162169689Skan	(maybe_build_cleanup): Remove building_cleanup logic, and use
163169689Skan	UNSAVE_EXPR instead.
164169689Skan
165169689SkanSun Dec  3 01:34:58 1995  Mike Stump  <mrs@cygnus.com>
166169689Skan
167169689Skan	* gc.c (build_t_desc): Update error message to say <typeinfo>.
168169689Skan
169169689SkanThu Nov 30 12:30:05 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
170169689Skan
171169689Skan	* decl.c (pushdecl): Only warn about shadowing a local variable if
172169689Skan	warn_shadow is true.
173169689Skan
174169689SkanSun Nov 26 16:06:55 1995  Rusty Russell  <rusty@adelaide.maptek.com.au>
175169689Skan
176169689Skan	* typeck.c (build_binary_op_nodefault): Added warning about
177169689Skan	comparisons between different enum types with -Wall, unless
178169689Skan	-fenum-int-equiv set.
179169689Skan
180169689SkanWed Nov 22 15:44:02 1995  Mike Stump  <mrs@cygnus.com>
181169689Skan
182169689Skan	* class.c (finish_struct_1): Skip down to the inner type in
183169689Skan	multidimensional arrays.  Ensures ctors will be made for types that
184169689Skan	need constructing.
185169689Skan
186169689SkanWed Nov 22 14:19:22 1995  Mike Stump  <mrs@cygnus.com>
187169689Skan
188169689Skan	* decl.c (last_dtor_insn): New to track the last compiler generated
189169689Skan	insn in a dtor.
190169689Skan	(store_parm_decls): Set it.
191169689Skan	(finish_function): Use it to see if the dtor is empty.  Avoid doing
192169689Skan	vtable setup all the time, if we can.
193169689Skan	(struct cp_function): Add last_dtor_insn.
194169689Skan	(push_cp_function_context): Save it.
195169689Skan	(pop_cp_function_context): Restore it.
196169689Skan
197169689SkanWed Nov 22 11:52:19 1995  Paul Russell  <Rusty.Russell@adelaide.maptek.com.au>
198169689Skan
199169689Skan	* typeck.c (build_unary_op): Set TREE_NO_UNUSED_WARNING to avoid
200169689Skan	warnings.
201169689Skan
202169689SkanTue Nov 21 17:15:23 1995  Mike Stump  <mrs@cygnus.com>
203169689Skan
204169689Skan	* typeck.c (expand_target_expr): Make sure targets get put into the
205169689Skan	current temp_slot_level, so that the free_temp_slots call will reuse
206169689Skan	them.
207169689Skan
208169689SkanTue Nov 21 13:32:03 1995  Mike Stump  <mrs@cygnus.com>
209169689Skan
210169689Skan	* class.c (finish_struct_1): Delay delta fixups for virtual bases
211169689Skan	until after we have done the hard virtuals, to avoid a bogus `every
212169689Skan	virtual function must have a unique final overrider' for virtual
213169689Skan	functions that are only overridden by hard virtuals.
214169689Skan
215169689SkanThu Nov  9 13:35:30 1995  Jason Merrill  <jason@yorick.cygnus.com>
216169689Skan
217169689Skan	* pt.c (do_function_instantiation): Don't try to find a file-scope
218169689Skan	template for a member function.
219169689Skan
220169689SkanTue Nov 14 06:20:35 1995  Mike Stump  <mrs@cygnus.com>
221169689Skan
222169689Skan	* g++.c (main): Add handling of -nodefaultlibs.
223169689Skan
224169689SkanMon Nov 13 15:45:34 1995  Mike Stump  <mrs@cygnus.com>
225169689Skan
226169689Skan	* cp-tree.h (INDIRECT_BIND): Add a way for the frontend to
227169689Skan	distinguish between direct bindings of reference variables, and
228169689Skan	indirect bindings of reference variables.
229169689Skan	* cvt.c (build_up_reference): Use it.
230169689Skan	* typeck.c (convert_arguments): Use it to indicate this is an
231169689Skan	indirect binding.
232169689Skan	* decl.c (cp_finish_decl): Ensure that we reuse stack slots as fast
233169689Skan	as they are unused.
234169689Skan	(expand_static_init): Likewise.
235169689Skan	(cplus_expand_expr_stmt): Likewise.
236169689Skan	* decl2.c (finish_file): Likewise.
237169689Skan	* init.c (perform_member_init): Likewise.
238169689Skan	(emit_base_init): Likewise.
239169689Skan	(expand_aggr_vbase_init_1): Likewise.
240169689Skan
241169689SkanFri Nov 10 09:18:09 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
242169689Skan
243169689Skan	* decl.c (push_namespace): Rewrite to use build_lang_decl, so we
244169689Skan	get a DECL_LANG_SPECIFIC node.
245169689Skan	* cp-tree.h (lang_decl_flags): Add new member `level'.
246169689Skan	(NAMESPACE_LEVEL): Don't use decl.arguments, instead use the
247169689Skan	decl_flags level member.
248169689Skan
249169689SkanMon Nov  6 18:36:13 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
250169689Skan
251169689Skan	* call.c (build_method_call): Make sure instance has a
252169689Skan	TYPE_LANG_SPECIFIC node before we dive into it.
253169689Skan
254169689SkanSat Nov  4 20:01:52 1995  Jason Molenda  <crash@phydeaux.cygnus.com>
255169689Skan
256169689Skan	* method.c (make_thunk): Use TREE_SET_CODE to set thunk's tree code.
257169689Skan
258169689SkanThu Nov  2 17:56:57 1995  Mike Stump  <mrs@cygnus.com>
259169689Skan
260169689Skan	* decl.c (duplicate_decls): When smashing decls, smash staticness in
261169689Skan	the usual way.
262169689Skan
263169689SkanThu Nov  2 16:44:02 1995  Mike Stump  <mrs@cygnus.com>
264169689Skan
265169689Skan	* decl.c (poplevel): Handle the merging of subblocks of cleanups
266169689Skan	when finishing blocks that have already been created (usually due to
267169689Skan	the fixup goto code).  Fixes bad debugging information.
268169689Skan
269169689SkanWed Nov  1 12:33:53 1995  Jason Merrill  <jason@yorick.cygnus.com>
270169689Skan
271169689Skan	* method.c (hack_identifier): Don't abort when we get a TREE_LIST
272169689Skan	that's not a list of overloaded functions.
273169689Skan
274169689SkanWed Nov  1 11:38:58 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
275169689Skan
276169689Skan	* decl2.c (mark_vtable_entries): Check DECL_LANG_SPECIFIC on fn
277169689Skan	before trying to use DECL_ABSTRACT_VIRTUAL_P.
278169689Skan
279169689SkanTue Oct 31 11:56:55 1995  Jason Merrill  <jason@yorick.cygnus.com>
280169689Skan
281169689Skan	* decl2.c (mark_used): New function for hooking into setting of
282169689Skan	TREE_USED on decls.
283169689Skan	* call.c (build_method_call): Use it.
284169689Skan	* class.c (instantiate_type): Likewise.
285169689Skan	* init.c (build_offset_ref): Likewise.  Don't call assemble_external
286169689Skan	for all like-named functions.
287169689Skan	* method.c (hack_identifier): Likewise.
288169689Skan	(emit_thunk): Don't call assemble_external.
289169689Skan	(make_thunk): Create thunk as a FUNCTION_DECL so that it
290169689Skan	gets the right mode and ENCODE_SECTION_INFO works.
291169689Skan
292169689Skan	* parse.y: Use mark_used.  Pass operator names to do_identifier.
293169689Skan	* lex.c (do_identifier): Handle operator names.
294169689Skan
295169689Skan	* decl2.c (grokclassfn): Tweak __in_chrg attributes.
296169689Skan
297169689SkanThu Oct 26 16:45:58 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
298169689Skan
299169689Skan	* errfn.c: Include stdio.h.
300169689Skan	(cp_sprintf): Take out decl of sprintf, and cast sprintf to errorfn*.
301169689Skan
302169689SkanWed Oct 25 18:58:41 1995  Mike Stump  <mrs@cygnus.com>
303169689Skan
304169689Skan	* typeck2.c (digest_init): Always convert initializers to the
305169689Skan	right type.
306169689Skan
307169689SkanWed Oct 25 13:25:24 1995  Mike Stump  <mrs@cygnus.com>
308169689Skan
309169689Skan	* init.c (member_init_ok_or_else): Don't allow member initializers
310169689Skan	for indirect members, as it is invalid.
311169689Skan
312169689SkanWed Oct 25 11:35:28 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
313169689Skan
314169689Skan	* decl.c (grokdeclarator): Don't allow `friend signed ()'.
315169689Skan
316169689SkanFri Oct 20 10:30:59 1995  Mike Stump  <mrs@cygnus.com>
317169689Skan
318169689Skan	* parse.y (for.init.statement): Catch compound statements inside for
319169689Skan	initializations, if we're being pedantic.
320169689Skan
321169689SkanFri Oct 20 10:03:42 1995  Mike Stump  <mrs@cygnus.com>
322169689Skan
323169689Skan	* decl.c (lookup_tag): Return NULL_TREE if we don't find what we are
324169689Skan	looking for.
325169689Skan
326169689SkanThu Oct 19 14:26:10 1995  Mike Stump  <mrs@cygnus.com>
327169689Skan
328169689Skan	* error.c (dump_expr): Don't core dump when a boolean expression is
329169689Skan	used as a default argument.
330169689Skan
331169689SkanThu Oct 19 10:36:30 1995  Jason Merrill  <jason@yorick.cygnus.com>
332169689Skan
333169689Skan	* class.c (finish_struct_bits): Check aggregate_value_p instead of
334169689Skan	RETURN_IN_MEMORY.
335169689Skan
336169689SkanWed Oct 18 18:12:32 1995  Jason Merrill  <jason@yorick.cygnus.com>
337169689Skan
338169689Skan	* class.c (finish_struct_bits): Also set TREE_ADDRESSABLE on a
339169689Skan	BLKmode type that would otherwise be returned in registers.
340169689Skan
341169689SkanMon Oct 16 12:32:19 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
342169689Skan
343169689Skan	* g++.c (WITHLIBC): New macro.
344169689Skan	(main): Declare saw_libc.  Use WITHLIBC if `-lc' was used; set
345169689Skan	saw_libc and pass it at the end if it was set.
346169689Skan
347169689SkanWed Oct 11 16:30:34 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
348169689Skan
349169689Skan	* parse.y (fn.def1): Call split_specs_attrs in
350169689Skan	declmods notype_declarator case.
351169689Skan
352169689SkanSun Nov 26 14:47:42 1995  Richard Kenner  <kenner@mole.gnu.ai.mit.edu>
353169689Skan
354169689Skan	* Version 2.7.2 released.
355169689Skan
356169689SkanMon Nov 20 14:05:00 1995  Mike Stump  <mrs@cygnus.com>
357169689Skan
358169689Skan	* g++.c (pfatal_with_name): Add missing third argument to concat.
359169689Skan
360169689SkanThu Oct 26 13:59:54 1995  Mike Stump  <mrs@cygnus.com>
361169689Skan
362169689Skan	* init.c (expand_aggr_init): Handle cv qualifiers on the object's
363169689Skan	type.
364169689Skan
365169689SkanSat Nov 11 08:25:55 1995  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
366169689Skan
367169689Skan	* Version 2.7.1 released.
368169689Skan
369169689SkanThu Nov  2 17:02:47 1995  Jason Merrill  <jason@yorick.cygnus.com>
370169689Skan
371169689Skan	* call.c (convert_harshness): Handle references to arrays.
372169689Skan
373169689SkanFri Oct 27 14:20:21 1995  Jason Merrill  <jason@yorick.cygnus.com>
374169689Skan
375169689Skan	* typeck.c (comp_target_types): Check multi-level pointer
376169689Skan	conversions in both directions.
377169689Skan
378169689SkanTue Oct 17 21:39:05 1995  Jason Merrill  <jason@yorick.cygnus.com>
379169689Skan
380169689Skan	* parse.y (explicit_instantiation): Fix 'extern template' with no
381169689Skan	return type.
382169689Skan
383169689SkanMon Oct 16 14:35:20 1995  Jason Merrill  <jason@yorick.cygnus.com>
384169689Skan
385169689Skan	* parse.y (explicit_instantiation): Support automatic instantiation
386169689Skan	of constructors.
387169689Skan	(named_class_head_*): Support out-of-class definition of nested
388169689Skan	types.
389169689Skan
390169689SkanWed Oct 11 12:20:56 1995  Mike Stump  <mrs@cygnus.com>
391169689Skan
392169689Skan	* search.c (envelope_add_decl): New routine.  Fix so that
393169689Skan	methods are hidden in the same way that other members are.
394169689Skan	(dfs_pushdecls): Cleanup and move functionality out of line,
395169689Skan	into envelope_add_decl.
396169689Skan
397169689SkanTue Oct 10 15:46:01 1995  Mike Stump  <mrs@cygnus.com>
398169689Skan
399169689Skan	* typeck.c (mark_addressable): Only call assemble_external if we
400169689Skan	have started the output file.
401169689Skan
402169689SkanTue Oct 10 11:27:18 1995  Jason Merrill  <jason@yorick.cygnus.com>
403169689Skan
404169689Skan	* decl.c (start_function): Fix earlier cv-quals change.
405169689Skan
406169689SkanMon Oct  9 23:53:05 1995  Mike Stump  <mrs@cygnus.com>
407169689Skan
408169689Skan	* parse.y (complex_direct_notype_declarator): Only push the class if
409169689Skan	we are not already in the class.
410169689Skan
411169689SkanMon Oct  9 11:22:03 1995  Doug Evans  <dje@canuck.cygnus.com>
412169689Skan
413169689Skan	* decl.c (duplicate_decls): Call merge_machine_decl_attributes.
414169689Skan	Update olddecl's attributes too.
415169689Skan	(grokdeclarator): #if 0 out call to build_decl_attribute_variant.
416169689Skan	* typeck.c (common_type): Call merge_machine_type_attributes.
417169689Skan
418169689SkanFri Oct  6 14:44:27 1995  Mike Stump  <mrs@cygnus.com>
419169689Skan
420169689Skan	* typeck.c (mark_addressable): Add missing call to
421169689Skan	assemble_external.
422169689Skan
423169689SkanWed Oct  4 15:06:39 1995  Mike Stump  <mrs@cygnus.com>
424169689Skan
425169689Skan	* decl.c (store_parm_decls): Make sure the unwinder start comes
426169689Skan	before the exception specification start.
427169689Skan	* except.c (expand_exception_blocks): Make sure the unwinder end
428169689Skan	comes after the terminate protected catch clause region and after
429169689Skan	the end of the exception specification region.
430169689Skan
431169689SkanWed Oct  4 12:47:02 1995  Jason Merrill  <jason@yorick.cygnus.com>
432169689Skan
433169689Skan	* lex.c (real_yylex): Fix identifier case for linemode.
434169689Skan	(handle_sysv_pragma): Don't abort when we see a pragma we don't
435169689Skan	recognize.
436169689Skan
437169689SkanTue Oct  3 14:09:46 1995  Mike Stump  <mrs@cygnus.com>
438169689Skan
439169689Skan	* decl.c (store_parm_decls): Add a call to start_eh_unwinder.
440169689Skan	* except.c (init_exception_processing): __throw doesn't take any
441169689Skan	arguments.
442169689Skan	(expand_builtin_throw): Likewise.  Always use Pmode, instead of SImode
443169689Skan	for all pointers.  Use expand_builtin_return_addr to unwind the
444169689Skan	first level off the stack.
445169689Skan	(do_unwind): Always use Pmode, instead of SImode for all pointers.
446169689Skan	(expand_exception_blocks): Add a call to end_eh_unwinder.
447169689Skan	(start_eh_unwinder, end_eh_unwinder): New routines to build machine
448169689Skan	independent stack unwinders for function/method calls.
449169689Skan
450169689SkanMon Oct  2 17:20:42 1995  Mike Stump  <mrs@cygnus.com>
451169689Skan
452169689Skan	* tree.c (unsave_expr_now): Make sure we process the argument list
453169689Skan	of any called functions.  Fixes incorrect code generation for
454169689Skan	cleanups.
455169689Skan
456169689SkanMon Oct  2 13:04:16 1995  Mike Stump  <mrs@cygnus.com>
457169689Skan
458169689Skan	* typeck.c (get_member_function_from_ptrfunc): Save function if it
459169689Skan	needs it.  Cures core dump on things like (this->*(f()))().
460169689Skan
461169689SkanSat Sep 23 22:51:25 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
462169689Skan
463169689Skan	* decl.c (start_function): Conform to gcc cv-quals convention (no
464169689Skan	expression has a cv-qualified type) in RESULT_DECLs.
465169689Skan	* method.c (make_thunk): Likewise.
466169689Skan
467169689SkanFri Sep 22 10:21:13 1995  Mike Stump  <mrs@cygnus.com>
468169689Skan
469169689Skan	* decl.c (pushtag): Add in the namespace name for the tag.
470169689Skan
471169689SkanThu Sep 21 13:11:13 1995  Mike Stump  <mrs@cygnus.com>
472169689Skan
473169689Skan	* parse.y (maybe_base_class_list, base_class_list, base_class,
474169689Skan	base_class_access_list): Make sure we see the typenames for base
475169689Skan	classes.
476169689Skan	* lex.c (see_typename): Instead of failing to see a typename when
477169689Skan	there is no next token, perfer a typename, and get the next token.
478169689Skan
479169689SkanWed Sep 20 12:35:27 1995  Michael Meissner  <meissner@cygnus.com>
480169689Skan
481169689Skan	* decl.c (init_decl_processing): Add __builtin_expect.
482169689Skan
483169689SkanTue Sep 19 16:48:11 1995  Mike Stump  <mrs@cygnus.com>
484169689Skan
485169689Skan	* cvt.c (cp_convert_to_pointer): Don't allow leftover conversions to
486169689Skan	or from pointer to member functions, they must all be handled before
487169689Skan	this point.
488169689Skan
489169689SkanFri Sep 15 17:14:47 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
490169689Skan
491169689Skan	* init.c (resolve_offset_ref): Fix wording of non-static member
492169689Skan	being referenced as a static.
493169689Skan
494169689SkanFri Sep 15 12:39:11 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
495169689Skan
496169689Skan	* typeck.c (build_indirect_ref): Only bash pointer if we actually
497169689Skan	call build_expr_type_conversion.
498169689Skan
499169689SkanThu Sep 14 18:24:56 1995  Jason Merrill  <jason@deneb.cygnus.com>
500169689Skan
501169689Skan	* cvt.c (build_expr_type_conversion): Handle conversion from
502169689Skan	reference.
503169689Skan	* typeck.c (build_indirect_ref): Avoid infinite recursion.
504169689Skan
505169689SkanThu Sep 14 17:23:28 1995  Mike Stump  <mrs@cygnus.com>
506169689Skan
507169689Skan	* decl.c (expand_start_early_try_stmts): New routine to start a try
508169689Skan	block at the start of the function, for function-try-blocks.
509169689Skan	* cp-tree.h (expand_start_early_try_stmts): Declare it.
510169689Skan	* parse.y (function_try_block): Use it, instead of doing it here, as
511169689Skan	we don't want to include rtl.h here, as that conflicts with RETURN
512169689Skan	in the parser.
513169689Skan
514169689SkanWed Sep 13 18:32:24 1995  Mike Stump  <mrs@cygnus.com>
515169689Skan
516169689Skan	* lex.c (reinit_parse_for_block): Support saving inline
517169689Skan	function-try-blocks, uses peekyylex.
518169689Skan	* parse.y (eat_saved_input): New rule, permit the parser to see that
519169689Skan	END_OF_SAVED_INPUT is ok, as it can see this when parsing the
520169689Skan	handlers of a function-try-block.
521169689Skan	(fndef): Use it.
522169689Skan	(component_decl): Make sure TRY and RETURN can come after fn.def2.
523169689Skan	* spew.c (peekyylex): New routine to peek at what will come next.
524169689Skan
525169689SkanWed Sep 13 16:52:06 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
526169689Skan
527169689Skan	* typeck.c (comptypes): Tighten up comparisons of template type
528169689Skan	parms.
529169689Skan
530169689Skan	* decl.c (duplicate_decls): Turn off whining about virtual functions
531169689Skan	redeclared inline for now.
532169689Skan
533169689SkanWed Sep 13 11:13:40 1995  Mike Stump  <mrs@cygnus.com>
534169689Skan
535169689Skan	* decl.c (store_in_parms): New routine to put things before we
536169689Skan	put base inits.
537169689Skan	* cp-tree.h (store_in_parms): Declare it.
538169689Skan	* decl.c (store_parm_decls): Use it to makr sure the starting of the
539169689Skan	eh spec comes before base inits.
540169689Skan	(finish_function): Use sequences instead of the obsolete
541169689Skan	reorder_insns.
542169689Skan	* parse.y (fndef): Enhance readability and maintainability.  Update
543169689Skan	to include function_try_block syntax.
544169689Skan	(function_try_block): Add.
545169689Skan
546169689SkanTue Sep 12 17:43:07 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
547169689Skan
548169689Skan	* call.c (convert_harshness): Use comptypes, not ==, to check if
549169689Skan	TYPE and PARMTYPE are equivalent on a function type.
550169689Skan
551169689SkanTue Sep 12 17:31:33 1995  Douglas Rupp  <drupp@cs.washington.edu>
552169689Skan
553169689Skan	* Make-lang.in (cc1plus): Removed unnecessary $(exeext).
554169689Skan
555169689SkanMon Sep 11 23:24:07 1995  Mike Stump  <mrs@cygnus.com>
556169689Skan
557169689Skan	* except.c (expand_throw): Never allocate storage for thrown pointer
558169689Skan	to objects.
559169689Skan
560169689SkanMon Sep 11 19:36:45 1995  Mike Stump  <mrs@cygnus.com>
561169689Skan
562169689Skan	* except.c (expand_start_catch_block): Pointers to objects come
563169689Skan	back from catch matching already dereferenced, don't dereference
564169689Skan	again.
565169689Skan
566169689SkanMon Sep 11 15:46:28 1995  Mike Stump  <mrs@cygnus.com>
567169689Skan
568169689Skan	* except.c (expand_throw): Only decay the throw expression, don't do
569169689Skan	any default conversions.  This is so that one can throw and catch
570169689Skan	characters, and not have them match integers.
571169689Skan
572169689SkanMon Sep 11 13:46:45 1995  Mike Stump  <mrs@cygnus.com>
573169689Skan
574169689Skan	* error.c (dump_aggr_type): Deal with anonymous unions that don't
575169689Skan	have a TYPE_NAME.
576169689Skan
577169689SkanFri Sep  8 20:40:27 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
578169689Skan
579169689Skan	* lex.c (handle_sysv_pragma): Deal with getting a comma from yylex.
580169689Skan
581169689SkanFri Sep  8 15:51:41 1995  Mike Stump  <mrs@cygnus.com>
582169689Skan
583169689Skan	* except.c (expand_end_eh_spec): Handle empty EH specifications.
584169689Skan
585169689SkanFri Sep  8 15:27:22 1995  Mike Stump  <mrs@cygnus.com>
586169689Skan
587169689Skan	* cp-tree.h (expand_start_eh_spec): Declare new routine.
588169689Skan	(expand_end_eh_spec): Likewise.
589169689Skan	* decl.c (store_parm_decls): Call expand_start_eh_spec to process
590169689Skan	exception specifications.
591169689Skan	* except.c (expand_leftover_cleanups): Remove unused parameter.
592169689Skan	(expand_end_catch_block): Likewise.
593169689Skan	(expand_exception_blocks): Likewise.
594169689Skan	(expand_start_eh_spec): New routine to mark the start of an
595169689Skan	exception specification region.
596169689Skan	(expand_end_eh_spec): New routine to mark the end of an exception
597169689Skan	specification region.
598169689Skan	(expand_exception_blocks): Call expand_end_eh_spec to process
599169689Skan	exception specifications.
600169689Skan
601169689SkanFri Sep  8 14:40:48 1995  Per Bothner  <bothner@kalessin.cygnus.com>
602169689Skan
603169689Skan	* lex.c (do_identifier):  Use global binding in preference of
604169689Skan	dead for local variable.
605169689Skan
606169689SkanWed Sep  6 19:32:59 1995  Mike Stump  <mrs@cygnus.com>
607169689Skan
608169689Skan	* cp-tree.h (build_exception_variant): Remove used first argument.
609169689Skan	* decl.c (duplicate_decls): Likewise.
610169689Skan	(grokfndecl): Likewise.
611169689Skan	(revert_static_member_fn): Likewise.
612169689Skan	* decl2.c (grok_method_quals): Likewise.
613169689Skan	* tree.c (build_exception_variant): Likewise.
614169689Skan	* typeck.c (common_type): Likewise.
615169689Skan	* decl2.c (grokclassfn): After changing the type, call
616169689Skan	build_exception_variant, if necessary.
617169689Skan
618169689SkanTue Sep  5 15:56:27 1995  Mike Stump  <mrs@cygnus.com>
619169689Skan
620169689Skan	* except.c (expand_throw): Run cleanups for the throw expression.
621169689Skan
622169689SkanWed Aug 30 15:24:38 1995  Stephen L. Favor  <sfavor@tigger.intecom.com>
623169689Skan
624169689Skan	* except.c (expand_builtin_throw): Moved gen_label_rtx calls beyond
625169689Skan	the store_parm_decls call which does initialization in the emit_*
626169689Skan	code concerning label numbering.
627169689Skan
628169689SkanThu Aug 31 09:01:07 1995  Mike Stump  <mrs@cygnus.com>
629169689Skan
630169689Skan	* except.c (expand_internal_throw): Let the frontend be responsible
631169689Skan	for managing all frontend EH parameters, the backend routine only
632169689Skan	needs to deal with backend values.  type and value are no longer
633169689Skan	passed to __throw.
634169689Skan	(init_exception_processing): Likewise.
635169689Skan	(expand_start_all_catch): Likewise.
636169689Skan	(expand_end_all_catch): Likewise.
637169689Skan	(expand_leftover_cleanups): Likewise.
638169689Skan	(expand_end_catch_block): Likewise.
639169689Skan	(expand_builtin_throw): Likewise.
640169689Skan	(expand_throw): Likewise.
641169689Skan
642169689SkanTue Aug 29 15:04:36 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
643169689Skan
644169689Skan	* cp-tree.h (DECL_REAL_CONTEXT): Give the real declaration context
645169689Skan	for a decl.
646169689Skan	* decl.c (cp_finish_decl): Use it.
647169689Skan
648169689SkanTue Aug 29 10:30:27 1995  Mike Stump  <mrs@cygnus.com>
649169689Skan
650169689Skan	* except.c (expand_internal_throw): Oops, almost forgot type and
651169689Skan	value are now trees.
652169689Skan
653169689SkanMon Aug 28 17:57:45 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
654169689Skan
655169689Skan	Fix the attribute handling to make sure they get noted before we
656169689Skan	create the function's RTL, in case they can affect that.
657169689Skan	* decl.c (grokfndecl): New arg ATTRLIST.  Run
658169689Skan	cplus_decl_attributes before creating the decl's rtl.
659169689Skan	(grokdeclarator): New arg ATTRLIST, passed down into grokfndecl.
660169689Skan	(shadow_tag, groktypename, start_decl, start_method): Pass a
661169689Skan	NULL_TREE to grokdeclarator's new last arg.
662169689Skan	* decl2.c (grokfield): New arg ATTRLIST, passed into grokdeclarator.
663169689Skan	(grokbitfield, grokoptypename): Pass a NULL_TREE to
664169689Skan	grokdeclarator's new last arg.
665169689Skan	* except.c (expand_start_catch_block): Likewise.
666169689Skan	* pt.c (process_template_parm, end_template_decl,
667169689Skan	do_function_instantiation): Likewise.
668169689Skan	* cp-tree.h (grokfield): Add arg.
669169689Skan	(grokdeclarator): Move the prototype from here...
670169689Skan	* decl.h: ...to here.
671169689Skan	* lex.c (cons_up_default_function): Pass NULL_TREE to grokfield
672169689Skan	ATTRLIST argument.
673169689Skan	* parse.y: Create a list for the grokfield arg where appropriate,
674169689Skan	and pass it down instead of calling cplus_decl_attributes.
675169689Skan
676169689SkanMon Aug 28 15:07:24 1995  Mike Stump  <mrs@cygnus.com>
677169689Skan
678169689Skan	* except.c: Always allow turning on exception handling.  Allow cross
679169689Skan	compilations to use EH.
680169689Skan
681169689SkanThu Aug 24 17:39:24 1995  Mike Stump  <mrs@cygnus.com>
682169689Skan
683169689Skan	* except.c (saved_pc, saved_throw_type, saved_throw_value): Use
684169689Skan	trees, instead of rtxs, and don't depend on using special machine
685169689Skan	dependent registers.
686169689Skan	(expand_internal_throw): Likewise.
687169689Skan	(init_exception_processing): Likewise.
688169689Skan	(expand_start_all_catch): Likewise.
689169689Skan	(expand_end_all_catch): Likewise.
690169689Skan	(expand_start_catch_block): Likewise.
691169689Skan	(expand_leftover_cleanups): Likewise.
692169689Skan	(expand_end_catch_block): Likewise.
693169689Skan	(expand_builtin_throw): Likewise.
694169689Skan	(expand_throw): Likewise.
695169689Skan
696169689SkanWed Aug 23 17:25:51 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
697169689Skan
698169689Skan	* cvt.c (build_expr_type_conversion): Handle conversions to
699169689Skan	reference types.
700169689Skan
701169689SkanWed Aug 23 15:33:59 1995  Mike Stump  <mrs@cygnus.com>
702169689Skan
703169689Skan	* except.c (do_unwind): Work around backend bug with -fpic.
704169689Skan
705169689SkanTue Aug 22 17:20:07 1995  Per Bothner  <bothner@kalessin.cygnus.com>
706169689Skan
707169689Skan	* decl2.c (flag_new_for_scope):  Add a new mode that follows ANSI
708169689Skan	for-scoping, but supports (and warns about) old programs.
709169689Skan	Make the new mode (with value 1) the default.
710169689Skan	(lang_f_options):  The on-value for flag_new_for_scope is now 2.
711169689Skan	* cp-tree.h (DECL_DEAD_FOR_LOCAL, DECL_ERROR_REPORTED): New macros
712169689Skan	(DECL_SHADOWED_FOR_VAR):  Likewise.
713169689Skan	* decl.c (struct binding_level):  New fields dead_vars_from_for
714169689Skan	and is_for_scope.
715169689Skan	(note_level_for_for):  New function.
716169689Skan	(poplevel):  Special processing if is_for_scope.
717169689Skan	(pushdecl):  Warn if for-scope variable shadows local.
718169689Skan	* lex.c (do_identifier):  Handle old (non-ANSI) for scoping,
719169689Skan	and warn if conflicts.
720169689Skan	* parse.y (FOR):  Call note_level_for_for.
721169689Skan
722169689SkanMon Aug 21 10:28:31 1995  Jason Merrill  <jason@deneb.cygnus.com>
723169689Skan
724169689Skan	* decl2.c (import_export_inline): Class interface hackery does not
725169689Skan	apply to synthesized methods.
726169689Skan
727169689SkanSun Aug 20 16:29:00 1995  Mike Stump  <mrs@cygnus.com>
728169689Skan
729169689Skan	* search.c (virtual_context): Find the right context more often.
730169689Skan	Solves a `recoverable compiler error, fixups for virtual function'
731169689Skan	problem.
732169689Skan
733169689SkanSun Aug 20 13:53:24 1995  Mike Stump  <mrs@cygnus.com>
734169689Skan
735169689Skan	* except.c (expand_start_all_catch): Ensure that we always transfer
736169689Skan	control to the right EH handler, by rethrowing the end label on the
737169689Skan	region, instead of hoping we are nested and falling through.
738169689Skan	(expand_leftover_cleanups): Likewise.
739169689Skan	(end_protect): Since we now rethrow the end label, put a
740169689Skan	nop after it, so that outer regions are recognized.
741169689Skan	* init.c (build_vec_delete_1): New routine to handle most of vector
742169689Skan	deleting, all code moved here from build_vec_delete.
743169689Skan	(build_array_eh_cleanup): Use build_vec_delete_1 to do all the real
744169689Skan	work.
745169689Skan	(expand_vec_init): If the array needs partial destructing, setup an
746169689Skan	EH region to handle it.
747169689Skan	(build_vec_delete): Move lots of code to build_vec_delete_1, use
748169689Skan	build_vec_delete_1 to do the grunt work.
749169689Skan
750169689SkanSat Aug 19 14:25:33 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
751169689Skan
752169689Skan	Handle decl attributes properly for function definitions without
753169689Skan	previous attribute-loaded declarations.
754169689Skan	* decl.c (start_function): New arg ATTRS.  Add a call to
755169689Skan	cplus_decl_attributes with it before we create the RTL.
756169689Skan	* cp-tree.h (start_function): Update prototype.
757169689Skan	* parse.y (fn.def1): Pass ATTRS into start_function instead of
758169689Skan	trying to call cplus_decl_attributes too late.  Pass a NULL_TREE
759169689Skan	for other use.
760169689Skan	* decl2.c (finish_file): Pass NULL_TREE as fourth arg to
761169689Skan	start_function.
762169689Skan	* method.c (synthesize_method): Likewise.
763169689Skan	* except.c (expand_builtin_throw): Likewise for start on __throw.
764169689Skan
765169689SkanSat Aug 19 13:36:08 1995  Mike Stump  <mrs@cygnus.com>
766169689Skan
767169689Skan	* class.c (set_rtti_entry): Turn on -fvtable-thunk -frtti support.
768169689Skan	This changes -fvtable-thunks vtable layout, so a recompile will be
769169689Skan	necessary, if you use -fvtable-thunks.
770169689Skan	(get_vtable_entry): Use n, instead of i to be consistent with the
771169689Skan	rest of the compiler.
772169689Skan	(get_vtable_entry_n): Likewise.
773169689Skan	(add_virtual_function): Add a slot for the tdesc, if -fvtable-thunks
774169689Skan	are being used.
775169689Skan	(finish_struct_1): Likewise.
776169689Skan	(skip_rtti_stuff): New routine to collapse similar code from many
777169689Skan	different parts of the compiler.  I think I got them all.
778169689Skan	(modify_one_vtable): Use it.
779169689Skan	(fixup_vtable_deltas1): Likewise.
780169689Skan	(override_one_vtable): Likewise.
781169689Skan	* decl2.c (mark_vtable_entries): Likewise.
782169689Skan	* tree.c (debug_binfo): Likewise.
783169689Skan	* search.c (expand_upcast_fixups): Likewise.
784169689Skan	(get_abstract_virtuals_1): Likewise.  Use virtuals, instead of tmp to
785169689Skan	consistent with the rest of the compiler.
786169689Skan	(get_abstract_virtuals): Likewise.
787169689Skan	* cp-tree.h (skip_rtti_stuff): New routine, declare it.
788169689Skan	* gc.c (build_headof): Support -fvtable-thunk and -frtti together.
789169689Skan	(build_typeid): Likewise.
790169689Skan	(build_classof): Remove old style way of doing rtti.  Remove support
791169689Skan	for `classof' and `headof'.
792169689Skan	* gxx.gperf: Likewise.
793169689Skan	* hash.h: Likewise.
794169689Skan	* parse.y: Likewise.
795169689Skan
796169689SkanFri Aug 18 17:31:58 1995  Jason Merrill  <jason@deneb.cygnus.com>
797169689Skan
798169689Skan	* decl.c (start_function): Clear ctor_label and dtor_label.
799169689Skan
800169689Skan	* class.c (finish_struct_1): Fix handling of access decls.
801169689Skan
802169689SkanTue Aug 15 19:21:54 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
803169689Skan
804169689Skan	* class.c (finish_struct): Only do minimal processing here, so it
805169689Skan	can be used for class template definitions, as well.
806169689Skan	(finish_struct_1): New function with the rest of the code.
807169689Skan
808169689SkanTue Aug 15 09:46:16 1995  Mike Stump  <mrs@cygnus.com>
809169689Skan
810169689Skan	* class.c (prepare_fresh_vtable): On second though, always build the
811169689Skan	offset (see Aug 10 change), unless -fvtable-thunks is given.  It
812169689Skan	does this by calling the new routine set_rtti_entry.
813169689Skan	(finish_struct): Likewise.
814169689Skan	(set_rtti_entry): New routine to update the rtti information at the
815169689Skan	start of the vtable.
816169689Skan
817169689SkanMon Aug 14 12:21:22 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
818169689Skan
819169689Skan	* error.c (dump_decl, case IDENTIFIER_NODE): Only work on a dtor
820169689Skan	if it's declared in the C++ language spec.
821169689Skan	(dump_function_decl): Likewise.
822169689Skan	(dump_function_name): Likewise.
823169689Skan	(ident_fndecl): Make sure we got something back from lookup_name.
824169689Skan	* decl.c (start_function): Likewise.
825169689Skan
826169689SkanFri Aug 11 16:52:15 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
827169689Skan
828169689Skan	* call.c (build_method_call): Don't call build_new when calling a
829169689Skan	constructor without an instance.
830169689Skan
831169689SkanThu Aug 10 20:00:17 1995  Mike Stump  <mrs@cygnus.com>
832169689Skan
833169689Skan	* class.c (prepare_fresh_vtable): Always build the offset to the
834169689Skan	complete object, as it doesn't cost much.  This allows dynamic_cast
835169689Skan	to void * to work when -frtti isn't given.
836169689Skan	(finish_struct): Likewise.
837169689Skan
838169689SkanThu Aug 10 16:31:28 1995  Mike Stump  <mrs@cygnus.com>
839169689Skan
840169689Skan	* except.c (build_eh_type): Split out some functionality to new
841169689Skan	routine named build_eh_type_type.
842169689Skan	(build_eh_type_type): New routine.
843169689Skan	(expand_start_catch_block): Use build_eh_type_type, as we never want
844169689Skan	the dynamic type of the catch parameter, just the static type.
845169689Skan	Fixes core dumps when -frtti is used and one catchs pointers to
846169689Skan	classes.
847169689Skan
848169689SkanThu Aug 10 14:55:29 1995  Mike Stump  <mrs@cygnus.com>
849169689Skan
850169689Skan	* except.c (expand_builtin_throw): Since we now use normal calling
851169689Skan	conventions for __throw, we have to remove the first layer off the
852169689Skan	stack, so that the next context we search for handlers is the outer
853169689Skan	context instead of the context that had the call to __throw, if we
854169689Skan	don't immediately find the desired context.
855169689Skan
856169689SkanTue Aug  8 17:44:23 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
857169689Skan
858169689Skan	* tree.c (cp_expand_decl_cleanup): Returns int, not tree.
859169689Skan	* cp-tree.h: Update.
860169689Skan
861169689Skan	* parse.y (template_type_parm): Add support for `typename'.
862169689Skan
863169689SkanTue Aug  8 12:06:31 1995  Mike Stump  <mrs@cygnus.com>
864169689Skan
865169689Skan	* except.c (expand_internal_throw): New internal routine to throw a
866169689Skan	value.
867169689Skan	(expand_end_all_catch, expand_leftover_cleanups): All throwers
868169689Skan	changed to use `expand_internal_throw' instead of jumping to throw
869169689Skan	label.
870169689Skan	(expand_end_catch_block, expand_throw): Likewise.
871169689Skan	(throw_label): Removed.
872169689Skan	(expand_builtin_throw): Changed so that EH parameters are passed by
873169689Skan	normal function call conventions.  Completes Aug 4th work.
874169689Skan
875169689SkanFri Aug  4 17:17:08 1995  Mike Stump  <mrs@cygnus.com>
876169689Skan
877169689Skan	* cp-tree.h (expand_builtin_throw): Declare it.
878169689Skan	* decl2.c (finish_file): Call expand_builtin_throw.
879169689Skan	* except.c (make_first_label): Remove.
880169689Skan	(init_exception_processing): Don't use a LABEL_REF for throw_label,
881169689Skan	instead use a SYMBOL_REF, this is so that we don't use LABEL_REFs in
882169689Skan	other functions that don't really appear in those functions.  This
883169689Skan	solves a problem where cc1plus consumed exponential amounts of
884169689Skan	memory when -Wall was used.
885169689Skan	(expand_end_all_catch, expand_leftover_cleanups,
886169689Skan	expand_end_catch_block, expand_throw): Change all uses of
887169689Skan	throw_label to match new style.
888169689Skan	(do_unwind): Rename parameter to inner_throw_label, as it is now
889169689Skan	different from throw_label.  Also, assume that our caller will wrap
890169689Skan	the passed label with a LABEL_REF, if needed.
891169689Skan	(expand_builtin_throw): Make external, change so that the generated
892169689Skan	throw is now a real function.
893169689Skan	(expand_exception_blocks): Never generate throw code inside another
894169689Skan	function.
895169689Skan
896169689SkanFri Aug  4 12:20:02 1995  Mike Stump  <mrs@cygnus.com>
897169689Skan
898169689Skan	* decl.c (grokdeclarator): Move checking of mutable const objects
899169689Skan	and mutable static objects down, as we might decide during parsing
900169689Skan	to unset staticp or constp (for example, when const is part of the
901169689Skan	object being pointed to).
902169689Skan
903169689SkanThu Aug  3 17:13:43 1995  Mike Stump  <mrs@cygnus.com>
904169689Skan
905169689Skan	* except.c (output_exception_table_entry): Enhance portability to
906169689Skan	weird machines.
907169689Skan	(emit_exception_table): Likewise.
908169689Skan
909169689SkanThu Aug  3 16:41:38 1995  Mike Stump  <mrs@cygnus.com>
910169689Skan
911169689Skan	* typeck.c (build_ptrmemfunc): Handle casting of pointer to
912169689Skan	non-virtual member functions.
913169689Skan
914169689SkanWed Aug  2 11:58:25 1995  Mike Stump  <mrs@cygnus.com>
915169689Skan
916169689Skan	* gc.c (build_typeid): Strip cv qualifiers so that const T&, T&, T
917169689Skan	and const T all match.
918169689Skan
919169689SkanWed Aug  2 11:25:33 1995  Mike Stump  <mrs@cygnus.com>
920169689Skan
921169689Skan	* except.c (build_eh_type): Strip cv qualifiers so that const T&,
922169689Skan	T&, T and const T all match.
923169689Skan
924169689SkanTue Aug  1 14:20:16 1995  Mike Stump  <mrs@cygnus.com>
925169689Skan
926169689Skan	* except.c: Fix up comments, cleanup code and eliminate exceptNode,
927169689Skan	exceptStack, exceptstack, push_except_stmts, pop_except_stmts,
928169689Skan	new_except_stack, push_last_insn, pop_last_insn, insn_save_node and
929169689Skan	InsnSave.  Also, numerous speed improvements, and correctness
930169689Skan	improvements.  Double faulting in all situations should now be
931169689Skan	handled correctly.
932169689Skan	(expand_start_all_catch): Instead of having many terminate protected
933169689Skan	regions, just have one.
934169689Skan	(expand_start_catch_block): No longer have to protect
935169689Skan	false_label_rtx, as it isn't used for EH region marking.
936169689Skan	(expand_end_catch_block): Expand out EH cleanups here by using
937169689Skan	expand_leftover_cleanups.
938169689Skan	(expand_end_all_catch): Use sequences instead of playing with insn
939169689Skan	links directly.
940169689Skan	(expand_exception_blocks): Likewise.  Also protect all catch clauses
941169689Skan	with one terminate region.
942169689Skan
943169689SkanMon Jul 31 13:24:30 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
944169689Skan
945169689Skan	* method.c (report_type_mismatch): Don't talk about an object
946169689Skan	parameter for non-methods.
947169689Skan
948169689SkanSun Jul 30 13:13:02 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
949169689Skan
950169689Skan	* class.c (finish_struct): Catch private and protected members of
951169689Skan	anonymous unions here.
952169689Skan	* decl2.c (finish_anon_union): And here.
953169689Skan	* parse.y: Instead of here.
954169689Skan
955169689Skan	* errfn.c (ARGSLIST): Support passing four args.
956169689Skan	* error.c (cv_as_string): New function.
957169689Skan	(cp_printers): Add it.
958169689Skan	* call.c (build_method_call): Report 'const' at end of pseudo-decl.
959169689Skan
960169689Skan	* method.c (report_type_mismatch): Deal with a bad_arg of 0.
961169689Skan
962169689Skan	* init.c (expand_aggr_init): Handle volatile objects, too.
963169689Skan
964169689SkanSat Jul 29 13:42:03 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
965169689Skan
966169689Skan	* decl.c (struct binding_level): Keep list of incomplete decls.
967169689Skan	(print_binding_level): Use list_length to count them.
968169689Skan	(pushdecl): Build up the list.
969169689Skan	(hack_incomplete_structures): Walk it and prune completed decls.
970169689Skan
971169689SkanFri Jul 28 15:26:44 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
972169689Skan
973169689Skan	* typeck.c (comp_target_types): Don't check const and volatile for
974169689Skan	function types.
975169689Skan	(comp_ptr_ttypes_real): Likewise.
976169689Skan
977169689SkanThu Jul 27 15:40:48 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
978169689Skan
979169689Skan	* typeck.c (comp_target_types): Fix.
980169689Skan
981169689SkanThu Jul 27 15:10:48 1995  Mike Stump  <mrs@cygnus.com>
982169689Skan
983169689Skan	* cp-tree.h (unsave_expr_now, build_unsave_expr,
984169689Skan	cp_expand_decl_cleanup): Declare new routines.
985169689Skan	* decl.c (cp_finish_decl, store_parm_decls,
986169689Skan	hack_incomplete_structures): Change all cals from
987169689Skan	expand_decl_cleanup to cp_expand_decl_cleanup.
988169689Skan	* gc.c (protect_value_from_gc): Likewise.
989169689Skan	* expr.c (cplus_expand_expr): Handle UNSAVE_EXPRs.
990169689Skan	* tree.c (unsave_expr): New routine to build an UNSAVE_EXPR.
991169689Skan	(unsave_expr_now): Backend routine used by tree expander.
992169689Skan	(cp_expand_decl_cleanup): Wrap second argument in an UNSAVE_EXPR to
993169689Skan	work around a limitation in the backend.  The backend uses the
994169689Skan	cleanups multiple times, on disjoint control flows, so we cannot
995169689Skan	pass unsaved SAVE_EXPRs to the backend.
996169689Skan	* tree.def (UNSAVE_EXPR): New tree code.
997169689Skan	* typeck.c (c_expand_return): Move goto/return code up inside
998169689Skan	conditional, as we don't always want to do this, we only want to do
999169689Skan	this when we don't otherwise finish with this control flow.
1000169689Skan
1001169689SkanThu Jul 27 10:38:43 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
1002169689Skan
1003169689Skan	* parse.y (typespec): Only complain about typeof if we're not
1004169689Skan	getting it from a system header.
1005169689Skan
1006169689SkanThu Jul 27 10:26:23 1995  Doug Evans  <dje@canuck.cygnus.com>
1007169689Skan
1008169689Skan	Clean up prefix attribute handling.
1009169689Skan	* parse.y (reserved_declspecs): Link prefix attributes with declspecs.
1010169689Skan	(declmods): Likewise.
1011169689Skan	(all rules that reference typed_declspecs and declmods): Call
1012169689Skan	split_specs_attrs or strip_attrs to separate declspecs and attrs.
1013169689Skan	(lang_extdef): Delete resetting of prefix_attributes.
1014169689Skan	(template_def, notype_declarator rule): Use NULL_TREE for
1015169689Skan	prefix_attributes.
1016169689Skan	(condition): Use NULL_TREE for prefix_attributes.
1017169689Skan	(setattrs): Deleted.
1018169689Skan	(nomods_initdcl0): Set prefix_attributes to NULL_TREE.
1019169689Skan	(component_decl): Delete resetting of prefix_attributes.
1020169689Skan	(component_decl_1, notype_components rule): Use NULL_TREE for
1021169689Skan	prefix_attributes.
1022169689Skan	(simple_stmt): Delete resetting of prefix_attributes.
1023169689Skan
1024169689SkanMon Jul 24 13:37:53 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1025169689Skan
1026169689Skan	* call.c (convert_harshness): Deal with reference conversions before
1027169689Skan	others.  Actually do array->pointer decay.  Call comp_target_types
1028169689Skan	with pointer types rather than their targets.
1029169689Skan
1030169689Skan	* typeck.c (comp_target_types): Avoid assigning D const * to B *.
1031169689Skan
1032169689SkanMon Jul 24 08:54:46 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
1033169689Skan
1034169689Skan	* pt.c (to_be_restored): Move decl to global scope.
1035169689Skan
1036169689SkanSat Jul 22 12:22:11 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1037169689Skan
1038169689Skan	* decl.c (start_decl): Put back clearing of DECL_IN_AGGR_P.
1039169689Skan
1040169689SkanFri Jul 21 17:09:02 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1041169689Skan
1042169689Skan	* decl.c (grokdeclarator): Downgrade error about 'extern int A::i'
1043169689Skan	to pedwarn.
1044169689Skan
1045169689Skan	* pt.c (instantiate_template): Also avoid instantiation if the
1046169689Skan	function has already been declared to be a specialization.
1047169689Skan
1048169689Skan	* decl2.c (check_classfn): Ignore cname argument, and return the
1049169689Skan	matching function.
1050169689Skan
1051169689Skan	* decl.c (start_decl): Handle declarations of member functions
1052169689Skan	outside of the class (i.e. specialization declarations).
1053169689Skan
1054169689SkanThu Jul 20 10:34:48 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1055169689Skan
1056169689Skan	* class.c (finish_struct): Don't mess with the type of bitfields.
1057169689Skan
1058169689Skan	* various.c: s/TYPE_POINTER_TO/build_pointer_type/.
1059169689Skan
1060169689SkanThu Jul 20 01:43:10 1995  Mike Stump  <mrs@cygnus.com>
1061169689Skan
1062169689Skan	* init.c (expand_aggr_init): Assume LOOKUP_ONLYCONVERTING if init
1063169689Skan	is not a parameter list (TREE_LIST).
1064169689Skan	(expand_default_init): If LOOKUP_ONLYCONVERTING is set, then set
1065169689Skan	LOOKUP_NO_CONVERSION so that we don't allow two-level conversions,
1066169689Skan	but don't set it otherwise.
1067169689Skan
1068169689SkanWed Jul 19 20:32:01 1995  Mike Stump  <mrs@cygnus.com>
1069169689Skan
1070169689Skan	* init.c (expand_default_init): Don't allow two-level conversions
1071169689Skan	during construction.
1072169689Skan
1073169689SkanWed Jul 19 18:06:37 1995  Mike Stump  <mrs@cygnus.com>
1074169689Skan
1075169689Skan	* gc.c (build_headof): The type of dyncasting to a pointer to cv
1076169689Skan	void, should be pointer to cv void.
1077169689Skan
1078169689SkanWed Jul 19 17:25:43 1995  Mike Stump  <mrs@cygnus.com>
1079169689Skan
1080169689Skan	* gc.c (build_dynamic_cast): Allow casting in const.
1081169689Skan
1082169689SkanWed Jul 19 16:34:27 1995  Mike Stump  <mrs@cygnus.com>
1083169689Skan
1084169689Skan	* typeck.c (build_const_cast): If we are passed error_mark_node,
1085169689Skan	return it.
1086169689Skan
1087169689SkanWed Jul 19 15:24:48 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
1088169689Skan
1089169689Skan	* class.c (push_nested_class): Make sure TYPE is non-nil.
1090169689Skan
1091169689Skan	* cvt.c (type_promotes_to): Watch for error_mark_node on the
1092169689Skan	incoming TYPE.
1093169689Skan
1094169689SkanWed Jul 19 13:23:12 1995  Gerald Baumgartner  <gb@alexander.cs.purdue.edu>
1095169689Skan
1096169689Skan	* cp-tree.h (SIGTABLE_VT_OFF_NAME): Renamed from SIGTABLE_OFFSET_NAME.
1097169689Skan	(SIGTABLE_VB_OFF_NAME): New macro.
1098169689Skan	(vt_off_identifier): Renamed from offset_identifier.
1099169689Skan	(vb_off_identifier): Added extern declaration.
1100169689Skan
1101169689Skan	* decl.c (vt_off_identifier): Renamed from offset identifier.
1102169689Skan	(vb_off_identifier): New variable to hold the identifier for the
1103169689Skan	sigtable field vb_off.
1104169689Skan	(init_decl_processing): Initialize vb_off_identifier.
1105169689Skan	Renamed vt_off_identifier from offset_identifier.
1106169689Skan	* sig.c (build_signature_method_call): Renamed offset_identifier and
1107169689Skan	local variable offset to vt_off_identifier and vt_off, respectively.
1108169689Skan	* sig.c (build_signature_table_constructor): Renamed offset to vt_off.
1109169689Skan
1110169689Skan	* decl.c (init_decl_processing): Add vb_off field to
1111169689Skan	sigtable_entry_type.  Reorder fields so that pfn gets properly
1112169689Skan	aligned at a 64 bit boundary on the Alpha.
1113169689Skan	* sig.c (build_signature_table_constructor): Build the constructor
1114169689Skan	according to the new layout.  Set the vb_off field to -1 for now.
1115169689Skan
1116169689Skan	* decl.c (init_decl_processing): Align sigtable_entry_type on word
1117169689Skan	boundaries instead of double word boundaries to save space.
1118169689Skan
1119169689SkanTue Jul 18 16:58:37 1995  Mike Stump  <mrs@cygnus.com>
1120169689Skan
1121169689Skan	* cvt.c (cp_convert): Always call build_cplus_new for a ctor.
1122169689Skan
1123169689SkanTue Jul 18 14:24:53 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
1124169689Skan
1125169689Skan	* parse.y (opt.component_decl_list): Only forbid private/protected
1126169689Skan	in anonymous unions.  We need to make this know when the type is
1127169689Skan	defined for an object, to not give the error.
1128169689Skan
1129169689SkanMon Jul 17 14:22:44 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
1130169689Skan
1131169689Skan	* parse.y (opt.component_decl_list): Don't allow access control
1132169689Skan	as private or protected for union members.
1133169689Skan
1134169689SkanSun Jul 16 14:01:00 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
1135169689Skan
1136169689Skan	* lex.c (check_newline): For 'p' case, move goto skipline line to
1137169689Skan	before end brace for 'pragma'.
1138169689Skan
1139169689SkanFri Jul  7 13:55:58 1995  Mike Stump  <mrs@cygnus.com>
1140169689Skan
1141169689Skan	* g++.1: Tiny updates.
1142169689Skan
1143169689SkanFri Jul  7 13:05:20 1995  Mike Stump  <mrs@cygnus.com>
1144169689Skan
1145169689Skan	* decl.c (cp_finish_decl): Only destruct local static variables if
1146169689Skan	they are constructed, and only construct the first time control
1147169689Skan	passes completely through its declaration (if not initialized with a
1148169689Skan	constant-expression).
1149169689Skan	(expand_static_init): Likewise.
1150169689Skan
1151169689SkanWed Jul  5 14:05:04 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
1152169689Skan
1153169689Skan	* typeck.c (comptypes, case OFFSET_REF): If either offset basetype
1154169689Skan	is a TEMPLATE_TYPE_PARM, give a match.
1155169689Skan
1156169689SkanFri Jun 30 15:42:57 1995  Mike Stump  <mrs@cygnus.com>
1157169689Skan
1158169689Skan	* method.c (build_overload_value): Handle encoding of null pointer
1159169689Skan	constants (or any pointer with a constant numeric value) for
1160169689Skan	templates.
1161169689Skan
1162169689SkanFri Jun 30 13:45:51 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
1163169689Skan
1164169689Skan	* call.c (convert_harshness): Add QUAL_CODE when we're faced with
1165169689Skan	const vs non-const for void conversions.
1166169689Skan
1167169689SkanFri Jun 30 10:19:52 1995  Mike Stump  <mrs@cygnus.com>
1168169689Skan
1169169689Skan	* except.c (expand_start_all_catch): Fix problem with finding an
1170169689Skan	outer nested try block when there is no code to separate it from an
1171169689Skan	inner try block.
1172169689Skan
1173169689SkanFri Jun 30 02:22:26 1995  Mike Stump  <mrs@cygnus.com>
1174169689Skan
1175169689Skan	* search.c (dfs_pushdecls): Consume 2 or 3 orders of magnitude less
1176169689Skan	memory please when virtual bases are used.
1177169689Skan
1178169689SkanThu Jun 29 19:03:47 1995  Mike Stump  <mrs@cygnus.com>
1179169689Skan
1180169689Skan	* class.c (build_vbase_path): Avoid testing things that cannot be
1181169689Skan	null to see if they are null.
1182169689Skan	* cvt.c (convert_pointer_to_vbase): Remove code that doesn't work.
1183169689Skan	* decl.c (finish_function): Pass a type into the new
1184169689Skan	convert_pointer_to_vbase instead of a binfo.
1185169689Skan	* search.c (convert_pointer_to_vbase): Rewritten to use get_vbase
1186169689Skan	and convert_pointer_to_real.
1187169689Skan	(expand_indirect_vtbls_init): Use convert_pointer_to_vbase instead
1188169689Skan	of the more cryptic call to get_vbase.
1189169689Skan
1190169689SkanThu Jun 29 09:35:05 1995  Mike Stump  <mrs@cygnus.com>
1191169689Skan
1192169689Skan	* decl.c (BOOL_TYPE_SIZE): Fix broken SLOW_BYTE_ACCESS check.
1193169689Skan
1194169689SkanThu Jun 29 03:43:55 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1195169689Skan
1196169689Skan	* pt.c (instantiate_template): Don't strip 'this' twice.
1197169689Skan
1198169689Skan	* pt.c (coerce_template_parms): Allow null pointer constants.
1199169689Skan
1200169689Skan	* decl.c (revert_static_member_fn): But only if DECL_ARGUMENTS is
1201169689Skan	set.
1202169689Skan
1203169689SkanWed Jun 28 18:39:03 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1204169689Skan
1205169689Skan	* decl.c (revert_static_member_fn): Also remove 'this' from
1206169689Skan	DECL_ARGUMENTS.
1207169689Skan	* decl2.c (check_classfn): Don't revert this function until we get a
1208169689Skan	match.
1209169689Skan
1210169689SkanWed Jun 28 14:07:27 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
1211169689Skan
1212169689Skan	* parse.y (component_decl): Clear PREFIX_ATTRIBUTES here.
1213169689Skan
1214169689SkanWed Jun 28 11:05:13 1995  Mike Stump  <mrs@cygnus.com>
1215169689Skan
1216169689Skan	* decl2.c (finish_file): Handle global vector news.
1217169689Skan	* init.c (build_new): Encode vector news so that later we will know
1218169689Skan	how many elements there are.
1219169689Skan
1220169689SkanMon Jun 26 13:38:06 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1221169689Skan
1222169689Skan	* expr.c (cplus_expand_expr): Don't mess with temp slots.
1223169689Skan
1224169689Skan	* decl2.c (warn_if_unknown_interface): Don't crash if tinst_for_decl
1225169689Skan	returns null.
1226169689Skan
1227169689Skan	* decl2.c (check_classfn): Use revert_static_member_fn.
1228169689Skan	* decl.c (revert_static_member_fn): Diagnose static member functions
1229169689Skan	declared const or volatile.
1230169689Skan
1231169689Skan	* decl2.c (grokfield): Check for missing default args here, too.
1232169689Skan	(check_default_args): Function to do the checking.
1233169689Skan	* decl.c (pushdecl): Use it.
1234169689Skan
1235169689Skan	* decl.c (pushdecl): Don't warn about shadowing a member of `this'
1236169689Skan	if there is no `this'.
1237169689Skan
1238169689SkanSun Jun 25 11:34:25 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1239169689Skan
1240169689Skan	* call.c (build_method_call): Downgrade 'called before definition'
1241169689Skan	to a warning, as it ought to go away after Monterey.
1242169689Skan
1243169689SkanSat Jun 24 14:18:42 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1244169689Skan
1245169689Skan	* pt.c (coerce_template_parms): Don't do extra checking on pointer
1246169689Skan	to member arguments.
1247169689Skan
1248169689Skan	* class.c (finish_struct): const and reference members don't prevent
1249169689Skan	a class from being an aggregate.
1250169689Skan
1251169689Skan	* class.c (finish_struct): Signatures are always aggregates.
1252169689Skan
1253169689SkanFri Jun 23 17:20:29 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1254169689Skan
1255169689Skan	* decl2.c (check_classfn): Improve error message.
1256169689Skan
1257169689Skan	* pt.c (tsubst): Handle PROMOTE_PROTOTYPES.
1258169689Skan
1259169689SkanThu Jun 22 01:50:42 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1260169689Skan
1261169689Skan	* typeck.c (comptypes): Don't ignore method quals.
1262169689Skan
1263169689Skan	* class.c (finish_struct): Non-abstract virtuals are always USED.
1264169689Skan
1265169689Skan	* decl.c (build_ptrmemfunc_type): The underlying union type isn't
1266169689Skan	IS_AGGR_TYPE, either.
1267169689Skan	* class.c (finish_struct): Use CLASSTYPE_NON_AGGREGATE instead.
1268169689Skan	* cp-tree.h: Likewise.
1269169689Skan
1270169689Skan	* cp-tree.h (lang_type): Add aggregate.
1271169689Skan	(CLASSTYPE_AGGREGATE): New macro.
1272169689Skan	(TYPE_NON_AGGREGATE_CLASS): Likewise.
1273169689Skan	* class.c (finish_struct): Determine whether a class is an
1274169689Skan	aggregate.
1275169689Skan	* decl.c (cp_finish_decl): Check TYPE_NON_AGGREGATE_CLASS instead of
1276169689Skan	TYPE_NEEDS_CONSTRUCTING.
1277169689Skan	* typeck2.c (digest_init): Check TYPE_NON_AGGREGATE_CLASS for
1278169689Skan	subobjects, too.
1279169689Skan
1280169689Skan	* pt.c (tsubst, PARM_TYPE): Propagate DECL_ARTIFICIAL.
1281169689Skan
1282169689Skan	* decl.c (start_function): For pre-parsed functions, layout all of
1283169689Skan	the parm decls again.
1284169689Skan	(grokvardecl): TREE_PUBLIC depends on DECL_THIS_EXTERN, not
1285169689Skan	DECL_EXTERNAL.
1286169689Skan
1287169689Skan	* pt.c (coerce_template_parms): Improve checking for invalid
1288169689Skan	template parms.
1289169689Skan
1290169689SkanWed Jun 21 12:01:16 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
1291169689Skan
1292169689Skan	* decl.c (grokdeclarator): Forbid declaration of a static member
1293169689Skan	with the same name as its enclosing class.
1294169689Skan
1295169689SkanMon Jun 19 10:28:14 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1296169689Skan
1297169689Skan	* decl.c (finish_function): Clear current_class_decl.
1298169689Skan
1299169689Skan	* typeck.c (build_conditional_expr): Use convert (boolean_type_node
1300169689Skan	instead of truthvalue_conversion.
1301169689Skan
1302169689Skan	* class.c (finish_struct): A data member with the same name as the
1303169689Skan	class doesn't suppress constructors.
1304169689Skan
1305169689SkanFri Jun 16 18:11:39 1995  Gerald Baumgartner  <gb@alexander.cs.purdue.edu>
1306169689Skan
1307169689Skan	* decl.c (start_function): If current_class_decl is a signature
1308169689Skan	pointer, don't dereference it but set C_C_D to current_class_decl.
1309169689Skan
1310169689SkanFri Jun 16 17:06:28 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1311169689Skan
1312169689Skan	* decl.c (duplicate_decls): Complain about virtual functions
1313169689Skan	redeclared to be inline.
1314169689Skan
1315169689SkanFri Jun 16 13:20:38 1995  Mike Stump  <mrs@cygnus.com>
1316169689Skan
1317169689Skan	* decl.c (get_unique_name): New routine to name unnamed namespaces.
1318169689Skan	(push_namespace): Use get_unique_name for naming unnamed namespaces.
1319169689Skan
1320169689SkanThu Jun 15 15:00:41 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1321169689Skan
1322169689Skan	* parse.y: Call cplus_decl_attributes with prefix_attributes where
1323169689Skan	appropriate.
1324169689Skan
1325169689SkanWed Jun 14 19:24:49 1995  Mike Stump  <mrs@cygnus.com>
1326169689Skan
1327169689Skan	* search.c (get_vbase): New routine to switch hierarchies from the
1328169689Skan	CLASSTYPE_VBASECLASSES to the normal one.
1329169689Skan	(expand_indirect_vtbls_init): Use get_vbase to figure out how we
1330169689Skan	want to convert to a vbase pointer.
1331169689Skan
1332169689SkanMon Jun 12 17:50:30 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1333169689Skan
1334169689Skan	* pt.c (instantiate_class_template): Add the new instantiation to
1335169689Skan	template_classes.
1336169689Skan	(do_pending_expansions): Call instantiate_member_templates on all of
1337169689Skan	the classes in template_classes.
1338169689Skan
1339169689SkanMon Jun 12 12:36:59 1995  Mike Stump  <mrs@cygnus.com>
1340169689Skan
1341169689Skan	* decl.c (complete_array_type): Fill in the TYPE_DOMAIN of our
1342169689Skan	TYPE_MAIN_VARIANT if it is not filled in.
1343169689Skan	* init.c (build_delete): If the TYPE_DOMAIN is not set, give an
1344169689Skan	error instead of core dumping.
1345169689Skan
1346169689SkanMon Jun 12 10:41:40 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1347169689Skan
1348169689Skan	* call.c (can_convert): Also check for distance > 0.
1349169689Skan	(can_convert_arg): Likewise.
1350169689Skan	(user_harshness): Likewise.
1351169689Skan
1352169689SkanFri Jun  9 19:17:21 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1353169689Skan
1354169689Skan	* g++.c (MATH_LIBRARY): Provide default.
1355169689Skan	(main): Always link with the math library if we link with libstdc++.
1356169689Skan
1357169689Skan	* decl.c (start_function): Complain about redefinition of a function
1358169689Skan	even when the pending_inline version is compiled after the other
1359169689Skan	version.
1360169689Skan
1361169689SkanThu Jun  8 15:44:38 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1362169689Skan
1363169689Skan	* gc.c (build_dynamic_cast): Build up a reference to a parameter of
1364169689Skan	aggregate type.
1365169689Skan
1366169689SkanWed Jun  7 15:31:57 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
1367169689Skan
1368169689Skan	* init.c (build_vec_delete): Resolve an offset ref before we try to
1369169689Skan	use it.
1370169689Skan
1371169689SkanWed Jun  7 14:19:32 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1372169689Skan
1373169689Skan	* typeck.c (build_modify_expr): If the class lacks a constructor or
1374169689Skan	assignment operator, return error_mark_node.
1375169689Skan	(common_type): Use build_cplus_array_type.
1376169689Skan
1377169689SkanTue Jun  6 09:41:27 1995  Mike Stump  <mrs@cygnus.com>
1378169689Skan
1379169689Skan	* class.c (dont_allow_type_definitions): New variable set when types
1380169689Skan	cannot be defined.
1381169689Skan	(finish_struct): Use it.
1382169689Skan	* cp-tree.h (dont_allow_type_definitions): Define it.
1383169689Skan	* parse.y (primary, handler_seq): Set it.
1384169689Skan
1385169689SkanMon Jun  5 18:49:38 1995  Mike Stump  <mrs@cygnus.com>
1386169689Skan
1387169689Skan	* method.c (build_opfncall): Use DECL_CHAIN, not TREE_CHAIN for
1388169689Skan	results from lookup_fnfields.  Always give warning/error on bad
1389169689Skan	code.
1390169689Skan
1391169689SkanMon Jun  5 11:39:37 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
1392169689Skan
1393169689Skan	* init.c (member_init_ok_or_else): Don't allow initialization of
1394169689Skan	an ancestor's member from within a constructor.
1395169689Skan
1396169689SkanMon Jun  5 11:20:34 1995  Gerald Baumgartner  <gb@alexander.cs.purdue.edu>
1397169689Skan
1398169689Skan	* sig.c (build_signature_table_constructor): Use DECL_CONTEXT
1399169689Skan	instead of DECL_CLASS_CONTEXT for calculating the vfield offset so
1400169689Skan	abstract virtual functions are handled correctly.
1401169689Skan
1402169689Skan	* sig.c (build_signature_table_constructor): Store the correct
1403169689Skan	delta in signature table entries.  It does not yet work for
1404169689Skan	classes with virtual base classes as implementations of signatures.
1405169689Skan	(build_signature_method_call): Add the delta to the object_ptr
1406169689Skan	before generating the function call.
1407169689Skan
1408169689Skan	* call.c (build_method_call): Make instance_ptr the signature
1409169689Skan	pointer itself instead of dereferencing the optr.
1410169689Skan	* sig.c (build_signature_method_call): Dereference the optr for the
1411169689Skan	direct and virtual calls.
1412169689Skan
1413169689Skan	* sig.c (build_signature_table_constructor): Make the tag for
1414169689Skan	default implementations -1 instead of 2.
1415169689Skan	(build_signature_method_call): Change the generated conditional
1416169689Skan	expression correspondingly.
1417169689Skan
1418169689Skan	* sig.c (build_signature_pointer_constructor): Deleted the sorry
1419169689Skan	message that said we can't handle multiple inheritance for
1420169689Skan	implementations of signatures
1421169689Skan	(build_signature_method_call): Use the offset from the sigtable
1422169689Skan	entry instead of the vptr field from the signature pointer for
1423169689Skan	building a virtual function call.
1424169689Skan
1425169689Skan	* class.c (build_vfn_ref): Deleted signature specific code, we don't
1426169689Skan	call this function anymore from build_signature_method_call.
1427169689Skan
1428169689Skan	* cp-tree.h (SIGNATURE_VPTR_NAME): Deleted.  We use the right vptr
1429169689Skan	field in the object now instead of in the signature pointer/ref.
1430169689Skan	(build_vptr_ref): Deleted extern declaration.
1431169689Skan	* sig.c (build_vptr_ref): Deleted.
1432169689Skan	(build_signature_pointer_or_reference_type): Deleted construction of
1433169689Skan	the vptr field.
1434169689Skan	(build_signature_pointer_constructor): Deleted initialization of/
1435169689Skan	assignment to the vptr field.
1436169689Skan
1437169689Skan	* sig.c (build_signature_table_constructor): Convert the signature
1438169689Skan	table entry fields to their correct types.
1439169689Skan
1440169689Skan	* sig.c (build_signature_table_constructor): Don't call digest_init
1441169689Skan	for the fields of a sigtable entry, it's wasted time.
1442169689Skan
1443169689Skan	* sig.c (build_signature_table_constructor): Correctly set the
1444169689Skan	offset and index fields of a sigtable entry.  Build the constructor
1445169689Skan	the way digest_init does, digest_init can't handle initializing an
1446169689Skan	anonymous union inside a struct.
1447169689Skan	(build_signature_method_call): Use the index field instead of the
1448169689Skan	delta field to get the vtable index.
1449169689Skan
1450169689Skan	* decl.c (init_decl_processing): Fix number of fields for building
1451169689Skan	sigtable_entry_type.
1452169689Skan
1453169689Skan	* cp-tree.h (tag_identifier, offset_identifier): Added extern decls.
1454169689Skan	(SIGTABLE_CODE_NAME): Renamed to SIGTABLE_TAG_NAME.
1455169689Skan	(SIGTABLE_PFN_NAME): Deleted, we'll use VTABLE_PFN_NAME instead.
1456169689Skan	* decl.c (tag_identifier, offset_identifier): New variables to
1457169689Skan	hold the identifiers for the sigtable fields tag and offset.
1458169689Skan	(init_decl_processing): Initialize these variables.
1459169689Skan	(init_decl_processing): Use these variables to build the
1460169689Skan	sigtable_entry_type structure.  Rename the code and offset fields
1461169689Skan	to tag and delta, respectively; add offset and index fields. Changed
1462169689Skan	types of fields from short_integer_type_node to delta_type_node.
1463169689Skan	* sig.c (build_signature_table_constructor): Rename code and offset
1464169689Skan	to tag and delta, respectively.
1465169689Skan	(build_signature_method_call): Likewise.  Use above variables.
1466169689Skan
1467169689SkanThu Jun  1 17:03:51 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1468169689Skan
1469169689Skan	* decl.c (lookup_name_real): Don't try to look anything up in an
1470169689Skan	erroneous object.
1471169689Skan
1472169689SkanFri Jun  2 10:30:14 1995  Mike Stump  <mrs@cygnus.com>
1473169689Skan
1474169689Skan	* method.c (build_overload_int): New routine.  Break out
1475169689Skan	functionality from build_overload_value so we can reuse it.
1476169689Skan	(build_overload_value): Handle pointer to member functions as value
1477169689Skan	parameters for templates.
1478169689Skan	(build_overload_identifier): Since template parameters are shared
1479169689Skan	among all instantiations, we have to substitute in the real types
1480169689Skan	in TREE_TYPE (parm).
1481169689Skan	pt.c (coerce_template_parms): Likewise.
1482169689Skan	(push_template_decls): Likewise.
1483169689Skan	(grok_template_type): Deleted as template parameters are shared
1484169689Skan	among all instantiations.
1485169689Skan
1486169689SkanWed May 31 19:10:32 1995  Mike Stump  <mrs@cygnus.com>
1487169689Skan
1488169689Skan	* decl.c (grokdeclarator): Always give errors on constant overflow
1489169689Skan	for array indices.
1490169689Skan
1491169689SkanWed May 31 11:39:43 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1492169689Skan
1493169689Skan	* typeck.c (commonparms): Don't abort if simple_cst_equal returns < 0.
1494169689Skan	(build_c_cast): Don't tack on a NON_LVALUE_EXPR when casting to
1495169689Skan	reference type.
1496169689Skan	(build_indirect_ref): Fix check for *&.
1497169689Skan
1498169689SkanFri Jun 16 06:54:03 1995  Mike Stump  <mrs@cygnus.com>
1499169689Skan
1500169689Skan	* Version 2.7.0 released.
1501169689Skan
1502169689SkanFri Jun 16 15:07:29 1995  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1503169689Skan
1504169689Skan	* Make-lang.in (DEMANGLER_PROG): Add LIBS.
1505169689Skan
1506169689SkanThu Jun 15 15:00:41 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1507169689Skan
1508169689Skan	* decl.c (define_function): Don't set DECL_INTERFACE_KNOWN.
1509169689Skan
1510169689SkanWed Jun  7 20:00:31 1995  Mike Stump  <mrs@cygnus.com>
1511169689Skan
1512169689Skan	* *.[chy]: Change all callers of finish_decl to cp_finish_decl.
1513169689Skan	* decl.c (finish_decl): New routine to handle call backs from the
1514169689Skan	mid end (declare_hidden_char_array).
1515169689Skan
1516169689SkanWed Jun  7 19:02:50 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1517169689Skan
1518169689Skan	* decl.c (start_function): Handle setting C_C_D here.
1519169689Skan	(set_C_C_D): Removed.
1520169689Skan	(struct saved_scope): Remove class_decl.
1521169689Skan	(push_to_top_level): Don't save current_class_decl.
1522169689Skan	(pop_from_top_level): Don't restore current_class_decl or C_C_D.
1523169689Skan	(struct cp_function): Add C_C_D.
1524169689Skan	(push_cp_function_context): Save C_C_D.
1525169689Skan	(pop_cp_function_context): Restore C_C_D.
1526169689Skan
1527169689SkanFri Jun  2 11:05:58 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1528169689Skan
1529169689Skan	* decl.c (set_C_C_D): New function.  suspend_momentary before
1530169689Skan	building C_C_D.
1531169689Skan	(pop_from_top_level): Call it.
1532169689Skan	(start_function): Likewise.
1533169689Skan	(pop_cp_function_context): Likewise.
1534169689Skan
1535169689Skan	* class.c, cp-tree.h, decl.c, decl2.c, parse.y: Lose all references
1536169689Skan	to current_vtable_decl, CLASSTYPE_INST_VAR and CLASSTYPE_VTBL_PTR.
1537169689Skan
1538169689Skan	* decl.c (push_cp_function_context): Save current_class_decl.
1539169689Skan	(pop_cp_function_context): Restore current_class_decl and set C_C_D.
1540169689Skan	(pop_from_top_level): Don't use CLASSTYPE_INST_VAR to set C_C_D.
1541169689Skan	(start_function): Likewise.
1542169689Skan
1543169689Skan	* class.c (popclass): Don't mess with current_class_decl,
1544169689Skan	current_vtable_decl, or C_C_D.
1545169689Skan
1546169689SkanMon May 29 12:45:10 1995  Paul Eggert  <eggert@twinsun.com>
1547169689Skan
1548169689Skan	* Make-lang.in (c++.mostlyclean): Remove $(DEMANGLER_PROG).
1549169689Skan
1550169689SkanWed May 24 15:55:18 1995  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1551169689Skan
1552169689Skan	* decl.c (duplicate_decls): Check simple_cst_equal result against 0.
1553169689Skan	* decl2.c (finish_anon_union): Likewise.
1554169689Skan	* method.c (largest_union_member): Likewise.
1555169689Skan
1556169689SkanWed May 24 14:41:11 1995  H.J. Lu  <hjl@nynexst.com>
1557169689Skan
1558169689Skan	* Make-lang.in (cxxmain.o): Replace single quotes with backslashes.
1559169689Skan
1560169689SkanMon May 22 17:38:48 1995  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1561169689Skan
1562169689Skan	* Make-lang.in (g++, g++-cross, cc1plus, DEMANGLER_PROG):
1563169689Skan	Use $@ instead of output name so works even if have .exe.
1564169689Skan	(cxxmain.o): Use cp if ln -s fails.
1565169689Skan	(c++.install-man): Use $(exeext) in executable names.
1566169689Skan	(c++.mostlyclean, stage[1-4]): Use $(objext) in object file names.
1567169689Skan	* Makefile.in (../cc1plus): Use $(exeext) in name of executable.
1568169689Skan
1569169689SkanWed May 24 01:39:03 1995  Jason Merrill  <jason@deneb.cygnus.com>
1570169689Skan
1571169689Skan	* call.c (build_method_call): Parms can be null, duh.
1572169689Skan
1573169689SkanTue May 23 01:32:09 1995  Jason Merrill  <jason@deneb.cygnus.com>
1574169689Skan
1575169689Skan	* call.c (build_method_call): If convert_arguments failed, just bail.
1576169689Skan
1577169689SkanFri May 19 10:31:11 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1578169689Skan
1579169689Skan	* cvt.c (convert_force): Pass LOOKUP_NORMAL to cp_convert.
1580169689Skan
1581169689Skan	* tree.c (copy_to_permanent): Oops.
1582169689Skan
1583169689SkanFri May 19 10:01:07 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
1584169689Skan
1585169689Skan	* cp-tree.h (break_out_target_exprs): Add decl.
1586169689Skan
1587169689SkanThu May 18 13:02:30 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1588169689Skan
1589169689Skan	* decl.c (start_function): Move *all* interface handling stuff after
1590169689Skan	the pushdecl.
1591169689Skan
1592169689Skan	* tree.c (mapcar): Renamed from make_deep_copy and generalized.
1593169689Skan	(perm_manip): Return t if permanent, otherwise 0.
1594169689Skan	(copy_to_permanent): Use them.
1595169689Skan	(bot_manip): Helper for break_out_target_exprs.
1596169689Skan	(break_out_target_exprs): New function.  Uses mapcar.
1597169689Skan
1598169689Skan	* typeck.c (convert_arguments): Use it.
1599169689Skan
1600169689Skan	* method.c (hack_identifier): Use convert_from_reference to
1601169689Skan	dereference a reference.
1602169689Skan
1603169689SkanWed May 17 17:54:54 1995  Mike Stump  <mrs@cygnus.com>
1604169689Skan
1605169689Skan	* call.c (convert_harshness): Move reference bashing before pointer
1606169689Skan	to member bashing.
1607169689Skan
1608169689SkanWed May 17 16:57:53 1995  Mike Stump  <mrs@cygnus.com>
1609169689Skan
1610169689Skan	* cvt.c (convert_to_reference): Only complain, if complaints are
1611169689Skan	wanted.
1612169689Skan	* typeck.c (build_function_call_real): Likewise.  If
1613169689Skan	LOOKUP_SPECULATIVELY is set and something won't work, return
1614169689Skan	NULL_TREE.
1615169689Skan	* cvt.c (cp_convert): Likewise.  Pass flags down to build_method_call.
1616169689Skan	(convert): Pass LOOKUP_NORMAL to cp_convert.
1617169689Skan	* typeck.c (convert_for_assignment): Likewise.
1618169689Skan	(convert_force): Pass LOOKUP_COMPLAIN to cp_convert.
1619169689Skan	(convert_arguments): Get out early if we get an error_mark_node.
1620169689Skan	(convert_for_initialization): Use cp_convert instead of convert so
1621169689Skan	that we can pass flags down.
1622169689Skan	* cp-tree.h (LOOKUP_SPECULATIVELY): Added documentation.
1623169689Skan
1624169689SkanWed May 17 01:43:58 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1625169689Skan
1626169689Skan	* typeck2.c (store_init_value): Don't take the MAIN_VARIANT of the
1627169689Skan	decl type.
1628169689Skan
1629169689Skan	* class.c (finish_struct): Don't complain about a class with no
1630169689Skan	user-defined constructors but with a member that has no default
1631169689Skan	constructor, as this is OK for aggregates.
1632169689Skan
1633169689Skan	* expr.c (cplus_expand_expr, NEW_EXPR): If this is an explicit
1634169689Skan	constructor call, mark slot addressable.
1635169689Skan
1636169689SkanTue May 16 18:37:51 1995  Douglas Rupp  <drupp@cs.washington.edu>
1637169689Skan
1638169689Skan	* g++.c: Changed WINNT to _WIN32.
1639169689Skan
1640169689SkanTue May 16 12:40:16 1995  Jason Merrill  <jason@lisa.cygnus.com>
1641169689Skan
1642169689Skan	* lex.c (handle_sysv_pragma): Don't use token_buffer.
1643169689Skan
1644169689SkanTue May 16 12:05:26 1995  Mike Stump  <mrs@cygnus.com>
1645169689Skan
1646169689Skan	* call.c (resolve_scope_to_name): Add initial semantic support for
1647169689Skan	namespaces.
1648169689Skan	* class.c (finish_struct): Likewise.
1649169689Skan	* cp-tree.h (NAMESPACE_LEVEL): Likewise.
1650169689Skan	* cvt.c (build_up_reference, convert_to_reference): Likewise.
1651169689Skan	* decl.c (binding_level::namespace_p, suspend_binding_level): Likewise.
1652169689Skan	(resume_binding_level, toplevel_bindings_p): Likewise
1653169689Skan	(namespace_bindings_p, declare_namespace_level): Likewise.
1654169689Skan	(resume_level, push_namespace, pop_namespace): Likewise.
1655169689Skan	(pop_everything, pushtag, duplicate_decls, pushdecl): Likewise.
1656169689Skan	(implicitly_declare, lookup_namespace_name): Likewise.
1657169689Skan	(lookup_name_real, start_decl, make_temporary_for_reference): Likewise.
1658169689Skan	(obscure_complex_init, finish_decl, expand_static_init): Likewise.
1659169689Skan	(grokvardecl, grokdeclarator, parmlist_is_exprlist): Likewise.
1660169689Skan	(store_parm_decls, hack_incomplete_structures): Likewise.
1661169689Skan	* decl2.c (get_temp_name, finish_anon_union): Likewise.
1662169689Skan	(current_namespace, push_namespace, pop_namespace): Likewise.
1663169689Skan	(do_namespace_alias, do_toplevel_using_decl): Likewise.
1664169689Skan	(do_class_using_decl): Likewise.
1665169689Skan	* error.c (dump_decl): Likewise.
1666169689Skan	* init.c (build_member_call, build_offset_ref): Likewise.
1667169689Skan	* lex.c (identifier_type): Likewise.
1668169689Skan	* parse.y (lang_extdef, using_decl, extdef): Likewise.
1669169689Skan	(component_decl_1, nested_name_specifier_1): Likewise.
1670169689Skan	* spew.c (yylex): Likewise.
1671169689Skan	* tree.def (NAMESPACE_DECL): Likewise.
1672169689Skan
1673169689SkanTue May 16 11:55:35 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1674169689Skan
1675169689Skan	* decl.c (push_overloaded_decl): Return the new decl even if it
1676169689Skan	can't be pushed.
1677169689Skan
1678169689SkanTue May 16 11:00:37 1995  Jason Merrill  <jason@lisa.cygnus.com>
1679169689Skan
1680169689Skan	* typeck.c (decay_conversion): Split out from default_conversion.
1681169689Skan	(default_conversion): Call it.
1682169689Skan	(build_binary_op): Likewise.
1683169689Skan	(build_binary_op_nodefault): Use decay_conversion for truth ops.
1684169689Skan
1685169689SkanMon May 15 12:47:56 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1686169689Skan
1687169689Skan	* decl.c (warn_extern_redeclared_static): This is a pedwarn.
1688169689Skan	(duplicate_decls): Always use the old decl's linkage info.  Don't
1689169689Skan	play with linkage of consts.
1690169689Skan	(pushdecl): Don't play with linkage of consts.
1691169689Skan	(redeclaration_error_message): Don't complain about an old public
1692169689Skan	decl and a new non-public decl here.
1693169689Skan	(grokvardecl): Handle linkage of consts here.
1694169689Skan	(grokdeclarator): An 'extern inline' is public.  Pass constp to
1695169689Skan	grokvardecl.
1696169689Skan	(start_function): Wait until after the pushdecl to do some linkage
1697169689Skan	stuff.
1698169689Skan
1699169689Skan	* decl2.c (import_export_vtable): Make duplicates weak rather than
1700169689Skan	static if supported.
1701169689Skan	(import_export_inline): Likewise.
1702169689Skan	* pt.c (do_pending_expansions): Likewise.
1703169689Skan
1704169689Skan	* class.c (build_vbase_path): flag_assume_nonnull_objects only
1705169689Skan	affects reference conversion.
1706169689Skan
1707169689Skan	* init.c (emit_base_init): Build up an RTL_EXPR and add it to
1708169689Skan	rtl_expr_chain.
1709169689Skan	* decl.c, decl2.c: s/base_init_insns/base_init_expr/.
1710169689Skan
1711169689SkanTue May 16 07:06:28 1995  Paul Eggert  <eggert@twinsun.com>
1712169689Skan
1713169689Skan	* method.c (numeric_output_need_bar): Renamed from misspelling.
1714169689Skan
1715169689Skan	* typeck.c (build_ptrmemfunc): Fix misspellings in messages.
1716169689Skan
1717169689SkanSun May 14 10:26:22 1995  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1718169689Skan
1719169689Skan	* lang-options.h, lang-specs.h: New files.
1720169689Skan
1721169689SkanThu May 11 00:31:48 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1722169689Skan
1723169689Skan	* typeck.c (default_conversion): Don't check for BLKmode before
1724169689Skan	pulling out the decl_constant_value.
1725169689Skan
1726169689Skan	* decl.c (start_function): Clear named_labels and shadowed_labels.
1727169689Skan
1728169689Skan	* typeck.c (build_function_call_real): Also synthesize methods here.
1729169689Skan
1730169689SkanWed May 10 00:55:59 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1731169689Skan
1732169689Skan	* decl2.c (finish_file): Synthesize exported methods before the
1733169689Skan	reconsider loop.
1734169689Skan
1735169689Skan	* parse.y: Move declaration of flag_new_for_scope to file scope.
1736169689Skan
1737169689SkanTue May  9 19:10:33 1995  Mike Stump  <mrs@cygnus.com>
1738169689Skan
1739169689Skan	* decl2.c: Add flag_new_for_scope for new -ffor-scope flag.
1740169689Skan	* parse.y (FOR): Conditionalize the pushing and popping of scope for
1741169689Skan	the for-init-statement upon the new flag_new_for_scope.
1742169689Skan	* parse.y (try_block): Simplify and use compstmt.
1743169689Skan
1744169689SkanMon May  8 12:41:52 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1745169689Skan
1746169689Skan	* decl.c (define_function): Mark function decl artificial.
1747169689Skan
1748169689SkanSun May  7 00:51:28 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1749169689Skan
1750169689Skan	* parse.y (simple_stmt, FOR): Put back push/pop for condition scope.
1751169689Skan
1752169689Skan	* decl2.c (grokclassfn): DECLs don't have cv-qualified types.
1753169689Skan	* tree.c (build_cplus_method_type): Likewise.
1754169689Skan
1755169689Skan	* cp-tree.h (SET_DECL_ARTIFICIAL): Just set DECL_ARTIFICIAL to 1.
1756169689Skan
1757169689Skan	* typeck.c (build_function_call_real): If convert_arguments failed,
1758169689Skan	just bail.
1759169689Skan	(convert_arguments): If one of the arguments is error_mark_node,
1760169689Skan	just bail.
1761169689Skan
1762169689SkanSat May  6 02:39:41 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1763169689Skan
1764169689Skan	* decl.c (duplicate_decls): Don't check DECL_NOT_REALLY_EXTERN for
1765169689Skan	decls that don't include it.
1766169689Skan
1767169689SkanFri May  5 14:23:30 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1768169689Skan
1769169689Skan	* decl.c (duplicate_decls): Decls that have DECL_INTERFACE_KNOWN or
1770169689Skan	DECL_NOT_REALLY_EXTERN set aren't extern decls.
1771169689Skan
1772169689Skan	* typeck.c (build_indirect_ref): Don't call default_conversion for a
1773169689Skan	parameter of reference_type.
1774169689Skan	* cvt.c (convert_from_reference): Just use build_indirect_ref.
1775169689Skan
1776169689Skan	* pt.c (do_type_instantiation): Only instantiate member functions
1777169689Skan	that actually come from templates.
1778169689Skan
1779169689SkanFri May  5 09:46:05 1995  Mike Stump  <mrs@cygnus.com>
1780169689Skan
1781169689Skan	* parse.y: Generalized cleanup of poplevels, and compound statements
1782169689Skan	and compound statements in try blocks.  Rewritten `for' rule so that
1783169689Skan	the scope of variables declared in the for clause is shortened to
1784169689Skan	span just to the end of the statement, instead of the whole
1785169689Skan	containing block.
1786169689Skan
1787169689SkanFri May  5 00:37:14 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1788169689Skan
1789169689Skan	* call.c (convert_harshness): Handle pointers to members better.
1790169689Skan
1791169689SkanThu May  4 16:00:26 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1792169689Skan
1793169689Skan	* decl2.c (delete_sanity): Do access control here.
1794169689Skan	* init.c (build_delete): Instead of here.
1795169689Skan
1796169689Skan	* Make-lang.in: Build c++filt.
1797169689Skan
1798169689SkanWed May  3 02:59:53 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1799169689Skan
1800169689Skan	* decl2.c (cplus_decl_attributes): If we just modified a TYPE_DECL,
1801169689Skan	update our IDENTIFIER_TYPE_VALUE.
1802169689Skan
1803169689SkanFri Apr 28 07:58:41 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1804169689Skan
1805169689Skan	* lex.c (cons_up_default_function): Fix linkage of #pragma
1806169689Skan	implemented functions.
1807169689Skan
1808169689SkanThu Apr 27 16:56:24 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1809169689Skan
1810169689Skan	* method.c (build_overload_name): Simplify and fix repeated type
1811169689Skan	folding.
1812169689Skan
1813169689Skan	* decl.c (grokdeclarator): Prohibit pointers to void or reference
1814169689Skan	members.
1815169689Skan
1816169689SkanThu Apr 27 09:49:07 1995  Mike Stump  <mrs@cygnus.com>
1817169689Skan
1818169689Skan	* typeck2.c (process_init_constructor): Make sure initializers are
1819169689Skan	fully digested.
1820169689Skan
1821169689SkanThu Apr 27 01:11:55 1995  Jason Merrill  <jason@python.cygnus.com>
1822169689Skan
1823169689Skan	* lex.c (cons_up_default_function): Always defer synthesis.
1824169689Skan
1825169689SkanThu Apr 27 00:20:37 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1826169689Skan
1827169689Skan	* decl2.c (mark_inline_for_output): Don't play with pending_inline
1828169689Skan	stuff.
1829169689Skan
1830169689SkanWed Apr 26 17:48:24 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1831169689Skan
1832169689Skan	* call.c (user_harshness): New function; like build_type_conversion,
1833169689Skan	but doesn't actually build anything.
1834169689Skan	(compute_conversion_costs): Use it instead of build_type_conversion.
1835169689Skan
1836169689SkanWed Apr 26 17:11:25 1995  Jason Merrill  <jason@deneb.cygnus.com>
1837169689Skan
1838169689Skan	* typeck.c (build_function_call_real): Improve error message for
1839169689Skan	calling a non-function.
1840169689Skan
1841169689Skan	* method.c (hack_identifier): Lose check for calling a data member.
1842169689Skan
1843169689SkanWed Apr 26 16:59:13 1995  Mike Stump  <mrs@cygnus.com>
1844169689Skan
1845169689Skan	* typeck2.c (build_functional_cast): Remove very old cruft.
1846169689Skan	Seems like good code is generated without it.
1847169689Skan
1848169689SkanWed Apr 26 00:47:16 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1849169689Skan
1850169689Skan	* method.c (do_build_assign_ref): Fix handling of anonymous unions.
1851169689Skan	(do_build_copy_constructor): Likewise.
1852169689Skan
1853169689Skan	* parse.y (simple_stmt, SWITCH): Call {push,pop}_switch.
1854169689Skan
1855169689Skan	* decl.c (push_switch): New function.
1856169689Skan	(pop_switch): Likewise.
1857169689Skan	(define_case_label): Check for jumping over initialization.
1858169689Skan
1859169689Skan	* call.c (build_method_call): Check for an inline function being
1860169689Skan	called before its definition has been seen.
1861169689Skan	* typeck.c (build_function_call_real): Likewise.
1862169689Skan
1863169689Skan	* decl.c (duplicate_decls): Check for a function being redeclared
1864169689Skan	inline after its address has been taken.
1865169689Skan
1866169689Skan	* typeck.c (build_conditional_expr): Handle related class lvalues.
1867169689Skan
1868169689SkanTue Apr 25 13:20:45 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1869169689Skan
1870169689Skan	* pt.c (do_pending_expansions): Don't expand unused templates.
1871169689Skan
1872169689Skan	* parse.y (component_decl): Accept a lone semicolon.
1873169689Skan
1874169689SkanTue Apr 25 00:25:56 1995  Jason Merrill  <jason@rtl.cygnus.com>
1875169689Skan
1876169689Skan	* call.c (build_method_call): Don't allow an RTL_EXPR to serve as the
1877169689Skan	object parameter anymore.
1878169689Skan
1879169689Skan	* expr.c (cplus_expand_expr): Don't create RTL_EXPRs with no insns.
1880169689Skan
1881169689SkanMon Apr 24 12:35:48 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1882169689Skan
1883169689Skan	* parse.y (simple_stmt, decl case): Clear prefix_attributes.
1884169689Skan	(lang_extdef): Likewise.
1885169689Skan
1886169689Skan	* parse.y (maybe_parmlist): New rule for use in declarators where
1887169689Skan	this could either be a list of expressions or parameters.  Calls
1888169689Skan	suspend_momentary before deciding which.
1889169689Skan	(direct_after_type_declarator): Use it.
1890169689Skan	(complex_direct_notype_declarator): Use it.
1891169689Skan
1892169689Skan	* pt.c (tsubst): Propagate attributes const and noreturn.
1893169689Skan
1894169689Skan	* typeck.c (build_modify_expr): If warn_synth, call build_opfncall
1895169689Skan	before doing the default thing.
1896169689Skan
1897169689SkanThu Apr 27 21:49:36 1995  Doug Evans  <dje@cygnus.com>
1898169689Skan
1899169689Skan	* typeck.c (common_type): Call lookup_attribute instead of
1900169689Skan	value_member.
1901169689Skan
1902169689SkanTue Apr 25 18:07:43 1995  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1903169689Skan
1904169689Skan	* Make-lang.in: Change "realclean" to "maintainer-clean".
1905169689Skan
1906169689SkanSun Apr 23 12:32:38 1995  Mike Stump  <mrs@cygnus.com>
1907169689Skan
1908169689Skan	* decl2.c (finish_file): Fix broken linked list handling.
1909169689Skan
1910169689SkanFri Apr 21 18:08:43 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1911169689Skan
1912169689Skan	* class.c (finish_base_struct): Don't set TYPE_HAS_COMPLEX_*_REF
1913169689Skan	as often.
1914169689Skan	(finish_struct): Likewise.
1915169689Skan
1916169689Skan	* various: Use TYPE_HAS_TRIVIAL_* instead of TYPE_HAS_COMPLEX_*.
1917169689Skan
1918169689Skan	* cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): New macro.
1919169689Skan	(TYPE_HAS_TRIVIAL_ASSIGN_REF): New macro.
1920169689Skan
1921169689SkanFri Apr 21 15:52:22 1995  Jason Merrill  <jason@python.cygnus.com>
1922169689Skan
1923169689Skan	* typeck.c (c_expand_return): Only expand a returned TARGET_EXPR if
1924169689Skan	it is of the same type as the return value.
1925169689Skan
1926169689SkanFri Apr 21 03:01:46 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1927169689Skan
1928169689Skan	* decl2.c (finish_file): Reconsider if synthesizing a method wrote
1929169689Skan	out its assembly.
1930169689Skan
1931169689Skan	* typeck.c (convert_for_initialization): Don't call a trivial copy
1932169689Skan	constructor.
1933169689Skan
1934169689Skan	* typeck2.c (store_init_value): Only abort if the type has a
1935169689Skan	non-trivial copy constructor.
1936169689Skan
1937169689Skan	* typeck.c (c_expand_return): If we're returning in a register and
1938169689Skan	the return value is a TARGET_EXPR, expand it.  Only do
1939169689Skan	expand_aggr_init if we're returning in memory.
1940169689Skan	(expand_target_expr): Function to expand a TARGET_EXPR.
1941169689Skan	(build_modify_expr): Use it.
1942169689Skan
1943169689Skan	* tree.c (build_cplus_new): Layout the slot.
1944169689Skan
1945169689Skan	* expr.c (cplus_expand_expr): Use expand_call to expand the call
1946169689Skan	under a NEW_EXPR, so the target is not discarded.
1947169689Skan
1948169689SkanThu Apr 20 14:59:31 1995  Mike Stump  <mrs@cygnus.com>
1949169689Skan
1950169689Skan	* gc.c (build_dynamic_cast): Tighten error checking.
1951169689Skan
1952169689SkanThu Apr 20 11:23:54 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1953169689Skan
1954169689Skan	* expr.c (cplus_expand_expr): Only abort if the returned target is
1955169689Skan	different from what we expected if the type has a non-trivial copy
1956169689Skan	constructor.
1957169689Skan
1958169689Skan	* decl2.c (cplus_decl_attributes): Attributes applied to a template
1959169689Skan	really apply to the template's result.
1960169689Skan
1961169689Skan	* tree.c (lvalue_p): Check IS_AGGR_TYPE instead of TREE_ADDRESSABLE
1962169689Skan	to decide whether to consider a CALL_EXPR an lvalue.
1963169689Skan
1964169689Skan	* class.c (finish_struct_bits): Only set TREE_ADDRESSABLE if the
1965169689Skan	type has a non-trivial copy constructor.
1966169689Skan
1967169689Skan	* decl.c (start_function): If interface_known, unset
1968169689Skan	DECL_NOT_REALLY_EXTERN on the function.
1969169689Skan
1970169689SkanWed Apr 19 16:53:13 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1971169689Skan
1972169689Skan	* pt.c (do_function_instantiation): Handle explicit instantiation of
1973169689Skan	member functions.
1974169689Skan	(do_type_instantiation): Handle 'inline template class foo<int>',
1975169689Skan	meaning just spit out the vtable.
1976169689Skan
1977169689Skan	* lex.c (cons_up_default_function): Set DECL_NOT_REALLY_EXTERN on
1978169689Skan	the consed functions.
1979169689Skan
1980169689Skan	* decl2.c (import_export_inline): Set DECL_INTERFACE_KNOWN.
1981169689Skan
1982169689SkanWed Apr 19 16:28:17 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
1983169689Skan
1984169689Skan	* call.c, class.c, decl2.c, gc.c, init.c, parse.y, pt.c, search.c,
1985169689Skan	typeck.c: Include output.h.
1986169689Skan
1987169689SkanWed Apr 19 14:57:21 1995  Gerald Baumgartner  <gb@alexander.cs.purdue.edu>
1988169689Skan
1989169689Skan	* call.c (build_method_call): Allow a signature member functions to
1990169689Skan	be called from a default implementation.
1991169689Skan
1992169689SkanWed Apr 19 10:21:17 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
1993169689Skan
1994169689Skan	* repo.c (finish_repo): Remember what directory we are in.
1995169689Skan
1996169689Skan	* search.c (expand_upcast_fixups): Don't mess with abort_fndecl.
1997169689Skan
1998169689Skan	* repo.c: Use obstacks instead of fixed-size buffers.  Don't spit
1999169689Skan	out the second copy of the symbol name.  Don't remember COLLECT_GCC.
2000169689Skan
2001169689SkanWed Apr 19 02:32:40 1995  Mike Stump  <mrs@cygnus.com>
2002169689Skan
2003169689Skan	* search.c (virtual_context): New function to get the virtual
2004169689Skan	context of a function.
2005169689Skan	(expand_upcast_fixups): New function to generate runtime vtables.
2006169689Skan	(fixup_virtual_upcast_offsets): Likewise.
2007169689Skan	(expand_indirect_vtbls_init): Use fixup_virtual_upcast_offsets to
2008169689Skan	ensure that the this offsets for upcasts from virtual bases into
2009169689Skan	other virtual bases or non-virtual bases are correct at construction
2010169689Skan	time and destruction time.
2011169689Skan	* class.c (fixup_vtable_deltas): Modify to fixup all offsets in all
2012169689Skan	vtables in all virtual bases, instead of just one vtable in each
2013169689Skan	virtual base.
2014169689Skan	(fixup_vtable_deltas1): Likewise.
2015169689Skan
2016169689SkanTue Apr 18 03:57:35 1995  Michael Meissner  <meissner@cygnus.com>
2017169689Skan
2018169689Skan	* Makefile.in (lex.o): Add dependency on c-pragma.h.
2019169689Skan
2020169689Skan	* lex.c (handle_sysv_pragma): Use NULL_PTR and NULL_TREE as
2021169689Skan	appropriate, instead of 0.
2022169689Skan
2023169689SkanMon Apr 17 12:28:42 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2024169689Skan
2025169689Skan	* decl.c (pushdecl): Use decls_match, not duplicate_decls, for
2026169689Skan	comparing local and global decls.
2027169689Skan
2028169689SkanFri Apr 14 01:46:52 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2029169689Skan
2030169689Skan	* typeck.c (convert_arguments): Only prohibit passing to ... of
2031169689Skan	types with non-trivial copy constructors.
2032169689Skan
2033169689Skan	* repo.c (repo_template_used): Don't try to mess with no id.
2034169689Skan
2035169689SkanFri Apr 14 23:32:50 1995  Per Bothner  <bothner@rtl.cygnus.com>
2036169689Skan
2037169689Skan	* decl.c (duplicate_decls):  Use cp_warning_at for redundant-decls.
2038169689Skan
2039169689SkanThu Apr 13 15:37:42 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
2040169689Skan
2041169689Skan	* cp-tree.h (current_tinst_level): Delete declaration, since it's
2042169689Skan	static inside pt.c.
2043169689Skan
2044169689Skan	* typeck.c (build_modify_expr): Catch incompatible array assignment.
2045169689Skan
2046169689Skan	* parse.y (attribute_list, attrib): Rewrite actions to feed the
2047169689Skan	right stuff to decl_attributes.
2048169689Skan
2049169689SkanThu Apr 13 11:24:10 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2050169689Skan
2051169689Skan	* search.c (dfs_debug_mark): Check for magic virtual like
2052169689Skan	import_export_vtable.
2053169689Skan
2054169689Skan	* typeck.c (build_binary_op_nodefault): Don't call cp_pedwarn with
2055169689Skan	four args.
2056169689Skan
2057169689SkanWed Apr 12 12:02:57 1995  Jason Merrill  <jason@deneb.cygnus.com>
2058169689Skan
2059169689Skan	* decl2.c (finish_file): Move prevtable pass before needs_messing_up
2060169689Skan	decision.
2061169689Skan
2062169689SkanTue Apr 11 11:20:27 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2063169689Skan
2064169689Skan	* decl.c (finish_decl): If we're writing out a static data member of
2065169689Skan	a class, we want the debug info for that class.
2066169689Skan
2067169689Skan	* gc.c (build_t_desc): Check linkage of a class properly.
2068169689Skan
2069169689Skan	* class.c (finish_struct): Set the 'headof' offset for the main
2070169689Skan	vtable properly.
2071169689Skan	(prepare_fresh_vtable): Fix typeinfo pointer here.
2072169689Skan	(modify_one_vtable): Instead of here.
2073169689Skan
2074169689SkanMon Apr 10 12:15:59 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2075169689Skan
2076169689Skan	* repo.c (repo_get_id): New function to return the interesting
2077169689Skan	identifier for a repo entity.
2078169689Skan	(repo_template_used): Use it.
2079169689Skan	(repo_template_instantiated): Mark the id as chosen.
2080169689Skan	(init_repo): Record whether or not the id was chosen.
2081169689Skan	(finish_repo): Note if an id was newly chosen.
2082169689Skan
2083169689Skan	* pt.c (do_function_instantiation): Call repo_template_instantiated.
2084169689Skan	(do_type_instantiation): Likewise.  Don't diagnose multiple
2085169689Skan	instantiation.
2086169689Skan
2087169689Skan	* decl2.c (finish_file): Use DECL_NOT_REALLY_EXTERN when deciding
2088169689Skan	whether or not to synthesize a method.
2089169689Skan
2090169689Skan	Undo these changes:
2091169689Skan	* class.c (finish_vtbls): Build more vtables if flag_rtti is on.
2092169689Skan	* class.c (modify_all_direct_vtables): Likewise.
2093169689Skan	* init.c (expand_direct_vtbls_init): Expand more vtables if
2094169689Skan	flag_rtti is on.
2095169689Skan
2096169689SkanSat Apr  8 17:45:41 1995  Mike Stump  <mrs@cygnus.com>
2097169689Skan
2098169689Skan	* gc.c (build_headof): Use ptrdiff_type_node instead of
2099169689Skan	integer_type_node on pointer arithmetic.
2100169689Skan
2101169689SkanSat Apr  8 11:57:04 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2102169689Skan
2103169689Skan	* typeck.c (build_modify_expr): Undo previous change.
2104169689Skan
2105169689SkanThu Apr  6 01:23:50 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2106169689Skan
2107169689Skan	* Makefile.in (compiler): Remove ../cc1plus before rebuilding it.
2108169689Skan
2109169689Skan	* repo.c (get_base_filename): Put the .rpo file in the directory
2110169689Skan	with the object file, not the source.
2111169689Skan
2112169689Skan	* typeck.c (build_conditional_expr): Handle pmf's better.
2113169689Skan
2114169689Skan	* repo.c (finish_repo): Also use ASM_OUTPUT_LABELREF to print out
2115169689Skan	the name of the symbol.
2116169689Skan
2117169689SkanWed Apr  5 15:24:12 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2118169689Skan
2119169689Skan	* repo.c (open_repo_file): Make repo filename DOS-compliant.
2120169689Skan	(*): Also write a new repo file if some previously-used
2121169689Skan	templates are no longer used.  Only remember the identifier.
2122169689Skan
2123169689Skan	* lex.c (cons_up_default_function): If this function belongs to a
2124169689Skan	template class, call repo_template_used for it.
2125169689Skan
2126169689Skan	* repo.c (repo_template_used): Using a class means using its vtable,
2127169689Skan	if any.
2128169689Skan	(finish_repo): Likewise.
2129169689Skan
2130169689Skan	* typeck.c (build_modify_expr): Only wrap TARGET_EXPRs in RTL_EXPRs
2131169689Skan	if the type has a complex copy constructor.
2132169689Skan
2133169689Skan	* decl2.c (lang_decode_option): -frepo implies
2134169689Skan	-fno-implicit-templates.
2135169689Skan
2136169689Skan	* decl.c (start_function): Clear current_{base,member}_init_list.
2137169689Skan
2138169689Skan	* lex.c (init_lex): Also unset *_eq if ! flag_operator_names.
2139169689Skan
2140169689SkanTue Apr  4 16:11:08 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2141169689Skan
2142169689Skan	* decl.c (struct cp_function): Add {base,member}_init_list.
2143169689Skan	(push_cp_function_context): Save current_{base,member}_init_list.
2144169689Skan	(pop_cp_function_context): Restore them.
2145169689Skan
2146169689SkanMon Apr  3 16:55:08 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2147169689Skan
2148169689Skan	* repo.c (get_base_filename): Take filename parm, fix logic bug.
2149169689Skan
2150169689Skan	* typeck.c (build_compound_expr): Do not warn about a compound expr
2151169689Skan	in which the first expression has no side effects.
2152169689Skan	(build_x_compound_expr): Warn here instead.
2153169689Skan	(build_conditional_expr): Don't warn about a conditional expression
2154169689Skan	between an enum and the type it promotes to.
2155169689Skan
2156169689Skan	* init.c (build_new): Handle initialization of arrays of builtins
2157169689Skan	properly.
2158169689Skan
2159169689SkanMon Apr  3 15:08:04 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
2160169689Skan
2161169689Skan	* repo.c: Include config.h to get definitions of bcopy and rindex
2162169689Skan	on systems that don't have them (e.g., SVR4).
2163169689Skan
2164169689SkanMon Apr  3 14:41:55 1995  Mike Stump  <mrs@cygnus.com>
2165169689Skan
2166169689Skan	* decl2.c (finish_table): Pass NULL_TREE instead of init to
2167169689Skan	finish_decl so that it won't try and do error checking on the
2168169689Skan	initializer.
2169169689Skan
2170169689SkanMon Apr  3 10:45:50 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2171169689Skan
2172169689Skan	* repo.c (get_base_filename): Analyze COLLECT_GCC_OPTIONS to
2173169689Skan	determine whether this compile used -c -o.
2174169689Skan	(open_repo_file): Use get_base_filename.  Remove the extension.
2175169689Skan	(finish_repo): Spit out the values of main_input_filename,
2176169689Skan	COLLECT_GCC and COLLECT_GCC_OPTIONS.
2177169689Skan
2178169689Skan	* parse.y (structsp): Add TYPENAME_KEYWORD complex_type_name.
2179169689Skan
2180169689SkanSun Apr  2 23:43:51 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2181169689Skan
2182169689Skan	* search.c (compute_access): Don't try to do access control on
2183169689Skan	nested types.
2184169689Skan
2185169689SkanFri Mar 31 10:14:23 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2186169689Skan
2187169689Skan	* repo.c: New file to handle things repo.
2188169689Skan
2189169689Skan	* pt.c (instantiate_template): Call repo_template_used if the
2190169689Skan	definition is accessible.
2191169689Skan	(mark_function_instantiated): Split out from
2192169689Skan	do_function_instantiation.
2193169689Skan	(mark_class_instantiated): Split out from do_type_instantiation.
2194169689Skan
2195169689Skan	* parse.y (template_instantiate_once): Call repo_template_used.
2196169689Skan
2197169689Skan	* lex.c (lang_init): Call init_repo.
2198169689Skan
2199169689Skan	* decl2.c: Handle flag_use_repository.
2200169689Skan	(finish_file): Call finish_repo.
2201169689Skan
2202169689Skan	* decl.c (start_method): Call repo_template_used if this is a
2203169689Skan	template method.
2204169689Skan
2205169689Skan	* Makefile.in (CXX_OBJS): Add repo.o.
2206169689Skan	(repo.o): Add dependencies.
2207169689Skan
2208169689Skan	* Make-lang.in (CXX_SRCS): Add repo.c.
2209169689Skan
2210169689Skan	* decl.c (start_function): If DECL_INTERFACE_KNOWN and
2211169689Skan	DECL_NOT_REALLY_EXTERN are both set, unset DECL_EXTERNAL.
2212169689Skan
2213169689Skan	* typeck.c (build_binary_op_nodefault): Identify the invalid operand
2214169689Skan	types used.
2215169689Skan
2216169689Skan	* decl.c (duplicate_decls): Propagate DECL_NOT_REALLY_EXTERN.
2217169689Skan
2218169689SkanThu Mar 30 17:54:42 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2219169689Skan
2220169689Skan	* typeck.c (build_binary_op_nodefault): Tidy up use of build_type
2221169689Skan	and result_type.  When checking for comparison between signed
2222169689Skan	and unsigned, use result_type rather than the (possibly shortened)
2223169689Skan	type of op0.  Also, don't warn about equality comparison of a
2224169689Skan	signed operand to an unsigned constant that fits in the signed
2225169689Skan	type.
2226169689Skan
2227169689Skan	* method.c (do_build_copy_constructor): Reverse
2228169689Skan	current_base_init_list after we've built it up.
2229169689Skan
2230169689SkanThu Mar 30 14:35:18 1995  Mike Stump  <mrs@cygnus.com>
2231169689Skan
2232169689Skan	* except.c (build_throw): Never warn about the value of throw not
2233169689Skan	being used.
2234169689Skan
2235169689SkanThu Mar 30 13:16:54 1995  Mike Stump  <mrs@cygnus.com>
2236169689Skan
2237169689Skan	* except.c (expand_start_catch_block): Check for bad catch parameter
2238169689Skan	declarations.
2239169689Skan
2240169689SkanThu Mar 30 13:06:11 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2241169689Skan
2242169689Skan	* decl.c (finish_function): Only set DECL_NOT_REALLY_EXTERN if
2243169689Skan	DECL_EXTERNAL is not already set.
2244169689Skan
2245169689SkanThu Mar 30 11:26:24 1995  Mike Stump  <mrs@cygnus.com>
2246169689Skan
2247169689Skan	* method.c (emit_thunk): Let poplevel know that the last level is
2248169689Skan	for a function so it can create a BLOCK_NODE and set DECL_INITIAL.
2249169689Skan
2250169689SkanThu Mar 30 11:15:06 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2251169689Skan
2252169689Skan	* decl2.c (import_export_inline): Don't set DECL_NOT_REALLY_EXTERN
2253169689Skan	here.
2254169689Skan
2255169689Skan	* decl.c (grokdeclarator): OK, don't abort if we see a decl with
2256169689Skan	METHOD_TYPE.
2257169689Skan	(finish_function): Set DECL_EXTERNAL and DECL_NOT_REALLY_EXTERN on
2258169689Skan	all deferred inlines.
2259169689Skan
2260169689SkanWed Mar 29 19:35:02 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2261169689Skan
2262169689Skan	* cp-tree.h (DECL_THIS_INLINE): New macro.
2263169689Skan	(DECL_NOT_REALLY_EXTERN): New macro.
2264169689Skan	(DECL_THIS_STATIC): New macro.
2265169689Skan
2266169689Skan	* decl.c: Lose all references to current_extern_inline.  Break
2267169689Skan	inline semantics into DECL_INLINE for actual inlining and
2268169689Skan	DECL_THIS_INLINE for the linkage wierdness.  Use DECL_THIS_STATIC.
2269169689Skan	* decl2.c: Use DECL_NOT_REALLY_EXTERN to indicate that we want to
2270169689Skan	emit an inline here.  Associated changes.
2271169689Skan	* lex.c: Likewise.
2272169689Skan	* pt.c: Likewise.
2273169689Skan	* typeck.c: Likewise.
2274169689Skan
2275169689Skan	* call.c (build_method_call): Don't bother trying to handle inlines
2276169689Skan	specially.
2277169689Skan	* cvt.c (convert_to_aggr): Likewise.
2278169689Skan
2279169689Skan	* pt.c (do_function_instantiation): Handle instantiation of
2280169689Skan	public inlines, too.
2281169689Skan
2282169689SkanWed Mar 29 16:04:25 1995  Mike Stump  <mrs@cygnus.com>
2283169689Skan
2284169689Skan	* except.c (init_exception_processing): Change the interface for
2285169689Skan	__throw_type_match and add decl for new rtti matching routine
2286169689Skan	__throw_type_match_rtti.
2287169689Skan	(build_eh_type): New routine to build a run time descriptor for the
2288169689Skan	expression given.
2289169689Skan	(expand_start_catch_block): Update to use new calling convention for
2290169689Skan	the matcher.
2291169689Skan	(expand_throw): Update to use build_eh_type.
2292169689Skan
2293169689SkanMon Mar 27 07:14:33 1995  Warner Losh  <imp@village.org>
2294169689Skan
2295169689Skan	* g++.c: Removed __NetBSD__ from conditional.
2296169689Skan	Declare strerror if HAVE_STRERROR is defined; otherwise
2297169689Skan	declare sys_errlist and sys_nerr.
2298169689Skan	(my_strerror): New function.
2299169689Skan
2300169689SkanTue Mar 28 14:16:35 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2301169689Skan
2302169689Skan	* search.c (get_binfo): Don't try to be so clever.
2303169689Skan
2304169689Skan	* tree.c (copy_to_permanent): Also suspend_momentary().
2305169689Skan
2306169689Skan	* cvt.c (cp_convert_to_pointer): Hand off to convert_fn_pointer even
2307169689Skan	if the types are the same.
2308169689Skan
2309169689Skan	* decl.c (start_function): Handle extern inlines more like C++ says
2310169689Skan	we should.
2311169689Skan
2312169689Skan	* init.c (build_member_call): Hand constructor calls off to
2313169689Skan	build_functional_cast.
2314169689Skan
2315169689Skan	* typeck2.c (build_functional_cast): Use DECL_NESTED_TYPENAME to get
2316169689Skan	the name of the type.
2317169689Skan
2318169689SkanTue Mar 28 13:13:56 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
2319169689Skan
2320169689Skan	* decl.c (grokdeclarator): Check for the decl returned by
2321169689Skan	grokfndecl to be null before using build_decl_attribute_variant.
2322169689Skan
2323169689SkanMon Mar 27 18:04:41 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
2324169689Skan
2325169689Skan	* init.c (build_new): Use build_pointer_type instead of
2326169689Skan	TYPE_POINTER_TO.
2327169689Skan
2328169689SkanFri Mar 24 12:11:24 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2329169689Skan
2330169689Skan	* typeck.c (build_conditional_expr): Handle pmfs.
2331169689Skan	(convert_for_assignment): Fix pmf support.
2332169689Skan
2333169689Skan	* cvt.c (convert_fn_ptr): Support !flag_vtable_thunks.
2334169689Skan	(cp_convert_to_pointer): Handle pmfs.
2335169689Skan	(cp_convert): Pass pmfs to cp_convert_to_pointer.
2336169689Skan
2337169689Skan	* typeck.c (common_type): Handle inheritance for pmfs.
2338169689Skan
2339169689Skan	* typeck2.c (build_m_component_ref): Do access control.
2340169689Skan
2341169689Skan	* typeck.c (comp_target_types): Check for conversion to void *
2342169689Skan	before checking trickier conversions.
2343169689Skan
2344169689Skan	* decl.c (duplicate_decls): Propagate DECL_ABSTRACT_VIRTUAL_P.
2345169689Skan
2346169689Skan	* pt.c (push_tinst_level): Complain if template instantiation depth
2347169689Skan	is greater than max_tinst_depth.
2348169689Skan
2349169689Skan	* typeck.c (common_type): Assume that we can call common_type to
2350169689Skan	unify the target type of a pointer.
2351169689Skan
2352169689SkanThu Mar 23 00:48:44 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2353169689Skan
2354169689Skan	* decl2.c (finish_file): Don't synthesize methods at
2355169689Skan	finish_vtable_prevardecl time.  Do synthesize methods that are not
2356169689Skan	used, but are public and not external.
2357169689Skan
2358169689Skan	* cvt.c (build_type_conversion): Only give an error if for_sure.
2359169689Skan
2360169689Skan	* typeck.c (comp_target_types): Only support pointer conversions if
2361169689Skan	nptrs > 0.
2362169689Skan
2363169689SkanWed Mar 22 19:30:15 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
2364169689Skan
2365169689Skan	* init.c (build_new): Catch use of an initializer list where it
2366169689Skan	shouldn't be.
2367169689Skan
2368169689SkanWed Mar 22 16:21:07 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2369169689Skan
2370169689Skan	* init.c (build_new): Wrap alloc_expr in an RTL_EXPR if nelts is
2371169689Skan	non-constant.
2372169689Skan
2373169689Skan	* decl2.c: temp_name_counter is now public.
2374169689Skan
2375169689Skan	* decl.c (struct cp_function): Add temp_name_counter field.
2376169689Skan	(push_cp_function_context): Save it.
2377169689Skan	(pop_cp_function_context): Restore it.
2378169689Skan
2379169689Skan	* typeck.c (common_type): Handle unifying function types, and unify
2380169689Skan	unmatched things to void* with a compiler_error, rather than
2381169689Skan	silently like before.
2382169689Skan
2383169689SkanWed Mar 22 15:10:34 1995  Mike Stump  <mrs@cygnus.com>
2384169689Skan
2385169689Skan	* decl2.c (finish_prevtable_vardecl, finish_vtable_vardecl): Revert
2386169689Skan	Brendan's last change and fix latent problem that causes TD entries
2387169689Skan	to not come out when the things that need them has yet to be
2388169689Skan	expanded.
2389169689Skan
2390169689SkanWed Mar 22 15:12:00 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2391169689Skan
2392169689Skan	* typeck.c (build_binary_op_nodefault, comparison ops): Update type0
2393169689Skan	and type1, since we might have changed op0 or op1.
2394169689Skan
2395169689SkanWed Mar 22 13:33:45 1995  Jason Merrill  <jason@python.cygnus.com>
2396169689Skan
2397169689Skan	* typeck.c (common_type): Don't mess up templates.
2398169689Skan
2399169689SkanWed Mar 22 04:56:00 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2400169689Skan
2401169689Skan	* typeck.c (common_type): Handle ptms properly.  Also handle
2402169689Skan	T* -> void*.
2403169689Skan	(build_binary_op_nodefault): New variable build_type controls what
2404169689Skan	type is given to the expression when it is created.  Set this to
2405169689Skan	boolean_type_node for comparison ops instead of using result_type.
2406169689Skan	(comp_target_types): Allow T * -> void *.
2407169689Skan
2408169689Skan	* cvt.c (cp_convert_to_pointer): Do access control when converting
2409169689Skan	ptms, too.
2410169689Skan
2411169689SkanTue Mar 21 17:25:06 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
2412169689Skan
2413169689Skan	* parse.y (extern_lang_string): Catch use of linkage specs that
2414169689Skan	aren't all naming the same language.
2415169689Skan
2416169689Skan	* class.c (finish_struct): Delete accidental duplicate code.
2417169689Skan
2418169689SkanTue Mar 21 14:00:57 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2419169689Skan
2420169689Skan	* typeck.c (build_binary_op_nodefault): Disable pedwarns about
2421169689Skan	comparing functions and incomplete types.
2422169689Skan
2423169689Skan	* decl.c (finish_function): Only unset current_function_decl if
2424169689Skan	!nested.
2425169689Skan	(duplicate_decls): Last change went too far; we only want to stop
2426169689Skan	checking for value/reference ambiguity.
2427169689Skan
2428169689SkanTue Mar 21 01:26:39 1995  Mike Stump  <mrs@cygnus.com>
2429169689Skan
2430169689Skan	* gc.c (build_generic_desc): Zap the DECL_SIZE so that we can lay it
2431169689Skan	out fresh, as the new type may be larger.
2432169689Skan
2433169689SkanMon Mar 20 19:01:10 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2434169689Skan
2435169689Skan	* expr.c (extract_init): Try to expand the RTL for the
2436169689Skan	initialization and figure out what it will look like so we can avoid
2437169689Skan	run-time initialization.  Disabled for now.
2438169689Skan	(extract_scalar_init): Helper for scalar initialization.
2439169689Skan	(extract_aggr_init): Helper for aggregate initialization.
2440169689Skan
2441169689Skan	* decl.c (duplicate_decls): Don't complain about ambiguous
2442169689Skan	declarations.
2443169689Skan	(obscure_complex_init): Now returns a tree.  Call extract_init if
2444169689Skan	we're optimizing and this is a toplevel decl.
2445169689Skan	(finish_decl): Update accordingly.
2446169689Skan
2447169689Skan	* lex.c (check_newline): If we're just changing files (not pushing
2448169689Skan	or popping), update input_file_stack->name.
2449169689Skan
2450169689SkanMon Mar 20 17:55:04 1995  Mike Stump  <mrs@cygnus.com>
2451169689Skan
2452169689Skan	* pt.c (type_unification): Only TEMPLATE_DECLs are handled right now
2453169689Skan	in the transitive unification code.
2454169689Skan
2455169689SkanMon Mar 20 16:07:50 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
2456169689Skan
2457169689Skan	* decl.c (shadow_tag): Don't allow inline, virtual, or explicit on
2458169689Skan	non-functions.
2459169689Skan	(grokdeclarator): Don't allow friends to be defined in local classes.
2460169689Skan
2461169689SkanSat Mar 18 04:03:33 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2462169689Skan
2463169689Skan	* decl2.c (finish_prevtable_vardecl): Use DECL_DECLARED_STATIC
2464169689Skan	rather than DECL_SAVED_INSNS to decide whether or not this method
2465169689Skan	was declared inline.
2466169689Skan
2467169689Skan	* method.c (synthesize_method): Turn off DECL_INLINE if
2468169689Skan	function_cannot_inline_p thinks we're too large.
2469169689Skan
2470169689Skan	* typeck.c (build_indirect_ref): Use build_expr_type_conversion.
2471169689Skan
2472169689SkanFri Mar 17 17:47:36 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2473169689Skan
2474169689Skan	* class.c (instantiate_type): Handle pmfs.
2475169689Skan
2476169689Skan	* typeck.c (convert_for_assignment): Check types when assigning one
2477169689Skan	pmf to another.
2478169689Skan
2479169689Skan	* decl.c (define_label): Fix logic for printing out the name of the
2480169689Skan	label in an error message.
2481169689Skan
2482169689Skan	* error.c (dump_expr): Support ARRAY_REF.
2483169689Skan
2484169689SkanFri Mar 17 17:43:02 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
2485169689Skan
2486169689Skan	* decl2.c (finish_vtable_vardecl): Call build_t_desc here.
2487169689Skan	(finish_prevtable_vardecl): Instead of here.
2488169689Skan
2489169689SkanFri Mar 17 14:40:45 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2490169689Skan
2491169689Skan	* decl.c (expand_static_init): Also use expand_aggr_init if the
2492169689Skan	initializer is a TREE_LIST.
2493169689Skan	(grokdeclarator): Only pedwarn about extra qualification if -pedantic.
2494169689Skan
2495169689Skan	* pt.c (unify): Fix unification of return type.
2496169689Skan
2497169689Skan	* expr.c (fixup_result_decl): Use store_expr, rather than
2498169689Skan	emit_move_insn, to move the return value into the place where
2499169689Skan	callers will expect it.
2500169689Skan
2501169689SkanThu Mar 16 22:05:25 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2502169689Skan
2503169689Skan	* init.c (build_offset_ref): Call assmble_external on functions.
2504169689Skan	* typeck.c (build_component_ref): Likewise.
2505169689Skan
2506169689SkanThu Mar 16 20:28:16 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
2507169689Skan
2508169689Skan	* decl.c (struct saved_scope): Add members base_init_list and
2509169689Skan	member_init_list.
2510169689Skan	(push_to_top_level): Save current_base_init_list and
2511169689Skan	current_member_init_list to them.
2512169689Skan	(pop_from_top_level): Put it back.
2513169689Skan
2514169689SkanThu Mar 16 19:21:14 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2515169689Skan
2516169689Skan	* pt.c (instantiate_template): Call assemble_external.
2517169689Skan
2518169689SkanThu Mar 16 18:07:54 1995  Brendan Kehoe  <brendan@phydeaux.cygnus.com>
2519169689Skan
2520169689Skan	* class.c: Include rtl.h, to get NULL_RTX.
2521169689Skan	(finish_struct): Also zero out DECL_SAVED_INSNS, to avoid problems
2522169689Skan	on hosts with different sizes for each part of the union.
2523169689Skan	* tree.c: Also include rtl.h.
2524169689Skan	(layout_basetypes): Same change for DECL_SAVED_INSNS.
2525169689Skan
2526169689SkanThu Mar 16 13:57:36 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2527169689Skan
2528169689Skan	* pt.c (unify): Fix array domain unification for 64-bit targets.
2529169689Skan
2530169689Skan	* decl2.c (finish_file): Push bizarre type decl before walking the
2531169689Skan	vtables the first time.
2532169689Skan	(walk_vtables): OK, don't set prev to vars if the vardecl_fn messed
2533169689Skan	with TREE_CHAIN (prev).
2534169689Skan
2535169689Skan	* init.c (emit_base_init): Use convert_pointer_to_real instead of
2536169689Skan	convert_pointer_to when converting to a direct base.
2537169689Skan
2538169689SkanWed Mar 15 20:26:29 1995  Mike Stump  <mrs@cygnus.com>
2539169689Skan
2540169689Skan	* pt.c (type_unification): Handle transitive unification better.
2541169689Skan
2542169689SkanWed Mar 15 13:56:16 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2543169689Skan
2544169689Skan	* decl2.c (walk_vtables): Always set prev to vars.
2545169689Skan	(mark_vtable_entries): Call assemble_external on the vtable entries.
2546169689Skan
2547169689Skan	* class.c (finish_struct): Set the vtable's size to NULL_TREE before
2548169689Skan	calling layout_decl, so that it gets updated properly.
2549169689Skan
2550169689Skan	Finally re-enable dynamic synthesis.  This time it works.
2551169689Skan	* method.c (synthesize_method): Pass decl_function_context (fndecl)
2552169689Skan	to {push,pop}_cp_function_context.
2553169689Skan	* decl.c (push_cp_function_context): Now takes a tree argument.
2554169689Skan	(pop_cp_function_context): Likewise.
2555169689Skan	* call.c (build_method_call): Enable synthesis.
2556169689Skan	* lex.c (cons_up_default_function): Likewise.
2557169689Skan
2558169689SkanTue Mar 14 19:14:19 1995  Doug Evans  <dje@chestnut.cygnus.com>
2559169689Skan
2560169689Skan	* parse.y (setattrs): Chain onto prefix_attributes rather than
2561169689Skan	setting it.
2562169689Skan
2563169689SkanWed Mar 15 13:00:00 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
2564169689Skan
2565169689Skan	* decl.c (pushdecl): Check if the type of the VAR_DECL is an
2566169689Skan	error_mark_node before trying to read TYPE_LANG_SPECIFIC.
2567169689Skan
2568169689SkanMon Mar 13 21:00:28 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
2569169689Skan
2570169689Skan	* decl.c (grokdeclarator, case ARRAY_REF): Wrap the exp with fold,
2571169689Skan	and convert the size and integer_one_node to the index type.
2572169689Skan
2573169689SkanMon Mar 13 08:01:02 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2574169689Skan
2575169689Skan	* typeck.c (get_member_function_from_ptrfunc): Save the instance
2576169689Skan	argument, and tack it onto the front of the COND_EXPR to make the
2577169689Skan	semantics come out right.  Grab the instance argument from
2578169689Skan	'*instance_ptrptr', rather than having it passed in separately.
2579169689Skan
2580169689Skan	* various: Change various consed-up comparison operations to have
2581169689Skan	boolean type.  Remove the instance argument in calls to
2582169689Skan	get_member_function_from_ptrfunc.
2583169689Skan
2584169689Skan	* error.c (dump_expr): Dump true and false as "true" and "false".
2585169689Skan
2586169689Skan	* decl2.c (finish_file): Also set DECL_STATIC_FUNCTION_P on the
2587169689Skan	global init function.
2588169689Skan
2589169689Skan	* decl.c (finish_function): Only set DECL_EXTERNAL here if the
2590169689Skan	inline function is public.
2591169689Skan
2592169689SkanSat Mar 11 00:58:03 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2593169689Skan
2594169689Skan	* init.c (is_friend): Be more careful about checking
2595169689Skan	DECL_CLASS_CONTEXT on non-member functions.
2596169689Skan
2597169689Skan	* decl2.c (finish_vtable_vardecl): Don't bother calling
2598169689Skan	assemble_external here.
2599169689Skan	(prune_vtable_vardecl): New function that just splices out the
2600169689Skan	vtable decl from the top-level decls.
2601169689Skan	(import_export_inline): Unset DECL_EXTERNAL at first.
2602169689Skan	(finish_file): Don't bother calling assemble_external here.  Do
2603169689Skan	splice out all of the vtables.
2604169689Skan
2605169689SkanFri Mar 10 14:42:29 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2606169689Skan
2607169689Skan	* decl.c (finish_function): If we're not emitting the function yet,
2608169689Skan	call assemble_external for it.
2609169689Skan
2610169689Skan	* decl2.c (finish_prevtable_vardecl): Don't call mark_vtable_entries
2611169689Skan	here.
2612169689Skan	(finish_vtable_vardecl): Don't do the linkage deduction thing here.
2613169689Skan	Also don't splice out the current vtable if it is unused.
2614169689Skan	(finish_file): Move the second walk_vtables and the synthesis check
2615169689Skan	inside the 'reconsider' loop.  Move thunk emission after the
2616169689Skan	'reconsider' loop.
2617169689Skan
2618169689SkanThu Mar  9 16:28:16 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
2619169689Skan
2620169689Skan	* pt.c (tsubst): Don't bother calling cp_build_type_variant, since it
2621169689Skan	was passing bogus values for readonly and volatile from the original
2622169689Skan	template decl, not the resultant type of the tsubst call.
2623169689Skan
2624169689Skan	* class.c (duplicate_tag_error): Use cp_error_at to point out the
2625169689Skan	previous definition of the tag.
2626169689Skan
2627169689SkanThu Mar  9 10:46:17 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2628169689Skan
2629169689Skan	* decl.c (start_function): Clear base_init_insns and protect_list.
2630169689Skan	(struct cp_function): Add base_init_insns field.
2631169689Skan	(push_cp_function_context): Also save base_init_insns.
2632169689Skan	(pop_cp_function_context): Also restore base_init_insns.
2633169689Skan
2634169689SkanWed Mar  8 13:31:44 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2635169689Skan
2636169689Skan	* init.c (member_init_ok_or_else): Check for initializing a static
2637169689Skan	member here.
2638169689Skan	(emit_base_init): Instead of here.
2639169689Skan
2640169689SkanTue Mar  7 16:03:26 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2641169689Skan
2642169689Skan	* call.c (build_method_call): Disable synthesis as needed.
2643169689Skan	* lex.c (cons_up_default_function): Likewise.
2644169689Skan
2645169689SkanTue Mar  7 10:14:29 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
2646169689Skan
2647169689Skan	* parse.y: New rules to allow attributes in a prefix position.
2648169689Skan	(prefix_attributes): New variable.  Pass it into cplus_decl_attributes.
2649169689Skan	(setattr): New rule.
2650169689Skan	(reserved_declspecs, declmods): Catch attributes here.
2651169689Skan	* decl2.c (cplus_decl_attributes): Add PREFIX_ATTRIBUTES argument.
2652169689Skan	* decl.c (duplicate_decls): Pass DECL_MACHINE_ATTRIBUTES to
2653169689Skan	descendent typedef.
2654169689Skan	(grokdeclarator): Added code to support machine attributes.
2655169689Skan	* Makefile.in (stamp-parse): Expect 5 shift/reduce failures.
2656169689Skan
2657169689SkanMon Mar  6 15:07:02 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2658169689Skan
2659169689Skan	* call.c (build_method_call): Don't synthesize methods outside of a
2660169689Skan	function.
2661169689Skan
2662169689Skan	Make base initialization more re-entrant so that synthesis on the
2663169689Skan	fly will work (and, eventually, template instantiation on the fly).
2664169689Skan	* init.c (sort_member_init): Don't bother with members that can't be
2665169689Skan	initialized.  Reorganize a bit.  Don't initialize base members here.
2666169689Skan	(sort_base_init): New function, like sort_member_init, but for base
2667169689Skan	classes.  Steals some code from emit_base_init.
2668169689Skan	(emit_base_init): Simplify.  Call sort_{member,base}_init before
2669169689Skan	doing any initialization, so we don't have to save
2670169689Skan	current_{member,base}_init_list in push_cp_function_context.
2671169689Skan	(expand_aggr_vbase_init_1): Adjust for sort_base_init.
2672169689Skan	(expand_aggr_vbase_init): Simplify.
2673169689Skan	* decl.c (struct cp_function): Add protect_list field.
2674169689Skan	(push_cp_function_context): Also save protect_list.
2675169689Skan	(pop_cp_function_context): Also restore protect_list.
2676169689Skan	* call.c (build_method_call): Enable synthesis at point of call.
2677169689Skan	* lex.c (cons_up_default_function): Likewise.
2678169689Skan
2679169689Skan	* parse.y: Turn -ansi checks back into -pedantic checks.
2680169689Skan
2681169689Skan	* init.c (build_new): Fix -fcheck-new for array new.
2682169689Skan
2683169689SkanSat Mar  4 15:55:42 1995  Fergus Henderson  <fjh@cs.mu.oz.au>
2684169689Skan
2685169689Skan	* typeck.c (build_compound_expr): warn if left-hand operand of
2686169689Skan	comma expression has no side-effects.
2687169689Skan
2688169689SkanFri Mar  3 15:16:45 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2689169689Skan
2690169689Skan	* parse.y (primary): Change 'object qualified_id *' rules to 'object
2691169689Skan	overqualified_id *'.
2692169689Skan
2693169689SkanFri Mar  3 12:48:17 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
2694169689Skan
2695169689Skan	* parse.y (unary_expr): Catch doing sizeof an overloaded function.
2696169689Skan	Make the error look the same as the one we issue in c_sizeof.
2697169689Skan
2698169689Skan	* typeck.c (build_binary_op_nodefault): Give an error for trying
2699169689Skan	to compare a pointer-to-member to `void *'.
2700169689Skan
2701169689SkanFri Mar  3 11:28:50 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2702169689Skan
2703169689Skan	* typeck.c (build_unary_op): Handle bool increment with smoke and
2704169689Skan	mirrors here, rather than in expand_increment where it belongs,
2705169689Skan	because Kenner doesn't agree with me.
2706169689Skan
2707169689SkanFri Mar  3 00:08:10 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
2708169689Skan
2709169689Skan	* decl.c (grokparms): Catch a PARM_DECL being used for a default
2710169689Skan	argument as well.
2711169689Skan
2712169689SkanThu Mar  2 20:05:54 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
2713169689Skan
2714169689Skan	* init.c (build_new): Don't allow new on a function type.
2715169689Skan
2716169689Skan	* parse.y (primary): Avoid a crash when seeing if the arg is of
2717169689Skan	the same type as that given for the typespec in an explicit dtor call.
2718169689Skan
2719169689SkanThu Mar  2 00:49:38 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2720169689Skan
2721169689Skan	* decl.c (finish_function): Change test for calling
2722169689Skan	mark_inline_for_output.
2723169689Skan
2724169689SkanWed Mar  1 11:23:46 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2725169689Skan
2726169689Skan	* typeck.c (build_modify_expr): Complain if
2727169689Skan	build_default_binary_type_conversion fails.
2728169689Skan
2729169689Skan	* init.c (expand_default_init): Handle arguments of unknown type
2730169689Skan	properly.
2731169689Skan
2732169689Skan	* cvt.c (build_expr_type_conversion): Only complain about ambiguity
2733169689Skan	if 'complain'.
2734169689Skan	* various: Pass 'complain'.
2735169689Skan
2736169689Skan	* typeck.c (comptypes): Be more picky about comparing UPTs.
2737169689Skan
2738169689SkanWed Mar  1 11:03:41 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
2739169689Skan
2740169689Skan	* decl.c (grokdeclarator): If declarator is null, say that the
2741169689Skan	type used has an incomplete type.
2742169689Skan
2743169689SkanWed Mar  1 10:06:20 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2744169689Skan
2745169689Skan	* pt.c (instantiate_template): Copy the template arguments to the
2746169689Skan	permanent_obstack.  Also use simple_cst_equal to compare them when
2747169689Skan	looking for a previous instantiation.
2748169689Skan
2749169689Skan	* tree.c (make_deep_copy): Support copying INTEGER_TYPEs (assuming
2750169689Skan	they are array domain types).
2751169689Skan
2752169689SkanTue Feb 28 23:24:55 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2753169689Skan
2754169689Skan	* cp-tree.h: Define WANT_* constants for passing to
2755169689Skan	build_expr_type_conversion.
2756169689Skan	* cvt.c (build_expr_type_conversion): New function to build
2757169689Skan	conversion to one of a group of suitable types.
2758169689Skan	(build_default_binary_type_conversion): Use it.
2759169689Skan	* decl2.c (grok_array_decl): Likewise.
2760169689Skan	* typeck.c (build_unary_op): Likewise.
2761169689Skan	(build_array_ref): Tidy up a bit.
2762169689Skan	(build_binary_op): Likewise.
2763169689Skan
2764169689SkanTue Feb 28 19:57:31 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
2765169689Skan
2766169689Skan	* decl.c (grokdeclarator): Don't allow decl of an argument as `void'.
2767169689Skan
2768169689SkanTue Feb 28 17:23:36 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2769169689Skan
2770169689Skan	* parse.y (typed_declspecs1): Add 'typespec reserved_typespecquals
2771169689Skan	reserved_declspecs' rule.
2772169689Skan
2773169689Skan	* parse.y (expr_or_declarator): Remove notype_qualified_id rule.
2774169689Skan	(direct_notype_declarator): Likewise.
2775169689Skan	(complex_direct_notype_declarator): Add notype_qualified_id rule.
2776169689Skan
2777169689Skan	* lex.c (real_yylex): Handle :> digraph properly.
2778169689Skan
2779169689SkanTue Feb 28 12:26:29 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
2780169689Skan
2781169689Skan	* decl.c (grokdeclarator): Check if it's a friend, not if it's
2782169689Skan	non-virtual, that's being initialized.  Move the check up to
2783169689Skan	before FRIENDP would get cleared.  Catch an unnamed var/field
2784169689Skan	being declared void.  Say just `field' instead of `structure field'
2785169689Skan	in the error message.  Only go for the operator name if DECLARATOR
2786169689Skan	is non-null.
2787169689Skan
2788169689SkanTue Feb 28 00:08:01 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2789169689Skan
2790169689Skan	* decl.c (start_function): Complain about abstract return type.
2791169689Skan	(grokdeclarator): Complain about declaring constructors and
2792169689Skan	destructors to be const or volatile.  Complain about declaring
2793169689Skan	destructors to be static.
2794169689Skan
2795169689Skan	* pt.c (uses_template_parms): Handle pmfs.
2796169689Skan
2797169689Skan	* decl.c (grokdeclarator): Don't call variable_size for array bounds
2798169689Skan	that only depend on template constant parameters.
2799169689Skan
2800169689SkanMon Feb 27 15:38:16 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
2801169689Skan
2802169689Skan	* error.c (dump_decl): Only look to see if it's a vtable if we
2803169689Skan	actually have a name to check out.
2804169689Skan
2805169689SkanMon Feb 27 13:37:53 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2806169689Skan
2807169689Skan	* cvt.c (convert_to_aggr): Lose misleading shortcut.
2808169689Skan
2809169689SkanSun Feb 26 17:27:32 1995  Doug Evans  <dje@canuck.cygnus.com>
2810169689Skan
2811169689Skan	* decl.c (set_nested_typename): Always set DECL_IGNORED_P,
2812169689Skan	not just for dwarf.
2813169689Skan
2814169689SkanSun Feb 26 00:10:18 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
2815169689Skan
2816169689Skan	* decl.c (grokdeclarator): Don't allow a static member to be
2817169689Skan	declared `register'.
2818169689Skan
2819169689Skan	* init.c (make_friend_class): Move up to a pedwarn for the warning
2820169689Skan	about a class declaring friends with itself.
2821169689Skan
2822169689Skan	* decl.c (grokdeclarator): You can't do `volatile friend class foo'
2823169689Skan	or `inline friend class foo'.  Only try to make a friend out of
2824169689Skan	TYPE if we didn't already reset it to integer_type_node.
2825169689Skan
2826169689SkanSat Feb 25 22:32:03 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
2827169689Skan
2828169689Skan	* decl.c (grokdeclarator): Don't allow initialization of a
2829169689Skan	non-virtual function.
2830169689Skan
2831169689Skan	* decl.c (start_function): Do a pedwarn if we're changing `main'
2832169689Skan	to have an int return type.
2833169689Skan
2834169689SkanSat Feb 25 00:02:05 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2835169689Skan
2836169689Skan	* typeck.c (build_modify_expr): Handle simple assignment from
2837169689Skan	TARGET_EXPRs by building up an RTL_EXPR to force expansion.  Whew.
2838169689Skan
2839169689SkanFri Feb 24 18:27:14 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
2840169689Skan
2841169689Skan	* decl.c (grokdeclarator): Also don't allow virtual outside of a
2842169689Skan	class decl for a scope method definition performed at global binding.
2843169689Skan
2844169689Skan	* init.c (build_offset_ref): Don't allow creation of an OFFSET_REF
2845169689Skan	of a bitfield.
2846169689Skan
2847169689Skan	* decl.c (grokdeclarator): Don't allow a const to be declared mutable.
2848169689Skan
2849169689Skan	* typeck.c (build_binary_op): Return an error_mark_node if either
2850169689Skan	one of the args turned into an error_mark_node when we tried to
2851169689Skan	use default_conversion.
2852169689Skan
2853169689Skan	* typeck.c (build_unary_op): Forbid using postfix -- on a bool.
2854169689Skan
2855169689Skan	* decl.c (grokdeclarator): Allow `signed' and `unsigned' to be
2856169689Skan	used on `__wchar_t'.
2857169689Skan
2858169689SkanFri Feb 24 13:59:53 1995  Mike Stump  <mrs@cygnus.com>
2859169689Skan
2860169689Skan	* except.c (end_protect_partials): Do it the right way.
2861169689Skan
2862169689SkanWed Feb 22 15:42:56 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2863169689Skan
2864169689Skan	* typeck.c (build_binary_op_nodefault): Upgrade warning about
2865169689Skan	comparing distinct pointer types to pedwarn.
2866169689Skan
2867169689Skan	* typeck2.c (digest_init): Cope with extra braces.
2868169689Skan
2869169689Skan	* typeck.c (build_binary_op_nodefault): Use tree_int_cst_sgn instead
2870169689Skan	of INT_CST_LT (..., interger_zero_node).
2871169689Skan
2872169689SkanWed Feb 22 14:45:52 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
2873169689Skan
2874169689Skan	* except.c [!TRY_NEW_EH] (end_protect_partials): Define dummy
2875169689Skan	function for systems that don't have EH.
2876169689Skan
2877169689SkanTue Feb 21 19:18:31 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2878169689Skan
2879169689Skan	* call.c (can_convert_arg): Like can_convert, but takes an arg as
2880169689Skan	well.
2881169689Skan
2882169689Skan	* pt.c (type_unification): Allow implicit conversions for parameters
2883169689Skan	that do not depend on template parameters.
2884169689Skan
2885169689SkanTue Feb 21 18:43:48 1995  Douglas Rupp  <drupp@cs.washington.edu>
2886169689Skan
2887169689Skan	* Make-lang.in, config-lang.in: ($exeext): New macro.
2888169689Skan	* Make-lang.in: Try a "cp" if "ln" fails.
2889169689Skan	* cp-tree.h (decl_attributes): Added argument.
2890169689Skan	* decl2.c (cplus_decl_attribute): Add arg to decl_attributes.
2891169689Skan	* cp/g++.c: Added #ifdefs for sys/file.h and process.h for NT.
2892169689Skan	Modified spawnvp to have to correct number of arguments for OS/2, NT.
2893169689Skan
2894169689SkanTue Feb 21 18:36:55 1995  Mike Stump  <mrs@cygnus.com>
2895169689Skan
2896169689Skan	* decl.c (finish_function): Add calls to end_protect_partials to end
2897169689Skan	the exception region that protects constructors so that partially
2898169689Skan	constructed objects can be partially destructed when the constructor
2899169689Skan	throws an exception.
2900169689Skan	* init.c (perform_member_init, sort_member_init, emit_base_init):
2901169689Skan	Added support for partially constructed objects.
2902169689Skan	* init.c (build_partial_cleanup_for): New routine to do partial
2903169689Skan	cleanups of a base class.
2904169689Skan	* decl2.c (finish_file): Move the emitting of the exception table
2905169689Skan	down, after we emit all code that might have exception regions in
2906169689Skan	them.
2907169689Skan	* except.c (end_protect_partials, might_have_exceptions_p): New
2908169689Skan	routines.
2909169689Skan	(emit_exception_table): Always output table if called.
2910169689Skan	* cp-tree.h (protect_list, end_protect_partials,
2911169689Skan	might_have_exceptions_p, emit_exception_table): Added.
2912169689Skan
2913169689SkanTue Feb 21 16:05:59 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
2914169689Skan
2915169689Skan	* gc.c (build_typeid): Pass a NULL_TREE, not the bogus, unused
2916169689Skan	address of a local variable.
2917169689Skan	* class.c (build_vfn_ref): Only try to build the PLUS_EXPR if we
2918169689Skan	were given a non-null PTR_TO_INSTPTR.
2919169689Skan
2920169689SkanTue Feb 21 01:53:18 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2921169689Skan
2922169689Skan	* decl.c (duplicate_decls): Always lay out the merged decl.
2923169689Skan
2924169689Skan	* decl2.c (finish_vtable_vardecl): Don't do vtable hack on templates.
2925169689Skan	(finish_prevtable_vardecl): Likewise.
2926169689Skan
2927169689Skan	* method.c (synthesize_method): Set interface_{unknown,only}
2928169689Skan	according to the settings for our class, not the file where it comes
2929169689Skan	from.
2930169689Skan
2931169689SkanSat Feb 18 12:26:48 1995  Mike Stump  <mrs@cygnus.com>
2932169689Skan
2933169689Skan	* except.c: Handle systems that define __i386__ but not __i386.
2934169689Skan
2935169689SkanFri Feb 17 15:31:31 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2936169689Skan
2937169689Skan	* decl2.c (reparse_decl_as_expr): Support being called without a
2938169689Skan	type argument.
2939169689Skan
2940169689Skan	* parse.y (primary): Add '(' expr_or_declarator ')'.  Adds 4 r/r
2941169689Skan	conflicts.  Sigh.
2942169689Skan
2943169689SkanFri Feb 17 12:02:06 1995  Mike Stump  <mrs@cygnus.com>
2944169689Skan
2945169689Skan	* parse.y (template_def, fndef, fn.def1, return_init, condition,
2946169689Skan	initdcl0, initdcl, notype_initdcl0, nomods_initdcl0,
2947169689Skan	component_decl_1, after_type_component_declarator0,
2948169689Skan	notype_component_declarator0, after_type_component_declarator,
2949169689Skan	notype_component_declarator, after_type_component_declarator,
2950169689Skan	full_parm, maybe_raises, exception_specification_opt): Fix up,
2951169689Skan	include exception_specification_opt maybeasm maybe_attribute and
2952169689Skan	maybe_init if missing.  Rename maybe_raises to
2953169689Skan	exception_specification_opt to match draft wording.  Use maybe_init
2954169689Skan	to simplify rules.
2955169689Skan
2956169689SkanFri Feb 17 01:54:46 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2957169689Skan
2958169689Skan	* init.c (build_new): Set TREE_NO_UNUSED_WARNING on COMPOUND_EXPRs
2959169689Skan	built for news of scalar types.
2960169689Skan
2961169689SkanThu Feb 16 17:48:28 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2962169689Skan
2963169689Skan	* typeck.c (build_binary_op_nodefault): Update code for warning
2964169689Skan	about signed/unsigned comparisons from C frontend.  Realize that the
2965169689Skan	code in the C frontend is, if anything, even more bogus.  Fix it.
2966169689Skan	(build_binary_op): Undo default_conversion if it wasn't useful.
2967169689Skan
2968169689Skan	* typeck.c (build_unary_op, ADDR_EXPR): Lose bogus special case for
2969169689Skan	PRE*CREMENT_EXPR.
2970169689Skan
2971169689Skan	* decl2.c (import_export_vtable): Don't try the vtable hack
2972169689Skan	if the class doesn't have any real non-inline virtual functions.
2973169689Skan	(finish_vtable_vardecl): Don't bother trying to find a non-inline
2974169689Skan	virtual function in a non-polymorphic class.
2975169689Skan	(finish_prevtable_vardecl): Likewise.
2976169689Skan
2977169689Skan	* decl2.c (import_export_vtable): Use and set DECL_INTERFACE_KNOWN.
2978169689Skan
2979169689Skan	* cp-tree.h (DECL_INTERFACE_KNOWN): Use DECL_LANG_FLAG_5.
2980169689Skan
2981169689Skan	* init.c (expand_virtual_init): Always call assemble_external.
2982169689Skan
2983169689Skan	* class.c (build_vfn_ref): Always call assemble_external.
2984169689Skan	(build_vtable): Always call import_export_vtable.
2985169689Skan	(prepare_fresh_vtable): Likewise.
2986169689Skan	(add_virtual_function): Don't bother setting TREE_ADDRESSABLE.
2987169689Skan
2988169689SkanThu Feb 16 03:28:49 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2989169689Skan
2990169689Skan	* class.c (finish_struct): Use TYPE_{MIN,MAX}_VALUE to determine
2991169689Skan	whether an enumerated type fits in a bitfield.
2992169689Skan
2993169689SkanWed Feb 15 15:38:12 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
2994169689Skan
2995169689Skan	* class.c (grow_method): Update method_vec after growing the class
2996169689Skan	obstack.
2997169689Skan
2998169689SkanWed Feb 15 13:42:59 1995  Mike Stump  <mrs@cygnus.com>
2999169689Skan
3000169689Skan	* parse.y (handler_seq): Push a level for the catch parameters.
3001169689Skan
3002169689SkanWed Feb 15 12:42:57 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3003169689Skan
3004169689Skan	* init.c (emit_base_init): Update BINFO_INHERITANCE_CHAIN on my
3005169689Skan	bases, in case they've been clobbered.
3006169689Skan
3007169689SkanWed Feb 15 12:07:29 1995  Mike Stump  <mrs@cygnus.com>
3008169689Skan
3009169689Skan	* class.c (finish_base_struct): Set up BINFO_INHERITANCE_CHAIN here,
3010169689Skan	so that one day it will always be valid.
3011169689Skan	* tree.c (propagate_binfo_offsets, layout_vbasetypes): Likewise.
3012169689Skan
3013169689Skan	* cp-tree.h (copy_binfo): Removed, unused.
3014169689Skan	* tree.c (copy_binfo): Likewise.
3015169689Skan
3016169689SkanWed Feb 15 00:05:30 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3017169689Skan
3018169689Skan	* init.c (build_new): Save the allocation before calling
3019169689Skan	expand_vec_init on it.
3020169689Skan
3021169689Skan	* decl.c (finish_enum): The TYPE_PRECISION of the enum type mush
3022169689Skan	match the TYPE_PRECISION of the underlying type for constant folding
3023169689Skan	to work.
3024169689Skan
3025169689SkanTue Feb 14 15:31:25 1995  Mike Stump  <mrs@cygnus.com>
3026169689Skan
3027169689Skan	* except.c (push_eh_entry, expand_start_all_catch,
3028169689Skan	expand_leftover_cleanups, expand_end_catch_block): Keep track of
3029169689Skan	the context in which the exception region occurs.
3030169689Skan	(build_exception_table): If the region was not output, don't output
3031169689Skan	the entry in the eh table for it.
3032169689Skan
3033169689SkanTue Feb 14 02:15:43 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3034169689Skan
3035169689Skan	* init.c (expand_default_init): Only use a previous constructor call
3036169689Skan	if it's a call to our constructor.  Does the word "Duh" mean
3037169689Skan	anything to you?
3038169689Skan
3039169689Skan	* decl.c (grokparms): Fine, just don't call
3040169689Skan	convert_for_initialization at all.  OK?  Happy now?
3041169689Skan
3042169689SkanMon Feb 13 02:23:44 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3043169689Skan
3044169689Skan	* cp-tree.h (CLASSTYPE_FIRST_CONVERSION): Make sure that the class
3045169689Skan	method vector has a second element before returning it.
3046169689Skan
3047169689Skan	* decl.c (grokparms): Don't strip REFERENCE_TYPE before calling
3048169689Skan	convert_for_initialization.
3049169689Skan
3050169689SkanSun Feb 12 03:57:06 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3051169689Skan
3052169689Skan	* typeck.c (build_modify_expr): Compare function name to
3053169689Skan	constructor_name (current_class_type) instead of current_class_name.
3054169689Skan
3055169689Skan	* decl.c (grokparms): Don't do anything with the return value of
3056169689Skan	convert_for_initialization.
3057169689Skan
3058169689Skan	* error.c (dump_decl): Also dump_readonly_or_volatile on the decl.
3059169689Skan
3060169689Skan	* decl.c (duplicate_decls): Tweak error message.
3061169689Skan
3062169689Skan	* typeck.c (build_const_cast): Implement checking.
3063169689Skan	(build_reinterpret_cast): Implement some checking.
3064169689Skan
3065169689Skan	* cp-tree.h (CONV_FORCE_TEMP): Require a new temporary when
3066169689Skan	converting to the same aggregate type.
3067169689Skan	(CONV_STATIC_CAST): Include it.
3068169689Skan	(CONV_C_CAST): Likewise.
3069169689Skan	* cvt.c (convert_force): Use CONV_C_CAST instead of CONV_OLD_CONVERT.
3070169689Skan	(cp_convert): Only force a new temporary if CONV_FORCE_TEMP.
3071169689Skan
3072169689SkanFri Feb 10 16:18:52 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3073169689Skan
3074169689Skan	* typeck.c (build_c_cast): Use non_lvalue to tack something on
3075169689Skan	where necessary.
3076169689Skan
3077169689Skan	* decl.c (auto_function): Now a function.
3078169689Skan	* except.c (init_exception_processing): terminate, unexpected,
3079169689Skan	set_terminate, and set_unexpected have C++ linkage.
3080169689Skan
3081169689Skan	* typeck.c (build_unary_op, TRUTH_NOT_EXPR): Use convert instead of
3082169689Skan	truthvalue_conversion for converting to bool, as it handles
3083169689Skan	user-defined conversions properly.
3084169689Skan	(condition_conversion): Likewise.
3085169689Skan
3086169689Skan	* except.c (expand_throw): Don't call convert_to_reference.
3087169689Skan	Pass the correct parameters to build_new.
3088169689Skan
3089169689Skan	* method.c (do_build_assign_ref): Don't use access control when
3090169689Skan	converting to a base reference here.
3091169689Skan	(do_build_copy_constructor): Or here.
3092169689Skan
3093169689Skan	* init.c (build_new): Unset TREE_READONLY on the dereferenced
3094169689Skan	pointer before assigning to it.
3095169689Skan
3096169689Skan	* decl.c (maybe_build_cleanup): Don't bother stripping const here.
3097169689Skan
3098169689Skan	* decl2.c (delete_sanity): You can now delete pointer to const.
3099169689Skan
3100169689SkanFri Feb 10 13:28:38 1995  Jason Merrill  <jason@python.cygnus.com>
3101169689Skan
3102169689Skan	* decl.c (finish_function): Don't rely on actual parameters being
3103169689Skan	evaluated left-to-right.
3104169689Skan	* except.c (expand_end_catch_block): Likewise.
3105169689Skan
3106169689SkanFri Feb 10 00:52:04 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3107169689Skan
3108169689Skan	* tree.c (real_lvalue_p): Like lvalue_p, but class temps aren't
3109169689Skan	considered lvalues.
3110169689Skan	* cvt.c (convert_to_reference): Use real_lvalue_p instead of
3111169689Skan	lvalue_p.
3112169689Skan
3113169689Skan	* cvt.c (build_type_conversion_1): Don't call convert on aggregate
3114169689Skan	types.
3115169689Skan	(convert_to_reference): Fix erroneous text substitution.
3116169689Skan
3117169689Skan	* typeck2.c (initializer_constant_valid_p): Update from C frontend.
3118169689Skan	Add new argument to all callers.
3119169689Skan
3120169689Skan	* typeck.c (convert_arguments): Check for error_mark_node before
3121169689Skan	trying to do anything with the actual parameter.
3122169689Skan
3123169689Skan	* typeck.c (condition_conversion): Build up a CLEANUP_POINT_EXPR and
3124169689Skan	fold it.
3125169689Skan	(bool_truthvalue_conversion): Remove.  Fix all callers to call
3126169689Skan	truthvalue_conversion instead.
3127169689Skan	(various): Fold CLEANUP_POINT_EXPRs.
3128169689Skan
3129169689Skan	* parse.y (conditions): Call condition_conversion rather than
3130169689Skan	building up a CLEANUP_POINT_EXPR.
3131169689Skan
3132169689Skan	* pt.c (end_template_decl): Don't warn_if_unknown_interface here
3133169689Skan	under -falt-external-templates.
3134169689Skan
3135169689SkanThu Feb  9 05:24:10 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3136169689Skan
3137169689Skan	* init.c (build_new): Complain about new of const type without
3138169689Skan	initializer.  Other cleanup.
3139169689Skan
3140169689Skan	* call.c (compute_conversion_costs): Don't call
3141169689Skan	build_type_conversion with a reference type; convert to the target
3142169689Skan	type and check its lvaluetude.
3143169689Skan	* cvt.c (convert_to_reference): Likewise.
3144169689Skan
3145169689Skan	* cvt.c (build_type_conversion_1): There will never be any need to
3146169689Skan	dereference references here now.
3147169689Skan
3148169689SkanThu Feb  9 00:37:47 1995  Mike Stump  <mrs@cygnus.com>
3149169689Skan
3150169689Skan	* except.c (expand_builtin_throw): Make sure we only `use' the
3151169689Skan	value of return_val_rtx.
3152169689Skan
3153169689SkanWed Feb  8 15:45:55 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3154169689Skan
3155169689Skan	* parse.y (structsp): Don't complain about declaring a type being
3156169689Skan	defined to be a friend.
3157169689Skan
3158169689Skan	* decl2.c (warn_if_unknown_interface): Note the template in question
3159169689Skan	and the point of instantiation, for -falt-external-templates.
3160169689Skan	* lex.c (reinit_parse_for_method): Pass the decl to
3161169689Skan	warn_if_unknown_interface.
3162169689Skan	* pt.c (instantiate_template): Likewise.
3163169689Skan	(end_template_decl): Likewise.
3164169689Skan
3165169689Skan	* decl.c (set_nested_typename): Set IDENTIFIER_TYPE_VALUE on the
3166169689Skan	nested name again, to make local classes work a bit better.
3167169689Skan
3168169689Skan	* typeck.c (build_function_call_real): Dereference reference after
3169169689Skan	checking for incomplete type.
3170169689Skan
3171169689Skan	* init.c (build_new): Accept new of const and volatile types.
3172169689Skan
3173169689SkanWed Feb  8 14:04:16 1995  Jason Merrill  <jason@deneb.cygnus.com>
3174169689Skan
3175169689Skan	* decl.c (grokdeclarator): Fix error message.
3176169689Skan
3177169689SkanWed Feb  8 03:16:15 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3178169689Skan
3179169689Skan	* typeck.c (convert_for_initialization): Do bash arrays when
3180169689Skan	converting to a reference to non-array.
3181169689Skan
3182169689SkanTue Feb  7 15:50:33 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3183169689Skan
3184169689Skan	* cvt.c (cp_convert): Don't call convert_to_reference, or
3185169689Skan	automatically dereference references.  Do pass reference conversions
3186169689Skan	to cp_convert_to_pointer.
3187169689Skan	(cp_convert_to_pointer): Support references.
3188169689Skan
3189169689Skan	* call.c (build_method_call): Don't build up a reference to the
3190169689Skan	parameter here; let build_overload_call handle that.
3191169689Skan
3192169689Skan	* typeck.c (build_c_cast): Call convert_to_reference directly if
3193169689Skan	converting to a reference type.
3194169689Skan	* method.c (do_build_copy_constructor): Likewise.
3195169689Skan	* method.c (do_build_copy_constructor): Likewise.
3196169689Skan	(do_build_assign_ref): Likewise.
3197169689Skan
3198169689Skan	* call.c (build_method_call): Dereference a returned reference.
3199169689Skan	* typeck.c (build_function_call_real): Likewise.
3200169689Skan
3201169689Skan	* decl.c (xref_basetypes): Check for unions with basetypes here.
3202169689Skan	(xref_tag): Instead of here.
3203169689Skan
3204169689Skan	* pt.c (process_template_parm): Template type parm decls are
3205169689Skan	artificial.
3206169689Skan
3207169689SkanMon Feb  6 04:32:09 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3208169689Skan
3209169689Skan	* parse.y (typed_declspecs): Add missing semicolon.
3210169689Skan	(do_xref_defn): Resurrect.
3211169689Skan	(named_class_head_sans_basetype): Move template specialization
3212169689Skan	definition cases to named_class_head_sans_basetype_defn.
3213169689Skan
3214169689Skan	* decl2.c (grokfield): Call pushdecl_class_level after setting the
3215169689Skan	TYPE_NAME, not before.
3216169689Skan
3217169689SkanSun Feb  5 02:50:45 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3218169689Skan
3219169689Skan	* call.c (convert_harshness): Don't call sorry here.  Don't allow
3220169689Skan	conversions between function pointer types if pedantic.
3221169689Skan
3222169689Skan	* pt.c (overload_template_name): Pass globalize=1 to xref_tag.
3223169689Skan
3224169689Skan	* lex.c (cons_up_default_function): Use the full name for the return
3225169689Skan	type of op=.
3226169689Skan
3227169689Skan	* decl.c (set_nested_typename): Don't worry about anonymous types,
3228169689Skan	as they already have a unique name.
3229169689Skan	(pushdecl): Remove redundant set_nested_typename
3230169689Skan	(xref_tag): Split out base handling into xref_basetypes.
3231169689Skan
3232169689Skan	* cp-tree.h (TYPE_INCOMPLETE): New macro; TEMPLATE_TYPE_PARMs are
3233169689Skan	not considered incomplete even though their definition is unknown.
3234169689Skan
3235169689Skan	* decl.c (xref_defn_tag): Lose.
3236169689Skan	(xref_tag): xref_next_defn = ! globalize.
3237169689Skan	(pushdecl): Don't set DECL_NESTED_TYPENAME on artificial decls.  The
3238169689Skan	ones that should have it set will have it set by pushtag.
3239169689Skan	(pushdecl_class_level): Likewise.
3240169689Skan	(pushtag): Tidy up a bit.
3241169689Skan	(set_nested_typename): Push a decl for the nested typename from
3242169689Skan	here, rather than from xref_defn_tag.
3243169689Skan
3244169689Skan	* parse.y (do_xref): Lose.
3245169689Skan	(named_class_head): If we see 'class foo:' we know it's a
3246169689Skan	definition, so don't worry about base lists for non-definitions.
3247169689Skan
3248169689Skan	* pt.c (push_template_decls): Template parm decls are artificial.
3249169689Skan
3250169689Skan	* decl.c (duplicate_decls): Restore check for qualifier
3251169689Skan	disagreement for non-functions.
3252169689Skan	(decls_match): Remove check for qualifier disagreement.
3253169689Skan
3254169689SkanFri Feb  3 14:58:58 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3255169689Skan
3256169689Skan	* decl.c (grok_reference_init): Convert initializer from
3257169689Skan	reference.
3258169689Skan	* typeck.c (convert_for_initialization): Likewise.
3259169689Skan
3260169689Skan	* decl.c (duplicate_decls): Propagate DECL_NESTED_TYPENAME.
3261169689Skan
3262169689Skan	* cvt.c (cp_convert): Don't convert to the same class type by just
3263169689Skan	tacking on a NOP_EXPR.
3264169689Skan	(convert_to_reference): Use comp_target_types instead of comptypes
3265169689Skan	so that we don't allow conversions two levels down.
3266169689Skan
3267169689SkanThu Feb  2 15:07:58 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3268169689Skan
3269169689Skan	* class.c (build_vbase_path): Bash types to make the backend happy.
3270169689Skan	* cvt.c (build_up_reference): Bash the types bashed by
3271169689Skan	build_vbase_path to be reference types instead of pointer types.
3272169689Skan	(convert_to_reference): Likewise.
3273169689Skan
3274169689Skan	* typeck.c (build_c_cast): Don't strip NOPs if we're converting to a
3275169689Skan	reference type.
3276169689Skan
3277169689Skan	* parse.y (structsp): Put back error for 'struct B: public A;'.
3278169689Skan
3279169689SkanWed Feb  1 23:02:06 1995  Mike Stump  <mrs@cygnus.com>
3280169689Skan
3281169689Skan	* except.c: Add support for mips systems that don't define __mips
3282169689Skan	but do define mips, like Ultrix.
3283169689Skan
3284169689SkanWed Feb  1 22:39:07 1995  Mike Stump  <mrs@cygnus.com>
3285169689Skan
3286169689Skan	* except.c: Add support for exception handling on the Alpha.
3287169689Skan
3288169689SkanWed Feb  1 10:12:14 1995  Mike Stump  <mrs@cygnus.com>
3289169689Skan
3290169689Skan	* decl2.c (finish_file): Fix bug in Jan 31st change.
3291169689Skan
3292169689SkanTue Jan 31 16:59:15 1995  Gerald Baumgartner  <gb@lorenzo.cs.purdue.edu>
3293169689Skan
3294169689Skan	* sig.c (build_signature_pointer_or_reference_type): Don't set
3295169689Skan	IS_AGGR_TYPE for signature pointers/reference so expand_default_init
3296169689Skan	doesn't expect to find a copy constructor.
3297169689Skan	* call.c (build_method_call): Treat signature pointers/reference
3298169689Skan	as if IS_AGGR_TYPE were set.
3299169689Skan
3300169689SkanTue Jan 31 13:28:56 1995  Mike Stump  <mrs@cygnus.com>
3301169689Skan
3302169689Skan	* gc.c (get_typeid): Pawn off error messages to build_t_desc.
3303169689Skan	(build_t_desc): Inform the user here if they try and build
3304169689Skan	with -frtti and don't include <typeinfo.h>.
3305169689Skan
3306169689Skan	* decl2.c (finish_prevtable_vardecl): Support rescanning.
3307169689Skan	(finish_file): Move finish_prevtable_vardecl up to before the global
3308169689Skan	initializers are done as tdecls are initialized in the global
3309169689Skan	initializer.  Also Pick up any new tdecls or vtables needed by
3310169689Skan	synthesized methods.
3311169689Skan
3312169689Skan	* class.c (finish_struct): Simplify.  We have to do rtti scanning at
3313169689Skan	end, so we might as well do all of it there.
3314169689Skan
3315169689SkanTue Jan 31 05:35:02 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3316169689Skan
3317169689Skan	* call.c (build_method_call): Fix -fthis-is-variable for 32-bit
3318169689Skan	targets, too.
3319169689Skan
3320169689SkanTue Jan 31 00:11:04 1995  Mike Stump  <mrs@cygnus.com>
3321169689Skan
3322169689Skan	* decl2.c (finish_prevtable_vardecl): New routine, mostly split from
3323169689Skan	finish_vtable_vardecl.  It has the first half functionality from
3324169689Skan	that routine.
3325169689Skan	* decl2.c (finish_vtable_vardecl): Update to not include stuff not
3326169689Skan	in  finish_prevtable_vardecl.
3327169689Skan	* decl2.c (finish_file): Call finish_prevtable_vardecl.
3328169689Skan	* gc.c (build_generic_desc): Allow it to be called when not at the
3329169689Skan	global binding layer, but behave as if we were.
3330169689Skan	(build_t_desc): Rearrange a bit so that it really works and is
3331169689Skan	easier to follow.
3332169689Skan	* class.c (finish_struct): Don't decide on tdecls here, as we have
3333169689Skan	to wait until the end of the file in general to decide whether or
3334169689Skan	not they come out.
3335169689Skan
3336169689SkanMon Jan 30 01:00:40 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3337169689Skan
3338169689Skan	* init.c (build_delete): Check access to operator delete before
3339169689Skan	calling the destructor.
3340169689Skan	* method.c (build_opfncall, DELETE_EXPR): build_method is allowed to
3341169689Skan	return error_mark_node.
3342169689Skan	* call.c (build_method_call): Use the one-argument op delete even if
3343169689Skan	it's an error.
3344169689Skan
3345169689Skan	* init.c (build_new): Fix -fthis-is-variable support.
3346169689Skan	* call.c (build_method_call): Likewise.
3347169689Skan
3348169689Skan	* call.c (convert_harshness): Make conversion from a pointer to bool
3349169689Skan	worse than conversion to another pointer.
3350169689Skan
3351169689SkanSat Jan 28 16:46:10 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3352169689Skan
3353169689Skan	* init.c (build_new): Check new return value if -fcheck-new.
3354169689Skan
3355169689Skan	* lex.c (check_newline): Clear end_of_file when we're done, too.
3356169689Skan
3357169689SkanSat Jan 28 10:38:39 1995  Mike Stump  <mrs@cygnus.com>
3358169689Skan
3359169689Skan	* decl2.c (finish_vtable_vardecl): Make rtti TD tables follow
3360169689Skan	vtables whereever they go.
3361169689Skan
3362169689Skan	* gc.c (build_t_desc): Remove old way of setting it up, as it wasn't
3363169689Skan	right.
3364169689Skan
3365169689SkanSat Jan 28 09:10:44 1995  Mike Stump  <mrs@cygnus.com>
3366169689Skan
3367169689Skan	* decl2.c (finish_vtable_vardecl): Now set the
3368169689Skan	interface/implementation of vtables on the first virtual function,
3369169689Skan	if one exists, otherwise we use the old method.  This is a major win
3370169689Skan	in terms of cutting down the size of objects and executables in
3371169689Skan	terms of text space and data space.  Now most of the savings that
3372169689Skan	#pragma interface/implementation gives is automatic in a fair number
3373169689Skan	of cases.
3374169689Skan
3375169689SkanSat Jan 28 04:57:33 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3376169689Skan
3377169689Skan	* decl.c (grokdeclarator): Discard the template parameters in a
3378169689Skan	template constructor declaration so that the function is always
3379169689Skan	named constructor_name (ctype).
3380169689Skan
3381169689Skan	* lex.c (check_newline): Use ungetc to put back the character before
3382169689Skan	calling HANDLE_PRAGMA.
3383169689Skan
3384169689SkanFri Jan 27 17:23:47 1995  Mike Stump  <mrs@cygnus.com>
3385169689Skan
3386169689Skan	* decl2.c (check_classfn): If the cname is T<int> and fn_name is T,
3387169689Skan	make sure we still match them.
3388169689Skan
3389169689SkanFri Jan 27 16:32:10 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3390169689Skan
3391169689Skan	* parse.y: Add END_OF_LINE token.
3392169689Skan
3393169689Skan	* lex.c (check_newline): Set linemode when we see a # directive, and
3394169689Skan	unset it when we're done.  Turn all 'return's into 'goto skipline'.
3395169689Skan	Fix all uses of '\n', since we won't see it anymore.  Put back the
3396169689Skan	character we read before checking for a sysv or target pragma.
3397169689Skan	(real_yylex): If we see an EOF in linemode, return END_OF_LINE.
3398169689Skan	(handle_sysv_pragma): Don't look at the input stream; quit when we
3399169689Skan	see an END_OF_LINE token.
3400169689Skan
3401169689Skan	* input.c (getch): Return EOF if we're in line mode and at the end
3402169689Skan	of a line.
3403169689Skan	(put_back): Don't put back an EOF.
3404169689Skan
3405169689SkanThu Jan 26 19:26:34 1995  Mike Stump  <mrs@cygnus.com>
3406169689Skan
3407169689Skan	* except.c (expand_throw): Do the newing of the exception object
3408169689Skan	before we load the type descriptor or the address so that we don't
3409169689Skan	wipe any of the values out.
3410169689Skan
3411169689SkanThu Jan 26 19:20:00 1995  Mike Stump  <mrs@cygnus.com>
3412169689Skan
3413169689Skan	* except.c (init_exception_processing): Don't use r12 on the rs6000.
3414169689Skan
3415169689SkanTue Jan 24 16:36:31 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3416169689Skan
3417169689Skan	* decl.c (grokparms): Don't try to build up a reference at this point.
3418169689Skan
3419169689Skan	* typeck2.c (build_functional_cast): Don't assume that a NOP_EXPR
3420169689Skan	will suffice to convert from integer_zero_node.
3421169689Skan
3422169689SkanWed Jan 25 15:02:09 1995  David S. Miller  <davem@nadzieja.rutgers.edu>
3423169689Skan
3424169689Skan	* class.c (instantiate_type): Change error message text.
3425169689Skan	* typeck2.c (store_init_value): Likewise.
3426169689Skan
3427169689SkanMon Jan 23 21:57:14 1995  Mike Stump  <mrs@cygnus.com>
3428169689Skan
3429169689Skan	* pt.c (tsubst): When we copy a node, don't forget to copy
3430169689Skan	TREE_CHAIN, we use it later.
3431169689Skan
3432169689SkanMon Jan 23 03:33:47 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3433169689Skan
3434169689Skan	* typeck.c (convert_for_assignment): Initialize variable before use.
3435169689Skan
3436169689SkanFri Jan 20 01:17:59 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3437169689Skan
3438169689Skan	* g++.c (main): Link with both libstdc++ and libg++ if called as
3439169689Skan	something ending with "g++", otherwise only libstdc++.  Move -lm to
3440169689Skan	the end of the line.
3441169689Skan
3442169689SkanThu Jan 19 15:43:11 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3443169689Skan
3444169689Skan	* call.c (build_method_call): Don't mess with 'this' before calling
3445169689Skan	compute_conversion_costs.
3446169689Skan
3447169689SkanWed Jan 18 15:40:55 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3448169689Skan
3449169689Skan	* search.c (get_matching_virtual): Give line number for previous
3450169689Skan	declaration.
3451169689Skan
3452169689Skan	* call.c (convert_harshness): Handle conversions to references
3453169689Skan	better.
3454169689Skan
3455169689Skan	* cvt.c (build_up_reference): OK, handle {MIN,MAX}_EXPR *properly*.
3456169689Skan
3457169689SkanWed Jan 18 15:21:38 1995  Mike Stump  <mrs@cygnus.com>
3458169689Skan
3459169689Skan	* class.c (instantiate_type): Use DECL_CHAIN to walk lists instead,
3460169689Skan	as the TREE_CHAIN for methods will take us to the next differently
3461169689Skan	named function, DECL_CHAIN won't.
3462169689Skan
3463169689SkanWed Jan 18 14:26:59 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3464169689Skan
3465169689Skan	* tree.c (lvalue_p): Handle {MIN,MAX}_EXPR.
3466169689Skan
3467169689Skan	* decl2.c (lang_decode_option): -Wall implies -Wparentheses.
3468169689Skan	warn_parentheses defaults to 0.
3469169689Skan
3470169689Skan	* decl.c (grokparms): Put back call to require_instantiated_type.
3471169689Skan
3472169689SkanTue Jan 17 19:56:15 1995  Mike Stump  <mrs@cygnus.com>
3473169689Skan
3474169689Skan	* except.c (exception_section): Use the data section on the rs6000.
3475169689Skan	Change calling convention for named_section.
3476169689Skan
3477169689SkanWed Jan 17 18:20:57 1994  Fergus Henderson  <fjh@munta.cs.mu.oz.au>
3478169689Skan
3479169689Skan	* cp-tree.h: Make if (x=0) warn with wall
3480169689Skan	* parse.y: Make if (x=0) warn with wall
3481169689Skan
3482169689SkanTue Jan 17 14:12:00 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3483169689Skan
3484169689Skan	* decl.c (BOOL_TYPE_SIZE): BITS_PER_WORD if SLOW_BYTE_ACCESS,
3485169689Skan	BITS_PER_UNIT otherwise.
3486169689Skan
3487169689Skan	* search.c (get_matching_virtual): Don't check the binfo if the
3488169689Skan	types are the same.
3489169689Skan
3490169689Skan	* cvt.c (cp_convert): Just call truthvalue_conversion to convert to
3491169689Skan	bool.
3492169689Skan
3493169689SkanMon Jan 16 13:28:48 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3494169689Skan
3495169689Skan	* various: Use boolean_type_node, boolean_true_node,
3496169689Skan	boolean_false_node.
3497169689Skan
3498169689Skan	* search.c (get_matching_virtual): Allow covariant returns that
3499169689Skan	don't require pointer adjustment.
3500169689Skan
3501169689Skan	* typeck.c (build_conditional_expr): Don't call default_conversion
3502169689Skan	on ifexp.
3503169689Skan
3504169689Skan	* cvt.c (build_up_reference): Handle MIN_EXPR and MAX_EXPR.
3505169689Skan
3506169689Skan	* decl.c (grokdeclarator): Upgrade warning about &const to pedwarn.
3507169689Skan
3508169689SkanSun Jan 15 22:17:32 1995  David Binderman  <dcb@lovat.fmrco.COM>
3509169689Skan
3510169689Skan	* pt.c (do_function_instantiation): Free targs once we're done.
3511169689Skan
3512169689SkanSun Jan 15 22:17:32 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3513169689Skan
3514169689Skan	* decl.c (BOOL_TYPE_SIZE): Defaults to BITS_PER_WORD.
3515169689Skan	(init_decl_processing): Use BOOL_TYPE_SIZE instead of CHAR_TYPE_SIZE
3516169689Skan	for bool.
3517169689Skan
3518169689SkanSat Jan 14 05:33:55 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3519169689Skan
3520169689Skan	* decl2.c (finish_file): We need to mess up if there are any
3521169689Skan	variables in the list, not just if there is one with a constructor.
3522169689Skan
3523169689SkanFri Jan 13 14:42:55 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3524169689Skan
3525169689Skan	* decl.c (duplicate_decls): Propagate DECL_STATIC_{CON,DE}STRUCTOR.
3526169689Skan	(finish_function): Handle DECL_STATIC_{CON,DE}STRUCTOR.
3527169689Skan	(finish_function): Trust rest_of_compilation.
3528169689Skan
3529169689Skan	* decl2.c (finish_file): Also call functions designated as static
3530169689Skan	constructors/destructors.
3531169689Skan
3532169689Skan	* decl.c (grokdeclarator): Allow access decls of operator functions.
3533169689Skan	(grokparms): Only do convert_for_initialization if the initializer
3534169689Skan	has a type.
3535169689Skan	(duplicate_decls): Put back push_obstacks_nochange call.
3536169689Skan
3537169689Skan	* lex.c (real_yylex): Downgrade complaint about the escape sequence
3538169689Skan	being too large from pedwarn to warning.
3539169689Skan
3540169689Skan	* decl.c (grokdeclarator): Don't complain about long long in system
3541169689Skan	headers.
3542169689Skan
3543169689Skan	* lex.c (real_yylex): Handle digraphs.
3544169689Skan
3545169689SkanThu Jan 12 12:17:24 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3546169689Skan
3547169689Skan	* decl.c (init_decl_processing): -f{no-,}strict-prototype only
3548169689Skan	affects C linkage declarations now.
3549169689Skan
3550169689Skan	* typeck.c (comp_target_types): Grok simple contravariant conversions.
3551169689Skan	(common_type): t1 and t2 are interchangeable.
3552169689Skan
3553169689Skan	* various: Test return value of comp_target_types differently in
3554169689Skan	different places; it now returns -1 for a contravariant conversion
3555169689Skan	(which is fine in symmetric cases).
3556169689Skan
3557169689Skan	(common_type): Prefer long double to double even when
3558169689Skan	they have the same precision.
3559169689Skan
3560169689Skan	* decl.c (grokparms): Call convert_for_initialization to check
3561169689Skan	default arguments.
3562169689Skan
3563169689Skan	* init.c (build_new): void_type_node has a size (of 0).
3564169689Skan
3565169689Skan	* decl.c (decls_match): Also check for agreement of TREE_READONLY
3566169689Skan	and TREE_THIS_VOLATILE.
3567169689Skan	(push_class_level_binding): Properly handle shadowing of
3568169689Skan	nested tags by fields.
3569169689Skan
3570169689Skan	* search.c (dfs_pushdecls): Likewise.
3571169689Skan
3572169689Skan	* decl2.c (finish_file): Don't second-guess self-initialization.
3573169689Skan
3574169689Skan	* cvt.c (convert_to_reference): Work with expr directly, rather than
3575169689Skan	a copy.
3576169689Skan
3577169689Skan	* decl.c (push_overloaded_decl): Only shadow artificial TYPE_DECLs.
3578169689Skan
3579169689Skan	* init.c (add_friend): Downgrade duplicate friend message from
3580169689Skan	pedwarn to warning.
3581169689Skan
3582169689Skan	* decl.c (duplicate_decls): Push obstacks before calling common_type.
3583169689Skan
3584169689SkanThu Jan 12 17:15:21 1995  Michael Ben-Gershon  <mybg@cs.huji.ac.il>
3585169689Skan
3586169689Skan	* except.c (push_eh_entry): Set LABEL_PRESERVE_P flag for
3587169689Skan	exception table labels.
3588169689Skan	(expand_start_all_catch): Likewise.
3589169689Skan	(expand_leftover_cleanups): Likewise.
3590169689Skan	(expand_end_catch_block): Likewise.
3591169689Skan	* except.c (make_first_label): New function.
3592169689Skan	(expand_start_all_catch): Add a call to make_first_label() before
3593169689Skan	using a label as a jump destination.
3594169689Skan	(expand_end_all_catch): Likewise.
3595169689Skan	(expand_leftover_cleanups): Likewise.
3596169689Skan	(expand_end_catch_block): Likewise.
3597169689Skan	(expand_builtin_throw): Likewise.
3598169689Skan	(expand_throw): Likewise.
3599169689Skan	* except.c: Add ARM processor support for exception handling.
3600169689Skan
3601169689SkanThu Jan 12 12:17:24 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3602169689Skan
3603169689Skan	(complete_array_type): Copy code from C frontend.
3604169689Skan
3605169689Skan	* lex.c (real_yylex): Don't multiply the length of a wide string
3606169689Skan	literal by WCHAR_BYTES.
3607169689Skan
3608169689Skan	* decl.c (pushdecl): Check for redeclaration of wchar_t here.
3609169689Skan	(duplicate_decls): Instead of here.
3610169689Skan	(define_label): Complain about a label named wchar_t.
3611169689Skan	(grokdeclarator): Complain about declarations of
3612169689Skan	operator-function-ids as non-functions.
3613169689Skan
3614169689Skan	* typeck.c (unary_complex_lvalue): Also wrap prefix -- and ++ in
3615169689Skan	COMPOUND_EXPRs.
3616169689Skan	(build_unary_op): Wrap unary plus in a NON_LVALUE_EXPR.
3617169689Skan
3618169689Skan	* lex.c (real_yylex): Don't skip whitespace when reading the next
3619169689Skan	character after ->.
3620169689Skan
3621169689SkanWed Jan 11 16:32:49 1995  Mike Stump  <mrs@cygnus.com>
3622169689Skan
3623169689Skan	* except.c: Allow cc1plus to be built with native compiler on rs6000.
3624169689Skan	(expand_start_all_catch): Add assemble_external calls for various
3625169689Skan	routines we call.
3626169689Skan	(expand_leftover_cleanups): Likewise.
3627169689Skan	(expand_start_catch_block): Likewise.
3628169689Skan	(do_unwind): Likewise.
3629169689Skan	(expand_builtin_throw): Likewise.
3630169689Skan
3631169689SkanWed Jan 11 01:05:42 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3632169689Skan
3633169689Skan	* decl.c (pushtag): Only look for a previous decl in the current
3634169689Skan	binding level.  Use explicit global scope in DECL_NESTED_TYPENAME.
3635169689Skan
3636169689Skan	* gxx.gperf: Add __signature__ and __sigof__ keywords.
3637169689Skan
3638169689Skan	* decl2.c (lang_decode_option): -ansi does not set flag_no_asm.  It
3639169689Skan	does set flag_no_gnu_keywords and flag_operator_names.
3640169689Skan
3641169689Skan	* lex.c (init_lex): 'overload' is not a keyword unless -traditional.
3642169689Skan	Unset extension keywords if -fno-gnu-keywords.
3643169689Skan	Allow operator names ('bitand') if -foperator-names.
3644169689Skan	Never unset 'asm'; -fno-asm only affects 'typeof'.
3645169689Skan
3646169689Skan	* decl.c (lookup_name_real): The got_object special lookup only
3647169689Skan	applies to types.
3648169689Skan
3649169689SkanTue Jan 10 18:07:51 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3650169689Skan
3651169689Skan	* spew.c (yylex): Also use DECL_NESTED_TYPENAME if got_object is set.
3652169689Skan
3653169689Skan	* parse.y (primary): Unset got_object after all rules that use the
3654169689Skan	'object' nonterminal.
3655169689Skan	(object): Set got_object.
3656169689Skan
3657169689Skan	* lex.h: Declare got_object.
3658169689Skan
3659169689Skan	* decl.c (lookup_name_real): Also lookup names in the context of an
3660169689Skan	object specified.
3661169689Skan
3662169689SkanTue Jan 10 14:30:30 1995  Mike Stump  <mrs@cygnus.com>
3663169689Skan
3664169689Skan	* typeck.c (get_member_function_from_ptrfunc): Use ptrdiff_type_node
3665169689Skan	for things that have to be added to pointers, not size_type.  Cures
3666169689Skan	problems with pointer to members on Alphas.
3667169689Skan	(build_binary_op_nodefault): Likewise.
3668169689Skan	(get_delta_difference_: Likewise.
3669169689Skan	(build_ptrmemfunc): Likewise.
3670169689Skan
3671169689SkanTue Jan 10 01:49:25 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3672169689Skan
3673169689Skan	* decl.c (pushtag): Stick the new decl in TYPE_NAME before pushing
3674169689Skan	it.
3675169689Skan
3676169689Skan	* typeck.c (build_component_ref): Don't build up a COMPONENT_REF
3677169689Skan	when dealing with overloaded member functions; just act like
3678169689Skan	build_offset_ref.
3679169689Skan	(commonparms): Remove misleading comment.
3680169689Skan
3681169689Skan	* decl.c (duplicate_decls): Complain about repeated default
3682169689Skan	arguments here.
3683169689Skan	(redeclaration_error_message): Instead of here.
3684169689Skan	(pushdecl): Complain about missing default arguments here.
3685169689Skan	(grokparms): Instead of here.
3686169689Skan	(lookup_name_current_level): Also match on DECL_ASSEMBLER_NAME.
3687169689Skan	(grok_reference_init): Do not complain about missing initializer if
3688169689Skan	declared 'extern'.
3689169689Skan
3690169689Skan	* search.c (lookup_field): Don't return a TYPE_DECL if there is a
3691169689Skan	function alternative and want_type is not set.
3692169689Skan
3693169689SkanMon Jan  9 18:16:23 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3694169689Skan
3695169689Skan	* decl.c (pushtag): Don't set TYPE_NAME to an identifier.  Do push
3696169689Skan	the decl when the type has no TYPE_NAME.
3697169689Skan	(lookup_nested_type): Don't assume that type has TYPE_NAME set.
3698169689Skan	(lookup_name_real): Call lookup_field with want_type =
3699169689Skan	prefer_type.
3700169689Skan
3701169689Skan	* search.c (lookup_field): Handle want_type properly in the presence
3702169689Skan	of fields with the same name.
3703169689Skan
3704169689Skan	* decl.c (set_nested_typename): Set nested name for file-scope types
3705169689Skan	to include leading ::.
3706169689Skan	(pushdecl): Set the nested typename if the decl doesn't have one,
3707169689Skan	rather than if the type's canonical decl doesn't have one.
3708169689Skan
3709169689SkanMon Jan  9 03:44:33 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3710169689Skan
3711169689Skan	* typeck.c (convert_for_assignment): Complain about contravariance
3712169689Skan	violation here.
3713169689Skan	(comp_target_types): Instead of here.
3714169689Skan	(build_unary_op): resolve_offset_ref before checking for a valid
3715169689Skan	type.
3716169689Skan
3717169689Skan	* spew.c (yylex): Decrement looking_for_typename after we see a
3718169689Skan	_DEFN.
3719169689Skan
3720169689Skan	* decl.c (pushdecl): Don't install an artificial TYPE_DECL in
3721169689Skan	IDENTIFIER_LOCAL_VALUE if we already have a decl with that name.
3722169689Skan
3723169689Skan	* typeck.c (convert_for_assignment): Converting pointers to bool
3724169689Skan	does not need a cast.
3725169689Skan
3726169689SkanSun Jan  8 18:16:45 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3727169689Skan
3728169689Skan	* class.c (instantiate_type): Initialize nsubsts parm.
3729169689Skan
3730169689Skan	* pt.c (do_function_instantiation): Likewise.
3731169689Skan
3732169689SkanSat Jan  7 14:37:05 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3733169689Skan
3734169689Skan	* pt.c (tsubst): Use TREE_STATIC instead of DECL_INLINE &&
3735169689Skan	DECL_SAVED_INSNS to determine whether or not we've seen a definition
3736169689Skan	of this function.
3737169689Skan	(instantiate_template): Likewise.
3738169689Skan
3739169689Skan	* call.c (convert_harshness): Allow const reference binding when
3740169689Skan	called from the overloading code, but not when called from
3741169689Skan	can_convert (since it isn't a conversion).
3742169689Skan	(convert_harshness): Put back some disabled code.
3743169689Skan
3744169689SkanFri Jan  6 14:10:57 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3745169689Skan
3746169689Skan	* call.c (convert_harshness): There is no implicit conversion from
3747169689Skan	void* to other pointer types (unless the parameter is (void*)0).
3748169689Skan	(convert_harshness): Non-lvalues do not convert to reference types.
3749169689Skan
3750169689Skan	* class.c (finish_struct_methods): Still set
3751169689Skan	TYPE_HAS_{INT,REAL}_CONVERSION.
3752169689Skan
3753169689Skan	* call.c (can_convert): Don't use aggregate initialization.
3754169689Skan
3755169689Skan	* cp-tree.h: Declare lookup_conversions.
3756169689Skan
3757169689SkanThu Jan  5 21:08:00 1995  Mike Stump  <mrs@cygnus.com>
3758169689Skan
3759169689Skan	* parse.y (simple_stmt): Fix duplicate case value error messages to
3760169689Skan	be more readable.
3761169689Skan
3762169689SkanWed Jan  4 16:44:19 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3763169689Skan
3764169689Skan	* cvt.c (build_type_conversion): Total rewrite to use
3765169689Skan	convert_harshness instead of reproducing conversion logic here.  Now
3766169689Skan	much shorter.
3767169689Skan
3768169689Skan	* call.c (convert_harshness): Support conversions to bool.
3769169689Skan	(can_convert): Checks whether a conversion is less harsh
3770169689Skan	than USER_CODE, for build_type_conversion.
3771169689Skan
3772169689Skan	* search.c (add_conversions): Function for passing to dfs_walk which
3773169689Skan	adds all the type conversion operators in the current type to a list.
3774169689Skan	(lookup_conversions): Calls dfs_walk with add_conversions and return
3775169689Skan	the list.
3776169689Skan	(dfs_walk): Don't require a qfn.
3777169689Skan
3778169689Skan	* cp-tree.h: Lose CLASSTYPE_CONVERSIONS hackery.
3779169689Skan	(CLASSTYPE_FIRST_CONVERSION): Points to elt 1 of CLASSTYPE_METHOD_VEC.
3780169689Skan
3781169689Skan	* class.c (finish_struct_bits): Lose CLASSTYPE_CONVERSIONS hackery.
3782169689Skan	(grow_method): A separate function for building onto the growing
3783169689Skan	method vector.
3784169689Skan	(finish_struct_methods): Use it.  Put all type conversion operators
3785169689Skan	right after the constructors.  Perhaps we should sort the methods
3786169689Skan	alphabetically?
3787169689Skan
3788169689SkanMon Jan  2 14:42:58 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
3789169689Skan
3790169689Skan	* call.c (build_method_call): Lose another misleading shortcut.
3791169689Skan
3792