]> gcc.gnu.org Git - gcc.git/blame - gcc/cp/ChangeLog
Declare malloc and friends
[gcc.git] / gcc / cp / ChangeLog
CommitLineData
312e7d50
JM
1Tue Feb 4 11:28:24 1997 Jason Merrill <jason@yorick.cygnus.com>
2
3 * pt.c (unify, case TEMPLATE_CONST_PARM): Use cp_tree_equal.
4
5 * pt.c (tsubst): Put it back for -fno-ansi-overloading.
6
7Mon Feb 3 18:41:12 1997 Jason Merrill <jason@yorick.cygnus.com>
8
9 * pt.c (tsubst, case FUNCTION_DECL): Lose obsolete code that
10 smashes together template and non-template decls of the same
11 signature.
12
824b9a4c
MS
13Thu Jan 30 19:18:00 1997 Jason Merrill <jason@yorick.cygnus.com>
14
824b9a4c
MS
15 * pt.c (tsubst): Don't recurse for the type of a TYPENAME_TYPE.
16
17Wed Jan 29 11:40:35 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
18
19 * decl.c (duplicate_decls): Next route, pedwarn about different
20 exceptions if -pedantic *or* olddecl !DECL_IN_SYSTEM_HEADER.
21
22Tue Jan 28 20:43:29 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
23
24 * cp-tree.h (HAS_DEFAULT_IMPLEMENTATION): Delete macro.
25 (struct lang_type): Delete has_default_implementation member.
26 Increase dummy to 21.
27 * decl.c (start_method): Delete usage.
28
29 * cp-tree.h (build_call, null_ptr_cst_p, in_function_p,
30 store_after_parms, start_decl_1, auto_function): Add decls.
31 (get_arglist_len_in_bytes, declare_implicit_exception,
32 have_exceptions_p, make_type_decl, typedecl_for_tag,
33 store_in_parms, pop_implicit_try_blocks, push_exception_cleanup,
34 build_component_type_expr, cplus_exception_name,
35 {make,clear}_anon_parm_name, dont_see_typename): Removed decls.
36 * call.c (build_this): Make static.
37 (is_complete): Likewise.
38 (implicit_conversion): Likewise.
39 (reference_binding): Likewise.
40 (standard_conversion): Likewise.
41 (strip_top_quals): Likewise.
42 (non_reference): Likewise.
43 (build_conv): Likewise.
44 (user_harshness): Likewise.
45 (rank_for_ideal): Likewise.
46 * decl.c (start_decl_1): Delete forward decl.
47 (push_decl_level): Make static.
48 (resume_binding_level): Make static.
49 (namespace_bindings_p): Make static.
50 (declare_namespace_level): Make static.
51 (lookup_name_real): Make static.
52 (duplicate_decls): Make static. Take register off NEWDECL and
53 OLDDECL parm decls.
54 * decl2.c (get_sentry): Make static.
55 (temp_name_p): Delete fn.
56 * except.c (auto_function): Delete decl.
57 * lex.c (handle_{cp,sysv}_pragma): Make static.
58 (handle_sysv_pragma) [HANDLE_SYSV_PRAGMA]: Add forward decl.
59 * method.c (do_build_{copy_constructor,assign_ref}): Make static.
60 * pt.c (tsubst_expr_values): Make static.
61 * rtti.c (combine_strings): Delete decl.
62
63Tue Jan 28 16:40:40 1997 Jason Merrill <jason@yorick.cygnus.com>
64
65 * pt.c (push_template_decl): Handle getting a typedef.
66
67 * call.c (build_new_function_call): Complain about void arg.
68
69Tue Jan 28 15:25:09 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
70
71 * decl.c (duplicate_decls): Give pedwarn of different exceptions
72 if -pedantic, instead of olddecl !DECL_IN_SYSTEM_HEADER.
73
74Mon Jan 27 19:21:29 1997 Mike Stump <mrs@cygnus.com>
75
76 * except.c (expand_throw): Don't expand the cleanup tree here,
77 since we are not going to write the rtl out. Fixes problem with
78 -g -O on SPARC.
79
80Mon Jan 27 16:24:35 1997 Sean McNeil <sean@mcneil.com>
81
82 * Make-lang.in: Add $(exeext) as necessary.
83
84Mon Jan 27 13:20:39 1997 Mike Stump <mrs@cygnus.com>
85
86 * parse.y (handler_seq): Must have at least one catch clause.
87
88Sat Jan 25 12:00:05 1997 Jason Merrill <jason@yorick.cygnus.com>
89
90 * call.c (add_builtin_candidate): Restore ?: hack.
91
92 * decl.c (grok_op_properties): More warnings.
93
94Sat Jan 25 08:50:03 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
95
96 * decl.c (duplicate_decls): On second thought, do it as a pedwarn
97 still but only if !DECL_IN_SYSTEM_HEADER (olddecl).
98
99 * decl.c (duplicate_decls): Scale back to a warning, and only do
100 'em if -pedantic.
101
102Fri Jan 24 17:52:54 1997 Mike Stump <mrs@cygnus.com>
103
104 * decl.c (duplicate_decls): pedwarn mismatched exception
105 specifications.
106
107Thu Jan 23 18:18:54 1997 Mike Stump <mrs@cygnus.com>
108
109 * call.c (build_new_method_call): Don't display the invisible
110 argument for controlling virtual bases.
111
112Thu Jan 23 16:48:10 1997 Mike Stump <mrs@cygnus.com>
113
114 * new: Add nothrow new and delete, bad_alloc and throw specifications
115 for delete.
116 * decl.c (init_decl_processing): Add throw specification for delete.
117 * new.cc (nothrow): Define.
118 * lex.c (real_yylex): Removing warning that throw and friends are
119 keywords.
120 * new1.cc (operator new (size_t sz, const nothrow_t&)): Define.
121 * new2.cc (operator new[] (size_t sz, const nothrow_t&): Define.
122 * Make-lang.in: Add new{1,2}.{cc,o}.
123
124Thu Jan 23 16:39:06 1997 Jason Merrill <jason@yorick.cygnus.com>
125
126 * lex.c (cons_up_default_function): Fix return type of synth op=.
127
128 * init.c (emit_base_init): Add warnings for uninitialized members
129 and bases.
130
131 * decl.c (xref_basetypes): Add warning for non-polymorphic type
132 with destructor used as base type.
133
134 * decl.c (grok_op_properties): Add warning for op= returning void.
135 * typeck.c (c_expand_return): Add warning for op= returning anything
136 other than *this.
137
138 * class.c (finish_struct_1): Add warning for class with pointers
139 but not copy ctor or copy op=.
140
141 * cp-tree.h (TI_PENDING_TEMPLATE_FLAG): New macro.
142 * pt.c (add_pending_template): Use it instead of LANG_FLAG_0.
143 (instantiate_template): If -fexternal-templates, add this
144 instantiation to pending_templates.
145
146 * decl2.c (copy_assignment_arg_p): Disable old hack to support
147 Booch components.
148
149Tue Jan 21 18:32:04 1997 Mike Stump <mrs@cygnus.com>
150
151 * cvt.c (cp_convert): Pedwarn enum to pointer conversions.
152
de22184b
MS
153Mon Jan 20 17:59:51 1997 Jason Merrill <jason@yorick.cygnus.com>
154
155 * call.c (standard_conversion): Handle getting references. Tack
156 on RVALUE_CONV here. Do it for non-class types, too.
157 (reference_binding): Pass references to standard_conversion.
158 (implicit_conversion): Likewise.
159 (add_builtin_candidate): Disable one ?: kludge.
160 (convert_like): Handle RVALUE_CONVs for non-class types.
161 (joust): Disable the other ?: kludge.
162
163Mon Jan 20 14:53:13 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
164
165 * decl.c (init_decl_processing): Add code to build up common
166 function types beforehand, to avoid creation then removal of
167 things already in the hash table.
168
169Mon Jan 20 14:43:49 1997 Jason Merrill <jason@yorick.cygnus.com>
170
171 * decl.c (finish_function): Also zero out DECL_INCOMING_RTL for
172 the arguments.
173
174 * error.c (dump_expr, TEMPLATE_CONST_PARM): Don't require
175 current_template_parms.
176
177Fri Jan 17 10:25:42 1997 Jason Merrill <jason@yorick.cygnus.com>
178
179 * search.c (lookup_field): Don't return a function, check want_type.
180
181Thu Jan 16 18:14:35 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
182
183 * init.c (build_new): Make sure PLACEMENT has a type.
184
185Thu Jan 16 17:40:28 1997 Jason Merrill <jason@yorick.cygnus.com>
186
187 * init.c (build_new): Support new (nothrow).
188
189Wed Jan 15 12:38:14 1997 Jason Merrill <jason@yorick.cygnus.com>
190
191 * pt.c (instantiate_decl): Also do push_to_top_level before setting
192 up DECL_INITIAL.
193
194 * cp-tree.h (PARM_DEFAULT_FROM_TEMPLATE): New macro.
195 * pt.c (tsubst): Defer instantiation of default args.
196 * call.c (build_over_call): Until here.
197
198Wed Jan 15 10:08:10 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
199
200 * search.c (lookup_field): Make sure we have an
201 IDENTIFIER_CLASS_VALUE before we try to return it.
202
203Thu Jan 9 07:19:01 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
204
205 * call.c (build_method_call): Delete unused var PARM.
206 (build_overload_call_real): Likewise.
207 (build_object_call): Delete unused var P.
208 (build_new_op): Likewise.
209 * decl.c (builtin_type_tdescs_{arr, len, max}): #if 0 out static
210 var definitions, which are never used.
211 (shadow_tag): Delete unused var FN.
212 * expr.c (cplus_expand_expr): Delete unused var ORIGINAL_TARGET.
213 * init.c (build_new): Delete unused var ALLOC_TEMP.
214 * method.c (hack_identifier): Delete unused var CONTEXT.
215 (do_build_copy_constructor): Delete unused var NAME.
216 (synthesize_method): Delete unused var BASE.
217 * pt.c (lookup_template_class): Delete unused var CODE_TYPE_NODE.
218 * rtti.c (build_headof): Delete unused var VPTR.
219 (get_typeid): Delete unused var T.
220 * typeck.c (build_conditional_expr): Delete unused vars ORIG_OP1
221 and ORIG_OP2.
222 (build_ptrmemfunc): Delete unused vars U and NINDEX.
223 * typeck2.c (build_functional_cast): Delete unused var BINFO.
224
225Wed Jan 8 13:09:54 1997 Jason Merrill <jason@yorick.cygnus.com>
226
227 * search.c (lookup_field): Use IDENTIFIER_CLASS_VALUE to look up
228 things in a type being defined.
229 * decl.c (finish_enum): Reverse the values so that they are in
230 the correct order.
231
232 * pt.c (instantiate_class_template): Don't initialize
233 BINFO_BASETYPES until the vector is filled out.
234 (unify): Don't abort on conflicting bindings, just fail.
235 (instantiate_decl): Do push_tinst_level before any tsubsting.
236
237 * method.c (build_overload_value): Handle getting a
238 TEMPLATE_CONST_PARM for a pointer.
239
240Tue Jan 7 14:00:58 1997 Jason Merrill <jason@yorick.cygnus.com>
241
242 * init.c (expand_member_init): Don't give 'not a base' error for
243 templates.
244
245 * pt.c (instantiate_decl): Call import_export_decl later.
246
247 * pt.c (instantiate_class_template): Return a value.
248
249 * parse.y (extension): New rule for __extension__.
250 (extdef, unary_expr, decl, component_decl): Use it.
251
252Tue Jan 7 09:20:28 1997 Mike Stump <mrs@cygnus.com>
253
254 * class.c (base_binfo): Remove unused base_has_virtual member.
255 (finish_base_struct): Likewise.
256 (finish_struct_1): Likewise.
257
258Tue Dec 31 20:25:50 1996 Mike Stump <mrs@cygnus.com>
259
260 * search.c (expand_upcast_fixups): Fix bogus code generation
261 problem where the generated code uses the wrong index into the
262 runtime built vtable on the stack. Old code could clobber random
263 stack values.
264
265Tue Dec 31 15:16:56 1996 Mike Stump <mrs@cygnus.com>
266
267 * init.c (perform_member_init): Make sure the partial EH cleanups
268 live on the function_obstack.
269
f7da6097
MS
270Fri Dec 27 10:31:40 1996 Paul Eggert <eggert@twinsun.com>
271
272 * Make-lang.in (g++spec.o): Don't use $< with an explicit target;
273 this isn't portable to some versions of `make' (e.g. Solaris 2.5.1).
274
275Tue Dec 24 10:24:03 1996 Jeffrey A Law (law@cygnus.com)
276
277 * decl.c (grokvardecl): Avoid ANSI style initialization.
278
279Sun Dec 22 04:22:06 1996 Jason Merrill <jason@yorick.cygnus.com>
280
281 * pt.c (tsubst): Tweak arg types for a FUNCTION_TYPE.
282
283Fri Dec 20 17:09:25 1996 Jason Merrill <jason@yorick.cygnus.com>
284
285 * pt.c (instantiate_class_template): Call grok_{ctor,op}_properties.
286
1bf2b2d2
BK
287Fri Dec 20 12:17:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
288
289 * g++spec.c (lang_specific_driver): Put missing hyphen in front of
290 arguments we compare against. Start the count of I at 1, not 0,
291 since argv[0] is still the command.
292
f7da6097
MS
293Thu Dec 19 11:53:57 1996 Stan Shebs <shebs@andros.cygnus.com>
294
295 * lang-specs.h: Accept .cp as an C++ extension.
296
d2e5ee5c
MS
297Mon Dec 16 22:43:31 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
298
299 * cp-tree.h (ptr_reasonably_similar): Add decl.
300
301Thu Dec 12 15:00:35 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
302
303 * decl.c (grokvardecl): Change SPECBITS parm to be the SPECBITS_IN
304 pointer. New local SPECBITS with the parm's value.
305 (grokdeclarator): Pass &specbits down.
306
307 * parse.y (expr_no_commas): Make sure $$ is not an error_mark_node
308 before we try to do C_SET_EXP_ORIGINAL_CODE on it.
309
310 * search.c (envelope_add_decl): Check that the CLASSTYPE_CID of
311 CONTEXT is not 0 before we try to use TYPE_DERIVES_FROM.
312
313 * decl.c (cplus_expand_expr_stmt): Only expand the expr if EXP is
314 not an error_mark_node.
315
316Sat Dec 7 17:20:22 1996 Jason Merrill <jason@yorick.cygnus.com>
317
318 * cp-tree.h (TYPE_MAIN_DECL): Use TYPE_STUB_DECL.
319 * *.c: Use TYPE_MAIN_DECL instead of TYPE_NAME where appropriate.
320
321Fri Dec 6 14:40:09 1996 Jason Merrill <jason@yorick.cygnus.com>
322
323 * decl.c (grokdeclarator): When giving an anonymous struct a name,
324 replace TYPE_NAME instead of TYPE_IDENTIFIER (so TYPE_STUB_DECL is
325 not affected).
326
327 * typeck2.c (build_m_component_ref): If component is a pointer
328 to data member, resolve the OFFSET_REF now.
329
330 * call.c (convert_like): Don't go into infinite recursion.
331
332 * pt.c (coerce_template_parms): Use tsubst_expr for non-type args.
333
334 * class.c (finish_struct_1): Set DECL_ARTIFICIAL on the vptr.
335 * tree.c (layout_basetypes): And on the vbase ptr.
336
337Thu Dec 5 02:11:28 1996 Jason Merrill <jason@yorick.cygnus.com>
338
339 * decl.c (BOOL_TYPE_SIZE): Define in terms of POINTER_SIZE or
340 CHAR_TYPE_SIZE so bool is always the same size as another type.
341
342 * decl.c (pushtag): Set DECL_IGNORED_P for DWARF, too.
343
344Tue Dec 3 23:18:37 1996 Jason Merrill <jason@yorick.cygnus.com>
345
346 * decl2.c (grok_x_components): Remove synthesized methods from
347 TYPE_METHODS of an anonymous union, complain about member
348 functions.
349 * decl.c (shadow_tag): Wipe out memory of synthesized methods in
350 anonymous unions.
351 (finish_function): Just clear the DECL_RTL of our arguments.
352
353Fri Nov 29 21:54:17 1996 Jason Merrill <jason@yorick.cygnus.com>
354
355 * decl2.c (finish_file): Emit DWARF debugging info for static data
356 members.
357
358 * pt.c (tsubst): If t is a stub decl, return the stub decl for type.
359
360Wed Nov 27 14:47:15 1996 Bob Manson <manson@charmed.cygnus.com>
361
362 * typeck.c (build_component_ref): Don't die if COMPONENT isn't a
363 IDENTIFIER_NODE.
364
365Wed Nov 27 16:05:19 1996 Michael Meissner <meissner@tiktok.cygnus.com>
366
367 * Make-lang.in (g++-cross$(exeext)): Fix typo.
368
369Wed Nov 27 08:14:00 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
370
371 Make the g++ driver now be a standalone program, rather than one
372 that tries to run the gcc driver after munging up the options.
373 * Make-lang.in (g++.c, g++spec.o): New rules.
374 (g++.o): New rule, based on gcc.o with -DLANG_SPECIFIC_DRIVER
375 added.
376 (g++$(exeext)): New rule, based on xgcc rule.
377 (g++-cross$(exeext)): Now just copies g++$(exeext) over.
378 * g++spec.c: New file.
379 * g++.c: Removed file.
380
381Tue Nov 26 19:01:09 1996 Mike Stump <mrs@cygnus.com>
382
383 * cvt.c (build_up_reference): Arrange for any temporary values
384 that have been keep in registers until now to be put into memory.
385
faf5394a 386Mon Nov 25 15:16:41 1996 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9a3b49ac 387
faf5394a
MS
388 * Make-lang.in (c++.stage[1234]): Depend upon stage[1-4]-start, so
389 that make -j3 bootstrap works better.
9a3b49ac 390
faf5394a
MS
391Sun Nov 24 02:09:39 1996 Jason Merrill <jason@yorick.cygnus.com>
392
393 * decl.c (pushtag): Do pushdecl for anon tags.
394
395Thu Nov 21 16:30:24 1996 Jason Merrill <jason@yorick.cygnus.com>
396
397 * typeck.c (c_expand_return): Fix logic.
398 (unary_complex_lvalue): Avoid unused warning on address of INIT_EXPR.
399
faf5394a
MS
400Wed Nov 20 18:47:31 1996 Bob Manson <manson@charmed.cygnus.com>
401
402 * g++.c (main): Make sure arglist has a final NULL entry. Add
403 PEXECUTE_LAST to the flags passed to pexecute, as otherwise
404 stdin/stdout of the invoked program are redirected to
405 nowheresville.
406
407Tue Nov 19 16:12:44 1996 Jason Merrill <jason@yorick.cygnus.com>
408
409 * decl.c (implicitly_declare): Set DECL_ARTIFICIAL.
410
411Tue Nov 19 15:48:19 1996 Mike Stump <mrs@cygnus.com>
412
413 * init.c (resolve_offset_ref): Handle obj.vfn better.
414 * typeck.c (build_component_ref): Set TREE_TYPE on result from
415 build_vfn_ref.
416
417Tue Nov 19 13:14:33 1996 Mike Stump <mrs@cygnus.com>
418
419 * typeck.c (convert_for_assignment): Also handle anachronistic
420 implicit conversions from (::*)() to cv void*.
421 * cvt.c (cp_convert_to_pointer): Likewise.
422
423Mon Nov 18 17:05:26 1996 Jason Merrill <jason@yorick.cygnus.com>
424
425 * lex.c (handle_cp_pragma): Fix bogus warning.
426
427Mon Nov 18 16:10:43 1996 Mike Stump <mrs@cygnus.com>
428
429 * cvt.c (cp_convert_to_pointer): Avoid thinking a POINTER_TYPE
430 (METHOD_TYPE) is a TYPE_PTRMEMFUNC_P.
431
432Thu Nov 14 23:18:17 1996 Jason Merrill <jason@yorick.cygnus.com>
433
434 * class.c (finish_struct_1): Support DWARF2_DEBUG.
435 * search.c (dfs_debug_mark): Likewise.
436 * decl2.c (finish_vtable_vardecl): Likewise.
437 * decl.c (pushtag, finish_enum): Likewise.
438 * lex.c (check_newline): Use debug_* instead of calling *out
439 functions directly.
440
441Thu Nov 14 15:21:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
442
443 * Make-lang.in (cplib2.ready): Add else clause to avoid problems
444 on some picky hosts.
445
446Wed Nov 13 12:32:07 1996 Jason Merrill <jason@yorick.cygnus.com>
447
448 * class.c (finish_struct_1): A class has a non-trivial copy
449 constructor if it has virtual functions.
450
451 * cvt.c (cp_convert): Always call a constructor.
452
453 * call.c (reference_binding): Still tack on a REF_BIND
454 for bad conversions.
455 (build_user_type_conversion_1): Propagate ICS_BAD_FLAG.
456
457 * typeck.c (convert_arguments): Pass LOOKUP_ONLYCONVERTING.
458 (c_expand_return): Likewise.
459 * typeck2.c (digest_init): Likewise for { }.
460 * init.c (expand_aggr_init_1): Keep the CONSTRUCTOR handling.
461 * cvt.c (cp_convert): Handle failure better.
462
463Wed Nov 13 11:51:20 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
464
465 * g++.c (main): Also set PEXECUTE_SEARCH, to make the invocation
466 of GCC be path-relative.
467
468Wed Nov 13 11:27:16 1996 Michael Meissner <meissner@tiktok.cygnus.com>
469
470 * Make-lang.in (g++-cross): G++-cross doesn't need version.o, but
471 it does need choose-temp.o and pexecute.o.
472
473Wed Nov 13 07:53:38 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
474
475 * g++.c (error) [!HAVE_VPRINTF]: Put error back for the only time
476 that we still use it.
477 (P_tmpdir, R_OK, W_OK, X_OK) [__MSDOS__]: Delete unnecessary macros.
478
479Wed Nov 13 02:00:26 1996 Jason Merrill <jason@yorick.cygnus.com>
480
481 * init.c (expand_default_init): Avoid calling constructors to
482 initialize reference temps.
483
484 * cvt.c (convert_to_reference): Fix.
485
486Tue Nov 12 19:10:07 1996 Jason Merrill <jason@yorick.cygnus.com>
487
488 * cvt.c (cp_convert): Simplify for flag_ansi_overloading.
489 (convert_to_reference): Likewise.
490 * typeck.c (convert_for_initialization): Likewise.
491 * init.c (expand_default_init): Likewise.
492 (expand_aggr_init_1): Likewise.
493 * cp-tree.h (CONV_NONCONVERTING): Lose.
494 * typeck.c (build_c_cast): Lose allow_nonconverting parm.
495 * *.c: Adjust.
496 * call.c (build_user_type_conversion_1): Assume LOOKUP_ONLYCONVERTING.
497
498Tue Nov 12 16:29:04 1996 Brendan Kehoe <brendan@canuck.cygnus.com>
499
500 * pt.c (tsubst_expr): Reverse args to expand_start_catch_block.
501
502Tue Nov 12 15:26:17 1996 Jason Merrill <jason@yorick.cygnus.com>
503
504 * init.c (expand_aggr_init_1): Don't crash on non-constructor
505 TARGET_EXPR.
506
507Tue Nov 12 14:00:50 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
508
509 * g++.c: Include gansidecl.h.
510 (VPROTO, PVPROTO, VA_START): Delete.
511 (choose_temp_base_try, choose_temp_base, perror_exec,
512 run_dos) [__MSDOS__]: Delete fns.
513 (pfatal_with_name): Delete fn.
514 (temp_filename): Declare like in gcc.c.
515 (pexecute, pwait, choose_temp_base): Declare from gcc.c.
516 (error_count, signal_count): Define.
517 (error): Delete both definitions.
518 (PEXECUTE_{FIRST,LAST,SEARCH,VERBOSE}): Define from gcc.c.
519 (pfatal_pexecute): Add fn from gcc.c.
520 (main): Rename local VERBOSE var to VERBOSE_FLAG. Rewrite the
521 code to use the pexecute stuff also used by gcc.c.
522 (MIN_FATAL_STATUS): Define.
523 * Make-lang.in (g++): Add dependency on and linking with
524 choose-temp.o and pexecute.o.
525
526 * cp-tree.h: Include gansidecl.h.
527 (STDIO_PROTO): Delete #undef/#define.
528 * cvt.c (NULL): Delete #undef/#define.
529 * expr.c (NULL): Likewise.
530 * init.c (NULL): Likewise.
531 * rtti.c (NULL): Likewise.
532 * xref.c (NULL): Likewise.
533
534 * cp-tree.h (build_user_type_conversion): Add prototype.
535 * call.c (build_user_type_conversion): Delete prototype. Correct
536 decl of FLAGS arg to be an int.
537 * cvt.c (build_user_type_conversion): Likewise.
538
539Tue Nov 12 12:16:20 1996 Jason Merrill <jason@yorick.cygnus.com>
540
541 * cp-tree.def: Add TRY_BLOCK and HANDLER.
542 * except.c (expand_start_catch_block): Support templates.
543 * parse.y (try_block, handler_seq): Likewise.
544 * pt.c (tsubst_expr): Support TRY_BLOCK and HANDLER.
9a3b49ac
MS
545
546Mon Nov 11 13:57:31 1996 Jason Merrill <jason@yorick.cygnus.com>
547
548 * pt.c (current_template_args): New fn.
549 (push_template_decl): Use it.
550 * decl.c (grokdeclarator): Use it.
551
552 * decl2.c (build_expr_from_tree): Dereference ref vars.
553
554 * decl.c (grokdeclarator): Generalize handling of TYPENAME_TYPEs in
555 the decl-specifier-seq.
556
557 * decl.c (grok_op_properties): Don't force the type of a conversion
558 op to be complete. Don't warn about converting to the same type
559 for template instantiations.
560
561 * decl2.c (finish_file): Don't call instantiate_decl on synthesized
562 methods.
563
564Mon Nov 11 13:20:34 1996 Bob Manson <manson@charmed.cygnus.com>
565
566 * typeck.c (get_delta_difference): Remove previous bogusness.
567 Don't give errors if force is set.
568
569Fri Nov 8 17:38:44 1996 Jason Merrill <jason@yorick.cygnus.com>
570
571 * decl2.c (finish_file): Don't emit debug info.
d2e5ee5c 572 * decl.c (pushdecl): Lose obsolete code.
9a3b49ac 573 (grokdeclarator): Still do the long long thing after complaining.
d2e5ee5c
MS
574 * search.c (note_debug_info_needed): Don't do anything if we're in a
575 template.
9a3b49ac
MS
576 * method.c (synthesize_method): For non-local classes,
577 push_to_top_level first.
578
579Fri Nov 8 11:52:28 1996 Bob Manson <manson@charmed.cygnus.com>
580
581 * typeck.c (get_delta_difference): Add no_error parameter.
582 (build_ptrmemfunc): Call get_delta_difference with no_error set;
583 we don't want error messages when converting unrelated
584 pointer-to-member functions.
585
586Thu Nov 7 11:16:24 1996 Mike Stump <mrs@cygnus.com>
587
588 * error.c (dump_expr): Improve the wording on error messages that
589 involve pointer to member functions.
590
591Tue Nov 5 17:12:05 1996 Mike Stump <mrs@cygnus.com>
592
593 * cvt.c (cp_convert_to_pointer): Move code for conversions from
594 (::*)() to void* or (*)() up a bit, so that we can convert from
595 METHOD_TYPEs as well.
596
597Tue Nov 5 14:54:17 1996 Jason Merrill <jason@yorick.cygnus.com>
598
599 * rtti.c (get_tinfo_fn): Make sure 'type' is permanent.
600 There are no 'member' types.
601 (get_tinfo_fn_dynamic): Diagnose typeid of overloaded fn.
602 (build_x_typeid): Handle errors.
603
604Mon Nov 4 17:43:12 1996 Mike Stump <mrs@cygnus.com>
605
606 * typeck.c (convert_for_assignment): Handle anachronistic implicit
607 conversions from (::*)() to void* or (*)().
608 * cvt.c (cp_convert_to_pointer): Likewise.
609 (cp_convert_to_pointer_force): Remove cp_convert_to_pointer
610 conversions from here.
611 * decl2.c (lang_decode_option): Add -W{no-,}pmf-conversions.
612 * lang-options.h: Likewise.
613 * decl2.c (warn_pmf2ptr): Define.
614 * cp-tree.h: Declare it.
615 * typeck2.c (digest_init): Allow pmfs down into
616 convert_for_initialization.
617
618Sun Nov 3 09:43:00 1996 Jason Merrill <jason@yorick.cygnus.com>
619
620 * typeck.c (c_expand_return): Fix for returning overloaded fn.
621
622Fri Nov 1 08:53:17 1996 Jason Merrill <jason@yorick.cygnus.com>
623
624 * cp-tree.h (DIRECT_BIND): Change from INDIRECT_BIND.
625 * decl.c (grok_reference_init): Pass DIRECT_BIND.
626 * cvt.c (build_up_reference): Don't mark 'this' addressable. Use
627 DIRECT_BIND.
628 * call.c (convert_like): Don't pass INDIRECT_BIND.
629 * typeck.c (convert_arguments): Likewise.
630 * typeck.c (mark_addressable): Allow &this if flag_this_is_variable.
631
632Thu Oct 31 17:08:49 1996 Jason Merrill <jason@yorick.cygnus.com>
633
634 * typeck.c (mark_addressable): Support TARGET_EXPR, unify with
635 similar code in build_up_ref.
636 * cvt.c (build_up_reference): Drastically simplify.
637
691c003d
MS
638Mon Oct 28 12:45:05 1996 Jeffrey A Law (law@cygnus.com)
639
640 * typeck.c (signed_or_unsigned_type): If the given type already
641 as the correct signedness, then just return it.
642
643 * typeck.c ({un,}signed_type): If can't do anything, call
644 signed_or_unsigned_type.
645
646Thu Oct 24 14:21:59 1996 Bob Manson <manson@charmed.cygnus.com>
647
648 * decl2.c (copy_assignment_arg_p): Don't buy the farm if
649 current_class_type is NULL.
650
651Wed Oct 23 00:43:10 1996 Jason Merrill <jason@gerbil.cygnus.com>
652
653 * class.c (finish_struct_1): Avoid empty structs by adding a field
654 so layout_type gets the mode right.
655
656 * typeck.c (c_expand_return): Drastically simplify.
657
658Mon Oct 21 22:34:02 1996 Jason Merrill <jason@yorick.cygnus.com>
659
660 * typeck.c (decay_conversion): Handle overloaded methods.
661
662Fri Oct 18 16:03:48 1996 Jason Merrill <jason@yorick.cygnus.com>
663
664 * call.c (build_over_call): A TARGET_EXPR has side-effects.
665
f49422da
MS
666Thu Oct 17 11:31:59 1996 Mike Stump <mrs@cygnus.com>
667
668 * cvt.c (convert_to_pointer_force): Add code to support pointer to
669 member function to pointer to function conversions.
670 * init.c (resolve_offset_ref): Add code to allow faked up objects,
671 ignoring them if they are not used, and giving an error, if they
672 are needed.
673 * typeck.c (get_member_function_from_ptrfunc): Fold e1 to improve
674 code, and so that we can give an error, if we needed an object,
675 and one was not provided.
676 (build_c_cast): Don't call default_conversion when we want to
677 convert to pointer to function from a METHOD_TYPE.
678
679Mon Oct 14 00:28:51 1996 Jason Merrill <jason@yorick.cygnus.com>
680
681 * Make-lang.in (cplib2.ready): Fix logic.
682
683 * decl.c (shadow_tag): Only complain about non-artificial function
684 members.
685
686 * class.c (finish_struct_1): Add synthesized methods to TYPE_METHODS.
687
688Fri Oct 11 16:12:40 1996 Jason Merrill <jason@yorick.cygnus.com>
689
690 * expr.c (cplus_expand_expr): Pre-tweak call_target like
691 expand_inline_function would.
692
693 * pt.c (mark_decl_instantiated): If extern_p, call
694 mark_inline_for_output.
695
3d4683cb
MS
696Thu Oct 10 15:58:08 1996 Mike Stump <mrs@cygnus.com>
697
698 * typeck.c (unary_complex_lvalue): Add code to handle intermediate
699 pmd conversions.
700
701 * typeck.c (get_delta_difference): Fix wording, as we can be used
702 for pointer to data members.
703
704Tue Oct 8 12:43:51 1996 Bob Manson <manson@charmed.cygnus.com>
705
706 * pt.c (tsubst): If the function decl isn't a member of this
707 template, return a copy of the decl (including copying the
708 lang-specific part) so we don't hose ourselves later.
709
710Thu Oct 3 16:24:28 1996 Jason Merrill <jason@yorick.cygnus.com>
711
712 * class.c (finish_struct): Remove DWARF-specific tag handling.
713 * decl.c (pushtag): Likewise.
714 (finish_function): Always clear DECL_ARGUMENTS on function decls with
715 no saved RTX.
716 * decl2.c (finish_file): Emit DWARF debugging info for static data
717 members.
718
719Wed Oct 2 21:58:01 1996 Bob Manson <manson@charmed.cygnus.com>
720
721 * decl.c (duplicate_decls): Make sure the old DECL_LANG_SPECIFIC
722 isn't the same as the new one before we whack it.
723
724Mon Sep 30 13:38:24 1996 Jason Merrill <jason@yorick.cygnus.com>
725
726 * class.c, cp-tree.h, cvt.c, decl.c, decl2.c, gxx.gperf, hash.h,
727 lex.c, method.c, parse.y, typeck.c, typeck2.c: Remove
728 warn_traditional and warn_strict_prototypes; remove ancient
729 'overload' code; remove references to flag_traditional.
730
5156628f
MS
731Mon Sep 30 12:58:40 1996 Mike Stump <mrs@cygnus.com>
732
733 * input.c (sub_getch): Handle 8-bit characters in string literals.
734
735Sun Sep 29 03:12:01 1996 Jason Merrill <jason@yorick.cygnus.com>
736
737 * tree.c (mapcar): Handle CONSTRUCTORs.
738 (copy_to_permanent): Handle expression_obstack properly.
739
740 * Make-lang.in (cplib2.txt): Also depend on the headers.
741
742 * rtti.c (get_tinfo_var): Don't assume that POINTER_SIZE ==
743 INT_TYPE_SIZE.
744 (expand_class_desc): Use USItype for offset field.
745 * tinfo.h (struct __class_type_info): Likewise.
746
747 * method.c (build_overload_int): TYPE_PRECISION should be applied
748 to types.
749
750Sat Sep 28 14:44:50 1996 Jason Merrill <jason@yorick.cygnus.com>
751
752 * call.c (build_new_op): A COND_EXPR involving void must be a
753 builtin.
754
755Fri Sep 27 16:40:30 1996 Jason Merrill <jason@yorick.cygnus.com>
756
757 * typeck.c (build_x_component_ref): New fn.
758 (build_object_ref): Use it.
759 * parse.y (primary): Use it.
760 * decl2.c (build_expr_from_tree): Use it.
761 * cp-tree.h: Declare it.
762
763 * decl.c (start_decl): variable-sized arrays cannot be initialized.
764 * error.c (dump_type_suffix): Handle variable arrays.
765
766Fri Sep 27 13:14:05 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
767
768 * Make-lang.in (exception.o): Put back compiling it with -fPIC.
769
770Fri Sep 27 03:00:09 1996 Jason Merrill <jason@yorick.cygnus.com>
771
772 * decl.c (lookup_name_real): Don't try to look up anything in a
773 TYPENAME_TYPE.
774
775 * tinfo2.cc (__throw_type_match_rtti): Oops.
776
777Thu Sep 26 22:11:05 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
778
779 * Make-lang.in (exception.o): Use -fno-PIC for now.
780
781Thu Sep 26 10:59:00 1996 Jason Merrill <jason@yorick.cygnus.com>
782
783 * rtti.c (build_dynamic_cast): Pass tinfo fns rather than
784 calling them.
785 (get_tinfo_fn_dynamic): Extracted from build_typeid.
786 * tinfo2.cc (__dynamic_cast): Adjust.
787
788 * rtti.c (build_typeid): Use resolves_to_fixed_type_p.
789 (build_x_typeid): Likewise.
790
791 * parse.y: Call build_x_typeid instead of build_typeid.
792 * cp-tree.def: Add TYPEID_EXPR.
793 * pt.c (tsubst_copy): Handle typeid.
794 * decl2.c (build_expr_from_tree): Likewise.
795 * rtti.c (build_x_typeid): Throw bad_typeid from here.
796 (build_typeid): Not here.
797 * cp-tree.h: Declare build_x_typeid.
798
799Wed Sep 25 17:26:16 1996 Jason Merrill <jason@yorick.cygnus.com>
800
801 * call.c (convert_like): Pull out constant values.
802
803 * tree.c (mapcar): Use build_cplus_array_type, not build_array_type.
804
805Wed Sep 25 17:28:53 1996 Michael Meissner <meissner@tiktok.cygnus.com>
806
807 * decl.c (init_decl_processing): Create short int types before
808 creating size_t in case a machine description needs to use
809 unsigned short for size_t.
810
811Tue Sep 24 18:18:44 1996 Jason Merrill <jason@yorick.cygnus.com>
812
813 * Make-lang.in (exception.o): Turn off pic.
814
815 * tinfo2.cc (__throw_type_match_rtti): Fix cv-variants of the same
816 type, multi-level ptr conversions.
817
818 * rtti.c (call_void_fn): Renamed and genericized from throw_bad_cast.
819 (throw_bad_cast): Use it.
820 (throw_bad_typeid): New fn.
821 (build_typeid): Throw bad_typeid as needed.
822 Use build_call.
823 (synthesize_tinfo_fn): Handle functions and arrays before checking
824 for cv-quals.
825
826 * Remove .h from standard C++ headers, add new.h, move into inc
827 subdirectory.
828
829 * exception*: Remove pointer from object, constructors. Add
830 default exception::what that uses type_info::name. Add
831 __throw_bad_typeid.
832
833 * init.c (build_new): Don't add a cookie to new (void *) T[2].
834
835Mon Sep 23 15:21:53 1996 Jason Merrill <jason@yorick.cygnus.com>
836
837 * Make-lang.in: Building C++ code depends on cc1plus.
838
839Mon Sep 23 12:38:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
840
841 * decl.c (struct saved_scope): Declare PROCESSING_TEMPLATE_DECL as
842 a HOST_WIDE_INT, not a tree.
843
844Mon Sep 23 12:36:02 1996 Jason Merrill <jason@yorick.cygnus.com>
845
846 * exception.cc: Don't include <stdlib.h>.
847
848 * Make-lang.in (c++.clean): Remove cplib2.*.
849
850Mon Sep 23 09:42:19 1996 Doug Evans <dje@canuck.cygnus.com>
851
852 * parse.y (component_decl_1, component_costructor_declarator case):
853 Pass attributes/prefix_attributes in tree list.
854
855Mon Sep 23 01:18:50 1996 Jason Merrill <jason@yorick.cygnus.com>
856
857 * tinfo{,2}.cc: #include <stddef.h> instead of <stdlib.h>.
858
859Sun Sep 22 05:31:22 1996 Jason Merrill <jason@yorick.cygnus.com>
860
861 * lex.c (do_identifier): Don't do deferred lookup in a template
862 header.
863
864 * typeck2.c (store_init_value): Oops.
865
866 * new.{h,cc}, exception.{h,cc}, typeinfo.h, tinfo{2.cc,.cc,.h}:
867 New files for C++ lang-support library.
868 * Make-lang.in (CXX_EXTRA_HEADERS): Define.
869 (CXX_LIB2FUNCS): Define.
870 And rules for building the C++ lang-support code.
871 * config-lang.in (headers): Define.
872 (lib2funcs): Define.
873
874Sat Sep 21 19:17:28 1996 Jason Merrill <jason@yorick.cygnus.com>
875
876 * decl2.c (build_expr_from_tree): If CONSTRUCTOR has a type, call
877 digest_init.
878 * pt.c (tsubst_copy): Compute type for CONSTRUCTOR.
879 * typeck2.c (store_init_value): Check for initializing pmf with { }
880 here.
881 (process_init_constructor): Not here.
882
883Thu Sep 19 16:41:07 1996 Jason Merrill <jason@yorick.cygnus.com>
884
885 * pt.c (begin_template_parm_list): Increment
886 processing_template_decl here.
887 (end_template_parm_list): Not here.
888 (process_template_parm): No need to add 1 to it now.
889 * *.c: Use processing_template_decl instead of current_template_parms
890 to check for being in a template.
891
892 * pt.c (uses_template_parms): Handle SCOPE_REF. Fix CONSTRUCTOR.
893 (tsubst_copy): Handle CONSTRUCTOR.
894 (instantiate_decl): Set up context properly for variables.
895 * decl2.c (build_expr_from_tree): Handle CONSTRUCTOR.
896 * class.c (finish_struct): Reverse CLASSTYPE_TAGS.
897
898Wed Sep 18 13:30:20 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
899
900 * lex.c (enum tree_node_kind) [GATHER_STATISTICS]: Put the enum back.
901
7fcdf4c2
MS
902Wed Sep 18 04:24:07 1996 Jason Merrill <jason@yorick.cygnus.com>
903
904 * method.c (make_thunk): Call comdat_linkage before setting the
905 TREE_CODE.
906
907 * decl2.c (comdat_linkage): Use make_decl_one_only.
908 (import_export_decl): Likewise.
909 * decl.c (init_decl_processing): Check supports_one_only instead of
910 SUPPORTS_WEAK.
911
912Sat Sep 14 08:34:41 1996 Jason Merrill <jason@yorick.cygnus.com>
913
914 * decl2.c (grokfield): Tighten checking for access decls.
915
916 * decl.c (make_typename_type): Resolve references to
917 current_class_type. Set CLASSTYPE_GOT_SEMICOLON.
918 (lookup_name_real): Types that depend on a template parameter get
919 an implicit 'typename' unless they're in the current scope.
920 (start_decl_1): We don't care about incomplete types that depend
921 on a template parm.
922 (grokdeclarator): Resolve 'typename's in the type specifier that
923 refer to members of the current scope.
924
925 * call.c (build_over_call): Remove 'inline called before
926 definition' diagnostic.
927 (build_method_call): Likewise.
928 * decl.c (duplicate_decls): Downgrade 'used before declared
929 inline' to a warning, only with -Winline.
930
931Fri Sep 13 17:31:40 1996 Stan Shebs <shebs@andros.cygnus.com>
932
933 * mpw-make.sed: Fix include paths, add @DASH_C_FLAG@ to compile.
934
c11b6f21
MS
935Wed Sep 11 22:38:13 1996 Gerald Baumgartner <gb@cs.purdue.edu>
936
937 * call.c (build_method_call): When calling a signature
938 default implementation, as in other cases, let instance_ptr simply
939 be instance.
940
941Wed Sep 11 22:14:44 1996 Mike Stump <mrs@cygnus.com>
942
943 * parse.y (simple_stmt): Cleanup and use do_poplevel ().
944
945Wed Sep 11 22:10:48 1996 Mike Stump <mrs@cygnus.com>
946
947 * except.c (expand_start_catch_block): Add a pushlevel so that -g
948 works on hppa and SPARC.
949
950Wed Sep 11 10:18:06 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
951
952 * typeck.c (build_indirect_ref): Catch PTR being an error_mark_node.
953
954Mon Sep 9 19:51:14 1996 Gerald Baumgartner <gb@cs.purdue.edu>
955
956 * call.c (build_over_call): Check first whether DECL_CONTEXT exists
957 before testing whether it's a signature.
958
959Sun Sep 8 16:06:57 1996 Gerald Baumgartner <gb@cs.purdue.edu>
960
961 * call.c (build_new_method_call): Don't complain about signature
962 pointers and references not being an aggr type.
963 (build_this): If a signature pointer or reference was passed in,
964 just return it.
965 (build_new_method_call): If instance is a signature pointer, set
966 basetype to the signature type of instance.
967 * sig.c (build_signature_method_call): Deleted basetype and
968 instance parameters, they can be found as the DECL_CONTEXT of
969 function and as the first argument passed in.
970 * cp-tree.h: Changed declaration of build_signature_method_call.
971 * call.c (build_method_call): Deleted first two arguments in call
972 of build_signature_method_call.
973 (build_over_call): Added call to build_signature_method_call.
974
975Thu Sep 5 16:51:28 1996 Jason Merrill <jason@yorick.cygnus.com>
976
977 * typeck.c (build_c_cast): Don't tack a non_lvalue_expr onto a
978 target_expr.
979
980Thu Sep 5 10:05:38 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
981
982 * cvt.c (convert_to_reference): Use %#T, not %#D, for error.
983
9ffa2541
BM
984Wed Sep 4 17:16:09 1996 Bob Manson <manson@charmed.cygnus.com>
985
986 * except.c (expand_start_try_stmts): Move to except.c in the backend.
987 (expand_end_try_stmts): Remove.
988
989 * init.c (perform_member_init): Use add_partial_entry () instead
990 of directly manipulating lists.
991 (emit_base_init): Ditto.
992
c11b6f21
MS
993Wed Sep 4 12:14:36 1996 Mike Stump <mrs@cygnus.com>
994
995 * except.c (expand_exception_blocks): Always make sure USE and
996 CLOBBER insns that came at the end still do, the backend relies
997 upon this.
998
999Wed Sep 4 07:44:48 1996 Jason Merrill <jason@yorick.cygnus.com>
1000
1001 * call.c (build_over_call): We can only use a TARGET_EXPR of the
1002 right type.
1003
1004Tue Sep 3 19:26:05 1996 Jason Merrill <jason@yorick.cygnus.com>
1005
1006 * cvt.c (convert_to_reference): Revert last change, don't complain
1007 about temp without target decl.
1008
1009Tue Sep 3 10:22:56 1996 Mike Stump <mrs@cygnus.com>
1010
1011 * decl.c (grokdeclarator): Don't core dump when void() is given.
1012
1013Tue Sep 3 02:38:56 1996 Jason Merrill <jason@yorick.cygnus.com>
1014
1015 * decl.c (copy_args_p): Don't crash.
1016
1017Fri Aug 30 14:26:57 1996 Mike Stump <mrs@cygnus.com>
1018
1019 * pt.c (tsubst): And support template args inside the exception
1020 specification.
1021
1022 * pt.c (tsubst): Add support for exception specifications in
1023 template functions.
1024
1025Fri Aug 30 10:01:55 1996 Mike Stump <mrs@cygnus.com>
1026
1027 * cp-tree.def (DECL_STMT): Eliminate the throw spec field, only 3
1028 fields now.
1029 * cp-tree.h (start_decl): Eliminate the throw spec parameter.
1030 (start_function): Likewise.
1031 (start_method): Likewise.
1032 (grokfield): Likewise.
1033 (make_call_declarator): Add throw spec parameter.
1034 (set_quals_and_spec): Add routine.
1035 * lex.c (set_quals_and_spec): Likewise.
1036 * decl.h (grokdeclarator): Eliminate the throw spec parameter.
1037 * decl.c (shadow_tag): Eliminate the throw spec parameter to
1038 grokdeclarator.
1039 (groktypename): Likewise.
1040 (start_decl): Eliminate the throw spec parameter. Eliminate the
1041 throw spec parameter to grokdeclarator. Eliminate the throw spec
1042 field in DECL_STMT.
1043 (cp_finish_decl): Eliminate the throw spec field in DECL_STMT.
1044 (grokfndecl): Remove useless set of raises.
1045 (grokdeclarator): Eliminate the throw spec parameter. Eliminate
1046 the throw spec parameter to start_decl. Pull the throw spec out
1047 of the call declarator.
1048 (grokparms): Eliminate the throw spec parameter to grokdeclarator.
1049 (start_function): Eliminate the throw spec parameter. Eliminate
1050 the throw spec parameter to grokdeclarator.
1051 (start_method): Likewise.
1052 * decl2.c (grokfield): Likewise.
1053 (grokbitfield): Eliminate the throw spec parameter to grokdeclarator.
1054 (grokoptypename): Likewise.
1055 (finish_file): Eliminate the throw spec parameter to
1056 start_function. Add throw spec to make_call_declarator.
1057 * except.c (init_exception_processing): Add throw spec to
1058 make_call_declarator. Eliminate the throw spec parameter to
1059 start_decl.
1060 (expand_start_catch_block): Eliminate the throw spec parameter to
1061 grokdeclarator.
1062 (expand_builtin_throw): Add throw spec to make_call_declarator.
1063 Eliminate the throw spec parameter to start_function.
1064 (start_anon_func): Likewise.
1065 * lex.c (make_call_declarator): Add throw spec parameter.
1066 (set_quals_and_spec): New routine.
1067 (cons_up_default_function): Add throw spec to make_call_declarator.
1068 Eliminate the throw spec parameter to grokfield.
1069 * method.c (synthesize_method): Eliminate the throw spec parameter
1070 to start_function.
1071 * pt.c (process_template_parm): Eliminate the throw spec parameter
1072 to grokdeclarator.
1073 (tsubst): Add throw spec to make_call_declarator.
1074 (tsubst_expr): Eliminate the throw spec parameter to start_decl.
1075 (do_function_instantiation): Eliminate the throw spec parameter to
1076 grokdeclarator. Eliminate the throw spec parameter to
1077 start_function.
1078 * rtti.c (synthesize_tinfo_fn): Eliminate the throw spec parameter
1079 to start_function.
1080 * parse.y (datadef): Remove non-winning optimization.
1081 (decl): Likewise.
1082 (fndef): Remove ambiguous error productions uncovered by grammer
1083 fixing.
1084 (constructor_declarator): Add exception_specification_opt here.
1085 (component_constructor_declarator): Likewise.
1086 (direct_after_type_declarator): Likewise.
1087 (complex_direct_notype_declarator): Likewise.
1088 (direct_abstract_declarator): Likewise.
1089 (fn.def1): Remove exception_specification_opt.
1090 (fn.def2): Likewise.
1091 (condition): Likewise.
1092 (initdcl0): Likewise.
1093 (initdcl): Likewise.
1094 (notype_initdcl0): Likewise.
1095 (nomods_initdcl0): Likewise.
1096 (component_decl_1): Likewise.
1097 (component_declarator): Likewise.
1098 (after_type_component_declarator0): Likewise.
1099 (after_type_component_declarator): Likewise.
1100 (notype_component_declarator): Likewise.
1101
1102Wed Aug 28 01:40:30 1996 Jason Merrill <jason@yorick.cygnus.com>
1103
1104 * call.c (build_over_call): Also use an INIT_EXPR when
1105 initializing anything from an rvalue.
1106
1107 * call.c (build_over_call): Call stabilize_reference when building
1108 an INIT_EXPR instead of calling the copy ctor.
1109
1110 * call.c (joust): Extend the previous change to all comparisons.
1111
1112 * decl2.c, method.c, lex.c: Use MAKE_DECL_ONE_ONLY and
1113 NO_LINKAGE_HEURISTICS.
1114
1115 * decl2.c (finish_file): Emit any statics that weren't already.
1116
1117 * typeck.c (build_static_cast): Implement.
1118 * tree.c (build_cplus_new): Handle getting a TARGET_EXPR.
1119 * decl.c (grokparms): Use can_convert_arg instead of
1120 implicit_conversion directly.
1121 (copy_args_p): New fn.
1122 * cvt.c (convert_to_reference): Don't complain about temp with
1123 static_cast.
1124 (build_up_reference): Handle TARGET_EXPRs.
1125 * call.c (build_over_call): Elide unnecessary temps.
1126 (can_convert*): Use new overloading code.
1127
1128Tue Aug 27 13:12:21 1996 Jason Merrill <jason@yorick.cygnus.com>
1129
1130 * call.c: Move TYPE_PTR*_MACROS ...
1131 * cp-tree.h: To here.
1132 * typeck.c (build_reinterpret_cast): Implement.
1133
1134 * call.c (add_builtin_candidate): Use TYPE_PTROB_P instead of
1135 ptr_complete_ob.
1136 (joust): If we're comparing a function to a builtin and the worst
1137 conversion for the builtin is worse than the worst conversion for the
1138 function, take the function.
1139
1140 * typeck.c (build_const_cast): Implement.
1141 (comp_ptr_ttypes_const): Like comp_ptr_ttypes, for const_cast.
1142 (comp_ptr_ttypes_reinterpret): Like cpt, for reinterpret_cast.
1143
1144Tue Aug 27 13:14:58 1996 Bob Manson <manson@charmed.cygnus.com>
1145
1146 * rtti.c (build_dynamic_cast): Don't try to dereference exprtype
1147 too early. Make sure we explode if exprtype turns out to be a
1148 NULL_TREE when it shouldn't be.
1149
1150Tue Aug 27 10:56:21 1996 Mike Stump <mrs@cygnus.com>
1151
1152 * cp-tree.h: New routine make_call_declarator.
1153 * lex.c (make_call_declarator): Define it.
1154 * except.c (init_exception_processing): Use it.
1155 (expand_builtin_throw): Likewise.
1156 (start_anon_func): Likewise.
1157 * decl2.c (finish_file): Likewise.
1158 * lex.c (cons_up_default_function): Likewise.
1159 * parse.y: Likewise.
1160 * pt.c (tsubst): Likewise.
1161
1162Mon Aug 26 17:40:03 1996 Mike Stump <mrs@cygnus.com>
1163
1164 * decl2.c (groktypefield): Remove unused code.
1165
1166Mon Aug 26 17:00:33 1996 Mike Stump <mrs@cygnus.com>
1167
1168 * gxx.gperf: Change TYPE_QUAL into CV_QUALIFIER.
1169 * parse.y: Likewise. Change maybe_type_qual into maybe_cv_qualifier.
1170 Change type_quals into cv_qualifiers. Change nonempty_type_quals into
1171 nonempty_cv_qualifiers.
1172 * hash.h: Rebuild.
1173
1174 * lex.c (make_pointer_declarator): Change type_quals into
1175 cv_qualifiers.
1176 (make_reference_declarator): Likewise.
1177
d11ad92e
MS
1178Thu Aug 22 01:09:22 1996 Jason Merrill <jason@yorick.cygnus.com>
1179
1180 * decl.c (start_function): Only check interface_* for templates
1181 with flag_alt_external_templates.
1182
1183 * call.c (build_new_op): Check for comparison of different enum types.
1184 (build_over_call): Fix arg # output.
1185
1186 * typeck.c (build_component_ref): Handle pre-found TYPE_DECL.
1187
1188Wed Aug 21 00:13:15 1996 Jason Merrill <jason@yorick.cygnus.com>
1189
1190 * call.c (build_new_op): Check for erroneous args.
1191
1192 * call.c (build_new_method_call): Add missing args to cp_error.
1193
1194 * tree.c (error_type): Dont print reference-to-array.
1195
1196 * typeck.c (convert_for_assignment): Don't say contravariance for
1197 removing const.
1198
1199Tue Aug 20 13:23:00 1996 Jason Merrill <jason@yorick.cygnus.com>
1200
1201 * call.c (build_over_call): Diagnose bad convs for `this'.
1202
1203 * lex.c (cons_up_default_function): Set DECL_ARTIFICIAL
1204 on _ctor_arg.
1205
1206 * call.c (convert_like): Handle bad convs.
1207 (build_over_call): Handle bad convs better.
1208
1209 * decl2.c: -fansi-overloading is now the default.
1210
1211 * call.c (build_new_method_call): Check for erroneous args.
1212
1213 * pt.c (instantiate_class_template): Propagate
1214 TYPE_USES_MULTIPLE_INHERITANCE.
1215
1216Tue Aug 20 13:09:57 1996 Mike Stump <mrs@cygnus.com>
1217
1218 * call.c (enforce_access): Add static to routine.
1219
1220Sun Aug 18 14:35:54 1996 Jason Merrill <jason@yorick.cygnus.com>
1221
1222 * call.c (build_user_type_conversion_1): Fix bad handling.
1223 (compare_ics): Likewise.
1224
1225Sat Aug 17 21:54:11 1996 Jason Merrill <jason@yorick.cygnus.com>
1226
1227 * call.c (standard_conversion): Oops.
1228
1229Sat Aug 17 16:28:11 1996 Geoffrey Noer <noer@cygnus.com>
1230
1231 * g++.c: Update test for win32 (&& ! cygwin32).
1232
1233Sat Aug 17 03:45:31 1996 Jason Merrill <jason@yorick.cygnus.com>
1234
1235 * typeck.c (comp_ptr_ttypes_real): Handle OFFSET_TYPEs properly.
1236 (ptr_reasonably_similar): New fn.
1237 * call.c (BAD_RANK): New rank.
1238 (ICS_BAD_FLAG): New macro.
1239 (standard_conversion): Handle almost-right pointer conversions.
1240 (reference_binding): Handle bad rvalue bindings.
1241 (add_*_candidate): Stuff.
1242 (build_over_call): Pass bad conversions to convert_for_initialization.
1243 (compare_ics): Handle bad convs.
1244 (joust): Likewise.
1245
1246Fri Aug 16 15:02:19 1996 Bob Manson <manson@charmed.cygnus.com>
1247
1248 * init.c (expand_vec_init): Use ptrdiff_type_node instead of
1249 integer_type_node when computing pointer offsets.
1250
1251Fri Aug 16 01:28:32 1996 Jason Merrill <jason@yorick.cygnus.com>
1252
1253 * tree.c (lvalue_type): New fn.
1254 (error_type): New fn.
1255 * call.c (op_error): Use error_type.
1256 (add_conv_candidate): Use lvalue_type.
1257 (add_builtin_candidates): Likewise.
1258 * error.c (args_as_string): Use error_type.
1259
1260Thu Aug 15 17:27:13 1996 Jason Merrill <jason@yorick.cygnus.com>
1261
1262 * pt.c (instantiate_decl): Evaluate DECL_INITIAL of a VAR_DECL here.
1263 (tsubst): Not here.
1264
1265 * decl.c (init_decl_processing): With -ansi, __null's type is the
1266 signed integral type with the same number of bits as a pointer.
1267 Introduce a new variable null_node for it.
1268 * cp-tree.h: Adjust.
1269 * call.c (null_ptr_cst_p): Adjust.
1270
1271Thu Aug 15 17:09:54 1996 Mike Stump <mrs@cygnus.com>
1272
1273 * except.c (do_unwind): Mark %i7 as used on the SPARC so we can
1274 optimize.
1275
1276Thu Aug 15 01:36:49 1996 Jason Merrill <jason@yorick.cygnus.com>
1277
1278 * decl2.c (import_export_decl): Ignore #pragma interface for tinfo
1279 fns of classes without virtual functions.
1280
1281 * call.c (add_function_candidate): Handle `this' specially.
1282 (compare_ics): Likewise.
1283
1284Tue Aug 13 12:16:10 1996 Jason Merrill <jason@yorick.cygnus.com>
1285
1286 * typeck.c (build_conditional_expr): Fix handling of __null.
1287
1288 * decl2.c (comdat_linkage): New fn.
1289 (import_export_vtable): Use it.
1290 (import_export_decl): Use it.
1291 * method.c (make_thunk): Use it.
1292
73aad9b9
JM
1293Mon Aug 12 00:09:18 1996 Jason Merrill <jason@yorick.cygnus.com>
1294
1295 * pt.c (end_template_decl): If we don't actually have parms, return.
1296 * parse.y (template_header): Accept 'template <>'.
1297
1298 * errfn.c: Allow 5 args.
1299
1300Sun Aug 11 15:20:58 1996 Jason Merrill <jason@yorick.cygnus.com>
1301
1302 * tree.c (make_temp_vec): New fn.
1303 * pt.c (push_template_decl): Handle partial specs.
d11ad92e 1304 (instantiate_class_template): Likewise.
73aad9b9
JM
1305 (more_specialized): Use get_bindings.
1306 (more_specialized_class): New fn.
1307 (get_class_bindings): New fn.
1308 (most_specialized_class): New fn.
1309 (do_function_instantiation): List candidates for ambiguous case.
1310 * decl.c (duplicate_decls): Lose reference to DECL_TEMPLATE_MEMBERS.
1311 (shadow_tag): Call push_template_decl for partial specializations.
d11ad92e 1312 * parse.y: Likewise.
73aad9b9
JM
1313 * cp-tree.h (DECL_TEMPLATE_SPECIALIZATIONS): Replaces
1314 DECL_TEMPLATE_MEMBERS.
1315 * call.c (print_z_candidates): Reduce duplication.
1316
1317Fri Aug 9 14:36:08 1996 Jason Merrill <jason@yorick.cygnus.com>
1318
1319 * decl2.c (lang_decode_option): Allow -fansi-overloading.
1320
1321Thu Aug 8 17:04:18 1996 Jason Merrill <jason@yorick.cygnus.com>
1322
1323 * pt.c (get_bindings): New fn.
d11ad92e 1324 (most_specialized): Likewise.
73aad9b9
JM
1325 (do_function_instantiation): Use them.
1326 (add_maybe_template): New fn.
1327 * cp-tree.h (DECL_MAYBE_TEMPLATE): New macro.
1328 * call.c (build_new_op): Handle guiding decls.
d11ad92e
MS
1329 (build_new_function_call): Likewise.
1330 * decl2.c (finish_file): Likewise.
73aad9b9
JM
1331
1332 * decl2.c (mark_used): Do synthesis here.
1333 * call.c (build_method_call): Not here.
1334 (build_over_call): Or here.
1335 * typeck.c (build_function_call_real): Or here.
1336 * tree.c (bot_manip): Call mark_used on functions used in default
1337 args.
1338
2eee5e3a
MM
1339Thu Aug 8 17:48:16 1996 Michael Meissner <meissner@tiktok.cygnus.com>
1340
1341 * decl2.c (import_export_vtable): Delete code that disabled vtable
1342 heuristic on systems with ASM_OUTPUT_EXTERNAL.
1343
c73964b2
MS
1344Wed Aug 7 12:44:11 1996 Jason Merrill <jason@yorick.cygnus.com>
1345
1346 * typeck.c (build_x_function_call): Handle static call context
1347 better.
1348
1349 * decl.c (finish_function): Set the DECL_CONTEXT of the result to
1350 the function, not its outer block.
1351
1352 * call.c (build_field_call): Pass fields on to build_opfncall
1353 regardless of TYPE_OVERLOADS_CALL_EXPR.
1354 (build_method_call): Pass on to build_new_method_call sooner.
1355
1356 * typeck.c (build_ptrmemfunc): Just return what instantiate_type
1357 gives us.
1358 * class.c (instantiate_type): Don't put a POINTER_TYPE to
1359 METHOD_TYPE on an expression. Also make a copy of rhs instead of
1360 modifying it.
1361
1362Tue Aug 6 12:58:46 1996 Jason Merrill <jason@yorick.cygnus.com>
1363
1364 * call.c (compare_ics): Handle qual_conv after lvalue_conv.
1365 (add_builtin_candidate): Don't take enums for ++.
1366 (build_new_method_call): Handle non-aggregates and field calls.
1367 Move new overloading code from...
1368 * cvt.c: Here.
1369
1370 * decl.c (grokparms): Don't check default args in templates.
1371
1372Mon Aug 5 17:17:06 1996 Jason Merrill <jason@yorick.cygnus.com>
1373
1374 * cvt.c (build_new_op): Fix args to build_unary_op.
1375 (add_builtin_candidates): Don't call type_promotes_to on float.
1376
1377 * decl.c (grokparms): Check the type of the default arg.
1378
1379 * cvt.c (build_new_op): Pass non-overloaded cases on rather than
1380 returning NULL_TREE.
1381
1382 * typeck.c (build_x_binary_op): Avoid doing extra work.
d11ad92e
MS
1383 (build_x_unary_op): Likewise.
1384 (build_x_conditional_expr): Likewise.
c73964b2
MS
1385 * cvt.c (build_over_call): Return.
1386 (add_builtin_candidate): Fix MEMBER_REF.
d11ad92e 1387 (build_new_op): Likewise.
c73964b2
MS
1388
1389Mon Aug 5 17:07:47 1996 Mike Stump <mrs@cygnus.com>
1390
1391 * method.c (build_overload_name): Put bug fix into code but leave
1392 disabled for now so we can be bug compatible with older releases
1393 that do repeats incorrectly. In the future, we can enable it.
1394
1395Mon Aug 5 13:46:28 1996 Jason Merrill <jason@yorick.cygnus.com>
1396
1397 * cvt.c (convert_like): Don't call build_cplus_new twice.
1398
1399 * call.c, cp-tree.h, cvt.c, decl2.c, init.c, method.c, pt.c, typeck.c:
1400 Control new overloading code with -fansi-overloading.
1401
1402Sun Aug 4 15:29:11 1996 Jason Merrill <jason@yorick.cygnus.com>
1403
1404 * cvt.c (build_over_call): Call build_cplus_new.
d11ad92e
MS
1405 * call.c (build_method_call): Likewise.
1406 * typeck.c (build_function_call_real): Likewise.
c73964b2
MS
1407 (build_conditional_expr): If both operands are TARGET_EXPRs, wrap
1408 the COND_EXPR in a TARGET_EXPR so they use the same slot.
1409
1410 * cvt.c (build_up_reference): Propagate INDIRECT_BIND to
1411 recursive calls.
1412 * typeck.c (complete_type): Propagate
1413 TYPE_NEEDS_{CONSTRUCTING,DESTRUCTOR}.
1414
1415Sat Aug 3 14:05:07 1996 Jason Merrill <jason@yorick.cygnus.com>
1416
1417 * cvt.c (joust): More ?: kludging. Sigh.
1418 (build_over_call): Don't try to synthesize global fns.
1419
1420 * search.c (lookup_conversions): Use binfo marking.
1421
1422Sat Aug 3 12:33:42 1996 Bob Manson <manson@charmed.cygnus.com>
1423
1424 * search.c (build_mi_matrix): Use the correct value of cid
1425 when determining the new mi_size.
1426
1427Sat Aug 3 01:27:41 1996 Jason Merrill <jason@yorick.cygnus.com>
1428
1429 * cvt.c (add_builtin_candidates): Do consider type conversion ops
1430 for the first parms of += et al.
1431 (strip_top_quals): New fn.
1432 (reference_binding): Use it instead of TYPE_MAIN_VARIANT.
d11ad92e 1433 (implicit_conversion): Likewise.
c73964b2
MS
1434 (add_builtin_candidates): Be careful about arrays.
1435 (build_new_method_call): Handle vtable optimization.
1436
1437Fri Aug 2 01:26:59 1996 Jason Merrill <jason@yorick.cygnus.com>
1438
1439 * cp-tree.h (LOOKUP_NO_TEMP_BIND): New flag.
1440 * cvt.c (reference_binding): Use it.
1441 (implicit_conversion): Use it.
1442 (add_builtin_candidate, COND_EXPR): Use it.
1443
1444 * cvt.c (build_new_function_call): Check for error args.
1445
1446 * typeck.c (comptypes): Just check DERIVED_FROM_P, not UNIQUELY.
1447
1448 * gxx.gperf: Add __null.
1449 * hash.h: Regenerate.
1450 * lex.h: Add RID_NULL.
1451 * lex.c (init_lex): Create null_pointer_node here, stick it in
1452 RID_NULL.
1453 * decl.c (init_decl_processing): Still set its type here.
1454 * cvt.c (cp_convert_to_pointer): Don't produce null_pointer_node.
d11ad92e 1455 (convert_to_pointer_force): Likewise.
c73964b2
MS
1456 (null_ptr_cst_p): Check for null_pointer_node; only accept (void*)0
1457 if (! pedantic).
1458 * call.c (convert_harshness): Use null_ptr_cst_p.
d11ad92e 1459 * typeck.c (convert_for_assignment): Likewise. Don't produce
c73964b2
MS
1460 null_pointer_node.
1461
1462 * error.c (args_as_string): Handle lists of actual args, too.
1463 * cvt.c (null_ptr_cst): Support (void*)0 for now.
1464 (build_user_type_conversion_1): Improve diagnostics.
1465 (build_new_function_call): Likewise.
1466 (build_object_call): Likewise.
1467 (build_new_method_call): Likewise. Move call before def diagnostic...
1468 (build_over_call): Here.
1469
1470 * cvt.c (build_new_method_call): Don't complain about no match if
1471 LOOKUP_SPECULATIVELY.
1472 (build_over_call): Fix 'this' for virtual fn.
1473 (build_new_method_call): Add diagnostic.
1474
1475Thu Aug 1 16:45:09 1996 Jason Merrill <jason@yorick.cygnus.com>
1476
1477 * cvt.c (add_function_candidate): Expect 'this' and 'in_chrg' for
1478 constructors to be passed in.
1479 (build_over_call): Likewise.
1480 (build_user_type_conversion_1): Pass them in.
1481 (convert_like): Likewise.
1482 (build_object_call): Handle overloaded conversions.
1483 (build_over_call): Pass the right args to build_vfn_ref.
1484 (standard_conversion): Fix pmf convs.
1485 (joust): Handle comparing statics and non-statics.
1486 (build_new_method_call): New fn.
1487 * call.c (build_method_call): Call it if NEW_OVER.
1488
1489Thu Aug 1 16:06:14 1996 Mike Stump <mrs@cygnus.com>
1490
1491 * lex.c (do_identifier): Don't use %O on IDENTIFIER_OPNAME_Ps, use
1492 %D instead.
1493
1494Thu Aug 1 15:24:02 1996 Mike Stump <mrs@cygnus.com>
1495
1496 * except.c (expand_throw): Use maybe_build_cleanup_and_delete
1497 instead of just maybe_build_cleanup so that we deallocate the
1498 thrown object.
1499
1500Thu Aug 1 15:18:00 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1501
1502 * decl2.c (finish_prevtable_vardecl): Make non-static for pt.c's use.
1503 * cp-tree.h (finish_prevtable_vardecl): Add decl.
1504
14548a19
MS
1505Thu Aug 1 11:53:51 1996 Bob Manson <manson@charmed.cygnus.com>
1506
c73964b2
MS
1507 * pt.c (instantiate_class_template): Call complete_type. Also, if
1508 we're at the end of the file and we just instantiated a template
1509 class with a vtable, call finish_prevtable_vardecl.
1510
14548a19
MS
1511 * error.c (dump_decl): Don't explode (or explode more gracefully
1512 as appropriate) if the object being dumped has a null type.
d11ad92e 1513 (dump_expr): Likewise.
14548a19
MS
1514
1515 * search.c (build_mi_matrix): Ensure that mi_size is large enough,
1516 by counting the number of nodes that we'll need before allocating
1517 the array.
1518 (lookup_fnfields): Fix comment.
1519 (breadth_first_search): Fix comment.
1520
1521Wed Jul 31 09:57:05 1996 Jason Merrill <jason@yorick.cygnus.com>
1522
1523 * pt.c (instantiate_class_template): Propagate TYPE_PACKED and
1524 TYPE_ALIGN.
1525 * class.c (finish_struct): Call cplus_decl_attributes here.
1526 (finish_struct_1): Not here.
1527 * cp-tree.h: Adjust.
1528
1529 * pt.c (type_unification): New parameter STRICT.
1530 (unify): If STRICT, don't allow cv addition or base deduction.
1531 * call.c, class.c, cvt.c, cp-tree.h: Adjust.
1532
1533Tue Jul 30 13:06:13 1996 Jason Merrill <jason@yorick.cygnus.com>
1534
1535 * search.c (get_template_base{_recursive}): New fns.
1536 * pt.c (more_specialized): New fn.
1537 (do_function_instantiation): Use it.
1538 (unify): Handle base deduction.
1539 * cvt.c (joust): Use more_specialized.
1540 Don't arbitrarily choose between non-builtin candidates.
1541 (build_over_call): Call require_complete_type.
1542
1543 * decl.c (start_function): Statics are static even in a #pragma
1544 interface file.
1545
1546 * decl2.c (import_export_vtable): Disable vtable heuristic on
1547 systems with ASM_OUTPUT_EXTERNAL.
1548
1549 * cvt.c (compare_ics): Fix comparison of PMEM_CONV and BASE_CONV.
1550 (standard_conversion): No std conv to enum type.
1551
1552 * cvt.c (standard_conversion): Fix order of args to DERIVED_FROM_P
1553 for ptm's.
1554
1555 * cvt.c (reference_binding): Bind directly to a base subobject of
1556 a class rvalue.
1557
1558 * cvt.c (build_new_op): Enforce access control.
1559
1560Tue Jul 30 09:22:53 1996 Bob Manson <manson@charmed.cygnus.com>
1561
1562 * typeck2.c (process_init_constructor): When scanning the
1563 union for a named field, skip things that aren't FIELD_DECLs.
1564
1565 * method.c (synthesize_method): Don't scan fndecl's rtl if
1566 we're at the end of the file; just assume the function can't
1567 be inlined.
1568
1569Mon Jul 29 15:48:30 1996 Jason Merrill <jason@yorick.cygnus.com>
1570
1571 * cvt.c (build_builtin_candidate): Stick a dummy conversion in if
1572 it failed.
1573
1574 * cvt.c (build_user_type_conversion_1): Handle overloaded
1575 conversion ops.
1576
1577 * cvt.c (add_builtin_candidates): Don't consider type conversion
1578 operators for the first parameter of operator=.
1579
1580Mon Jul 29 15:33:55 1996 Bob Manson <manson@charmed.cygnus.com>
1581
1582 * typeck.c (complete_type): Only call layout_type if we're not
1583 expanding a template.
1584
1585Mon Jul 29 14:40:38 1996 Jason Merrill <jason@yorick.cygnus.com>
1586
1587 * cvt.c (compare_ics): Oops.
1588
1589 * cvt.c (op_error): Oops.
1590
1591 * cp-tree.def: Add RVALUE_CONV, rename EXACT_CONV to IDENTITY_CONV.
1592 * cvt.c: Add IDENTITY_RANK before others. Use real_lvalue_p.
1593 (build_conv): Use them.
1594 (implicit_conversion): Use them.
1595 (convert_like): Handle them.
1596 (build_new_op): Handle builtin COND_EXPR again.
1597 (add_builtin_candidates): Strip cv-quals. Fix oops. Include enums
1598 in lists of types for COND_EXPR.
1599 (add_builtin_candidate): Add enum candidates for COND_EXPR.
1600
1601Mon Jul 29 12:05:40 1996 Bob Manson <manson@charmed.cygnus.com>
1602
1603 * typeck.c (build_modify_expr): Always attempt to build a call to
1604 the assignment operator, even if we're using a default one.
1605 (convert_for_initialization): Call complete_type.
1606
1607Mon Jul 29 11:25:08 1996 Jason Merrill <jason@yorick.cygnus.com>
1608
1609 * cvt.c (reference_binding): A REF_BIND gets the reference type.
1610 (implicit_conversion): Likewise.
1611 (convert_like): Likewise.
1612 (compare_ics): Likewise.
1613 (compare_qual): Likewise.
1614 (print_z_candidates): Handle no candidates.
1615 (build_new_op): Don't handle builtin COND_EXPR for now.
1616
1617Sat Jul 27 11:27:47 1996 Stan Shebs <shebs@andros.cygnus.com>
1618
1619 * cvt.c (build_builtin_candidate): Init local var in an ANSI way.
1620
1621Fri Jul 26 01:07:22 1996 Jason Merrill <jason@yorick.cygnus.com>
1622
1623 * cvt.c (joust): If the candidates are the same, arbitrarily pick one.
1624
1625 * cvt.c (build_builtin_candidate): Oops.
1626 (build_new_op): Oops.
1627
1628 * method.c (build_opfncall): Pass COND_EXPR on.
1629 * cvt.c (build_builtin_candidate): Reorganize, support COND_EXPR.
1630 (add_builtin_candidate{,s}): Likewise.
1631 (add_builtin_candidates): Likewise.
1632 (print_z_candidates, op_error, build_new_op): Likewise.
1633 (type_decays_to): New fn.
1634 * lex.c (init_lex): Just say ?: for COND_EXPR.
1635
1636Thu Jul 25 09:33:33 1996 Jason Merrill <jason@yorick.cygnus.com>
1637
1638 * typeck.c (complete_type): Call layout_type rather than building
1639 a new array type.
1640
1641 * cvt.c (add_builtin_candidate): Pointer arithmetic candidates
1642 only use ptrdiff_t.
1643
1644Wed Jul 24 12:45:08 1996 Jason Merrill <jason@yorick.cygnus.com>
1645
1646 * cvt.c: Always compile the new overloading code (but don't use it).
1647 (implicit_conversion): Add a BASE_CONV when converting to
1648 the same class type.
1649 (convert_like): Handle BASE_CONV.
1650
1651Tue Jul 23 12:46:30 1996 Jason Merrill <jason@yorick.cygnus.com>
1652
1653 * cvt.c (build_new_op): Support {MAX,MIN}_EXPR.
1654 (add_builtin_candidate): Likewise.
1655
1656 NEW_OVER changes:
1657 * typeck.c (build_x_function_call): Try an operator function
1658 whenever we call an object of class type.
1659 * method.c (build_opfncall): Pass CALL_EXPRs through.
1660 * cvt.c (implicit_conversion): Do const-ref case first.
1661 (add_conv_candidate, build_object_call, op_error): New fns.
1662 (ptr_complete_ob, TYPE_PTROB_P): void is not an object type.
1663 ({add,build}_builtin_candidate{,s}, print_z_candidates): Display
1664 builtin candidates.
1665 (build_new_op): Handle CALL_EXPR. Don't try to decay void.
1666 Fall back on preincrement handling. Use op_error.
1667 Handle warn_synth.
1668 (convert_like): Pass INDIRECT_BIND. Don't try to do anything with
1669 an error_mark_node.
1670 (build_over_call): Handle PROMOTE_PROTOTYPES and ellipsis promotions
1671 properly.
1672
1673Mon Jul 22 16:21:55 1996 Bob Manson <manson@charmed.cygnus.com>
1674
1675 * pt.c (tsubst_expr): Handle CONTINUE_STMT.
1676
1677Mon Jul 22 15:38:58 1996 Mike Stump <mrs@cygnus.com>
1678
1679 * typeck.c (build_component_ref_1): Use build_component_ref
1680 instead of open coding it here.
1681
1682Mon Jul 22 12:18:54 1996 Jason Merrill <jason@yorick.cygnus.com>
1683
1684 * g++.c (main): Don't link with -lg++.
1685
1686 NEW_OVER changes:
1687 * cvt.c (convert_to_reference): Don't use convert_from_refeence on
1688 result of build_type_conversion.
1689 (cp_convert): Only call build_method_call for ctors if
1690 build_type_conversion failed.
1691 (ptr_complete_ob): New function.
1692 (TYPE_PTR{,OB,MEM}_P): New macros.
1693 ({add,build}_builtin_candidate{,s}): New functions.
1694 (print_z_candidates): Handle builtins.
1695 (build_user_type_conversion_1): Don't use conversion fns for
1696 converting to a base type.
1697 (build_user_type_conversion_1): Set ICS_USER_FLAG on AMBIG_CONVs.
1698 (build_user_type_conversion): Use convert_from_reference.
1699 (build_new_op): New function.
1700 (build_over_call): Fix handling of methods.
1701 (compare_ics): Handle AMBIG_CONV properly.
1702 * typeck2.c: Increment abort count.
1703 * method.c (build_opfncall): Forward most requests to build_new_op.
1704 * cp-tree.h (IS_OVERLOAD_TYPE): Tweak.
1705
1706Fri Jul 19 17:59:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1707
1708 * error.c (dump_expr, case CONSTRUCTOR, case CAST_EXPR): Take out
1709 invalid second argument to dump_expr_list.
1710
594740f3
MS
1711Fri Jul 19 14:04:05 1996 Mike Stump <mrs@cygnus.com>
1712
1713 * decl.c (lookup_name_real): Make sure we do obj->X::i correctly.
1714
1715Thu Jul 18 14:48:23 1996 Bob Manson <manson@charmed.cygnus.com>
1716
1717 * decl2.c (import_export_vtable): ASM_OUTPUT_EXTERNAL, not
1718 ASSEMBLE_EXTERNAL.
1719
1720Mon Jul 15 17:48:43 1996 Mike Stump <mrs@cygnus.com>
1721
1722 * typeck2.c (process_init_constructor): New pedwarn for using { }
1723 to initialize a pointer to member function.
1724 * typeck.c (build_ptrmemfunc1): Avoid use of digest_init so that
1725 we can avoid the new error.
1726
1727Mon Jul 15 15:42:03 1996 Mike Stump <mrs@cygnus.com>
1728
1729 * typeck.c (build_ptrmemfunc1): New function to hide details of
1730 pointer to member functions better.
1731
1732Mon Jul 15 14:23:02 1996 Mike Stump <mrs@cygnus.com>
1733
1734 * init.c (resolve_offset_ref): Resolve OFFSET_REFs that are
1735 methods into the actual method, as we know the implied object is
1736 not used.
1737
1738Mon Jul 15 13:08:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1739
1740 * parse.y (maybecomma_warn): Only emit the pedwarn if we're not
1741 inside a system header.
1742
1743Fri Jul 12 16:30:05 1996 Bob Manson <manson@charmed.cygnus.com>
1744
1745 * call.c (build_method_call): Call complete_type on the
1746 instance type.
1747
1748Thu Jul 11 17:16:40 1996 Mike Stump <mrs@cygnus.com>
1749
1750 * typeck.c (build_component_ref): Always build up an OFFSET_REF
1751 for obj_ptr->func so that we can know which object to use in a
1752 method call.
1753
1754Wed Jul 10 19:36:37 1996 Mike Stump <mrs@cygnus.com>
1755
1756 * typeck.c (build_ptrmemfunc): Remove sorry, now we can cast
1757 around things. Also improve maintainability.
1758
1759Wed Jul 10 18:20:11 1996 Bob Manson <manson@charmed.cygnus.com>
1760
1761 * decl.c (grokdeclarator): Check for overflow when evaluating an
1762 array dimension.
1763
1764Wed Jul 10 17:26:19 1996 Jason Merrill <jason@yorick.cygnus.com>
1765
1766 * cvt.c (cp_convert): Don't check for ambiguity with constructor
1767 if NEW_OVER.
1768
1769 * typeck.c (build_x_function_call): Pass function overload
1770 questions to new overloading code if NEW_OVER.
1771 * init.c (expand_aggr_init_1): Only check for type conversion ops
1772 if we're doing copy-initialization (i.e. LOOKUP_ONLYCONVERTING).
1773 Don't check for ambiguity with constructor if NEW_OVER.
1774 * cvt.c (convert_to_reference): Dereference the result of a type
1775 conversion operator.
1776 (build_conv): Propagate ICS_USER_FLAG.
1777 (implicit_conversion): Call instantiate_type.
1778 Pass LOOKUP_ONLYCONVERTING instead of LOOKUP_NORMAL.
1779 (add_function_candidate): Fix cv-quals on argtype.
1780 (print_z_candidates): New function.
1781 (build_new_function_call): Call it.
1782 (build_user_type_conversion_1): If LOOKUP_ONLYCONVERTING, don't
1783 consider non-converting constructors.
1784 Call print_z_candidates.
1785 Return an AMBIG_CONV for an ambiguous conversion.
1786 (build_user_type_conversion): Handle AMBIG_CONV.
1787 (convert_like): Fix test for building TARGET_EXPR.
1788 Call instantiate_type.
1789 Handle AMBIG_CONV and LVALUE_CONV.
1790 (build_over_call): Handle 0 args and ellipsis.
1791 * cp-tree.def: Add AMBIG_CONV.
1792
e92cc029
MS
1793Tue Jul 9 17:48:48 1996 Mike Stump <mrs@cygnus.com>
1794
1795 * decl.c (lookup_name_real): If we find mem in obj when parsing
1796 `obj->mem', make sure we return the right value.
1797
1798Tue Jul 9 16:11:28 1996 Bob Manson <manson@charmed.cygnus.com>
1799
1800 * search.c (get_base_distance): Call complete_type.
1801
1802Tue Jul 9 12:46:34 1996 Mike Stump <mrs@cygnus.com>
1803
1804 * decl.c (store_bindings): Make static.
1805
1806Mon Jul 8 16:42:31 1996 Jason Merrill <jason@yorick.cygnus.com>
1807
1808 * init.c (expand_aggr_init_1): Don't check type conversions if
1809 NEW_OVER.
1810
1811 * cvt.c (z_candidate): Put back template field.
1812 (add_function_candidate): Set it.
1813 (add_template_candidate): Likewise.
1814 (joust): Use it.
1815 (compare_qual): Handle references and pointers to members.
1816 (compare_ics): Handle reference bindings.
1817
1818 * decl.c (duplicate_decls): Propagate DECL_ONE_ONLY.
1819
1820Mon Jul 8 16:18:56 1996 Bob Manson <manson@charmed.cygnus.com>
1821
1822 * call.c (compute_conversion_costs): Call complete_type.
1823
1824 * tree.c (vec_binfo_member): Use comptypes instead of comparing
1825 pointers, so we can handle template parameters.
1826
1827Fri Jul 5 16:51:53 1996 Bob Manson <manson@charmed.cygnus.com>
1828
1829 * cvt.c (cp_convert_to_pointer): We have to call complete_type
1830 here; let's make it explicit instead of a side effect of an
1831 error check.
1832
1833Wed Jul 3 16:29:51 1996 Jason Merrill <jason@yorick.cygnus.com>
1834
1835 * cvt.c (z_candidate): Remove template field.
1836 (reference_binding): Handle binding to temporary.
1837 (implicit_conversion): Likewise.
1838 (add_function_candidate): Handle artificial constructor parms.
1839 Handle functions with too few parms.
1840 (add_template_candidate): New function.
1841 (build_user_type_conversion_1): Handle constructors.
1842 (convert_like): Likewise.
1843 (build_over_call): Likewise.
1844 (build_new_function_call): Support templates.
1845 (compare_ics): Fix reference, inheritance handling.
1846
1847Mon Jul 1 22:58:18 1996 Bob Manson <manson@charmed.cygnus.com>
1848
1849 * decl.c: Add signed_size_zero_node.
1850 (init_decl_processing): Build it.
1851 * class.c (prepare_fresh_vtable): Use it instead of size_zero_node
1852 when we're trying to make a negative delta.
1853
1854Mon Jul 1 17:56:19 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1855
1856 Stop doing this damn index==strchr variable name confusion.
1857 * class.c (add_virtual_function): Change local var INDEX to be
1858 named IDX.
1859 (add_method): Likewise.
1860 * lex.c (print_parse_statistics): Likewise.
1861 * search.c (make_memoized_table_entry): Likewise.
1862 (lookup_fnfields_here): Likewise.
1863 (lookup_field): Likewise.
1864 (lookup_fnfields): Likewise.
1865 (get_baselinks): Likewise.
1866 * sig.c (build_signature_table_constructor): Likewise.
1867 (build_signature_method_call): Likewise.
1868 * typeck.c (build_x_array_ref): Change INDEX parm to be named IDX.
1869 (get_member_function_from_ptrfunc): Likewise.
1870 (build_ptrmemfunc): Change local var INDEX to be IDX.
1871 (c_expand_start_case): Likewise.
1872
1873Sat Jun 29 14:05:46 1996 Jason Merrill <jason@yorick.cygnus.com>
1874
1875 * cvt.c (cp_convert_to_pointer): Move user-defined type conversion
1876 handling to before extraction of TYPE_PTRMEMFUNC_FN_TYPE.
1877 (convert_to_reference): Use build_type_conversion to convert to
1878 the reference type directly.
1879 (standard_conversion): Fix void* case, non-conversions.
1880 (reference_binding): Fix expr == 0 case, non-conversions.
1881 (convert_like): Support REF_BIND.
1882 (compare_qual): Split out from compare_ics.
1883 (compare_ics): Use it, handle icses with only a qual_conv.
1884
1885 * init.c (expand_vec_init): Don't crash if decl is NULL.
1886
1887Fri Jun 28 11:52:51 1996 Stan Shebs <shebs@andros.cygnus.com>
1888
1889 * mpw-config.in: New file, configury for Mac MPW.
1890 * mpw-make.sed: New file, makefile editing for MPW.
1891
1892Thu Jun 27 15:18:30 1996 Jason Merrill <jason@yorick.cygnus.com>
1893
1894 * pt.c (instantiate_class_template): Call repo_template_used.
1895
1896 * search.c (lookup_conversions): Only lookup conversions in
1897 complete types.
1898
1899Thu Jun 27 12:59:53 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1900
1901 * cp-tree.def: Renamed from tree.def, to avoid confusion with
1902 gcc's tree.def.
1903 * cp-tree.h, lex.c: Include cp-tree.def.
1904 * Makefile.in (CXX_TREE_H): Reference cp-tree.def.
1905
1906Wed Jun 26 18:29:47 1996 Bob Manson <manson@charmed.cygnus.com>
1907
1908 * init.c (build_vec_delete_1): Call complete_type.
1909
1910Mon Jun 24 17:17:32 1996 Mike Stump <mrs@cygnus.com>
1911
1912 * except.c (start_anon_func): Make sure anonymous functions are
1913 never external.
1914
1915Fri Jun 21 15:10:58 1996 Jason Merrill <jason@yorick.cygnus.com>
1916
1917 * decl.c (finish_function): If function_depth > 1, set nested.
1918
1919 * decl2.c (grokbitfield): Revert Bob's change.
1920 * class.c (finish_struct_1): Fix handling of named bitfield widths.
1921
1922Thu Jun 20 23:35:38 1996 Jason Merrill <jason@yorick.cygnus.com>
1923
1924 * pt.c (add_pending_template): Handle types.
1925 (lookup_template_class): With -fexternal-templates, just add the class
1926 to pending_templates instead of instantiating it now.
1927 * decl2.c (finish_file): Handle types in pending_templates.
1928
1929Thu Jun 20 14:08:40 1996 Bob Manson <manson@charmed.cygnus.com>
1930
1931 * decl2.c (grokbitfield): Handle constant decls appropriately.
1932 Give an appropriate error message now instead of spewing core
1933 later.
1934
1935Thu Jun 20 13:01:51 1996 Jason Merrill <jason@yorick.cygnus.com>
1936
1937 * decl2.c: Don't turn on thunks by default for now.
1938
1939Wed Jun 19 11:37:04 1996 Jason Merrill <jason@yorick.cygnus.com>
1940
1941 * typeck.c (complete_type): Handle error_mark_node.
1942 (common_type, OFFSET_TYPE): Handle template_type_parms.
1943
1944Tue Jun 18 10:02:15 1996 Jason Merrill <jason@yorick.cygnus.com>
1945
1946 * pt.c (instantiate_decl): If at_eof, call import_export_decl
1947 regardless of DECL_INLINE.
1948
1949 * typeck.c (mark_addressable): Set TREE_ADDRESSABLE on CONSTRUCTORs.
1950
1951 * class.c (finish_struct_bits): Copy TYPE_SIZE.
1952
1953 * rtti.c (build_dynamic_cast): Support templates.
1954 * tree.def: Support DYNAMIC_CAST_EXPR.
1955 * pt.c (tsubst_copy): Likewise.
1956 * decl2.c (build_expr_from_tree): Likewise.
1957
1958Mon Jun 17 15:23:36 1996 Jason Merrill <jason@yorick.cygnus.com>
1959
1960 * typeck.c (build_static_cast): Support templates.
1961 (build_const_cast): Likewise.
1962 * tree.def: Support CONST/STATIC_CAST_EXPR.
1963 * pt.c (tsubst_copy): Likewise.
1964 * decl2.c (build_expr_from_tree): Likewise.
1965
1966Sun Jun 16 12:33:57 1996 Jason Merrill <jason@yorick.cygnus.com>
1967
1968 * decl2.c (finish_vtable_vardecl): Don't trust
1969 TREE_SYMBOL_REFERENCED for vtables of local classes.
1970
1971Fri Jun 14 18:13:36 1996 Jason Merrill <jason@yorick.cygnus.com>
1972
1973 * pt.c (tsubst_copy): Handle operator T.
1974
1975Wed Jun 12 17:52:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1976
1977 * init.c (build_delete): Move creation of PARMS inside test of
1978 TYPE_HAS_DESTRUCTOR, since it's never used outside of that block.
1979
1980Tue Jun 11 15:09:18 1996 Bob Manson <manson@charmed.cygnus.com>
1981
1982 * typeck.c (build_conditional_expr): Don't assume that
1983 the arguments to ?: are always pointers or records.
1984
1985Tue Jun 11 13:56:23 1996 Jason Merrill <jason@yorick.cygnus.com>
1986
1987 * decl2.c (import_export_decl): Still emit static/weak/comdat
1988 copies of inline template functions with -fno-implicit-templates.
1989
1990Tue Jun 11 11:42:13 1996 Bob Manson <manson@charmed.cygnus.com>
1991
1992 * init.c (build_delete): Determine the complete basetype
1993 path to the destructor we're calling.
1994
1995Fri Jun 7 15:30:10 1996 Bob Manson <manson@charmed.cygnus.com>
1996
1997 * decl.c (build_enumerator): Always copy the INTEGER_CST used to
1998 initialize the enum, because we really and truly don't know where
1999 it came from.
2000 (start_enum): Don't copy integer_zero_node because
2001 build_enumerator will do it.
2002
2003Fri Jun 7 11:11:09 1996 Jason Merrill <jason@yorick.cygnus.com>
2004
2005 * decl.c (finish_function): Do access control on base destructors.
2006
2007 * pt.c (tsubst, case FUNCTION_DECL): Set up
2008 IDENTIFIER_GLOBAL_VALUE for member functions so pushdecl doesn't
2009 hose us.
2010
2011Fri Jun 7 10:37:33 1996 Mike Stump <mrs@cygnus.com>
2012
2013 * cvt.c (build_up_reference): If we have already extended the
2014 lifetime of the temporary, don't try it again.
2015 * typeck.c (c_expand_return): Don't try and convert the return
2016 value twice when we want a reference, once is enough.
2017
a0128b67
MS
2018Tue Jun 4 15:41:45 1996 Jason Merrill <jason@yorick.cygnus.com>
2019
2020 * pt.c (tsubst_expr, case DECL_STMT): Don't pass
2021 LOOKUP_ONLYCONVERTING at all for now.
2022
2023 * search.c (add_conversions): Put the conversion function in
2024 TREE_VALUE, the basetype in TREE_PURPOSE.
2025 * cvt.c (build_type_conversion): Adjust.
2026 * cvt.c (build_expr_type_conversion): Adjust.
2027 * call.c (user_harshness): Adjust.
2028
2029Mon Jun 3 15:30:52 1996 Jason Merrill <jason@yorick.cygnus.com>
2030
2031 * method.c (emit_thunk): Pretend this is a FUNCTION_DECL for the
2032 backend's benefit.
2033
14548a19
MS
2034Mon Jun 10 18:58:19 1996 Mike Stump <mrs@cygnus.com>
2035
2036 * except.c (expand_start_catch_block): Add a dummy region, if we
2037 get an error, so that we can avoid core dumping later.
2038
a0128b67
MS
2039Fri May 31 14:56:13 1996 Mike Stump <mrs@cygnus.com>
2040
2041 * cp-tree.h (OFFSET_REF): Remove.
2042 * tree.def (CP_OFFSET_REF): Rename to OFFSET_REF.
2043 * expr.c (cplus_expand_expr): Cleanup callers of expand_expr.
d11ad92e
MS
2044 * init.c (expand_aggr_init_1): Likewise.
2045 (build_new): Likewise.
2046 * typeck.c (expand_target_expr): Likewise.
a0128b67
MS
2047
2048Fri May 31 14:22:08 1996 Jason Merrill <jason@yorick.cygnus.com>
2049
2050 * typeck.c (build_modify_expr): Don't use TREE_VALUE on a
2051 TARGET_EXPR.
2052
e349ee73
MS
2053Wed May 29 17:04:33 1996 Mike Stump <mrs@cygnus.com>
2054
2055 * cvt.c (build_up_reference): Redo how and when temporaries are
2056 created.
2057 * decl.c (grok_reference_init): Don't try and be smart about
2058 running cleanups.
2059
2060Wed May 29 16:02:08 1996 Mike Stump <mrs@cygnus.com>
2061
2062 * cvt.c (build_up_reference): Add NULL_TREE to all calls to build
2063 (TARGET_EXPR...), now that it has 4 arguments.
d11ad92e 2064 * tree.c (build_cplus_new): Likewise.
e349ee73
MS
2065
2066Thu May 23 16:40:30 1996 Jason Merrill <jason@yorick.cygnus.com>
2067
2068 * error.c (dump_expr, case CAST_EXPR): Handle T() properly.
2069
2070 * pt.c (instantiate_decl): Don't call push/pop_cp_function_context.
2071 * decl.c (struct saved_scope): Remove named_labels,
2072 {base,member}_init_list.
2073 (maybe_push_to_top_level): Don't set them. Call
2074 push_cp_function_context if appropriate.
2075 (pop_from_top_level): Likewise.
2076
2077 * method.c (do_build_assign_ref): Remove obsolete check of
2078 TYPE_HAS_ASSIGN_REF (basetype).
2079
2080 * decl.c (grokfndecl): Diagnose user definition of
2081 implicitly-declared methods.
2082
2083Thu May 23 12:13:08 1996 Bob Manson <manson@charmed.cygnus.com>
2084
2085 * method.c (do_build_copy_constructor): Add code to give
2086 meaningful error messages instead of crashing.
2087 (do_build_assign_ref): Don't synthesize assignment operators for
2088 classes containing reference or const members.
2089
2090 * class.c (struct base_info): Remove cant_synth_copy_ctor
2091 and cant_synth_asn_ref.
2092 (finish_base_struct): Remove the code that tries to conditionalize
2093 synthesis of copy constructors & assignment operators based on
2094 access permissions. Instead, let it fail when it tries to
2095 synthesize the copy constructor. This will give meaningful error
2096 messages instead of silently generating code to perform a bitcopy.
2097
2098Wed May 22 11:45:19 1996 Bob Manson <manson@charmed.cygnus.com>
2099
2100 * lex.c (real_yylex): Remove old-n-crufty #if 0 code for
2101 determining types for constant values.
2102
2103 * decl.c (struct named_label_list): Use instead of stuffing
2104 random items into a TREE_LIST node.
2105 (named_label_uses): Use the new struct.
d11ad92e
MS
2106 (poplevel): Likewise.
2107 (lookup_label): Likewise.
e349ee73
MS
2108 (define_label): Add an error message to tell the user the line
2109 where the goto is located in addition to the destination of the
2110 goto.
2111 (init_decl_processing): Use NULL instead of NULL_TREE to initialize
2112 named_label_uses.
d11ad92e 2113 (finish_function): Likewise.
e349ee73
MS
2114
2115 (start_decl): Complain about defining a static data member
2116 in a different type from which it was declared.
2117
2118Wed May 22 09:33:23 1996 Jason Merrill <jason@yorick.cygnus.com>
2119
2120 * cvt.c (build_expr_type_conversion): Adjust.
2121
2122Tue May 21 11:21:56 1996 Jason Merrill <jason@yorick.cygnus.com>
2123
2124 * call.c (build_method_call): Always convert 'this' to the
2125 appropriate type.
2126
2127 * search.c (add_conversions): Put the conversion function in
2128 TREE_VALUE, the type in TREE_PURPOSE.
2129 * cvt.c (build_type_conversion): Adjust.
2130 * call.c (user_harshness): Adjust.
2131
2132 * method.c (emit_thunk): Call temporary_allocation and
2133 permanent_allocation around the ASM_OUTPUT_MI_THUNK case, too.
2134
2135 * tree.c (build_cplus_array_type): Handle tweaking of
2136 TYPE_MAIN_VARIANT here.
2137 * typeck.c (common_type): Not here.
2138
2139 * typeck.c (complete_type): Only try to complete an array type if
2140 it has a domain.
2141
2142Mon May 20 14:55:59 1996 Jason Merrill <jason@yorick.cygnus.com>
2143
2144 * decl.c (grokvardecl): Call complete_type.
2145 (grokdeclarator): Call complete_type for PARM_DECLs.
2146
2147Fri May 17 16:41:17 1996 Jason Merrill <jason@yorick.cygnus.com>
2148
2149 * pt.c (instantiate_class_template): Re-set
2150 CLASSTYPE_GOT_SEMICOLON after calling finish_struct_1.
2151
2152Fri May 17 14:56:55 1996 Mike Stump <mrs@cygnus.com>
2153
2154 * cp-tree.h (cp_expand_decl_cleanup): Remove, the backend is now
2155 smart enough to do it right.
d11ad92e 2156 * tree.c (cp_expand_decl_cleanup): Likewise.
e349ee73
MS
2157 * decl.c (cp_finish_decl): Use expand_decl_cleanup instead of
2158 cp_expand_decl_cleanup.
d11ad92e
MS
2159 (store_parm_decls): Likewise.
2160 (hack_incomplete_structures): Likewise.
2161 * except.c (push_eh_cleanup): Likewise.
e349ee73
MS
2162
2163Fri May 17 13:13:51 1996 Mike Stump <mrs@cygnus.com>
2164
2165 * expr.c (expand_expr, cond UNSAVE_EXPR): Move from the C++
2166 frontend to the backend where it belongs.
d11ad92e
MS
2167 * tree.c (unsave_expr): Likewise.
2168 (unsave_expr_now): Likewise.
2169 * tree.def (UNSAVE_EXPR): Likewise.
2170 * cp-tree.h (unsave_expr): Likewise.
2171 (unsave_expr_now): Likewise.
e349ee73
MS
2172
2173Fri May 17 11:02:41 1996 Mike Stump <mrs@cygnus.com>
2174
2175 * init.c (emit_base_init): Make sure the partial EH cleanups live
2176 on the function_obstack.
2177
ce122a86
MS
2178Thu May 16 15:29:33 1996 Bob Manson <manson@charmed.cygnus.com>
2179
2180 * expr.c (do_case): Don't try to dereference null TREE_TYPEs
2181 when checking for pointer types.
2182
2183Thu May 16 13:38:58 1996 Jason Merrill <jason@yorick.cygnus.com>
2184
2185 * pt.c (instantiate_class_template): Remove obsolete check for
2186 access declarations.
2187
2188Thu May 16 13:34:15 1996 Mike Stump <mrs@cygnus.com>
2189
2190 * call.c (build_overload_call): Simplify calls to
2191 build_overload_call by removing last parameter.
d11ad92e
MS
2192 (build_method_call): Likewise.
2193 * cp-tree.h: Likewise.
2194 * method.c (build_opfncall): Likewise.
2195 * typeck.c (build_x_function_call): Likewise.
ce122a86
MS
2196
2197Thu May 16 13:15:43 1996 Mike Stump <mrs@cygnus.com>
2198
2199 * call.c (default_parm_conversions): Factor out common code.
2200 (build_method_call): Use it.
2201 (build_overload_call_real): Use it.
2202
4ac14744
MS
2203Wed May 15 14:46:14 1996 Mike Stump <mrs@cygnus.com>
2204
2205 * call.c (build_method_call): Allow implicit & on METHOD_TYPEs,
2206 but pedwarn as the code is bogus.
d11ad92e 2207 * typeck.c (decay_conversion): Likewise.
4ac14744
MS
2208 (build_function_call_real): Use build_addr_func instead of
2209 default_conversion. Don't allow pointer-to-method functions down
2210 here.
2211 (build_unary_op): Use real pointer-to-member functions instead of
2212 fake ones.
2213 (build_ptrmemfunc): Use build_addr_func instead of build_unary_op.
2214 (convert_for_assignment): Removed some obsolete code.
2215 * decl2.c (reparse_absdcl_as_expr): Pass current_class_ref to
2216 build_x_function_call instead of current_class_ptr. Only call
2217 digest_init once on an initializer, we do this just checking
2218 TREE_TYPE.
2219 (build_expr_from_tree): Pass current_class_ref to
2220 build_x_function_call instead of current_class_ptr.
d11ad92e
MS
2221 * init.c (build_member_call): Likewise.
2222 * pase.y: Likewise.
4ac14744
MS
2223 * error.c (dump_expr): Handle OFFSET_REFs better.
2224 * pt.c (unify): Handle pointer-to-member functions better.
2225 * decl.c (finish_function): Clear out current_class_ref just like
2226 we do for current_class_ptr.
2227
2228 * typeck.c (get_delta_difference): Handle virtual bases better.
2229
2230Tue May 14 16:37:37 1996 Jason Merrill <jason@yorick.cygnus.com>
2231
2232 * sig.c (build_signature_table_constructor): Use the delta for
2233 the original basetype for this virtual function with thunks.
2234 (build_signature_method_call): We still need to adjust 'this'
2235 with thunks.
2236
2237Tue May 14 16:27:25 1996 Mike Stump <mrs@cygnus.com>
2238
2239 * call.c (build_addr_func): New routine. Used to get the `real'
2240 address of a function or a method. Needed to avoid getting a
2241 pointer-to-member function.
2242 (build_call): New routine to build CALL_EXPRs.
2243 (build_method_call): Use it.
d11ad92e
MS
2244 * cvt.c (convert_to_aggr): Likewise.
2245 * typeck.c (build_function_call_real): Likewise.
4ac14744
MS
2246 * sig.c (build_signature_table_constructor): Use build_addr_func.
2247 * cp-tree.h (build_call, build_addr_func): Declare them.
2248
2249Tue May 14 12:47:47 1996 Mike Stump <mrs@cygnus.com>
2250
2251 * cp-tree.h (LOOKUP_AGGR): Remove, unused.
2252 * parse.y: Remove uses of LOOKUP_AGGR.
2253
2254Tue May 14 12:07:51 1996 Mike Stump <mrs@cygnus.com>
2255
2256 * *.[chy]: Rename current_class_decl to current_class_ptr, and
2257 C_C_D to current_class_ref.
2258
2259Mon May 13 16:55:23 1996 Jason Merrill <jason@yorick.cygnus.com>
2260
2261 * call.c (convert_harshness): Tighten up pointer conversions.
2262
2263Sat May 11 04:33:50 1996 Doug Evans <dje@canuck.cygnus.com>
2264
2265 * decl2.c (finish_vtable_vardecl): Surround DECL_ONE_ONLY with ifdef.
2266 (finish_file): Likewise.
2267
2268Fri May 10 11:09:57 1996 Jason Merrill <jason@yorick.cygnus.com>
2269
2270 * cvt.c (convert_fn_ptr): We don't use thunks for pmfs.
2271
2272 * method.c (emit_thunk): Set flag_omit_frame_pointer in default
2273 code.
2274
2275Thu May 9 18:18:30 1996 Jason Merrill <jason@yorick.cygnus.com>
2276
2277 * decl2.c: Turn on thunks by default where supported.
2278
4dabb379
MS
2279Tue May 7 20:39:57 1996 Mike Stump <mrs@cygnus.com>
2280
2281 * cp-tree.h (build_overload_call_maybe): Removed.
2282 * call.c (build_overload_call_real): Invert meaning of last arg to
2283 be require_complete.
d11ad92e 2284 (build_overload_call): Likewise.
4dabb379
MS
2285 * typeck.c (build_x_function_call): Use build_overload_call_real
2286 instead of build_overload_call_maybe.
2287
a50f0918
MS
2288Mon May 6 01:23:32 1996 Jason Merrill <jason@yorick.cygnus.com>
2289
2290 * decl2.c (finish_file): Don't try to emit functions that haven't
2291 been compiled.
2292
2293Fri May 3 09:30:13 1996 Jason Merrill <jason@yorick.cygnus.com>
2294
2295 * decl2.c (finish_vtable_vardecl): Oops.
2296
2297 * decl.c (maybe_push_to_top_level): Do save previous_class_*.
2298 Also store the bindings from previous_class_values.
2299 (pop_from_top_level): Restore them.
2300
2301Thu May 2 21:56:49 1996 Jason Merrill <jason@yorick.cygnus.com>
2302
2303 * decl2.c (finish_vtable_vardecl): Only write out vtable if its
2304 symbol has been referenced.
2305 (finish_file): Re-join synthesis/vtable loop with inline emission
2306 loop, disable inlining when an inline is output.
2307
2308Thu May 2 17:20:02 1996 Mike Stump <mrs@cygnus.com>
2309
2310 * except.c (init_exception_processing): Setup saved_in_catch.
2311 (push_eh_cleanup): Reset __eh_in_catch.
2312 (expand_start_catch_block): Set __eh_in_catch.
2313
2314Thu May 2 16:21:17 1996 Mike Stump <mrs@cygnus.com>
2315
2316 * except.c (push_eh_cleanup): Add tracking for whether or not we
2317 have an active exception object.
2318 (expand_builtin_throw): Use it to make sure a rethrow without an
2319 exception object is caught.
2320
2321Thu May 2 11:26:41 1996 Jason Merrill <jason@yorick.cygnus.com>
2322
2323 * decl.c (maybe_push_to_top_level): Clear out class-level bindings
2324 cache.
2325
809c8c30
JM
2326Wed May 1 11:26:52 1996 Jason Merrill <jason@yorick.cygnus.com>
2327
2328 * decl2.c (finish_file): Also use sentries for vars with
2329 DECL_ONE_ONLY or DECL_WEAK set (should any such happen to be
2330 created).
2331
2332 * lex.c (handle_cp_pragma): Disable #pragma
2333 interface/implementation if SUPPORTS_ONE_ONLY > 1.
2334
2335Tue Apr 30 11:25:46 1996 Jason Merrill <jason@yorick.cygnus.com>
2336
2337 * method.c (emit_thunk): Wrap default case in
2338 temporary/permanent_allocation.
2339
2340 * method.c (make_thunk): Use DECL_ONE_ONLY.
2341 (emit_thunk): Call assemble_end_function.
2342
46b02c6d
MS
2343Mon Apr 29 15:38:29 1996 Jason Merrill <jason@yorick.cygnus.com>
2344
2345 * decl2.c (import_export_vtable): Use DECL_ONE_ONLY.
d11ad92e 2346 (import_export_decl): Likewise.
46b02c6d
MS
2347 (finish_prevtable_vardecl): Disable vtable hack if
2348 SUPPORTS_ONE_ONLY > 1.
2349
2350Mon Apr 29 14:32:47 1996 Mike Stump <mrs@cygnus.com>
2351
2352 * typeck.c (build_modify_expr): PREINCREMENT_EXPR and
2353 PREDECREMENT_EXPRs take two arguments, not one.
2354
2355Mon Apr 29 00:27:53 1996 Jason Merrill <jason@yorick.cygnus.com>
2356
2357 * class.c (build_vtable_entry): Don't build thunks for abstract
2358 virtuals.
2359
2360 * lex.c (real_yylex): Fix handling of __PRETTY_FUNCTION__ like C
2361 frontend.
2362
2363Sat Apr 27 16:45:35 1996 Jason Merrill <jason@yorick.cygnus.com>
2364
2365 * class.c (set_rtti_entry): Use size_zero_node.
d11ad92e 2366 (build_vtable): Likewise.
46b02c6d
MS
2367
2368Sat Apr 27 14:48:57 1996 Jason Merrill <jason@phydeaux.cygnus.com>
2369
2370 * class.c (finish_struct_1): Pass size_zero_node to set_rtti_entry.
d11ad92e 2371 (prepare_fresh_vtable): Likewise.
46b02c6d
MS
2372
2373Fri Apr 26 13:14:14 1996 Jason Merrill <jason@yorick.cygnus.com>
2374
2375 * method.c (emit_thunk): Call mark_used on the target function.
2376
2377 * call.c (build_method_call): Don't warn about pending templates.
2378
c7690c68
JM
2379Thu Apr 25 14:55:44 1996 Jason Merrill <jason@yorick.cygnus.com>
2380
2381 * decl2.c (finish_file): Fix list walking logic.
2382
46b02c6d
MS
2383 * typeck2.c (check_for_new_type): Only warn if -pedantic.
2384
2385Wed Apr 24 15:41:15 1996 Bob Manson <manson@charmed.cygnus.com>
2386
2387 * class.c (finish_struct_1): Remove old code for
2388 dont_allow_type_definitions.
d11ad92e 2389 * cp-tree.h: Likewise.
46b02c6d
MS
2390 * spew.c: Make sure cp-tree.h is included before parse.h, so the
2391 definition of flagged_type_tree is found before it is used.
d11ad92e 2392 * lex.c: Likewise.
46b02c6d
MS
2393 * parse.y: Added the ftype member to the type union, and changed a
2394 number of rules to use it instead of ttype. Added calls to
2395 check_for_new_type() as appropriate.
2396 * typeck2.c (check_for_new_type): New function for checking
2397 if a newly defined type appears in the specified tree.
2398 * cp-tree.h: Add new type flagged_type_tree. Add a prototype
2399 for check_for_new_type().
2400
67d743fe
MS
2401Wed Apr 24 00:36:21 1996 Jason Merrill <jason@yorick.cygnus.com>
2402
c7690c68
JM
2403 * decl2.c (finish_file): Only use a sentry if the decl is public.
2404
67d743fe
MS
2405 * pt.c (tsubst_expr, DECL_STMT): If we don't have an initializer,
2406 don't pass LOOKUP_ONLYCONVERTING.
2407
2408Tue Apr 23 17:18:47 1996 Bob Manson <manson@charmed.cygnus.com>
2409
2410 * typeck.c (common_type): Fix the ARRAY_TYPE case so it
2411 properly keeps track of const and volatile type modifiers.
2412
2413Tue Apr 23 10:52:56 1996 Jason Merrill <jason@yorick.cygnus.com>
2414
2415 * tree.c (cp_tree_equal): C++ version of simple_cst_equal.
2416 * pt.c (comp_template_args): Use it.
2417
2418 * rtti.c (get_tinfo_fn, build_dynamic_cast, expand_*_desc): Call
2419 assemble_external for artificial function decls.
2420
2421 * decl.c (cp_finish_decl): Oops.
2422
2423Mon Apr 22 17:28:27 1996 Jason Merrill <jason@yorick.cygnus.com>
2424
2425 * decl2.c (import_export_decl): Put static data member templates
2426 into common storage, or make them weak, depending on whether they
2427 are dynamically or statically initialized.
2428 (get_sentry): New function.
2429 (finish_file): Do import_export_decl for static data members before
2430 building the init/fini functions. Don't init/fini a variable that's
2431 EXTERNAL. Use a sentry for variables in common. Fix mismatching
2432 push/pop_temp_slots.
2433 * decl.c (cp_finish_decl): If DECL_NOT_REALLY_EXTERN, do the
2434 expand_static_init thang.
2435 * method.c (get_id_2): New function.
2436
2437Mon Apr 22 15:32:45 1996 Bob Manson <manson@charmed.cygnus.com>
2438
2439 * parse.y (empty_parms): Make sure we use C++-style prototypes
2440 when we're declaring member functions.
2441
2442Sun Apr 21 10:08:22 1996 Jason Merrill <jason@yorick.cygnus.com>
2443
2444 * Makefile.in (CONFLICTS): 16 s/r conflicts.
2445 * parse.y (self_template_type): New nonterminal.
2446
a80e4195
MS
2447Thu Apr 18 08:56:54 1996 Jason Merrill <jason@yorick.cygnus.com>
2448
2449 * decl.c (make_typename_type): Handle getting a TYPE_DECL for a
2450 name.
2451 * parse.y (base_class.1): Allow 'typename foo::bar'.
2452
2453 * lex.c (check_newline): Remove #pragma code that plays with the
2454 input stream, since we now deal with tokens. Clear nextchar when
2455 we're done.
2456 (handle_cp_pragma): Use real_yylex.
2457 (handle_sysv_pragma): Don't do skipline here. Only call real_yylex
2458 in one place.
2459
2460 * lex.c (check_for_missing_semicolon): Handle SELFNAME.
2461
2462 * lex.c (handle_cp_pragma): Fix "#pragma implementation".
2463
2464Wed Apr 17 16:51:33 1996 Jason Merrill <jason@yorick.cygnus.com>
2465
2466 * parse.y: New token SELFNAME for potential constructor.
2467 * spew.c (yylex): Handle it.
2468 * lex.c (identifier_type): Produce it.
2469
2470 * parse.y (complete_type_name): In :: case, don't push class binding.
d11ad92e 2471 (complex_type_name): Likewise.
a80e4195
MS
2472
2473Wed Apr 17 15:02:40 1996 Mike Stump <mrs@cygnus.com>
2474
2475 * typeck.c (build_reinterpret_cast): Handle pointer to member
2476 functions.
2477
2478Wed Apr 17 12:28:26 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
f72bbc37
BK
2479
2480 * lex.c (handle_cp_pragma): New function, with decl, doing the cc1plus
a80e4195 2481 pragmas.
f72bbc37 2482 (check_newline): Put the vtable/unit/implementation/interface pragma
a80e4195 2483 code into handle_cp_pragma, replacing it with a call.
f72bbc37 2484 (handle_sysv_pragma): Give int return type, and take FINPUT and TOKEN
a80e4195
MS
2485 args. Get the next token after handling the pragma token.
2486
2487Wed Apr 17 10:28:34 1996 Jason Merrill <jason@yorick.cygnus.com>
2488
2489 * cvt.c (cp_convert_to_pointer): Avoid doing base analysis on pmfs.
d11ad92e 2490 (convert_to_pointer_force): Likewise.
a80e4195
MS
2491
2492 * init.c (build_new): Fix array new without -fcheck-new.
2493
2494Tue Apr 16 13:44:58 1996 Jason Merrill <jason@yorick.cygnus.com>
2495
2496 * cp-tree.h, call.c, class.c, decl.c, parse.y, pt.c, rtti.c,
2497 tree.c: Lose TYPE_NESTED_NAME.
2498
2499 * parse.y (nested_name_specifier_1): Don't treat non-identifiers
2500 as identifiers.
2501
2502 * tree.def: Add VEC_INIT_EXPR.
2503 * expr.c (cplus_expand_expr): Handle it.
2504 * init.c (build_new): Use it instead of the RTL_EXPR nastiness and
2505 the extra file-scope symbol nastiness.
2506
2507Mon Apr 15 16:21:29 1996 Jason Merrill <jason@yorick.cygnus.com>
2508
2509 * method.c (make_thunk): Thunks are static.
2510 (emit_thunk): Use ASM_OUTPUT_MI_THUNK if it's defined.
2511
2512 * decl2.c (mark_vtable_entries): Emit thunks as needed.
2513 (finish_file): Don't emit them here.
2514
2515Sun Apr 14 11:34:39 1996 Jason Merrill <jason@yorick.cygnus.com>
2516
2517 * rtti.c (build_dynamic_cast): Handle null pointers.
2518 (ifnonnull): New function.
f72bbc37 2519
6b5fbb55
MS
2520Fri Apr 12 09:08:27 1996 Bob Manson <manson@charmed.cygnus.com>
2521
a80e4195
MS
2522 * call.c (build_method_call): Remember the original basetype we
2523 were called with. Give an error message instead of trying
2524 (incorrectly) to call a non-static member function through a
2525 non-inherited class.
2526
6b5fbb55
MS
2527 * search.c (expand_upcast_fixups): Mark the new fixup as
2528 DECL_ARTIFICIAL.
2529
2530Thu Apr 11 03:57:09 1996 Jason Merrill <jason@yorick.cygnus.com>
2531
2532 * init.c (build_new): Use a TARGET_EXPR for alloc_expr.
2533
2534 * class.c (set_rtti_entry): Fix for thunks.
2535
2536 * decl2.c (import_export_decl): Still emit typeinfo fns for
2537 cv-variants of builtin types.
2538
2539 * rtti.c (expand_class_desc): Set up base_info_type_node here.
2540 (init_rtti_processing): Instead of here.
2541
2542Wed Apr 10 14:17:13 1996 Jason Merrill <jason@yorick.cygnus.com>
2543
2544 * rtti.c (init_rtti_processing): Do init regardless of -frtti.
2545 (build_typeid): Only complain about taking dynamic typeid without
2546 -frtti.
2547
2548 * decl2.c: flag_rtti defaults to 1.
2549
2550 * rtti.c (get_tinfo_var): The general class case is now smaller.
2551 (init_rtti_processing): Pack the latter three fields of base_info
2552 into 32 bits.
2553
2554Wed Apr 10 13:50:14 1996 Mike Stump <mrs@cygnus.com>
2555
2556 * init.c (expand_member_init): Don't dump if name is NULL_TREE.
2557
2558Wed Apr 10 12:56:02 1996 Mike Stump <mrs@cygnus.com>
2559
2560 * search.c (make_memoized_table_entry): Undefer the pop, if necessary.
2561 (push_memoized_context): Split out code to undefer pop_type_level to
2562 (clear_memoized_cache): here.
2563 (pop_memoized_context): We can only handle one layer of deferral of
2564 pop_type_level so clear the cache, if there was a previous level.
2565
2566Tue Apr 9 23:06:09 1996 Jason Merrill <jason@yorick.cygnus.com>
2567
2568 * rtti.c (init_rtti_processing): Build up base_info_type_node.
2569 (expand_class_desc): Use one pointer to an array of base_info
2570 structs, passed using a CONSTRUCTOR.
2571
2572Tue Apr 9 14:20:57 1996 Mike Stump <mrs@cygnus.com>
2573
2574 * class.c (build_vbase_path): Remove block extern for
2575 flag_assume_nonnull_objects here.
2576 (build_vfn_ref): Split out functionality into build_vtbl_ref.
2577 (build_vtbl_ref): New routine.
2578 (build_vtable): Set up rtti info here.
2579 (add_virtual_function): Note in CLASSTYPE_RTTI the best
2580 place where we can get the rtti pointers from to avoid having to
2581 search around for a place.
d11ad92e
MS
2582 (finish_base_struct): Likewise.
2583 (finish_struct_1): Likewise. Never create totally new vtables
2584 with totally new vtable pointers for rtti. Disable code to layout
2585 vtable pointers better until we want to break binary
2586 compatibility.
6b5fbb55
MS
2587 * rtti.c (build_headof_sub): New routine to convert down to a
2588 sub-object that has an rtti pointer in the vtable.
2589 (build_headof): Use it. Also, use build_vtbl_ref now to be more
2590 maintainable.
2591 (build_dynamic_cast): Make sure we have saved it, if we need to.
2592 * search.c (dfs_init_vbase_pointers): Disable code that deals with
2593 a more efficient vtable layout, enable later.
2594 * call.c (flag_assume_nonnull_objects): Moved declaration to
2595 * cp-tree.h: here. Declare build_vtbl_ref.
2596 * pt.c (instantiate_class_template): Use NULL_TREE instead of 0 in
2597 function calls that want a tree.
2598
2599Tue Apr 9 12:10:26 1996 Jason Merrill <jason@yorick.cygnus.com>
2600
2601 * rtti.c (build_dynamic_cast): Handle downcasting to X* given
2602 other X subobjects in the most derived type. Ack.
2603
2604 * rtti.c (build_dynamic_cast): No need to strip cv-quals here,
2605 get_typeid will do it for us.
2606 (get_typeid_1): Break out call-building for expand_*_desc to use.
2607 (get_typeid): Call it.
d11ad92e 2608 (expand_*_desc): Likewise.
6b5fbb55
MS
2609 * decl.c (init_decl_processing): Don't set TYPE_BUILT_IN on char *
2610 and void *.
2611 (init_decl_processing): Lose builtin_type_tdescs lossage.
2612 * decl2.c (finish_vtable_vardecl): Remove obsolete code.
2613
2614Mon Apr 8 17:23:23 1996 Bob Manson <manson@charmed.cygnus.com>
2615
2616 * pt.c (tsubst): When calling set_nested_typename, use
2617 TYPE_NESTED_NAME (current_class_type) instead of
2618 current_class_name.
2619
d11ad92e
MS
2620 * decl.c (pushdecl): Likewise.
2621 (pushdecl_class_level): Likewise.
6b5fbb55
MS
2622 (grokdeclarator): Use NULL_TREE instead of 0 in the call to
2623 set_nested_typename.
2624
2625Sun Apr 7 10:44:31 1996 Jason Merrill <jason@yorick.cygnus.com>
2626
2627 * rtti.c (synthesize_tinfo_fn): Handle arrays.
2628
2629 * cp-tree.h (DECL_REALLY_EXTERN): New macro.
2630
2631Sat Apr 6 13:56:27 1996 Jason Merrill <jason@yorick.cygnus.com>
2632
2633 * rtti.c (throw_bad_cast): Use entry point __throw_bad_cast.
2634 (init_rtti_processing): Lose bad_cast_type.
2635 (build_dynamic_cast): Use throw_bad_cast.
2636
2637 * rtti.c (synthesize_tinfo_fn): Handle enums and pmfs.
2638
2639 * decl2.c (finish_file): Don't synthesize artificial functions
2640 that are external and not inline.
2641
2642 * rtti.c (get_tinfo_fn): If at_eof, call import_export_decl.
2643
2644 * decl2.c (finish_file): Handle having new inlines added to
2645 saved_inlines by synthesis.
2646
2647 * rtti.c (get_bad_cast_node): Don't require <typeinfo>.
2648
2649Fri Apr 5 17:02:09 1996 Jason Merrill <jason@yorick.cygnus.com>
2650
2651 RTTI rewrite to initialize nodes as needed, not require that
2652 users #include <typeinfo>, complete functionality and reduce wasted
2653 space.
2654 * rtti.c (init_rtti_processing): New fn.
2655 (build_typeid): The vtable entry is now a function.
2656 (get_tinfo_var): New fn.
d11ad92e 2657 (get_tinfo_fn): Likewise.
6b5fbb55
MS
2658 (get_typeid): Use it.
2659 (build_dynamic_cast): Declare and use entry point __dynamic_cast.
2660 (build_*_desc): Rename to expand_*_desc and rewrite to use entry
2661 points __rtti_*.
2662 (add_uninstantiated_desc, get_def_to_follow, build_t_desc): Lose.
2663 (synthesize_tinfo_fn): New fn.
2664 * method.c (build_t_desc_overload): Lose.
2665 (build_overload_with_type): More generic.
2666 * decl.c (init_decl_processing): Call init_rtti_processing.
2667 * class.c (set_rtti_entry): Use get_tinfo_fn.
2668 * decl2.c (mark_vtable_entries): Mark the rtti function.
2669 (finish_prevtable_vardecl): Don't build_t_desc.
2670 (import_export_decl): Handle tinfo functions.
d11ad92e 2671 (finish_file): Likewise.
6b5fbb55
MS
2672 * typeck.c (inline_conversion): New fn.
2673 (build_function_call_real): Use it.
2674 * cp-tree.h: Add decls.
2675
2676 * method.c (hack_identifier): Also convert component_refs from
2677 references.
2678
2679 * lex.c (cons_up_default_function): Use the type, not the name, in
2680 declspecs.
2681
2682 * decl2.c (import_export_vtable): Fix weak vtables.
2683
2684Fri Apr 5 13:30:17 1996 Bob Manson <manson@charmed.cygnus.com>
2685
2686 * search.c (get_base_distance_recursive): Fix access checks for
2687 protected bases.
2688
2689Fri Apr 5 11:02:06 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2690
2691 * call.c (unary_complex_lvalue): Delete unneeded decl, it's in
2692 cp-tree.h.
2693 (convert_harshness): Add prototypes wrapped by PROTO.
2694 * decl2.c (grok_function_init): Likewise.
2695 (do_toplevel_using_decl): Change to void return type.
2696 * class.c (build_vtable_entry): Remove decl of make_thunk.
2697 (merge_overrides): Fix order of arg definitions.
2698 (finish_vtbls): Likewise.
2699 (fixup_vtable_deltas): Likewise.
2700 (modify_all_direct_vtables): Likewise.
2701 (modify_all_indirect_vtables): Likewise.
2702 * search.c (get_base_distance_recursive): Likewise.
2703 (get_abstract_virtuals_1): Likewise.
2704 (fixup_virtual_upcast_offsets): Likewise.
2705 (lookup_fnfields_1): Add prototypes wrapped by PROTO.
2706 * init.c (perform_member_init): Fix order of arg definitions.
2707 (expand_aggr_init_1): Add prototypes wrapped by PROTO.
2708 * cp-tree.h (make_thunk): Add decl.
2709 (overload_template_name, push_template_decl): Add decls.
2710 (do_toplevel_using_decl): Change to void return type.
2711 (vec_binfo_member): Add decl.
2712
cdf5b885
MS
2713Thu Apr 4 13:33:10 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2714
2715 * typeck.c (mark_addressable, convert_for_assignment,
2716 convert_for_initialization, pointer_int_sum, pointer_diff,
2717 unary_complex_lvalue): Add prototypes wrapped by PROTO.
2718 (convert_sequence): #if 0 fn decl, since definition also is.
2719
2720Thu Apr 4 11:00:53 1996 Mike Stump <mrs@cygnus.com>
2721
2722 * rtti.c (build_dynamic_cast): Make sure we strip qualifiers on
2723 cast to pointer types for type searching.
2724
2725Wed Apr 3 17:10:57 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2726
2727 * typeck.c (get_delta_difference): Use cp_error, not error, in the
2728 case where BINFO == 0.
2729
2730Wed Apr 3 12:01:02 1996 Mike Stump <mrs@cygnus.com>
2731
2732 * call.c (build_method_call): Fix wording of error messages so
2733 constructors come out right.
2734
2735Tue Apr 2 16:06:59 1996 Bob Manson <manson@charmed.cygnus.com>
2736
2737 * decl.c (push_overloaded_decl): Don't warn about hidden
2738 constructors when both the type and the function are declared
2739 in a system header file.
2740
c91a56d2
MS
2741Mon Apr 1 09:03:13 1996 Bob Manson <manson@charmed.cygnus.com>
2742
2743 * class.c (finish_struct_1): Propagate the TYPE_PACKED
2744 flag for the type to the type's fields.
2745
2746Sat Mar 30 12:14:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2747
2748 * parse.y (complex_parmlist, ELLIPSES): Take out ARM-based warning.
2749
2750Fri Mar 29 15:51:36 1996 Bob Manson <manson@charmed.cygnus.com>
2751
2752 * class.c (base_info, finish_base_struct): Replace
2753 needs_virtual_dtor with base_has_virtual.
2754
2755 (finish_struct_1): Remove the old code that tried to make default
2756 destructors virtual. Use base_has_virtual when checking if we need
2757 to add a vtable entry for the rtti code.
2758
2759Fri Mar 29 14:02:36 1996 Jason Merrill <jason@yorick.cygnus.com>
2760
2761 * pt.c (push_template_decl): Complain about template decl with
2762 inappropriate declaration.
2763
2764Fri Mar 29 12:15:35 1996 Bob Manson <manson@charmed.cygnus.com>
2765
2766 * typeck.c (build_x_unary_op): Remove bogus check for taking
2767 the address of a member function.
2768
2769Fri Mar 29 11:56:02 1996 Jason Merrill <jason@yorick.cygnus.com>
2770
2771 * parse.y (constructor_declarator): Only push the class if
2772 we are not already in the class.
2773
2774Fri Mar 29 09:41:02 1996 Jeffrey A. Law <law@cygnus.com>
6752b7d4
JL
2775
2776 * method.c (emit_thunk): Remove current_call_is_indirect nonsense.
2777 Add additional argument to INIT_CUMULATIVE_ARGS.
2778
c91a56d2
MS
2779Thu Mar 28 16:41:39 1996 Jason Merrill <jason@yorick.cygnus.com>
2780
2781 * decl.c (shadow_tag): Fix error about anon union with methods.
2782
2783 * parse.y (self_reference): Only generate a self-reference if this
2784 is a non-template class.
2785 (opt.component_decl_list): Only use it if it was generated.
2786
2787 * parse.y (component_decl_1): Use constructor_declarator.
d11ad92e
MS
2788 (fn.def2): Likewise.
2789 (notype_component_declarator0): Likewise.
c91a56d2
MS
2790
2791Thu Mar 28 15:11:35 1996 Bob Manson <manson@charmed.cygnus.com>
2792
2793 * typeck.c (build_x_unary_op): Add checks for taking the address
2794 of a TARGET_EXPR or of a member function, and give appropriate
2795 warnings.
2796
2797Thu Mar 28 14:49:26 1996 Jason Merrill <jason@yorick.cygnus.com>
2798
2799 * pt.c (process_template_parm): Allow template type parms to be
2800 used as types for template const parms.
2801
2802Wed Mar 27 15:51:19 1996 Mike Stump <mrs@cygnus.com>
2803
2804 * init.c (expand_vec_init): Ensure the eh cleanups are on the
2805 function_obstack.
2806
2807Wed Mar 27 10:14:30 1996 Jason Merrill <jason@yorick.cygnus.com>
2808
2809 * decl.c (lookup_name_real): Be even more picky about the
2810 ambiguous lookup warning.
2811 (grokdeclarator): Tweak SCOPE_REF constructor declarators here.
2812 * parse.y (constructor_declarator): Rather than here.
2813
2814 * parse.y (constructor_declarator): New nonterminal.
2815 (fn.def1): Use it.
d11ad92e 2816 (explicit_instantiation): Likewise.
c91a56d2
MS
2817
2818Tue Mar 26 13:41:33 1996 Jason Merrill <jason@yorick.cygnus.com>
2819
2820 Add implicit declaration of class name at class scope.
2821 * decl.c (lookup_name_real): Restrict pedwarn about ambiguous lookup.
2822 * parse.y (self_reference): New nonterminal.
2823 (opt.component_decl_list): Use it.
2824 (fn.def1): Add nested_name_specifier type_name cases.
2825 * class.c (build_self_reference): New function.
2826 (finish_struct): Handle access_default later, move self-reference
2827 decl to the end.
2828 * pt.c (lookup_template_class): Handle getting a TYPE_DECL.
2829 * cp-tree.h: Adjust.
2830
2831 * pt.c (do_function_instantiation): Separate handling of member
2832 functions and non-member functions properly.
2833
2834Mon Mar 25 14:23:22 1996 Jason Merrill <jason@yorick.cygnus.com>
2835
2836 * pt.c (process_template_parm): Improve error for 'volatile class K'.
2837
2838 * class.c (finish_struct_1): Check the right slot for destructors.
2839
2840 * decl.c (start_enum): Complain about enum templates.
2841
2842Mon Mar 25 13:25:31 1996 Mike Stump <mrs@cygnus.com>
2843
2844 * init.c (resolve_offset_ref): Offset pointers to member data by one.
d11ad92e 2845 * typeck.c (unary_complex_lvalue): Likewise.
c91a56d2
MS
2846
2847Mon Mar 25 13:30:42 1996 Bob Manson <manson@charmed.cygnus.com>
2848
2849 * typeck.c (c_expand_return): Check for a returned local
2850 array name, similar to the check for an ADDR_EXPR.
2851
2852Mon Mar 25 13:07:19 1996 Jason Merrill <jason@yorick.cygnus.com>
2853
2854 * decl.c (cp_finish_decl): Don't build cleanups for static
2855 variables here.
2856
2857Fri Mar 22 17:57:55 1996 Mike Stump <mrs@cygnus.com>
2858
2859 * typeck.c (build_modify_expr): Fix error messages to be more
2860 accurate.
2861 * cp-tree.h (assop_as_string): Parallel to op_as_string, but for
2862 assignment operators.
d11ad92e 2863 * error.c (assop_as_string): Likewise. Add support for `%Q' for
c91a56d2
MS
2864 assignment operators.
2865
909e536a
MS
2866Fri Mar 22 13:48:29 1996 Jason Merrill <jason@yorick.cygnus.com>
2867
c91a56d2
MS
2868 * decl.c (grokdeclarator): Call bad_specifiers for typedefs. Also
2869 give an error if initialized. Pedwarn about nested type with the
2870 same name as its enclosing class.
2871
909e536a
MS
2872 * pt.c (tsubst, case TYPE_DECL): Set DECL_CONTEXT.
2873
2874 * typeck.c (require_complete_type): Be sure to instantiate the
2875 MAIN_VARIANT of the type.
2876
2877 * decl2.c (finish_file): Instantiate pending templates before
2878 processing static constructors and destructors.
2879
2880 * pt.c (instantiate_decl): Don't instantiate functions at toplevel
2881 unless at_eof.
2882
2883Fri Mar 22 09:30:17 1996 Bob Manson <manson@beauty.cygnus.com>
2884
2885 * decl2.c (delete_sanity): If error_mark_node is passed
2886 in as an expression, quit while we're ahead.
2887
2888 * decl.c (grokdeclarator): Give an error message if `friend'
2889 is combined with any storage class specifiers.
2890
fc378698
MS
2891Wed Mar 20 14:51:55 1996 Jason Merrill <jason@yorick.cygnus.com>
2892
2893 * parse.y (named_complex_class_head_sans_basetype): Don't crash on
2894 definition of nonexistent nested type.
2895
2896 * error.c (dump_decl, case TYPE_DECL): Fix decision for whether or
2897 not to say 'typedef'.
2898
2899Wed Mar 20 00:11:47 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2900
2901 * cp-tree.h (struct lang_type): Make search_slot a tree, not a char*.
2902 * search.c (dfs_walk, dfs_init_vbase_pointers,
2903 expand_upcast_fixups): Remove cast of CLASSTYPE_SEARCH_SLOT.
2904 (dfs_find_vbases): Remove cast for CLASSTYPE_SEARCH_SLOT init.
2905
2906Tue Mar 19 17:56:03 1996 Jason Merrill <jason@yorick.cygnus.com>
2907
2908 * except.c (build_throw): Support minimal parse.
2909 * pt.c (tsubst_copy): Support THROW_EXPR.
d11ad92e 2910 * decl2.c (build_expr_from_tree): Likewise.
fc378698
MS
2911
2912 * pt.c (mangle_class_name_for_template): Always allocate
2913 scratch_firstobj.
2914
2915Tue Mar 19 16:34:31 1996 Bob Manson <manson@beauty.cygnus.com>
2916
2917 * cvt.c (cp_convert_to_pointer): Give an appropriate error
2918 when trying to cast from an incomplete type.
2919
2920Tue Mar 19 16:00:33 1996 Jason Merrill <jason@yorick.cygnus.com>
2921
2922 * pt.c (instantiate_class_template): Don't bother setting up
2923 CLASSTYPE_TAGS explicitly, as the nested types will add
2924 themselves.
2925
2926Tue Mar 19 15:48:43 1996 Bob Manson <manson@beauty.cygnus.com>
2927
2928 * decl.c (shadow_tag): Remove old error check for usage of
2929 an enum without a previous declaration.
2930 (xref_tag): Add error message about usage of enums without a
2931 previous declaration.
2932
2933Tue Mar 19 09:21:35 1996 Jason Merrill <jason@yorick.cygnus.com>
2934
2935 * lex.c (do_identifier): Only do name consistency check if we're
2936 parsing.
2937
2938 * pt.c (push_template_decl): Don't crash if we get a member defn
2939 that doesn't match.
2940
2941 * decl.c (xref_tag_from_type): New function to do an xref without
2942 always having to figure out code_type_node.
2943 * cp-tree.h: Declare it.
2944 * pt.c (instantiate_class_template): Use it for friend classes.
2945 (lookup_template_class): Use it.
2946
2947 * typeck2.c (build_functional_cast): Pull out a single parm before
2948 passing it to build_c_cast.
2949
2950Tue Mar 19 09:07:15 1996 Bob Manson <manson@beauty.cygnus.com>
2951
2952 * expr.c (do_case): Give an error message if a pointer is
2953 given as a case value.
2954
2955Mon Mar 18 21:57:54 1996 Jason Merrill <jason@yorick.cygnus.com>
2956
2957 * typeck.c (build_c_cast): Don't pull single TEMPLATE_DECL out of
2958 an overload list.
2959
2960 * lex.c (cons_up_default_function): Really, now, interface hackery
2961 does not apply to synthesized methods.
2962
2963Mon Mar 18 18:20:57 1996 Mike Stump <mrs@cygnus.com>
2964
2965 * call.c (build_method_call): Ctors and dtors now have special names
2966 with respect to lookups.
d11ad92e
MS
2967 * class.c (add_method): Likewise.
2968 (grow_method): Likewise.
2969 (finish_struct_methods): Likewise.
2970 (warn_hidden): Likewise.
2971 (finish_struct_1): Likewise.
2972 * cvt.c (convert_to_reference): Likewise.
2973 (convert_to_aggr): Likewise.
2974 (cp_convert): Likewise.
2975 * decl2.c (check_classfn): Likewise.
2976 * init.c (expand_member_init): Likewise.
2977 (expand_default_init): Likewise.
2978 (expand_aggr_init_1): Likewise.
2979 (build_offset_ref): Likewise.
2980 (build_new): Likewise.
2981 (build_delete): Likewise.
2982 * lex.c (do_inline_function_hair): Likewise.
2983 * search.c (lookup_field_1): Likewise.
2984 (lookup_fnfields_here): Likewise.
2985 (lookup_field): Likewise.
2986 (lookup_fnfields): Likewise.
2987 (get_virtual_destructor): Likewise.
2988 (dfs_debug_mark): Likewise.
2989 (dfs_pushdecls): Likewise.
2990 (dfs_compress_decls): Likewise.
2991 * tree.c (layout_basetypes): Likewise.
2992 * typeck.c (build_component_ref): Likewise.
2993 (build_x_function_call): Likewise.
2994 (build_modify_expr): Likewise.
2995 (convert_for_initialization): Likewise.
2996 (build_functional_cast): Likewise.
2997 * cp-tree.h (CLASSTYPE_FIRST_CONVERSION): Likewise.
fc378698
MS
2998 (CTOR_NAME): New.
2999 (DTOR_NAME): New.
3000 * decl.c (ctor_identifier): New.
3001 (dtor_identifier): New.
3002 (init_decl_processing): Set them.
3003
3004Mon Mar 18 18:00:51 1996 Mike Stump <mrs@cygnus.com>
3005
3006 * typeck.c (build_component_ref): Don't get confused by fields whose
3007 context has no type name, like pointer to member functions.
3008
3009Mon Mar 18 13:19:03 1996 Jason Merrill <jason@yorick.cygnus.com>
3010
3011 * decl.c (grokdeclarator): Handle typedef without declarator.
3012
3013 * pt.c (tsubst): Handle SCOPE_REF in declarator.
3014
3015 * parse.y (bad_parm): Catch another case of missing `typename'.
3016
3017 * lex.c (yyprint): Handle TYPE_DECLs.
3018
3019 * decl.c (start_function): Don't try to be clever.
3020
3021 * lex.c: Lose compiler_error_with_decl.
3022 * typeck2.c: Lose error_with_aggr_type.
3023 (incomplete_type_error): Use cp_* instead of old functions.
d11ad92e
MS
3024 (readonly_error): Likewise.
3025 * typeck.c (convert_arguments): Likewise.
3026 * search.c (lookup_nested_field): Likewise.
3027 * method.c (make_thunk): Likewise.
3028 * decl.c (grokparms): Likewise.
fc378698
MS
3029 * cp-tree.h: Update.
3030
3031 * tree.c (min_tree_cons): Call copy_to_permanent for the purpose
3032 and value.
3033
3034Mon Mar 18 11:25:52 1996 Bob Manson <manson@beauty.cygnus.com>
3035
3036 * method.c (build_opfncall): When deleting a pointer to an
3037 array, build a new pointer to the tree past any ARRAY_TYPE
3038 nodes.
3039
3040Mon Mar 18 10:11:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3041
3042 * decl.c (lookup_name_real): Initialize local var TYPE to NULL_TREE.
3043
3044Fri Mar 15 11:03:57 1996 Jason Merrill <jason@yorick.cygnus.com>
3045
3046 * pt.c (instantiate_decl): Only call import_export_decl if at_eof
3047 and ! DECL_INLINE.
3048
3049 * decl.c (finish_function): Don't set nested based on
3050 hack_decl_function_context.
3051 * parse.y (function_try_block): Check for nested function.
d11ad92e 3052 (pending_inlines): Likewise.
fc378698
MS
3053
3054 * decl2.c (build_expr_from_tree): If a unary op already has a
3055 type, just return it.
3056
3057 * decl2.c (finish_prevtable_vardecl): Use ADJUST_VTABLE_LINKAGE.
3058
3059 * decl2.c (walk_vtables): vardecl_fn returns int; return 1 if it does.
3060 (finish_file): Check the return value of walk_vtables.
3061 (finish_prevtable_vardecl): Return int.
d11ad92e
MS
3062 (finish_vtable_vardecl): Likewise.
3063 (prune_vtable_vardecl): Likewise.
3064 * lex.c (set_vardecl_interface_info): Likewise.
fc378698
MS
3065 * cp-tree.h: Adjust return types.
3066
3067 * class.c (delete_duplicate_fields_1): Don't complain about
3068 duplicate nested types if they're the same type.
3069 (finish_struct): Remove check for duplicate.
3070 * decl2.c (grokfield): Don't check for typedef of anonymous type.
3071
3072Thu Mar 14 10:00:19 1996 Jason Merrill <jason@yorick.cygnus.com>
3073
3074 * cp-tree.h: Lose SIGNATURE_GROKKING_TYPEDEF.
3075
3076 * decl.c (grokdeclarator): Lose special handling of class-level
3077 typedef. Lose SIGNATURE_GROKKING_TYPEDEF. Set
3078 SIGNATURE_HAS_OPAQUE_TYPEDECLS later.
3079
3080 * cvt.c (convert_pointer_to_real): Retain cv-quals in conversion.
3081
3082 * pt.c (tsubst_copy): Strip cv-quals from destructor name types.
3083
3084 * search.c (compute_access): Fix handling of anonymous union
3085 members.
3086 * class.c (finish_struct_anon): Propagate TREE_{PRIVATE,PROTECTED}
3087 from anonymous unions to their members.
3088
3089 * typeck.c (build_x_function_call): For static member functions,
3090 hand off to build_member_call.
3091
3092Wed Mar 13 14:03:34 1996 Jason Merrill <jason@yorick.cygnus.com>
3093
3094 * typeck.c (build_component_ref): Handle OFFSET_REFs.
3095
3096 * init.c (expand_vec_init): Fix init == 0 case.
3097
3098Tue Mar 12 14:36:02 1996 Jason Merrill <jason@yorick.cygnus.com>
3099
3100 * init.c (build_new): Pedwarn about init and array new.
3101 (expand_vec_init): Handle lists, use convert_for_initialization
3102
3103 * typeck.c (convert_for_initialization): Pass LOOKUP_NO_CONVERSION
3104 when converting to an aggregate type.
3105 * cvt.c (cp_convert): Pass it through.
3106
3107 * typeck.c (build_conditional_expr): Handle user-defined
3108 conversions to slightly different types.
3109
3110 * decl.c (grokdeclarator): Force an array type in a parm to be
3111 permanent.
3112
3113 * decl2.c (do_using_directive): Sorry.
d11ad92e 3114 (do_namespace_alias): Likewise.
fc378698
MS
3115 * lex.c (real_yylex): Warn about using the `namespace' keyword.
3116
3117Sun Mar 10 22:26:09 1996 Jason Merrill <jason@yorick.cygnus.com>
3118
3119 * parse.y (datadef): Move call to note_list_got_semicolon up.
3120
934c6b13
MS
3121Fri Mar 8 11:47:26 1996 Mike Stump <mrs@cygnus.com>
3122
3123 * tree.c (unsave_expr): Don't unsave, UNSAVE_EXPRs.
3124
3125Fri Mar 8 11:29:06 1996 Mike Stump <mrs@cygnus.com>
3126
3127 * decl.c (cp_finish_decl): The exception regions have to be
3128 nested, not overlapping. We start the exception region for a
3129 decl, after it has been fully built, and all temporaries for it
3130 have been cleaned up.
3131
3132Thu Mar 7 17:46:06 1996 Mike Stump <mrs@cygnus.com>
3133
3134 * tree.c (vec_binfo_member): Don't core dump if we have no bases.
3135
e76a2646
MS
3136Thu Mar 7 14:11:49 1996 Jason Merrill <jason@yorick.cygnus.com>
3137
3138 * tree.def: Add RETURN_INIT.
3139 * pt.c (instantiate_decl): Handle RETURN_INIT.
3140 * decl.c (store_return_init): Handle minimal_parse_mode.
3141
3142 * tree.c (cp_build_type_variant): Just return an error_mark_node.
3143 * decl.c (make_typename_type): Don't try to get the file and line
3144 of an identifier.
3145 * typeck.c (comptypes): Handle TYPENAME_TYPE.
3146
3147Wed Mar 6 18:47:50 1996 Per Bothner <bothner@kalessin.cygnus.com>
3148
3149 * decl.c (poplevel): Make sure we clear out and restore old local
3150 non-VAR_DECL values by default when they go out of scope.
3151
3152Wed Mar 6 09:57:36 1996 Jason Merrill <jason@yorick.cygnus.com>
3153
3154 * method.c (build_overload_value): Use DECL_ASSEMBLER_NAME in
3155 referring to addresses of variables and functions.
3156
3157 * error.c (dump_expr): Support SIZEOF_EXPR.
3158
3159 * init.c (do_friend): Use the return value of check_classfn.
3160
3161 * typeck.c (convert_arguments): Call complete_type.
3162
3163 * method.c (hack_identifier): After giving an error, set value to
3164 error_mark_node.
3165
3166Tue Mar 5 16:00:15 1996 Jason Merrill <jason@yorick.cygnus.com>
3167
3168 * tree.c (hack_decl_function_context): Kludge around DECL_CONTEXT
3169 lossage for local classes.
3170 * cp-tree.h: Declare it.
3171 * decl.c (lookup_name_real): Evil, painful hack for local classes.
3172 (grokfndecl): Set DECL_CLASS_CONTEXT and DECL_NO_STATIC_CHAIN here.
3173 Use hack_decl_function_context.
3174 (grokdeclarator): Don't set DECL_NO_STATIC_CHAIN here.
3175 (start_function): Use hack_decl_function_context.
d11ad92e
MS
3176 (finish_function): Likewise.
3177 * method.c (synthesize_method): Likewise.
3178 * lex.c (process_next_inline): Likewise.
3179 (do_pending_inlines): Likewise.
e76a2646
MS
3180 * decl2.c (finish_file): Unset DECL_STATIC_FUNCTION_P when we're
3181 done with it.
3182
3183Mon Mar 4 22:38:39 1996 Gerald Baumgartner <gb@alexander.cs.purdue.edu>
3184
3185 * sig.c (build_signature_pointer_or_reference_type): Align
3186 signature pointers/references on 8-byte boundaries so they can be
3187 grabbed 2 words at a time on a Sparc.
3188
3189Tue Mar 5 10:21:01 1996 Jason Merrill <jason@yorick.cygnus.com>
3190
3191 * method.c (hack_identifier): Requiring a static chain is now a
3192 hard error.
3193 * decl.c (grokdeclarator): Set DECL_NO_STATIC_CHAIN on nested
3194 functions.
3195
3196Mon Mar 4 20:03:33 1996 Jason Merrill <jason@yorick.cygnus.com>
3197
3198 * init.c (build_offset_ref): Call complete_type.
3199
3200 * decl.c (pop_from_top_level): Always pop previous_class_type.
3201
3202 * parse.y: Handle multiple decls in a for-init-statement.
d11ad92e 3203 * pt.c (tsubst_expr): Likewise.
e76a2646
MS
3204
3205 * pt.c (tsubst): Use tsubst_expr for the second operand of an
3206 ARRAY_REF.
3207
3208 * decl.c (maybe_push_to_top_level): Don't save previous_class_type.
3209 (poplevel_class): Set it here.
3210 (pop_from_top_level): Pop it here if we're returning to class scope.
3211 * class.c (pushclass): Don't set it here.
3212
3213 * decl.c (maybe_push_to_top_level): Save current_template_parms,
3214 and clear it if !pseudo.
3215 (pop_from_top_level): Restore it.
3216
3217 * decl2.c (finish_file): Push the dummy each time we walk the list
3218 of vtables.
3219
3220 * error.c (dump_expr): Support LOOKUP_EXPR and actually do
3221 something for CAST_EXPR.
3222
3223Mon Feb 19 14:49:18 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
3224
3225 * cvt.c (cp_convert): Warn about implicit conversion of the
3226 address of a function to bool, as it is always true.
3227
3228Fri Feb 23 23:06:01 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
3229
3230 * typeck.c (c_expand_return): Fix warning for local externs returned.
3231
3232Mon Mar 4 15:03:11 1996 Jason Merrill <jason@yorick.cygnus.com>
3233
3234 * tree.c (mapcar): Propagate const and volatile properly.
3235
3236 * typeck.c (complete_type): Be sure to instantiate the
3237 MAIN_VARIANT of the type.
3238
3239 * method.c (synthesize_method): Class interface hackery does not
3240 apply to synthesized methods.
3241
3242Mon Mar 4 14:05:23 1996 Jason Merrill <jason@yorick.cygnus.com>
3243
3244 * pt.c (comp_template_args): Use comptypes rather than just
3245 checking for TEMPLATE_TYPE_PARM equivalence.
3246
3247 * typeck.c (build_x_function_call): Call complete_type before
3248 checking TYPE_OVERLOADS_CALL_EXPR.
3249
7ea63af7
MH
3250Mon Mar 4 18:48:30 1996 Manfred Hollstein <manfred@lts.sel.alcatel.de>
3251
3252 * g++.c (main): Check also for new define ALT_LIBM.
3253
ec255269
MS
3254Fri Mar 1 13:09:33 1996 Jason Merrill <jason@yorick.cygnus.com>
3255
3256 * pt.c (instantiate_class_template): If we don't have a pattern
3257 yet, that's OK.
3258 (coerce_template_parms): If we see a local class, bail.
3259
3260 * decl.c (grok_reference_init): Make sure there's a type before
3261 checking its code.
3262
3263 * pt.c (do_function_instantiation): Avoid crashing on invalid decls.
d11ad92e 3264 (push_template_decl): Likewise.
ec255269
MS
3265
3266 * parse.y (named_class_head): Set
3267 CLASSTYPE_TEMPLATE_SPECIALIZATION here if we have basetypes.
3268
3269 * decl.c (xref_tag): Diagnose redeclaration of template
3270 type-parameter name.
3271
3272 * error.c (dump_type): Handle anonymous template type parms.
3273
3274 * pt.c (instantiate_template): Use TYPE_MAIN_DECL instead of
3275 TYPE_STUB_DECL.
d11ad92e 3276 (coerce_template_parms): Likewise.
ec255269
MS
3277
3278Thu Feb 29 16:26:01 1996 Mike Stump <mrs@cygnus.com>
3279
3280 * class.c (instantiate_type, case {ARRAY,INDIRECT}_REF,
3281 case ADDR_EXPR): Don't modify rhs if a subinstantiation fails.
3282
3283Thu Feb 29 08:20:25 1996 Jason Merrill <jason@yorick.cygnus.com>
3284
3285 * pt.c (instantiate_template): Take the MAIN_VARIANT of the type
3286 before trying to get its STUB_DECL.
d11ad92e 3287 (coerce_template_parms): Likewise.
ec255269
MS
3288
3289 * parse.y (template_type_parm): If they didn't use 'class',
3290 pretend they did after giving an error.
3291
3292 * pt.c (coerce_template_parms): Diagnose use of local class.
3293
3294 * decl.c (grok_reference_init): Use instantiate_type.
3295
3296 * error.c (dump_expr): Handle TEMPLATE_DECLs.
3297
3298 * parse.y (named_class_head): Diagnose mismatching types and tags.
3299
3300 * decl.c (pushdecl): Type decls and class templates clash with
3301 artificial type decls, not hide them.
3302
3303 * decl.c (redeclaration_error_message): Diagnose redefinition of
3304 templates properly.
3305 (duplicate_decls): Diagnose disallowed overloads for template
3306 functions, too.
3307
3308 * decl.c (start_decl): Call complete_type before checking for a
3309 destructor.
3310
3311 * pt.c (tsubst): Use tsubst_expr on the elts of a VEC.
3312
3313 * decl.c (xref_tag): A TEMPLATE_TYPE_PARM is a match.
3314
5566b478
MS
3315Wed Feb 28 09:28:44 1996 Jason Merrill <jason@yorick.cygnus.com>
3316
ec255269
MS
3317 * decl.c (grok_op_properties): Don't check for operator++(int) in
3318 a template.
3319
3320 * tree.c (perm_manip): Return a copy of variable and function
3321 decls with external linkage.
3322
3323 * tree.def: Change some of the min tree codes to type "1".
3324 * pt.c (uses_template_parms): Handle 'e's, return 1 for LOOKUP_EXPRs.
3325 * method.c (build_overload_int): Emit something arbitrary for
3326 anything but an INTEGER_CST if we're in a template.
3327
3328 * decl.c (cp_finish_decl): Call complete_type before deciding
3329 whether or not to lay out the decl.
3330
5566b478
MS
3331 * lex.c (do_identifier): Check for DECL_INITIAL before using it.
3332
3333Tue Feb 27 16:35:32 1996 Jason Merrill <jason@yorick.cygnus.com>
3334
3335 * typeck2.c (build_x_arrow): Call complete_type.
3336
3337 * pt.c (add_pending_template): Broken out.
3338 (lookup_template_class): If -fexternal-templates, call it for all
3339 the methods of implemented types.
3340 (instantiate_class_template): Instead of instantiating them here.
3341 (instantiate_decl): Handle -fexternal-templates earlier.
3342
3343Tue Feb 27 15:51:32 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3344
3345 * search.c, lex.c, decl.c, class.c, cp-tree.h: Don't wrap the
3346 memoized lookup stuff inside GATHER_STATISTICS.
3347
3348Tue Feb 27 10:38:08 1996 Jason Merrill <jason@yorick.cygnus.com>
3349
3350 * decl.c (start_decl): Complain about array of incomplete type
3351 here.
3352 (grokdeclarator): Not here.
3353
3354 * parse.y (template_parm): Expand full_parm inline so we can set
3355 the rule's precedence.
3356
3357 * pt.c (tsubst_expr): If we're in a template, just do tsubst_copy.
3358 (tsubst): tsubst_expr the DECL_INITIAL of FIELD_DECLs.
3359 * decl2.c (grokbitfield): Don't check for integer constant here.
3360 * class.c (finish_struct_1): Check here.
3361
3362 * decl.c (define_label): Make the min decl go on permanent_obstack.
3363
3364 * pt.c (unify): Don't handle CONST_DECLs.
3365 (uses_template_parms): Don't check DECL_INITIAL on a CONST_DECL.
d11ad92e 3366 (tsubst_copy): Likewise.
5566b478
MS
3367
3368 * lex.c (do_identifier): Do pull the DECL_INITIAL out of a
3369 CONST_DECL for a template parm.
3370
3371Mon Feb 26 12:48:18 1996 Jason Merrill <jason@yorick.cygnus.com>
3372
3373 * decl.c (grokdeclarator): Complain about array of incomplete type
3374 here.
3375 (start_decl_1): Not here.
3376
3377 * pt.c (tsubst): Handle pointer-to-function declarators.
3378
3379 * method.c (hack_identifier): If pedantic, diagnose local class
3380 methods that require a static chain.
3381
3382 * decl.c (grok_op_properties): No longer static.
3383 * cp-tree.h: Declare it.
3384 * pt.c (tsubst): Call it for operators.
3385 Use tsubst_copy for TREE_VECs.
3386
3387 * parse.y (template_arg): The expr has precedence like '>'.
3388
3389Fri Feb 23 14:51:52 1996 Jason Merrill <jason@yorick.cygnus.com>
3390
3391 * pt.c (coerce_template_parms): Don't coerce an expression using
3392 template parms.
3393 (uses_template_parms): Also check DECL_INITIAL in CONST_DECLs.
3394 (tsubst): Don't use build_index_2_type if the max_value uses template
3395 parms.
3396 * method.c (build_overload_int): Emit something arbitrary for an
3397 expression using template parms.
3398
3399 * parse.y (template_close_bracket): New non-terminal to catch use
3400 of '>>' instead of '> >' in template class names.
3401 (template_type): Use it.
3402 * Makefile.in (CONFLICTS): Causes one more r/r conflict.
3403
3404 * tree.def: Add CAST_EXPR.
3405 * typeck2.c (build_functional_cast): Use CAST_EXPR instead of
3406 CONVERT_EXPR for minimal_parse_mode.
d11ad92e
MS
3407 * typeck.c (build_c_cast): Likewise.
3408 * pt.c (tsubst_copy): Likewise.
3409 * decl2.c (build_expr_from_tree): Likewise.
3410 * error.c (dump_expr): Likewise.
5566b478
MS
3411
3412Fri Feb 23 10:36:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3413
3414 * except.c (SetTerminate, SetUnexpected): Put back global vars.
3415 (init_exception_processing): Put back decl/init of
3416 set_unexpected_fndecl and set_terminate_fndecl, needed to get the
3417 fns from libstdc++.
3418
3419 * decl.c (struct binding_level): Delete ACCEPT_ANY bitfield.
3420 (declare_uninstantiated_type_level, uninstantiated_type_level_p):
3421 Delete unused fns.
3422 * cp-tree.h (declare_uninstantiated_type_level,
3423 uninstantiated_type_level_p): Delete prototypes.
3424
3425Thu Feb 22 19:36:15 1996 Jason Merrill <jason@yorick.cygnus.com>
3426
3427 * pt.c (tsubst_expr): Add default return.
3428
3429Thu Feb 22 16:47:24 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3430
3431 * error.c (fndecl_as_string): Delete unused arg CNAME.
3432 * sig.c (build_signature_table_constructor,
3433 build_signature_method_call): Fix calls.
3434
3435 * class.c (the_null_vtable_entry): Delete var definition.
3436 (init_class_processing): Delete tree the_null_vtable_entry init.
3437 * decl.c (no_print_{functions, builtins}): Declare as static.
3438 (__tp_desc_type_node): #if 0 var definition.
3439 (init_type_desc): #if 0 init of __tp_desc_type_node.
3440 (vb_off_identifier): Move var decl into init_decl_processing.
3441 (current_function_assigns_this): Declare as static.
3442 (int_ftype_ptr_ptr_int, void_ftype_ptr_int_int): Delete var decls.
3443 (init_decl_processing): Delete init of void_ftype_ptr_ptr_int.
3444 Move decls of string_ftype_ptr_ptr and int_ftype_string_string here.
3445 * decl2.c (delete_sanity): Delete definition/mod of local var ELT_SIZE.
3446 * init.c (BI_header_type, BI_header_size): Declare as static.
3447 * pt.c (template_classes): Delete unused var.
3448 (add_pending_template): Delete decl for non-existent fn.
3449 (lookup_template_class): Delete vars CODE and TAG_CODE.
3450 (instantiate_template): Delete unused var TARGS.
3451 * cp-tree.h (vb_off_identifier, current_function_assigns_this):
3452 Delete decls.
3453 (__tp_desc_type_node): #if 0 var decl.
3454 (fndecl_as_string): Fix prototype.
3455
3456Thu Feb 22 15:56:19 1996 Jason Merrill <jason@yorick.cygnus.com>
3457
3458 * tree.def: Add GOTO_STMT.
3459 * pt.c (tsubst_expr): Support goto and labels.
3460 * decl.c (define_label): Support minimal parsing.
d11ad92e 3461 * parse.y (simple_stmt): Likewise.
5566b478
MS
3462
3463Thu Feb 22 15:30:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3464
3465 * xref.c (GNU_xref_member): Only define/set var I if
3466 XREF_SHORT_MEMBER_NAMES is defined, to match when it's actually
3467 used.
3468 (GNU_xref_end_scope): Delete unused fifth arg TRNS.
3469 (GNU_xref_end): Fix call.
3470 * decl.c (poplevel, poplevel_class, finish_method): Fix calls.
3471 * cp-tree.h (GNU_xref_end_scope): Fix prototype.
3472
3473 * tree.c (build_exception_variant): Delete unused vars I, A, T,
3474 T2, and CNAME.
3475 (layout_vbasetypes): Delete unused var NONVIRTUAL_VAR_SIZE.
3476 (mapcar): Delete unused var CODE.
3477 (build_cplus_new): Delete unused arg WITH_CLEANUP_P.
3478 (break_out_cleanups): Fix call.
3479 (bot_manip): Likewise.
3480 * call.c (build_method_call): Likewise.
3481 * cvt.c (build_up_reference, convert_to_reference, cp_convert):
3482 Likewise.
3483 * typeck.c (unary_complex_lvalue, build_modify_expr,
3484 convert_for_initialization): Likewise.
3485 * typeck2.c (build_functional_cast): Likewise.
3486 * cp-tree.h (build_cplus_new): Fix prototype.
3487
3488 * repo.c (open_repo_file): Delete unused var Q.
3489 (repo_compile_flags, repo_template_declared,
3490 repo_template_defined, repo_class_defined, repo_inline_used,
3491 repo_vtable_used, repo_tinfo_used): #if 0 unused fns.
3492 (repo_get_id, repo_vtable_used): Declare as static.
3493 * cp-tree.h (mark_{decl,class}_instantiated, finish_repo): Add
3494 prototypes.
3495
3496Thu Feb 22 14:53:35 1996 Jason Merrill <jason@yorick.cygnus.com>
3497
3498 * parse.y (pending_inlines): Add function_try_block case.
3499
3500 * pt.c (unify): Fix for template const parms.
3501
3502Thu Feb 22 13:24:15 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3503
3504 * lex.c (extract_interface_info): Delete forward decl.
3505 (default_copy_constructor_body, default_assign_ref_body): Delete
3506 decls for non-existent functions.
3507 (synth_firstobj, inline_text_firstobjs): Delete unused vars.
3508 (init_lex): Delete setting them.
3509 (cons_up_default_function): Delete unused vars FUNC_BUF,
3510 FUNC_LEN, and COMPLEX. Delete code setting COMPLEX. Delete old
3511 #if 0'd synth code.
3512 (toplevel, expression_obstack): Delete unused extern decls.
3513 (tree_node_kind): Delete unused enum.
3514 (tree_node_counts, tree_node_sizes): Wrap with #ifdef
3515 GATHER_STATISTICS.
3516 (tree_node_kind_names): Delete unused extern decl.
3517 (synth_obstack): Delete unused var.
3518 (init_lex): Don't set it.
3519 (init_parse): Add decl before use.
3520 (reduce_count): Only define #ifdef GATHER_STATISTICS && REDUCE_LENGTH.
3521 (current_unit_{name, language}): Delete unused vars.
3522 (check_newline): Don't bother setting them, just accept the #pragma.
3523 * cp-tree.h (init_repo, peek_yylex): Add prototypes.
3524 (current_unit_{name, language}): Delete decls.
3525
3526 * search.c: Wrap all of the memoized functions, macros, and
3527 variables inside #ifdef GATHER_STATISTICS.
3528 (lookup_field, lookup_fnfields): Likewise.
3529 (init_search_processing): Likewise.
3530 (reinit_search_statistics): Wrap whole function.
3531 * lex.c (reinit_lang_specific): Wrap call to reinit_search_statistics.
3532
3533 * decl.c (finish_function): Only call pop_memoized_context if
3534 GATHER_STATISTICS is defined.
3535 (start_function): Likewise for push_memoized_context.
3536 * class.c (pushclass, popclass): Likewise.
3537
3538 * cp-tree.h (CLASSTYPE_MTABLE_ENTRY): Move definition from here...
3539 * search.c (CLASSTYPE_MTABLE_ENTRY): ... to here.
3540
3541 * cvt.c (cp_convert): Delete unused local var FORM.
3542 * cp-tree.h (can_convert, can_convert_arg, real_lvalue_p): Add
3543 prototypes.
3544
3545Thu Feb 22 13:19:44 1996 Jason Merrill <jason@yorick.cygnus.com>
3546
3547 * pt.c (do_poplevel): Oops; really return what we get from
3548 poplevel this time.
3549
3550Thu Feb 22 11:41:44 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3551
3552 * cp-tree.h (is_aggr_type): Add prototype.
3553
3554 * cp-tree.h ({push,pop}_cp_function_context): Add decls.
3555 * method.c ({push,pop}_cp_function_context): Delete decls.
3556 * except.c (start_eh_unwinder, end_eh_unwinder): Declare as void.
3557 (SetUnexpected, SetTerminate): Delete unused vars.
3558 (init_exception_processing): Don't set SetUnexpected or
3559 SetTerminate. Don't set SET_UNEXPECTED_FNDECL or SET_TERMINATE_FNDECL.
3560 (output_exception_table_entry): Delete unused array LABEL.
3561 (expand_internal_throw): Delete unused var PARAMS.
3562 (expand_start_catch_block): Delete unused var CLEANUP.
3563 (emit_exception_table): Delete unused var EH_NODE_DECL.
3564 (expand_builtin_throw): Delete unused vars UNWIND_AND_THROW and
3565 GOTO_UNWIND_AND_THROW. Don't set them.
3566 (end_eh_unwinder): Add top decl.
3567 (pop_rtl_from_perm): Delete unused decl of PERMANENT_OBSTACK.
3568 (exception_section, push_rtl_perm, do_function_call,
3569 lang_interim_eh, push_eh_cleanup, eh_outer_context,
3570 expand_end_eh_spec, end_eh_unwinder): Declare as static.
3571 (saved_pc, saved_throw_type, saved_throw_value, saved_cleanup,
3572 throw_used): Likewise.
3573 * cp-tree.h (expand_end_eh_spec): Delete prototype.
3574
3575 * search.c (dfs_mark, dfs_mark_vtable_path,
3576 dfs_unmark_vtable_path, dfs_mark_new_vtable,
3577 dfs_unmark_new_vtable, dfs_clear_search_slot,
3578 dfs_search_slot_nonempty_p, bfs_markedp, bfs_unmarkedp,
3579 bfs_marked_vtable_pathp, bfs_unmarked_vtable_pathp,
3580 bfs_marked_new_vtablep, bfs_unmarked_new_vtablep): #if 0 unused
3581 functions.
3582 (n_fields_searched, n_calls_lookup_field, n_calls_lookup_field_1,
3583 n_calls_lookup_fnfields, n_calls_lookup_fnfields_1,
3584 n_calls_get_base_type, n_outer_fields_searched, n_contexts_saved):
3585 Only define #ifdef GATHER_STATISTICS.
3586 (reinit_search_statistics): Only init some vars if GATHER_STATISTICS
3587 is defined.
3588 (vbase_decl): Delete var definition.
3589 (init_search): Delete old decl.
3590 (init_vbase_pointers): Delete building of VBASE_DECL, since it's
3591 never actually used.
3592 (expand_indirect_vtbls_init): Delete init of VBASE_DECL.
3593 (get_base_distance_recursive): Delete unused fourth arg
3594 BASETYPE_PATH. Fix call .
3595 (get_base_distance): Fix call.
3596 (push_class_decls): Delete unused var ID.
3597 (make_memoized_table_entry): Declare as static.
3598 (breadth_first_search): Declare as static.
3599 (tree_has_any_destructor_p): Declare as static.
3600 (pop_class_decls): Delete unused arg pop_class_decls.
3601 * class.c (popclass): Fix call to pop_class_decls.
3602 * cp-tree.h (make_memoized_table_entry, breadth_first_search,
3603 tree_has_any_destructor_p): Delete prototypes.
3604
3605 * rtti.c (build_ptmf_desc): Delete unused arg TYPE.
3606 (build_t_desc): Fix call. Delete unused vars ELEMS and TT.
3607 (build_dynamic_cast): Delete unused local vars TMP1 and RETVAL.
3608 (build_user_desc): Delete unused var T.
3609 (build_class_desc): Delete unused vars T and OFF.
3610 (build_t_desc): Delete unused var NAME_STRING.
3611 (build_headof): Make static.
3612 (get_bad_cast_node): Likewise.
3613 (get_def_to_follow): Likewise.
3614 * cp-tree.h (init_type_desc): Add prototype.
3615 (build_headof): Remove prototype.
3616
3617Thu Feb 22 00:54:22 1996 Jason Merrill <jason@yorick.cygnus.com>
3618
3619 * pt.c (tsubst): Only look for matching decls at file scope for
3620 non-member functions.
3621
3622 * call.c (build_scoped_method_call): Handle scoped destructor
3623 calls in templates.
3624
3625 * decl.c (*_top_level): Also save previous_class_values.
3626
3627 * pt.c (tsubst_expr): Support do {} while loops.
d11ad92e
MS
3628 * parse.y (simple_stmt): Likewise.
3629 * tree.def: Likewise.
5566b478
MS
3630
3631 * method.c (build_overload_identifier): For a class nested in a
3632 template class, don't mangle in the template parms from our
3633 context.
3634
3635 * lex.c, cp-tree.h: Remove support for template instantiations in
3636 the pending_inlines code.
3637 * pt.c: Remove dead functions and unused arguments.
3638 (uses_template_parms): TYPENAME_TYPEs always use template parms.
3639 * parse.y: Stop passing anything to end_template_decl.
3640 * tree.c (print_lang_statistics): Only print tinst info #ifdef
3641 GATHER_STATISTICS.
3642
3643Wed Feb 21 16:57:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3644
3645 * init.c (expand_recursive_init{,_1}): Delete decls.
3646 (sort_member_init): Delete unused var INIT.
3647 (emit_base_init): Delete unused var X.
3648 (build_offset_ref): Delete unused var CNAME.
3649 (sort_member_init): Delete unused var FIELDS_TO_UNMARK.
3650 (emit_base_init): Delete unused local var BASE. Delete extern
3651 decl of IN_CHARGE_IDENTIFIER.
3652 (build_delete): Delete unused local var VIRTUAL_SIZE.
3653
3654 * init.c (build_vec_delete): Delete unused third arg ELT_SIZE.
3655 (build_delete): Fix call.
3656 * decl2.c (delete_sanity): Likewise.
3657 * cp-tree.h (build_vec_delete): Update prototype.
3658
3659 * typeck.c (common_base_type): Delete unused var TMP.
3660 (build_binary_op): Delete local var ARGS_SAVE.
3661 (build_array_ref): Delete unused var ITYPE.
3662 (c_expand_return): Delete unused var USE_TEMP.
3663
3664 * typeck.c (compexcepttypes): Delete unused arg STRICT.
3665 (comptypes): Fix calls.
3666 * decl.c (duplicate_decls): Likewise.
3667 * cp-tree.h (compexcepttypes): Delete extra arg.
3668
3669 * decl2.c (check_classfn): Delete unused second arg CNAME.
3670 * decl.c (start_decl, grokfndecl): Fix calls.
3671 * init.c (do_friend): Likewise.
3672 * cp-tree.h (check_classfn): Update prototype.
3673
3674 * cp-tree.h (signature_error, import_export_vtable,
3675 append_signature_fields, id_in_current_class, mark_used,
3676 copy_assignment_arg_p): Add decls.
3677 * decl2.c (mark_used): Delete decl.
3678
3679 * class.c (n_*): Wrap with #ifdef GATHER_STATISTICS.
3680
3681 * class.c (get_vtable_entry): Diable unused function.
3682 (doing_hard_virtuals): Delete unused static global var.
3683 (finish_struct_1): Don't init DOING_HARD_VIRTUALS.
3684 (prepare_fresh_vtable): Delete unused vars PATH and RESULT.
3685 (overrides): Delete unused vars RETTYPE and BASE_RETTYPE.
3686 (modify_one_vtable): Delete unused var OLD_RTTI.
3687 (finish_struct_anon): Delete unused vars OFFSET and X.
3688 (finish_struct_bits): Delete unused var METHOD_VEC.
3689 (get_basefndecls): Delete unused var PURPOSE. Delete unused
3690 for-scope local variable METHODS.
3691
3692 * call.c (user_harshness): Delete unused/unneeded arg PARM.
3693 (ideal_candidate): Delete unused args BASETYPE and PARMS.
3694 (build_method_call): Delete unused args passed into ideal_candidate.
3695 (build_overload_call_real): Likewise. Delete unused var OVERLOAD_NAME.
3696 * cp-tree.h (synthesize_method): Add decl.
3697
3698 * decl.c (note_level_for_for): Give void return type.
3699 (pushdecl_nonclass_level): Likewise.
3700 (finish_function): Delete unused vars VFIELDS and ALLOCATED_THIS.
3701 (poplevel): Delete unused var IMPLICIT_TRY_BLOCK.
3702 (suspend_binding_level): Delete unused var LEVEL.
3703 (duplicate_decls): Delete unused var CTYPE.
3704 (duplicate_decls): Delete unused var PREVIOUS_C_DECL.
3705 (init_decl_processing): Delete unused vars FLOAT_ENDLINK and
3706 PTR_ENDLINK.
3707 (grokdeclarator): Delete unused var C.
3708 (grokdeclarator): Delete unused var SIZE_VARIES.
3709 (grokparms): Delete unused var SAW_VOID.
3710 (start_function): Delete unused var OLDDECL.
3711 (cplus_expand_expr_stmt): Delete unused var
3712 REMOVE_IMPLICIT_IMMEDIATELY.
3713
3714 * cp-tree.h (pushdecl_nonclass_level): Fix prototype.
3715
3716 * Makefile.in (CONFLICTS): Update to 12 shift/reduce.
3717
3718Wed Feb 21 00:06:17 1996 Jason Merrill <jason@yorick.cygnus.com>
3719
3720 * tree.c (build_min): Set TREE_COMPLEXITY to lineno.
d11ad92e 3721 (build_min_nt): Likewise.
5566b478
MS
3722 * pt.c (do_pushlevel): Emit line note.
3723 (do_poplevel): Return what we get from poplevel.
3724 (tsubst_expr): Set lineno from TREE_COMPLEXITY in stmt nodes.
3725 * parse.y: Use do_pushlevel and do_poplevel.
3726 * cp-tree.h: Declare do_poplevel.
3727
3728 * cp-tree.h: Declare at_eof.
3729 * decl.c (cp_finish_decl): Pass it to rest_of_decl_compilation.
3730 * decl2.c (import_export_decl): Renamed from import_export_inline.
3731 (finish_file): Call it to do interface handling for statics.
3732 * pt.c (tsubst_copy): Call mark_used on variables and functions
3733 used here.
3734
3735 * decl2.c (finish_file): Don't emit statics we can't generate.
3736 * pt.c (instantiate_decl): Don't set interface on instantiations
3737 we can't generate.
3738
3739 * cp-tree.h (struct tinst_level): Change 'classname' to 'decl'.
3740 * tree.c (print_lang_statistics): Print max template depth.
3741 * pt.c (push_tinst_level): Dump entire instantiation context.
3742 (instantiate_class_template): Use it and pop_tinst_level.
d11ad92e 3743 (instantiate_decl): Likewise.
5566b478
MS
3744
3745 * call.c class.c cp-tree.h decl.c decl2.c error.c lex.c method.c
3746 pt.c ptree.c tree.def: Remove all traces of UNINSTANTIATED_P_TYPE.
3747
3748Tue Feb 20 18:21:51 1996 Jason Merrill <jason@yorick.cygnus.com>
3749
3750 * call.c class.c cp-tree.h cvt.c decl.c decl2.c error.c expr.c
3751 init.c lex.c method.c parse.y pt.c repo.c search.c spew.c tree.c
3752 tree.def typeck.c typeck2.c xref.c: Massive, systemic changes for
3753 the new template implementation.
3754
3755Tue Feb 20 17:14:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3756
3757 * decl2.c (check_cp_case_value): Use STRIP_TYPE_NOPS.
3758
cffa8729
MS
3759Thu Feb 15 18:44:42 1996 Mike Stump <mrs@cygnus.com>
3760
3761 * decl.c (cp_finish_decl): Delay emitting the debug information for
3762 a typedef that has been installed as the canonical typedef, if the
3763 type has not yet been defined.
3764
3765Thu Feb 15 09:39:08 1996 Jason Merrill <jason@yorick.cygnus.com>
3766
3767 * decl2.c (grokfield): Still call pop_nested_class for access decls.
3768
3769Wed Feb 14 17:30:04 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3770
3771 * decl.c (lookup_label): Call label_rtx.
3772
3773 * decl.c (make_binding_level): New function.
3774 (pushlevel, pushlevel_class): Call it instead of explicit
3775 duplicate calls to xmalloc.
3776
3777 * decl.c (init_decl_processing): Delete useless build_pointer_type
3778 call.
3779
3780 * decl.c (float_ftype_float, ldouble_ftype_ldouble): Add definitions.
3781 (sizet_ftype_string): Delete variable.
3782 (init_decl_processing): Add built-in functions fabsf, fabsl,
3783 sqrtf, sqrtl, sinf, sin, sinl, cosf, cos, cosl. New local
3784 variable strlen_ftype, used for strlen.
3785
3786Wed Feb 14 16:21:25 1996 Jason Merrill <jason@yorick.cygnus.com>
3787
3788 * decl.c (push_to_top_level): Start from current_binding_level
3789 again for now; the stl hacks depend on g++ being broken in this
3790 way, and it'll be fixed in the template rewrite.
3791
3792 * tree.def: Add USING_DECL.
3793 * decl2.c (do_class_using_decl): Implement.
3794 (grokfield): Pass access decls off to do_class_using_decl instead of
3795 grokdeclarator.
3796 * error.c (dump_decl): Handle USING_DECLs.
3797 * decl.c (grokdeclarator): Remove code for handling access decls.
3798 * class.c (finish_struct_1): Adjust accordingly, treat using-decls
3799 as access decls for now.
3800 (finish_struct): Don't check USING_DECLs for other uses of the name.
3801
3802 * search.c (get_matching_virtual): Use cp_error_at.
3803
3804Wed Feb 14 10:36:58 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3805
3806 * typeck.c (comptypes): Default COMP_TYPE_ATTRIBUTES to 1, to
3807 match c-typeck.c.
3808 (self_promoting_args_p): Move the check that TYPE is non-nil
3809 before trying to look at its main variant.
3810 (unsigned_type, signed_type): Add checking of DI/SI/HI/QI nodes.
3811
3812 * cp-tree.h (DECL_WAITING_FRIENDS, SET_DECL_WAITING_FRIENDS):
3813 Delete macros.
3814 * init.c (xref_friend, embrace_waiting_friends): Delete functions.
3815 (do_friend): Delete call to xref_friend.
3816 * class.c (finish_struct_1): Delete call to embrace_waiting_friends.
3817
3818 * typeck.c (convert_sequence): #if 0 unused function.
3819
3820 * cp-tree.h (DECL_IN_MEMORY_P): New macro w/ the check that used to
3821 be in decl_in_memory_p.
3822 (decl_in_memory_p): Delete decl.
3823 * expr.c (decl_in_memory_p): Delete fn.
3824 * typeck.c (mark_addressable): Use DECL_IN_MEMORY_P.
3825
3826 * decl.c (cp_finish_decl): Use DECL_IN_MEMORY_P.
3827
3828Tue Feb 13 12:51:21 1996 Jason Merrill <jason@yorick.cygnus.com>
3829
3830 * class.c (finish_struct_1): Check for a pure-specifier on a
3831 non-virtual function here.
3832
3833 * decl2.c (grok_function_init): Don't check whether the function
3834 is virtual here.
3835 (grokfield): Don't call check_for_override here.
3836
3837 * decl.c (push_to_top_level): Start from inner_binding_level,
3838 check class_shadowed in class levels.
3839
3840Mon Feb 12 17:46:59 1996 Mike Stump <mrs@cygnus.com>
3841
3842 * decl.c (resume_level): Ignore things that don't have names, instead
3843 of core dumping.
3844
3845Mon Feb 12 15:47:44 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3846
3847 * decl2.c (grokfield): Set DECL_VINDEX properly for FUNCTION_DECLs.
3848
3849Sat Feb 10 17:59:45 1996 Jason Merrill <jason@yorick.cygnus.com>
3850
3851 * class.c (finish_struct_1): Set DECL_VINDEX properly on a
3852 synthesized dtor.
3853
3854 * parse.y (complete_type_name): Bind global_scope earlier.
d11ad92e 3855 (complex_type_name): Likewise.
cffa8729
MS
3856 (qualified_type_name): Remove.
3857
2ee887f2
MS
3858Thu Feb 8 15:15:14 1996 Jason Merrill <jason@yorick.cygnus.com>
3859
3860 * decl.c (grokfndecl): Move code that looks for virtuals in base
3861 classes...
cffa8729 3862 * class.c (check_for_override): ... to a new function.
2ee887f2
MS
3863 (finish_struct_1): Call it.
3864
3865 * cp-tree.h: Declare warn_sign_compare.
3866
3867 * typeck.c (build_binary_op_nodefault): Check warn_sign_compare
3868 rather than extra_warnings to decide whether to warn about
3869 comparison of signed and unsigned.
3870
3871 * decl2.c (lang_decode_option): Handle warn_sign_compare. -Wall
3872 implies -Wsign-compare. -Wall doesn't imply -W.
3873
3874Wed Feb 7 15:27:57 1996 Mike Stump <mrs@cygnus.com>
3875
3876 * typeck.c (build_component_ref): Fix to handle anon unions in base
3877 classes as well.
3878
3879Wed Feb 7 14:29:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3880
3881 * class.c (resolves_to_fixed_type_p): Delete code dealing with
3882 a WITH_CLEANUP_EXPR, since we don't generate them any more.
3883 * cvt.c (build_up_reference): Likewise.
3884 * decl.c (grok_reference_init): Likewise.
3885 (cp_finish_decl): Likewise.
3886 * error.c (dump_expr): Likewise.
3887 * tree.c (real_lvalue_p): Likewise.
3888 (lvalue_p): Likewise.
3889 (build_cplus_new): Likewise.
3890 (unsave_expr_now): Likewise.
3891 * typeck.c (unary_complex_lvalue, build_modify_expr,
3892 c_expand_return): Likewise.
3893
3894Tue Feb 6 13:39:22 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3895
3896 Make the C++ front-end pay attention to attributes for structures.
3897 * class.c (finish_struct): New argument ATTRIBUTES, passed down into
3898 finish_struct_1.
3899 (finish_struct_1): New argument ATTRIBUTES; call cplus_decl_attributes.
3900 Take out old round_up_size use and setting the DECL_ALIGN possibly
3901 using it. Take out setting of TYPE_ALIGN to round_up_size, which
3902 can override what the attribute set.
3903 * cp-tree.h (finish_struct): Update prototype.
3904 * parse.y (template_instantiate_once): Pass a NULL_TREE for the
3905 attributes to finish_struct.
3906 (structsp): For a CLASS decl, add maybe_attribute to rule and pass that
3907 value down into finish_struct.
3908 * Makefile.in (CONFLICTS): Switch to 7 shift/reduce conflicts.
3909
3910Tue Feb 6 13:12:15 1996 Per Bothner <bothner@kalessin.cygnus.com>
3911
3912 * decl.c (poplevel): Re-word dead for local handling.
3913 (pushdecl): Remove useless DECL_DEAD_FOR_LOCAL test.
3914 (cp_finish_decl): If is_for_scope, check for duplicates so
3915 we can disable is_for_scope. Otherwise, preserve_temp_slots.
3916
3917 * lex.c (do_identifier): Use global binding in preference of
3918 dead for local variable.
3919
3920Mon Feb 5 17:46:46 1996 Mike Stump <mrs@cygnus.com>
3921
3922 * init.c (initializing_context): Handle anon union changes, the
3923 context where fields of anon unions can be initialized now has to be
3924 found by walking up the TYPE_CONTEXT chain.
3925
3926Fri Feb 2 14:54:04 1996 Doug Evans <dje@charmed.cygnus.com>
3927
3928 * decl.c (start_decl): #ifdef out code to set DECL_COMMON
3929 if ASM_OUTPUT{,_ALIGNED}_BSS is defined.
3930 (obscure_complex_init): If bss is supported, always set
3931 DECL_INITIAL to error_mark_node.
3932
3933Thu Feb 1 16:19:56 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3934
3935 * init.c (is_friend): Make sure there's a context before we see if
3936 it's an aggr type.
3937
3938Thu Feb 1 15:44:53 1996 Mike Stump <mrs@cygnus.com>
3939
3940 * init.c (is_friend): Classes are not friendly with nested classes.
3941
3942Thu Feb 1 15:27:37 1996 Doug Evans <dje@charmed.cygnus.com>
3943
3944 * lex.c (check_newline): Pass last character read to HANDLE_PRAGMA,
3945 and record its result.
3946
9e9ff709
MS
3947Thu Feb 1 09:27:01 1996 Mike Stump <mrs@cygnus.com>
3948
3949 * class.c (finish_struct_anon): Switch around code to not move anon
3950 union elements around, nor mess up their contexts, nor offsets,
3951 instead we now build up the right number of COMPONENT_REFs for all
3952 the anon unions that may be present at build_component_ref time.
3953 * typeck.c (lookup_anon_field): New routine to handle field lookup
3954 on fields without names. We find them, based upon their unique type
3955 instead.
3956 * typeck.c (build_component_ref): Allow FIELD_DECL components.
3957 Handle finding components in anonymous unions, and ensure that a
3958 COMPONENT_REF is built for each level as necessary.
3959
3960Tue Jan 30 18:18:23 1996 Mike Stump <mrs@cygnus.com>
3961
3962 * cvt.c (build_up_reference): Make the INDIRECT_BIND case come after
3963 code that ensures that copy ctors are used if appropriate.
3964
3965Tue Jan 30 17:35:14 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3966
3967 * init.c (build_vec_delete): Only give an error if base isn't an
3968 error_mark_node.
3969
3970Mon Jan 29 17:09:06 1996 Mike Stump <mrs@cygnus.com>
3971
3972 * spew.c (do_aggr): `new struct S;' isn't a forward declaration.
3973 (yylex): If we see `new', keep slurping.
3974
3975Thu Jan 25 18:31:36 1996 Mike Stump <mrs@cygnus.com>
3976
3977 * class.c (finish_struct_1): Move code for handling anon unions...
3978 (finish_struct_anon): to here. Fixup so that we do the offset
3979 calculations right, and so that the fields are physically moved to
3980 the containers's chain.
3981
3982Thu Jan 25 18:27:37 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3983
3984 * decl.c (grokdeclarator): Avoid trying to get an operand off an
3985 identifier node.
3986
3987Wed Jan 24 11:25:30 1996 Jim Wilson <wilson@chestnut.cygnus.com>
3988
3989 * typeck.c (pointer_int_sum): Use TYPE_PRECISION (sizetype) not
3990 POINTER_SIZE to agree with expr.c.
3991
3992Thu Jan 25 13:01:23 1996 Mike Stump <mrs@cygnus.com>
3993
3994 * search.c (lookup_field): Don't report ambiguities if protect is 0,
3995 instead return NULL_TREE.
3996
3997Wed Jan 24 13:01:26 1996 Mike Stump <mrs@cygnus.com>
3998
3999 * class.c (finish_struct_1): Call warn_hidden if we want warnings
4000 about overloaded virtual functions.
4001 (warn_hidden): New routine to warn of virtual functions that are
4002 hidden by other virtual functions, that are not overridden.
4003 (get_basefndecls): New routine, used by warn_hidden.
4004 (mark_overriders): New routine, used by warn_hidden.
4005 * search.c (get_matching_virtual): Remove old warning that just
4006 isn't very useful.
4007
4008Tue Jan 23 12:26:10 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4009
4010 * decl.c (output_builtin_tdesc_entries): #if 0 the function definition.
4011
4012 * typeck.c (null_ptr_cst_p): Delete unused fn.
4013 (build_function_call_maybe): Delete unused fn.
4014
4015 * expr.c (extract_init): #if 0 the code after unconditional return 0
4016 for now.
4017
4018 Delete old cadillac code.
4019 * edsel.c: Remove file.
4020 * Make-lang.in (CXX_SRCS): Take edsel.c off the list.
4021 * Makefile.in (CXX_OBJS): Delete edsel.o.
4022 (edsel.o): Delete rule.
4023 * cp-tree.h (flag_cadillac): Delete var decl.
4024 * lang-options.h: Delete "-fcadillac" and "-fno-cadillac".
4025 * decl2.c (flag_cadillac): Delete var definition.
4026 (lang_decode_option): Delete handling of -fcadillac and -fno-cadillac.
4027 (grokfield): Delete code depending on flag_cadillac.
4028 (finish_anon_union): Likewise.
4029 * class.c (finish_struct_1): Likewise.
4030 (pushclass): Likewise.
4031 (popclass): Likewise.
4032 (push_lang_context): Likewise.
4033 (pop_lang_context): Likewise.
4034 * decl.c (init_decl_processing): Likewise.
4035 (start_decl): Likewise.
4036 (cp_finish_decl): Likewise.
4037 (xref_tag): Likewise.
4038 (finish_enum): Likewise.
4039 (start_function): Likewise.
4040 (finish_function): Likewise.
4041 (finish_stmt): Likewise.
4042 * lex.c (lang_init): Likewise.
4043 (check_newline): Likewise.
4044
4045 * lex.c (do_pending_inlines): Delete synthesized method kludge.
4046
4047 Delete defunct, ancient garbage collection implementation.
4048 * rtti.c: New file with the RTTI stuff from gc.c.
4049 * gc.c: Removed file (moved the remaining stuff into rtti.c).
4050 * Makefile.in (CXX_OBJS): Replace gc.o with rtti.o.
4051 (rtti.o): New rule, replacing gc.o.
4052 * Make-lang.in (CXX_SRCS): Replace gc.c with rtti.c.
4053 * cp-tree.h: Delete gc-related fn decls.
4054 (DECL_GC_OFFSET): Delete macro.
4055 (flag_gc): Delete extern decl.
4056 * decl.c (current_function_obstack_index): Delete var decl.
4057 (current_function_obstack_usage): Delete var decl.
4058 (start_function): Delete clearing of current_function_obstack_index
4059 and current_function_obstack_usage.
4060 (init_decl_processing): Delete code relying on -fgc.
4061 Delete call to init_gc_processing.
4062 (cp_finish_decl): Delete calls to build_static_gc_entry and
4063 type_needs_gc_entry. Delete gc code setting DECL_GC_OFFSET.
4064 (store_parm_decls): Delete -fgc calls to cp_expand_decl_cleanup
4065 and to expand_expr of a __gc_main call.
4066 (maybe_gc_cleanup): Delete var decl.
4067 (finish_function): Delete call to expand_gc_prologue_and_epilogue.
4068 * decl2.c (flag_gc): Delete var decl.
4069 (lang_f_options): Delete offering of -fgc.
4070 (lang_decode_option): Delete -fgc and -fno-gc handling.
4071 (get_temp_regvar): Delete gc code.
4072 * init.c (build_new): Delete gc code.
4073 * lex.c (init_lex): Delete checking of flag_gc.
4074
4075 * typeck.c (convert_arguments): Delete gc code.
4076 (build_component_addr): Delete -fgc warning.
4077 (build_modify_expr): Delete gc code.
4078
4079 * decl2.c (build_push_scope): Delete fn.
4080 * cp-tree.h (build_push_scope): Delete decl.
4081
4082 * search.c (clear_search_slots): Delete fn.
4083 * cp-tree.h (clear_search_slots): Delete decl.
4084
4085 * search.c (tree_needs_constructor_p): Delete fn.
4086 * cp-tree.h (tree_needs_constructor_p): Delete decl.
4087
4088 * tree.c (id_cmp): Delete fn.
4089
4090 * tree.c (set_fnaddr_from_vtable_entry): Delete fn.
4091 * cp-tree.h (set_fnaddr_from_vtable_entry): Delete decl.
4092
4093 * tree.c (decl_value_member): Delete fn.
4094 * cp-tree.h (decl_value_member): Delete decl.
4095
4096 * tree.c (list_hash_lookup_or_cons): Delete fn.
4097 * cp-tree.h (list_hash_lookup_or_cons): Delete decl.
4098
4099 * method.c (cplus_exception_name): Delete fn.
4100 (EXCEPTION_NAME_{PREFIX, LENGTH}): Delete macros.
4101
4102 * spew.c (shift_tokens): Delete fn.
4103
4104Mon Jan 22 17:49:33 1996 Jason Merrill <jason@yorick.cygnus.com>
4105
4106 * except.c (init_exception_processing): Pass 1 to needs_pop in calls
4107 to cp_finish_decl.
d11ad92e 4108 * parse.y: Likewise.
9e9ff709
MS
4109
4110Mon Jan 22 17:34:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4111
4112 * tree.c (build_cplus_staticfn_type): Delete function definition;
4113 never used.
4114 * cp-tree.h (build_cplus_staticfn_type): Delete decl.
4115
4116 * tree.c (virtual_member): Delete function definition; never used.
4117 * cp-tree.h (virtual_member): Delete decl.
4118
45537677
MS
4119Fri Jan 19 18:03:14 1996 Mike Stump <mrs@cygnus.com>
4120
4121 * typeck.c (build_component_ref): Handle getting vbase pointers
4122 out of complex multiple inheritance better.
4123
4124Fri Jan 19 16:27:40 1996 Mike Stump <mrs@cygnus.com>
4125
4126 * typeck.c (build_object_ref): Make sure we use the real type, not
4127 any reference type.
4128
4129Fri Jan 19 16:01:47 1996 Mike Stump <mrs@cygnus.com>
4130
4131 * tree.c (build_exception_variant): Don't create new types if we
4132 don't have to, also build new types on the right obstack.
4133
4134Fri Jan 19 14:09:44 1996 Jason Merrill <jason@yorick.cygnus.com>
4135
4136 * decl.c (store_bindings): Split out from push_to_top_level.
9e9ff709
MS
4137 (push_to_top_level): Call it for b->type_shadowed on class binding
4138 levels.
45537677
MS
4139
4140Fri Jan 19 13:53:14 1996 Mike Stump <mrs@cygnus.com>
4141
4142 * search.c (expand_upcast_fixups): Fix so that offsets stored in
4143 vbase_offsets are always right. Fixes a problem where virtual base
4144 upcasting and downcasting could be wrong during conversions on this
4145 during virtual function dispatch at ctor/dtor time when dynamic
4146 vtable fixups for deltas are needed. This only sounds easier than
4147 it is. :-)
4148 (fixup_virtual_upcast_offsets): Change to reflect new calling
4149 convention for expand_upcast_fixups.
4150
4151Fri Jan 19 12:23:08 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4152
4153 * decl2.c (grokbitfield): Strip the NOPs from WIDTH before we
4154 check that it's usable as the bitfield width.
4155
4156Wed Jan 17 21:22:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4157
4158 * decl2.c (grokfield): Call cplus_decl_attributes with the attrlist.
4159 Pass a null tree to grokdeclarator for its ATTRLIST arg, since it's
4160 only ever used for functions in it.
4161
4162Wed Jan 17 12:10:38 1996 Jason Merrill <jason@yorick.cygnus.com>
4163
4164 * parse.y (qualified_type_name): Use the TYPE_DECL, not the type.
d11ad92e 4165 (nested_type): Likewise.
45537677
MS
4166 (nested_name_specifier): Use lastiddecl.
4167
4168 * decl.c (grokdeclarator): Adjust accordingly.
d11ad92e
MS
4169 * init.c (expand_member_init): Likewise.
4170 * parse.y (base_class): Likewise.
4171 * typeck2.c (build_functional_cast): Likewise.
45537677
MS
4172
4173 * typeck2.c (build_functional_cast): Fill in name after we've
4174 checked for non-aggr type.
4175
be99da77
MS
4176Wed Jan 17 10:18:01 1996 Mike Stump <mrs@cygnus.com>
4177
4178 * decl2.c (warn_pointer_arith): Default to on.
4179
4180Tue Jan 16 12:45:38 1996 Jason Merrill <jason@yorick.cygnus.com>
4181
4182 * lex.c (is_rid): New function.
4183 * decl.c (grokdeclarator): Diagnose reserved words used as
4184 declarator-ids.
4185
4186Tue Jan 16 11:39:40 1996 Jason Merrill <jason@yorick.cygnus.com>
4187
4188 * tree.c (get_decl_list): Don't lose cv-quals.
4189
4190 * decl.c (grokdeclarator): Fix SCOPE_REF handling and diagnose
4191 typespecs used as declarator-ids.
4192
4193Tue Jan 16 11:09:42 1996 Mike Stump <mrs@cygnus.com>
4194
4195 * decl.c (poplevel): When poping a level, don't give a warning for
4196 any subblocks that already exist.
4197
4198Tue Jan 16 00:25:33 1996 Jason Merrill <jason@yorick.cygnus.com>
4199
4200 * typeck.c (build_object_ref): Finish what I started.
4201
4202 * parse.y (qualified_type_name): Don't check TYPE_BUILT_IN.
4203
4204 * decl2.c (constructor_name_full): Handle TEMPLATE_TYPE_PARMs.
4205
4206 * decl.c (grokdeclarator): Also accept TEMPLATE_TYPE_PARM as a
9e9ff709 4207 scope.
be99da77
MS
4208
4209Mon Jan 15 16:19:32 1996 Jason Merrill <jason@yorick.cygnus.com>
4210
4211 * decl.c (xref_tag): Handle passing a type in directly.
4212
4213 * parse.y (qualified_type_name): Pull out the type.
d11ad92e 4214 (nested_type): Likewise.
be99da77
MS
4215 Take types directly instead of as identifiers.
4216 * call.c (build_scoped_method_call): Take types directly instead of
9e9ff709 4217 as identifiers.
d11ad92e
MS
4218 * decl.c (xref_basetypes): Likewise.
4219 * init.c (expand_member_init): Likewise.
4220 (build_member_call): Likewise.
4221 (build_offset_ref): Likewise.
4222 * typeck2.c (build_scoped_ref): Likewise, remove bogus code.
4223 * method.c (do_build_assign_ref): Likewise.
be99da77
MS
4224 * decl.c (grokdeclarator): Handle a type appearing as the
4225 declarator-id for constructors.
4226 * method.c (do_build_copy_constructor): current_base_init_list now
4227 uses the types directly, not their names.
d11ad92e
MS
4228 * init.c (sort_base_init): Likewise.
4229 (expand_member_init): Likewise.
be99da77 4230 * init.c (is_aggr_type): New function, like is_aggr_typedef.
be99da77 4231
d11ad92e 4232Mon Jan 15 08:45:01 1996 Jeffrey A Law <law@cygnus.com>
be99da77
MS
4233
4234 * tree.c (layout_basetypes): Call build_lang_field_decl instead
4235 of build_lang_decl if first arg is a FIELD_DECL.
be99da77
MS
4236
4237Thu Jan 11 14:55:07 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4238
4239 * decl.c (cp_finish_decl): Only clear TREE_USED if DECL_NAME is
4240 non-empty.
4241 * except.c (expand_start_catch_block): Set TREE_USED to avoid
4242 warnings about the catch handler.
4243
4244Mon Jan 8 17:35:12 1996 Jason Merrill <jason@yorick.cygnus.com>
4245
4246 * typeck.c (build_modify_expr): Use a COMPOUND_EXPR instead of
9e9ff709 4247 expand_target_expr.
be99da77
MS
4248
4249Thu Jan 4 12:30:32 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4250
4251 Fix access control to use trees rather than integers.
4252 * class.c (access_{default, public, protected, private,
4253 default_virtual, public_virtual, private_virtual}_node): Add
4254 definitions.
4255 (init_class_processing): Do creation of those nodes.
4256 * cp-tree.h (access_type): Delete enum decl.
4257 (access_{default, public, protected, private, default_virtual,
4258 public_virtual, private_virtual}_node): Add decls.
4259 (compute_access): Change return type.
4260 * search.c (compute_access): Have tree return type, instead of enum.
4261 (lookup_field): Declare THIS_V and NEW_V to be tree nodes.
4262 * lex.c (real_yylex): Use yylval.ttype for giving the value of the
4263 access_* node for each of RID_{PUBLIC, PRIVATE, PROTECTED}.
4264 * parse.y (VISSPEC): Make ttype rather than itype.
4265 (base_class_access_list): Likewise.
4266 * *.[cy]: Change all refs of `access_public' to `access_public_node',
4267 etc.
4268 * call.c (build_method_call): Make ACCESS be a tree.
4269 * class.c (alter_access, finish_struct_1, filter_struct): Likewise.
4270 * cvt.c (convert_to_aggr): Likewise.
4271 * init.c (build_offset_ref, resolve_offset_ref, build_delete):
4272 Likewise.
4273 * method.c (hack_identifier): Likewise.
4274 * typeck.c (build_component_ref_1, build_component_ref): ): Likewise.
4275
4276Thu Jan 4 11:02:20 1996 Mike Stump <mrs@cygnus.com>
4277
4278 * typeck.c (pointer_int_sum, pointer_diff): Make code agree with C
4279 frontend, and make it more consistent with respect to
4280 warn_pointer_arith.
4281
4282Tue Jan 2 00:13:38 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
4283
4284 * decl.c (pushdecl): Check for duplicate parameter names.
4285
4286Wed Jan 3 09:25:48 1996 Mike Stump <mrs@cygnus.com>
4287
4288 * decl.c (expand_static_init): Call assemble_external for atexit.
4289
4290Wed Jan 3 07:55:19 1996 Mike Stump <mrs@cygnus.com>
4291
4292 * except.c (do_unwind): Remove some generated dead code.
4293 (eh_outer_context): New routine, factor out some common code from
4294 expand_builtin_throw and end_eh_unwinder. Add code to do return
4295 address masking for the PA.
4296 (expand_builtin_throw): Use eh_outer_context instead of open coding
4297 it here.
d11ad92e 4298 (end_eh_unwinder): Likewise.
be99da77
MS
4299
4300Tue Jan 2 17:00:56 1996 Mike Stump <mrs@cygnus.com>
4301
4302 * except.c (expand_throw): Call assemble_external for __empty, if we
4303 use it.
4304
21451173
MS
4305Thu Dec 28 11:13:15 1995 Mike Stump <mrs@cygnus.com>
4306
4307 * except.c (expand_builtin_throw): Use RETURN_ADDR_OFFSET instead of
4308 NORMAL_RETURN_ADDR_OFFSET.
d11ad92e 4309 (end_eh_unwinder): Likewise.
21451173
MS
4310
4311Wed Dec 27 22:18:16 1995 Mike Stump <mrs@cygnus.com>
4312
4313 * gc.c (build_dynamic_cast): Make sure we don't cast away const
4314 when dealing with references, and make sure we handle dynamic
4315 casting to a cv qualified reference.
4316
4317Thu Dec 21 23:50:35 1995 Mike Stump <mrs@cygnus.com>
4318
4319 * except.c (struct eh_context): New structure top hold eh context
4320 information.
4321 (push_eh_context): New routine.
d11ad92e 4322 (pop_eh_context): Likewise.
21451173 4323 * decl.c (push_cp_function_context): Use them.
d11ad92e 4324 (pop_cp_function_context): Likewise.
21451173
MS
4325
4326Wed Dec 20 12:42:51 1995 Jason Merrill <jason@yorick.cygnus.com>
4327
4328 * decl2.c (finish_file): Also prune uninteresting functions in the
4329 inline emission loop.
4330
d11ad92e 4331Wed Dec 20 02:32:07 1995 Jeffrey A Law <law@cygnus.com>
21451173
MS
4332
4333 * sig.c (build_signature_table_constructor): Mark functions
4334 in the signature as referenced.
4335
4336Tue Dec 19 22:36:56 1995 Jason Merrill <jason@yorick.cygnus.com>
4337
4338 * decl2.c (finish_file): Do all the vtable/synthesis stuff before
4339 the inline emission stuff.
4340
72b7eeff
MS
4341Mon Dec 18 15:51:33 1995 Jason Merrill <jason@yorick.cygnus.com>
4342
4343 * cp-tree.h, decl2.c (flag_weak): New flag to control the use of
9e9ff709 4344 weak symbols.
72b7eeff
MS
4345 * lang-options.h: Add -f{no-,}weak.
4346 * decl.c (init_decl_processing): If the target does not support weak
4347 symbols, don't use them.
4348 * decl2.c, pt.c: s/SUPPORTS_WEAK/flag_weak/.
4349
4350Sun Dec 17 21:13:23 1995 Rusty Russell <rusty@adelaide.maptek.com.au>
4351
4352 * init.c (expand_member_init): warning for base init after members.
4353
72b7eeff
MS
4354Fri Dec 15 15:32:18 1995 Jason Merrill <jason@yorick.cygnus.com>
4355
4356 * cvt.c (build_expr_type_conversion): Don't convert to a reference
4357 type.
4358
4359Thu Dec 14 16:05:58 1995 Mike Stump <mrs@cygnus.com>
4360
4361 * method.c (report_type_mismatch): Improve wording for volatile
4362 mismatches.
4363
4364Thu Dec 14 14:16:26 1995 Mike Stump <mrs@cygnus.com>
4365
4366 * init.c (expand_aggr_init_1): Use expand_aggr_init_1 instead of
9e9ff709 4367 expand_assignment, as the later doesn't handle things that have
72b7eeff
MS
4368 copy constructors well. The compiler would do bitwise copying,
4369 instead of ctor calling in some cases.
4370
4371Wed Dec 13 17:05:54 PST 1995 Paul Eggert <eggert@twinsun.com>
4372
4373 * g++.c (my_strerror): Return "cannot access" if errno is 0.
4374 (pfatal_with_name, perror_exec): Don't assume that
4375 the returned value from my_strerror contains no '%'s.
4376 (concat): Remove.
4377 (sys_nerror): Declare only if HAVE_STRERROR is not defined.
4378
4379Wed Dec 13 16:22:38 1995 Jason Merrill <jason@yorick.cygnus.com>
4380
4381 Lose CLASSTYPE_METHODS/DECL_NEXT_METHOD chain; make
4382 TYPE_METHODS/TREE_CHAIN mean what they used to.
4383 * decl2.c (constructor_name_full): Refer to CLASSTYPE_METHOD_VEC
4384 instead of TYPE_METHODS.
4385 * decl.c (duplicate_decls): Lose references to DECL_NEXT_METHOD.
d11ad92e 4386 * tree.c (tree_copy_lang_decl_for_deferred_output): Likewise.
72b7eeff
MS
4387 * cp-tree.h (CLASSTYPE_METHODS): Lose.
4388 (CLASSTYPE_METHOD_VEC): Point to lang_spec->methods instead of
4389 TYPE_METHODS.
4390 (struct lang_decl): Lose next_method field.
4391 (DECL_NEXT_METHOD): Lose.
4392 * class.c (finish_struct_methods): Don't mess with TYPE_METHODS.
4393 (finish_struct): Just use TYPE_METHODS; we don't need fn_fields
4394 anymore.
4395 (finish_struct_methods): Don't mess with the TREE_CHAINs in
4396 fn_fields.
4397
4398 * search.c (add_conversions): Don't use TREE_CHAIN to traverse method
4399 vector.
4400
4401 * call.c (build_method_call): Synthesize here even when not inlining.
d11ad92e 4402 * typeck.c (build_function_call_real): Likewise.
72b7eeff
MS
4403
4404Wed Dec 13 15:02:39 1995 Ian Lance Taylor <ian@cygnus.com>
4405
4406 * cp/lex.c (check_newline): If DBX_DEBUGGING_INFO and write_symbols
4407 == DBX_DEBUG, call dbxout_start_new_source_file and
4408 dbxout_resume_previous_source_file when appropriate.
4409
4410Tue Dec 12 20:38:55 1995 Mike Stump <mrs@cygnus.com>
4411
4412 * except.c (start_anon_func): Push to the top level.
4413 (end_anon_func): Pop from the top level.
4414
4415Mon Dec 11 18:56:14 1995 Mike Stump <mrs@cygnus.com>
4416
4417 * cp-tree.h (build_cleanup): New routine to build cleanups.
4418 * decl.c (expand_static_init): Use build_cleanup to build a cleanup
4419 call at ctor time and use atexit to run it later.
4420 * decl2.c (build_cleanup): New routine, taken from finish_file.
4421 (finish_file): Use build_cleanup instead, and don't put function
4422 local statics in global dtor list.
4423
4424Wed Dec 6 14:34:29 1995 Mike Stump <mrs@cygnus.com>
4425
4426 * except.c (expand_throw): Ensure that we have cleanups, if we try
4427 and expand cleanups.
4428
4429Wed Dec 6 11:48:21 1995 Mike Stump <mrs@cygnus.com>
4430
4431 * except.c (expand_throw): Add logic to manage dynamic cleanups for
4432 the EH object.
4433 (expand_end_catch_block): Use the magic of expand_goto, instead of
4434 emit_jump so that we get the cleanup for any catch clause parameter
4435 and the cleanup for the exception object. Update to reflect label
4436 changes.
4437 (push_eh_cleanup): New routine to register a cleanup for an
4438 exception object.
9e9ff709 4439 (empty_fndecl): Used to default cleanup actions to
72b7eeff
MS
4440 nothing.
4441 (init_exception_processing): Setup empty_fndecl. Setup
4442 saved_cleanup.
4443 (expand_start_catch_block): Update to reflect label changes. Call
4444 push_eh_object to register the cleanup for the EH object.
4445 (start_anon_func): New routine to start building lambda expressions
4446 from trees.
4447 (end_anon_func): New routine to end them.
4448 (struct labelNode): Change so that we can use tree labels, or rtx
4449 labels.
4450 (saved_cleanup): Object to check for dynamic cleanups for the
4451 exception handling object.
4452 (push_label_entry): Change so that we can use tree labels, or rtx
4453 labels.
d11ad92e
MS
4454 (pop_label_entry): Likewise.
4455 (top_label_entry): Likewise.
72b7eeff
MS
4456 (expand_start_all_catch): Use tree label instead of rtx label, so
4457 that we can get the magic of expand_goto.
4458 (expand_end_all_catch): Update to reflect label changes.
4459
4460 * class.c (build_vfn_ref): Remove building_cleanup logic, as we now
4461 use UNSAVE_EXPRs.
4462 typeck.c (get_member_function_from_ptrfunc): Remove remnants of
4463 building_cleanup logic, as we now use UNSAVE_EXPRs.
4464 * cp-tree.h (unsave_expr): Declare it.
4465 * decl.c (building_cleanup): Remove.
4466 (maybe_build_cleanup): Remove building_cleanup logic, and use
4467 UNSAVE_EXPR instead.
4468
4469Sun Dec 3 01:34:58 1995 Mike Stump <mrs@cygnus.com>
4470
4471 * gc.c (build_t_desc): Update error message to say <typeinfo>.
4472
4473Thu Nov 30 12:30:05 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
4474
4475 * decl.c (pushdecl): Only warn about shadowing a local variable if
4476 warn_shadow is true.
4477
4478Sun Nov 26 16:06:55 1995 Rusty Russell <rusty@adelaide.maptek.com.au>
4479
4480 * typeck.c (build_binary_op_nodefault): Added warning about
4481 comparisons between different enum types with -Wall, unless
4482 -fenum-int-equiv set.
4483
4484Wed Nov 22 15:44:02 1995 Mike Stump <mrs@cygnus.com>
4485
4486 * class.c (finish_struct_1): Skip down to the inner type in
4487 multidimensional arrays. Ensures ctors will be made for types that
4488 need constructing.
4489
4490Wed Nov 22 14:19:22 1995 Mike Stump <mrs@cygnus.com>
4491
4492 * decl.c (last_dtor_insn): New to track the last compiler generated
4493 insn in a dtor.
4494 (store_parm_decls): Set it.
4495 (finish_function): Use it to see if the dtor is empty. Avoid doing
4496 vtable setup all the time, if we can.
4497 (struct cp_function): Add last_dtor_insn.
4498 (push_cp_function_context): Save it.
4499 (pop_cp_function_context): Restore it.
4500
4501Wed Nov 22 11:52:19 1995 Paul Russell <Rusty.Russell@adelaide.maptek.com.au>
4502
4503 * typeck.c (build_unary_op): Set TREE_NO_UNUSED_WARNING to avoid
9e9ff709 4504 warnings.
72b7eeff
MS
4505
4506Tue Nov 21 17:15:23 1995 Mike Stump <mrs@cygnus.com>
4507
4508 * typeck.c (expand_target_expr): Make sure targets get put into the
4509 current temp_slot_level, so that the free_temp_slots call will reuse
4510 them.
4511
4512Tue Nov 21 13:32:03 1995 Mike Stump <mrs@cygnus.com>
4513
4514 * class.c (finish_struct_1): Delay delta fixups for virtual bases
4515 until after we have done the hard virtuals, to avoid a bogus `every
4516 virtual function must have a unique final overrider' for virtual
4517 functions that are only overridden by hard virtuals.
4518
4519Thu Nov 9 13:35:30 1995 Jason Merrill <jason@yorick.cygnus.com>
4520
4521 * pt.c (do_function_instantiation): Don't try to find a file-scope
9e9ff709 4522 template for a member function.
72b7eeff
MS
4523
4524Tue Nov 14 06:20:35 1995 Mike Stump <mrs@cygnus.com>
4525
4526 * g++.c (main): Add handling of -nodefaultlibs.
4527
4528Mon Nov 13 15:45:34 1995 Mike Stump <mrs@cygnus.com>
4529
4530 * cp-tree.h (INDIRECT_BIND): Add a way for the frontend to
4531 distinguish between direct bindings of reference variables, and
4532 indirect bindings of reference variables.
4533 * cvt.c (build_up_reference): Use it.
4534 * typeck.c (convert_arguments): Use it to indicate this is an
4535 indirect binding.
4536 * decl.c (cp_finish_decl): Ensure that we reuse stack slots as fast
4537 as they are unused.
d11ad92e
MS
4538 (expand_static_init): Likewise.
4539 (cplus_expand_expr_stmt): Likewise.
4540 * decl2.c (finish_file): Likewise.
4541 * init.c (perform_member_init): Likewise.
4542 (emit_base_init): Likewise.
4543 (expand_aggr_vbase_init_1): Likewise.
72b7eeff 4544
72b7eeff
MS
4545Fri Nov 10 09:18:09 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
4546
4547 * decl.c (push_namespace): Rewrite to use build_lang_decl, so we
4548 get a DECL_LANG_SPECIFIC node.
4549 * cp-tree.h (lang_decl_flags): Add new member `level'.
4550 (NAMESPACE_LEVEL): Don't use decl.arguments, instead use the
4551 decl_flags level member.
4552
4553Mon Nov 6 18:36:13 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
4554
4555 * call.c (build_method_call): Make sure instance has a
4556 TYPE_LANG_SPECIFIC node before we dive into it.
4557
d11ad92e 4558Sat Nov 4 20:01:52 1995 Jason Molenda <crash@phydeaux.cygnus.com>
72b7eeff
MS
4559
4560 * method.c (make_thunk): use TREE_SET_CODE to set thunk's tree code.
4561
4562Thu Nov 2 17:56:57 1995 Mike Stump <mrs@cygnus.com>
4563
4564 * decl.c (duplicate_decls): When smashing decls, smash staticness in
4565 the usual way.
4566
4567Thu Nov 2 16:44:02 1995 Mike Stump <mrs@cygnus.com>
4568
4569 * decl.c (poplevel): Handle the merging of subblocks of cleanups
4570 when finishing blocks that have already been created (usually due to
4571 the fixup goto code). Fixes bad debugging information.
4572
4573Wed Nov 1 12:33:53 1995 Jason Merrill <jason@yorick.cygnus.com>
4574
4575 * method.c (hack_identifier): Don't abort when we get a TREE_LIST
4576 that's not a list of overloaded functions.
4577
4578Wed Nov 1 11:38:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
4579
4580 * decl2.c (mark_vtable_entries): Check DECL_LANG_SPECIFIC on fn
4581 before trying to use DECL_ABSTRACT_VIRTUAL_P.
4582
4583Tue Oct 31 11:56:55 1995 Jason Merrill <jason@yorick.cygnus.com>
4584
4585 * decl2.c (mark_used): New function for hooking into setting of
4586 TREE_USED on decls.
4587 * call.c (build_method_call): Use it.
d11ad92e
MS
4588 * class.c (instantiate_type): Likewise.
4589 * init.c (build_offset_ref): Likewise. Don't call assemble_external
72b7eeff 4590 for all like-named functions.
d11ad92e 4591 * method.c (hack_identifier): Likewise.
72b7eeff
MS
4592 (emit_thunk): Don't call assemble_external.
4593 (make_thunk): Create thunk as a FUNCTION_DECL so that it
4594 gets the right mode and ENCODE_SECTION_INFO works.
4595
4596 * parse.y: Use mark_used. Pass operator names to do_identifier.
4597 * lex.c (do_identifier): Handle operator names.
4598
4599 * decl2.c (grokclassfn): Tweak __in_chrg attributes.
4600
72b7eeff
MS
4601Thu Oct 26 16:45:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
4602
4603 * errfn.c: Include stdio.h.
4604 (cp_sprintf): Take out decl of sprintf, and cast sprintf to errorfn*.
4605
4606Wed Oct 25 18:58:41 1995 Mike Stump <mrs@cygnus.com>
4607
4608 * typeck2.c (digest_init): Always convert initializers to the
4609 right type.
4610
4611Wed Oct 25 13:25:24 1995 Mike Stump <mrs@cygnus.com>
4612
4613 * init.c (member_init_ok_or_else): Don't allow member initializers
4614 for indirect members, as it is invalid.
4615
4616Wed Oct 25 11:35:28 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
4617
4618 * decl.c (grokdeclarator): Don't allow `friend signed ()'.
4619
4620Fri Oct 20 10:30:59 1995 Mike Stump <mrs@cygnus.com>
4621
4622 * parse.y (for.init.statement): Catch compound statements inside for
4623 initializations, if we're being pedantic.
4624
4625Fri Oct 20 10:03:42 1995 Mike Stump <mrs@cygnus.com>
4626
4627 * decl.c (lookup_tag): Return NULL_TREE if we don't find what we are
4628 looking for.
4629
4630Thu Oct 19 14:26:10 1995 Mike Stump <mrs@cygnus.com>
4631
4632 * error.c (dump_expr): Don't core dump when a boolean expression is
4633 used as a default argument.
4634
4635Thu Oct 19 10:36:30 1995 Jason Merrill <jason@yorick.cygnus.com>
4636
4637 * class.c (finish_struct_bits): Check aggregate_value_p instead of
9e9ff709 4638 RETURN_IN_MEMORY.
72b7eeff
MS
4639
4640Wed Oct 18 18:12:32 1995 Jason Merrill <jason@yorick.cygnus.com>
4641
4642 * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE on a
4643 BLKmode type that would otherwise be returned in registers.
4644
4645Mon Oct 16 12:32:19 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
4646
4647 * g++.c (WITHLIBC): New macro.
4648 (main): Declare saw_libc. Use WITHLIBC if `-lc' was used; set
4649 saw_libc and pass it at the end if it was set.
4650
4651Wed Oct 11 16:30:34 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
4652
4653 * parse.y (fn.def1): Call split_specs_attrs in
4654 declmods notype_declarator case.
4655
21451173 4656Sun Nov 26 14:47:42 1995 Richard Kenner <kenner@mole.gnu.ai.mit.edu>
1b898c06
MS
4657
4658 * Version 2.7.2 released.
4659
4660Mon Nov 20 14:05:00 1995 Mike Stump <mrs@cygnus.com>
4661
4662 * g++.c (pfatal_with_name): Add missing third argument to concat.
4663
e7843f33
MS
4664Thu Oct 26 13:59:54 1995 Mike Stump <mrs@cygnus.com>
4665
4666 * init.c (expand_aggr_init): Handle cv qualifiers on the object's
4667 type.
4668
21451173 4669Sat Nov 11 08:25:55 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
07674418
MS
4670
4671 * Version 2.7.1 released.
4672
4673Thu Nov 2 17:02:47 1995 Jason Merrill <jason@yorick.cygnus.com>
4674
4675 * call.c (convert_harshness): Handle references to arrays.
4676
4677Fri Oct 27 14:20:21 1995 Jason Merrill <jason@yorick.cygnus.com>
4678
4679 * typeck.c (comp_target_types): Check multi-level pointer
4680 conversions in both directions.
4681
4682Tue Oct 17 21:39:05 1995 Jason Merrill <jason@yorick.cygnus.com>
4683
4684 * parse.y (explicit_instantiation): Fix 'extern template' with no
4685 return type.
4686
4687Mon Oct 16 14:35:20 1995 Jason Merrill <jason@yorick.cygnus.com>
4688
4689 * parse.y (explicit_instantiation): Support automatic instantiation
4690 of constructors.
4691 (named_class_head_*): Support out-of-class definition of nested
4692 types.
4693
f30432d7
MS
4694Wed Oct 11 12:20:56 1995 Mike Stump <mrs@cygnus.com>
4695
4696 * search.c (envelope_add_decl): New routine. Fix so that
4697 methods are hidden in the same way that other members are.
4698 (dfs_pushdecls): Cleanup and move functionality out of line,
4699 into envelope_add_decl.
4700
4701Tue Oct 10 15:46:01 1995 Mike Stump <mrs@cygnus.com>
4702
4703 * typeck.c (mark_addressable): Only call assemble_external if we
4704 have started the output file.
4705
4706Tue Oct 10 11:27:18 1995 Jason Merrill <jason@yorick.cygnus.com>
4707
4708 * decl.c (start_function): Fix earlier cv-quals change.
4709
4710Mon Oct 9 23:53:05 1995 Mike Stump <mrs@cygnus.com>
4711
4712 * parse.y (complex_direct_notype_declarator): Only push the class if
4713 we are not already in the class.
4714
4715Mon Oct 9 11:22:03 1995 Doug Evans <dje@canuck.cygnus.com>
4716
4717 * decl.c (duplicate_decls): Call merge_machine_decl_attributes.
4718 Update olddecl's attributes too.
4719 (grokdeclarator): #if 0 out call to build_decl_attribute_variant.
4720 * typeck.c (common_type): Call merge_machine_type_attributes.
4721
4722Fri Oct 6 14:44:27 1995 Mike Stump <mrs@cygnus.com>
4723
4724 * typeck.c (mark_addressable): Add missing call to
4725 assemble_external.
4726
f30432d7
MS
4727Wed Oct 4 15:06:39 1995 Mike Stump <mrs@cygnus.com>
4728
4729 * decl.c (store_parm_decls): Make sure the unwinder start comes
4730 before the exception specification start.
4731 * except.c (expand_exception_blocks): Make sure the unwinder end
4732 comes after the terminate protected catch clause region and after
4733 the end of the exception specification region.
4734
4735Wed Oct 4 12:47:02 1995 Jason Merrill <jason@yorick.cygnus.com>
4736
4737 * lex.c (real_yylex): Fix identifier case for linemode.
4738 (handle_sysv_pragma): Don't abort when we see a pragma we don't
4739 recognize.
4740
4741Tue Oct 3 14:09:46 1995 Mike Stump <mrs@cygnus.com>
4742
4743 * decl.c (store_parm_decls): Add a call to start_eh_unwinder.
4744 * except.c (init_exception_processing): __throw doesn't take any
4745 arguments.
d11ad92e 4746 (expand_builtin_throw): Likewise. Always use Pmode, instead of SImode
f30432d7
MS
4747 for all pointers. Use expand_builtin_return_addr to unwind the
4748 first level off the stack.
4749 (do_unwind): Always use Pmode, instead of SImode for all pointers.
4750 (expand_exception_blocks): Add a call to end_eh_unwinder.
4751 (start_eh_unwinder, end_eh_unwinder): New routines to build machine
4752 independent stack unwinders for function/method calls.
4753
4754Mon Oct 2 17:20:42 1995 Mike Stump <mrs@cygnus.com>
4755
4756 * tree.c (unsave_expr_now): Make sure we process the argument list
4757 of any called functions. Fixes incorrect code generation for
4758 cleanups.
4759
4760Mon Oct 2 13:04:16 1995 Mike Stump <mrs@cygnus.com>
4761
4762 * typeck.c (get_member_function_from_ptrfunc): Save function if it
4763 needs it. Cures core dump on things like (this->*(f()))().
4764
4765Sat Sep 23 22:51:25 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4766
4767 * decl.c (start_function): Conform to gcc cv-quals convention (no
4768 expression has a cv-qualified type) in RESULT_DECLs.
d11ad92e 4769 * method.c (make_thunk): Likewise.
f30432d7
MS
4770
4771Fri Sep 22 10:21:13 1995 Mike Stump <mrs@cygnus.com>
4772
4773 * decl.c (pushtag): Add in the namespace name for the tag.
4774
4775Thu Sep 21 13:11:13 1995 Mike Stump <mrs@cygnus.com>
4776
4777 * parse.y (maybe_base_class_list, base_class_list, base_class,
4778 base_class_access_list): Make sure we see the typenames for base
4779 classes.
4780 * lex.c (see_typename): Instead of failing to see a typename when
4781 there is no next token, perfer a typename, and get the next token.
4782
4783Wed Sep 20 12:35:27 1995 Michael Meissner <meissner@cygnus.com>
4784
4785 * decl.c (init_decl_processing): Add __builtin_expect.
4786
4787Tue Sep 19 16:48:11 1995 Mike Stump <mrs@cygnus.com>
4788
4789 * cvt.c (cp_convert_to_pointer): Don't allow leftover conversions to
4790 or from pointer to member functions, they must all be handled before
4791 this point.
4792
4793Fri Sep 15 17:14:47 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
4794
4795 * init.c (resolve_offset_ref): Fix wording of non-static member
4796 being referenced as a static.
4797
4798Fri Sep 15 12:39:11 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4799
4800 * typeck.c (build_indirect_ref): Only bash pointer if we actually
4801 call build_expr_type_conversion.
4802
4803Thu Sep 14 18:24:56 1995 Jason Merrill <jason@deneb.cygnus.com>
4804
4805 * cvt.c (build_expr_type_conversion): Handle conversion from
4806 reference.
4807 * typeck.c (build_indirect_ref): Avoid infinite recursion.
4808
4809Thu Sep 14 17:23:28 1995 Mike Stump <mrs@cygnus.com>
4810
4811 * decl.c (expand_start_early_try_stmts): New routine to start a try
4812 block at the start of the function, for function-try-blocks.
4813 * cp-tree.h (expand_start_early_try_stmts): Declare it.
4814 * parse.y (function_try_block): Use it, instead of doing it here, as
4815 we don't want to include rtl.h here, as that conflicts with RETURN
4816 in the parser.
4817
4818Wed Sep 13 18:32:24 1995 Mike Stump <mrs@cygnus.com>
4819
4820 * lex.c (reinit_parse_for_block): Support saving inline
4821 function-try-blocks, uses peekyylex.
4822 * parse.y (eat_saved_input): New rule, permit the parser to see that
4823 END_OF_SAVED_INPUT is ok, as it can see this when parsing the
4824 handlers of a function-try-block.
4825 (fndef): Use it.
4826 (component_decl): Make sure TRY and RETURN can come after fn.def2.
4827 * spew.c (peekyylex): New routine to peek at what will come next.
4828
cf54380f
JM
4829Wed Sep 13 16:52:06 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4830
f30432d7 4831 * typeck.c (comptypes): Tighten up comparisons of template type
9e9ff709 4832 parms.
f30432d7 4833
cf54380f
JM
4834 * decl.c (duplicate_decls): Turn off whining about virtual functions
4835 redeclared inline for now.
4836
f30432d7
MS
4837Wed Sep 13 11:13:40 1995 Mike Stump <mrs@cygnus.com>
4838
4839 * decl.c (store_in_parms): New routine to put things before we
4840 put base inits.
4841 * cp-tree.h (store_in_parms): Declare it.
4842 * decl.c (store_parm_decls): Use it to makr sure the starting of the
4843 eh spec comes before base inits.
4844 (finish_function): Use sequences instead of the obsolete
4845 reorder_insns.
4846 * parse.y (fndef): Enhance readability and maintainability. Update
4847 to include function_try_block syntax.
4848 (function_try_block): Add.
4849
4850Tue Sep 12 17:43:07 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
4851
4852 * call.c (convert_harshness): Use comptypes, not ==, to check if
4853 TYPE and PARMTYPE are equivalent on a function type.
4854
d11ad92e 4855Tue Sep 12 17:31:33 1995 Douglas Rupp <drupp@cs.washington.edu>
2453e8d1
DR
4856
4857 * Make-lang.in (cc1plus) : Removed unnecessary $(exeext).
4858
f30432d7
MS
4859Mon Sep 11 23:24:07 1995 Mike Stump <mrs@cygnus.com>
4860
4861 * except.c (expand_throw): Never allocate storage for thrown pointer
4862 to objects.
4863
4864Mon Sep 11 19:36:45 1995 Mike Stump <mrs@cygnus.com>
4865
4866 * except.c (expand_start_catch_block): Pointers to objects come
4867 back from catch matching already dereferenced, don't dereference
4868 again.
4869
4870Mon Sep 11 15:46:28 1995 Mike Stump <mrs@cygnus.com>
4871
4872 * except.c (expand_throw): Only decay the throw expression, don't do
4873 any default conversions. This is so that one can throw and catch
4874 characters, and not have them match integers.
4875
4876Mon Sep 11 13:46:45 1995 Mike Stump <mrs@cygnus.com>
4877
4878 * error.c (dump_aggr_type): Deal with anonymous unions that don't
4879 have a TYPE_NAME.
4880
38267a70
BK
4881Fri Sep 8 20:40:27 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
4882
4883 * lex.c (handle_sysv_pragma): Deal with getting a comma from yylex.
4884
f30432d7
MS
4885Fri Sep 8 15:51:41 1995 Mike Stump <mrs@cygnus.com>
4886
4887 * except.c (expand_end_eh_spec): Handle empty EH specifications.
4888
4889Fri Sep 8 15:27:22 1995 Mike Stump <mrs@cygnus.com>
4890
4891 * cp-tree.h (expand_start_eh_spec): Declare new routine.
d11ad92e 4892 (expand_end_eh_spec): Likewise.
f30432d7
MS
4893 * decl.c (store_parm_decls): Call expand_start_eh_spec to process
4894 exception specifications.
4895 * except.c (expand_leftover_cleanups): Remove unused parameter.
d11ad92e
MS
4896 (expand_end_catch_block): Likewise.
4897 (expand_exception_blocks): Likewise.
f30432d7
MS
4898 (expand_start_eh_spec): New routine to mark the start of an
4899 exception specification region.
4900 (expand_end_eh_spec): New routine to mark the end of an exception
4901 specification region.
4902 (expand_exception_blocks): Call expand_end_eh_spec to process
4903 exception specifications.
4904
b37d04bc
PB
4905Fri Sep 8 14:40:48 1995 Per Bothner <bothner@kalessin.cygnus.com>
4906
4907 * lex.c (do_identifier): Use global binding in preference of
4908 dead for local variable.
4909
f30432d7
MS
4910Wed Sep 6 19:32:59 1995 Mike Stump <mrs@cygnus.com>
4911
4912 * cp-tree.h (build_exception_variant): Remove used first argument.
d11ad92e
MS
4913 * decl.c (duplicate_decls): Likewise.
4914 (grokfndecl): Likewise.
4915 (revert_static_member_fn): Likewise.
4916 * decl2.c (grok_method_quals): Likewise.
4917 * tree.c (build_exception_variant): Likewise.
4918 * typeck.c (common_type): Likewise.
f30432d7
MS
4919 * decl2.c (grokclassfn): After changing the type, call
4920 build_exception_variant, if necessary.
4921
4922Tue Sep 5 15:56:27 1995 Mike Stump <mrs@cygnus.com>
4923
4924 * except.c (expand_throw): Run cleanups for the throw expression.
4925
d11ad92e 4926Wed Aug 30 15:24:38 1995 Stephen L. Favor <sfavor@tigger.intecom.com>
f30432d7
MS
4927
4928 * except.c (expand_builtin_throw): Moved gen_label_rtx calls beyond
4929 the store_parm_decls call which does initialization in the emit_*
4930 code concerning label numbering.
4931
4932Thu Aug 31 09:01:07 1995 Mike Stump <mrs@cygnus.com>
4933
4934 * except.c (expand_internal_throw): Let the frontend be responsible
4935 for managing all frontend EH parameters, the backend routine only
4936 needs to deal with backend values. type and value are no longer
4937 passed to __throw.
d11ad92e
MS
4938 (init_exception_processing): Likewise.
4939 (expand_start_all_catch): Likewise.
4940 (expand_end_all_catch): Likewise.
4941 (expand_leftover_cleanups): Likewise.
4942 (expand_end_catch_block): Likewise.
4943 (expand_builtin_throw): Likewise.
4944 (expand_throw): Likewise.
f30432d7
MS
4945
4946Tue Aug 29 15:04:36 1995 Jason Merrill <jason@phydeaux.cygnus.com>
4947
4948 * cp-tree.h (DECL_REAL_CONTEXT): Give the real declaration context
4949 for a decl.
4950 * decl.c (cp_finish_decl): Use it.
4951
4952Tue Aug 29 10:30:27 1995 Mike Stump <mrs@cygnus.com>
4953
4954 * except.c (expand_internal_throw): Oops, almost forgot type and
4955 value are now trees.
4956
4957Mon Aug 28 17:57:45 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
4958
4959 Fix the attribute handling to make sure they get noted before we
4960 create the function's RTL, in case they can affect that.
4961 * decl.c (grokfndecl): New arg ATTRLIST. Run
4962 cplus_decl_attributes before creating the decl's rtl.
4963 (grokdeclarator): New arg ATTRLIST, passed down into grokfndecl.
4964 (shadow_tag, groktypename, start_decl, start_method): Pass a
4965 NULL_TREE to grokdeclarator's new last arg.
4966 * decl2.c (grokfield): New arg ATTRLIST, passed into grokdeclarator.
4967 (grokbitfield, grokoptypename): Pass a NULL_TREE to
4968 grokdeclarator's new last arg.
4969 * except.c (expand_start_catch_block): Likewise.
4970 * pt.c (process_template_parm, end_template_decl,
4971 do_function_instantiation): Likewise.
4972 * cp-tree.h (grokfield): Add arg.
4973 (grokdeclarator): Move the prototype from here...
4974 * decl.h: ...to here.
4975 * lex.c (cons_up_default_function): Pass NULL_TREE to grokfield
4976 ATTRLIST argument.
4977 * parse.y: Create a list for the grokfield arg where appropriate,
4978 and pass it down instead of calling cplus_decl_attributes.
4979
4980Mon Aug 28 15:07:24 1995 Mike Stump <mrs@cygnus.com>
4981
4982 * except.c: Always allow turning on exception handling. Allow cross
4983 compilations to use EH.
4984
4985Thu Aug 24 17:39:24 1995 Mike Stump <mrs@cygnus.com>
4986
4987 * except.c (saved_pc, saved_throw_type, saved_throw_value): Use
4988 trees, instead of rtxs, and don't depend on using special machine
4989 dependent registers.
d11ad92e
MS
4990 (expand_internal_throw): Likewise.
4991 (init_exception_processing): Likewise.
4992 (expand_start_all_catch): Likewise.
4993 (expand_end_all_catch): Likewise.
4994 (expand_start_catch_block): Likewise.
4995 (expand_leftover_cleanups): Likewise.
4996 (expand_end_catch_block): Likewise.
4997 (expand_builtin_throw): Likewise.
4998 (expand_throw): Likewise.
f30432d7
MS
4999
5000Wed Aug 23 17:25:51 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5001
5002 * cvt.c (build_expr_type_conversion): Handle conversions to
5003 reference types.
5004
5005Wed Aug 23 15:33:59 1995 Mike Stump <mrs@cygnus.com>
5006
5007 * except.c (do_unwind): Work around backend bug with -fpic.
5008
fb409a19
PB
5009Tue Aug 22 17:20:07 1995 Per Bothner <bothner@kalessin.cygnus.com>
5010
5011 * decl2.c (flag_new_for_scope): Add a new mode that follows ANSI
5012 for-scoping, but supports (and warns about) old programs.
5013 Make the new mode (with value 1) the default.
5014 (lang_f_options): The on-value for flag_new_for_scope is now 2.
5015 * cp-tree.h (DECL_DEAD_FOR_LOCAL, DECL_ERROR_REPORTED): New macros
5016 (DECL_SHADOWED_FOR_VAR): Likewise.
5017 * decl.c (struct binding_level): New fields dead_vars_from_for
5018 and is_for_scope.
5019 (note_level_for_for): New function.
5020 (poplevel): Special processing if is_for_scope.
5021 (pushdecl): Warn if for-scope variable shadows local.
5022 * lex.c (do_identifier): Handle old (non-ANSI) for scoping,
5023 and warn if conflicts.
5024 * parse.y (FOR): Call note_level_for_for.
5025
f30432d7
MS
5026Mon Aug 21 10:28:31 1995 Jason Merrill <jason@deneb.cygnus.com>
5027
5028 * decl2.c (import_export_inline): Class interface hackery does not
5029 apply to synthesized methods.
5030
5031Sun Aug 20 16:29:00 1995 Mike Stump <mrs@cygnus.com>
5032
5033 * search.c (virtual_context): Find the right context more often.
5034 Solves a `recoverable compiler error, fixups for virtual function'
5035 problem.
5036
5037Sun Aug 20 13:53:24 1995 Mike Stump <mrs@cygnus.com>
5038
5039 * except.c (expand_start_all_catch): Ensure that we always transfer
5040 control to the right EH handler, by rethrowing the end label on the
5041 region, instead of hoping we are nested and falling through.
d11ad92e 5042 (expand_leftover_cleanups): Likewise.
f30432d7
MS
5043 (end_protect): Since we now rethrow the end label, put a
5044 nop after it, so that outer regions are recognized.
5045 * init.c (build_vec_delete_1): New routine to handle most of vector
5046 deleting, all code moved here from build_vec_delete.
5047 (build_array_eh_cleanup): Use build_vec_delete_1 to do all the real
5048 work.
5049 (expand_vec_init): If the array needs partial destructing, setup an
5050 EH region to handle it.
5051 (build_vec_delete): Move lots of code to build_vec_delete_1, use
5052 build_vec_delete_1 to do the grunt work.
5053
5054Sat Aug 19 14:25:33 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5055
5056 Handle decl attributes properly for function definitions without
5057 previous attribute-loaded declarations.
5058 * decl.c (start_function): New arg ATTRS. Add a call to
5059 cplus_decl_attributes with it before we create the RTL.
5060 * cp-tree.h (start_function): Update prototype.
5061 * parse.y (fn.def1): Pass ATTRS into start_function instead of
5062 trying to call cplus_decl_attributes too late. Pass a NULL_TREE
5063 for other use.
5064 * decl2.c (finish_file): Pass NULL_TREE as fourth arg to
5065 start_function.
5066 * method.c (synthesize_method): Likewise.
5067 * except.c (expand_builtin_throw): Likewise for start on __throw.
5068
5069Sat Aug 19 13:36:08 1995 Mike Stump <mrs@cygnus.com>
5070
5071 * class.c (set_rtti_entry): Turn on -fvtable-thunk -frtti support.
5072 This changes -fvtable-thunks vtable layout, so a recompile will be
5073 necessary, if you use -fvtable-thunks.
5074 (get_vtable_entry): Use n, instead of i to be consistent with the
5075 rest of the compiler.
d11ad92e 5076 (get_vtable_entry_n): Likewise.
f30432d7
MS
5077 (add_virtual_function): Add a slot for the tdesc, if -fvtable-thunks
5078 are being used.
d11ad92e 5079 (finish_struct_1): Likewise.
f30432d7
MS
5080 (skip_rtti_stuff): New routine to collapse similar code from many
5081 different parts of the compiler. I think I got them all.
5082 (modify_one_vtable): Use it.
d11ad92e
MS
5083 (fixup_vtable_deltas1): Likewise.
5084 (override_one_vtable): Likewise.
5085 * decl2.c (mark_vtable_entries): Likewise.
5086 * tree.c (debug_binfo): Likewise.
5087 * search.c (expand_upcast_fixups): Likewise.
5088 (get_abstract_virtuals_1): Likewise. Use virtuals, instead of tmp to
f30432d7 5089 consistent with the rest of the compiler.
d11ad92e 5090 (get_abstract_virtuals): Likewise.
f30432d7
MS
5091 * cp-tree.h (skip_rtti_stuff): New routine, declare it.
5092 * gc.c (build_headof): Support -fvtable-thunk and -frtti together.
d11ad92e 5093 (build_typeid): Likewise.
f30432d7
MS
5094 (build_classof): Remove old style way of doing rtti. Remove support
5095 for `classof' and `headof'.
d11ad92e
MS
5096 * gxx.gperf: Likewise.
5097 * hash.h: Likewise.
5098 * parse.y: Likewise.
f30432d7
MS
5099
5100Fri Aug 18 17:31:58 1995 Jason Merrill <jason@deneb.cygnus.com>
5101
5102 * decl.c (start_function): Clear ctor_label and dtor_label.
5103
5104 * class.c (finish_struct_1): Fix handling of access decls.
5105
5106Tue Aug 15 19:21:54 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5107
5108 * class.c (finish_struct): Only do minimal processing here, so it
5109 can be used for class template definitions, as well.
5110 (finish_struct_1): New function with the rest of the code.
5111
5112Tue Aug 15 09:46:16 1995 Mike Stump <mrs@cygnus.com>
5113
5114 * class.c (prepare_fresh_vtable): On second though, always build the
5115 offset (see Aug 10 change), unless -fvtable-thunks is given. It
5116 does this by calling the new routine set_rtti_entry.
d11ad92e 5117 (finish_struct): Likewise.
f30432d7
MS
5118 (set_rtti_entry): New routine to update the rtti information at the
5119 start of the vtable.
5120
5121Mon Aug 14 12:21:22 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5122
5123 * error.c (dump_decl, case IDENTIFIER_NODE): Only work on a dtor
5124 if it's declared in the C++ language spec.
5125 (dump_function_decl): Likewise.
5126 (dump_function_name): Likewise.
5127 (ident_fndecl): Make sure we got something back from lookup_name.
5128 * decl.c (start_function): Likewise.
5129
5130Fri Aug 11 16:52:15 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5131
5132 * call.c (build_method_call): Don't call build_new when calling a
5133 constructor without an instance.
5134
5135Thu Aug 10 20:00:17 1995 Mike Stump <mrs@cygnus.com>
5136
5137 * class.c (prepare_fresh_vtable): Always build the offset to the
5138 complete object, as it doesn't cost much. This allows dynamic_cast
5139 to void * to work when -frtti isn't given.
d11ad92e 5140 (finish_struct): Likewise.
f30432d7
MS
5141
5142Thu Aug 10 16:31:28 1995 Mike Stump <mrs@cygnus.com>
5143
5144 * except.c (build_eh_type): Split out some functionality to new
5145 routine named build_eh_type_type.
5146 (build_eh_type_type): New routine.
5147 (expand_start_catch_block): Use build_eh_type_type, as we never want
5148 the dynamic type of the catch parameter, just the static type.
5149 Fixes core dumps when -frtti is used and one catchs pointers to
5150 classes.
5151
5152Thu Aug 10 14:55:29 1995 Mike Stump <mrs@cygnus.com>
5153
5154 * except.c (expand_builtin_throw): Since we now use normal calling
5155 conventions for __throw, we have to remove the first layer off the
5156 stack, so that the next context we search for handlers is the outer
5157 context instead of the context that had the call to __throw, if we
5158 don't immediately find the desired context.
5159
5160Tue Aug 8 17:44:23 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5161
5162 * tree.c (cp_expand_decl_cleanup): Returns int, not tree.
5163 * cp-tree.h: Update.
5164
5165 * parse.y (template_type_parm): Add support for `typename'.
5166
5167Tue Aug 8 12:06:31 1995 Mike Stump <mrs@cygnus.com>
5168
5169 * except.c (expand_internal_throw): New internal routine to throw a
5170 value.
5171 (expand_end_all_catch, expand_leftover_cleanups): All throwers
5172 changed to use `expand_internal_throw' instead of jumping to throw
5173 label.
d11ad92e 5174 (expand_end_catch_block, expand_throw): Likewise.
f30432d7
MS
5175 (throw_label): Removed.
5176 (expand_builtin_throw): Changed so that EH parameters are passed by
5177 normal function call conventions. Completes Aug 4th work.
5178
5179Fri Aug 4 17:17:08 1995 Mike Stump <mrs@cygnus.com>
5180
5181 * cp-tree.h (expand_builtin_throw): Declare it.
5182 * decl2.c (finish_file): Call expand_builtin_throw.
5183 * except.c (make_first_label): Remove.
5184 (init_exception_processing): Don't use a LABEL_REF for throw_label,
5185 instead use a SYMBOL_REF, this is so that we don't use LABEL_REFs in
5186 other functions that don't really appear in those functions. This
5187 solves a problem where cc1plus consumed exponential amounts of
5188 memory when -Wall was used.
5189 (expand_end_all_catch, expand_leftover_cleanups,
5190 expand_end_catch_block, expand_throw): Change all uses of
5191 throw_label to match new style.
5192 (do_unwind): Rename parameter to inner_throw_label, as it is now
5193 different from throw_label. Also, assume that our caller will wrap
5194 the passed label with a LABEL_REF, if needed.
5195 (expand_builtin_throw): Make external, change so that the generated
5196 throw is now a real function.
5197 (expand_exception_blocks): Never generate throw code inside another
5198 function.
5199
5200Fri Aug 4 12:20:02 1995 Mike Stump <mrs@cygnus.com>
5201
5202 * decl.c (grokdeclarator): Move checking of mutable const objects
5203 and mutable static objects down, as we might decide during parsing
5204 to unset staticp or constp (for example, when const is part of the
5205 object being pointed to).
5206
5207Thu Aug 3 17:13:43 1995 Mike Stump <mrs@cygnus.com>
5208
5209 * except.c (output_exception_table_entry): Enhance portability to
5210 weird machines.
d11ad92e 5211 (emit_exception_table): Likewise.
f30432d7
MS
5212
5213Thu Aug 3 16:41:38 1995 Mike Stump <mrs@cygnus.com>
5214
5215 * typeck.c (build_ptrmemfunc): Handle casting of pointer to
5216 non-virtual member functions.
5217
5218Wed Aug 2 11:58:25 1995 Mike Stump <mrs@cygnus.com>
5219
5220 * gc.c (build_typeid): Strip cv qualifiers so that const T&, T&, T
5221 and const T all match.
5222
5223Wed Aug 2 11:25:33 1995 Mike Stump <mrs@cygnus.com>
5224
5225 * except.c (build_eh_type): Strip cv qualifiers so that const T&,
5226 T&, T and const T all match.
5227
5228Tue Aug 1 14:20:16 1995 Mike Stump <mrs@cygnus.com>
5229
5230 * except.c: Fix up comments, cleanup code and eliminate exceptNode,
5231 exceptStack, exceptstack, push_except_stmts, pop_except_stmts,
5232 new_except_stack, push_last_insn, pop_last_insn, insn_save_node and
5233 InsnSave. Also, numerous speed improvements, and correctness
5234 improvements. Double faulting in all situations should now be
5235 handled correctly.
5236 (expand_start_all_catch): Instead of having many terminate protected
5237 regions, just have one.
5238 (expand_start_catch_block): No longer have to protect
5239 false_label_rtx, as it isn't used for EH region marking.
5240 (expand_end_catch_block): Expand out EH cleanups here by using
5241 expand_leftover_cleanups.
5242 (expand_end_all_catch): Use sequences instead of playing with insn
5243 links directly.
d11ad92e 5244 (expand_exception_blocks): Likewise. Also protect all catch clauses
f30432d7
MS
5245 with one terminate region.
5246
5247Mon Jul 31 13:24:30 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5248
5249 * method.c (report_type_mismatch): Don't talk about an object
5250 parameter for non-methods.
5251
5252Sun Jul 30 13:13:02 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5253
5254 * class.c (finish_struct): Catch private and protected members of
5255 anonymous unions here.
5256 * decl2.c (finish_anon_union): And here.
5257 * parse.y: Instead of here.
5258
5259 * errfn.c (ARGSLIST): Support passing four args.
5260 * error.c (cv_as_string): New function.
5261 (cp_printers): Add it.
5262 * call.c (build_method_call): Report 'const' at end of pseudo-decl.
5263
5264 * method.c (report_type_mismatch): Deal with a bad_arg of 0.
5265
5266 * init.c (expand_aggr_init): Handle volatile objects, too.
5267
5268Sat Jul 29 13:42:03 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5269
5270 * decl.c (struct binding_level): Keep list of incomplete decls.
5271 (print_binding_level): Use list_length to count them.
5272 (pushdecl): Build up the list.
5273 (hack_incomplete_structures): Walk it and prune completed decls.
5274
5275Fri Jul 28 15:26:44 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5276
5277 * typeck.c (comp_target_types): Don't check const and volatile for
5278 function types.
d11ad92e 5279 (comp_ptr_ttypes_real): Likewise.
f30432d7
MS
5280
5281Thu Jul 27 15:40:48 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5282
5283 * typeck.c (comp_target_types): Fix.
5284
5285Thu Jul 27 15:10:48 1995 Mike Stump <mrs@cygnus.com>
5286
5287 * cp-tree.h (unsave_expr_now, build_unsave_expr,
5288 cp_expand_decl_cleanup): Declare new routines.
5289 * decl.c (cp_finish_decl, store_parm_decls,
5290 hack_incomplete_structures): Change all cals from
5291 expand_decl_cleanup to cp_expand_decl_cleanup.
d11ad92e 5292 * gc.c (protect_value_from_gc): Likewise.
f30432d7
MS
5293 * expr.c (cplus_expand_expr): Handle UNSAVE_EXPRs.
5294 * tree.c (unsave_expr): New routine to build an UNSAVE_EXPR.
5295 (unsave_expr_now): Backend routine used by tree expander.
5296 (cp_expand_decl_cleanup): Wrap second argument in an UNSAVE_EXPR to
5297 work around a limitation in the backend. The backend uses the
5298 cleanups multiple times, on disjoint control flows, so we cannot
5299 pass unsaved SAVE_EXPRs to the backend.
5300 * tree.def (UNSAVE_EXPR): New tree code.
5301 * typeck.c (c_expand_return): Move goto/return code up inside
5302 conditional, as we don't always want to do this, we only want to do
5303 this when we don't otherwise finish with this control flow.
5304
5305Thu Jul 27 10:38:43 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5306
5307 * parse.y (typespec): Only complain about typeof if we're not
5308 getting it from a system header.
5309
5310Thu Jul 27 10:26:23 1995 Doug Evans <dje@canuck.cygnus.com>
5311
5312 Clean up prefix attribute handling.
5313 * parse.y (reserved_declspecs): Link prefix attributes with declspecs.
5314 (declmods): Likewise.
5315 (all rules that reference typed_declspecs and declmods): Call
5316 split_specs_attrs or strip_attrs to separate declspecs and attrs.
5317 (lang_extdef): Delete resetting of prefix_attributes.
5318 (template_def, notype_declarator rule): Use NULL_TREE for
5319 prefix_attributes.
5320 (condition): Use NULL_TREE for prefix_attributes.
5321 (setattrs): Deleted.
5322 (nomods_initdcl0): Set prefix_attributes to NULL_TREE.
5323 (component_decl): Delete resetting of prefix_attributes.
5324 (component_decl_1, notype_components rule): Use NULL_TREE for
5325 prefix_attributes.
5326 (simple_stmt): Delete resetting of prefix_attributes.
5327
5328Mon Jul 24 13:37:53 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5329
5330 * call.c (convert_harshness): Deal with reference conversions before
5331 others. Actually do array->pointer decay. Call comp_target_types
5332 with pointer types rather than their targets.
5333
5334 * typeck.c (comp_target_types): Avoid assigning D const * to B *.
5335
5336Mon Jul 24 08:54:46 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5337
5338 * pt.c (to_be_restored): Move decl to global scope.
5339
5340Sat Jul 22 12:22:11 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5341
5342 * decl.c (start_decl): Put back clearing of DECL_IN_AGGR_P.
5343
5344Fri Jul 21 17:09:02 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5345
5346 * decl.c (grokdeclarator): Downgrade error about 'extern int A::i'
5347 to pedwarn.
5348
5349 * pt.c (instantiate_template): Also avoid instantiation if the
5350 function has already been declared to be a specialization.
5351
5352 * decl2.c (check_classfn): Ignore cname argument, and return the
5353 matching function.
5354
5355 * decl.c (start_decl): Handle declarations of member functions
5356 outside of the class (i.e. specialization declarations).
5357
5358Thu Jul 20 10:34:48 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5359
5360 * class.c (finish_struct): Don't mess with the type of bitfields.
5361
5362 * various.c: s/TYPE_POINTER_TO/build_pointer_type/.
5363
5364Thu Jul 20 01:43:10 1995 Mike Stump <mrs@cygnus.com>
5365
5366 * init.c (expand_aggr_init): Assume LOOKUP_ONLYCONVERTING if init
5367 is not a parameter list (TREE_LIST).
5368 (expand_default_init): If LOOKUP_ONLYCONVERTING is set, then set
5369 LOOKUP_NO_CONVERSION so that we don't allow two-level conversions,
5370 but don't set it otherwise.
5371
5372Wed Jul 19 20:32:01 1995 Mike Stump <mrs@cygnus.com>
5373
5374 * init.c (expand_default_init): Don't allow two-level conversions
5375 during construction.
5376
5377Wed Jul 19 18:06:37 1995 Mike Stump <mrs@cygnus.com>
5378
5379 * gc.c (build_headof): The type of dyncasting to a pointer to cv
5380 void, should be pointer to cv void.
5381
5382Wed Jul 19 17:25:43 1995 Mike Stump <mrs@cygnus.com>
5383
5384 * gc.c (build_dynamic_cast): Allow casting in const.
5385
5386Wed Jul 19 16:34:27 1995 Mike Stump <mrs@cygnus.com>
5387
5388 * typeck.c (build_const_cast): If we are passed error_mark_node,
5389 return it.
5390
5391Wed Jul 19 15:24:48 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5392
5393 * class.c (push_nested_class): Make sure TYPE is non-nil.
5394
5395 * cvt.c (type_promotes_to): Watch for error_mark_node on the
5396 incoming TYPE.
5397
5398Wed Jul 19 13:23:12 1995 Gerald Baumgartner <gb@alexander.cs.purdue.edu>
f65f5f62
GB
5399
5400 * cp-tree.h (SIGTABLE_VT_OFF_NAME): Renamed from SIGTABLE_OFFSET_NAME.
5401 (SIGTABLE_VB_OFF_NAME): New macro.
5402 (vt_off_identifier): Renamed from offset_identifier.
5403 (vb_off_identifier): Added extern declaration.
5404
5405 * decl.c (vt_off_identifier): Renamed from offset identifier.
5406 (vb_off_identifier): New variable to hold the identifier for the
5407 sigtable field vb_off.
5408 (init_decl_processing): Initialize vb_off_identifier.
5409 Renamed vt_off_identifier from offset_identifier.
5410 * sig.c (build_signature_method_call): Renamed offset_identifier and
5411 local variable offset to vt_off_identifer and vt_off, respecitively.
5412 * sig.c (build_signature_table_constructor): Renamed offset to vt_off.
5413
5414 * decl.c (init_decl_processing): Add vb_off field to
5415 sigtable_entry_type. Reorder fields so that pfn gets properly
5416 aligned at a 64 bit boundary on the Alpha.
5417 * sig.c (build_signature_table_constructor): Build the constructor
5418 according to the new layout. Set the vb_off field to -1 for now.
5419
5420 * decl.c (init_decl_processing): Align sigtable_entry_type on word
5421 boundaries instead of double word boundaries to save space.
5422
f30432d7
MS
5423Tue Jul 18 16:58:37 1995 Mike Stump <mrs@cygnus.com>
5424
5425 * cvt.c (cp_convert): Always call build_cplus_new for a ctor.
5426
5427Tue Jul 18 14:24:53 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5428
5429 * parse.y (opt.component_decl_list): Only forbid private/protected
5430 in anonymous unions. We need to make this know when the type is
5431 defined for an object, to not give the error.
5432
5433Mon Jul 17 14:22:44 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5434
5435 * parse.y (opt.component_decl_list): Don't allow access control
5436 as private or protected for union members.
5437
5438Sun Jul 16 14:01:00 1995 Jim Wilson <wilson@chestnut.cygnus.com>
5439
5440 * lex.c (check_newline): For 'p' case, move goto skipline line to
5441 before end brace for 'pragma'.
5442
5443Fri Jul 7 13:55:58 1995 Mike Stump <mrs@cygnus.com>
5444
5445 * g++.1: Tiny updates.
5446
5447Fri Jul 7 13:05:20 1995 Mike Stump <mrs@cygnus.com>
5448
5449 * decl.c (cp_finish_decl): Only destruct local static variables if
5450 they are constructed, and only construct the first time control
5451 passes completely through its declaration (if not initialized with a
5452 constant-expression).
d11ad92e 5453 (expand_static_init): Likewise.
f30432d7
MS
5454
5455Wed Jul 5 14:05:04 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5456
5457 * typeck.c (comptypes, case OFFSET_REF): If either offset basetype
5458 is a TEMPLATE_TYPE_PARM, give a match.
5459
f30432d7
MS
5460Fri Jun 30 15:42:57 1995 Mike Stump <mrs@cygnus.com>
5461
5462 * method.c (build_overload_value): Handle encoding of null pointer
5463 constants (or any pointer with a constant numeric value) for
5464 templates.
5465
42783eab
BK
5466Fri Jun 30 13:45:51 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5467
5468 * call.c (convert_harshness): Add QUAL_CODE when we're faced with
5469 const vs non-const for void conversions.
5470
f30432d7
MS
5471Fri Jun 30 10:19:52 1995 Mike Stump <mrs@cygnus.com>
5472
5473 * except.c (expand_start_all_catch): Fix problem with finding an
5474 outer nested try block when there is no code to separate it from an
5475 inner try block.
5476
5477Fri Jun 30 02:22:26 1995 Mike Stump <mrs@cygnus.com>
5478
5479 * search.c (dfs_pushdecls): Consume 2 or 3 orders of magnitude less
5480 memory please when virtual bases are used.
5481
5482Thu Jun 29 19:03:47 1995 Mike Stump <mrs@cygnus.com>
5483
5484 * class.c (build_vbase_path): Avoid testing things that cannot be
5485 null to see if they are null.
5486 * cvt.c (convert_pointer_to_vbase): Remove code that doesn't work.
5487 * decl.c (finish_function): Pass a type into the new
5488 convert_pointer_to_vbase instead of a binfo.
5489 * search.c (convert_pointer_to_vbase): Rewritten to use get_vbase
5490 and convert_pointer_to_real.
5491 (expand_indirect_vtbls_init): Use convert_pointer_to_vbase instead
5492 of the more cryptic call to get_vbase.
5493
e18923b4 5494Thu Jun 29 09:35:05 1995 Mike Stump <mrs@cygnus.com>
535c9c21
MS
5495
5496 * decl.c (BOOL_TYPE_SIZE): Fix broken SLOW_BYTE_ACCESS check.
5497
f30432d7
MS
5498Thu Jun 29 03:43:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5499
5500 * pt.c (instantiate_template): Don't strip 'this' twice.
5501
5502 * pt.c (coerce_template_parms): Allow null pointer constants.
5503
5504 * decl.c (revert_static_member_fn): But only if DECL_ARGUMENTS is
5505 set.
5506
f30432d7
MS
5507Wed Jun 28 18:39:03 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5508
5509 * decl.c (revert_static_member_fn): Also remove 'this' from
5510 DECL_ARGUMENTS.
5511 * decl2.c (check_classfn): Don't revert this function until we get a
5512 match.
5513
5514Wed Jun 28 14:07:27 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5515
5516 * parse.y (component_decl): Clear PREFIX_ATTRIBUTES here.
5517
5518Wed Jun 28 11:05:13 1995 Mike Stump <mrs@cygnus.com>
5519
5520 * decl2.c (finish_file): Handle global vector news.
5521 * init.c (build_new): Encode vector news so that later we will know
5522 how many elements there are.
5523
e18923b4 5524Mon Jun 26 13:38:06 1995 Jason Merrill <jason@phydeaux.cygnus.com>
415bfbd0
JM
5525
5526 * expr.c (cplus_expand_expr): Don't mess with temp slots.
5527
f30432d7
MS
5528 * decl2.c (warn_if_unknown_interface): Don't crash if tinst_for_decl
5529 returns null.
5530
5531 * decl2.c (check_classfn): Use revert_static_member_fn.
5532 * decl.c (revert_static_member_fn): Diagnose static member functions
5533 declared const or volatile.
5534
5535 * decl2.c (grokfield): Check for missing default args here, too.
5536 (check_default_args): Function to do the checking.
5537 * decl.c (pushdecl): Use it.
5538
5539 * decl.c (pushdecl): Don't warn about shadowing a member of `this'
5540 if there is no `this'.
5541
5542Sun Jun 25 11:34:25 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5543
5544 * call.c (build_method_call): Downgrade 'called before definition'
5545 to a warning, as it ought to go away after Monterey.
5546
5547Sat Jun 24 14:18:42 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5548
5549 * pt.c (coerce_template_parms): Don't do extra checking on pointer
5550 to member arguments.
5551
5552 * class.c (finish_struct): const and reference members don't prevent
5553 a class from being an aggregate.
5554
5555 * class.c (finish_struct): Signatures are always aggregates.
5556
f7d9d4a8
JM
5557Fri Jun 23 17:20:29 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5558
f30432d7
MS
5559 * decl2.c (check_classfn): Improve error message.
5560
5561 * pt.c (tsubst): Handle PROMOTE_PROTOTYPES.
f7d9d4a8 5562
f7522313
JM
5563Thu Jun 22 01:50:42 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5564
f30432d7 5565 * typeck.c (comptypes): Don't ignore method quals.
f7522313 5566
f30432d7
MS
5567 * class.c (finish_struct): Non-abstract virtuals are always USED.
5568
5569 * decl.c (build_ptrmemfunc_type): The underlying union type isn't
5570 IS_AGGR_TYPE, either.
5571 * class.c (finish_struct): Use CLASSTYPE_NON_AGGREGATE instead.
d11ad92e 5572 * cp-tree.h: Likewise.
f30432d7
MS
5573
5574 * cp-tree.h (lang_type): Add aggregate.
5575 (CLASSTYPE_AGGREGATE): New macro.
d11ad92e 5576 (TYPE_NON_AGGREGATE_CLASS): Likewise.
f30432d7
MS
5577 * class.c (finish_struct): Determine whether a class is an
5578 aggregate.
5579 * decl.c (cp_finish_decl): Check TYPE_NON_AGGREGATE_CLASS instead of
5580 TYPE_NEEDS_CONSTRUCTING.
5581 * typeck2.c (digest_init): Check TYPE_NON_AGGREGATE_CLASS for
5582 subobjects, too.
5583
5584 * pt.c (tsubst, PARM_TYPE): Propagate DECL_ARTIFICIAL.
d8f1d487
RK
5585
5586 * decl.c (start_function): For pre-parsed functions, layout all of
5587 the parm decls again.
5588 (grokvardecl): TREE_PUBLIC depends on DECL_THIS_EXTERN, not
5589 DECL_EXTERNAL.
5590
f30432d7
MS
5591 * pt.c (coerce_template_parms): Improve checking for invalid
5592 template parms.
5593
5594Wed Jun 21 12:01:16 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
5595
5596 * decl.c (grokdeclarator): Forbid declaration of a static member
5597 with the same name as its enclosing class.
5598
d8f1d487
RK
5599Mon Jun 19 10:28:14 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5600
5601 * decl.c (finish_function): Clear current_class_decl.
5602
5603 * typeck.c (build_conditional_expr): Use convert (boolean_type_node
5604 instead of truthvalue_conversion.
5605
5606 * class.c (finish_struct): A data member with the same name as the
5607 class doesn't suppress constructors.
5608
d11ad92e 5609Fri Jun 16 18:11:39 1995 Gerald Baumgartner <gb@alexander.cs.purdue.edu>
d8f1d487
RK
5610
5611 * decl.c (start_function): If current_class_decl is a signature
5612 pointer, don't dereference it but set C_C_D to current_class_decl.
5613
5614Fri Jun 16 17:06:28 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5615
5616 * decl.c (duplicate_decls): Complain about virtual functions
5617 redeclared to be inline.
5618
5619Fri Jun 16 13:20:38 1995 Mike Stump <mrs@cygnus.com>
5620
5621 * decl.c (get_unique_name): New routine to name unnamed namespaces.
5622 (push_namespace): Use get_unique_name for naming unnamed namespaces.
5623
d3c89e1f
JM
5624Thu Jun 15 15:00:41 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5625
d8f1d487 5626 * parse.y: Call cplus_decl_attributes with prefix_attributes where
f30432d7 5627 appropriate.
d8f1d487
RK
5628
5629Wed Jun 14 19:24:49 1995 Mike Stump <mrs@cygnus.com>
5630
5631 * search.c (get_vbase): New routine to switch hierarchies from the
5632 CLASSTYPE_VBASECLASSES to the normal one.
5633 (expand_indirect_vtbls_init): Use get_vbase to figure out how we
5634 want to convert to a vbase pointer.
5635
5636Mon Jun 12 17:50:30 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5637
5638 * pt.c (instantiate_class_template): Add the new instantiation to
f30432d7 5639 template_classes.
d8f1d487
RK
5640 (do_pending_expansions): Call instantiate_member_templates on all of
5641 the classes in template_classes.
5642
5643Mon Jun 12 12:36:59 1995 Mike Stump <mrs@cygnus.com>
5644
5645 * decl.c (complete_array_type): Fill in the TYPE_DOMAIN of our
5646 TYPE_MAIN_VARIANT if it is not filled in.
5647 * init.c (build_delete): If the TYPE_DOMAIN is not set, give an
5648 error instead of core dumping.
5649
5650Mon Jun 12 10:41:40 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5651
5652 * call.c (can_convert): Also check for distance > 0.
d11ad92e
MS
5653 (can_convert_arg): Likewise.
5654 (user_harshness): Likewise.
d8f1d487
RK
5655
5656Fri Jun 9 19:17:21 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5657
5658 * g++.c (MATH_LIBRARY): Provide default.
5659 (main): Always link with the math library if we link with libstdc++.
5660
5661 * decl.c (start_function): Complain about redefinition of a function
5662 even when the pending_inline version is compiled after the other
5663 version.
5664
5665Thu Jun 8 15:44:38 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5666
5667 * gc.c (build_dynamic_cast): Build up a reference to a parameter of
5668 aggregate type.
5669
d11ad92e 5670Wed Jun 7 15:31:57 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
d8f1d487
RK
5671
5672 * init.c (build_vec_delete): Resolve an offset ref before we try to
5673 use it.
5674
5675Wed Jun 7 14:19:32 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5676
5677 * typeck.c (build_modify_expr): If the class lacks a constructor or
5678 assignment operator, return error_mark_node.
5679 (common_type): Use build_cplus_array_type.
5680
5681Tue Jun 6 09:41:27 1995 Mike Stump <mrs@cygnus.com>
5682
5683 * class.c (dont_allow_type_definitions): New variable set when types
5684 cannot be defined.
5685 (finish_struct): Use it.
5686 * cp-tree.h (dont_allow_type_definitions): Define it.
5687 * parse.y (primary, handler_seq): Set it.
5688
5689Mon Jun 5 18:49:38 1995 Mike Stump <mrs@cygnus.com>
5690
5691 * method.c (build_opfncall): Use DECL_CHAIN, not TREE_CHAIN for
5692 results from lookup_fnfields. Always give warning/error on bad
5693 code.
5694
d11ad92e 5695Mon Jun 5 11:39:37 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
d8f1d487
RK
5696
5697 * init.c (member_init_ok_or_else): Don't allow initialization of
5698 an ancestor's member from within a constructor.
5699
d11ad92e 5700Mon Jun 5 11:20:34 1995 Gerald Baumgartner <gb@alexander.cs.purdue.edu>
d8f1d487
RK
5701
5702 * sig.c (build_signature_table_constructor): Use DECL_CONTEXT
5703 instead of DECL_CLASS_CONTEXT for calculating the vfield offset so
5704 abstract virtual functions are handled correctly.
5705
5706 * sig.c (build_signature_table_constructor): Store the correct
5707 delta in signature table entries. It does not yet work for
5708 classes with virtual base classes as implementations of signatures.
5709 (build_signature_method_call): Add the delta to the object_ptr
5710 before generating the function call.
5711
5712 * call.c (build_method_call): Make instance_ptr the signature
5713 pointer itself instead of dereferencing the optr.
5714 * sig.c (build_signature_method_call): Dereference the optr for the
5715 direct and virtual calls.
5716
5717 * sig.c (build_signature_table_constructor): Make the tag for
5718 default implementations -1 instead of 2.
5719 (build_signature_method_call): Change the generated conditional
5720 expression correspondingly.
5721
5722 * sig.c (build_signature_pointer_constructor): Deleted the sorry
5723 message that said we can't handle multiple inheritance for
5724 implementations of signatures
5725 (build_signature_method_call): Use the offset from the sigtable
5726 entry instead of the vptr field from the signature pointer for
5727 building a virtual function call.
5728
5729 * class.c (build_vfn_ref): Deleted signature specific code, we don't
5730 call this function anymore from build_signature_method_call.
5731
5732 * cp-tree.h (SIGNATURE_VPTR_NAME): Deleted. We use the right vptr
5733 field in the object now instead of in the signature pointer/ref.
5734 (build_vptr_ref): Deleted extern declaration.
5735 * sig.c (build_vptr_ref): Deleted.
5736 (build_signature_pointer_or_reference_type): Deleted construction of
5737 the vptr field.
5738 (build_signature_pointer_constructor): Deleted initialization of/
5739 assignment to the vptr field.
5740
5741 * sig.c (build_signature_table_constructor): Convert the signature
5742 table entry fields to their correct types.
5743
5744 * sig.c (build_signature_table_constructor): Don't call digest_init
5745 for the fields of a sigtable entry, it's wasted time.
5746
5747 * sig.c (build_signature_table_constructor): Correctly set the
5748 offset and index fields of a sigtable entry. Build the constructor
5749 the way digest_init does, digest_init can't handle initializing an
5750 anonymous union inside a struct.
5751 (build_signature_method_call): Use the index field instead of the
5752 delta field to get the vtable index.
5753
5754 * decl.c (init_decl_processing): Fix number of fields for building
5755 sigtable_entry_type.
5756
5757 * cp-tree.h (tag_identifier, offset_identifier): Added extern decls.
5758 (SIGTABLE_CODE_NAME): Renamed to SIGTABLE_TAG_NAME.
5759 (SIGTABLE_PFN_NAME): Deleted, we'll use VTABLE_PFN_NAME instead.
5760 * decl.c (tag_identifier, offset_identifier): New variables to
5761 hold the identifiers for the sigtable fields tag and offset.
5762 (init_decl_processing): Initialize these variables.
5763 (init_decl_processing): Use these variables to build the
5764 sigtable_entry_type structure. Rename the code and offset fields
5765 to tag and delta, respectively; add offset and index fields. Changed
5766 types of fields from short_integer_type_node to delta_type_node.
5767 * sig.c (build_signature_table_constructor): Rename code and offset
5768 to tag and delta, respectively.
d11ad92e 5769 (build_signature_method_call): Likewise. Use above variables.
d8f1d487 5770
d8f1d487
RK
5771Thu Jun 1 17:03:51 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5772
5773 * decl.c (lookup_name_real): Don't try to look anything up in an
5774 erroneous object.
5775
5776Fri Jun 2 10:30:14 1995 Mike Stump <mrs@cygnus.com>
5777
5778 * method.c (build_overload_int): New routine. Break out
5779 functionality from build_overload_value so we can reuse it.
5780 (build_overload_value): Handle pointer to member functions as value
5781 parameters for templates.
5782 (build_overload_identifier): Since template parameters are shared
5783 among all instantiations, we have to substitute in the real types
5784 in TREE_TYPE (parm).
d11ad92e
MS
5785 pt.c (coerce_template_parms): Likewise.
5786 (push_template_decls): Likewise.
d8f1d487
RK
5787 (grok_template_type): Deleted as template parameters are shared
5788 among all instantiations.
5789
5790Wed May 31 19:10:32 1995 Mike Stump <mrs@cygnus.com>
5791
5792 * decl.c (grokdeclarator): Always give errors on constant overflow
5793 for array indices.
5794
5795Wed May 31 11:39:43 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5796
5797 * typeck.c (commonparms): Don't abort if simple_cst_equal returns < 0.
5798 (build_c_cast): Don't tack on a NON_LVALUE_EXPR when casting to
5799 reference type.
5800 (build_indirect_ref): Fix check for *&.
5801
72b7eeff
MS
5802Fri Jun 16 06:54:03 1995 Mike Stump <mrs@cygnus.com>
5803
5804 * Version 2.7.0 released.
5805
d11ad92e 5806Fri Jun 16 15:07:29 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
72b7eeff
MS
5807
5808 * Make-lang.in (DEMANGLER_PROG): Add LIBS.
5809
5810Thu Jun 15 15:00:41 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5811
5812 * decl.c (define_function): Don't set DECL_INTERFACE_KNOWN.
5813
5814Wed Jun 7 20:00:31 1995 Mike Stump <mrs@cygnus.com>
5815
5816 * *.[chy]: Change all callers of finish_decl to cp_finish_decl.
5817 * decl.c (finish_decl): New routine to handle call backs from the
5818 mid end (declare_hidden_char_array).
5819
5820Wed Jun 7 19:02:50 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5821
5822 * decl.c (start_function): Handle setting C_C_D here.
5823 (set_C_C_D): Removed.
5824 (struct saved_scope): Remove class_decl.
5825 (push_to_top_level): Don't save current_class_decl.
5826 (pop_from_top_level): Don't restore current_class_decl or C_C_D.
5827 (struct cp_function): Add C_C_D.
5828 (push_cp_function_context): Save C_C_D.
5829 (pop_cp_function_context): Restore C_C_D.
5830
5831Fri Jun 2 11:05:58 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5832
5833 * decl.c (set_C_C_D): New function. suspend_momentary before
5834 building C_C_D.
5835 (pop_from_top_level): Call it.
d11ad92e
MS
5836 (start_function): Likewise.
5837 (pop_cp_function_context): Likewise.
72b7eeff
MS
5838
5839 * class.c, cp-tree.h, decl.c, decl2.c, parse.y: Lose all references
5840 to current_vtable_decl, CLASSTYPE_INST_VAR and CLASSTYPE_VTBL_PTR.
5841
5842 * decl.c (push_cp_function_context): Save current_class_decl.
5843 (pop_cp_function_context): Restore current_class_decl and set C_C_D.
5844 (pop_from_top_level): Don't use CLASSTYPE_INST_VAR to set C_C_D.
d11ad92e 5845 (start_function): Likewise.
72b7eeff
MS
5846
5847 * class.c (popclass): Don't mess with current_class_decl,
5848 current_vtable_decl, or C_C_D.
5849
5850Mon May 29 12:45:10 1995 Paul Eggert <eggert@twinsun.com>
5851
5852 * Make-lang.in (c++.mostlyclean): Remove $(DEMANGLER_PROG).
5853
d11ad92e 5854Wed May 24 15:55:18 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
b796119f
RK
5855
5856 * decl.c (duplicate_decls): Check simple_cst_equal result against 0.
5857 * decl2.c (finish_anon_union): Likewise.
5858 * method.c (largest_union_member): Likewise.
5859
d11ad92e 5860Wed May 24 14:41:11 1995 H.J. Lu <hjl@nynexst.com>
103894f1
L
5861
5862 * Make-lang.in (cxxmain.o): Replace single quotes with backslashes.
5863
d11ad92e 5864Mon May 22 17:38:48 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
fbb47000
RK
5865
5866 * Make-lang.in (g++, g++-cross, cc1plus, DEMANGLER_PROG):
5867 Use $@ instead of output name so works even if have .exe.
5868 (cxxmain.o): Use cp if ln -s fails.
5869 (c++.install-man): Use $(exeext) in executable names.
5870 (c++.mostlyclean, stage[1-4]): Use $(objext) in object file names.
5871 * Makefile.in (../cc1plus): Use $(exeext) in name of executable.
5872
878cd289
MS
5873Wed May 24 01:39:03 1995 Jason Merrill <jason@deneb.cygnus.com>
5874
5875 * call.c (build_method_call): parms can be null, duh.
5876
5877Tue May 23 01:32:09 1995 Jason Merrill <jason@deneb.cygnus.com>
5878
5879 * call.c (build_method_call): If convert_arguments failed, just bail.
5880
5881Fri May 19 10:31:11 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5882
5883 * cvt.c (convert_force): Pass LOOKUP_NORMAL to cp_convert.
5884
5885 * tree.c (copy_to_permanent): Oops.
5886
d11ad92e 5887Fri May 19 10:01:07 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
878cd289
MS
5888
5889 * cp-tree.h (break_out_target_exprs): Add decl.
5890
5891Thu May 18 13:02:30 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5892
5893 * decl.c (start_function): Move *all* interface handling stuff after
5894 the pushdecl.
5895
5896 * tree.c (mapcar): Renamed from make_deep_copy and generalized.
5897 (perm_manip): Return t if permanent, otherwise 0.
5898 (copy_to_permanent): Use them.
5899 (bot_manip): Helper for break_out_target_exprs.
5900 (break_out_target_exprs): New function. Uses mapcar.
5901
5902 * typeck.c (convert_arguments): Use it.
5903
5904 * method.c (hack_identifier): Use convert_from_reference to
5905 dereference a reference.
5906
5907Wed May 17 17:54:54 1995 Mike Stump <mrs@cygnus.com>
5908
5909 * call.c (convert_harshness): Move reference bashing before pointer
5910 to member bashing.
5911
5912Wed May 17 16:57:53 1995 Mike Stump <mrs@cygnus.com>
5913
5914 * cvt.c (convert_to_reference): Only complain, if complaints are
5915 wanted.
d11ad92e
MS
5916 * typeck.c (build_function_call_real): Likewise. If
5917 LOOKUP_SPECULATIVELY is set and something won't work, return
5918 NULL_TREE.
5919 * cvt.c (cp_convert): Likewise. Pass flags down to build_method_call.
878cd289 5920 (convert): Pass LOOKUP_NORMAL to cp_convert.
d11ad92e 5921 * typeck.c (convert_for_assignment): Likewise.
878cd289 5922 (convert_force): Pass LOOKUP_COMPLAIN to cp_convert.
d8f1d487 5923 (convert_arguments): Get out early if we get an error_mark_node.
878cd289
MS
5924 (convert_for_initialization): Use cp_convert instead of convert so
5925 that we can pass flags down.
5926 * cp-tree.h (LOOKUP_SPECULATIVELY): Added documentation.
5927
c19a8067
JM
5928Wed May 17 01:43:58 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5929
878cd289
MS
5930 * typeck2.c (store_init_value): Don't take the MAIN_VARIANT of the
5931 decl type.
5932
c19a8067
JM
5933 * class.c (finish_struct): Don't complain about a class with no
5934 user-defined constructors but with a member that has no default
5935 constructor, as this is OK for aggregates.
5936
5937 * expr.c (cplus_expand_expr, NEW_EXPR): If this is an explicit
5938 constructor call, mark slot addressable.
5939
d11ad92e 5940Tue May 16 18:37:51 1995 Douglas Rupp <drupp@cs.washington.edu>
eacd15bc
DR
5941
5942 * g++.c: Changed WINNT to _WIN32.
5943
a9aedbc2
MS
5944Tue May 16 12:40:16 1995 Jason Merrill <jason@lisa.cygnus.com>
5945
5946 * lex.c (handle_sysv_pragma): Don't use token_buffer.
5947
5948Tue May 16 12:05:26 1995 Mike Stump <mrs@cygnus.com>
5949
5950 * call.c (resolve_scope_to_name): Add initial semantic support for
5951 namespaces.
d11ad92e
MS
5952 * class.c (finish_struct): Likewise.
5953 * cp-tree.h (NAMESPACE_LEVEL): Likewise.
5954 * cvt.c (build_up_reference, convert_to_reference): Likewise.
5955 * decl.c (binding_level::namespace_p, suspend_binding_level): Likewise.
5956 (resume_binding_level, toplevel_bindings_p): Likewise
5957 (namespace_bindings_p, declare_namespace_level): Likewise.
5958 (resume_level, push_namespace, pop_namespace): Likewise.
5959 (pop_everything, pushtag, duplicate_decls, pushdecl): Likewise.
5960 (implicitly_declare, lookup_namespace_name): Likewise.
5961 (lookup_name_real, start_decl, make_temporary_for_reference): Likewise.
5962 (obscure_complex_init, finish_decl, expand_static_init): Likewise.
5963 (grokvardecl, grokdeclarator, parmlist_is_exprlist): Likewise.
5964 (store_parm_decls, hack_incomplete_structures): Likewise.
5965 * decl2.c (get_temp_name, finish_anon_union): Likewise.
5966 (current_namespace, push_namespace, pop_namespace): Likewise.
5967 (do_namespace_alias, do_toplevel_using_decl): Likewise.
5968 (do_class_using_decl): Likewise.
5969 * error.c (dump_decl): Likewise.
5970 * init.c (build_member_call, build_offset_ref): Likewise.
5971 * lex.c (identifier_type): Likewise.
5972 * parse.y (lang_extdef, using_decl, extdef): Likewise.
5973 (component_decl_1, nested_name_specifier_1): Likewise.
5974 * spew.c (yylex): Likewise.
5975 * tree.def (NAMESPACE_DECL): Likewise.
a9aedbc2
MS
5976
5977Tue May 16 11:55:35 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5978
5979 * decl.c (push_overloaded_decl): Return the new decl even if it
5980 can't be pushed.
5981
5982Tue May 16 11:00:37 1995 Jason Merrill <jason@lisa.cygnus.com>
5983
5984 * typeck.c (decay_conversion): Split out from default_conversion.
5985 (default_conversion): Call it.
d11ad92e 5986 (build_binary_op): Likewise.
a9aedbc2
MS
5987 (build_binary_op_nodefault): Use decay_conversion for truth ops.
5988
5989Mon May 15 12:47:56 1995 Jason Merrill <jason@phydeaux.cygnus.com>
5990
5991 * decl.c (warn_extern_redeclared_static): This is a pedwarn.
5992 (duplicate_decls): Always use the old decl's linkage info. Don't
5993 play with linkage of consts.
5994 (pushdecl): Don't play with linkage of consts.
5995 (redeclaration_error_message): Don't complain about an old public
5996 decl and a new non-public decl here.
5997 (grokvardecl): Handle linkage of consts here.
5998 (grokdeclarator): An 'extern inline' is public. Pass constp to
5999 grokvardecl.
6000 (start_function): Wait until after the pushdecl to do some linkage
6001 stuff.
6002
6003 * decl2.c (import_export_vtable): Make duplicates weak rather than
6004 static if supported.
d11ad92e
MS
6005 (import_export_inline): Likewise.
6006 * pt.c (do_pending_expansions): Likewise.
a9aedbc2
MS
6007
6008 * class.c (build_vbase_path): flag_assume_nonnull_objects only
6009 affects reference conversion.
6010
6011 * init.c (emit_base_init): Build up an RTL_EXPR and add it to
f30432d7 6012 rtl_expr_chain.
a9aedbc2
MS
6013 * decl.c, decl2.c: s/base_init_insns/base_init_expr/.
6014
7154457b
PE
6015Tue May 16 07:06:28 1995 Paul Eggert <eggert@twinsun.com>
6016
6017 * method.c (numeric_output_need_bar): Renamed from misspelling.
6018
45ca9d09
RK
6019 * typeck.c (build_ptrmemfunc): Fix misspellings in messages.
6020
7ab7b006
RK
6021Sun May 14 10:26:22 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
6022
6023 * lang-options.h, lang-specs.h: New files.
6024
fd378c9d
JM
6025Thu May 11 00:31:48 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6026
6027 * typeck.c (default_conversion): Don't check for BLKmode before
6028 pulling out the decl_constant_value.
6029
6030 * decl.c (start_function): Clear named_labels and shadowed_labels.
6031
6032 * typeck.c (build_function_call_real): Also synthesize methods here.
6033
6034Wed May 10 00:55:59 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6035
6036 * decl2.c (finish_file): Synthesize exported methods before the
6037 reconsider loop.
6038
6039 * parse.y: Move declaration of flag_new_for_scope to file scope.
6040
863adfc0
MS
6041Tue May 9 19:10:33 1995 Mike Stump <mrs@cygnus.com>
6042
6043 * decl2.c: Add flag_new_for_scope for new -ffor-scope flag.
6044 * parse.y (FOR): Conditionalize the pushing and poping of scope for
6045 the for-init-statement upon the new flag_new_for_scope.
6046 * parse.y (try_block): Simplify and use compstmt.
6047
6048Mon May 8 12:41:52 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6049
6050 * decl.c (define_function): Mark function decl artificial.
6051
6052Sun May 7 00:51:28 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6053
6054 * parse.y (simple_stmt, FOR): Put back push/pop for condition scope.
6055
6056 * decl2.c (grokclassfn): DECLs don't have cv-qualified types.
d11ad92e 6057 * tree.c (build_cplus_method_type): Likewise.
863adfc0
MS
6058
6059 * cp-tree.h (SET_DECL_ARTIFICIAL): Just set DECL_ARTIFICIAL to 1.
6060
6061 * typeck.c (build_function_call_real): If convert_arguments failed,
6062 just bail.
6063 (convert_arguments): If one of the arguments is error_mark_node,
6064 just bail.
6065
6066Sat May 6 02:39:41 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6067
6068 * decl.c (duplicate_decls): Don't check DECL_NOT_REALLY_EXTERN for
6069 decls that don't include it.
6070
6071Fri May 5 14:23:30 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6072
6073 * decl.c (duplicate_decls): Decls that have DECL_INTERFACE_KNOWN or
6074 DECL_NOT_REALLY_EXTERN set aren't extern decls.
6075
6076 * typeck.c (build_indirect_ref): Don't call default_conversion for a
6077 parameter of reference_type.
6078 * cvt.c (convert_from_reference): Just use build_indirect_ref.
6079
6080 * pt.c (do_type_instantiation): Only instantiate member functions
6081 that actually come from templates.
6082
6083Fri May 5 09:46:05 1995 Mike Stump <mrs@cygnus.com>
6084
6085 * parse.y: Generalized cleanup of poplevels, and compound statements
6086 and compound statements in try blocks. Rewritten `for' rule so that
6087 the scope of variables declared in the for clause is shortened to
6088 span just to the end of the statement, instead of the whole
6089 containing block.
6090
6091Fri May 5 00:37:14 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6092
6093 * call.c (convert_harshness): Handle pointers to members better.
6094
6095Thu May 4 16:00:26 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6096
6097 * decl2.c (delete_sanity): Do access control here.
6098 * init.c (build_delete): Instead of here.
6099
6100 * Make-lang.in: Build c++filt.
6101
6102Wed May 3 02:59:53 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6103
6104 * decl2.c (cplus_decl_attributes): If we just modified a TYPE_DECL,
6105 update our IDENTIFIER_TYPE_VALUE.
6106
a5894242
MS
6107Fri Apr 28 07:58:41 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6108
6109 * lex.c (cons_up_default_function): Fix linkage of #pragma
6110 implemented functions.
6111
6112Thu Apr 27 16:56:24 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6113
6114 * method.c (build_overload_name): Simplify and fix repeated type
6115 folding.
6116
6117 * decl.c (grokdeclarator): Prohibit pointers to void or reference
f30432d7 6118 members.
a5894242
MS
6119
6120Thu Apr 27 09:49:07 1995 Mike Stump <mrs@cygnus.com>
6121
6122 * typeck2.c (process_init_constructor): Make sure initializers are
6123 fully digested.
6124
6125Thu Apr 27 01:11:55 1995 Jason Merrill <jason@python.cygnus.com>
6126
6127 * lex.c (cons_up_default_function): Always defer synthesis.
6128
6129Thu Apr 27 00:20:37 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6130
6131 * decl2.c (mark_inline_for_output): Don't play with pending_inline
6132 stuff.
6133
6134Wed Apr 26 17:48:24 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6135
6136 * call.c (user_harshness): New function; like build_type_conversion,
6137 but doesn't actually build anything.
6138 (compute_conversion_costs): Use it instead of build_type_conversion.
6139
6140Wed Apr 26 17:11:25 1995 Jason Merrill <jason@deneb.cygnus.com>
6141
6142 * typeck.c (build_function_call_real): Improve error message for
6143 calling a non-function.
6144
6145 * method.c (hack_identifier): Lose check for calling a data member.
6146
6147Wed Apr 26 16:59:13 1995 Mike Stump <mrs@cygnus.com>
6148
6149 * typeck2.c (build_functional_cast): Remove very old cruft.
6150 Seems like good code is generated without it.
6151
6152Wed Apr 26 00:47:16 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6153
6154 * method.c (do_build_assign_ref): Fix handling of anonymous unions.
d11ad92e 6155 (do_build_copy_constructor): Likewise.
a5894242
MS
6156
6157 * parse.y (simple_stmt, SWITCH): Call {push,pop}_switch.
6158
6159 * decl.c (push_switch): New function.
d11ad92e 6160 (pop_switch): Likewise.
a5894242
MS
6161 (define_case_label): Check for jumping over initialization.
6162
6163 * call.c (build_method_call): Check for an inline function being
6164 called before its definition has been seen.
d11ad92e 6165 * typeck.c (build_function_call_real): Likewise.
a5894242
MS
6166
6167 * decl.c (duplicate_decls): Check for a function being redeclared
6168 inline after its address has been taken.
6169
6170 * typeck.c (build_conditional_expr): Handle related class lvalues.
6171
6172Tue Apr 25 13:20:45 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6173
6174 * pt.c (do_pending_expansions): Don't expand unused templates.
6175
6176 * parse.y (component_decl): Accept a lone semicolon.
6177
6178Tue Apr 25 00:25:56 1995 Jason Merrill <jason@rtl.cygnus.com>
6179
6180 * call.c (build_method_call): Don't allow an RTL_EXPR to serve as the
6181 object parameter anymore.
6182
6183 * expr.c (cplus_expand_expr): Don't create RTL_EXPRs with no insns.
6184
6185Mon Apr 24 12:35:48 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6186
6187 * parse.y (simple_stmt, decl case): Clear prefix_attributes.
d11ad92e 6188 (lang_extdef): Likewise.
a5894242
MS
6189
6190 * parse.y (maybe_parmlist): New rule for use in declarators where
6191 this could either be a list of expressions or parameters. Calls
6192 suspend_momentary before deciding which.
6193 (direct_after_type_declarator): Use it.
6194 (complex_direct_notype_declarator): Use it.
6195
6196 * pt.c (tsubst): Propagate attributes const and noreturn.
6197
6198 * typeck.c (build_modify_expr): If warn_synth, call build_opfncall
6199 before doing the default thing.
6200
2db70b29
DE
6201Thu Apr 27 21:49:36 1995 Doug Evans <dje@cygnus.com>
6202
6203 * typeck.c (common_type): Call lookup_attribute instead of
6204 value_member.
6205
d11ad92e 6206Tue Apr 25 18:07:43 1995 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
91887f0b
RK
6207
6208 * Make-lang.in: Change "realclean" to "maintainer-clean".
6209
e8abc66f
MS
6210Sun Apr 23 12:32:38 1995 Mike Stump <mrs@cygnus.com>
6211
6212 * decl2.c (finish_file): Fix broken linked list handling.
6213
6214Fri Apr 21 18:08:43 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6215
6216 * class.c (finish_base_struct): Don't set TYPE_HAS_COMPLEX_*_REF
6217 as often.
d11ad92e 6218 (finish_struct): Likewise.
e8abc66f
MS
6219
6220 * various: Use TYPE_HAS_TRIVIAL_* instead of TYPE_HAS_COMPLEX_*.
6221
6222 * cp-tree.h (TYPE_HAS_TRIVIAL_INIT_REF): New macro.
6223 (TYPE_HAS_TRIVIAL_ASSIGN_REF): New macro.
6224
6225Fri Apr 21 15:52:22 1995 Jason Merrill <jason@python.cygnus.com>
6226
6227 * typeck.c (c_expand_return): Only expand a returned TARGET_EXPR if
6228 it is of the same type as the return value.
6229
6230Fri Apr 21 03:01:46 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6231
6232 * decl2.c (finish_file): Reconsider if synthesizing a method wrote
6233 out its assembly.
6234
6235 * typeck.c (convert_for_initialization): Don't call a trivial copy
6236 constructor.
6237
6238 * typeck2.c (store_init_value): Only abort if the type has a
6239 non-trivial copy constructor.
6240
6241 * typeck.c (c_expand_return): If we're returning in a register and
6242 the return value is a TARGET_EXPR, expand it. Only do
6243 expand_aggr_init if we're returning in memory.
6244 (expand_target_expr): Function to expand a TARGET_EXPR.
6245 (build_modify_expr): Use it.
6246
6247 * tree.c (build_cplus_new): Layout the slot.
6248
6249 * expr.c (cplus_expand_expr): Use expand_call to expand the call
6250 under a NEW_EXPR, so the target is not discarded.
6251
6252Thu Apr 20 14:59:31 1995 Mike Stump <mrs@cygnus.com>
6253
6254 * gc.c (build_dynamic_cast): Tighten error checking.
6255
6256Thu Apr 20 11:23:54 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6257
6258 * expr.c (cplus_expand_expr): Only abort if the returned target is
6259 different from what we expected if the type has a non-trivial copy
6260 constructor.
6261
6262 * decl2.c (cplus_decl_attributes): Attributes applied to a template
6263 really apply to the template's result.
6264
6265 * tree.c (lvalue_p): Check IS_AGGR_TYPE instead of TREE_ADDRESSABLE
6266 to decide whether to consider a CALL_EXPR an lvalue.
6267
6268 * class.c (finish_struct_bits): Only set TREE_ADDRESSABLE if the
6269 type has a non-trivial copy constructor.
6270
6271 * decl.c (start_function): If interface_known, unset
6272 DECL_NOT_REALLY_EXTERN on the function.
6273
6274Wed Apr 19 16:53:13 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6275
6276 * pt.c (do_function_instantiation): Handle explicit instantiation of
6277 member functions.
6278 (do_type_instantiation): Handle 'inline template class foo<int>',
6279 meaning just spit out the vtable.
6280
6281 * lex.c (cons_up_default_function): Set DECL_NOT_REALLY_EXTERN on
6282 the consed functions.
6283
6284 * decl2.c (import_export_inline): Set DECL_INTERFACE_KNOWN.
6285
d11ad92e 6286Wed Apr 19 16:28:17 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
e8abc66f
MS
6287
6288 * call.c, class.c, decl2.c, gc.c, init.c, parse.y, pt.c, search.c,
6289 typeck.c: Include output.h.
6290
d11ad92e 6291Wed Apr 19 14:57:21 1995 Gerald Baumgartner <gb@alexander.cs.purdue.edu>
e8abc66f
MS
6292
6293 * call.c (build_method_call): Allow a signature member functions to
6294 be called from a default implementation.
6295
6296Wed Apr 19 10:21:17 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6297
6298 * repo.c (finish_repo): Remember what directory we are in.
6299
6300 * search.c (expand_upcast_fixups): Don't mess with abort_fndecl.
6301
6302 * repo.c: Use obstacks instead of fixed-size buffers. Don't spit
6303 out the second copy of the symbol name. Don't remember COLLECT_GCC.
6304
43f2999d
MS
6305Wed Apr 19 02:32:40 1995 Mike Stump <mrs@cygnus.com>
6306
6307 * search.c (virtual_context): New function to get the virtual
6308 context of a function.
6309 (expand_upcast_fixups): New function to generate runtime vtables.
d11ad92e 6310 (fixup_virtual_upcast_offsets): Likewise.
43f2999d
MS
6311 (expand_indirect_vtbls_init): Use fixup_virtual_upcast_offsets to
6312 ensure that the this offsets for upcasts from virtual bases into
6313 other virtual bases or non-virtual bases are correct at construction
6314 time and destruction time.
6315 * class.c (fixup_vtable_deltas): Modify to fixup all offsets in all
6316 vtables in all virtual bases, instead of just one vtable in each
6317 virtual base.
d11ad92e 6318 (fixup_vtable_deltas1): Likewise.
43f2999d 6319
d11ad92e 6320Tue Apr 18 03:57:35 1995 Michael Meissner <meissner@cygnus.com>
44a8d0b3
MS
6321
6322 * Makefile.in (lex.o): Add dependency on c-pragma.h.
6323
6324 * lex.c (handle_sysv_pragma): Use NULL_PTR and NULL_TREE as
6325 appropriate, instead of 0.
6326
6327Mon Apr 17 12:28:42 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6328
6329 * decl.c (pushdecl): Use decls_match, not duplicate_decls, for
6330 comparing local and global decls.
6331
6332Fri Apr 14 01:46:52 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6333
6334 * typeck.c (convert_arguments): Only prohibit passing to ... of
6335 types with non-trivial copy constructors.
6336
6337 * repo.c (repo_template_used): Don't try to mess with no id.
6338
6339Fri Apr 14 23:32:50 1995 Per Bothner <bothner@rtl.cygnus.com>
6340
6341 * decl.c (duplicate_decls): Use cp_warning_at for redundant-decls.
6342
d11ad92e 6343Thu Apr 13 15:37:42 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
44a8d0b3
MS
6344
6345 * cp-tree.h (current_tinst_level): Delete declaration, since it's
6346 static inside pt.c.
6347
6348 * typeck.c (build_modify_expr): Catch incompatible array assignment.
6349
6350 * parse.y (attribute_list, attrib): Rewrite actions to feed the
6351 right stuff to decl_attributes.
6352
6353Thu Apr 13 11:24:10 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6354
6355 * search.c (dfs_debug_mark): Check for magic virtual like
6356 import_export_vtable.
6357
6358 * typeck.c (build_binary_op_nodefault): Don't call cp_pedwarn with
6359 four args.
6360
6361Wed Apr 12 12:02:57 1995 Jason Merrill <jason@deneb.cygnus.com>
6362
6363 * decl2.c (finish_file): Move prevtable pass before needs_messing_up
6364 decision.
6365
6366Tue Apr 11 11:20:27 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6367
6368 * decl.c (finish_decl): If we're writing out a static data member of
6369 a class, we want the debug info for that class.
6370
6371 * gc.c (build_t_desc): Check linkage of a class properly.
6372
6373 * class.c (finish_struct): Set the 'headof' offset for the main
6374 vtable properly.
6375 (prepare_fresh_vtable): Fix typeinfo pointer here.
6376 (modify_one_vtable): Instead of here.
6377
6378Mon Apr 10 12:15:59 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6379
6380 * repo.c (repo_get_id): New function to return the interesting
6381 identifier for a repo entity.
6382 (repo_template_used): Use it.
6383 (repo_template_instantiated): Mark the id as chosen.
6384 (init_repo): Record whether or not the id was chosen.
6385 (finish_repo): Note if an id was newly chosen.
6386
6387 * pt.c (do_function_instantiation): Call repo_template_instantiated.
d11ad92e 6388 (do_type_instantiation): Likewise. Don't diagnose multiple
44a8d0b3
MS
6389 instantiation.
6390
6391 * decl2.c (finish_file): Use DECL_NOT_REALLY_EXTERN when deciding
6392 whether or not to synthesize a method.
6393
6394 Undo these changes:
6395 * class.c (finish_vtbls): build more vtables if flag_rtti is on.
6396 * class.c (modify_all_direct_vtables): ditto.
6397 * init.c (expand_direct_vtbls_init): expand more vtables if
6398 flag_rtti is on.
6399
79ff2c6c
MS
6400Sat Apr 8 17:45:41 1995 Mike Stump <mrs@cygnus.com>
6401
6402 * gc.c (build_headof): Use ptrdiff_type_node instead of
6403 integer_type_node on pointer arithmetic.
6404
6405Sat Apr 8 11:57:04 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6406
6407 * typeck.c (build_modify_expr): Undo previous change.
6408
6409Thu Apr 6 01:23:50 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6410
6411 * Makefile.in (compiler): Remove ../cc1plus before rebuilding it.
6412
6413 * repo.c (get_base_filename): Put the .rpo file in the directory
6414 with the object file, not the source.
6415
6416 * typeck.c (build_conditional_expr): Handle pmf's better.
6417
6418 * repo.c (finish_repo): Also use ASM_OUTPUT_LABELREF to print out
6419 the name of the symbol.
6420
6421Wed Apr 5 15:24:12 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6422
6423 * repo.c (open_repo_file): Make repo filename DOS-compliant.
6424 (*): Also write a new repo file if some previously-used
6425 templates are no longer used. Only remember the identifier.
6426
6427 * lex.c (cons_up_default_function): If this function belongs to a
6428 template class, call repo_template_used for it.
6429
6430 * repo.c (repo_template_used): Using a class means using its vtable,
6431 if any.
d11ad92e 6432 (finish_repo): Likewise.
79ff2c6c
MS
6433
6434 * typeck.c (build_modify_expr): Only wrap TARGET_EXPRs in RTL_EXPRs
6435 if the type has a complex copy constructor.
6436
6437 * decl2.c (lang_decode_option): -frepo implies
6438 -fno-implicit-templates.
6439
6440 * decl.c (start_function): Clear current_{base,member}_init_list.
6441
6442 * lex.c (init_lex): Also unset *_eq if ! flag_operator_names.
6443
6444Tue Apr 4 16:11:08 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6445
6446 * decl.c (struct cp_function): Add {base,member}_init_list.
6447 (push_cp_function_context): Save current_{base,member}_init_list.
6448 (pop_cp_function_context): Restore them.
6449
b19b4a78
MS
6450Mon Apr 3 16:55:08 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6451
6452 * repo.c (get_base_filename): Take filename parm, fix logic bug.
6453
6454 * typeck.c (build_compound_expr): Do not warn about a compound expr
6455 in which the first expression has no side effects.
6456 (build_x_compound_expr): Warn here instead.
6457 (build_conditional_expr): Don't warn about a conditional expression
6458 between an enum and the type it promotes to.
6459
6460 * init.c (build_new): Handle initialization of arrays of builtins
6461 properly.
6462
d11ad92e 6463Mon Apr 3 15:08:04 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
b19b4a78
MS
6464
6465 * repo.c: Include config.h to get definitions of bcopy and rindex
6466 on systems that don't have them (e.g., SVR4).
6467
6468Mon Apr 3 14:41:55 1995 Mike Stump <mrs@cygnus.com>
6469
6470 * decl2.c (finish_table): Pass NULL_TREE instead of init to
6471 finish_decl so that it won't try and do error checking on the
6472 initializer.
6473
6474Mon Apr 3 10:45:50 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6475
6476 * repo.c (get_base_filename): Analyze COLLECT_GCC_OPTIONS to
6477 determine whether this compile used -c -o.
6478 (open_repo_file): Use get_base_filename. Remove the extension.
6479 (finish_repo): Spit out the values of main_input_filename,
6480 COLLECT_GCC and COLLECT_GCC_OPTIONS.
6481
6482 * parse.y (structsp): Add TYPENAME_KEYWORD complex_type_name.
6483
faae18ab
MS
6484Sun Apr 2 23:43:51 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6485
6486 * search.c (compute_access): Don't try to do access control on
6487 nested types.
6488
6489Fri Mar 31 10:14:23 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6490
6491 * repo.c: New file to handle things repo.
6492
6493 * pt.c (instantiate_template): Call repo_template_used if the
6494 definition is accessible.
6495 (mark_function_instantiated): Split out from
6496 do_function_instantiation.
6497 (mark_class_instantiated): Split out from do_type_instantiation.
6498
6499 * parse.y (template_instantiate_once): Call repo_template_used.
6500
6501 * lex.c (lang_init): Call init_repo.
6502
6503 * decl2.c: Handle flag_use_repository.
6504 (finish_file): Call finish_repo.
6505
6506 * decl.c (start_method): Call repo_template_used if this is a
6507 template method.
6508
6509 * Makefile.in (CXX_OBJS): Add repo.o.
6510 (repo.o): Add dependencies.
6511
6512 * Make-lang.in (CXX_SRCS): Add repo.c.
6513
6514 * decl.c (start_function): If DECL_INTERFACE_KNOWN and
6515 DECL_NOT_REALLY_EXTERN are both set, unset DECL_EXTERNAL.
6516
6517 * typeck.c (build_binary_op_nodefault): Identify the invalid operand
6518 types used.
6519
6520 * decl.c (duplicate_decls): Propagate DECL_NOT_REALLY_EXTERN.
6521
6522Thu Mar 30 17:54:42 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6523
6524 * typeck.c (build_binary_op_nodefault): Tidy up use of build_type
6525 and result_type. When checking for comparison between signed
6526 and unsigned, use result_type rather than the (possibly shortened)
6527 type of op0. Also, don't warn about equality comparison of a
6528 signed operand to an unsigned constant that fits in the signed
6529 type.
6530
6531 * method.c (do_build_copy_constructor): Reverse
6532 current_base_init_list after we've built it up.
6533
6534Thu Mar 30 14:35:18 1995 Mike Stump <mrs@cygnus.com>
6535
6536 * except.c (build_throw): Never warn about the value of throw not
6537 being used.
6538
6539Thu Mar 30 13:16:54 1995 Mike Stump <mrs@cygnus.com>
6540
6541 * except.c (expand_start_catch_block): Check for bad catch parameter
6542 declarations.
6543
6544Thu Mar 30 13:06:11 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6545
6546 * decl.c (finish_function): Only set DECL_NOT_REALLY_EXTERN if
6547 DECL_EXTERNAL is not already set.
6548
6549Thu Mar 30 11:26:24 1995 Mike Stump <mrs@cygnus.com>
6550
6551 * method.c (emit_thunk): Let poplevel know that the last level is
6552 for a function so it can create a BLOCK_NODE and set DECL_INITIAL.
6553
6554Thu Mar 30 11:15:06 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6555
6556 * decl2.c (import_export_inline): Don't set DECL_NOT_REALLY_EXTERN
6557 here.
6558
6559 * decl.c (grokdeclarator): OK, don't abort if we see a decl with
6560 METHOD_TYPE.
6561 (finish_function): Set DECL_EXTERNAL and DECL_NOT_REALLY_EXTERN on
6562 all deferred inlines.
6563
6564Wed Mar 29 19:35:02 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6565
6566 * cp-tree.h (DECL_THIS_INLINE): New macro.
6567 (DECL_NOT_REALLY_EXTERN): New macro.
6568 (DECL_THIS_STATIC): New macro.
6569
6570 * decl.c: Lose all references to current_extern_inline. Break
6571 inline semantics into DECL_INLINE for actual inlining and
6572 DECL_THIS_INLINE for the linkage wierdness. Use DECL_THIS_STATIC.
6573 * decl2.c: Use DECL_NOT_REALLY_EXTERN to indicate that we want to
6574 emit an inline here. Associated changes.
d11ad92e
MS
6575 * lex.c: Likewise.
6576 * pt.c: Likewise.
6577 * typeck.c: Likewise.
faae18ab
MS
6578
6579 * call.c (build_method_call): Don't bother trying to handle inlines
6580 specially.
d11ad92e 6581 * cvt.c (convert_to_aggr): Likewise.
faae18ab
MS
6582
6583 * pt.c (do_function_instantiation): Handle instantiation of
6584 public inlines, too.
6585
6586Wed Mar 29 16:04:25 1995 Mike Stump <mrs@cygnus.com>
6587
6588 * except.c (init_exception_processing): Change the interface for
6589 __throw_type_match and add decl for new rtti matching routine
6590 __throw_type_match_rtti.
6591 (build_eh_type): New routine to build a run time descriptor for the
6592 expression given.
6593 (expand_start_catch_block): Update to use new calling convention for
6594 the matcher.
6595 (expand_throw): Update to use build_eh_type.
6596
08fb8ad0
WL
6597Mon Mar 27 07:14:33 1995 Warner Losh <imp@village.org>
6598
6599 * g++.c: Removed __NetBSD__ from conditional.
6600 Declare strerror if HAVE_STRERROR is defined; otherwise
6601 declare sys_errlist and sys_nerr.
6602 (my_strerror): New function.
6603
71851aaa
MS
6604Tue Mar 28 14:16:35 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6605
6606 * search.c (get_binfo): Don't try to be so clever.
6607
6608 * tree.c (copy_to_permanent): Also suspend_momentary().
6609
6610 * cvt.c (cp_convert_to_pointer): Hand off to convert_fn_pointer even
6611 if the types are the same.
6612
6613 * decl.c (start_function): Handle extern inlines more like C++ says
f30432d7 6614 we should.
71851aaa
MS
6615
6616 * init.c (build_member_call): Hand constructor calls off to
6617 build_functional_cast.
6618
6619 * typeck2.c (build_functional_cast): Use DECL_NESTED_TYPENAME to get
6620 the name of the type.
6621
d11ad92e 6622Tue Mar 28 13:13:56 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
71851aaa
MS
6623
6624 * decl.c (grokdeclarator): Check for the decl returned by
6625 grokfndecl to be null before using build_decl_attribute_variant.
6626
d11ad92e 6627Mon Mar 27 18:04:41 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
71851aaa
MS
6628
6629 * init.c (build_new): Use build_pointer_type instead of
6630 TYPE_POINTER_TO.
6631
7215f9a0
MS
6632Fri Mar 24 12:11:24 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6633
71851aaa
MS
6634 * typeck.c (build_conditional_expr): Handle pmfs.
6635 (convert_for_assignment): Fix pmf support.
6636
6637 * cvt.c (convert_fn_ptr): Support !flag_vtable_thunks.
6638 (cp_convert_to_pointer): Handle pmfs.
6639 (cp_convert): Pass pmfs to cp_convert_to_pointer.
6640
6641 * typeck.c (common_type): Handle inheritance for pmfs.
6642
6643 * typeck2.c (build_m_component_ref): Do access control.
6644
6645 * typeck.c (comp_target_types): Check for conversion to void *
6646 before checking trickier conversions.
6647
7215f9a0
MS
6648 * decl.c (duplicate_decls): Propagate DECL_ABSTRACT_VIRTUAL_P.
6649
6650 * pt.c (push_tinst_level): Complain if template instantiation depth
6651 is greater than max_tinst_depth.
6652
6653 * typeck.c (common_type): Assume that we can call common_type to
6654 unify the target type of a pointer.
6655
6656Thu Mar 23 00:48:44 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6657
6658 * decl2.c (finish_file): Don't synthesize methods at
6659 finish_vtable_prevardecl time. Do synthesize methods that are not
6660 used, but are public and not external.
6661
6662 * cvt.c (build_type_conversion): Only give an error if for_sure.
6663
6664 * typeck.c (comp_target_types): Only support pointer conversions if
6665 nptrs > 0.
6666
d11ad92e 6667Wed Mar 22 19:30:15 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
7215f9a0
MS
6668
6669 * init.c (build_new): Catch use of an initializer list where it
6670 shouldn't be.
6671
6672Wed Mar 22 16:21:07 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6673
6674 * init.c (build_new): Wrap alloc_expr in an RTL_EXPR if nelts is
6675 non-constant.
6676
6677 * decl2.c: temp_name_counter is now public.
6678
6679 * decl.c (struct cp_function): Add temp_name_counter field.
6680 (push_cp_function_context): Save it.
6681 (pop_cp_function_context): Restore it.
6682
6683 * typeck.c (common_type): Handle unifying function types, and unify
6684 unmatched things to void* with a compiler_error, rather than
6685 silently like before.
6686
28cbf42c
MS
6687Wed Mar 22 15:10:34 1995 Mike Stump <mrs@cygnus.com>
6688
6689 * decl2.c (finish_prevtable_vardecl, finish_vtable_vardecl): Revert
6690 Brendan's last change and fix latent problem that causes TD entries
6691 to not come out when the things that need them has yet to be
6692 expanded.
6693
6694Wed Mar 22 15:12:00 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6695
6696 * typeck.c (build_binary_op_nodefault, comparison ops): Update type0
6697 and type1, since we might have changed op0 or op1.
6698
6699Wed Mar 22 13:33:45 1995 Jason Merrill <jason@python.cygnus.com>
6700
6701 * typeck.c (common_type): Don't mess up templates.
6702
6703Wed Mar 22 04:56:00 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6704
6705 * typeck.c (common_type): Handle ptms properly. Also handle
6706 T* -> void*.
6707 (build_binary_op_nodefault): New variable build_type controls what
6708 type is given to the expression when it is created. Set this to
6709 boolean_type_node for comparison ops instead of using result_type.
6710 (comp_target_types): Allow T * -> void *.
6711
6712 * cvt.c (cp_convert_to_pointer): Do access control when converting
6713 ptms, too.
6714
d11ad92e 6715Tue Mar 21 17:25:06 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
28cbf42c
MS
6716
6717 * parse.y (extern_lang_string): Catch use of linkage specs that
6718 aren't all naming the same language.
6719
6720 * class.c (finish_struct): Delete accidental duplicate code.
6721
6722Tue Mar 21 14:00:57 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6723
6724 * typeck.c (build_binary_op_nodefault): Disable pedwarns about
6725 comparing functions and incomplete types.
6726
6727 * decl.c (finish_function): Only unset current_function_decl if
6728 !nested.
6729 (duplicate_decls): Last change went too far; we only want to stop
6730 checking for value/reference ambiguity.
6731
6732Tue Mar 21 01:26:39 1995 Mike Stump <mrs@cygnus.com>
6733
6734 * gc.c (build_generic_desc): Zap the DECL_SIZE so that we can lay it
6735 out fresh, as the new type may be larger.
6736
6737Mon Mar 20 19:01:10 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6738
6739 * expr.c (extract_init): Try to expand the RTL for the
6740 initialization and figure out what it will look like so we can avoid
6741 run-time initialization. Disabled for now.
6742 (extract_scalar_init): Helper for scalar initialization.
6743 (extract_aggr_init): Helper for aggregate initialization.
6744
6745 * decl.c (duplicate_decls): Don't complain about ambiguous
6746 declarations.
6747 (obscure_complex_init): Now returns a tree. Call extract_init if
6748 we're optimizing and this is a toplevel decl.
6749 (finish_decl): Update accordingly.
6750
6751 * lex.c (check_newline): If we're just changing files (not pushing
6752 or popping), update input_file_stack->name.
6753
6754Mon Mar 20 17:55:04 1995 Mike Stump <mrs@cygnus.com>
6755
6756 * pt.c (type_unification): Only TEMPLATE_DECLs are handled right now
6757 in the transitive unification code.
6758
d11ad92e 6759Mon Mar 20 16:07:50 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
28cbf42c
MS
6760
6761 * decl.c (shadow_tag): Don't allow inline, virtual, or explicit on
6762 non-functions.
6763 (grokdeclarator): Don't allow friends to be defined in local classes.
6764
6765Sat Mar 18 04:03:33 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6766
6767 * decl2.c (finish_prevtable_vardecl): Use DECL_DECLARED_STATIC
6768 rather than DECL_SAVED_INSNS to decide whether or not this method
6769 was declared inline.
6770
6771 * method.c (synthesize_method): Turn off DECL_INLINE if
6772 function_cannot_inline_p thinks we're too large.
6773
6774 * typeck.c (build_indirect_ref): Use build_expr_type_conversion.
6775
6776Fri Mar 17 17:47:36 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6777
6778 * class.c (instantiate_type): Handle pmfs.
6779
6780 * typeck.c (convert_for_assignment): Check types when assigning one
6781 pmf to another.
6782
6783 * decl.c (define_label): Fix logic for printing out the name of the
6784 label in an error message.
6785
6786 * error.c (dump_expr): Support ARRAY_REF.
6787
d11ad92e 6788Fri Mar 17 17:43:02 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
28cbf42c
MS
6789
6790 * decl2.c (finish_vtable_vardecl): Call build_t_desc here.
6791 (finish_prevtable_vardecl): Instead of here.
6792
6793Fri Mar 17 14:40:45 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6794
6795 * decl.c (expand_static_init): Also use expand_aggr_init if the
6796 initializer is a TREE_LIST.
6797 (grokdeclarator): Only pedwarn about extra qualification if -pedantic.
6798
6799 * pt.c (unify): Fix unification of return type.
6800
6801 * expr.c (fixup_result_decl): Use store_expr, rather than
6802 emit_move_insn, to move the return value into the place where
6803 callers will expect it.
6804
6805Thu Mar 16 22:05:25 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6806
6807 * init.c (build_offset_ref): Call assmble_external on functions.
d11ad92e 6808 * typeck.c (build_component_ref): Likewise.
28cbf42c 6809
d11ad92e 6810Thu Mar 16 20:28:16 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
28cbf42c
MS
6811
6812 * decl.c (struct saved_scope): Add members base_init_list and
6813 member_init_list.
6814 (push_to_top_level): Save current_base_init_list and
6815 current_member_init_list to them.
6816 (pop_from_top_level): Put it back.
6817
6818Thu Mar 16 19:21:14 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6819
6820 * pt.c (instantiate_template): Call assemble_external.
6821
d11ad92e 6822Thu Mar 16 18:07:54 1995 Brendan Kehoe <brendan@phydeaux.cygnus.com>
28cbf42c
MS
6823
6824 * class.c: Include rtl.h, to get NULL_RTX.
6825 (finish_struct): Also zero out DECL_SAVED_INSNS, to avoid problems
6826 on hosts with different sizes for each part of the union.
6827 * tree.c: Also include rtl.h.
6828 (layout_basetypes): Same change for DECL_SAVED_INSNS.
6829
6830Thu Mar 16 13:57:36 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6831
6832 * pt.c (unify): Fix array domain unification for 64-bit targets.
6833
6834 * decl2.c (finish_file): Push bizarre type decl before walking the
6835 vtables the first time.
6836 (walk_vtables): OK, don't set prev to vars if the vardecl_fn messed
6837 with TREE_CHAIN (prev).
6838
6839 * init.c (emit_base_init): Use convert_pointer_to_real instead of
6840 convert_pointer_to when converting to a direct base.
6841
6842Wed Mar 15 20:26:29 1995 Mike Stump <mrs@cygnus.com>
6843
6844 * pt.c (type_unification): Handle transitive unification better.
6845
6846Wed Mar 15 13:56:16 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6847
6848 * decl2.c (walk_vtables): Always set prev to vars.
6849 (mark_vtable_entries): Call assemble_external on the vtable entries.
6850
6851 * class.c (finish_struct): Set the vtable's size to NULL_TREE before
f30432d7 6852 calling layout_decl, so that it gets updated properly.
28cbf42c
MS
6853
6854 Finally re-enable dynamic synthesis. This time it works.
6855 * method.c (synthesize_method): Pass decl_function_context (fndecl)
6856 to {push,pop}_cp_function_context.
6857 * decl.c (push_cp_function_context): Now takes a tree argument.
d11ad92e 6858 (pop_cp_function_context): Likewise.
28cbf42c 6859 * call.c (build_method_call): Enable synthesis.
d11ad92e 6860 * lex.c (cons_up_default_function): Likewise.
28cbf42c
MS
6861
6862Tue Mar 14 19:14:19 1995 Doug Evans <dje@chestnut.cygnus.com>
6863
6864 * parse.y (setattrs): Chain onto prefix_attributes rather than
6865 setting it.
6866
d11ad92e 6867Wed Mar 15 13:00:00 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
28cbf42c
MS
6868
6869 * decl.c (pushdecl): Check if the type of the VAR_DECL is an
6870 error_mark_node before trying to read TYPE_LANG_SPECIFIC.
6871
d11ad92e 6872Mon Mar 13 21:00:28 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
b7484fbe
MS
6873
6874 * decl.c (grokdeclarator, case ARRAY_REF): Wrap the exp with fold,
6875 and convert the size and integer_one_node to the index type.
6876
6877Mon Mar 13 08:01:02 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6878
6879 * typeck.c (get_member_function_from_ptrfunc): Save the instance
6880 argument, and tack it onto the front of the COND_EXPR to make the
6881 semantics come out right. Grab the instance argument from
6882 '*instance_ptrptr', rather than having it passed in separately.
6883
6884 * various: Change various consed-up comparison operations to have
6885 boolean type. Remove the instance argument in calls to
6886 get_member_function_from_ptrfunc.
6887
6888 * error.c (dump_expr): Dump true and false as "true" and "false".
6889
6890 * decl2.c (finish_file): Also set DECL_STATIC_FUNCTION_P on the
6891 global init function.
6892
6893 * decl.c (finish_function): Only set DECL_EXTERNAL here if the
6894 inline function is public.
6895
6896Sat Mar 11 00:58:03 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6897
6898 * init.c (is_friend): Be more careful about checking
6899 DECL_CLASS_CONTEXT on non-member functions.
6900
6901 * decl2.c (finish_vtable_vardecl): Don't bother calling
6902 assemble_external here.
6903 (prune_vtable_vardecl): New function that just splices out the
6904 vtable decl from the top-level decls.
6905 (import_export_inline): Unset DECL_EXTERNAL at first.
6906 (finish_file): Don't bother calling assemble_external here. Do
6907 splice out all of the vtables.
6908
6909Fri Mar 10 14:42:29 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6910
6911 * decl.c (finish_function): If we're not emitting the function yet,
6912 call assemble_external for it.
6913
6914 * decl2.c (finish_prevtable_vardecl): Don't call mark_vtable_entries
6915 here.
6916 (finish_vtable_vardecl): Don't do the linkage deduction thing here.
6917 Also don't splice out the current vtable if it is unused.
6918 (finish_file): Move the second walk_vtables and the synthesis check
6919 inside the 'reconsider' loop. Move thunk emission after the
6920 'reconsider' loop.
6921
d11ad92e 6922Thu Mar 9 16:28:16 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
b7484fbe
MS
6923
6924 * pt.c (tsubst): Don't bother calling cp_build_type_variant, since it
6925 was passing bogus values for readonly and volatile from the original
6926 template decl, not the resultant type of the tsubst call.
6927
6928 * class.c (duplicate_tag_error): Use cp_error_at to point out the
6929 previous definition of the tag.
6930
6931Thu Mar 9 10:46:17 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6932
6933 * decl.c (start_function): Clear base_init_insns and protect_list.
6934 (struct cp_function): Add base_init_insns field.
6935 (push_cp_function_context): Also save base_init_insns.
6936 (pop_cp_function_context): Also restore base_init_insns.
6937
6938Wed Mar 8 13:31:44 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6939
6940 * init.c (member_init_ok_or_else): Check for initializing a static
6941 member here.
6942 (emit_base_init): Instead of here.
6943
6944Tue Mar 7 16:03:26 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6945
6946 * call.c (build_method_call): Disable synthesis as needed.
d11ad92e 6947 * lex.c (cons_up_default_function): Likewise.
b7484fbe 6948
d11ad92e 6949Tue Mar 7 10:14:29 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
f6abb50a
BK
6950
6951 * parse.y: New rules to allow attributes in a prefix position.
6952 (prefix_attributes): New variable. Pass it into cplus_decl_attributes.
6953 (setattr): New rule.
6954 (reserved_declspecs, declmods): Catch attributes here.
6955 * decl2.c (cplus_decl_attributes): Add PREFIX_ATTRIBUTES argument.
6956 * decl.c (duplicate_decls): Pass DECL_MACHINE_ATTRIBUTES to
6957 descendent typedef.
6958 (grokdeclarator): Added code to support machine attributes.
6959 * Makefile.in (stamp-parse): Expect 5 shift/reduce failures.
6960
b7484fbe
MS
6961Mon Mar 6 15:07:02 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6962
6963 * call.c (build_method_call): Don't synthesize methods outside of a
6964 function.
6965
6966 Make base initialization more re-entrant so that synthesis on the
6967 fly will work (and, eventually, template instantation on the fly).
6968 * init.c (sort_member_init): Don't bother with members that can't be
6969 initialized. Reorganize a bit. Don't initialize base members here.
6970 (sort_base_init): New function, like sort_member_init, but for base
6971 classes. Steals some code from emit_base_init.
6972 (emit_base_init): Simplify. Call sort_{member,base}_init before
6973 doing any initialization, so we don't have to save
6974 current_{member,base}_init_list in push_cp_function_context.
6975 (expand_aggr_vbase_init_1): Adjust for sort_base_init.
6976 (expand_aggr_vbase_init): Simplify.
6977 * decl.c (struct cp_function): Add protect_list field.
6978 (push_cp_function_context): Also save protect_list.
6979 (pop_cp_function_context): Also restore protect_list.
6980 * call.c (build_method_call): Enable synthesis at point of call.
d11ad92e 6981 * lex.c (cons_up_default_function): Likewise.
b7484fbe
MS
6982
6983 * parse.y: Turn -ansi checks back into -pedantic checks.
6984
6985 * init.c (build_new): Fix -fcheck-new for array new.
6986
6987Sat Mar 4 15:55:42 1995 Fergus Henderson <fjh@cs.mu.oz.au>
6988
6989 * typeck.c (build_compound_expr): warn if left-hand operand of
6990 comma expression has no side-effects.
6991
6992Fri Mar 3 15:16:45 1995 Jason Merrill <jason@phydeaux.cygnus.com>
6993
6994 * parse.y (primary): Change 'object qualified_id *' rules to 'object
6995 overqualified_id *'.
6996
d11ad92e 6997Fri Mar 3 12:48:17 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
b7484fbe
MS
6998
6999 * parse.y (unary_expr): Catch doing sizeof an overloaded function.
7000 Make the error look the same as the one we issue in c_sizeof.
7001
7002 * typeck.c (build_binary_op_nodefault): Give an error for trying
7003 to compare a pointer-to-member to `void *'.
7004
7005Fri Mar 3 11:28:50 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7006
7007 * typeck.c (build_unary_op): Handle bool increment with smoke and
7008 mirrors here, rather than in expand_increment where it belongs,
7009 because Kenner doesn't agree with me.
7010
d11ad92e 7011Fri Mar 3 00:08:10 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
b7484fbe
MS
7012
7013 * decl.c (grokparms): Catch a PARM_DECL being used for a default
7014 argument as well.
7015
d11ad92e 7016Thu Mar 2 20:05:54 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
b7484fbe
MS
7017
7018 * init.c (build_new): Don't allow new on a function type.
7019
7020 * parse.y (primary): Avoid a crash when seeing if the arg is of
7021 the same type as that given for the typespec in an explicit dtor call.
7022
7023Thu Mar 2 00:49:38 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7024
7025 * decl.c (finish_function): Change test for calling
7026 mark_inline_for_output.
7027
7028Wed Mar 1 11:23:46 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7029
7030 * typeck.c (build_modify_expr): Complain if
7031 build_default_binary_type_conversion fails.
7032
7033 * init.c (expand_default_init): Handle arguments of unknown type
7034 properly.
7035
7036 * cvt.c (build_expr_type_conversion): Only complain about ambiguity
7037 if 'complain'.
7038 * various: Pass 'complain'.
7039
7040 * typeck.c (comptypes): Be more picky about comparing UPTs.
7041
d11ad92e 7042Wed Mar 1 11:03:41 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
b7484fbe
MS
7043
7044 * decl.c (grokdeclarator): If declarator is null, say that the
7045 type used has an incomplete type.
7046
7047Wed Mar 1 10:06:20 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7048
7049 * pt.c (instantiate_template): Copy the template arguments to the
7050 permanent_obstack. Also use simple_cst_equal to compare them when
7051 looking for a previous instantiation.
7052
7053 * tree.c (make_deep_copy): Support copying INTEGER_TYPEs (assuming
7054 they are array domain types).
7055
7056Tue Feb 28 23:24:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7057
7058 * cp-tree.h: Define WANT_* constants for passing to
7059 build_expr_type_conversion.
7060 * cvt.c (build_expr_type_conversion): New function to build
7061 conversion to one of a group of suitable types.
7062 (build_default_binary_type_conversion): Use it.
d11ad92e
MS
7063 * decl2.c (grok_array_decl): Likewise.
7064 * typeck.c (build_unary_op): Likewise.
b7484fbe 7065 (build_array_ref): Tidy up a bit.
d11ad92e 7066 (build_binary_op): Likewise.
b7484fbe 7067
d11ad92e 7068Tue Feb 28 19:57:31 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
b7484fbe
MS
7069
7070 * decl.c (grokdeclarator): Don't allow decl of an argument as `void'.
7071
7072Tue Feb 28 17:23:36 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7073
7074 * parse.y (typed_declspecs1): Add 'typespec reserved_typespecquals
7075 reserved_declspecs' rule.
7076
7077 * parse.y (expr_or_declarator): Remove notype_qualified_id rule.
d11ad92e 7078 (direct_notype_declarator): Likewise.
b7484fbe
MS
7079 (complex_direct_notype_declarator): Add notype_qualified_id rule.
7080
7081 * lex.c (real_yylex): Handle :> digraph properly.
7082
d11ad92e 7083Tue Feb 28 12:26:29 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
b7484fbe
MS
7084
7085 * decl.c (grokdeclarator): Check if it's a friend, not if it's
7086 non-virtual, that's being initialized. Move the check up to
7087 before FRIENDP would get cleared. Catch an unnamed var/field
7088 being declared void. Say just `field' instead of `structure field'
7089 in the error message. Only go for the operator name if DECLARATOR
7090 is non-null.
7091
7092Tue Feb 28 00:08:01 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7093
7094 * decl.c (start_function): Complain about abstract return type.
7095 (grokdeclarator): Complain about declaring constructors and
7096 destructors to be const or volatile. Complain about declaring
7097 destructors to be static.
7098
7099 * pt.c (uses_template_parms): Handle pmfs.
7100
7101 * decl.c (grokdeclarator): Don't call variable_size for array bounds
7102 that only depend on template constant parameters.
7103
d11ad92e 7104Mon Feb 27 15:38:16 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
b7484fbe
MS
7105
7106 * error.c (dump_decl): Only look to see if it's a vtable if we
7107 actually have a name to check out.
7108
7109Mon Feb 27 13:37:53 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7110
7111 * cvt.c (convert_to_aggr): Lose misleading shortcut.
7112
7113Sun Feb 26 17:27:32 1995 Doug Evans <dje@canuck.cygnus.com>
7114
7115 * decl.c (set_nested_typename): Always set DECL_IGNORED_P,
7116 not just for dwarf.
7117
d11ad92e 7118Sun Feb 26 00:10:18 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
b7484fbe
MS
7119
7120 * decl.c (grokdeclarator): Don't allow a static member to be
7121 declared `register'.
7122
7123 * init.c (make_friend_class): Move up to a pedwarn for the warning
7124 about a class declaring friends with itself.
7125
7126 * decl.c (grokdeclarator): You can't do `volatile friend class foo'
7127 or `inline friend class foo'. Only try to make a friend out of
7128 TYPE if we didn't already reset it to integer_type_node.
7129
d11ad92e 7130Sat Feb 25 22:32:03 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
b7484fbe
MS
7131
7132 * decl.c (grokdeclarator): Don't allow initialization of a
7133 non-virtual function.
7134
7135 * decl.c (start_function): Do a pedwarn if we're changing `main'
7136 to have an int return type.
7137
7138Sat Feb 25 00:02:05 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7139
7140 * typeck.c (build_modify_expr): Handle simple assignment from
7141 TARGET_EXPRs by building up an RTL_EXPR to force expansion. Whew.
7142
d11ad92e 7143Fri Feb 24 18:27:14 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
b7484fbe
MS
7144
7145 * decl.c (grokdeclarator): Also don't allow virtual outside of a
7146 class decl for a scope method definition performed at global binding.
7147
7148 * init.c (build_offset_ref): Don't allow creation of an OFFSET_REF
7149 of a bitfield.
7150
7151 * decl.c (grokdeclarator): Don't allow a const to be declared mutable.
7152
7153 * typeck.c (build_binary_op): Return an error_mark_node if either
7154 one of the args turned into an error_mark_node when we tried to
7155 use default_conversion.
7156
7157 * typeck.c (build_unary_op): Forbid using postfix -- on a bool.
7158
7159 * decl.c (grokdeclarator): Allow `signed' and `unsigned' to be
7160 used on `__wchar_t'.
7161
7162Fri Feb 24 13:59:53 1995 Mike Stump <mrs@cygnus.com>
7163
7164 * except.c (end_protect_partials): Do it the right way.
7165
7166Wed Feb 22 15:42:56 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7167
7168 * typeck.c (build_binary_op_nodefault): Upgrade warning about
7169 comparing distinct pointer types to pedwarn.
7170
7171 * typeck2.c (digest_init): Cope with extra braces.
7172
7173 * typeck.c (build_binary_op_nodefault): Use tree_int_cst_sgn instead
7174 of INT_CST_LT (..., interger_zero_node).
7175
d11ad92e 7176Wed Feb 22 14:45:52 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
b7484fbe
MS
7177
7178 * except.c [!TRY_NEW_EH] (end_protect_partials): Define dummy
7179 function for systems that don't have EH.
7180
7181Tue Feb 21 19:18:31 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7182
7183 * call.c (can_convert_arg): Like can_convert, but takes an arg as
7184 well.
7185
7186 * pt.c (type_unification): Allow implicit conversions for parameters
7187 that do not depend on template parameters.
7188
d11ad92e 7189Tue Feb 21 18:43:48 1995 Douglas Rupp <drupp@cs.washington.edu>
1b65f56d
DR
7190
7191 * Make-lang.in, config-lang.in: ($exeext): New macro.
7192 * Make-lang.in: Try a "cp" if "ln" fails.
7193 * cp-tree.h (decl_attributes): Added argument.
7194 * decl2.c (cplus_decl_attribute): Add arg to decl_attributes.
7195 * cp/g++.c: Added #ifdefs for sys/file.h and process.h for NT.
7196 Modified spawnvp to have to correct number of arguments for OS/2, NT.
7197
b7484fbe
MS
7198Tue Feb 21 18:36:55 1995 Mike Stump <mrs@cygnus.com>
7199
7200 * decl.c (finish_function): Add calls to end_protect_partials to end
7201 the exception region that protects constructors so that partially
7202 constructed objects can be partially destructed when the constructor
7203 throws an exception.
7204 * init.c (perform_member_init, sort_member_init, emit_base_init):
7205 Added support for partially constructed objects.
7206 * init.c (build_partial_cleanup_for): New routine to do partial
7207 cleanups of a base class.
7208 * decl2.c (finish_file): Move the emitting of the exception table
7209 down, after we emit all code that might have exception regions in
7210 them.
7211 * except.c (end_protect_partials, might_have_exceptions_p): New
7212 routines.
7213 (emit_exception_table): Always output table if called.
7214 * cp-tree.h (protect_list, end_protect_partials,
7215 might_have_exceptions_p, emit_exception_table): Added.
7216
d11ad92e 7217Tue Feb 21 16:05:59 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
b7484fbe
MS
7218
7219 * gc.c (build_typeid): Pass a NULL_TREE, not the bogus, unused
7220 address of a local variable.
7221 * class.c (build_vfn_ref): Only try to build the PLUS_EXPR if we
7222 were given a non-null PTR_TO_INSTPTR.
7223
7224Tue Feb 21 01:53:18 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7225
7226 * decl.c (duplicate_decls): Always lay out the merged decl.
7227
7228 * decl2.c (finish_vtable_vardecl): Don't do vtable hack on templates.
d11ad92e 7229 (finish_prevtable_vardecl): Likewise.
59be85d7 7230
b7484fbe
MS
7231 * method.c (synthesize_method): Set interface_{unknown,only}
7232 according to the settings for our class, not the file where it comes
7233 from.
59be85d7 7234
b7484fbe 7235Sat Feb 18 12:26:48 1995 Mike Stump <mrs@cygnus.com>
3a887df4 7236
b7484fbe 7237 * except.c: Handle systems that define __i386__ but not __i386.
3a887df4 7238
e3417fcd
MS
7239Fri Feb 17 15:31:31 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7240
7241 * decl2.c (reparse_decl_as_expr): Support being called without a
7242 type argument.
7243
7244 * parse.y (primary): Add '(' expr_or_declarator ')'. Adds 4 r/r
7245 conflicts. Sigh.
7246
7247Fri Feb 17 12:02:06 1995 Mike Stump <mrs@cygnus.com>
7248
7249 * parse.y (template_def, fndef, fn.def1, return_init, condition,
7250 initdcl0, initdcl, notype_initdcl0, nomods_initdcl0,
7251 component_decl_1, after_type_component_declarator0,
7252 notype_component_declarator0, after_type_component_declarator,
7253 notype_component_declarator, after_type_component_declarator,
7254 full_parm, maybe_raises, exception_specification_opt): Fix up,
7255 include exception_specification_opt maybeasm maybe_attribute and
7256 maybe_init if missing. Rename maybe_raises to
7257 exception_specification_opt to match draft wording. Use maybe_init
7258 to simplify rules.
7259
7260Fri Feb 17 01:54:46 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7261
7262 * init.c (build_new): Set TREE_NO_UNUSED_WARNING on COMPOUND_EXPRs
7263 built for news of scalar types.
7264
7265Thu Feb 16 17:48:28 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7266
7267 * typeck.c (build_binary_op_nodefault): Update code for warning
7268 about signed/unsigned comparisons from C frontend. Realize that the
7269 code in the C frontend is, if anything, even more bogus. Fix it.
7270 (build_binary_op): Undo default_conversion if it wasn't useful.
7271
7272 * typeck.c (build_unary_op, ADDR_EXPR): Lose bogus special case for
7273 PRE*CREMENT_EXPR.
7274
7275 * decl2.c (import_export_vtable): Don't try the vtable hack
7276 if the class doesn't have any real non-inline virtual functions.
7277 (finish_vtable_vardecl): Don't bother trying to find a non-inline
7278 virtual function in a non-polymorphic class.
d11ad92e 7279 (finish_prevtable_vardecl): Likewise.
e3417fcd
MS
7280
7281 * decl2.c (import_export_vtable): Use and set DECL_INTERFACE_KNOWN.
7282
7283 * cp-tree.h (DECL_INTERFACE_KNOWN): Use DECL_LANG_FLAG_5.
7284
7285 * init.c (expand_virtual_init): Always call assemble_external.
7286
7287 * class.c (build_vfn_ref): Always call assemble_external.
7288 (build_vtable): Always call import_export_vtable.
d11ad92e 7289 (prepare_fresh_vtable): Likewise.
e3417fcd
MS
7290 (add_virtual_function): Don't bother setting TREE_ADDRESSABLE.
7291
8ccc31eb
MS
7292Thu Feb 16 03:28:49 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7293
7294 * class.c (finish_struct): Use TYPE_{MIN,MAX}_VALUE to determine
7295 whether an enumerated type fits in a bitfield.
7296
7297Wed Feb 15 15:38:12 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7298
7299 * class.c (grow_method): Update method_vec after growing the class
f30432d7 7300 obstack.
8ccc31eb
MS
7301
7302Wed Feb 15 13:42:59 1995 Mike Stump <mrs@cygnus.com>
7303
7304 * parse.y (handler_seq): Push a level for the catch parameters.
7305
7306Wed Feb 15 12:42:57 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7307
7308 * init.c (emit_base_init): Update BINFO_INHERITANCE_CHAIN on my
7309 bases, in case they've been clobbered.
7310
7311Wed Feb 15 12:07:29 1995 Mike Stump <mrs@cygnus.com>
7312
7313 * class.c (finish_base_struct): Set up BINFO_INHERITANCE_CHAIN here,
7314 so that one day it will always be valid.
d11ad92e 7315 * tree.c (propagate_binfo_offsets, layout_vbasetypes): Likewise.
8ccc31eb
MS
7316
7317 * cp-tree.h (copy_binfo): Removed, unused.
d11ad92e 7318 * tree.c (copy_binfo): Likewise.
8ccc31eb
MS
7319
7320Wed Feb 15 00:05:30 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7321
7322 * init.c (build_new): Save the allocation before calling
7323 expand_vec_init on it.
7324
7325 * decl.c (finish_enum): The TYPE_PRECISION of the enum type mush
7326 match the TYPE_PRECISION of the underlying type for constant folding
7327 to work.
7328
7329Tue Feb 14 15:31:25 1995 Mike Stump <mrs@cygnus.com>
7330
7331 * except.c (push_eh_entry, expand_start_all_catch,
7332 expand_leftover_cleanups, expand_end_catch_block): Keep track of
7333 the context in which the exception region occurs.
7334 (build_exception_table): If the region was not output, don't output
7335 the entry in the eh table for it.
7336
7337Tue Feb 14 02:15:43 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7338
7339 * init.c (expand_default_init): Only use a previous constructor call
7340 if it's a call to our constructor. Does the word "Duh" mean
7341 anything to you?
7342
7343 * decl.c (grokparms): Fine, just don't call
7344 convert_for_initialization at all. OK? Happy now?
7345
7346Mon Feb 13 02:23:44 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7347
7348 * cp-tree.h (CLASSTYPE_FIRST_CONVERSION): Make sure that the class
7349 method vector has a second element before returning it.
7350
7351 * decl.c (grokparms): Don't strip REFERENCE_TYPE before calling
7352 convert_for_initialization.
7353
7354Sun Feb 12 03:57:06 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7355
7356 * typeck.c (build_modify_expr): Compare function name to
7357 constructor_name (current_class_type) instead of current_class_name.
7358
7359 * decl.c (grokparms): Don't do anything with the return value of
7360 convert_for_initialization.
7361
7362 * error.c (dump_decl): Also dump_readonly_or_volatile on the decl.
7363
7364 * decl.c (duplicate_decls): Tweak error message.
7365
7366 * typeck.c (build_const_cast): Implement checking.
7367 (build_reinterpret_cast): Implement some checking.
7368
7369 * cp-tree.h (CONV_FORCE_TEMP): Require a new temporary when
7370 converting to the same aggregate type.
7371 (CONV_STATIC_CAST): Include it.
d11ad92e 7372 (CONV_C_CAST): Likewise.
8ccc31eb
MS
7373 * cvt.c (convert_force): Use CONV_C_CAST instead of CONV_OLD_CONVERT.
7374 (cp_convert): Only force a new temporary if CONV_FORCE_TEMP.
7375
7376Fri Feb 10 16:18:52 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7377
7378 * typeck.c (build_c_cast): Use non_lvalue to tack something on
f30432d7 7379 where necessary.
8ccc31eb
MS
7380
7381 * decl.c (auto_function): Now a function.
7382 * except.c (init_exception_processing): terminate, unexpected,
7383 set_terminate, and set_unexpected have C++ linkage.
7384
7385 * typeck.c (build_unary_op, TRUTH_NOT_EXPR): Use convert instead of
7386 truthvalue_conversion for converting to bool, as it handles
7387 user-defined conversions properly.
d11ad92e 7388 (condition_conversion): Likewise.
8ccc31eb
MS
7389
7390 * except.c (expand_throw): Don't call convert_to_reference.
7391 Pass the correct parameters to build_new.
7392
7393 * method.c (do_build_assign_ref): Don't use access control when
7394 converting to a base reference here.
7395 (do_build_copy_constructor): Or here.
7396
7397 * init.c (build_new): Unset TREE_READONLY on the dereferenced
7398 pointer before assigning to it.
7399
7400 * decl.c (maybe_build_cleanup): Don't bother stripping const here.
7401
7402 * decl2.c (delete_sanity): You can now delete pointer to const.
7403
7404Fri Feb 10 13:28:38 1995 Jason Merrill <jason@python.cygnus.com>
7405
7406 * decl.c (finish_function): Don't rely on actual parameters being
7407 evaluated left-to-right.
d11ad92e 7408 * except.c (expand_end_catch_block): Likewise.
8ccc31eb
MS
7409
7410Fri Feb 10 00:52:04 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7411
7412 * tree.c (real_lvalue_p): Like lvalue_p, but class temps aren't
7413 considered lvalues.
7414 * cvt.c (convert_to_reference): Use real_lvalue_p instead of
f30432d7 7415 lvalue_p.
8ccc31eb
MS
7416
7417 * cvt.c (build_type_conversion_1): Don't call convert on aggregate
7418 types.
7419 (convert_to_reference): Fix erroneous text substitution.
7420
7421 * typeck2.c (initializer_constant_valid_p): Update from C frontend.
7422 Add new argument to all callers.
7423
7424 * typeck.c (convert_arguments): Check for error_mark_node before
7425 trying to do anything with the actual parameter.
7426
7427 * typeck.c (condition_conversion): Build up a CLEANUP_POINT_EXPR and
7428 fold it.
7429 (bool_truthvalue_conversion): Remove. Fix all callers to call
7430 truthvalue_conversion instead.
7431 (various): Fold CLEANUP_POINT_EXPRs.
7432
7433 * parse.y (conditions): Call condition_conversion rather than
7434 building up a CLEANUP_POINT_EXPR.
7435
7436 * pt.c (end_template_decl): Don't warn_if_unknown_interface here
7437 under -falt-external-templates.
7438
7439Thu Feb 9 05:24:10 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7440
7441 * init.c (build_new): Complain about new of const type without
7442 initializer. Other cleanup.
7443
7444 * call.c (compute_conversion_costs): Don't call
7445 build_type_conversion with a reference type; convert to the target
7446 type and check its lvaluetude.
d11ad92e 7447 * cvt.c (convert_to_reference): Likewise.
8ccc31eb
MS
7448
7449 * cvt.c (build_type_conversion_1): There will never be any need to
7450 dereference references here now.
7451
7452Thu Feb 9 00:37:47 1995 Mike Stump <mrs@cygnus.com>
7453
7454 * except.c (expand_builtin_throw): Make sure we only `use' the
7455 value of return_val_rtx.
7456
7457Wed Feb 8 15:45:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7458
7459 * parse.y (structsp): Don't complain about declaring a type being
7460 defined to be a friend.
7461
7462 * decl2.c (warn_if_unknown_interface): Note the template in question
7463 and the point of instantiation, for -falt-external-templates.
7464 * lex.c (reinit_parse_for_method): Pass the decl to
7465 warn_if_unknown_interface.
d11ad92e
MS
7466 * pt.c (instantiate_template): Likewise.
7467 (end_template_decl): Likewise.
8ccc31eb
MS
7468
7469 * decl.c (set_nested_typename): Set IDENTIFIER_TYPE_VALUE on the
7470 nested name again, to make local classes work a bit better.
7471
7472 * typeck.c (build_function_call_real): Dereference reference after
7473 checking for incomplete type.
7474
7475 * init.c (build_new): Accept new of const and volatile types.
7476
7477Wed Feb 8 14:04:16 1995 Jason Merrill <jason@deneb.cygnus.com>
7478
7479 * decl.c (grokdeclarator): Fix error message.
7480
7481Wed Feb 8 03:16:15 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7482
7483 * typeck.c (convert_for_initialization): Do bash arrays when
7484 converting to a reference to non-array.
7485
7486Tue Feb 7 15:50:33 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7487
7488 * cvt.c (cp_convert): Don't call convert_to_reference, or
7489 automatically dereference references. Do pass reference conversions
7490 to cp_convert_to_pointer.
7491 (cp_convert_to_pointer): Support references.
7492
7493 * call.c (build_method_call): Don't build up a reference to the
7494 parameter here; let build_overload_call handle that.
7495
7496 * typeck.c (build_c_cast): Call convert_to_reference directly if
7497 converting to a reference type.
d11ad92e
MS
7498 * method.c (do_build_copy_constructor): Likewise.
7499 * method.c (do_build_copy_constructor): Likewise.
7500 (do_build_assign_ref): Likewise.
8ccc31eb
MS
7501
7502 * call.c (build_method_call): Dereference a returned reference.
d11ad92e 7503 * typeck.c (build_function_call_real): Likewise.
8ccc31eb
MS
7504
7505 * decl.c (xref_basetypes): Check for unions with basetypes here.
7506 (xref_tag): Instead of here.
7507
7508 * pt.c (process_template_parm): Template type parm decls are
7509 artificial.
7510
7511Mon Feb 6 04:32:09 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7512
7513 * parse.y (typed_declspecs): Add missing semicolon.
7514 (do_xref_defn): Resurrect.
7515 (named_class_head_sans_basetype): Move template specialization
7516 definition cases to named_class_head_sans_basetype_defn.
7517
7518 * decl2.c (grokfield): Call pushdecl_class_level after setting the
7519 TYPE_NAME, not before.
7520
7521Sun Feb 5 02:50:45 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7522
7523 * call.c (convert_harshness): Don't call sorry here. Don't allow
7524 conversions between function pointer types if pedantic.
7525
7526 * pt.c (overload_template_name): Pass globalize=1 to xref_tag.
7527
7528 * lex.c (cons_up_default_function): Use the full name for the return
7529 type of op=.
7530
7531 * decl.c (set_nested_typename): Don't worry about anonymous types,
7532 as they already have a unique name.
7533 (pushdecl): Remove redundant set_nested_typename
7534 (xref_tag): Split out base handling into xref_basetypes.
7535
7536 * cp-tree.h (TYPE_INCOMPLETE): New macro; TEMPLATE_TYPE_PARMs are
7537 not considered incomplete even though their definition is unknown.
7538
7539 * decl.c (xref_defn_tag): Lose.
7540 (xref_tag): xref_next_defn = ! globalize.
7541 (pushdecl): Don't set DECL_NESTED_TYPENAME on artificial decls. The
7542 ones that should have it set will have it set by pushtag.
d11ad92e 7543 (pushdecl_class_level): Likewise.
8ccc31eb
MS
7544 (pushtag): Tidy up a bit.
7545 (set_nested_typename): Push a decl for the nested typename from
7546 here, rather than from xref_defn_tag.
7547
7548 * parse.y (do_xref): Lose.
7549 (named_class_head): If we see 'class foo:' we know it's a
7550 definition, so don't worry about base lists for non-definitions.
7551
7552 * pt.c (push_template_decls): Template parm decls are artificial.
7553
7554 * decl.c (duplicate_decls): Restore check for qualifier
7555 disagreement for non-functions.
7556 (decls_match): Remove check for qualifier disagreement.
7557
7558Fri Feb 3 14:58:58 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7559
7560 * decl.c (grok_reference_init): Convert initializer from
f30432d7 7561 reference.
d11ad92e 7562 * typeck.c (convert_for_initialization): Likewise.
8ccc31eb
MS
7563
7564 * decl.c (duplicate_decls): Propagate DECL_NESTED_TYPENAME.
7565
7566 * cvt.c (cp_convert): Don't convert to the same class type by just
7567 tacking on a NOP_EXPR.
7568 (convert_to_reference): Use comp_target_types instead of comptypes
7569 so that we don't allow conversions two levels down.
7570
7571Thu Feb 2 15:07:58 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7572
7573 * class.c (build_vbase_path): Bash types to make the backend happy.
7574 * cvt.c (build_up_reference): Bash the types bashed by
7575 build_vbase_path to be reference types instead of pointer types.
d11ad92e 7576 (convert_to_reference): Likewise.
8ccc31eb
MS
7577
7578 * typeck.c (build_c_cast): Don't strip NOPs if we're converting to a
7579 reference type.
7580
7581 * parse.y (structsp): Put back error for 'struct B: public A;'.
7582
7583Wed Feb 1 23:02:06 1995 Mike Stump <mrs@cygnus.com>
7584
7585 * except.c: Add support for mips systems that don't define __mips
7586 but do define mips, like Ultrix.
7587
7588Wed Feb 1 22:39:07 1995 Mike Stump <mrs@cygnus.com>
7589
7590 * except.c: Add support for exception handling on the Alpha.
7591
1038f4f9
MS
7592Wed Feb 1 10:12:14 1995 Mike Stump <mrs@cygnus.com>
7593
7594 * decl2.c (finish_file): Fix bug in Jan 31st change.
7595
d11ad92e 7596Tue Jan 31 16:59:15 1995 Gerald Baumgartner <gb@lorenzo.cs.purdue.edu>
1038f4f9
MS
7597
7598 * sig.c (build_signature_pointer_or_reference_type): Don't set
7599 IS_AGGR_TYPE for signature pointers/reference so expand_default_init
7600 doesn't expect to find a copy constructor.
7601 * call.c (build_method_call): Treat signature pointers/reference
7602 as if IS_AGGR_TYPE were set.
7603
d18c083e
MS
7604Tue Jan 31 13:28:56 1995 Mike Stump <mrs@cygnus.com>
7605
7606 * gc.c (get_typeid): Pawn off error messages to build_t_desc.
7607 (build_t_desc): Inform the user here if they try and build
7608 with -frtti and don't include <typeinfo.h>.
7609
7610 * decl2.c (finish_prevtable_vardecl): Support rescanning.
7611 (finish_file): Move finish_prevtable_vardecl up to before the global
7612 initializers are done as tdecls are initialized in the global
7613 initializer. Also Pick up any new tdecls or vtables needed by
7614 synthesized methods.
7615
7616 * class.c (finish_struct): Simplify. We have to do rtti scanning at
7617 end, so we might as well do all of it there.
7618
7619Tue Jan 31 05:35:02 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7620
7621 * call.c (build_method_call): Fix -fthis-is-variable for 32-bit
7622 targets, too.
7623
7624Tue Jan 31 00:11:04 1995 Mike Stump <mrs@cygnus.com>
7625
7626 * decl2.c (finish_prevtable_vardecl): New routine, mostly split from
7627 finish_vtable_vardecl. It has the first half functionality from
7628 that routine.
7629 * decl2.c (finish_vtable_vardecl): Update to not include stuff not
7630 in finish_prevtable_vardecl.
7631 * decl2.c (finish_file): Call finish_prevtable_vardecl.
7632 * gc.c (build_generic_desc): Allow it to be called when not at the
7633 global binding layer, but behave as if we were.
7634 (build_t_desc): Rearrange a bit so that it really works and is
7635 easier to follow.
7636 * class.c (finish_struct): Don't decide on tdecls here, as we have
7637 to wait until the end of the file in general to decide whether or
7638 not they come out.
7639
7640Mon Jan 30 01:00:40 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7641
7642 * init.c (build_delete): Check access to operator delete before
7643 calling the destructor.
7644 * method.c (build_opfncall, DELETE_EXPR): build_method is allowed to
7645 return error_mark_node.
7646 * call.c (build_method_call): Use the one-argument op delete even if
7647 it's an error.
7648
7649 * init.c (build_new): Fix -fthis-is-variable support.
d11ad92e 7650 * call.c (build_method_call): Likewise.
d18c083e
MS
7651
7652 * call.c (convert_harshness): Make conversion from a pointer to bool
7653 worse than conversion to another pointer.
7654
7655Sat Jan 28 16:46:10 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7656
7657 * init.c (build_new): Check new return value if -fcheck-new.
7658
7659 * lex.c (check_newline): Clear end_of_file when we're done, too.
7660
7661Sat Jan 28 10:38:39 1995 Mike Stump <mrs@cygnus.com>
7662
7663 * decl2.c (finish_vtable_vardecl): Make rtti TD tables follow
7664 vtables whereever they go.
7665
7666 * gc.c (build_t_desc): Remove old way of setting it up, as it wasn't
7667 right.
7668
7669Sat Jan 28 09:10:44 1995 Mike Stump <mrs@cygnus.com>
7670
7671 * decl2.c (finish_vtable_vardecl): Now set the
7672 interface/implementation of vtables on the first virtual function,
7673 if one exists, otherwise we use the old method. This is a major win
7674 in terms of cutting down the size of objects and executables in
7675 terms of text space and data space. Now most of the savings that
7676 #pragma interface/implementation gives is automatic in a fair number
7677 of cases.
7678
7679Sat Jan 28 04:57:33 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7680
7681 * decl.c (grokdeclarator): Discard the template parameters in a
7682 template constructor declaration so that the function is always
7683 named constructor_name (ctype).
7684
7685 * lex.c (check_newline): Use ungetc to put back the character before
7686 calling HANDLE_PRAGMA.
7687
7688Fri Jan 27 17:23:47 1995 Mike Stump <mrs@cygnus.com>
7689
7690 * decl2.c (check_classfn): If the cname is T<int> and fn_name is T,
7691 make sure we still match them.
7692
7693Fri Jan 27 16:32:10 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7694
7695 * parse.y: Add END_OF_LINE token.
7696
7697 * lex.c (check_newline): Set linemode when we see a # directive, and
7698 unset it when we're done. Turn all 'return's into 'goto skipline'.
7699 Fix all uses of '\n', since we won't see it anymore. Put back the
7700 character we read before checking for a sysv or target pragma.
7701 (real_yylex): If we see an EOF in linemode, return END_OF_LINE.
7702 (handle_sysv_pragma): Don't look at the input stream; quit when we
7703 see an END_OF_LINE token.
7704
7705 * input.c (getch): Return EOF if we're in line mode and at the end
7706 of a line.
7707 (put_back): Don't put back an EOF.
7708
7709Thu Jan 26 19:26:34 1995 Mike Stump <mrs@cygnus.com>
7710
7711 * except.c (expand_throw): Do the newing of the exception object
7712 before we load the type descriptor or the address so that we don't
7713 wipe any of the values out.
7714
7715Thu Jan 26 19:20:00 1995 Mike Stump <mrs@cygnus.com>
7716
7717 * except.c (init_exception_processing): Don't use r12 on the rs6000.
7718
7719Tue Jan 24 16:36:31 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7720
7721 * decl.c (grokparms): Don't try to build up a reference at this point.
7722
7723 * typeck2.c (build_functional_cast): Don't assume that a NOP_EXPR
7724 will suffice to convert from integer_zero_node.
7725
d11ad92e 7726Wed Jan 25 15:02:09 1995 David S. Miller <davem@nadzieja.rutgers.edu>
b7484fbe
MS
7727
7728 * class.c (instantiate_type): Change error message text.
7729 * typeck2.c (store_init_value): Likewise.
7730
e1cd6e56
MS
7731Mon Jan 23 21:57:14 1995 Mike Stump <mrs@cygnus.com>
7732
7733 * pt.c (tsubst): When we copy a node, don't forget to copy
7734 TREE_CHAIN, we use it later.
7735
7736Mon Jan 23 03:33:47 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7737
7738 * typeck.c (convert_for_assignment): Initialize variable before use.
7739
7740Fri Jan 20 01:17:59 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7741
7742 * g++.c (main): Link with both libstdc++ and libg++ if called as
7743 something ending with "g++", otherwise only libstdc++. Move -lm to
7744 the end of the line.
7745
7746Thu Jan 19 15:43:11 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7747
7748 * call.c (build_method_call): Don't mess with 'this' before calling
f30432d7 7749 compute_conversion_costs.
e1cd6e56
MS
7750
7751Wed Jan 18 15:40:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7752
7753 * search.c (get_matching_virtual): Give line number for previous
f30432d7 7754 declaration.
e1cd6e56
MS
7755
7756 * call.c (convert_harshness): Handle conversions to references
7757 better.
7758
7759 * cvt.c (build_up_reference): OK, handle {MIN,MAX}_EXPR *properly*.
7760
7761Wed Jan 18 15:21:38 1995 Mike Stump <mrs@cygnus.com>
7762
7763 * class.c (instantiate_type): Use DECL_CHAIN to walk lists instead,
7764 as the TREE_CHAIN for methods will take us to the next differently
7765 named function, DECL_CHAIN won't.
7766
7767Wed Jan 18 14:26:59 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7768
7769 * tree.c (lvalue_p): Handle {MIN,MAX}_EXPR.
7770
7771 * decl2.c (lang_decode_option): -Wall implies -Wparentheses.
7772 warn_parentheses defaults to 0.
7773
7774 * decl.c (grokparms): Put back call to require_instantiated_type.
7775
7776Tue Jan 17 19:56:15 1995 Mike Stump <mrs@cygnus.com>
7777
7778 * except.c (exception_section): Use the data section on the rs6000.
7779 Change calling convention for named_section.
7780
7781Wed Jan 17 18:20:57 1994 Fergus Henderson <fjh@munta.cs.mu.oz.au>
7782
f30432d7
MS
7783 * cp-tree.h : Make if (x=0) warn with wall
7784 * parse.y : Make if (x=0) warn with wall
e1cd6e56 7785
255512c1
JM
7786Tue Jan 17 14:12:00 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7787
e1cd6e56
MS
7788 * decl.c (BOOL_TYPE_SIZE): BITS_PER_WORD if SLOW_BYTE_ACCESS,
7789 BITS_PER_UNIT otherwise.
7790
7791 * search.c (get_matching_virtual): Don't check the binfo if the
7792 types are the same.
7793
7794 * cvt.c (cp_convert): Just call truthvalue_conversion to convert to
f30432d7 7795 bool.
255512c1
JM
7796
7797Mon Jan 16 13:28:48 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7798
e1cd6e56
MS
7799 * various: Use boolean_type_node, boolean_true_node,
7800 boolean_false_node.
7801
7802 * search.c (get_matching_virtual): Allow covariant returns that
7803 don't require pointer adjustment.
7804
7805 * typeck.c (build_conditional_expr): Don't call default_conversion
7806 on ifexp.
7807
7808 * cvt.c (build_up_reference): Handle MIN_EXPR and MAX_EXPR.
7809
7810 * decl.c (grokdeclarator): Upgrade warning about &const to pedwarn.
7811
d11ad92e 7812Sun Jan 15 22:17:32 1995 David Binderman <dcb@lovat.fmrco.COM>
e1cd6e56
MS
7813
7814 * pt.c (do_function_instantiation): Free targs once we're done.
255512c1
JM
7815
7816Sun Jan 15 22:17:32 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7817
e1cd6e56
MS
7818 * decl.c (BOOL_TYPE_SIZE): Defaults to BITS_PER_WORD.
7819 (init_decl_processing): Use BOOL_TYPE_SIZE instead of CHAR_TYPE_SIZE
7820 for bool.
7821
7822Sat Jan 14 05:33:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7823
7824 * decl2.c (finish_file): We need to mess up if there are any
7825 variables in the list, not just if there is one with a constructor.
7826
7827Fri Jan 13 14:42:55 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7828
7829 * decl.c (duplicate_decls): Propagate DECL_STATIC_{CON,DE}STRUCTOR.
7830 (finish_function): Handle DECL_STATIC_{CON,DE}STRUCTOR.
7831 (finish_function): Trust rest_of_compilation.
7832
7833 * decl2.c (finish_file): Also call functions designated as static
7834 constructors/destructors.
7835
7836 * decl.c (grokdeclarator): Allow access decls of operator functions.
7837 (grokparms): Only do convert_for_initialization if the initializer
7838 has a type.
7839 (duplicate_decls): Put back push_obstacks_nochange call.
7840
7841 * lex.c (real_yylex): Downgrade complaint about the escape sequence
7842 being too large from pedwarn to warning.
7843
7844 * decl.c (grokdeclarator): Don't complain about long long in system
7845 headers.
7846
7847 * lex.c (real_yylex): Handle digraphs.
7848
7849Thu Jan 12 12:17:24 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7850
7851 * decl.c (init_decl_processing): -f{no-,}strict-prototype only
7852 affects C linkage declarations now.
7853
7854 * typeck.c (comp_target_types): Grok simple contravariant conversions.
7855 (common_type): t1 and t2 are interchangeable.
7856
7857 * various: Test return value of comp_target_types differently in
7858 different places; it now returns -1 for a contravariant conversion
7859 (which is fine in symmetric cases).
7860
7861 (common_type): Prefer long double to double even when
7862 they have the same precision.
7863
7864 * decl.c (grokparms): Call convert_for_initialization to check
7865 default arguments.
7866
7867 * init.c (build_new): void_type_node has a size (of 0).
7868
7869 * decl.c (decls_match): Also check for agreement of TREE_READONLY
7870 and TREE_THIS_VOLATILE.
7871 (push_class_level_binding): Properly handle shadowing of
7872 nested tags by fields.
7873
d11ad92e 7874 * search.c (dfs_pushdecls): Likewise.
e1cd6e56
MS
7875
7876 * decl2.c (finish_file): Don't second-guess self-initialization.
7877
7878 * cvt.c (convert_to_reference): Work with expr directly, rather than
7879 a copy.
7880
7881 * decl.c (push_overloaded_decl): Only shadow artificial TYPE_DECLs.
7882
7883 * init.c (add_friend): Downgrade duplicate friend message from
7884 pedwarn to warning.
7885
7886 * decl.c (duplicate_decls): Push obstacks before calling common_type.
7887
7888Thu Jan 12 17:15:21 1995 Michael Ben-Gershon <mybg@cs.huji.ac.il>
7889
7890 * except.c (push_eh_entry): set LABEL_PRESERVE_P flag for
7891 exception table labels.
d11ad92e
MS
7892 (expand_start_all_catch): Likewise.
7893 (expand_leftover_cleanups): Likewise.
7894 (expand_end_catch_block): Likewise.
e1cd6e56
MS
7895 * except.c (make_first_label): new function.
7896 (expand_start_all_catch): add a call to make_first_label() before
7897 using a label as a jump destination.
d11ad92e
MS
7898 (expand_end_all_catch): Likewise.
7899 (expand_leftover_cleanups): Likewise.
7900 (expand_end_catch_block): Likewise.
7901 (expand_builtin_throw): Likewise.
7902 (expand_throw): Likewise.
e1cd6e56
MS
7903 * except.c: Add ARM processor support for exception handling.
7904
7905Thu Jan 12 12:17:24 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7906
7907 (complete_array_type): Copy code from C frontend.
7908
7909 * lex.c (real_yylex): Don't multiply the length of a wide string
7910 literal by WCHAR_BYTES.
7911
7912 * decl.c (pushdecl): Check for redeclaration of wchar_t here.
7913 (duplicate_decls): Instead of here.
7914 (define_label): Complain about a label named wchar_t.
7915 (grokdeclarator): Complain about declarations of
7916 operator-function-ids as non-functions.
7917
7918 * typeck.c (unary_complex_lvalue): Also wrap prefix -- and ++ in
7919 COMPOUND_EXPRs.
7920 (build_unary_op): Wrap unary plus in a NON_LVALUE_EXPR.
7921
7922 * lex.c (real_yylex): Don't skip whitespace when reading the next
7923 character after ->.
7924
7925Wed Jan 11 16:32:49 1995 Mike Stump <mrs@cygnus.com>
7926
7927 * except.c: Allow cc1plus to be built with native compiler on rs6000.
7928 (expand_start_all_catch): Add assemble_external calls for various
7929 routines we call.
d11ad92e
MS
7930 (expand_leftover_cleanups): Likewise.
7931 (expand_start_catch_block): Likewise.
7932 (do_unwind): Likewise.
7933 (expand_builtin_throw): Likewise.
e1cd6e56
MS
7934
7935Wed Jan 11 01:05:42 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7936
7937 * decl.c (pushtag): Only look for a previous decl in the current
7938 binding level. Use explicit global scope in DECL_NESTED_TYPENAME.
7939
7940 * gxx.gperf: Add __signature__ and __sigof__ keywords.
7941
7942 * decl2.c (lang_decode_option): -ansi does not set flag_no_asm. It
7943 does set flag_no_gnu_keywords and flag_operator_names.
7944
7945 * lex.c (init_lex): 'overload' is not a keyword unless -traditional.
7946 Unset extension keywords if -fno-gnu-keywords.
7947 Allow operator names ('bitand') if -foperator-names.
7948 Never unset 'asm'; -fno-asm only affects 'typeof'.
7949
7950 * decl.c (lookup_name_real): The got_object special lookup only
7951 applies to types.
7952
7953Tue Jan 10 18:07:51 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7954
7955 * spew.c (yylex): Also use DECL_NESTED_TYPENAME if got_object is set.
7956
7957 * parse.y (primary): Unset got_object after all rules that use the
f30432d7 7958 'object' nonterminal.
e1cd6e56
MS
7959 (object): Set got_object.
7960
7961 * lex.h: Declare got_object.
7962
7963 * decl.c (lookup_name_real): Also lookup names in the context of an
7964 object specified.
7965
7966Tue Jan 10 14:30:30 1995 Mike Stump <mrs@cygnus.com>
7967
7968 * typeck.c (get_member_function_from_ptrfunc): Use ptrdiff_type_node
7969 for things that have to be added to pointers, not size_type. Cures
7970 problems with pointer to members on Alphas.
d11ad92e
MS
7971 (build_binary_op_nodefault): Likewise.
7972 (get_delta_difference_: Likewise.
7973 (build_ptrmemfunc): Likewise.
e1cd6e56
MS
7974
7975Tue Jan 10 01:49:25 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7976
7977 * decl.c (pushtag): Stick the new decl in TYPE_NAME before pushing
7978 it.
7979
7980 * typeck.c (build_component_ref): Don't build up a COMPONENT_REF
7981 when dealing with overloaded member functions; just act like
7982 build_offset_ref.
7983 (commonparms): Remove misleading comment.
7984
7985 * decl.c (duplicate_decls): Complain about repeated default
7986 arguments here.
7987 (redeclaration_error_message): Instead of here.
7988 (pushdecl): Complain about missing default arguments here.
7989 (grokparms): Instead of here.
7990 (lookup_name_current_level): Also match on DECL_ASSEMBLER_NAME.
7991 (grok_reference_init): Do not complain about missing initializer if
7992 declared 'extern'.
7993
7994 * search.c (lookup_field): Don't return a TYPE_DECL if there is a
7995 function alternative and want_type is not set.
7996
7997Mon Jan 9 18:16:23 1995 Jason Merrill <jason@phydeaux.cygnus.com>
7998
7999 * decl.c (pushtag): Don't set TYPE_NAME to an identifier. Do push
8000 the decl when the type has no TYPE_NAME.
8001 (lookup_nested_type): Don't assume that type has TYPE_NAME set.
8002 (lookup_name_real): Call lookup_field with want_type =
8003 prefer_type.
8004
8005 * search.c (lookup_field): Handle want_type properly in the presence
8006 of fields with the same name.
8007
8008 * decl.c (set_nested_typename): Set nested name for file-scope types
8009 to include leading ::.
8010 (pushdecl): Set the nested typename if the decl doesn't have one,
8011 rather than if the type's canonical decl doesn't have one.
8012
e1cd6e56
MS
8013Mon Jan 9 03:44:33 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8014
8015 * typeck.c (convert_for_assignment): Complain about contravariance
8016 violation here.
8017 (comp_target_types): Instead of here.
8018 (build_unary_op): resolve_offset_ref before checking for a valid
8019 type.
8020
8021 * spew.c (yylex): Decrement looking_for_typename after we see a
8022 _DEFN.
8023
8024 * decl.c (pushdecl): Don't install an artificial TYPE_DECL in
f30432d7 8025 IDENTIFIER_LOCAL_VALUE if we already have a decl with that name.
e1cd6e56
MS
8026
8027 * typeck.c (convert_for_assignment): Converting pointers to bool
8028 does not need a cast.
8029
8030Sun Jan 8 18:16:45 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8031
8032 * class.c (instantiate_type): Initialize nsubsts parm.
8033
d11ad92e 8034 * pt.c (do_function_instantiation): Likewise.
e1cd6e56
MS
8035
8036Sat Jan 7 14:37:05 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8037
8038 * pt.c (tsubst): Use TREE_STATIC instead of DECL_INLINE &&
8039 DECL_SAVED_INSNS to determine whether or not we've seen a definition
8040 of this function.
d11ad92e 8041 (instantiate_template): Likewise.
e1cd6e56
MS
8042
8043 * call.c (convert_harshness): Allow const reference binding when
8044 called from the overloading code, but not when called from
8045 can_convert (since it isn't a conversion).
8046 (convert_harshness): Put back some disabled code.
8047
8048Fri Jan 6 14:10:57 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8049
8050 * call.c (convert_harshness): There is no implicit conversion from
8051 void* to other pointer types (unless the parameter is (void*)0).
8052 (convert_harshness): Non-lvalues do not convert to reference types.
8053
8054 * class.c (finish_struct_methods): Still set
f30432d7 8055 TYPE_HAS_{INT,REAL}_CONVERSION.
e1cd6e56
MS
8056
8057 * call.c (can_convert): Don't use aggregate initialization.
8058
8059 * cp-tree.h: Declare lookup_conversions.
8060
8061Thu Jan 5 21:08:00 1995 Mike Stump <mrs@cygnus.com>
8062
8063 * parse.y (simple_stmt): Fix duplicate case value error messages to
8064 be more readable.
8065
8066Wed Jan 4 16:44:19 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8067
8068 * cvt.c (build_type_conversion): Total rewrite to use
8069 convert_harshness instead of reproducing conversion logic here. Now
8070 much shorter.
8071
8072 * call.c (convert_harshness): Support conversions to bool.
8073 (can_convert): Checks whether a conversion is less harsh
8074 than USER_CODE, for build_type_conversion.
8075
8076 * search.c (add_conversions): Function for passing to dfs_walk which
8077 adds all the type conversion operators in the current type to a list.
8078 (lookup_conversions): Calls dfs_walk with add_conversions and return
8079 the list.
8080 (dfs_walk): Don't require a qfn.
8081
8082 * cp-tree.h: Lose CLASSTYPE_CONVERSIONS hackery.
8083 (CLASSTYPE_FIRST_CONVERSION): Points to elt 1 of CLASSTYPE_METHOD_VEC.
8084
8085 * class.c (finish_struct_bits): Lose CLASSTYPE_CONVERSIONS hackery.
8086 (grow_method): A separate function for building onto the growing
8087 method vector.
8088 (finish_struct_methods): Use it. Put all type conversion operators
8089 right after the constructors. Perhaps we should sort the methods
f30432d7 8090 alphabetically?
e1cd6e56
MS
8091
8092Mon Jan 2 14:42:58 1995 Jason Merrill <jason@phydeaux.cygnus.com>
8093
8094 * call.c (build_method_call): Lose another misleading shortcut.
8095
8096Fri Dec 30 17:57:30 1994 Mike Stump <mrs@cygnus.com>
8097
8098 * gc.c (build_bltn_desc): Handle bool as a built-in type.
8099
8100Fri Dec 30 14:20:21 1994 Mike Stump <mrs@cygnus.com>
8101
8102 * tree.c (layout_vbasetypes): Ensure that we don't loose alignment
8103 on the complete type because of small virtual bases.
255512c1 8104
8145f082
MS
8105Fri Dec 30 12:22:29 1994 Mike Stump <mrs@cygnus.com>
8106
8107 * decl.c (n_incomplete): Bump n_incomplete up to int to match C
8108 front end.
8109 (pushdecl): Also count decls pushed that are of a type being defined
8110 as incomplete things.
8111 * class.c (finish_struct): Move hack_incomplete_structures up to
8112 just after we set it as not being defined, so that the decls we
8113 build for RTTI don't count as incomplete.
8114
8115Thu Dec 29 18:20:57 1994 Mike Stump <mrs@cygnus.com>
8116
8117 * pt.c (tsubst): Fix problem with defining constructors in templated
8118 classes with virtual bases.
8119
8120Wed Dec 28 08:31:00 1994 Mike Stump <mrs@cygnus.com>
8121
8122 * parse.y (TYPEID): Strip top-level cv-qualifiers on typeid
8123 expressions.
d11ad92e 8124 * gc.c (build_typeid): Likewise.
8145f082
MS
8125
8126Thu Dec 22 17:26:33 1994 Mike Stump <mrs@cygnus.com>
8127
8128 * cvt.c (build_up_reference): Fix breakage introduced on Nov 29,
8129 don't assert on complex AGGR inits.
8130
8131Thu Dec 22 14:32:31 1994 Mike Stump <mrs@cygnus.com>
8132
8133 * method.c (build_overload_value): Handle pointer to members as
8134 template arguments.
8135
8136Thu Dec 22 13:09:07 1994 Mike Stump <mrs@cygnus.com>
8137
8138 * typeck.c (unary_complex_lvalue): Don't call sorry if we know how
8139 to do take the address of a data member for a pointer to data
8140 member.
8141
8142Thu Dec 22 10:04:19 1994 Mike Stump <mrs@cygnus.com>
8143
8144 * decl.c (grokdeclarator): Use the typedef name for linkage if the
8145 type doesn't otherwise have a name.
8146
d11ad92e 8147 * decl2.c (grokfield): Likewise.
8145f082
MS
8148
8149 * class.c (finish_struct): Since we reuse the TYPE_DECL for the
8150 DECL_NAME of enums, structs and classes, we have to avoid trying to
8151 put it in the TYPE_FIELDS again.
8152
8153Wed Dec 21 11:07:05 1994 Mike Stump <mrs@cygnus.com>
8154
8155 * decl2.c (check_classfn): Ignore this parameter on static functions
8156 when checking to see if we match.
8157
8158Tue Dec 20 17:47:02 1994 Mike Stump <mrs@cygnus.com>
8159
8160 * typeck.c (unary_complex_lvalue): Handle address of non-left most
8161 pointers to members by calling get_delta_difference.
8162
5edb8b93
MS
8163Mon Dec 19 22:40:53 1994 Mike Stump <mrs@cygnus.com>
8164
8165 * decl2.c (check_classfn): Don't use decls_match yet, as it modifies
8166 static functions to early.
8167
8168Thu Dec 19 22:37:48 1994 Mike Stump <mrs@cygnus.com>
8169
8170 * method.c (make_thunk): Handle encoding of positive thunk offsets.
8171
8172Sat Dec 17 13:29:50 1994 Doug Evans <dje@canuck.cygnus.com>
8173
8174 * Make-lang.in (.PHONY): Tell GNU make C++ and c++ are phony targets.
8175
6060a796
MS
8176Thu Dec 15 16:32:12 1994 Mike Stump <mrs@cygnus.com>
8177
8178 * decl2.c (check_classfn): Use decls_match to check if this has
8179 already been declared, as the DECL_ASSEMBLER_NAME may have been
8180 changed via asm("new_name").
8181 * decl.c (decls_match): Make public.
8182
8183Thu Dec 15 15:17:55 1994 Mike Stump <mrs@cygnus.com>
8184
8185 * *.[chy] (expand_aggr_init) Add fourth argument to handle
8186 distinction between = init and (init) style of initializations.
8187 * *.[chy] (finish_decl): Add fifth argument to to handle
8188 distinction between = init and (init) style of initializations.
8189
8190Tue Dec 13 19:16:05 1994 Mike Stump <mrs@cygnus.com>
8191
8192 Fix some random `explicit' bugs.
8193
8194 * cvt.c (convert_to_reference): Add third parameter to
8195 convert_force.
d11ad92e
MS
8196 (convert_force): Likewise.
8197 * call.c (build_method_call): Likewise.
8198 * decl2.c (setup_vtbl_ptr): Likewise.
8199 * init.c (expand_virtual_init): Likewise.
8200 (build_member_call): Likewise.
8201 (build_delete): Likewise.
8202 (build_vbase_delete): Likewise.
8203 * typeck.c (build_component_addr): Likewise.
8204 (build_c_cast): Likewise.
8205 (build_modify_expr): Likewise.
8206 * cp-tree.h (CONV_NONCONVERTING): Likewise. Add so that we can
6060a796
MS
8207 distinguish the context in which the conversion appears. Add thrid
8208 argument to build_c_cast.
8209 * cvt.c (cp_convert): Pass whether or not we want to consider
8210 non-converting constructors down to build_method_call.
8211 * decl2.c (reparse_absdcl_as_casts): Add third argument to
8212 build_c_cast.
d11ad92e
MS
8213 * gc.c (build_m_desc): Likewise.
8214 * init.c (build_new): Likewise.
8215 * parse.y (expr_no_commas): Likewise.
8216 (primary): Likewise.
8217 * typeck.c (build_x_function_call): Likewise.
8218 (build_static_cast): Likewise.
8219 (build_reinterpret_cast): Likewise.
8220 (build_const_cast): Likewise.
8221 (build_c_cast): Likewise.
8222 (build_ptrmemfunc): Likewise.
8223 * typeck2.c (build_functional_cast): Likewise.
6060a796
MS
8224 * init.c (expand_aggr_init): Added LOOKUP_ONLYCONVERTING to
8225 expand_aggr_init_1 as inits are converted to the destination type.
8226
8227Tue Dec 13 16:18:57 1994 Jason Merrill <jason@phydeaux.cygnus.com>
8228
8229 * Make-lang.in (cc1plus): Depends on c-pragma.o.
8230
8231 * Makefile.in (OBJ{DEP,}S): Add ../c-pragma.o.
8232
8233 * lex.c (check_newline): If the #pragma is not recognized by g++,
8234 try machine-specific ones too.
8235 (handle_sysv_pragma): Copied from c-lex.c.
8236
8237Mon Dec 12 23:53:06 1994 Mike Stump <mrs@cygnus.com>
8238
8239 * except.c (expand_throw): Fix Dec 6th change, build_new likes a
8240 reference better.
8241
8242Mon Dec 12 18:01:00 1994 Jason Merrill <jason@phydeaux.cygnus.com>
8243
8244 * typeck.c (build_binary_op): Lose checks on TYPE_PTRMEMFUNC_P with
8245 IS_AGGR_TYPE, since now they will not both be set on the same type.
8246
8247 * pt.c (do_pending_expansions): Don't clear TREE_PUBLIC on
8248 instantiations controlled by -fexternal-templates.
8249
8250 * decl.c (duplicate_decls): Don't complain about different values of
8251 __attribute__ ((const)) and ((noreturn)).
8252
81cdf787
DE
8253Fri Dec 9 18:17:37 1994 Doug Evans <dje@cygnus.com>
8254
8255 * Makefile.in (BISONFLAGS): Delete --yacc.
8256 (PARSE_H): Depend on $(PARSE_C), for parallel makes.
8257 (PARSE_C): Undo last patch.
8258
be99da77 8259Fri Dec 2 10:44:36 1994 Mike Stump <mrs@cygnus.com>
30ffea6b 8260
3526f730 8261 * Makefile.in (BISONFLAGS): Add --yacc so that output winds up in
30ffea6b
MS
8262 y.tab.c.
8263
6060a796
MS
8264Thu Dec 8 17:39:46 1994 Jason Merrill <jason@phydeaux.cygnus.com>
8265
8266 * decl.c (finish_decl): Don't call obscure_complex_init for decls
8267 of indeterminate size.
8268
8269Wed Dec 7 16:49:22 1994 Jason Merrill <jason@phydeaux.cygnus.com>
8270
8271 * decl.c (obscure_complex_init): Function to tweak the decl to
8272 prevent expand_decl from tring to initialize it.
8273 (finish_decl): Use it rather than writing the same code in three
8274 different places.
8275
8276 * parse.y (bad_parm): Stop trying to support parms without types.
8277
8278Wed Dec 7 12:06:56 1994 Mike Stump <mrs@cygnus.com>
8279
8280 * decl2.c (grokfield): Make asm specs on static member functions
8281 work.
8282
8283Tue Dec 6 15:43:20 1994 Mike Stump <mrs@cygnus.com>
8284
8285 * except.c (expand_throw): Make a copy of the thrown object.
8286
8287Tue Dec 6 14:16:34 1994 Jason Merrill <jason@phydeaux.cygnus.com>
8288
8289 * parse.y: : has lower precedence than =.
8290
8291Tue Dec 6 12:46:17 1994 Mike Stump <mrs@cygnus.com>
8292
8293 * decl.c (pushdecl): Use DECL_NAME of VAR_DECLs to avoid namespace
8294 manglings.
8295 (grokvardecl): Add namespace into variable name.
8296
8297Tue Dec 6 11:26:55 1994 Mike Stump <mrs@cygnus.com>
8298
8299 * decl2.c (current_namespace_id): New routine to transform a simple
8300 name into a name in a namespace.
8301 * decl.c (grokdeclarator): Use it.
8302 * decl2.c (get_namespace_id): Find the name of the current
8303 namespace.
8304 (push_namespace, pop_namespace): Complete out missing
8305 functionality.
8306
8307Mon Dec 5 17:11:51 1994 Jason Merrill <jason@phydeaux.cygnus.com>
8308
8309 * class.c (finish_struct): Don't use LONG_LONG_TYPE_SIZE, as it may
8310 not be defined. Fix warning message for enums and restore warning
8311 for non-enums.
8312
8313 * decl2.c (push_namespace): Dummy function.
d11ad92e
MS
8314 (pop_namespace): Likewise.
8315 (do_namespace_alias): Likewise.
8316 (do_using_decl): Likewise.
8317 (do_using_directive): Likewise.
6060a796
MS
8318
8319 * parse.y: New token NSNAME for namespace names.
8320 (extdef): Add namespace, using definitions.
8321 (using_decl): New rule for using declarations.
8322 (any_id): New rule for identifiers with any degree of scoping.
8323 (identifier): Add NSNAME.
d11ad92e 8324 (notype_identifier): Likewise.
6060a796
MS
8325 (component_decl): Add using_decl.
8326 (nested_name_specifier): Add NSNAME SCOPE.
8327
8328 * typeck.c (convert_for_assignment): Handle conversions between
8329 enums and bool.
8330
8331 * decl.c (duplicate_decls): Only propagate DECL_MAIN_VARIANT on
8332 FUNCTION_DECLs.
8333
8334Mon Dec 5 13:03:16 1994 Mike Stump <mrs@cygnus.com>
8335
8336 * class.c (finish_struct): Give an error if one tries to declare a
8337 bit-field's size greater than a long long, as the backend will dump.
8338 It is not an error to declare an enum bit-field greater than its
8339 precision. Warn if an enum bit-field is too small to hold all
8340 its values.
8341
8342Mon Dec 5 11:41:50 1994 Mike Stump <mrs@cygnus.com>
8343
8344 * typeck.c (convert_for_assignment): Use cp_convert instead of
8345 convert so that we don't get static casts.
8346
8347Sun Dec 4 11:59:01 1994 Mike Stump <mrs@cygnus.com>
8348
8349 * cvt.c (cp_convert): Don't complain about int->enum conversion if
8350 we are doing static casts.
8351
8352Fri Dec 2 18:32:41 1994 Mike Stump <mrs@cygnus.com>
8353
8354 * error.c (dump_expr): Do something more intelligent with SAVE_EXPRs
8355 when dumping expressions in error messages.
8356
8357Fri Dec 2 17:04:27 1994 Mike Stump <mrs@cygnus.com>
8358
8359 * gc.c (build_dynamic_cast): Change interface to libg++, ensure that
f30432d7 8360 the return type is the right type, and make references work.
6060a796
MS
8361
8362Fri Dec 2 16:36:43 1994 Jason Merrill <jason@phydeaux.cygnus.com>
8363
8364 * decl.c (poplevel): Don't be confused by function-scope
8365 declarations of non-nested functions.
8366 (duplicate_decls): Propagate DECL_MAIN_VARIANT.
8367 (pushdecl): Use duplicate_decls to copy info from old decl into new
8368 function-scope one rather than doing it here.
8369
8370 * decl2.c (mark_inline_for_output): Deal with the DECL_MAIN_VARIANT
8371 of this decl, in case this is a function-scope declaration.
8372
8373 * decl.c (finish_enum): Make sure that the type has the right
8374 precision when we call fixup_*_type.
8375
8376Tue Nov 29 19:12:07 1994 Jason Merrill <jason@phydeaux.cygnus.com>
8377
8378 * cvt.c (build_up_reference): Strip superfluous NOP_EXPRs; we do
8379 want to build up references to rvalues if possible.
8380 (cp_convert): Stick on a NOP_EXPR when converting to the same type.
8381
8382Tue Nov 29 11:28:59 1994 Mike Stump <mrs@cygnus.com>
8383
8384 * parse.y (maybe_raises): Handle throw ().
8385 * parse.y (ansi_raise_identifier): grok type-ids in exception
8386 specifications.
8387 * tree.c (build_exception_variant): Use list compare to check if
8388 two exception specifications match.
8389 * decl.c (duplicate_decls, bad_specifiers): Enhance wording on error
8390 messages.
8391 * call.c (build_method_call): Remove TREE_RAISES.
d11ad92e
MS
8392 * cvt.c (convert_to_aggr): Likewise.
8393 * typeck.c (build_function_call_real, convert_arguments): Likewise.
8394 * init.c (expand_aggr_init_1): Likewise.
6060a796
MS
8395
8396Tue Nov 29 09:50:39 1994 Mike Stump <mrs@cygnus.com>
8397
8398 * except.c: Add support for m68k and mips exception handling
8399 support.
8400
8401Tue Nov 29 08:48:33 1994 Mike Stump <mrs@cygnus.com>
8402
8403 * except.c (expand_end_all_catch): Throw into outer context, if we
8404 fall off end of catch handlers.
8405
db5ae43f
MS
8406Mon Nov 28 16:44:41 1994 Mike Stump <mrs@cygnus.com>
8407
8408 * Makefile.in: Make is easier to decide where parse.[ch] will be
8409 built.
8410
af824546
DE
8411Thu Nov 17 20:11:24 1994 Doug Evans <dje@cygnus.com>
8412
8413 * cp/Make-lang.in (CXX_INSTALL_NAME) Use program_transform_name.
8414 (GXX_INSTALL_NAME) Likewise.
8415 (CXX_CROSS_NAME) Use program_transform_cross_name.
8416 (GXX_CROSS_NAME) Likewise.
8417 (c++.install-man): Use program_transform_name on g++.1.
8418 (c++.uninstall): Likewise.
8419
db5ae43f
MS
8420Mon Nov 28 13:53:03 1994 Mike Stump <mrs@cygnus.com>
8421
8422 * parse.y (THROW): Fix precedence of throw expressions.
8423
8424Mon Nov 28 13:15:16 1994 Mike Stump <mrs@cygnus.com>
8425
8426 * typeck.c (build_unary_op): Allow promotions from bool to int on
8427 unary ~.
8428
8429Sun Nov 27 00:16:21 1994 Jason Merrill <jason@phydeaux.cygnus.com>
8430
8431 * method.c (build_overload_name): Use DECL_ASSEMBLER_NAME for
8432 classes when appropriate.
8433 (build_overload_nested_name): When dealing with a function context,
8434 use ASM_FORMAT_PRIVATE_NAME to tweak the name of the function to
8435 avoid conflicts between local classes of the same name.
8436
8437Wed Nov 23 17:59:42 1994 Mike Stump <mrs@cygnus.com>
8438
8439 * gxx.gperf, parse.y, lex.h, hash.h, lex.c (init_lex), delc.c
8440 (duplicate_decls, grokdeclarator), cp-tree.h: Add support for
8441 `explicit'.
8442 * cvt.c (convert_to_reference, cp_convert, build_type_conversion_1,
8443 build_type_conversion): Use LOOKUP_ONLYCONVERTING in
8444 build_method_calls so that non-converting constructors are not used.
8445 * call.c (build_method_call): If we shouldn't use a non-converting
8446 constructor, then don't.
8447
8448Wed Nov 23 14:46:56 1994 Jason Merrill <jason@phydeaux.cygnus.com>
8449
8450 * call.c (build_method_call): Don't try to synthesize methods yet.
8451
8452Tue Nov 22 12:45:21 1994 Jason Merrill <jason@phydeaux.cygnus.com>
ea943e1d 8453
db5ae43f
MS
8454 * pt.c (push_template_decls): Create CONST_DECLs for template
8455 constant parameters, not VAR_DECLs.
8456
d11ad92e 8457Sat Nov 19 15:28:31 1994 Jim Wilson <wilson@chestnut.cygnus.com>
db5ae43f
MS
8458
8459 * typeck.c (build_binary_op_nodefault): Can shorten shift only if
8460 shift count is less than size in bits of arg0.
8461
8462Thu Nov 17 15:30:50 1994 Mike Stump <mrs@cygnus.com>
8463
8464 * gxx.gperf, hash.h, lex.c (init_lex, real_yylex), parse.y: Add new
8465 ANSI keywords and, and_eq, bitand, bitor, explicit, namespace, not,
8466 not_eq, or, or_eq, typename, using, xor, xor_eq to g++. Still need
8467 to add support for explicit, namespace, typename, and using, support
8468 for the rest is already in.
8469
db5ae43f
MS
8470Fri Nov 4 19:04:18 1994 Mike Stump <mrs@cygnus.com>
8471
8472 * gc.c (get_bad_cast_node): New routine to support compile time
8473 throws of bad_cast.
8474 * gc.c (build_dynamic_cast): Support throwing of bad_cast at compile
8475 time.
8476
8477Fri Nov 4 11:12:00 1994 Mike Stump <mrs@cygnus.com>
8478
8479 * except.c: Add hppa support.
8480
8481Fri Nov 4 10:50:50 1994 Mike Stump <mrs@cygnus.com>
8482
8483 * except.c: Add rs6000 support.
8484
8485Thu Nov 3 14:24:23 1994 Mike Stump <mrs@cygnus.com>
8486
8487 * except.c (do_unwind): Add i[34]86 support.
8488
d11ad92e 8489Thu Nov 3 00:10:46 1994 Jason Merrill <jason@phydeaux.cygnus.com>
db5ae43f
MS
8490
8491 * pt.c (do_pending_expansions): Unset TREE_PUBLIC on implicit
8492 instantiations.
8493
d11ad92e 8494Wed Nov 2 15:08:24 1994 Kung Hsu <kung@mexican.cygnus.com>
db5ae43f 8495
14548a19 8496 * decl.c (finish_function): Emit types used in method parameters
db5ae43f
MS
8497 into symbol table.
8498
d11ad92e 8499Wed Nov 2 15:05:47 1994 Jason Merrill <jason@phydeaux.cygnus.com>
db5ae43f
MS
8500
8501 * pt.c (process_template_parm): Allow pointer to member function
8502 template parameter types.
8503 (uses_template_parms): Handle pointer to member function
8504 CONSTRUCTORs.
8505
8506 * g++.c (main): Cast first argument of bzero to (char *).
8507 Pass -lstdc++ instead of -lg++ unless we are invoked as 'g++'.
8508
d11ad92e 8509Mon Oct 31 14:50:48 1994 Kung Hsu <kung@mexican.cygnus.com>
db5ae43f
MS
8510
8511 * gc.c (build_dynamic_cast): rewrite to make it work.
8512 * class.c (finish_vtbls): build more vtables if flag_rtti is on.
8513 * class.c (modify_all_direct_vtables): ditto.
8514 * init.c (expand_direct_vtbls_init): expand more vtables if
8515 flag_rtti is on.
8516 * decl.c (init_type_desc): add default return.
8517
d11ad92e 8518Tue Oct 25 17:13:09 1994 Kung Hsu <kung@mexican.cygnus.com>
db5ae43f
MS
8519
8520 * tree.c (debug_binfo): get rid of the initial size entry of
8521 vtable.
8522 * cp-tree.h: change flag_dossier to flag rtti, define type
8523 descriptor type nodes.
8524 * decl.c (init_type_desc): new function to initialize type
8525 descriptor type nodes.
8526 * decl.c (record_builtin_type): change flag_dossier to flag_rtti.
8527 * lex.c (init_lex): ditto.
8528 * decl.c : change variable flag_dossier to flag_rtti.
8529 * decl.c (duplicate_decls): get rid initial size entry of vtable.
8530 * decl.c (hack_incomplete_structures): take out assert 164.
8531 * search.c (get_abstract_virtuals_1): ditto.
8532 * search.c (dfs_init_vbase_pointers): change CLASSTYPE_DOSSIER to
8533 CLASSTYPE_RTTI.
8534 * parse.y: ditto.
8535 * class.c (prepare_fresh_vtable): for virtual bases, get right
8536 offset.
8537 * class.c (add_virtual_function): change flag_dossier to
8538 flag_rtti.
8539 * class.c (modify_one_vtable): modify the right rtti entry.
8540 * class.c (override_one_vtable): get rid of size entry.
8541 * class.c (finish_struct): change flag_dossier to flag_rtti, and
8542 build extra vtables, build type descriptors for polymorphic
8543 classes.
8544 * gc.c (build_headof): make headof() works correctly with new
8545 rtti.
8546 * gc.c (build_typeid): make this function work with new rtti.
8547 * gc.c (get_typeid): make this function work with new rtti.
8548 * gc.c (build_bltn_desc): new function for new rtti.
8549 * gc.c (build_user_desc): ditto.
8550 * gc.c (build_class_desc): ditto.
8551 * gc.c (build_ptr_desc): ditto.
8552 * gc.c (build_attr_desc): ditto.
8553 * gc.c (build_func_desc): ditto.
8554 * gc.c (build_ptmf_desc): ditto.
8555 * gc.c (build_ptmd_desc): ditto.
8556 * gc.c (build_t_desc): ditto.
8557 * gc.c : comment out old build_t_desc, build_i_desc, build_m_desc.
8558
d11ad92e 8559Tue Oct 25 13:37:41 1994 Jason Merrill <jason@phydeaux.cygnus.com>
db5ae43f
MS
8560
8561 * call.c (convert_harshness): Check for TREE_UNSIGNED differences
8562 after checking for integral conversions.
ea943e1d 8563
72b7eeff
MS
8564Wed Nov 30 19:13:50 1994 Mike Stump <mrs@cygnus.com>
8565
8566 * Version 2.6.3 released.
8567
8568Thu Nov 17 10:56:50 1994 Jason Merrill <jason@phydeaux.cygnus.com>
8569
8570 * typeck2.c (build_m_component_ref): Check the basetype of the
8571 member pointer against the main variant of the object type.
8572
8573Mon Nov 14 14:21:52 1994 Jason Merrill <jason@phydeaux.cygnus.com>
8574
8575 * cvt.c (convert_to_reference): Make sure that the original expr
8576 gets its type back when converting a reference.
8577
8578 * method.c (build_overload_name): Clear numeric_outputed_need_bar here.
8579 (build_decl_overload): Instead of here.
8580
8581Tue Nov 8 17:11:24 1994 Jason Merrill <jason@phydeaux.cygnus.com>
8582
8583 * cvt.c (cp_convert): Don't build a TARGET_EXPR if we're not in a
8584 function.
8585
8586 * typeck.c (convert_for_initialization): Handle initialization from
8587 a TARGET_EXPR.
8588
d11ad92e 8589Sun Nov 6 01:34:24 1994 Jason Merrill <jason@phydeaux.cygnus.com>
72b7eeff
MS
8590
8591 * pt.c (lookup_nested_type_by_name): Fix list-walking logic.
8592 (tsubst): When replacing a TEMPLATE_TYPE_PARM, propagate
8593 TYPE_READONLY and TYPE_VOLATILE from the argument.
8594 (unify): When unifying with a TEMPLATE_TYPE_PARM, remove cv-quals
8595 present in parm from arg.
8596 (type_unification): Strip REFERENCE_TYPE from the argument type.
8597 (unify): Don't strip REFERENCE_TYPE from the argument type.
8598
d11ad92e 8599Sat Nov 5 22:42:15 1994 Greg McGary <gkm@magilla.cichlid.com>
72b7eeff
MS
8600
8601 * pt.c (do_type_instantiation): Check to see if there's a
8602 IDENTIFIER_TEMPLATE on a class before calling
8603 instantiate_member_templates().
8604
8605Sat Nov 12 06:35:42 1994 Mike Stump <mrs@cygnus.com>
8606
8607 * Version 2.6.2 released.
8608
8609Thu Nov 3 18:48:19 1994 Paul Eggert <eggert@twinsun.com>
8610
8611 * Makefile.in (spew.o, lex.o, pt.o):
8612 Depend on $(srcdir)/parse.h, not parse.h.
8613
8614Tue Nov 1 19:19:41 1994 Mike Stump <mrs@cygnus.com>
8615
8616 * Version 2.6.1 released.
8617
d11ad92e 8618Sun Oct 23 13:19:55 1994 Jason Merrill <jason@phydeaux.cygnus.com>
eae89e04 8619
db5ae43f
MS
8620 * decl2.c: Declare flag_access_control.
8621 (struct lang_f_options): Add access-control.
8622 * expr.c (cplus_expand_expr, NEW_EXPR): Unset flag_access_control
8623 for the call to expand_aggr_init to copy the object out of the
8624 pcc_struct_return slot.
8625 * search.c (compute_access): if (!flag_access_control) return
8626 access_public.
eae89e04 8627
d11ad92e 8628Fri Oct 21 00:32:54 1994 Jason Merrill <jason@phydeaux.cygnus.com>
eae89e04 8629
db5ae43f
MS
8630 * lex.c (cons_up_default_function): Don't try to defer method
8631 synthesis now.
8632
8633 * decl.c (init_decl_processing): Use __pure_virtual for abort_fndecl
8634 instead of abort, since the OSF/1 dynamic linker doesn't like to see
8635 relocation entries for abort.
eae89e04 8636
db5ae43f
MS
8637 * tree.c (array_type_nelts_total): Use sizetype, not
8638 integer_type_node.
d11ad92e 8639 (array_type_nelts_top): Likewise.
db5ae43f
MS
8640
8641Thu Oct 20 15:48:27 1994 Mike Stump <mrs@cygnus.com>
8642
8643 * decl.c (grokdeclarator): Added handling for catch parameters
8644 (CATCHPARM).
8645 * except.c (expand_start_catch_block): Use the new CATCHPARM context
8646 instead of NORMAL.
8647 * except.c (expand_throw): Don't let convert_to_reference complain
8648 about what we are doing.
8649
d11ad92e 8650Thu Oct 20 12:55:24 1994 Jim Wilson <wilson@cygnus.com>
db5ae43f
MS
8651
8652 * method.c (emit_thunk): Call instantiate_virtual_regs.
8653
8654Wed Oct 19 14:15:33 1994 Mike Stump <mrs@cygnus.com>
8655
8656 * except.c (expand_exception_blocks): Make sure throw code doesn't
8657 get put in function that won't be output.
eae89e04 8658
d11ad92e 8659Mon Oct 17 18:03:15 1994 Jason Merrill <jason@phydeaux.cygnus.com>
eae89e04 8660
db5ae43f
MS
8661 * decl.c (init_decl_processing): Make alloca a builtin.
8662
d11ad92e 8663Thu Oct 27 21:10:25 1994 Craig Burley <craig@burley>
db5ae43f
MS
8664
8665 * g++.c (main): Only decrement "added" and set "library" to
8666 NULL when "library" != NULL (just like 940829 fix).
eae89e04 8667
c199879d
MS
8668Mon Oct 17 15:56:11 1994 Mike Stump <mrs@cygnus.com>
8669
8670 * except.c (expand_start_catch_block): Make sure the false label
8671 gets onto the permanent obstack, as it is used for the exception
8672 table.
8673
13306d4f
MS
8674Fri Oct 14 18:54:48 1994 Mike Stump <mrs@cygnus.com>
8675
8676 * class.c (modify_one_vtable): Since the DECL_CONTEXT of fndecl can
8677 be set just below, use current_fndecl instead.
8678
d11ad92e 8679Fri Oct 14 15:12:22 1994 Jason Merrill <jason@phydeaux.cygnus.com>
db5ae43f
MS
8680
8681 * init.c (expand_aggr_vbase_init_1): Don't call expand_aggr_init_1
8682 with LOOKUP_SPECULATIVELY.
8683 (expand_default_init): Abort if build_method_call returns NULL_TREE.
8684
8685 * typeck.c (build_modify_expr): Don't just build a MODIFY_EXPR if
8686 the rhs is a TARGET_EXPR.
8687
8688 * parse.y (left_curly): Anonymous types are not affected by #pragma
8689 interface/implementation.
8690
8691 * method.c (synthesize_method): Don't call setup_vtbl_ptr for the
8692 default constructor if it isn't needed.
8693
8694 * lex.c (cons_up_default_function): Do synthesize methods for
8695 anonymous types if necessary.
8696
d11ad92e 8697Thu Oct 13 17:44:55 1994 Jason Merrill <jason@phydeaux.cygnus.com>
2f4f907d 8698
db5ae43f 8699 * method.c (build_decl_overload): Set numeric_outputed_need_bar to 0.
2f4f907d 8700
d11ad92e 8701Wed Oct 12 13:27:57 1994 Jason Merrill <jason@phydeaux.cygnus.com>
2f4f907d 8702
db5ae43f
MS
8703 * typeck.c (build_modify_expr): Understand how to copy an aggregate.
8704
d11ad92e 8705 * init.c (expand_default_init): Likewise. Also remove some of the
db5ae43f
MS
8706 crufty code that assumes methods will not be synthesized properly.
8707
8708 * lex.c (cons_up_default_function): If the containing type has no
8709 name, these functions should never need to be called, so just
8710 declare them.
2f4f907d 8711
db5ae43f
MS
8712 * lex.c (real_yylex): Use HOST_BITS_PER_WIDE_INT to determine the
8713 bitmask for lexing character constants.
8714
8715 * call.c (build_method_call): Disable code that tries to do tricky
8716 stuff with a default parameter that is a constructor call, but
8717 actually does other tricky stuff that breaks things.
2f4f907d
JM
8718
8719Wed Oct 12 16:14:01 1994 Benoit Belley <belley@cae.ca>
8720
db5ae43f
MS
8721 * decl.c (finish_enum): Disable code which forces enums to be signed,
8722 since this conflicts with their use as bitfields. type_promotes_to
8723 handles promotion of enums of underlying unsigned types to signed
8724 integer types.
2f4f907d 8725
d11ad92e 8726Wed Oct 12 13:24:03 1994 Jason Merrill <jason@phydeaux.cygnus.com>
2f4f907d 8727
db5ae43f
MS
8728 * cvt.c (type_promotes_to): Also promote enums to long if
8729 appropriate.
2f4f907d 8730
db5ae43f
MS
8731 * typeck.c (default_conversion): Don't expect type_promotes_to to
8732 return a main variant.
2f4f907d 8733
d11ad92e 8734Wed Oct 12 12:19:45 1994 Jason Merrill <jason@phydeaux.cygnus.com>
2f4f907d 8735
db5ae43f
MS
8736 * call.c (build_scoped_method_call): Don't lose side effects in the
8737 object expression when calling a non-existent destructor.
2f4f907d 8738
d11ad92e 8739Fri Sep 2 19:05:21 1994 Rohan Lenard <rjl@iassf.easams.com.au>
2f4f907d 8740
db5ae43f
MS
8741 * call.c (build_scoped_method_call): Remove erroneous error message
8742 when destructor call is written as a scoped call.
2f4f907d 8743
d11ad92e 8744Tue Oct 11 23:48:31 1994 Jason Merrill <jason@phydeaux.cygnus.com>
db5ae43f
MS
8745
8746 * various: Cast pointer arguments to bzero and bcopy to char *.
252b87c7 8747
13306d4f
MS
8748Tue Oct 11 19:34:32 1994 Mike Stump <mrs@cygnus.com>
8749
8750 * class.c (get_derived_offset): Added a type parameter to limit how
8751 far up the CLASSTYPE_VFIELD_PARENT chain we search.
8752 * class.c (modify_one_vtable, fixup_vtable_deltas): When forming the
8753 offset to put into the vtable for the this parameter, make sure we
8754 don't offset from a parent of the DECL_CONTEXT of the function.
8755
d11ad92e 8756Tue Oct 11 16:10:52 1994 Jason Merrill <jason@phydeaux.cygnus.com>
db5ae43f
MS
8757
8758 * pt.c (do_function_instantiation): Set DECL_EXTERNAL and
8759 TREE_STATIC when setting DECL_INTERFACE_KNOWN.
d11ad92e 8760 (do_type_instantiation): Likewise.
db5ae43f
MS
8761
8762 * lex.c (cons_up_default_function): Set DECL_INTERFACE_KNOWN,
8763 DECL_EXTERNAL and TREE_STATIC as appropriate.
8764
8765 * decl2.c (finish_file): Also synthesize methods that don't have
8766 DECL_EXTERNAL set. Set interface_unknown before doing so.
8767
8768 * decl.c (start_function): If DECL_INTERFACE_KNOWN is set on the
8769 function decl, don't muck with TREE_PUBLIC and DECL_EXTERNAL.
8770
d11ad92e 8771Mon Oct 10 00:56:53 1994 Jason Merrill <jason@phydeaux.cygnus.com>
cba8ba35 8772
db5ae43f
MS
8773 * lex.c (cons_up_default_function): Mark methods in a template class
8774 as template instances. Store the values of interface_unknown and
8775 interface_only for do_pending_inlines.
8776 (do_pending_inlines): Use them.
8777
8778 * decl2.c (finish_file): If we haven't seen a definition of a
8779 function declared static, make the decl non-PUBLIC so compile_file
8780 can give an error.
cba8ba35 8781
d11ad92e 8782Sun Oct 9 02:42:29 1994 Jason Merrill <jason@phydeaux.cygnus.com>
cba8ba35 8783
db5ae43f 8784 * method.c (do_build_copy_constructor): Handle anonymous unions.
d11ad92e 8785 (do_build_assign_ref): Likewise.
db5ae43f
MS
8786 (largest_union_member): Move from lex.c.
8787
d11ad92e 8788Sat Oct 8 14:59:43 1994 Jason Merrill <jason@phydeaux.cygnus.com>
db5ae43f
MS
8789
8790 Re-implement g++'s vague linkage independent of TREE_PUBLIC.
8791 * pt.c (instantiate_member_templates): Lose redundant
8792 -fexternal-templates handling.
8793 (tsubst): Set TREE_PUBLIC and DECL_EXTERNAL on new decls. Don't set
8794 TREE_STATIC or DECL_INTERFACE_KNOWN.
8795 (do_pending_expansions): Predicate on DECL_INTERFACE_KNOWN instead
8796 of DECL_EXTERNAL for explicit instantiations.
8797 (do_function_instantiation): Do the new thing.
d11ad92e 8798 (do_type_instantiation): Likewise.
db5ae43f
MS
8799 (instantiate_template): Deal with member templates defined in a .cc
8800 file with -fexternal-templates.
8801 * except.c (expand_exception_blocks): Use DECL_LINKAGE_KNOWN to
8802 decide whether to stick builtin_throw here.
8803 * decl2.c (import_export_inline): Predicate on DECL_INTERFACE_KNOWN
8804 rather than TREE_PUBLIC. Generally fix rules.
8805 (finish_file): Use DECL_INITIAL to determine whether or not a method
8806 has been synthesized, rather than TREE_ASM_WRITTEN.
8807 * decl.c (warn_extern_redeclared_static): Use DECL_PUBLIC instead of
8808 TREE_PUBLIC.
d11ad92e
MS
8809 (pushdecl): Likewise.
8810 (duplicate_decls): Likewise. Deal with DECL_DECLARED_STATIC and
db5ae43f
MS
8811 DECL_INTERFACE_KNOWN.
8812 (redeclaration_error_message): Fix checking for conflicting linkage.
8813 (define_function): Set DECL_INTERFACE_KNOWN.
8814 (grokfndecl): Function decls are PUBLIC until we are sure about
8815 their linkage. Set DECL_DECLARED_STATIC as needed.
8816 (start_function): Deal with linkage. Move pushdecl after linkage
8817 magic.
8818 (finish_function): Don't set TREE_ASM_WRITTEN on discarded inlines.
8819 * cp-tree.h (lang_decl_flags): Add interface_known and
8820 declared_static.
8821 (DECL_INTERFACE_KNOWN): New macro.
8822 (DECL_DECLARED_STATIC): New macro.
8823 (DECL_PUBLIC): New macro.
8824
8825 Clean up bogus use of TREE_PUBLIC.
8826 * class.c (alter_access): Fix mistaken use of TREE_PUBLIC (it
8827 doesn't correspond to TREE_PROTECTED and TREE_PRIVATE).
8828 * init.c (do_friend): Don't arbitrarily set TREE_PUBLIC.
cba8ba35 8829
d11ad92e 8830Wed Oct 5 13:44:41 1994 Jason Merrill <jason@phydeaux.cygnus.com>
cba8ba35 8831
db5ae43f
MS
8832 * call.c (build_overload_call_real): Don't immediately do
8833 array->pointer conversion.
cba8ba35 8834
db5ae43f
MS
8835 * pt.c (type_unification): If not passing to a reference, strip
8836 cv-quals. Also handle array->pointer conversion.
cba8ba35 8837
d11ad92e 8838Tue Oct 4 17:45:37 1994 Jason Merrill <jason@phydeaux.cygnus.com>
cba8ba35 8839
db5ae43f
MS
8840 * decl.c (grokdeclarator): Don't warn about applying const to a
8841 const typedef or template type parameter.
8842
8843 * decl2.c (finish_file): Also synthesize methods after walking the
8844 vtables. Ugly ugly ugly.
cba8ba35 8845
d11ad92e 8846Mon Oct 3 15:02:41 1994 Jason Merrill <jason@phydeaux.cygnus.com>
cba8ba35 8847
db5ae43f
MS
8848 * various: Remove lingering remnants of old exception handling code.
8849
8850 * decl2.c (finish_file): Synthesize methods before walking the
8851 vtables, so that the vtables get emitted as needed.
8852
8853 * decl.c (shadow_tag): Remove obsolete code for pushing tags and
8854 dealing with exceptions.
8855
8856Mon Oct 3 13:05:27 1994 Ian Lance Taylor <ian@sanguine.cygnus.com>
8857
8858 * Make-lang.in (g++-cross): Depend upon version.o and $(LIBDEPS).
8859
d11ad92e 8860Mon Oct 3 02:59:28 1994 Jason Merrill <jason@phydeaux.cygnus.com>
db5ae43f
MS
8861
8862 * decl2.c (finish_file): Fix inline handling.
cba8ba35 8863
d11ad92e 8864Sun Oct 2 00:21:56 1994 Jason Merrill <jason@phydeaux.cygnus.com>
cba8ba35 8865
db5ae43f
MS
8866 * decl.c (grokdeclarator): Handle redundant scope even better.
8867 ({push,pop}_cp_function_context): Take toplev parameter.
cba8ba35 8868
db5ae43f
MS
8869 * method.c (synthesize_method): Pass toplev parameter to
8870 {push,pop}_cp_function_context depending on decl_function_context
8871 (fndecl).
cba8ba35 8872
db5ae43f
MS
8873 * typeck.c (build_x_unary_op): Unary & on OFFSET_REFs is always the
8874 built-in version.
cba8ba35 8875
db5ae43f
MS
8876 * method.c (synthesize_method): Don't be confused by __in_chrg
8877 parameter.
b3738072 8878
db5ae43f 8879 * class.c (popclass): Set C_C_D like start_function does.
b3738072 8880
db5ae43f 8881 * decl.c (grokdeclarator): Handle redundant scope better.
81613e43 8882
db5ae43f 8883 * parse.y (expr_or_declarator): Add '(' expr_or_declarator ')' rule.
d11ad92e 8884 (direct_notype_declarator): Likewise.
db5ae43f 8885 (complex_direct_notype_declarator): Remove it here.
81613e43 8886
d11ad92e 8887Sat Oct 1 21:42:18 1994 Jason Merrill <jason@deneb.cygnus.com>
44c5421f 8888
db5ae43f
MS
8889 * init.c (resolve_offset_ref): Fix types used in resolving .*
8890 expressions.
8891
d11ad92e 8892Sat Oct 1 15:18:49 1994 Jason Merrill <jason@phydeaux.cygnus.com>
db5ae43f
MS
8893
8894 Beginnings of work to synthesize methods only when needed.
8895 * call.c (build_method_call): Synthesize methods as necessary
8896 (currently never necessary).
8897 * class.c (popclass): Don't try to set C_C_D here, as it'll end up
8898 on the wrong obstack.
8899 * decl.c (push_cp_function_context): Mostly copied from
8900 push_c_function_context.
8901 (pop_cp_function_context): Similarly.
8902 (finish_function): Reverse order of poplevel and pop_nested_class so
8903 that current_class_decl is restored properly.
d11ad92e 8904 (start_function): Likewise.
db5ae43f
MS
8905 (finish_function): Add parameter 'nested'. Don't call
8906 permanent_allocation if (nested).
8907 * various: Pass extra parameter to finish_function.
8908 * decl2.c (finish_file): Reorganize end-of-file inline handling,
8909 synthesizing methods as necessary.
8910 * lex.c (cons_up_default_function): Call mark_inline_for_output.
8911 Only synthesize methods immediately if #pragma implementation
8912 (currently disabled).
8913 (do_pending_inlines): Call synthesize_method.
8914 * method.c (synthesize_method): New function; all method synthesis
8915 goes through here. Calls do_build_assign_ref and
8916 do_build_copy_constructor.
8917 (build_default_constructor): Remove.
d11ad92e 8918 (build_dtor): Likewise.
db5ae43f
MS
8919 (build_assign_ref): Rename to do_build_assign_ref and remove stuff
8920 done by synthesize_method.
8921 (build_copy_constructor): Similarly.
44c5421f 8922
eac293a1
MS
8923Thu Sep 29 16:58:52 1994 Mike Stump <mrs@cygnus.com>
8924
8925 * typeck.c (c_expand_return): Use magic so the backend can fixup the
8926 assignment into the return register, so cleanups won't clobber it.
8927
d11ad92e 8928Thu Sep 29 13:08:50 1994 Jason Merrill <jason@deneb.cygnus.com>
eac293a1
MS
8929
8930 * method.c (hack_identifier): Don't call assemble_external for
8931 template decls.
8932
8933 * decl.c (finish_decl): Also end temporary allocation if the decl in
8934 question has a type of error_mark_node.
8935
6060a796 8936Wed Sep 28 21:45:00 1994 Mike Stump <mrs@cygnus.com>
eac293a1
MS
8937
8938 * typeck.c (build_modify_expr): When optimizing ?: on lhs, make sure
8939 that if the ?: was a reference type, that the subparts will be also.
8940
d11ad92e 8941Wed Sep 28 16:14:04 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
eac293a1
MS
8942
8943 * except.c (register_exception_table): Use Pmode, not PTRmode.
8944
d11ad92e 8945Fri Sep 23 13:54:27 1994 Jason Merrill <jason@deneb.cygnus.com>
eac293a1
MS
8946
8947 * lex.c (do_pending_inlines): Do method synthesis after the
8948 pending_inlines have been reversed.
8949
d11ad92e 8950Thu Sep 22 12:53:03 1994 Per Bothner <bothner@kalessin.cygnus.com>
f376e137
MS
8951
8952 * decl2.c (finish_file): Fix Brendan's fix: Only call
8953 register_exception_table if there is a non-empty exception table.
8954
d11ad92e 8955Thu Sep 22 12:03:46 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
f376e137
MS
8956
8957 * decl2.c (finish_file): Only do register_exception_table if
8958 -fhandle-exceptions is being used.
8959
d11ad92e 8960Wed Sep 21 19:01:51 1994 Per Bothner <bothner@kalessin.cygnus.com>
f376e137
MS
8961
8962 * except.c (output_exception_table_entry): Simplify
8963 by using assemble_integer.
8964 (build_exception_table): Change to return a count.
8965 Cleanup to use standard macros, instead of hard-wired
8966 sparc asm format. Don't make __EXCEPTION_TABLE__ global.
8967 (register_exception_table): New function. Generate call to builtin.
8968 * decl2.c (finish_file): Call register_exception_table.
8969 * cp-tree.h (build_exception_table): Fix prototype.
8970
d11ad92e 8971Wed Sep 21 13:20:42 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
f376e137
MS
8972
8973 * tree.c (break_out_calls): Don't try to duplicate the DECL_INITIAL.
8974
8975 * decl2.c (delete_sanity): Give an error at trying to delete a
8976 function.
8977
d11ad92e 8978Wed Sep 21 11:47:10 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
8979
8980 * lex.c (cons_up_default_function): Mark synthesized destructors
8981 inline.
8982
8983 * decl.c (duplicate_decls): Ignore redeclarations of wchar_t as
8984 something other than __wchar_t, complaining if -pedantic and not in
8985 a system header.
8986
d11ad92e 8987Tue Sep 20 09:43:28 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
8988
8989 * decl.c (xref_tag): Set up BINFO_INHERITANCE_CHAIN on base binfos
8990 here.
8991
8992 * typeck.c (build_modify_expr): Require complete type after checking
8993 for error_mark_node.
8994
8995 * call.c (build_method_call): Print parmtypes when complaining of
8996 ambiguous call.
8997
8998 * typeck.c (build_modify_expr): Handle assignment to array from
8999 non-array.
9000
9001 * decl.c (lookup_name_real): Deal with got_scope == error_mark_node.
9002
9003 * call.c (build_method_call): Don't bother with the exact match.
9004
d11ad92e 9005Mon Sep 19 00:51:39 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
9006
9007 * init.c (expand_aggr_init): If we munge the type of the variable,
9008 also munge the type of the initializer.
9009
9010 * decl.c (grokdeclarator): Use <= when comparing to RID_LAST_MODIFIER.
9011 (init_decl_processing): Push artificial declaration of wchar_t so
9012 people don't have to declare it before they can use it.
9013
9014 * error.c (cp_line_of): return lineno in lieu of 0.
9015
9016 * typeck.c (convert_for_assignment): Handle conversion of pmfs to
9017 int and bool.
9018 (build_component_ref): Fold the COMPONENT_REF in case it can be
9019 reduced.
9020
9021 * typeck2.c (store_init_value): Don't pedwarn about non-constant
9022 bracketed initializers for automatic variables.
9023
d11ad92e 9024Sun Sep 18 10:12:12 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
9025
9026 * error.c (dump_decl): Don't say `typedef enum foo foo'.
9027
9028 * decl.c (start_decl): Don't set TREE_PUBLIC on template decls just
9029 because they're affected by #pragma i/i. We'll deal with that when
9030 they get instantiated.
9031
9032 * typeck.c (build_unary_op): Clean up cruft in ADDR_EXPR case.
9033
9034 * class.c (instantiate_type): Set TREE_CONSTANT on instantiated
9035 ADDR_EXPRs if appropriate.
9036
9037 * decl.c (build_ptrmemfunc_type): Unset IS_AGGR_TYPE on pmf types.
9038
9039 * typeck.c (build_ptrmemfunc): Handle &overloaded_method as an
9040 initializer properly.
d11ad92e 9041 * typeck2.c (digest_init): Likewise.
f376e137
MS
9042
9043 * tree.c (cp_build_type_variant): Like c_build_type_variant, except
9044 it uses build_cplus_array_type.
9045 * *.c: Use cp_build_type_variant instead of c_build_type_variant.
9046
9047 * pt.c (do_type_instantiation): Don't try to instantiate nested
db5ae43f 9048 enums.
f376e137 9049
d11ad92e 9050Tue Sep 13 10:56:58 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
9051
9052 * cvt.c (build_up_reference): Handle preincrement and predecrement
db5ae43f 9053 properly.
f376e137 9054
d11ad92e 9055Tue Sep 13 09:51:59 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
f376e137
MS
9056
9057 * decl.c (finish_decl): Only lay out the rtl for DECL if it is, in
9058 fact, static.
9059
d11ad92e 9060Mon Sep 12 14:40:30 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
f376e137
MS
9061
9062 * decl.c (finish_decl): Lay out the rtl for DECL before doing
9063 grok_reference_init, in case it's static.
9064
d11ad92e 9065Mon Sep 12 12:45:38 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
9066
9067 * class.c (finish_struct): Don't synthesize constructors if the
9068 class has a field with the same name as the class. Don't die on
9069 classes with no constructors or destructors. Don't die if the head
9070 and tail of the class are in different files.
9071
9072 * decl.c (grokdeclarator): Don't treat a function pointer field
9073 with the same name as the class as a constructor.
9074
d11ad92e 9075Fri Sep 9 13:17:00 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
9076
9077 * typeck.c (build_c_cast): Pull constant values out of their
9078 variables here.
9079
9080 * decl.c (duplicate_decls): Only propagate DECL_CHAIN in
9081 FUNCTION_DECLs and TEMPLATE_DECLs.
9082
d11ad92e 9083Thu Sep 8 10:07:48 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
9084
9085 * decl.c (duplicate_decls): Propagate DECL_CHAIN in all DECLs that
9086 have it.
9087
9088 * pt.c (unify): REALs and INTEGERs only unify with their own genus.
9089 (instantiate_member_templates): Don't muck with DECL_EXTERNAL and
9090 TREE_PUBLIC unless -fexternal-templates.
9091
d11ad92e 9092Wed Sep 7 13:17:10 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
9093
9094 * pt.c (do_type_instantiation): Call instantiate_member_templates.
9095 Deal with specializations.
9096 (tsubst): Don't stick the mangled name in DECL_NAME for function
9097 instantiations. Don't push them, either.
9098
9099 * decl2.c (grokfield): Move code for generating the
9100 DECL_ASSEMBLER_NAME for static members from here.
9101 * method.c (build_static_name): To here.
9102 * decl.c (grokvardecl): Call build_static_name.
9103 (duplicate_decls): Keep old DECL_ASSEMBLER_NAME.
9104
d11ad92e 9105Mon Sep 5 12:49:18 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
9106
9107 * call.c (build_method_call): if -Wsynth, warn when selecting
9108 synthesized op= over user-supplied one cfront would select.
9109 * decl2.c (lang_decode_option): Handle -Wsynth.
9110
d11ad92e 9111Fri Sep 2 15:11:59 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
9112
9113 * decl.c (finish_enum): Overhaul to fix several bugs.
9114 (start_enum): Disable useless code.
9115
d11ad92e 9116Thu Sep 1 16:04:54 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
9117
9118 * typeck.c (c_expand_return): Warn about returning a reference to a
9119 temporary.
9120 (convert_arguments): Increment argument counter when using default
9121 arguments, too.
9122
d11ad92e 9123Wed Aug 31 14:29:22 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
9124
9125 * decl.c (finish_decl): If the type of decl is error_mark_node,
9126 don't bother trying to do anything.
9127
9128 * typeck.c (convert_for_initialization): If the rhs contains a
9129 constructor call, pretend the lhs type needs to be constructed.
9130
9131 * init.c (expand_default_init): If we stick the object inside the
9132 initializer, mark the initializer used.
9133
d11ad92e 9134Tue Aug 30 13:50:18 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
9135
9136 * method.c (build_assign_ref): return *this;
9137 (build_assign_ref): Fix base assignment order.
9138 (build_copy_constructor): Fix member init order.
9139
d11ad92e 9140Mon Aug 29 13:54:39 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
f376e137
MS
9141
9142 * g++.c (main): Remember to clear out SAW_SPECLANG after we see
9143 its argument.
9144
d11ad92e 9145Sat Aug 27 09:36:03 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
9146
9147 * method.c (build_copy_constructor): Also copy virtual bases.
9148
d11ad92e 9149Fri Aug 26 17:05:15 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
9150
9151 * lex.c (do_pending_inlines): Clear out pending_inlines before doing
9152 any synthesis. Also first set deja_vu on all pending_inlines.
9153
9154 * method.c (build_assign_ref): Use build_member_call to invoke base
9155 operator=, rather than build_modify_expr. And use
9156 build_reference_type instead of TYPE_REFERENCE_TO.
9157 (build_copy_constructor): Use TYPE_NESTED_NAME to identify the
9158 basetype.
9159
9160 * decl2.c (grokfield): Don't complain about undefined local class
9161 methods.
9162
9163 * class.c (finish_struct): Don't try to synthesize methods here.
9164 * lex.c (do_pending_inlines): Instead, synthesize them here.
9165 (init_lex): Initialize synth_obstack.
9166 (cons_up_default_function): Stick synthesis request on
9167 pending_inlines.
9168
d11ad92e 9169Fri Aug 26 12:24:14 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
f376e137
MS
9170
9171 * call.c (build_method_call) [PCC_STATIC_STRUCT_RETURN]: Also
9172 accept an RTL_EXPR in what we're about to use for the instance,
9173 since anything which would end up with pcc_struct_return set
9174 inside cplus_expand_expr.
9175
9176 * cp-tree.h (cons_up_default_function): Note change of prototype.
9177
d11ad92e 9178Thu Aug 25 23:05:30 1994 Gerald Baumgartner <gb@cs.purdue.edu>
f376e137
MS
9179
9180 * class.c (finish_struct): Undid change from Aug 21 testing
9181 CLASSTYPE_INTERFACE and CLASSTYPE_VTABLE_NEEDS_WRITING.
d11ad92e 9182 * parse.y (left_curly): Likewise, undid change from Aug 21.
f376e137
MS
9183 * decl.c (xref_tag): Undid change from Aug 21, set
9184 CLASSTYPE_INTERFACE correctly, and added comments.
9185
d11ad92e 9186Thu Aug 25 00:36:31 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
9187
9188 Rework approach to synthesized methods; don't go through the parser
9189 anymore.
9190 * class.c (finish_struct): Use new synthesis approach.
9191 * lex.c (cons_up_default_function): Now just creates declaration,
9192 not code.
9193 (largest_union_member): #if 0 out.
d11ad92e
MS
9194 (default_assign_ref_body): Likewise.
9195 (default_copy_constructor_body): Likewise.
f376e137
MS
9196 * method.c (build_default_constructor): New function to synthesize X().
9197 (build_copy_constructor): Synthesize X(X&).
9198 (build_assign_ref): Synthesize X::operator=(X&).
9199 (build_dtor): Synthesize ~X().
9200
9201 * error.c (cp_line_of): If we're dealing with an artificial
9202 TYPE_DECL, look at the type instead.
9203
d11ad92e 9204Wed Aug 24 11:11:50 1994 Jason Merrill <jason@deneb.cygnus.com>
f376e137
MS
9205
9206 * init.c (sort_member_init): Check warn_reorder.
9207 * decl2.c (lang_decode_option): Handle -W{no-,}reorder.
9208
9209 * cp-tree.h (CLASSTYPE_SOURCE_LINE): New macro.
9210 * error.c (cp_line_of): Use CLASSTYPE_SOURCE_LINE for aggregates.
9211 * class.c (finish_struct): Set CLASSTYPE_SOURCE_LINE.
9212
6060a796 9213Tue Aug 23 09:28:35 1994 Mike Stump <mrs@cygnus.com>
f376e137
MS
9214
9215 * error.c (dump_decl): Improve wording, so that error messages
9216 dont't read template<, class foo>...
9217
d11ad92e 9218Mon Aug 22 15:30:51 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
f376e137
MS
9219
9220 * parse.y (label_colon): Also match a TYPENAME as a label name,
9221 since they may have declared a class by that name but have also
9222 tried to have a local label under the same name.
9223
9224 * pt.c (coerce_template_parms): Call cp_error, not cp_error_at,
9225 for the message so they know at what point it was instantiated.
9226
d11ad92e 9227Sun Aug 21 23:07:35 1994 Gerald Baumgartner <gb@cs.purdue.edu>
f376e137
MS
9228
9229 * class.c (finish_struct): Move setting of CLASSTYPE_INTERFACE and
9230 CLASSTYPE_VTABLE_NEEDS_WRITING for signatures up to left_curly time.
9231 * decl.c (xref_tag): Move setting of CLASSTYPE_INTERFACE and
db5ae43f 9232 CLASSTYPE_VTABLE_NEEDS_WRITING for signatures down to left_curly time.
f376e137
MS
9233 * parse.y (left_curly): New final resting place for setting
9234 CLASSTYPE_INTERFACE and CLASSTYPE_VTABLE_NEEDS_WRITING for signatures.
9235
9236 * class.c (finish_struct): Don't test for function/field name
9237 conflicts in signatures, since all the fields are compiler-constructed.
9238
d11ad92e 9239Fri Aug 19 14:04:47 1994 Kung Hsu <kung@mexican.cygnus.com>
f376e137
MS
9240
9241 * method.c (build_overload_nested_name): in qualified name
9242 mangling, the template with value instantiation will have numeric
9243 at end and may mixed with the name length of next nested level.
9244 Add a '_' in between.
9245 * method.c (build_overload_name): ditto.
9246 * method.c (build_overload_identifier): ditto.
9247
6060a796 9248Thu Aug 18 16:24:43 1994 Mike Stump <mrs@cygnus.com>
f376e137
MS
9249
9250 * error.c (dump_decl): Handle NULL args.
9251
db5ae43f
MS
9252Thu Sep 29 16:15:36 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
9253
9254 * g++.c: Rework last change so it's done like collect.c (and
9255 gcc.c).
9256
9257Wed Sep 14 10:17:27 1994 Michael I Bushnell <mib@churchy.gnu.ai.mit.edu>
9258
9259 * g++.c: Include <sys/errno.h> in case `errno' is a macro
9260 as permitted by ANSI C.
9261
6060a796 9262Thu Aug 18 12:48:09 1994 Mike Stump <mrs@cygnus.com>
00595019
MS
9263
9264 * class.c (finish_struct): Move setting of CLASSTYPE_INTERFACE and
9265 CLASSTYPE_VTABLE_NEEDS_WRITING up to left_curly time.
9266 * decl.c (xref_tag): Move setting of CLASSTYPE_INTERFACE and
db5ae43f 9267 CLASSTYPE_VTABLE_NEEDS_WRITING down to left_curly time.
00595019
MS
9268 * parse.y (left_curly): New final resting place for setting
9269 CLASSTYPE_INTERFACE and CLASSTYPE_VTABLE_NEEDS_WRITING.
9270
d11ad92e 9271Thu Aug 11 11:32:42 1994 H.J. Lu <hjl@nynexst.com>
00595019
MS
9272
9273 * g++.c (main): Only decrement "added" and set "library" to
9274 NULL when "library" != NULL.
9275
d11ad92e 9276Sat Aug 13 00:14:52 1994 Jason Merrill <jason@deneb.cygnus.com>
00595019
MS
9277
9278 * decl.c (grokdeclarator): Don't set TREE_PUBLIC on a function decl
9279 just because its class has a known interface.
9280 (decls_match): Deal with new format of template parms.
9281
9282 * lex.c (cons_up_default_function): Don't play with TREE_PUBLIC and
9283 DECL_EXTERNAL here.
9284
d11ad92e 9285Fri Aug 12 01:55:15 1994 Jason Merrill <jason@deneb.cygnus.com>
00595019
MS
9286
9287 * decl.c (pushtag): SET_DECL_ARTIFICIAL on gratuitous typedefs.
d11ad92e 9288 (xref_defn_tag): Likewise.
00595019
MS
9289 (pushdecl): Only allow artificial typedefs to be shadowed.
9290
9291 * init.c (emit_base_init): Pass the right binfos to
9292 expand_aggr_init_1.
9293
9294 * class.c (delete_duplicate_fields_1): Make it work right.
9295 (finish_struct): Catch function/field name conflict.
9296
9297 * decl2.c (check_classfn): Pass the function to cp_error, not just
9298 the name.
9299
9300 * init.c (sort_member_init): Warn when order of member initializers
9301 does not match order of member declarations.
9302 (emit_base_init): Call expand_aggr_init_1 with LOOKUP_PROTECT.
9303
9304 * error.c (dump_expr): Handle lists of functions.
9305
9306 * decl.c (start_function): #pragma interface only affects functions
9307 that would otherwise be static.
9308 (finish_decl): Don't warn about an unused variable if it has both
9309 constructor and destructor, since the 'resource allocation is
9310 initialization' idiom is relatively common.
9311
9312 * typeck.c (comp_target_types): Don't handle TEMPLATE_TYPE_PARMs.
d11ad92e 9313 (comp_target_parms): Likewise.
00595019
MS
9314 (compparms): Never consider default parms.
9315 (common_base_type): Don't choose a virtual baseclass if there is a
9316 more derived class in common.
9317 (build_conditional_expr): If pedantic, pedwarn about conversion to
9318 common base in conditional expr.
9319
9320 * class.c (instantiate_type): Handle template instantiation better.
9321
9322 * typeck.c (convert_arguments): Don't try to get tricky and convert
9323 to int directly when PROMOTE_PROTOTYPES is set, as it breaks
9324 user-defined conversions.
9325
9326 * lex.c (check_for_missing_semicolon): Also give error at end of
9327 file.
9328
9329 * call.c (build_method_call): Don't promote arrays to pointers here.
9330
9331 * typeck.c (convert_arguments): Don't require the actual parameter
9332 to be of a complete type if the formal parameter is a reference.
9333
d11ad92e 9334Thu Aug 11 15:21:40 1994 Jason Merrill <jason@deneb.cygnus.com>
00595019
MS
9335
9336 * decl.c (grokdeclarator): Soften 'static' on member function error
9337 to pedwarn.
9338
9339 * init.c (build_new): Don't automatically save rval.
9340 (build_offset_ref): Do field lookup with proper basetype_path.
9341
d11ad92e 9342Thu Aug 11 12:46:54 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
00595019
MS
9343
9344 * errfn.c (cp_silent): Declare to mark when we should avoid
9345 emitting warnings and errors.
9346 (cp_error): Check it.
9347 (cp_warning): Likewise.
9348 (cp_pedwarn): Likewise.
9349 (cp_compiler_error): Likewise.
9350 (cp_error_at): Likewise.
9351 (cp_warning_at): Likewise.
9352 (cp_pedwarn_at): Likewise.
9353 * call.c (compute_conversion_costs): Set CP_SILENT when we start
9354 out, and make sure we turn it off before we leave.
9355
d11ad92e 9356Thu Aug 11 00:02:54 1994 Jason Merrill <jason@deneb.cygnus.com>
00595019
MS
9357
9358 * decl2.c (grok_array_decl): Try computing *(A+B) if neither
9359 argument is obviously an array.
9360
d11ad92e 9361Wed Aug 10 15:32:04 1994 Jason Merrill <jason@deneb.cygnus.com>
00595019
MS
9362
9363 * typeck.c (c_expand_start_case): Do cleanups here.
9364
9365 * parse.y (xcond): Do bool conversion here, too.
9366 (simple_stmt, SWITCH case): Don't do cleanups here.
9367
9368 * decl.c (duplicate_decls): Don't treat builtins that have been
9369 explicitly declared specially.
9370
d11ad92e 9371Tue Aug 9 01:16:09 1994 Jason Merrill <jason@deneb.cygnus.com>
00595019
MS
9372
9373 * tree.c (make_deep_copy): Support copying pointer, reference,
9374 function, array, offset and method types.
9375
9376 * decl.c (init_decl_processing): Mark exit and abort as
9377 BUILT_IN_NONANSI so that duplicate_decls is kinder about
9378 redeclaration.
9379 (duplicate_decls): Don't give two errors for redeclaring a C
9380 function with the same parms but a different return type.
9381
9382 * parse.y (paren_cond_or_null): Do cleanup and bool conversion here.
9383 (condition): Instead of here.
9384 (simple_stmt, SWITCH case): Also do cleanup here.
9385
9386 * decl2.c (finish_anon_union): Only break out FIELD_DECLs.
9387
9388 * call.c (build_method_call): Don't throw away the side effects of
9389 the object in a call to a non-existent constructor.
d11ad92e 9390 * parse.y (primary): Likewise.
00595019
MS
9391
9392 * method.c (build_decl_overload): Oop.
9393
9394 * decl2.c (lang_decode_option): Deal with flag_no_nonansi_builtin,
9395 warn about uselessness of specifying -fansi-overloading.
9396
9397 * method.c (build_decl_overload): Treat any non-member new with one
9398 parameter as __builtin_new.
9399
9400 * decl.c (init_decl_processing): Setup built-in meanings of exit,
9401 _exit and abort.
9402
d11ad92e 9403Mon Aug 8 15:03:30 1994 Jason Merrill <jason@deneb.cygnus.com>
00595019
MS
9404
9405 * error.c (dump_readonly_or_volatile): Put a space between const and
9406 volatile if both apply.
9407
9408 * init.c (perform_member_init): Clean up after this initialization.
9409 (emit_base_init): Clean up after each base init, not after all have
9410 been done.
9411 (expand_aggr_vbase_init_1): Clean up after this init.
9412
d11ad92e 9413Sun Aug 7 14:55:05 1994 Jason Merrill <jason@deneb.cygnus.com>
00595019
MS
9414
9415 * call.c (build_method_call): Deal with destroying references.
9416
9417 * parse.y (condition): Do bool_truthvalue_conversion here.
9418 (paren_expr_or_null): And here.
9419 (simple_if): Not here.
9420 (simple_stmt): Or here.
9421
d11ad92e 9422Sat Aug 6 22:29:45 1994 Jason Merrill <jason@deneb.cygnus.com>
00595019
MS
9423
9424 * parse.y (paren_expr_or_null): Wrap the expression in a
9425 CLEANUP_POINT_EXPR.
d11ad92e 9426 (condition): Likewise.
00595019 9427
d11ad92e 9428Sat Aug 6 19:46:37 1994 Rohan Lenard <rjl@easams.com.au>
00595019
MS
9429
9430 * call.c (build_scoped_method_call): Fix error message when
9431 destructor call refers to a nonexistent type.
9432
d11ad92e 9433Sat Apr 16 22:43:30 1993 Gerald Baumgartner <gb@cs.purdue.edu>
00595019
MS
9434
9435 * lex.h (rid): Deleted RID_RAISES, it's never used.
9436 Moved RID_PUBLIC, RID_PRIVATE, RID_PROTECTED, RID_EXCEPTION,
9437 RID_TEMPLATE and RID_SIGNATURE to the end of the enumeration,
9438 they don't need to be touched in `grokdeclarator.'
9439 (RID_LAST_MODIFIER): Defined macro to be RID_MUTABLE.
9440
9441 * decl.c (grokdeclarator): Use RID_LAST_MODIFIER instead of
9442 RID_MAX as loop limit for finding declaration specifiers.
9443
d11ad92e 9444Sat Apr 3 21:59:07 1993 Gerald Baumgartner <gb@cs.purdue.edu>
00595019
MS
9445
9446 * lex.c (debug_yytranslate): Moved to parse.y since it needs to
9447 access `yytname,' which is static in parse.c.
9448
d11ad92e 9449Fri Apr 2 23:36:57 1993 Gerald Baumgarnter <gb@cs.purdue.edu>
00595019
MS
9450
9451 * cp-tree.h (GNU_xref_ref): Fixed typo in extern declaration, it
9452 was `GNU_xref_def' instead of `GNU_xref_ref.'
9453
d11ad92e 9454Fri Aug 5 14:20:16 1994 Jason Merrill <jason@deneb.cygnus.com>
00595019
MS
9455
9456 * pt.c (do_function_instantiation): Don't set TREE_PUBLIC and
9457 DECL_EXTERNAL on 'extern' instantiations; wait until EOF to do that.
d11ad92e 9458 (do_type_instantiation): Likewise.
00595019
MS
9459
9460 * decl2.c (import_export_inline): Decides at EOF what an inline's
9461 linkage should be.
9462 (finish_file): Call it.
9463
9464 * decl.c (start_function): Don't rely on the settings of TREE_PUBLIC
9465 and DECL_EXTERNAL from do_*_instantiation. Only set
9466 DECL_DEFER_OUTPUT on inlines whose linkage might actually change.
9467 (finish_function): Use DECL_DEFER_OUTPUT to decide which inlines to
9468 mark for later consideration, rather than DECL_FUNCTION_MEMBER_P.
9469
6060a796 9470Fri Aug 5 01:12:20 1994 Mike Stump <mrs@cygnus.com>
a292b002
MS
9471
9472 * class.c (get_class_offset_1, get_class_offset): New routine to
9473 find the offset of the class where a virtual function is defined,
9474 from the complete type.
9475 * class.c (modify_one_vtable, fixup_vtable_deltas): Use
9476 get_class_offset instead of virtual_offset as get_class_offset will
9477 always provide the right answer.
9478 * tree.c (virtual_offset): Remove. It only ever worked some of the
9479 time.
9480
d11ad92e 9481Tue Aug 2 12:44:21 1994 Jason Merrill <jason@deneb.cygnus.com>
a292b002
MS
9482
9483 * call.c (build_method_call): Put back unary_complex_lvalue call
9484 that I thought was redundant.
9485
9486 * typeck.c (c_expand_return): Fix a case I missed before.
9487
d11ad92e 9488Sun Jul 31 17:54:02 1994 Jason Merrill <jason@deneb.cygnus.com>
a292b002
MS
9489
9490 * pt.c (unify): Strip cv-quals from template type arguments (when
9491 'const T*' is matched to 'const char*', that does not mean that T is
9492 'const char').
9493
d11ad92e 9494Fri Jul 29 01:03:06 1994 Jason Merrill <jason@deneb.cygnus.com>
a292b002
MS
9495
9496 * pt.c (do_type_instantiation): Instantiate nested TAGS, not
9497 typedefs. Third time's the charm?
9498
9499 * parse.y (template_parm): Support default template parms.
d11ad92e
MS
9500 * pt.c (process_template_parm): Likewise.
9501 (end_template_parm_list): Likewise.
9502 (coerce_template_parms): Likewise.
9503 (mangle_class_name_for_template): Likewise.
9504 (push_template_decls): Likewise.
9505 (unify): Likewise.
9506 * method.c (build_overload_identifier): Likewise.
9507 * error.c (dump_decl): Likewise.
a292b002 9508
d11ad92e 9509Wed Jul 27 17:47:00 1994 Jason Merrill <jason@deneb.cygnus.com>
a292b002
MS
9510
9511 * pt.c (do_type_instantiation): Only instantiate nested *classes*.
9512
d11ad92e 9513Tue Jul 26 13:22:40 1994 Jason Merrill <jason@deneb.cygnus.com>
a292b002
MS
9514
9515 * search.c (note_debug_info_needed): Also emit debugging information
9516 for the types of fields.
9517
d11ad92e 9518Mon Jul 25 00:34:44 1994 Jason Merrill <jason@deneb.cygnus.com>
a292b002
MS
9519
9520 * pt.c (lookup_template_class): Pass 'template' to
9521 coerce_template_parms instead of 'in_decl', since it's a more
9522 meaningful context.
9523
9524 * typeck.c (c_expand_return): Make sure any cleanups for the return
9525 expression get run.
9526 (build_c_cast): Use CONVERT_EXPR for conversion to void.
9527
9528 * pt.c (do_type_instantiation): Also instantiate nested types.
9529
9530 * typeck.c (convert_for_assignment): Don't die when comparing
9531 pointers with different levels of indirection.
9532
9533 * decl.c (grokdeclarator): The sub-call to grokdeclarator for
9534 class-local typedefs sets DECL_ARGUMENTS, so we need to clear it
9535 out.
9536
9537 * decl2.c (finish_anon_union): Don't die if the union has no
9538 members.
9539
9540 * decl.c (grokdeclarator): Undo changes to declspecs when we're done
9541 so that 'typedef int foo, bar;' will work.
9542
9543 * decl2.c (finish_file): Don't call expand_aggr_init for
9544 non-aggregates.
9545
d11ad92e 9546Mon Jul 25 00:03:10 1994 Teemu Torma <tot@trema.fi>
a292b002
MS
9547
9548 * decl.c (finish_function): We can't inline constructors and
9549 destructors under some conditions with -fpic, but don't unset
9550 DECL_INLINE.
9551
d11ad92e 9552Mon Jul 25 00:03:10 1994 Jason Merrill <jason@deneb.cygnus.com>
a292b002
MS
9553
9554 * typeck.c (build_object_ref): Make sure 'datum' is a valid object.
9555
d11ad92e 9556Sun Jul 24 14:19:31 1994 Jason Merrill <jason@deneb.cygnus.com>
a292b002
MS
9557
9558 * class.c (finish_struct): Don't set DECL_FIELD_BITPOS on
9559 non-fields.
9560 (finish_struct_methods): Use copy_assignment_arg_p.
9561
9562 * cvt.c (cp_convert): If expr is an OFFSET_REF, resolve it instead
9563 of giving an error.
9564
9565 * typeck.c (build_binary_op_nodefault): Don't set result_type if we
9566 don't know how to compare the operands.
9567
9568 * decl.c (grokdeclarator): Avoid seg fault when someone uses '__op'
9569 as a declarator-id in their program. Like the Linux headers do.
9570 Arrgh.
9571
9572 * tree.c (lvalue_p): Treat calls to functions returning objects by
9573 value as lvalues again.
9574
9575 * typeck.c (build_component_addr): Use convert_force to convert the
9576 pointer in case the component type is also a private base class.
9577
9578 * search.c (get_matching_virtual): Fix bogus warning of overloaded
9579 virtual.
9580
9581 * pt.c (overload_template_name): Set DECL_ARTIFICIAL on the created
9582 TYPE_DECL to fix bogus shadowing warnings.
9583
d11ad92e 9584Fri Jul 22 01:15:32 1994 Jason Merrill <jason@deneb.cygnus.com>
a292b002
MS
9585
9586 * init.c (expand_aggr_init_1): const and volatile mismatches do not
9587 prevent a TARGET_EXPR from initializing an object directly.
9588
d11ad92e 9589Tue Jul 19 17:55:37 1994 Jason Merrill <jason@deneb.cygnus.com>
a292b002
MS
9590
9591 * cvt.c (build_up_reference): Allow building up references to
9592 `this', don't warn about making references to artificial variables
9593 (like `this').
9594
9595 * tree.c (lvalue_p): `this' is not an lvalue.
9596
9597 * call.c (build_method_call): Accept using a typedef name (or
9598 template type parameter) for explicit destructor calls.
9599
72b7eeff
MS
9600Thu Jul 14 09:42:23 1994 Mike Stump <mrs@cygnus.com>
9601
9602 * Version 2.6.0 released.
9603
d11ad92e 9604Wed Jul 13 03:57:54 1994 Jason Merrill <jason@deneb.cygnus.com>
cf17cae3 9605
a292b002
MS
9606 * method.c (hack_identifier): Put back old code so lists of
9607 non-functions will be handled properly.
a5ef9010 9608
a292b002
MS
9609 * cp-tree.h (TYPE_NEEDS_CONSTRUCTING): #if 0 out; this macro is now
9610 defined in the language-independent tree.h.
cf17cae3 9611
a292b002
MS
9612 * tree.c (count_functions): Avoid bogus warning when compiling this
9613 function.
cf17cae3 9614
d11ad92e 9615Mon Jul 11 18:37:20 1994 Jason Merrill <jason@deneb.cygnus.com>
cf17cae3 9616
a292b002
MS
9617 * decl.c (grok_reference_init): Always save the initializer of a
9618 reference.
cf17cae3 9619
6060a796 9620Fri Jul 8 17:41:46 1994 Mike Stump <mrs@cygnus.com>
5b605f68
MS
9621
9622 * decl.c (cplus_expand_expr_stmt): Wrap statement expressions inside
9623 CLEANUP_POINT_EXPRs so that the stack slots can be reused.
63c68bb7 9624 (disabled for now)
5b605f68 9625
d11ad92e 9626Fri Jul 8 12:59:38 1994 Jason Merrill <jason@deneb.cygnus.com>
5b605f68
MS
9627
9628 * method.c (hack_identifier): Fix for new overloading.
9629
9630 * typeck.c (build_binary_op_nodefault): Don't mess with division by
db5ae43f 9631 zero.
5b605f68 9632
d11ad92e 9633Fri Jul 8 13:20:28 1994 Gerald Baumgartner <gb@cs.purdue.edu>
5b605f68
MS
9634
9635 * decl2.c (finish_file): Only call walk_sigtables, if
9636 flag_handle_signatures is turned on, don't waste time otherwise.
9637
d11ad92e 9638Fri Jul 8 02:27:41 1994 Jason Merrill <jason@deneb.cygnus.com>
5b605f68
MS
9639
9640 * decl.c (push_overloaded_decl): Don't create overloads of one when
9641 shadowing a class type.
a292b002 9642 * typeck.c (build_x_function_call): Complain about overloads of one.
5b605f68
MS
9643
9644 * decl.c (grokdeclarator): Don't try to treat a char* as a tree.
9645 (grokdeclarator): Fix setting of TREE_STATIC.
9646 (start_decl): Clear DECL_IN_AGGR_P after calling duplicate_decls.
9647
d11ad92e 9648Thu Jul 7 22:20:46 1994 Gerald Baumgartner <gb@andros.cygnus.com>
311862c8
GB
9649
9650 * cp-tree.h (walk_sigtables): Created extern declaration.
9651 * decl2.c (walk_sigtables): Created function, patterned after
9652 walk_vtables, even though we only need it to write out sigtables.
9653 (finish_sigtable_vardecl): Created function.
9654 (finish_vtable_vardecl): Changed 0 to NULL_PTR.
9655 (finish_file): Call walk_sigtables.
9656
9657 * sig.c (build_signature_table_constructor): Mark class member
9658 function pointed to from signature table entry as addressable.
9659
d11ad92e 9660Thu Jul 7 13:39:37 1994 Jason Merrill <jason@deneb.cygnus.com>
5b605f68
MS
9661
9662 * decl.c (start_decl): Check new decl of static member variable
9663 against the declaration in the class here.
9664 (grokvardecl): Instead of here.
9665
9666 * class.c (prepare_fresh_vtable): Call import_export_vtable if not
9667 -fvtable-thunks.
d11ad92e 9668 (build_vtable): Likewise.
5b605f68
MS
9669
9670 * decl2.c (import_export_vtable): Move logic for deciding the
9671 interface of a template class from here.
9672 (import_export_template): To here.
9673 (finish_vtable_vardecl): Call import_export_template before
9674 import_export_vtable.
9675
6060a796 9676Wed Jul 6 20:25:48 1994 Mike Stump <mrs@cygnus.com>
a3b49ccd
MS
9677
9678 * except.c (init_exception_processing): Setup interim_eh_hook to
9679 call lang_interim_eh.
9680 * except.c (do_unwind): Propagate throw object value across
9681 stack unwinding.
9682 * except.c (saved_throw_value): Used to hold the value of the object
9683 being thrown. It is always a reference to the real value.
9684 * except.c (expand_start_catch_block): Add handling for the
9685 value of the exception object.
9686 * except.c (expand_start_catch_block): Add handler for the handler,
9687 so that throws inside the handler go to the outer block.
d11ad92e 9688 * except.c (expand_end_catch_block): Likewise.
a3b49ccd
MS
9689 * parse.y (handler_args): Use parm instead, as the other doesn't yet
9690 handle references correctly.
9691
d11ad92e 9692Wed Jul 6 17:55:32 1994 Per Bothner <bothner@kalessin.cygnus.com>
a3b49ccd
MS
9693
9694 * decl2.c (mark_vtable_entries): If -ftable-thunks, set the
9695 vtable entry properly to abort.
9696
d11ad92e 9697Tue Jul 5 14:07:54 1994 Jason Merrill <jason@deneb.cygnus.com>
5b605f68
MS
9698
9699 * typeck.c (build_binary_op_nodefault): Downgrade division by zero
9700 errors to warnings.
9701
9702 * call.c (build_overload_call_real): Handle fnname being a list of
9703 functions.
9704 * typeck.c (build_x_function_call): Pass list of functions to
9705 build_overload_call, not just the name.
9706 * tree.c (count_functions): Complain when called for invalid
9707 argument.
9708
9709 * decl.c (grokdeclarator): Fix settings of TREE_STATIC, TREE_PUBLIC
9710 and DECL_EXTERNAL on static members and initialized const members.
9711 * decl2.c (grokfield): Reflect this change.
9712
d11ad92e 9713Fri Jul 1 09:35:51 1994 Jason Merrill <jason@deneb.cygnus.com>
9a0e77ba
JM
9714
9715 * parse.y (init): ANSI C++ does not forbid { }.
9716
d11ad92e 9717Thu Jun 30 00:35:22 1994 Jason Merrill <jason@deneb.cygnus.com>
9a0e77ba
JM
9718
9719 * decl2.c (lang_decode_option): Set warn_nonvdtor along with -Wall.
9720 warn_nonvdtor defaults to off.
9721
9722 * class.c (instantiate_type): Use comptypes rather than relying on
9723 types to satisfy ==.
9724
9725 * decl.c (start_function): Set DECL_DEFER_OUTPUT on all inlines that
9726 might be static.
9727
9728 * tree.c (build_cplus_new): Never build WITH_CLEANUP_EXPRs.
9729
9730 * decl.c (grok_reference_init): Deal with ADDR_EXPRs of TARGET_EXPRs.
9731
9732 * cvt.c (cp_convert): Pass 0 to with_cleanup_p arg of
9733 build_cplus_new.
9734
d11ad92e 9735Wed Jun 29 22:31:09 1994 Jason Merrill <jason@deneb.cygnus.com>
9a0e77ba
JM
9736
9737 * decl2.c (finish_file): Maybe consider static inlines multiple
9738 times, in case they reference each other.
9739
d11ad92e 9740Tue Jun 28 11:58:38 1994 Gerald Baumgartner <gb@cs.purdue.edu>
63718c49
GB
9741
9742 * class.c (finish_struct): Don't `cons_up_default_function's
9743 for signatures.
9744 (finish_struct): Handle an empty method_vec correctly.
9745
9746 * decl.c (grokdeclarator): Don't warn about a signature being
9747 empty in a signature pointer declaration if we only saw a
9748 forward declaration of the signature. Changed `warning's into
9749 `cp_warning's.
9750
9751 * sig.c (build_sigtable): Don't die if a null signature table
9752 constructor is returned.
9753 (build_signature_pointer_constructor): If the signature table
9754 constructor is null, the _sptr field is set to a null pointer
9755 and cast to the appropriate type. Make copies of all null
9756 pointers so that the type null_pointer_node doesn't get changed.
9757 (build_signature_table_constructor): Added comments.
9758
9759 * sig.c (build_signature_pointer_constructor): Complain if we
9760 try to assign to/initialize a signature pointer/reference of
9761 an undefined signature.
9762
d11ad92e 9763Mon Jun 27 14:05:16 1994 Gerald Baumgartner <gb@cs.purdue.edu>
63718c49
GB
9764
9765 * typeck2.c (store_init_value): Don't be pedantic about
9766 non-constant initializers of signature tables/pointers/references.
9767
d11ad92e 9768Fri Jun 24 16:49:41 1994 Gerald Baumgartner <gb@cs.purdue.edu>
63718c49
GB
9769
9770 * decl.c (grokdeclarator): If we are grokking an opaque typedef
9771 in a signature, don't complain about it begin static.
9772
6060a796 9773Wed Jun 29 16:44:45 1994 Mike Stump <mrs@cygnus.com>
21474714
MS
9774
9775 Fixes a problem of the this pointer being wrong in virtual calls to
9776 methods that are not overridden in more derived classes.
9777
9778 * class.c (fixup_vtable_delta): New routine. It will fixup the
9779 delta entries in vtables, wheever they need updating.
9780 * class.c (finish_struct): Call the new routine for all virtual
9781 bases, as they can have different offsets, than those used in base
9782 classes that we derive our vtable from.
9783
d11ad92e 9784Tue Jun 28 23:49:28 1994 Jason Merrill <jason@deneb.cygnus.com>
21474714
MS
9785
9786 * typeck.c (build_binary_op): Use the types before default
9787 conversions in the error message.
9788
9789 * *.c: Use c_build_type_variant instead of build_type_variant where
9790 the type might be an array.
9791
9792 * call.c (build_method_call): Call build_type_variant and
9793 build_reference_type in the right order.
d11ad92e 9794 * decl.c (record_builtin_type): Likewise.
21474714 9795
d11ad92e 9796Wed Jun 29 16:58:53 1994 Jason Merrill <jason@deneb.cygnus.com>
21474714
MS
9797
9798 * call.c (build_method_call): Call build_type_variant and
9799 build_reference_type in the right order.
d11ad92e 9800 * decl.c (record_builtin_type): Likewise.
21474714 9801
d11ad92e 9802Tue Jun 28 23:49:28 1994 Jason Merrill <jason@deneb.cygnus.com>
21474714
MS
9803
9804 * typeck.c (build_binary_op): Use the types before default
9805 conversions in the error message.
9806
9807 * *.c: Use c_build_type_variant instead of build_type_variant where
9808 the type might be an array.
9809
d11ad92e 9810Sat Jun 25 11:50:54 1994 Jason Merrill <jason@deneb.cygnus.com>
21474714
MS
9811
9812 * cvt.c (convert_to_reference): Try UDC's before doing the
9813 reinterpret_cast thang, though.
9814
d11ad92e 9815Fri Jun 24 01:24:01 1994 Jason Merrill <jason@deneb.cygnus.com>
21474714
MS
9816
9817 * typeck.c (c_expand_return): Don't USE the return value location
9818 after we've expanded the jump.
9819
9820 * decl2.c (finish_file): Make sure DECL_SAVED_INSNS is not 0 before
9821 trying to write out an inline.
9822
9823 * cvt.c (build_up_reference): Also do address adjustment when the
9824 target type uses MI.
9825 (convert_to_reference): Try UDCs only after built-in conversions.
9826 (build_type_conversion_1): Don't play games with the argument to the
9827 method.
9828 (build_type_conversion): #if 0 out code for binding to reference.
9829
d11ad92e 9830Thu Jun 23 00:22:28 1994 Jason Merrill <jason@deneb.cygnus.com>
a3203465 9831
21474714
MS
9832 * decl2.c (finish_file): Use TREE_SYMBOL_REFERENCED to decide
9833 whether to emit inlines.
9834
a3203465
MS
9835 * decl.c (grokdeclarator): Set explicit_int for decls that just
9836 specify, say, 'long'.
9837
9838 * init.c (do_friend): Do overload C functions (or call pushdecl,
63718c49 9839 anyaway).
a3203465 9840
d11ad92e 9841Wed Jun 22 13:40:49 1994 Jason Merrill <jason@deneb.cygnus.com>
a3203465
MS
9842
9843 * cvt.c (build_up_reference): Don't call readonly_error.
9844 (convert_to_reference): Propagate const and volatile from expr to
9845 its type.
9846
9847 * tree.c (lvalue_p): Random CALL_EXPRs are not lvalues.
9848
9849 * cvt.c (build_up_reference): Break out WITH_CLEANUP_EXPR when
9850 creating a temporary.
9851 (convert_to_reference): Lose excessive and incorrect trickiness.
9852 (cp_convert): Call build_cplus_new with with_cleanup_p set.
9853
d11ad92e 9854 * typeck2.c (build_functional_cast): Likewise.
a3203465 9855
d11ad92e 9856Tue Jun 21 17:38:38 1994 Jason Merrill <jason@deneb.cygnus.com>
a3203465
MS
9857
9858 * decl.c (grokdeclarator): signed, unsigned, long and short all
9859 imply 'int'.
9860
9861 * decl.c (grokdeclarator): Allow "this is a type" syntax.
9862 (grok_reference_init): Simplify and fix.
9863
d11ad92e 9864Sun Jun 19 17:08:48 1994 Jason Merrill <jason@deneb.cygnus.com>
a3203465
MS
9865
9866 * decl.c (grokdeclarator): pedwarn about a typedef that specifies no
9867 type.
9868
d11ad92e 9869Sat Jun 18 04:16:50 1994 Jason Merrill <jason@deneb.cygnus.com>
a3203465
MS
9870
9871 * decl.c (start_function): Move TREE_PUBLIC and DECL_EXTERNAL
9872 tinkering to after call to pushdecl.
9873
d11ad92e 9874Fri Jun 17 14:48:28 1994 Jason Merrill <jason@deneb.cygnus.com>
a3203465
MS
9875
9876 * call.c (build_method_call): Handle destructors for non-aggregate
9877 types properly.
9878
d11ad92e 9879Thu Jun 16 16:48:05 1994 Jason Merrill <jason@deneb.cygnus.com>
a3203465
MS
9880
9881 * call.c (build_method_call): Make sure that the name given for the
9882 destructor matches the constructor_name of the instance.
9883
9884 * pt.c (do_function_instantiation): A non-extern instantiation
9885 overrides a later extern one.
d11ad92e 9886 (do_type_instantiation): Likewise.
a3203465 9887
d11ad92e 9888Wed Jun 15 19:34:54 1994 Jason Merrill <jason@deneb.cygnus.com>
a3203465
MS
9889
9890 * init.c (expand_aggr_init): Use TYPE_MAIN_VARIANT to get the
9891 unqualified array type.
9892
9893 * cp-tree.h (EMPTY_CONSTRUCTOR_P): Tests whether NODE is a
9894 CONSTRUCTOR with no elements.
9895
9896 * decl.c (various): Lose empty_init_node.
9897 (finish_decl): Use EMPTY_CONSTRUCTOR_P, do the empty CONSTRUCTOR
9898 thing depending on the value of DECL_COMMON instead of
9899 flag_conserve_space, do the empty CONSTRUCTOR thing for types that
9900 don't have constructors, don't treat a real empty CONSTRUCTOR
9901 specially.
9902
9903 * typeck2.c (process_init_constructor): Don't treat empty_init_node
9904 specially.
9905
6060a796 9906Wed Jun 15 19:05:25 1994 Mike Stump <mrs@cygnus.com>
a3203465
MS
9907
9908 * class.c (override_one_vtable): Don't forget to merge in an old
9909 overrider when we wanted to reuse a vtable, but couldn't.
9910
d11ad92e 9911Wed Jun 15 15:03:16 1994 Jason Merrill <jason@deneb.cygnus.com>
a3203465
MS
9912
9913 * decl.c (start_decl): Put statics in common again.
9914
9915 * decl.c (grokdeclarator): Return NULL_TREE for an error rather than
9916 setting the type to error_mark_node.
9917
9918 * typeck.c (build_modify_expr): Build up a COMPOUND_EXPR for enum
9919 bitfield assignments.
9920
d11ad92e 9921Tue Jun 14 12:23:38 1994 Jason Merrill <jason@deneb.cygnus.com>
f0e01782
MS
9922
9923 * decl.c (grok_op_properties): Const objects can be passed by value.
9924
d11ad92e 9925Mon Jun 13 03:10:59 1994 Jason Merrill <jason@deneb.cygnus.com>
f0e01782
MS
9926
9927 * decl2.c (import_export_vtable): Force implicit instantiations to
9928 be interface_only when -fno-implicit-templates.
9929
9930 * decl.c (duplicate_decls): Redeclaring a class template name is an
9931 error.
9932
9933 * pt.c (end_template_decl): Call GNU_xref_decl for class templates.
9934 * xref.c (GNU_xref_decl): Support templates.
9935
d11ad92e 9936Sat Jun 11 17:09:05 1994 Jason Merrill <jason@deneb.cygnus.com>
f0e01782
MS
9937
9938 * decl.c (grok_op_properties): Split out checking for whether this
9939 function should suppress the default assignment operator.
d11ad92e 9940 * decl2.c (grok_function_init): Likewise.
f0e01782
MS
9941 (copy_assignment_arg_p): New function do do just that.
9942 Now considers virtual assignment operators that take a base as an
9943 argument to count as copy assignment operators.
9944
9945 * search.c (dfs_debug_mark): Lose checks for DWARF_DEBUG and
9946 TREE_ASM_WRITTEN, as they are redundant.
9947
9948 * pt.c (end_template_decl): Don't try to set DECL_CLASS_CONTEXT on a
9949 decl that has no LANG_SPECIFIC part.
9950 (do_type_instantiation): Force the debugging information for this
9951 type to be emitted.
9952
9953 * decl.c (start_decl): Clear up uses of various types of templates
9954 (say sorry for static data members, rather than "invalid template").
9955 (expand_static_init): Fix initialization of static data members of
9956 template classes.
9957
d11ad92e 9958Fri Jun 10 00:41:19 1994 Jason Merrill <jason@deneb.cygnus.com>
f0e01782
MS
9959
9960 * decl.c (grokdeclarator): Set DECL_CONTEXT on static data members.
9961
9962 * g++.c (main): Use -xc++-cpp-output for .i files.
9963
9964 * pt.c (tsubst): Give meaningful error about declaring template for
9965 a copy constructor which was not declared in the class template.
9966 (do_type_instantiation): Explicit instantiation before the class
9967 template is an error.
9968 (instantiate_template): Don't die if tsubst returns error_mark_node.
9969
d11ad92e 9970Thu Jun 9 19:04:59 1994 Jason Merrill <jason@deneb.cygnus.com>
f0e01782
MS
9971
9972 Don't synthesize the copy assignment operator if the one in a base
9973 class is pure virtual.
9974 * cp-tree.h (TYPE_HAS_ABSTRACT_ASSIGN_REF): New macro to indicate
9975 whether the type has a pure virtual copy assignment operator.
9976 * class.c (finish_base_struct): Don't generate the copy assignment
9977 operator if a base class has a pure virtual one.
9978 * decl.c (grok_op_properties): Add disabled code to set
9979 TYPE_HAS_ABSTRACT_ASSIGN_REF with comment pointing to where it is
9980 actually set.
9981 * decl2.c (grok_function_init): Set TYPE_HAS_ABSTRACT_ASSIGN_REF.
9982
9983 * decl2.c (import_export_vtable): Always treat template
9984 instantiations as if write_virtuals >= 2, and treat implicit
9985 instantiations as external if -fno-implicit-templates.
9986 (finish_file): Output all pending inlines if
9987 flag_keep_inline_functions.
9988
6060a796 9989Wed Jun 8 20:48:02 1994 Mike Stump <mrs@cygnus.com>
f0e01782
MS
9990
9991 * tree.c (layout_vbasetypes): Align virtual base classes inside
9992 complete objects, so that we don't core dump on machines such as
9993 SPARCs when we access members that require larger than normal
9994 alignments, such as a double. Also, we bump up the total alignment
9995 on the complete type, as necessary.
9996
d11ad92e 9997Wed Jun 8 16:18:14 1994 Jason Merrill <jason@deneb.cygnus.com>
f0e01782
MS
9998
9999 * gxxint.texi (Free Store): New section with code for examining
10000 cookie.
10001 (Limitations of g++): Remove operator delete entry, since it is no
10002 longer accurate. Fix access control entry.
10003
10004 * typeck.c (build_unary_op): Pedwarn about taking the address of or
10005 incrementing a cast to non-reference type.
10006 (build_modify_expr): Use convert instead of convert_force again.
10007
10008 * search.c (get_base_distance): Use IS_AGGR_TYPE_CODE to check for
10009 class type, not == RECORD_TYPE.
10010
10011 * decl.c (grokdeclarator): Cope with grokfndecl returning NULL_TREE.
10012
10013 * typeck2.c (report_case_error): #if 0 out.
10014 * lex.c (real_yylex): Lose RANGE.
d11ad92e 10015 * parse.y: Likewise.
f0e01782 10016
d11ad92e 10017Tue Jun 7 18:17:35 1994 Jason Merrill <jason@deneb.cygnus.com>
f0e01782
MS
10018
10019 * parse.y (simple_stmt, case ranges): Use ELLIPSIS instead of RANGE.
10020
d11ad92e 10021Mon Jun 6 19:39:57 1994 Jason Merrill <jason@deneb.cygnus.com>
f0e01782
MS
10022
10023 * typeck.c (build_c_cast): Don't shortcut conversions to the same
10024 type. Don't replace consts with their values here, since that's now
10025 done in cp_convert.
10026
10027 * cvt.c (cp_convert): When converting to bool, take
10028 integer_zero_node to false_node and all other INTEGER_CSTs to
10029 true_node.
10030 (build_type_conversion): Don't complain about multiple conversions
10031 to float if we're not really converting.
10032
d11ad92e 10033Fri Jun 3 02:10:56 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927 10034
f0e01782
MS
10035 Implement 'extern template class A<int>;' syntax for suppressing
10036 specific implicit instantiations.
10037 * cp-tree.h: Update prototypes for do_*_instantiation.
10038 * pt.c (do_pending_expansions): Don't compile 'extern' explicit
10039 instantiations.
10040 (do_function_instantiation): Set DECL_EXTERNAL on 'extern' explicit
10041 instantiations.
d11ad92e 10042 (do_type_instantiation): Likewise.
f0e01782
MS
10043 * parse.y (explicit_instantiation): Support 'extern template class
10044 A<int>;' syntax.
10045 * decl.c (start_function): Don't modify the settings of TREE_PUBLIC
10046 and DECL_EXTERNAL on explicit instantiations.
10047
a0a33927
MS
10048 * cvt.c (cp_convert): Replace constants with their values before
10049 converting.
f0e01782 10050 (cp_convert): Consistently use 'e' instead of 'expr'.
a0a33927 10051
d11ad92e 10052Thu Jun 2 03:53:30 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927
MS
10053
10054 * typeck2.c (build_x_arrow): Resolve OFFSET_REFs first.
10055
d11ad92e 10056Wed Jun 1 18:57:35 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927
MS
10057
10058 * typeck2.c (digest_init): Handle initializing a pmf with an
10059 overloaded method.
10060 * typeck.c (build_ptrmemfunc): Handle overloaded methods.
10061
10062 * decl.c (pushtag): Use build_decl to make TYPE_DECLs.
d11ad92e
MS
10063 (xref_defn_tag): Likewise.
10064 * pt.c (process_template_parm): Likewise.
10065 (lookup_template_class): Likewise.
10066 (push_template_decls): Likewise.
10067 (instantiate_class_template): Likewise.
10068 (create_nested_upt): Likewise.
a0a33927
MS
10069 * class.c (finish_struct): Don't try to set DECL_CLASS_CONTEXT on
10070 TYPE_DECLs.
10071
10072 * typeck.c (convert_arguments): Make sure type is not NULL before
10073 checking its TREE_CODE.
10074
6060a796 10075Wed Jun 1 17:40:39 1994 Mike Stump <mrs@cygnus.com>
a0a33927
MS
10076
10077 * class.c (get_derived_offset): New routine.
10078 * class.c (finish_base_struct): Make sure we set BINFO_VTABLE and
10079 BINFO_VIRTUALS when we choose a new base class to inherit from.
10080 * class.c (modify_one_vtable): Use get_derived_offset to get the
10081 offset to the most base class subobject that we derived this binfo
10082 from.
10083 * class.c (finish_struct): Move code to calculate the
10084 DECL_FIELD_BITPOS of the vfield up, as we need might need it for
10085 new calls to get_derived_offset in modify_one_vtable.
10086
d11ad92e 10087Wed Jun 1 16:50:59 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927
MS
10088
10089 * init.c (build_member_call): Use build_pointer_type instead of
10090 TYPE_POINTER_TO.
10091
d11ad92e 10092Wed Jun 1 11:11:15 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
a0a33927
MS
10093
10094 * decl.c (grokdeclarator): Make sure we have a DNAME set before we
10095 try to use it in an error.
10096
6060a796 10097Wed Jun 1 09:48:49 1994 Mike Stump <mrs@cygnus.com>
a0a33927
MS
10098
10099 * typeck.c (convert_arguments, convert_for_initialization): Don't
10100 strip NOP_EXPRs, when we are converting to a reference.
10101
d11ad92e 10102Wed Jun 1 01:11:38 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927
MS
10103
10104 * typeck.c (build_modify_expr): Don't dereference references when
10105 initializing them.
10106
10107 * decl2.c (grokfield): Don't check for grokdeclarator returning
10108 error_mark_node any more.
10109
10110 * decl.c (grokfndecl): Return NULL_TREE instead of error_mark_node.
10111 (start_method): Return void_type_node instead of error_mark_node.
10112
10113 * typeck.c (build_modify_expr): Resolve offset refs earlier.
10114
d11ad92e 10115Tue May 31 16:06:58 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927
MS
10116
10117 * call.c (build_method_call): Resolve OFFSET_REFs in the object.
10118
10119 * typeck.c (build_modify_expr): Dereference references before trying
10120 to assign to them.
10121
10122 * call.c (build_method_call): Don't confuse type conversion
10123 operators with constructors.
10124 * typeck2.c (build_functional_cast): Just call build_c_cast if there
10125 was only one parameter.
10126 * method.c (build_typename_overload): Don't set
10127 IDENTIFIER_GLOBAL_VALUE on these identifiers.
10128 * decl.c (grok_op_properties): Warn about defining a type conversion
10129 operator that converts to a base class (or reference to it).
10130 * cvt.c (cp_convert): Don't try to use a type conversion operator
10131 when converting to a base class.
10132 (build_type_conversion_1): Don't call constructor_name_full on an
10133 identifier.
10134 * cp-tree.h (DERIVED_FROM_P): Should be self-explanatory.
10135
10136 * decl.c (start_decl): Don't complain that error_mark_node is an
10137 incomplete type.
10138 (finish_decl): Check for type == error_mark_node.
10139
d11ad92e 10140Mon May 30 23:38:55 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927
MS
10141
10142 * decl.c (start_function): Set DECL_DEFER_OUTPUT on implicit
10143 instantiations and inline members.
10144
10145 * spew.c (yylex): Set looking_for_template if the next token is a '<'.
10146
10147 * lex.h: Declare looking_for_template.
10148
10149 * decl.c (lookup_name_real): Use looking_for_template to arbitrate
10150 between type and template interpretations of an identifier.
10151
d11ad92e 10152Sat May 28 04:07:40 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927
MS
10153
10154 * pt.c (instantiate_template): Zero out p if we found a
10155 specialization.
10156
10157 * decl.c (grokdeclarator): Elucidate warning.
10158 (grokdeclarator): If pedantic AND -ansi, complain about long long.
10159
10160 Make explicit instantiation work reasonably. It is now appropriate
10161 to deprecate the use of -fexternal-templates.
10162 * pt.c (instantiate_template): Set DECL_TEMPLATE_SPECIALIZATION or
10163 DECL_IMPLICIT_INSTANTIATION on fndecl as appropriate.
10164 (end_template_instantiation): Reflect changes in USE_TEMPLATE
10165 semantics.
10166 (do_pending_expansions): if (!flag_implicit_templates) DECIDE(0);
10167 (do_function_instantiation): Don't set EXPLICIT_INST if
10168 flag_external_templates is set. Do set TREE_PUBLIC and DECL_EXTERN
10169 appropriately otherwise.
10170 (do_type_instantiation): Set interface info for class. Set
10171 TREE_PUBLIC and DECL_EXTERN for methods. Do none of this if
10172 flag_external_templates is set.
10173 * parse.y: Reflect changes in USE_TEMPLATE semantics.
10174 * decl2.c: New flag flag_implicit_templates determines whether or
10175 not implicit instantiations get emitted. This flag currently
10176 defaults to true, and must be true for -fexternal-templates to work.
10177 (finish_file): Consider flag_implement_inlines when
10178 setting DECL_EXTERNAL. Consider flag_implicit_templates when
10179 deciding whether or not to emit a static copy.
10180 * decl.c (start_function): Set TREE_PUBLIC and DECL_EXTERNAL
10181 properly for template instantiations.
10182 (start_method): Set DECL_IMPLICIT_INSTANTIATION on methods of a
10183 template class.
10184 * cp-tree.h (CLASSTYPE_USE_TEMPLATE): Change semantics.
10185 (DECL_USE_TEMPLATE): Parallel macro for FUNCTION and VAR_DECLs.
10186 (various others): Accessor macros for the above.
10187
d11ad92e 10188Fri May 27 13:57:40 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927
MS
10189
10190 * typeck.c (build_binary_op_nodefault): Division by constant zero is
10191 an error.
10192
6060a796 10193Fri May 27 13:50:15 1994 Mike Stump <mrs@cygnus.com>
a0a33927
MS
10194
10195 * class.c (override_one_vtable): Don't modify things we don't own.
10196
d11ad92e 10197Fri May 27 01:42:58 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927
MS
10198
10199 * decl.c (finish_decl): Don't postpone processing the initializer of
10200 a decl with DECL_EXTERNAL set, and do call rest_of_compilation for a
10201 PUBLIC const at toplevel.
10202 (grokdeclarator): pedwarn about initializing non-const or
10203 non-integral statics in the class body.
10204
10205 * decl.c (pushtag): Don't try to set DECL_CLASS_CONTEXT on a
10206 TYPE_DECL.
10207
10208 * call.c (convert_harshness): Dereference reference on rhs before
10209 proceeding, properly grok passing const things to non-const
10210 references.
10211
10212 * typeck.c (build_unary_op): Soften error about taking the address
10213 of main() to a pedwarn.
10214
10215 * lex.c (default_copy_constructor_body): Unambiguously specify base
10216 classes (i.e. A((const class ::A&)_ctor_arg) ).
d11ad92e 10217 (default_assign_ref_body): Likewise.
a0a33927 10218
d11ad92e 10219Thu May 26 13:13:55 1994 Gerald Baumgartner <gb@mexican.cygnus.com>
a0a33927
MS
10220
10221 * decl2.c (grokfield): Don't complain about local signature
10222 method declaration without definition.
10223
10224 * call.c (convert_harshness): If `type' is a signature pointer
10225 and `parmtype' is a pointer to a signature, just return 0. We
10226 don't really convert in this case; it's a result of making the
10227 `this' parameter of a signature method a signature pointer.
10228
10229 * call.c (build_method_call): Distinguish calling the default copy
10230 constructor of a signature pointer/reference from a signature
10231 member function call.
10232
d11ad92e 10233Thu May 26 12:56:25 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927
MS
10234
10235 * decl2.c (grokfield): Don't set TREE_PUBLIC on member function
10236 declarations.
10237
10238 * decl.c (duplicate_decls): A previous function declaration as
10239 static overrides a subsequent non-static definition.
10240 (grokdeclarator): Don't set TREE_PUBLIC on inline method
10241 declarations.
10242
d11ad92e 10243Wed May 25 14:36:38 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927
MS
10244
10245 * decl.c (grokdeclarator): Handle initialization of static const
10246 members.
d11ad92e 10247 (finish_decl): Likewise.
a0a33927
MS
10248
10249 * decl2.c (grokfield): Allow initialization of static const members
10250 even when pedantic.
10251
10252 * decl2.c (grokfield): Deal with grokdeclarator returning
10253 error_mark_node.
10254
10255 * decl.c (grok_ctor_properties): Return 0 for A(A) constructor.
10256 (grokfndecl): Check the return value of grok_ctor_properties.
d11ad92e 10257 (start_method): Likewise.
a0a33927
MS
10258
10259 * parse.y (absdcl): Expand type_quals inline.
10260
d11ad92e 10261Tue May 24 19:10:32 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927
MS
10262
10263 * decl.c (pushtag): Use IS_AGGR_TYPE rather than checking for a
10264 RECORD_TYPE.
10265
d11ad92e 10266Tue May 24 18:09:16 1994 Per Bothner <bothner@kalessin.cygnus.com>
a0a33927
MS
10267
10268 * cp-tree.h (VTABLE_NAME_FORMAT): If flag_vtable_thunks,
10269 always use "__vt_%s".
10270 * decl2.c (finish_vtable_vardecl): Don't consider abstract virtuals
10271 when looking for a "sentinal" method (to decide on emitting vtables).
10272 * decl2.c (finish_file): Scan all decls for thunks that need
10273 to be emitted.
10274 * decl2.c (finish_vtable_vardecl): Don't bother calling emit_thunk.
10275 * method.c (make_thunk): Use a more meaningful label. If there
10276 exists a matching top-level THUNK_DECL re-use it; otherwise
10277 create a new THUNK_DECL (and declare it).
10278 * method.c (emit_thunk): Make thunk external/public depending
10279 on the underlying method.
10280
d11ad92e 10281Tue May 24 00:22:04 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927
MS
10282
10283 * pt.c (tsubst): Use lookup_name_nonclass to find guiding decls, not
10284 lookup_name.
10285
10286 * call.c (build_overload_call_real): Don't immediately pick a
10287 function which matches perfectly.
10288
10289 * decl.c (grokdeclarator): Use c_build_type_variant for arrays.
10290 (grokdeclarator): Warn about, and throw away, cv-quals attached to a
10291 reference (like 'int &const j').
10292
10293 * typeck.c (convert_arguments): Don't mess with i for methods.
10294 * call.c (build_method_call): Pass the function decl to
10295 convert_arguments.
10296
10297 * typeck.c (comp_ptr_ttypes_real): New function. Implements the
10298 checking for which multi-level pointer conversions are allowed.
10299 (comp_target_types): Call it.
10300 (convert_for_assignment): Check const parity on the ultimate target
10301 type, too. And make those warnings pedwarns.
10302
d11ad92e 10303Mon May 23 14:11:24 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927
MS
10304
10305 * error.c (dump_char): Use TARGET_* for character constants.
10306
d11ad92e 10307Mon May 23 13:03:03 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
a0a33927
MS
10308
10309 * tree.c (debug_no_list_hash): Make static.
10310
10311 * decl.c (decls_match): Say the types don't match if newdecl ends up
10312 with a null type, after we've checked if olddecl does.
10313 (pushdecl): Check if the decls themselves match before looking for
10314 an extern redeclared as static, to avoid inappropriate and incorrect
10315 warnings.
10316
d11ad92e 10317Fri May 20 14:04:34 1994 Jason Merrill <jason@deneb.cygnus.com>
a0a33927
MS
10318
10319 * decl.c (grokdeclarator): Make warning about duplicate short, etc.
10320 a pedwarn.
10321
10322 * typeck.c (build_c_cast): Casting to function or method type is an
10323 error.
10324
10325 * class.c (finish_struct): Make warning for anonymous class with no
10326 instances a pedwarn.
10327
10328 * Makefile.in (stamp-parse): Expect a s/r conflict.
10329
10330 * typeck.c (build_modify_expr): pedwarn about using a non-lvalue
10331 cast as an lvalue.
10332
d11ad92e 10333Thu May 19 12:08:48 1994 Jason Merrill <jason@deneb.cygnus.com>
2986ae00
MS
10334
10335 * cvt.c (type_promotes_to): Make sure bool promotes to int rather
10336 than unsigned on platforms where sizeof(char)==sizeof(int).
10337
d11ad92e 10338Wed May 18 14:27:06 1994 Jason Merrill <jason@deneb.cygnus.com>
2986ae00
MS
10339
10340 * typeck.c (build_c_cast): Tack on a NOP_EXPR when casting to
10341 another variant.
10342 (build_modify_expr): Don't strip NOP_EXPRs, and don't get tricky
10343 and treat them as lvalues.
10344
10345 * decl.c (shadow_tag): Do complain about forward declarations of
10346 enums and empty declarations.
10347 * parse.y: Don't complain about forward declarations of enums and
10348 empty declarations.
10349
10350 * typeck.c (convert_for_assignment): Complain about changing
10351 the signedness of a pointer's target type.
10352
10353 * parse.y (stmt): Move duplicated code for checking case values from
10354 here.
10355 * decl2.c (check_cp_case_value): To here. And add a call to
10356 constant_expression_warning.
10357
10358 * typeck.c (convert_for_assignment): Don't complain about assigning
10359 a negative value to bool.
10360
10361 * decl.c (init_decl_processing): Make bool unsigned.
10362
10363 * class.c (finish_struct): Allow bool bitfields.
10364
d11ad92e 10365Wed May 18 12:35:27 1994 Ian Lance Taylor <ian@tweedledumb.cygnus.com>
2986ae00
MS
10366
10367 * Make-lang.in (c++.install-man): Get g++.1 from $(srcdir)/cp.
10368
d11ad92e 10369Wed May 18 03:28:35 1994 Jason Merrill <jason@deneb.cygnus.com>
2986ae00
MS
10370
10371 * cvt.c (build_type_conversion): Lose special handling of
10372 truthvalues.
10373
10374 * search.c (dfs_pushdecls): Improve shadowing warning.
10375
d11ad92e 10376Tue May 17 13:34:46 1994 Jason Merrill <jason@deneb.cygnus.com>
2986ae00
MS
10377
10378 * init.c (build_delete): Throw away const and volatile on `this'.
10379
10380 * decl.c (finish_enum): Put the constants in TYPE_VALUES again,
10381 rather than the enumerators.
10382 (pushtag): s/cdecl/c_decl/g
10383
d11ad92e 10384Mon May 16 23:04:01 1994 Stephen R. van den Berg <berg@pool.informatik.rwth-aachen.de>
2986ae00 10385
63718c49
GB
10386 * cp/typeck.c (common_type): Attribute merging.
10387 (comp_types): Utilise COMP_TYPE_ATTRIBUTES macro.
2986ae00 10388
63718c49 10389 * cp/parse.y: Revamp attribute parsing.
2986ae00 10390
d11ad92e 10391Mon May 16 01:40:34 1994 Jason Merrill <jason@deneb.cygnus.com>
2986ae00
MS
10392
10393 * decl.c (shadow_tag): Also check for inappropriate use of auto and
10394 register.
10395
10396 * method.c (build_overload_name): Clarify that the illegal case is a
10397 pointer or reference to array of unknown bound.
10398
10399 * error.c (dump_type_prefix): Print references to arrays properly.
10400
10401 * typeck.c (various): Be more helpful in pointer
10402 comparison diagnostics.
10403
10404 * tree.c (lvalue_p): MODIFY_EXPRs are lvalues again. Isn't this
10405 fun?
10406
10407 * parse.y: Also catch an error after valid stmts.
10408
10409 * search.c (dfs_init_vbase_pointers): Don't abort because `this' is
10410 const.
10411
10412 * typeck.c (convert_for_initialization): If call to
10413 convert_to_reference generated a diagnostic, print out the parm
10414 number and function decl if any.
10415
10416 * errfn.c (cp_thing): Check atarg1 to determine whether or not we're
10417 specifying a line, not atarg.
10418
10419 * tree.c (build_cplus_method_type): Always make `this' const.
10420
10421 * decl2.c (grokclassfn): If -fthis-is-variable and this function is
10422 a constructor or destructor, make `this' non-const.
10423
10424 * typeck.c (build_modify_expr): Don't warn specially about
10425 assignment to `this' here anymore, since it will be caught by the
10426 usual machinery.
10427
10428 * various: Disallow specific GNU extensions (variable-size arrays,
10429 etc.) when flag_ansi is set, not necessarily when pedantic is set,
10430 so that people can compile with -pedantic-errors for tighter const
10431 checking and such without losing desirable extensions.
10432
10433 * typeck2.c (build_functional_cast): Call build_method_call with
10434 LOOKUP_PROTECT.
10435 (process_init_constructor): Only process FIELD_DECLs.
10436
10437 * decl.c (finish_decl): Also force static consts with no explicit
10438 initializer that need constructing into the data segment.
10439
10440 * init.c (build_delete): Undo last patch, as it interferes with
10441 automatic cleanups.
10442
d11ad92e 10443Sat May 14 01:59:31 1994 Jason Merrill <jason@deneb.cygnus.com>
2986ae00
MS
10444
10445 * call.c, class.h, cp-tree.h, cvt.c, decl2.c: Lose old overloading
10446 code.
10447
10448 * init.c (build_delete): pedwarn about using plain delete to delete
10449 an array.
10450
d11ad92e 10451Fri May 13 16:45:07 1994 Jason Merrill <jason@deneb.cygnus.com>
2986ae00
MS
10452
10453 * typeck.c (comp_target_types): Be more helpful in contravariance
10454 warnings, and make them pedwarns.
10455
10456 * decl.c (grokdeclarator): Use decl_context to decide whether or not
10457 this is an access declaration.
10458
10459 * class.c (finish_struct_bits): Set TYPE_HAS_INT_CONVERSION if it
10460 has a conversion to enum or bool, too.
10461
6060a796 10462Fri May 13 16:31:27 1994 Mike Stump <mrs@cygnus.com>
2986ae00
MS
10463
10464 * method.c (emit_thunk): Make declaration for
10465 current_call_is_indirect local (needed for hppa).
10466
d11ad92e 10467Fri May 13 16:16:37 1994 Jason Merrill <jason@deneb.cygnus.com>
2986ae00
MS
10468
10469 * pt.c (uses_template_parms): Grok BOOLEAN_TYPE.
d11ad92e 10470 (tsubst): Likewise.
2986ae00 10471
6060a796 10472Fri May 13 16:23:32 1994 Mike Stump <mrs@cygnus.com>
2986ae00
MS
10473
10474 * pt.c (tsubst): If there is already a function for this expansion,
10475 use it.
d11ad92e 10476 * pt.c (instantiate_template): Likewise.
2986ae00 10477
d11ad92e 10478Fri May 13 10:30:42 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
2986ae00
MS
10479
10480 * parse.y (implicitly_scoped_stmt, simple_stmt case): Use
10481 kept_level_p for MARK_ENDS argument to expand_end_bindings, to avoid
10482 generating debug info for unemitted symbols on some systems.
10483
10484 * cp-tree.h (build_static_cast, build_reinterpret_cast,
10485 build_const_cast): Add declarations.
10486
6060a796 10487Fri May 13 09:50:31 1994 Mike Stump <mrs@cygnus.com>
2986ae00
MS
10488
10489 * search.c (expand_indirect_vtbls_init): Fix breakage from Apr 27
10490 fix. We now try get_binfo, and if that doesn't find what we want,
10491 we go back to the old method, which still sometimes fails.
10492
d11ad92e 10493Fri May 13 01:43:18 1994 Jason Merrill <jason@deneb.cygnus.com>
2986ae00
MS
10494
10495 * parse.y (initdcl): Call cplus_decl_attributes on the right
10496 variable.
10497 * decl2.c (cplus_decl_attributes): Don't call decl_attributes for
10498 void_type_node.
10499
10500 * typeck.c (build_binary_op_nodefault): Change result_type for
10501 comparison ops to bool.
10502 (build_binary_op): Convert args of && and || to bool.
10503 * cvt.c (build_default_binary_type_conversion): Convert args of &&
10504 and || to bool.
10505 (build_default_unary_type_conversion): Convert arg of ! to bool.
10506 (type_promotes_to): bool promotes to int.
10507
6060a796 10508Fri May 13 01:43:18 1994 Mike Stump <mrs@cygnus.com>
2986ae00
MS
10509
10510 Implement the new builtin `bool' type.
10511 * typeck.c (build_binary_op_nodefault): Convert args of && and || to
10512 bool.
10513 (build_unary_op): Convert arg of ! to bool.
10514 * parse.y: Know true and false. Use bool_truthvalue_conversion.
10515 * method.c (build_overload_value): Know bool.
d11ad92e 10516 (build_overload_name): Likewise.
2986ae00
MS
10517 * lex.c (init_lex): Set up RID_BOOL.
10518 * gxx.gperf: Add bool, true, false.
10519 * error.c (*): Know bool.
10520 * decl.c (init_decl_processing): Set up bool, true, false.
10521 * cvt.c (cp_convert): Handle conversion to bool.
d11ad92e 10522 (build_type_conversion): Likewise.
2986ae00
MS
10523 * *.c: Accept bool where integers and enums are accepted (use
10524 INTEGRAL_CODE_P macro).
10525
d11ad92e 10526Thu May 12 19:13:54 1994 Richard Earnshaw <rwe11@cl.cam.ac.uk>
8de7634e
RE
10527
10528 * g++.c: Use #ifdef for __MSDOS__, not #if.
10529
6060a796 10530Thu May 12 18:05:18 1994 Mike Stump <mrs@cygnus.com>
a4443a08
MS
10531
10532 * decl2.c (lang_f_options): Handle -fshort-temps. -fshort-temps
10533 gives old behavior , and destroys temporaries earlier. Default
10534 behavior now conforms to the ANSI working paper.
10535
d11ad92e 10536Thu May 12 14:45:35 1994 Jason Merrill <jason@deneb.cygnus.com>
a4443a08
MS
10537
10538 * typeck.c (build_modify_expr): Understand MODIFY_EXPR as an lvalue.
10539 Use convert_force to convert the result of a recursive call when we
10540 are dealing with a NOP_EXPR. Don't automatically wrap MODIFY_EXPRs
10541 in COMPOUND_EXPRs any more.
10542 (various): Lose pedantic_lvalue_warning.
10543 (unary_complex_lvalue): Understand MODIFY_EXPR.
10544
10545 * cvt.c (convert_to_reference): Allow DECL to be error_mark_node if
10546 we don't know what we're initializing.
10547
d11ad92e 10548Wed May 11 01:59:36 1994 Jason Merrill <jason@deneb.cygnus.com>
a4443a08
MS
10549
10550 * cvt.c (convert_to_reference): Modify to use convtype parameter.
10551 Only create temporaries when initializing a reference, not when
10552 casting.
10553 (cp_convert): New main function.
10554 (convert): Call cp_convert.
10555 * cvt.c, decl.c, typeck.c: Fix calls to convert_to_reference.
10556 * cp-tree.h (CONV_*): New constants used by conversion code for
10557 selecting conversions to perform.
10558
10559 * tree.c (lvalue_p): MODIFY_EXPRs are no longer lvalues.
10560
10561 * typeck.c (build_{static,reinterpret,const_cast): Stubs that just
10562 call build_c_cast.
10563 * parse.y: Add {static,reinterpret,const}_cast.
d11ad92e 10564 * gxx.gperf: Likewise.
a4443a08
MS
10565
10566 * typeck.c (common_type): Allow methods with basetypes of different
10567 UPTs.
10568 (comptypes): Deal with UPTs.
10569 (build_modify_expr): Wrap all MODIFY_EXPRs in a COMPOUND_EXPR.
10570
10571 * pt.c (end_template_decl): Check for multiple definitions of member
10572 templates.
10573
10574 * call.c (build_method_call): Complain about calling an abstract
10575 virtual from a constructor.
10576
10577 * typeck.c (pointer_int_sum): Check for the integer operand being 0
10578 after checking the validity of the pointer operand.
10579
10580 * typeck2.c (digest_init): Pedwarn about string initializer being
10581 too long.
10582
d11ad92e 10583Tue May 10 12:10:28 1994 Jason Merrill <jason@deneb.cygnus.com>
a4443a08
MS
10584
10585 * decl.c (push_overloaded_decl): Only throw away a builtin if the
10586 decl in question is the artificial one.
10587
10588 * parse.y (simple_stmt, switch): Use implicitly_scoped_stmt because
10589 expand_{start,end}_case cannot happen in the middle of a block.
10590
10591 * cvt.c (build_type_conversion_1): Use convert again.
10592
d11ad92e 10593Tue May 10 11:52:04 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
a4443a08
MS
10594
10595 * typeck2.c (digest_init): Make sure we check for signed and
10596 unsigned chars as well when warning about string initializers.
10597
10598 * init.c (emit_base_init): Check if there's a DECL_NAME on the
10599 member before trying to do an initialization for it.
10600
6060a796 10601Tue May 10 11:34:37 1994 Mike Stump <mrs@cygnus.com>
a4443a08
MS
10602
10603 * except.c: Don't do anything useful when cross compiling.
10604
d11ad92e 10605Tue May 10 03:04:13 1994 Jason Merrill <jason@deneb.cygnus.com>
a4443a08
MS
10606
10607 * decl.c (duplicate_decls): Fix up handling of builtins yet again.
d11ad92e 10608 (push_overloaded_decl): Likewise.
a4443a08
MS
10609
10610 * cvt.c (convert): Don't look for void type conversion.
10611
d11ad92e 10612Mon May 9 18:05:41 1994 Jason Merrill <jason@deneb.cygnus.com>
a4443a08
MS
10613
10614 * init.c (do_friend): Only do a pushdecl for friends, not
10615 pushdecl_top_level.
10616
d11ad92e 10617Mon May 9 13:36:34 1994 Jim Wilson <wilson@sphagnum.cygnus.com>
a4443a08
MS
10618
10619 * decl.c (lookup_name_current_level): Put empty statement after
10620 the label OUT to make the code valid C.
10621
d11ad92e 10622Mon May 9 12:20:57 1994 Jason Merrill <jason@deneb.cygnus.com>
a4443a08
MS
10623
10624 * typeck.c (build_binary_op_nodefault): Only complain about
10625 comparing void * and a function pointer if void * is smaller.
10626
d11ad92e 10627Sun May 8 01:29:13 1994 Jason Merrill <jason@deneb.cygnus.com>
a4443a08
MS
10628
10629 * decl.c (lookup_name_current_level): Move through temporary binding
10630 levels.
10631
10632 * parse.y (already_scoped_stmt): Revive.
10633 (simple_stmt): Use it again.
10634
10635 * decl.c (poplevel): Always call poplevel recursively if we're
10636 dealing with a temporary binding level.
10637
6060a796 10638Sat May 7 10:52:28 1994 Mike Stump <mrs@cygnus.com>
a4443a08
MS
10639
10640 * decl.c (finish_decl): Make sure we run cleanups for initial values
10641 of decls. Cures memory leak.
d11ad92e
MS
10642 * decl.c (expand_static_init): Likewise for static variables.
10643 * decl2.c (finish_file): Likewise for globals.
a4443a08 10644
d11ad92e 10645Sat May 7 03:57:44 1994 Jason Merrill <jason@deneb.cygnus.com>
a4443a08
MS
10646
10647 * typeck.c (commonparms): Don't complain about redefining default
10648 args.
10649
10650 * decl.c (duplicate_decls): Don't complain twice about conflicting
10651 function decls.
10652 (decls_match): Don't look at default args.
10653 (redeclaration_error_message): Complain about redefining default
10654 args.
10655
10656 * call.c (build_overload_call_real): Also deal with guiding
10657 declarations coming BEFORE the template decl.
10658
10659 * pt.c (unify): Allow different parms to have different
10660 cv-qualifiers.
10661 (unify): Allow trivial conversions on non-template parms.
10662
d11ad92e 10663Fri May 6 03:53:23 1994 Jason Merrill <jason@deneb.cygnus.com>
a4443a08
MS
10664
10665 * pt.c (tsubst): Support OFFSET_TYPEs.
d11ad92e 10666 (unify): Likewise.
a4443a08
MS
10667
10668 * decl2.c (finish_decl_parsing): Call push_nested_class with a type.
10669
10670 * init.c (build_offset_ref): Fix error message.
d11ad92e 10671 * search.c (lookup_field): Likewise.
a4443a08
MS
10672
10673 * call.c (build_scoped_method_call): Pass binfo to
10674 build_method_call.
d11ad92e 10675 * typeck.c (build_object_ref): Likewise.
a4443a08
MS
10676
10677 * typeck2.c (binfo_or_else): Don't return a _TYPE.
10678
10679 * class.c (finish_struct): Don't complain about re-use of inherited
10680 names or shadowing of type decls.
d11ad92e 10681 * decl.c (pushdecl_class_level): Likewise.
a4443a08
MS
10682
10683 * decl.c (finish_enum): Set the type of all the enums.
10684
10685 * class.c (finish_struct): Don't get confused by access decls.
10686
10687 * cp-tree.h (TYPE_MAIN_DECL): New macro to get the _DECL for a
10688 _TYPE. You can stop using TYPE_NAME for that now.
10689
10690 * parse.y: Lose doing_explicit (check $0 instead).
10691 * gxx.gperf: 'template' now has a RID.
d11ad92e 10692 * lex.h (rid): Likewise.
a4443a08
MS
10693 * lex.c (init_lex): Set up the RID for 'template'.
10694
10695 * parse.y (type_specifier_seq): typed_typespecs or
10696 nonempty_type_quals. Use it.
10697 (handler_args): Fix bogus syntax.
10698 (raise_identifier{,s}, optional_identifier): Lose.
10699 * except.c (expand_start_catch_block): Use grokdeclarator to parse
10700 the catch variable.
10701 (init_exception_processing): The second argument to
10702 __throw_type_match is ptr_type_node.
10703
d11ad92e 10704 Fri May 6 07:18:54 1994 Chip Salzenberg <chip@fin.uucp>
a4443a08
MS
10705
10706 [ change propagated from c-decl.c of snapshot 940429 ]
10707 * cp/decl.c (finish_decl): Setting asmspec_tree should not
10708 zero out the old RTL.
10709
6060a796 10710Fri May 6 01:25:38 1994 Mike Stump <mrs@cygnus.com>
8d2733ca
MS
10711
10712 Add alpha exception handling support to the compiler.
10713 Quick and dirty backend in except.c.
10714
10715 * cp/*: Remove most remnants of old exception handling support.
10716 * decl.c (finish_function): Call expand_exception_blocks to put
10717 the exception hanlding blocks at the end of the function.
10718 * dec.c (hack_incomplete_structures): Make sure expand_decl_cleanup
10719 comes after expand_decl_init.
10720 * except.c: Reimplementation.
10721 * expr.c (cplus_expand_expr): Handle THROW_EXPRs.
10722 * lex.c (init_lex): Always have catch, try and throw be reserved
10723 words, so that we may always parse exception handling.
10724 * parse.y: Cleanup to support new interface into exception handling.
10725 * tree.def (THROW_EXPR): Add.
10726
d11ad92e 10727Thu May 5 17:35:37 1994 Jason Merrill <jason@deneb.cygnus.com>
8d2733ca
MS
10728
10729 * parse.y (simple_stmt, for loops): Use implicitly_scoped_stmt.
10730 (various): Lose .kindof_pushlevel and partially_scoped_stmt.
10731
d11ad92e 10732Thu May 5 16:17:27 1994 Kung Hsu <kung@mexican.cygnus.com>
8d2733ca
MS
10733
10734 * parse.y (already_scoped_stmt): move expand_end_binding() to
10735 fix the unmatched LBB/LBE in stabs.
10736
d11ad92e 10737Thu May 5 14:36:17 1994 Jason Merrill <jason@deneb.cygnus.com>
8d2733ca
MS
10738
10739 * decl.c (set_nested_typename): Set TREE_MANGLED on the new
10740 identifiers.
10741 (pushdecl): Check TREE_MANGLED.
d11ad92e 10742 (xref_tag): Likewise.
8d2733ca
MS
10743 * cp-tree.h (TREE_MANGLED): This identifier is a
10744 DECL_NESTED_TYPENAME (named to allow for future use to denote
10745 mangled function names as well).
10746
10747 Implement inconsistency checking specified in [class.scope0].
10748 * decl.c (lookup_name_real): Don't set ICV here after all.
10749 (finish_enum): Also set the type of the enumerators themselves.
10750 (build_enumerator): Put the CONST_DECL in the list instead of its
10751 initial value.
10752 (pushdecl_class_level): Check inconsistent use of a name in the
10753 class body.
10754 * class.c (finish_struct): Check inconsistent use of a name in the
10755 class body. Don't set DECL_CONTEXT on types here anymore.
10756 * parse.y (qualified_type_name): Note that the identifier has now
10757 been used (as a type) in the class body.
10758 * lex.c (do_identifier): Note that the identifier has now been used
10759 (as a constant) in the class body.
10760 * error.c (dump_decl): Print type and enum decls better.
10761
d11ad92e 10762Thu May 5 09:35:35 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
700f8a87
MS
10763
10764 * typeck.c (build_modify_expr): Warn about assignment to `this'.
10765
d11ad92e 10766Wed May 4 15:55:49 1994 Jason Merrill <jason@deneb.cygnus.com>
700f8a87
MS
10767
10768 * init.c (build_delete): Use the global operator delete when
10769 requested.
10770
10771 * decl.c (lookup_name_real): If we find the type we're looking in a
10772 base class while defining a class, set IDENTIFIER_CLASS_VALUE for
10773 the type.
10774
10775 * class.c (finish_struct): Remove a couple of dependencies on
10776 language linkage.
10777
10778 * decl.c (pushtag): Classes do nest in extern "C" blocks.
10779 (pushdecl): Only set DECL_NESTED_TYPENAME on the canonical one for
10780 the type.
10781 (pushtag): Remove another dependency on the language linkage.
10782
10783 * lex.c (cons_up_default_function): Don't set DECL_CLASS_CONTEXT to
10784 a const-qualified type.
10785
10786 * decl.c (push_overloaded_decl): Throw away built-in decls here.
10787 (duplicate_decls): Instead of here.
10788
d11ad92e 10789Wed May 4 15:27:40 1994 Per Bothner <bothner@kalessin.cygnus.com>
700f8a87
MS
10790
10791 * typeck.c (get_member_function_from_ptrfunc): Do The Right
10792 Thing (I hope) if we're using thunks.
10793
d11ad92e 10794Wed May 4 13:52:38 1994 Jason Merrill <jason@deneb.cygnus.com>
700f8a87
MS
10795
10796 * parse.y (specialization): aggr template_type_name ';'.
10797 (named_class_head_sans_basetype): Use it.
d11ad92e 10798 (explicit_instantiation): Likewise.
700f8a87
MS
10799 (tmpl.2): Revert.
10800
10801 * cvt.c (build_type_conversion_1): Use convert_for_initialization,
10802 rather than convert, to do conversions after the UDC.
10803
10804 * cp-tree.h (SHARED_MEMBER_P): This member is shared between all
10805 instances of the class.
10806
10807 * search.c (lookup_field): If the entity found by two routes is the
10808 same, it's not ambiguous.
10809
d11ad92e 10810Wed May 4 12:10:00 1994 Per Bothner <bothner@kalessin.cygnus.com>
700f8a87
MS
10811
10812 * decl.c (lookup_name_real): Check for a NULL TREE_VALUE,
10813 to prevent the compiler from crashing ...
10814
d11ad92e 10815Wed May 4 11:19:45 1994 Jason Merrill <jason@deneb.cygnus.com>
700f8a87
MS
10816
10817 * call.c (build_method_call): If we don't have an object, check
10818 basetype_path to figure out where to look up the function.
10819
10820 * typeck.c (convert_for_initialization): Pass TYPE_BINFO (type) to
10821 build_method_call in case exp is NULL_TREE.
10822
d11ad92e 10823Tue May 3 16:02:53 1994 Per Bothner <bothner@kalessin.cygnus.com>
700f8a87
MS
10824
10825 Give a vtable entries a unique named type, for the sake of gdb.
10826 * class.c (build_vtable_entry): The addres of a thunk now has
10827 type vtable_entry_type, not ptr_type_node.
10828 * method.c (make_thunk): Fix type of THUNK_DECL.
10829 * class.c (add_virtual_function, override_one_vtable): Use
10830 vfunc_ptr_type_node, instead of ptr_type_node.
10831 * cp-tree.h (vfunc_ptr_type_node): New macro.
10832 * decl.c (init_decl_processing): Make vtable_entry_type
10833 be a unique type of pointer to a unique function type.
10834
d11ad92e 10835Tue May 3 09:20:44 1994 Jason Merrill <jason@deneb.cygnus.com>
700f8a87
MS
10836
10837 * parse.y (do_explicit): Sets doing_explicit to 1.
10838 (explicit_instantiation): Use do_explicit rather than TEMPLATE
10839 directly, add "do_explicit error" rule.
10840 (datadef): Set doing_explicit to 0 after an explicit instantiation.
10841 (tmpl.2): Don't instantiate if we see a ';' unless we're doing an
10842 explicit instantiation.
10843 (named_class_head_sans_basetype): Remove aggr template_type_name
10844 ';' again.
10845
d11ad92e 10846Mon May 2 23:17:21 1994 Jason Merrill <jason@deneb.cygnus.com>
700f8a87
MS
10847
10848 * search.c (lookup_nested_tag): Lose.
10849
10850 * decl2.c (grokfield): Set DECL_CONTEXT on TYPE_DECLs.
10851 (lookup_name_nonclass): Lose.
10852
10853 * decl.c (poplevel_class): Add force parameter.
10854 (lookup_name_real): Fix handling of explicit scoping which specifies
10855 a class currently being defined. Add 'nonclass' argument.
10856 (lookup_name, lookup_name_nonclass): Shells for lookup_name_real.
10857
10858 * class.c (finish_struct): Don't unset IDENTIFIER_CLASS_VALUEs here.
10859 (popclass): Force clearing of IDENTIFIER_CLASS_VALUEs if we're being
10860 called from finish_struct.
10861
d11ad92e 10862Mon May 2 19:06:21 1994 Per Bothner <bothner@kalessin.cygnus.com>
700f8a87
MS
10863
10864 * decl.c (init_decl_processing), cp-tree.h: Removed memptr_type.
10865 (It seeems redundant, given build_ptrmemfunc_type.)
10866 * typeck.c (get_member_function_from_ptrfunc), gc.c (build_headof,
10867 build_classof): Use vtable_entry_type instead of memptr_type.
10868 * method.c (emit_thunk): Call poplevel with functionbody==0
10869 to prevent DECL_INITIAL being set to a BLOCK.
10870
d11ad92e 10871Mon May 2 15:02:11 1994 Jason Merrill <jason@deneb.cygnus.com>
700f8a87
MS
10872
10873 * parse.y (named_class_head_sans_basetype): Add "aggr
10874 template_type_name ';'" rule for forward declaration of
10875 specializations.
10876
d11ad92e 10877Mon May 2 15:02:11 1994 Jason Merrill <jason@deneb.cygnus.com>
700f8a87
MS
10878
10879 * class.c (instantiate_type): Deal with pmf's.
bfef964b
JM
10880
10881 * Make-lang.in (cc1plus): Don't depend on OBJS or BC_OBJS, since
10882 stamp-objlist does.
700f8a87 10883
bfef964b
JM
10884 * Makefile.in (../cc1plus): Depend on OBJDEPS.
10885 (OBJDEPS): Dependency version of OBJS.
10886
d11ad92e 10887Mon May 2 12:51:31 1994 Kung Hsu <kung@mexican.cygnus.com>
700f8a87
MS
10888
10889 * search.c (dfs_debug_mark): unmark TYPE_DECL_SUPPRESS_DEBUG, not
10890 DECL_IGNORED_P.
10891
d11ad92e 10892Fri Apr 29 12:29:56 1994 Jason Merrill <jason@deneb.cygnus.com>
700f8a87
MS
10893
10894 * class.c (finish_struct): Clear out memory of local tags. And
10895 typedefs.
10896
10897 * decl2.c (grokclassfn): Don't set DECL_CONTEXT to a cv-qualified
10898 type.
10899 * search.c (get_matching_virtual): Be more helpful in error message.
10900
10901 * *: Use DECL_ARTIFICIAL (renamed from DECL_SYNTHESIZED).
10902
10903 * lex.c (default_assign_ref_body): Expect TYPE_NESTED_NAME to work.
d11ad92e 10904 (default_copy_constructor_body): Likewise.
700f8a87
MS
10905
10906 * class.c (finish_struct): Don't gratuitously create multiple decls
10907 for nested classes.
10908
d11ad92e 10909Thu Apr 28 23:39:38 1994 Jason Merrill <jason@deneb.cygnus.com>
700f8a87
MS
10910
10911 Avoid clobbering the arg types of other functions when reverting
10912 static member functions.
10913 * decl.c (revert_static_member_fn): Rearrange arguments, don't
10914 require values for 'fn' and 'argtypes', add warning to comment
10915 above.
10916 (decls_match): Rearrange arguments in call to rsmf.
10917 (grok_op_properties): Don't pass values for fn and argtypes.
10918 * pt.c (instantiate_template): Don't pass values for fn and argtypes.
10919
d11ad92e 10920Thu Apr 28 16:29:11 1994 Doug Evans <dje@canuck.cygnus.com>
15fa00e9
DE
10921
10922 * Make-lang.in (cc1plus): Depend on stamp-objlist.
10923 * Makefile.in (BC_OBJS): Delete.
700f8a87
MS
10924 (OBJS): Cat ../stamp-objlist to get language independent files.
10925 Include ../c-common.o.
15fa00e9
DE
10926 (../cc1plus): Delete reference to BC_OBJS.
10927
d11ad92e 10928Thu Apr 28 02:12:08 1994 Jason Merrill <jason@deneb.cygnus.com>
700f8a87
MS
10929
10930 * search.c (compute_access): No really, deal with static members
10931 properly. Would I lie to you?
10932
10933 Implement lexical hiding of function declarations.
10934 * pt.c (tsubst): Use lookup_name to look for function decls to guide
10935 instantiation.
10936 * method.c (build_opfncall): Use lookup_name_nonclass to look for
10937 non-member functions.
10938 * init.c (do_friend): Use lookup_name_nonclass to look for
10939 functions.
10940 * error.c (ident_fndecl): Use lookup_name to look for functions.
10941 * decl2.c (lookup_name_nonclass): New function, skips over
10942 CLASS_VALUE.
10943 * decl.c (struct binding_level): Lose overloads_shadowed field.
10944 (poplevel): Don't deal with overloads_shadowed.
10945 (push_overloaded_decl): Do lexical hiding for functions.
10946 * class.c (instantiate_type): Don't check non-members if we have
10947 members with the same name.
10948 * call.c (build_method_call): Use lookup_name_nonclass instead of
10949 IDENTIFIER_GLOBAL_VALUE to check for non-member functions.
d11ad92e 10950 (build_overload_call_real): Likewise.
700f8a87
MS
10951
10952 * decl.c (duplicate_decls): Check for ambiguous overloads here.
10953 (push_overloaded_decl): Instead of here.
10954
10955 * decl.c (pushdecl): Back out Chip's last change.
10956
10957 * decl.c (grok_op_properties): operators cannot be static members.
10958
10959 * cp-tree.h (DECL_SYNTHESIZED): DECL_SOURCE_LINE == 0
10960 (SET_DECL_SYNTHESIZED): DECL_SOURCE_LINE = 0
10961 * lex.c (cons_up_default_function): Use SET_DECL_SYNTHESIZED.
10962
10963 * method.c (do_inline_function_hair): Don't put friends of local
10964 classes into global scope, either.
10965
10966 * typeck2.c (build_functional_cast): Don't look for a function call
10967 interpretation.
10968
6060a796 10969Thu Apr 28 15:19:46 1994 Mike Stump <mrs@cygnus.com>
39211cd5
MS
10970
10971 * cp-tree.h: disable use of backend EH.
10972
d11ad92e 10973Wed Apr 27 21:01:24 1994 Doug Evans <dje@canuck.cygnus.com>
15fa00e9
DE
10974
10975 * Make-lang.in (c++.distdir): mkdir tmp/cp first.
10976 * Makefile.in (INCLUDES): Move definition to same place as
10977 parent makefile.
10978 (ALLOCA): Define.
10979 (OLDAR_FLAGS): Delete.
10980 (OLDCC): Define.
10981 (DIR): Delete.
10982 (CLIB): Define.
10983 (####site): Delete.
10984 (SUBDIR_USE_ALLOCA): Don't use ALLOCA if compiling with gcc.
10985
d11ad92e 10986Wed Apr 27 19:10:04 1994 Kung Hsu <kung@mexican.cygnus.com>
39211cd5
MS
10987
10988 * decl.c (xref_tag): not to use strstr(), it's not available on
10989 all platforms.
10990
d11ad92e 10991Wed Apr 27 18:10:12 1994 Jason Merrill <jason@deneb.cygnus.com>
39211cd5
MS
10992
10993 * class.c (finish_struct): Resolve yet another class/pmf confusion.
10994
10995 * call.c (build_overload_call_real): Don't take the single-function
10996 shortcut if we're dealing with an overloaded operator.
10997
6060a796 10998Wed Apr 27 17:35:37 1994 Mike Stump <mrs@cygnus.com>
39211cd5
MS
10999
11000 * search.c (get_base_distance): Search the virtual base class
11001 binfos, incase someone wants to convert to a real virtual base
11002 class.
11003 * search.c (expand_indirect_vtbls_init): Use convert_pointer_to_real
11004 instead of convert_pointer_to, as it now will work.
11005
d11ad92e 11006Wed Apr 27 15:36:49 1994 Jason Merrill <jason@deneb.cygnus.com>
39211cd5
MS
11007
11008 * cvt.c (convert_to_reference): Don't complain about casting away
11009 const and volatile.
11010
11011 * typeck.c (build_unary_op): References are too lvalues.
11012
6060a796 11013Wed Apr 27 13:58:05 1994 Mike Stump <mrs@cygnus.com>
39211cd5
MS
11014
11015 * class.c (override_one_vtable): We have to prepare_fresh_vtable
11016 before we modify it, not after, also, we cannot reuse an old vtable,
11017 once we commit to a new vtable. Implement ambiguous overrides in
11018 virtual bases as abstract. Hack until we make the class
11019 ill-formed.
11020
d11ad92e 11021Wed Apr 27 01:17:08 1994 Jason Merrill <jason@deneb.cygnus.com>
39211cd5
MS
11022
11023 * parse.y (unary_expr): Expand new_placement[opt] and
11024 new_initializer[opt] inline.
11025
11026 * search.c (lookup_fnfields): Don't throw away the inheritance
11027 information here, either.
11028 (compute_access): Handle static members properly.
11029
11030 * init.c (build_member_call): Always set basetype_path, and pass it
11031 to lookup_fnfields.
11032
11033 * search.c (lookup_field): Deal properly with the case where
11034 xbasetype is a chain of binfos; don't throw away the inheritance
11035 information.
11036 (compute_access): protected_ok always starts out at 0.
11037
11038 * init.c (resolve_offset_ref): Don't cast `this' to the base type
11039 until we've got our basetype_path.
11040
11041 * cp-tree.h (IS_OVERLOAD_TYPE): aggregate or enum.
11042
11043 * cvt.c (build_up_reference): Use build_pointer_type rather than
11044 TYPE_POINTER_TO.
11045
11046 * call.c (convert_harshness_ansi): Call type_promotes_to for reals
11047 as well.
11048
11049 * cvt.c (type_promotes_to): Retain const and volatile, add
11050 float->double promotion.
11051
11052 * decl.c (grokdeclarator): Don't bash references to arrays into
11053 references to pointers in function parms. Use type_promotes_to.
11054
6060a796 11055Tue Apr 26 23:44:36 1994 Mike Stump <mrs@cygnus.com>
39211cd5
MS
11056
11057 Finish off Apr 19th work.
11058
11059 * class.c (finish_struct_bits): Rename has_abstract_virtuals to
11060 might_have_abstract_virtuals.
11061 * class.c (strictly_overrides, override_one_vtable,
11062 merge_overrides): New routines to handle virtual base overrides.
11063 * class.c (finish_struct): Call merge_overrides to handle overrides
11064 in virtual bases.
11065
d11ad92e 11066Tue Apr 26 12:45:53 1994 Jason Merrill <jason@deneb.cygnus.com>
39211cd5
MS
11067
11068 * typeck.c (build_function_call): Call build_function_call_real with
11069 LOOKUP_NORMAL.
11070
11071 * *: Don't deal with TYPE_EXPRs.
11072
11073 * tree.c (lvalue_p): If the type of the expression is a reference,
11074 it's an lvalue.
11075
11076 * cvt.c (convert_to_reference): Complain about passing const
11077 lvalues to non-const references.
11078 (convert_from_reference): Don't arbitrarily throw away const and
11079 volatile on the target type.
11080
11081 * parse.y: Simplify and fix rules for `new'.
11082
11083 * decl.c (grok_op_properties): operator void is illegal.
11084
d11ad92e 11085Mon Apr 25 02:36:28 1994 Jason Merrill <jason@deneb.cygnus.com>
39211cd5
MS
11086
11087 * parse.y (components): Anonymous bitfields can still have declspecs.
11088
11089 * decl.c (pushdecl): Postpone handling of function templates like we
11090 do C functions.
11091
11092 * search.c (expand_indirect_vtbls_init): Fix infinite loop when
11093 convert_pointer_to fails.
11094
11095 * call.c (compute_conversion_costs_ansi): A user-defined conversion
11096 by itself is better than that UDC followed by standard conversions.
11097 Don't treat integers and reals specially.
11098
11099 * cp-tree.h: Declare flag_ansi.
11100
11101 * typeck.c (c_expand_return): pedwarn on return in void function
11102 even if the expression is of type void.
11103 (build_c_cast): Don't do as much checking for casts to void.
11104 (build_modify_expr): pedwarn about array assignment if this code
11105 wasn't generated by the compiler.
11106
11107 * tree.c (lvalue_p): A comma expression is an lvalue if its second
11108 operand is.
11109
11110 * typeck.c (default_conversion): Move code for promoting enums and
11111 ints from here.
11112 * cvt.c (type_promotes_to): To here.
11113 * call.c (convert_harshness_ansi): Use type_promotes_to. Also fix
11114 promotion semantics for reals.
11115
d11ad92e 11116Sun Apr 24 16:52:51 1994 Doug Evans <dje@canuck.cygnus.com>
15fa00e9
DE
11117
11118 * Make-lang.in (c++.install-common): Check for g++-cross.
11119 * Makefile.in: Remove Cygnus cruft.
11120 (config.status): Delete.
11121 (RTL_H): Define.
11122 (TREE_H): Use complete pathname, some native makes have minimal
11123 VPATH support.
11124 (*.o): Use complete pathname to headers in parent dir.
11125 (doc, info, dvi): Delete.
11126
d11ad92e 11127Sun Apr 24 16:52:51 1994 Doug Evans <dje@canuck.cygnus.com>
700f8a87
MS
11128
11129 * Make-lang.in (c++.install-common): Check for g++-cross.
11130 * Makefile.in: Remove Cygnus cruft.
11131 (config.status): Delete.
11132 (RTL_H): Define.
11133 (TREE_H): Use complete pathname, some native makes have minimal
11134 VPATH support.
11135 (*.o): Use complete pathname to headers in parent dir.
11136 (doc, info, dvi): Delete.
11137
d11ad92e 11138Sun Apr 24 00:47:49 1994 Jason Merrill <jason@deneb.cygnus.com>
39211cd5
MS
11139
11140 * decl.c (pushdecl): Avoid redundant warning on redeclaring function
11141 with different return type.
11142 (decls_match): Compare return types strictly.
11143
d11ad92e 11144Fri Apr 22 12:55:42 1994 Jason Merrill <jason@deneb.cygnus.com>
39211cd5
MS
11145
11146 * cvt.c (build_type_conversion): Do try to convert through other
11147 pointers. This will fail if the class defines multiple pointer
11148 conversions.
11149
11150 * error.c (dump_type_prefix): Print out pointers to arrays properly.
d11ad92e 11151 (dump_type_suffix): Likewise. (was 'int *[]', now 'int (*)[]')
39211cd5
MS
11152
11153 * typeck.c (build_unary_op): Disallow ++/-- on pointers to
11154 incomplete type.
11155
11156 * decl.c (duplicate_decls): Check mismatched TREE_CODES after
11157 checking for shadowing a builtin. If we're redeclaring a builtin
11158 function, bash the old decl to avoid an ambiguous overload.
11159
11160 * cvt.c (convert_to_reference): Don't force arrays to decay here.
11161
11162 * tree.c (lvalue_p): A MODIFY_EXPR is an lvalue.
11163
11164 * decl.c (duplicate_decls): Don't assume that the decls will have
11165 types.
11166
d11ad92e 11167 Mon Apr 18 11:35:32 1994 Chip Salzenberg <chip@fin.uucp>
39211cd5
MS
11168
11169 [ cp/* changes propagated from c-* changes in 940318 snapshot ]
11170 * c-decl.c (pushdecl): Warn if type mismatch with another external decl
11171 in a global scope.
11172
d11ad92e 11173 Fri Apr 22 06:38:56 1994 Chip Salzenberg <chip@fin.uucp>
39211cd5
MS
11174
11175 * cp/typeck2.c (signature_error): Use cp_error for "%T".
11176
d11ad92e 11177 Mon Apr 18 11:59:59 1994 Chip Salzenberg <chip@fin.uucp>
39211cd5
MS
11178
11179 [ cp/* changes propagated from c-* changes in 940415 snapshot ]
11180 * cp/decl.c (duplicate_decls, pushdecl, builtin_function):
11181 Use DECL_FUNCTION_CODE instead of DECL_SET_FUNCTION_CODE.
11182
d11ad92e 11183 Mon Apr 18 11:55:18 1994 Chip Salzenberg <chip@fin.uucp>
39211cd5
MS
11184
11185 [ cp/* changes propagated from c-* changes in 940409 snapshot ]
11186 * cp/decl.c (duplicate_decls): Put new type in same obstack as
11187 old ones, or permanent if old ones in different obstacks.
11188
d11ad92e 11189 Mon Apr 18 11:48:49 1994 Chip Salzenberg <chip@fin.uucp>
39211cd5
MS
11190
11191 [ cp/* changes propagated from c-* changes in 940401 snapshot ]
11192 * cp/parse.y (attrib): Handle string args as expressions,
11193 merging the two rules. `mode' attribute now takes a string arg.
11194 Delete the rule for an identifier as arg.
11195
d11ad92e 11196 Mon Apr 18 11:24:00 1994 Chip Salzenberg <chip@fin.uucp>
39211cd5
MS
11197
11198 [ cp/* changes propagated from c-* changes in 940312 snapshot ]
11199 * cp/typeck.c (pointer_int_sum): Multiplication should be done signed.
11200 (pointer_diff): Likewise the division.
11201
d11ad92e 11202 Sun Mar 6 19:43:39 1994 Chip Salzenberg <chip@fin.uucp>
39211cd5
MS
11203
11204 [ cp/* changes propagated from c-* changes in 940304 snapshot ]
11205 * cp/decl.c (finish_decl): Issue warning for large objects,
11206 if requested.
11207
d11ad92e 11208 Sat Feb 19 22:20:32 1994 Chip Salzenberg <chip@fin.uucp>
39211cd5
MS
11209
11210 [ cp/* changes propagated from c-* changes in 940218 snapshot ]
11211 * cp/parse.y (attrib): Handle attribute ((section ("string"))).
11212 * cp/decl.c (duplicate_decls): Merge section name into new decl.
11213
d11ad92e 11214 Tue Feb 8 09:49:17 1994 Chip Salzenberg <chip@fin.uucp>
39211cd5
MS
11215
11216 [ cp/* changes propagated from c-* changes in 940206 snapshot ]
11217 * cp/typeck.c (signed_or_unsigned_type): Check for any
63718c49 11218 INTEGRAL_TYPE_P not just INTEGER_TYPE.
39211cd5
MS
11219
11220 Mon Dec 6 13:35:31 1993 Norbert Kiesel (norbert@i3.INformatik.rwth-aachen.DE)
11221
11222 * cp/decl.c (finish_enum): Start from 0 when determining precision
11223 for short enums.
11224
11225 Fri Dec 3 17:07:58 1993 Ralph Campbell (ralphc@pyramid.COM)
11226
11227 * cp/parse.y (unary_expr): Look at $1 for tree_code rather than
11228 casting $$.
11229
d11ad92e 11230 Wed Nov 17 19:22:09 1993 Chip Salzenberg <chip@fin.uucp>
39211cd5
MS
11231
11232 * cp/typeck.c (build_binary_op_nodefault): Propagate code
11233 from C front-end to optimize unsigned short division.
11234 (build_conditional_expr): Fix bug in "1 ? 42 : (void *) 8".
11235
d11ad92e 11236 Wed Nov 17 19:17:18 1993 Chip Salzenberg <chip@fin.uucp>
39211cd5
MS
11237
11238 * cp/call.c (convert_harshness_ansi): Given an (e.g.) char
11239 constant, prefer 'const char &' to 'int'.
11240
d11ad92e 11241 Wed Feb 3 13:11:48 1993 Chip Salzenberg <chip@fin.uucp>
39211cd5
MS
11242
11243 * cp/class.c (finish_struct_methods): Handle multiple
11244 constructors in fn_fields list.
11245
d11ad92e 11246Fri Apr 22 12:48:10 1994 Kung Hsu <kung@mexican.cygnus.com>
39211cd5
MS
11247
11248 * class.c (finish_struct): use TYPE_DECL_SUPPRESS_DEBUG to flag
11249 types not to be dumped in stabs, like types in #pragma interface.
11250 * decl.c (init_decl_processing): use TYPE_DECL_SUPPRESS_DEBUG to
11251 mark unknown type.
11252
d11ad92e 11253Fri Apr 22 03:27:26 1994 Doug Evans <dje@cygnus.com>
15fa00e9
DE
11254
11255 * Language directory reorganization.
11256 See parent makefile.
11257
d11ad92e 11258Thu Apr 21 18:27:57 1994 Per Bothner <bothner@kalessin.cygnus.com>
39211cd5
MS
11259
11260 * cp-tree.h (THUNK_DELTA): It is normally negative, so
11261 use signed .i variant of frame_size rather than unsigned .u.
11262 * cp-tree.h (VTABLE_NAME_FORMAT): If flag_vtable_thunks,
11263 use "VT" rather than "vt" due to binary incompatibility.
11264 * class.c (get_vtable_name): Use strlen of VTABLE_NAME_FORMAT,
11265 rather than sizeof, since it is now an expression.
11266 * class.c (modify_one_vtable): Modify to skip initial element
11267 containing a count of the vtable.
11268
d11ad92e 11269Thu Apr 21 00:09:02 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
11270
11271 * lex.c (check_newline): Force interface_unknown on main input file.
11272
11273 * pt.c (do_pending_expansions): Always emit functions that have been
11274 explicitly instantiated.
11275 (do_function_instantiation): Set DECL_EXPLICITLY_INSTANTIATED.
11276 (do_type_instantiation): Set CLASSTYPE_VTABLE_NEEDS_WRITING and
11277 DECL_EXPLICITLY_INSTANTIATED on all my methods.
11278 * parse.y (explicit_instantiation): Call do_type_instantiation for
11279 types.
11280 * decl2.c (finish_vtable_vardecl): Call import_export_vtable.
11281 * decl.c (start_function): Don't set DECL_EXTERNAL on a function
11282 that has been explicitly instantiated.
11283 * cp-tree.h (DECL_EXPLICITLY_INSTANTIATED): Alias for
11284 DECL_LANG_FLAG_4.
11285 * class.c: Move import_export_vtable to decl2.c, and comment out all
11286 uses.
11287
d11ad92e 11288Wed Apr 20 16:51:06 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
11289
11290 * lex.c (process_next_inline): Don't muck with DECL_INLINE.
d11ad92e 11291 (do_pending_inlines): Likewise.
7177d104 11292
6060a796 11293Tue Apr 19 22:25:41 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
11294
11295 Reimplement vtable building, and most vtable pointer setting.
11296 Allows for earier maintenance, easier understandability, and most
11297 importantly, correct semantics.
11298
11299 * class.c (build_vtable): Removed unneeded
11300 SET_BINFO_VTABLE_PATH_MARKED.
d11ad92e 11301 * class.c (prepare_fresh_vtable): Likewise. Added argument.
7177d104
MS
11302 * class.c (modify_vtable_entry): General cleanup.
11303 * class.c (related_vslot, is_normal, modify_other_vtable_entries,
11304 modify_vtable_entries): Removed.
11305 * class.c (add_virtual_function): General cleanup.
11306 * class.c (finish_base_struct): Setup BINFO_VTABLE and
11307 BINFO_VIRTUALS as early as we can, so that modify_all_vtables can
11308 work.
11309 * class.c (finish_vtbls): New routine, mostly from
11310 unmark_finished_struct.
11311 * class.c (overrides): New routine.
11312 * class.c (modify_one_vtable): New routine, mostly from
11313 modify_other_vtable_entries and modify_vtable_entries.
11314 * class.c (modify_all_direct_vtables, modify_all_indirect_vtables,
11315 modify_all_vtables): New routines.
11316 * class.c (finish_struct): Added arguemnt to prepare_fresh_vtable
11317 call. General cleanup on how pending_hard_virtuals are handled.
11318 General cleanup on modifying vtables. Use finish_vtbls, instead of
11319 unmark_finished_struct.
11320 * cp-tree.h (init_vtbl_ptrs, expand_direct_vtbls_init,
11321 get_first_matching_virtual, get_matching_virtual,
11322 expand_vbase_vtables_init, expand_indirect_vtbls_init): Update.
11323 * cvt.c (convert_pointer_to_real): cleanup error message.
11324 * decl.c (grokfndecl): General cleanup.
11325 * decl.c (finish_function): Change init_vtbl_ptrs call to
11326 expand_direct_vtbls_init. Change expand_vbase_vtables_init call to
11327 expand_indirect_vtbls_init.
11328 * init.c (expand_virtual_init): Remove unneeded argument.
11329 * init.c (init_vtbl_ptrs): Rename to expand_direct_vtbls_init, added
11330 two arguments to make more general. Made more general. Now can be
11331 used for vtable pointer initialization from virtual bases.
11332 * init.c (emit_base_init): Change expand_vbase_vtables_init call to
11333 expand_indirect_vtbls_init. Change init_vtbl_ptrs call to
11334 expand_direct_vtbls_init.
11335 * init.c (expand_virtual_init): General cleanup.
11336 * init.c (expand_default_init): Change expand_vbase_vtables_init
11337 call to expand_indirect_vtbls_init.
11338 * init.c (expand_recursive_init_1): Change expand_vbase_vtables_init
11339 call to expand_indirect_vtbls_init.
11340 * init.c (expand_recursive_init): Change expand_vbase_vtables_init
11341 call to expand_indirect_vtbls_init.
11342 * search.c (get_first_matching_virtual): Rename to
11343 get_matching_virtual. General cleanup and remove setting of
11344 DECL_CONTEXT. That is now done in a cleaner way in
11345 modify_vtable_entry and add_virtual_function.
11346 * search.c (expand_vbase_vtables_init): Rename to
11347 expand_indirect_vtbls_init. General cleanup. Use
11348 expand_direct_vtbls_init to do hard work. Ensures that _all_ vtable
11349 pointers from virtual bases are set up.
11350 * search.c (bfs_unmark_finished_struct, unmark_finished_struct):
11351 Removed.
11352
11353 * *.[chy]: Remove support for VTABLE_USES_MASK.
11354
d11ad92e 11355Tue Apr 19 12:51:59 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
11356
11357 * cvt.c (convert_to_reference): Use NOP_EXPRs to switch between
11358 reference and pointer types instead of bashing the types directly.
11359
11360 * call.c (build_overload_call_real): Use the TREE_CODE to determine
11361 whether the function is overloaded or not, rather than
11362 TREE_OVERLOADED.
11363 * *: Remove all uses of TREE_OVERLOADED.
11364
11365 * decl.c (grokdeclarator): Only complain about initializing const
11366 fields when -ansi or -pedantic.
11367
d11ad92e 11368Tue Apr 19 12:42:42 1994 Doug Evans <dje@canuck.cygnus.com>
7177d104
MS
11369
11370 * cp-tree.h (THUNK_DELTA): frame_size is now a union.
11371
d11ad92e 11372Mon Apr 18 00:17:13 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
11373
11374 Do overloading on a block-by-block basis, not function-by-function.
11375 * decl.c: Lose overloads_to_forget.
11376 (struct binding_level): Add overloads_shadowed field.
11377 (poplevel): Restore overloads_shadowed.
11378 (push_overloaded_decl): Use overloads_shadowed instead of
11379 overloads_to_forget.
11380 (finish_function): Don't look at overloads_to_forget.
11381
11382 Copy enum_overflow logic from c-decl.c.
11383 * decl.c (start_enum): Initialize enum_overflow.
11384 (build_enumerator): Use enum_overflow. Also use current_scope().
11385
11386 * search.c (current_scope): Move Brendan's comment from
11387 build_enumerator here.
11388
11389 * typeck.c (convert_for_assignment): Change warnings to pedwarns for
11390 discarding const/volatile.
11391
d11ad92e 11392Sat Apr 16 01:18:21 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
11393
11394 * typeck.c (comp_target_parms): Accept TEMPLATE_TYPE_PARMs on the rhs.
d11ad92e 11395 (comp_target_types): Likewise.
7177d104
MS
11396
11397 * decl.c (lookup_name): Don't unset got_scope here.
11398
11399 * spew.c (yylex): Only replace yylval with the TYPE_NESTED_NAME if
11400 got_scope != NULL_TREE.
11401
d11ad92e 11402Fri Apr 15 16:36:33 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
11403
11404 Horrible kludge to prevent templates from being instantiated by
11405 their base classes.
11406 * parse.y (template_instantiate_once): Unset TYPE_BEING_DEFINED
11407 before we get to left_curly.
11408 * pt.c (instantiate_class_template): Set TYPE_BEING_DEFINED.
11409
11410 * error.c (dump_decl): If it's a typedef, print out the name of the
11411 decl, not just the underlying type.
11412
11413 * decl.c (pushdecl): If the old duplicate decl was a TYPE_DECL,
11414 update the IDENTIFIER_TYPE_VALUE of its name.
11415
11416 * decl2.c (finish_file): When processing the initializer for a
11417 static member, pretend that the dummy function is a member of the
11418 same class.
11419
d11ad92e 11420Fri Apr 15 15:56:35 1994 Kung Hsu <kung@mexican.cygnus.com>
7177d104 11421
63718c49
GB
11422 * class.c (build_vtable_entry): revert Apr 4 change.
11423 * decl2.c (mark_vtable_entries): replace pure virtual function
11424 decl with abort's.
7177d104 11425
d11ad92e 11426Fri Apr 15 13:49:33 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
11427
11428 * typeck.c (build_conditional_expr): Pedwarn on pointer/integer
11429 mismatch, and don't pedwarn on 0/function pointer mismatch.
11430
11431 * typeck2.c (digest_init): Lose code for special handling of unions.
11432 (process_init_constructor): Since they're handled just fine here.
11433 Pedwarn on excess elements.
11434
11435 * decl2.c (grokfield): Complain about local class method declaration
11436 without definition.
11437
d11ad92e 11438Fri Apr 15 13:19:40 1994 Per Bothner <bothner@kalessin.cygnus.com>
7177d104
MS
11439
11440 * method.c (emit_thunk): Add extern declaration for
11441 current_call_is_indirect (needed for hppa).
11442
d11ad92e 11443Thu Apr 14 16:12:31 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
11444
11445 Improve local class support; allow classes in different blocks to
11446 have the same name.
11447 * decl.c (pushtag): Support local classes better.
11448 (pushdecl_nonclass_level): New function for pushing mangled decls of
11449 nested types into the appropriate scope.
11450 (xref_defn_tag): Use pushdecl_nonclass_level instead of
11451 pushdecl_top_level.
11452 (grokfndecl): Don't mess with IDENTIFIER_GLOBAL_VALUE for local
11453 class methods.
d11ad92e 11454 * method.c (do_inline_function_hair): Likewise.
7177d104
MS
11455
11456 * class.c (finish_struct): It is legal for a class with no
11457 constructors to have nonstatic const and reference members.
11458
d11ad92e 11459Thu Apr 14 07:15:11 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
7177d104
MS
11460
11461 * decl.c (push_overloaded_decl): Avoid giving errors about
11462 built-ins, since duplicate_decls will have given warnings/errors
11463 for them.
11464
d11ad92e 11465Thu Apr 14 03:45:12 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
11466
11467 * cvt.c (convert_to_reference): Warn about casting pointer type to
11468 reference type when this is probably not what they wanted.
11469
d11ad92e 11470Wed Apr 13 13:12:35 1994 Per Bothner <bothner@kalessin.cygnus.com>
7177d104
MS
11471
11472 * decl.c (finish_decl): Don't mindlessly set TREE_USED for
11473 static consts any more (toplev.c has now been modified to
11474 not emit warnings if they are unused).
11475
d11ad92e 11476Wed Apr 13 00:22:35 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
11477
11478 * decl.c (grok_op_properties): If op new/delete get here with
11479 METHOD_TYPEs, do a revert_static_member_fn.
11480
11481 * cp-tree.h (IDENTIFIER_CLASS_TYPE_VALUE): Lose.
11482 * init.c (is_aggr_typedef): Don't look at
11483 IDENTIFIER_CLASS_TYPE_VALUE.
d11ad92e
MS
11484 (get_aggr_from_typedef): Likewise.
11485 (get_type_value): Likewise.
7177d104
MS
11486 * call.c (build_scoped_method_call): Don't rely on overloaded
11487 template names having IDENTIFIER_CLASS_VALUE set.
11488
11489 * parse.y (component_decl_1, fn.def2): Revert rules for
11490 constructors.
11491 (component_decl_1, fn.def2): Use $1 instead of $$, since $$ is being
11492 clobbered.
11493
11494 * decl.c (start_function): Only warn about `void main()' if pedantic
11495 || warn_return_type.
11496
d11ad92e 11497Tue Apr 12 02:14:17 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
11498
11499 Clean up overloading of the template name.
11500 * class.c (pushclass): overload the template name whenever pushing
11501 into the scope of a template class, not just if it is
11502 uninstantiated.
11503 (popclass): Correspondingly.
11504 * search.c (push_class_decls): Don't overload_template_name.
11505 * pt.c (overload_template_name): Don't set IDENTIFIER_LOCAL_VALUE or
11506 DECL_CONTEXT on things.
11507 * parse.y (left_curly): Don't overload_template_name.
11508 * class.c (finish_struct): Don't undo_template_name_overload.
11509
11510 * method.c (build_opfncall): Only pass one argument to global op
11511 delete.
11512
11513 * call.c (build_method_call): Use TYPE_VEC_DELETE_TAKES_SIZE to
11514 decide how many arguments to use for vec delete.
11515
11516 * decl.c (grok_op_properties): Be consistent in modifying
11517 current_class_type.
11518 (grokdeclarator): Only complain about function decls with no return
11519 type if we're being pedantic.
11520
d11ad92e 11521Mon Apr 11 00:10:53 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
11522
11523 Add support for operator new [] and operator delete [].
11524
11525 * tree.def: Add VEC_NEW_EXPR and VEC_DELETE_EXPR.
11526 * ptree.c (print_lang_type): Indicate vec new/delete.
11527 * parse.y: Support vec new/delete.
11528 * method.c (build_decl_overload): Deal with vec new/delete.
d11ad92e 11529 (build_opfncall): Likewise.
7177d104
MS
11530 * lex.c (init_lex): Set up values of ansi_opname and opname_tab for
11531 vec new/delete. vec new uses "__vn", and vec delete uses "__vd".
11532 * init.c (init_init_processing): Set up BIVN and BIVD.
11533 (do_friend): Don't clean up after mistaken setting of TREE_GETS_NEW,
11534 since it doesn't happen any more.
11535 (build_new): Support vec new. Always call something.
11536 (build_x_delete): Support vec delete.
11537 (build_vec_delete): Lose dtor_dummy argument, add use_global_delete,
11538 and pass it to build_x_delete.
11539 * decl2.c (delete_sanity): Don't change behavior by whether or not
11540 the type has a destructor. Pass use_global_delete to
11541 build_vec_delete.
11542 (coerce_delete_type): Make sure that the type returned has a first
11543 argument of ptr_type_node.
11544 * decl.c (init_decl_processing): Also declare the global vec
11545 new/delete.
11546 (grokdeclarator): Also force vec new/delete to be static.
11547 (grok_op_properties): Note presence of vec new/delete, and play with
11548 their args. If vec delete takes the optional size_t argument, set
11549 TYPE_VEC_DELETE_TAKES_SIZE.
11550 * cp-tree.h (TYPE_GETS_{REG,VEC}_DELETE): New macros to simplify
11551 checking for one delete or the other.
11552 (lang_type): gets_new and gets_delete are now two bits long. The
11553 low bit is for the non-array version. Lose gets_placed_new.
11554 (TYPE_VEC_DELETE_TAKES_SIZE): New macro indicating that the vec
11555 delete defined by this class wants to know how much space it is
11556 deleting.
11557 (TYPE_VEC_NEW_USES_COOKIE): New macro to indicate when vec new must
11558 add a header containing the number of elements in the vector; i.e.
11559 when the elements need to be destroyed or vec delete wants to know
11560 the size.
11561 * class.c (finish_struct_methods): Also check for overloading vec
11562 delete.
11563 * call.c (build_method_call): Also delete second argument for vec
11564 delete.
11565
11566 * decl.c (grokdeclarator): Correct complaints again.
11567 (grokdeclarator): Fix segfault on null declarator.
11568 (decls_match): Also accept redeclaration with no arguments if both
11569 declarations were in C context. Bash TREE_TYPE (newdecl) here.
11570 (duplicate_decls): Instead of here.
11571
11572 * parse.y (nested_name_specifier_1): Lose rules for dealing with
11573 syntax errors nicely, since they break parsing of 'const i;'.
11574
11575 * decl.c (lookup_name): if (got_scope == current_class_type)
11576 val = IDENTIFIER_CLASS_VALUE (name).
11577
11578 * search.c (lookup_nested_tag): Look in enclosing classes, too.
11579
11580 * spew.c (yylex): Only look one character ahead when checking for a
11581 SCOPE.
11582
11583 * lex.c (check_newline): Read first nonwhite char before
11584 incrementing lineno.
11585
11586 * decl.c (grokdeclarator): Don't claim that typedefs are variables
11587 in warning.
11588
11589 * parse.y: Divide up uses of unqualified_id into
11590 notype_unqualified_id and unqualified_id, so that TYPENAME can be
11591 used as an identifier after an object.
11592
11593 * class.c (push_nested_class): Don't push into non-class scope.
11594
11595 * decl.c (grokdeclarator): If an identifier could be a type
11596 conversion operator, but has no associated type, it's not a type
11597 conversion operator.
11598
11599 * pt.c (unify): Check for equality of constants better.
11600
11601 * decl.c (grokdeclarator): Don't complain about access decls.
11602
d11ad92e 11603Sun Apr 10 02:39:55 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
11604
11605 * decl.c (grokdeclarator): pedwarn about data definitions without
11606 types here.
11607
11608 * parse.y (datadef): Don't pedwarn about decls without types here,
11609 since that is valid for functions.
11610 (fn.def2, component_decl): Support constructors with declmods again.
11611 (nomods_initdecls): For decls without any mods, so that we don't try
11612 to get declspecs from some arbitrary $0.
11613
11614 * search.c (lookup_field): Use cp_error.
11615
11616 * parse.y (nested_name_specifier_1): Don't check aggr/non-aggr type
11617 here; it breaks destructors for non-aggr types.
11618
11619 * decl.c (lookup_name): Only look for TYPE_DECLs in base classes of
11620 a type being defined, like the comment says.
11621 If got_scope is not an aggregate, just return NULL_TREE.
11622
11623 * pt.c (create_nested_upt): Kung's code for creating types nested
11624 within uninstantiated templates now lives here (it used to live in
11625 hack_more_ids). It needs to be expanded.
11626
11627 * parse.y: Stop calling see_typename so much.
11628
11629 * decl.c (lookup_name): Deal with TTPs and UPTs.
11630
11631 * lex.c (real_yylex): Don't set looking_for_typename just because we
11632 saw a 'new'.
11633 (dont_see_typename): #if 0 out.
11634
11635 * spew.c (yylex): Increment looking_for_typename if the next
11636 character is SCOPE, rather than setting it to 1; this way, the value
11637 from seeing an aggr specifier will not be lost. This kinda relies
11638 on looking_for_typename never being < 0, which is now true.
11639
11640 * parse.y (nested_name_specifier_1): Accept TEMPLATE_TYPE_PARMs,
11641 too.
11642 (named_class_head_sans_basetype): Accept template types, too. Oops.
11643
d11ad92e 11644Fri Apr 8 16:39:35 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
11645
11646 * decl2.c (reparse_decl_as_expr1): Handle SCOPE_REFs.
11647
11648 * parse.y: Lose START_DECLARATOR.
11649
11650 * search.c (lookup_nested_tag): New function to scan CLASSTYPE_TAGS
11651 for a class.
11652
11653 * parse.y: Simplify fn.def2 and component_decl. Support 'enum
11654 A::foo' syntax. Catch invalid scopes better.
11655
11656 * parse.y, lex.c: lose TYPENAME_COLON.
11657
11658 * decl2.c (groktypefield): #if 0 out.
11659
11660 * decl.c (lookup_name): If the type denoted by got_scope is
11661 currently being defined, look in CLASSTYPE_TAGS rather than FIELDS.
11662
11663 * class.c (push_nested_class): Don't try to push into
11664 error_mark_node.
11665
d11ad92e 11666Fri Apr 8 07:26:36 1994 Brendan Kehoe <brendan@lisa.cygnus.com>
7177d104
MS
11667
11668 * Makefile.in (stamp-parse): Update count of conflicts to 33.
11669
d11ad92e 11670Thu Apr 7 17:47:53 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
11671
11672 A saner implementation of nested types that treats template types
11673 no differently from non-template types. There are still some
11674 shortcomings of our system; most notably, it is difficult to look
11675 for a nested type that is hidden by another name, because of the way
11676 we keep track of hidden types. But this shouldn't be a problem for
11677 just about anyone. Perhaps lookup_field should be fixed up a bit.
11678
11679 * spew.c: Moved handling of nested types/scoping from the lexer
11680 into the parser. Removed variable template_type_seen_before_scope.
11681 Removed functions frob_identifier, hack_more_ids, and various cruft
11682 that was #if 0'd out in the past, reducing the size of the file from
11683 1146 lines to 450 lines. We can't quite do away with spew.c yet,
11684 though; we still need it for do_aggr () and checking for SCOPE after
11685 the current identifier. And setting lastiddecl.
11686
11687 * parse.y: Moved handling of nested types/scoping from the lexer
11688 into the parser, using a new global variable `got_scope'. Reduced
11689 the number of states by 53. Implemented all uses of explicit global
11690 scope. Removed terminals SCOPED_TYPENAME and SCOPED_NAME. Removed
11691 nonterminals tmpl.1, scoped_base_class, id_scope, typename_scope,
11692 scoped_typename. Added nonterminals nested_type,
11693 qualified_type_name, complete_type_name, qualified_id, ptr_to_mem,
11694 nested_name_specifier, global_scope, overqualified_id, type_name.
11695 Changed many others. Added 9 new reduce/reduce conflicts, which are
11696 nested type parallels of 9 that were already in the grammar for
11697 non-nested types. Eight of the now 33 conflicts should be removed
11698 in the process of resolving the late binding between variable and
11699 function decls.
11700
11701 * gxxint.texi (Parser): Update.
11702
11703 * cp-tree.h (IS_AGGR_TYPE_CODE): Add UNINSTANTIATED_P_TYPE.
11704
11705 * lex.h: Add decl for got_scope.
11706
11707 * lex.c (see_typename): Claim to be the lexer when calling
11708 lookup_name.
11709
11710 * decl.c (lookup_name): When called from the lexer, look at
11711 got_scope and looking_at_typename; otherwise don't.
11712
6060a796 11713Thu Apr 7 22:05:47 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
11714
11715 31th Cygnus<->FSF merge.
11716
d11ad92e 11717Thu Apr 7 17:47:53 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
11718
11719 * decl2.c (mark_vtable_entries): Call this to mark all the
11720 entries in the vtable addressable.
11721 (finish_decl_parsing): Handle SCOPE_REFs.
11722
11723 * decl.c (decls_match): Always call compparms with strict == 1.
11724 Handle the special case of C function redecl here.
11725 (duplicate_decls): Only keep the old type if the new decl takes no
11726 arguments.
11727
11728 * typeck.c (compparms): Also allow t1 to be ... if strict == 0.
11729
6060a796 11730Thu Apr 7 16:17:50 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
11731
11732 * class.c (build_vtable_entry): Fix breakage introduced Apr 5
11733 17:48:41.
11734
d11ad92e 11735Wed Apr 6 16:05:10 1994 Per Bothner <bothner@kalessin.cygnus.com>
7177d104
MS
11736
11737 * init.c (build_virtual_init), search.c (build_vbase_vtables_init),
11738 ch-tree.h: Every place these functions were called, the result was
11739 immediately passed to expand_expr_stmt. Reduce redundancy by
11740 calling expand_expr_init *inside* these functions. These
11741 makes for a simpler interface, and we don't have to build
11742 compound expressions. Hence, rename these function to:
11743 expand_virtual_init and expand_vbase_vtables_init respectively.
11744 * init.c, decl.c: Change callers of these functions.
11745 * init.c, cp-tree.h (expand_virtual_init): Make static.
11746
11747 * decl2.c (finish_file): Check TREE_PUBLIC||TREE_ADDRESSABLE
11748 rather than DECL_SAVED_INSNS before emitting inlines.
11749
d11ad92e 11750Wed Apr 6 13:06:39 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
11751
11752 * spew.c (init_spew): #if 0 out stuff used by arbitrate_lookup.
11753
11754 * decl.c (duplicate_decls): If this is a new declaration of an
11755 extern "C" function, keep the type (for the argtypes).
11756 (redeclaration_error_message): Don't check DECL_LANGUAGE here.
11757 (decls_match): Call compparms with a value of strict dependent on
11758 the value of strict_prototypes for DECL_LANGUAGE (oldecl).
11759
11760 * typeck.c (compparms): ... is only equivalent to non-promoting
11761 parms if we're not being strict.
11762
11763 * parse.y (empty_parms): Don't check flag_ansi || pedantic here.
11764
11765 * decl.c (init_decl_processing): if (flag_ansi || pedantic)
11766 strict_prototypes_lang_c = strict_prototypes_lang_cplusplus;
11767
11768 * decl2.c (grok_function_init): Don't set DECL_INITIAL on pure
11769 virtuals.
11770
d11ad92e 11771Tue Apr 5 17:48:41 1994 Per Bothner <bothner@kalessin.cygnus.com>
7177d104
MS
11772
11773 Support for implementing vtables with thunks.
11774 * tree.def (THUNK_DECL): New TREE_CODE.
11775 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY), tree.c
11776 (fnaddr_from_vtable_entry): Handle flag_vtable_thunks case.
11777 * cp-tree.h (memptr_type): New variable.
11778 * class.c (build_vtable_entry): Build thunk if necessary.
11779 * class.c (build_vfn_ref): If using thunks, don't need
11780 to add delta field from vtable (there is none!).
11781 * decl.c: Add memptr_type as well as vtable_entry_type.
11782 If using thunks, the latter is just ptr_type_node.
11783 * gc.c, typeck.c: Use memptr_typeChange, not vtable_entry_type.
11784 * decl2.c (finish_vtable_vardecl): Handle thunks.
11785 * expr.c (cplus_expand_expr): Support THUNK_DECL.
11786
11787 * decl.c (grokdeclarator): Set DECL_THIS_EXTERN if "extern".
11788 * decl.c (start_function): Set current_extern_inline based on
11789 DECL_THIS_EXTERN, not TREE_PUBLIC.
11790 * decl.c (finish_function): Call mark_inline_for_output if needed,
11791
11792 Improve intelligence about when to emit inlines.
11793 * cp-tree.h (lang_decl_flags): New field saved_inline.
11794 * cp-tree.h (DECL_SAVED_INLINE): New macro.
11795 * class.c (add_virtual_function): Don't set TREE_ADDRESSABLE.
11796 * decl.h, decl.c (pending_addressable_inlines): Removed.
11797 * decl2.c (pending_addressable_inlines): Renamed to saved_inlines.
11798 * decl2.c (mark_inline_for_output): Do nothing if
11799 DECL_SAVED_INLINE; otherwise set it (and add to saved_inlines list).
11800 * decl2.c (finish_vtable_vardecl): SET_CLASSTYPE_INTERFACE_KNOWN
11801 and set CLASSTYPE_INTERFACE_ONLY if there is a non-inline virtual.
11802 * decl2.c (finish_file): Writing out inlines later, so we can
11803 also handle the ones needed for vtbales.
11804 * decl2.c (write_vtable_entries, finish_vtable_typedecl): Removed.
11805
11806 * cp-tree.h, class.c, decl2.c, search.c: Remove -fvtable-hack
11807 and flag_vtable_hack. Use -fvtable-thunks and flag_vtable_thunks
11808 instead. (The rationale is that these optimizations both break binary
11809 compatibility, but should become the default in a future release.)
11810
6060a796 11811Wed Apr 6 10:53:56 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
11812
11813 * class.c (modify_vtable_entries): Never reset the DECL_CONTEXT
11814 of a fndecl, as we might not be from that vfield.
11815
d11ad92e 11816Tue Apr 5 17:43:35 1994 Kung Hsu <kung@mexican.cygnus.com>
7177d104
MS
11817
11818 * class.c (add_virtual_function): fix bug for pure virtual, so
11819 that DECL_VINDEX of the dummy decl copied won't be error.
11820 (see also Apr 4 change)
11821
d11ad92e 11822Tue Apr 5 17:23:45 1994 Per Bothner <bothner@kalessin.cygnus.com>
7177d104
MS
11823
11824 * typeck.c (c_expand_return): Before checking that we're not
11825 returning the address of a local, make sure it's a VAR_DECL.
11826 (And don't worry about it being a TREE_LIST.)
11827
d11ad92e 11828Tue Apr 5 13:26:42 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
11829
11830 * parse.y (YYDEBUG): Always define.
d11ad92e 11831 * lex.c (YYDEBUG): Likewise.
7177d104 11832
d11ad92e 11833Mon Apr 4 11:28:17 1994 Kung Hsu <kung@mexican.cygnus.com>
7177d104
MS
11834
11835 * class.c (finish_struct): backup out the change below, put the
11836 new change for the same purpose. The change below breaks code.
11837
11838 * class.c (finish_struct): if pure virtual, copy node and make
11839 RTL point to abort, then put in virtual table.
11840 * decl2.c (grok_function_iit): reinstate Mar 31 change.
11841
d11ad92e 11842Sat Apr 2 03:12:58 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
11843
11844 * init.c (build_new): pedwarn about newing const and volatile
11845 types.
11846
11847 * tree.c (get_identifier_list): Only do the special handling
11848 thing if we're dealing with the main variant of the record type.
11849
11850 * cvt.c (convert_to_reference): When converting between
11851 compatible reference types, use the pointer conversion machinery.
11852 Don't just blindly overwrite the old type.
11853
d11ad92e 11854Fri Apr 1 17:14:42 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
11855
11856 * call.c (build_method_call): When looking at global functions,
11857 be sure to use instance_ptr for the first argument, not some version
11858 of it that has been cast to a base class. Also do this before
11859 comparing candidates.
11860
d11ad92e 11861Thu Mar 31 19:50:35 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
11862
11863 * call.c (build_method_call): Constructors can be called for
11864 const objects.
11865
d11ad92e 11866Thu Mar 31 16:20:16 1994 Kung Hsu <kung@mexican.cygnus.com>
7177d104
MS
11867
11868 * decl2.c (grok_func_init): do not abort as rtl for pur virtual
11869 fucntions. They can be defined somewhere else.
11870
11871Sat Jan 23 23:23:26 1994 Stephen R. van den Berg (berg@pool.informatik.rwth-aachen.de)
11872
11873 * decl.c (init_decl_processing): Declare __builtin_return_address
11874 and __builtin_frame_address for C++ as well.
11875
6060a796 11876Thu Mar 31 12:35:49 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
11877
11878 * typeck2.c (store_init_value): Integral constant variables are
11879 always constant, even when doing -fpic.
11880
11881Sat Jan 23 23:23:26 1994 Stephen R. van den Berg (berg@pool.informatik.rwth-aachen.de)
11882
11883 * decl.c (redeclaration_error_message): Pass the types to
11884 comptypes.
11885
6060a796 11886Wed Mar 30 21:29:25 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
11887
11888 Cures incorrect errors about pure virtuals in a class, when they
11889 have been overridden in a derived class.
11890
11891 * search.c (get_abstract_virtuals): Reimplement.
11892 * search.c (get_abstract_virtuals_1): New routine.
11893
d11ad92e 11894Wed Mar 30 14:10:04 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
11895
11896 * pt.c (push_template_decls): Make the pushed level pseudo
11897 global.
11898
11899 * parse.y (extdefs): Don't pop everything if the current binding
11900 level is pseudo_global.
11901
11902 * decl.c (pop_everything): Stop on reaching a pseudo-global
11903 binding level.
11904
11905 * cp-tree.h (DECL_FUNCTION_MEMBER_P): Change to more reliable test.
11906
11907 * decl.c (duplicate_decls): Only copy DECL_SOURCE_{FILE_LINE} if
11908 the old decl actually had an initializer.
11909
11910 * {various}: Clean up gcc -W complaints.
11911
11912 * cp-tree.h (DECL_FUNCTION_MEMBER_P): Currently defined to be
11913 (DECL_CONTEXT (NODE) != NULL_TREE).
11914
11915 * parse.y (lang_extdef): Call pop_everything if necessary.
11916
11917 * decl.c (pop_everything): New function for popping binding
11918 levels left over after a syntax error.
11919 (pushdecl): Use DECL_FUNCTION_MEMBER_P to decide whether or not
11920 a function is a member.
11921
6060a796 11922Wed Mar 30 14:20:50 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
11923
11924 Cures calling a more base base class function, when a more derived
11925 base class member should be called in some MI situations.
11926
11927 * search.c (make_binfo): Use more the more specialized base
63718c49
GB
11928 binfos from the binfo given as the second argument to make_binfo,
11929 instead of the unspecialized ones from the TYPE_BINFO.
d11ad92e
MS
11930 * class.c (finish_base_struct): Likewise, update callers.
11931 * search.c (dfs_get_vbase_types): Likewise.
11932 * tree.c (propagate_binfo_offsets, layout_vbasetypes): Likewise.
7177d104 11933 * decl.c (xref_tag): Use NULL_TREE instead of 0.
d11ad92e 11934 * lex.c (make_lang_type): Likewise.
7177d104 11935
d11ad92e 11936Wed Mar 30 14:10:04 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
11937
11938 * decl.c (pushdecl): If pushing a C-linkage function, only do a
11939 push_overloaded_decl.
11940 (duplicate_decls): Standard overloading does not shadow built-ins.
11941
d11ad92e 11942Tue Mar 29 00:54:18 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
11943
11944 * pt.c (end_template_decl): Don't call push_overloaded_decl.
11945
11946 * init.c (do_friend): Don't call push_overloaded_decl.
11947
11948 * decl.c (pushdecl): Call push_overloaded_decl for functions and
11949 function templates.
11950 (duplicate_decls): functions and function templates are not
11951 duplicates, but don't complain about calling this function to
11952 compare them.
11953 (push_overloaded_decl): Don't deal with linkage. Call
11954 duplicate_decls.
11955 (redeclaration_error_message): Deal with linkage.
11956
11957 * decl.c (start_function): If push_overloaded_decl returns an
11958 older version of the function, deal with it.
11959
11960 * decl.c (start_function): Be sure only to push_overloaded_decl
11961 for non-members.
11962
11963 * decl.c (grokfndecl): Put back clearing of DECL_CHAIN for
11964 methods.
11965 (start_function): Lose broken and redundant code for checking old
11966 decl.
11967
11968 * init.c (add_friend): Give line numbers of both friend decls
11969 when warning about re-friending.
11970
11971 * pt.c (tsubst): Use comptypes rather than == to compare the
11972 types of the method as declared and as defined, since default
11973 parameters may be different.
11974
11975 * call.c (build_method_call): Use brendan's candidate printing
11976 routine.
11977
11978 * decl.c (start_method): Methods defined in the class body are
11979 inline whether or not it's a template class.
11980
d11ad92e 11981Mon Mar 28 16:39:26 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
11982
11983 * parse.y (initdcl0): Add "extern" to current_declspecs if
11984 have_extern_spec && ! used_extern_spcec.
11985
11986 * tree.c (really_overloaded_fn): A fn with more than one
11987 overload.
11988
11989 * pt.c (end_template_decl): Use really_overloaded_fn.
11990
11991 * decl.c (duplicate_decls): When smashing a decl into a previous
11992 definition, keep the old file and line.
11993 Don't deal with overloaded functions.
11994 Lose old code for checking arg types of functions.
11995 Check for overloaded C functions.
11996 (pushdecl): Deal with overloaded functions.
11997 (start_decl): Expect pushdecl to return an appropriate function decl.
d11ad92e 11998 (start_function): Likewise.
7177d104
MS
11999 (push_overloaded_decl): Don't check for overloaded C functions.
12000
12001 * *.c: Stop using DECL_OVERLOADED, it being archaic.
12002 TREE_OVERLOADED should probably go, too.
12003
d11ad92e 12004Mon Mar 28 14:00:45 1994 Ron Guilmette <rfg@netcom.com>
7177d104
MS
12005
12006 * typeck.c (comp_target_types): Call comp_target_parms with
12007 strict == 1.
12008
d11ad92e 12009Sun Mar 27 00:07:45 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12010
12011 * parse.y (empty_parms): Don't parse () as (...) in extern "C"
12012 sections if we're compiling with -ansi or -pedantic.
12013
12014 * decl.c (decls_match): Don't treat (int) and (int&) as matching.
12015
12016 * decl2.c (grokfield): Don't pedwarn twice about initializing
12017 field.
12018
12019 * decl.c (push_overloaded_decl): Warn about shadowing
12020 constructor.
12021 (redeclaration_error_message): Don't allow 'int a; int a;'
12022
12023 * cvt.c (build_up_reference): Only check for valid upcast if
12024 LOOKUP_PROTECT is set, not just any flag.
12025
d11ad92e 12026Fri Mar 25 01:22:31 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12027
12028 * lex.c (check_newline): When we see a #pragma implementation,
12029 also set it for the main input file.
12030
12031 * init.c (build_new): Convert array size argument to size_t.
12032
12033 * parse.y (primary): If we're doing a parenthesized type-id, call
12034 groktypename before passing it to build_new.
12035
12036 * call.c (build_method_call): Deal properly with const and
12037 volatile for instances of reference type.
12038
12039 * decl.c (store_return_init): Change 'if (pedantic) error' to 'if
12040 (pedantic) pedwarn'.
12041
12042 * decl.c (grokdeclarator): Don't complain about putting `static'
12043 and `inline' on template function decls.
12044
d11ad92e 12045Thu Mar 24 23:18:19 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12046
12047 * call.c (build_method_call): Preserve const & volatile on
12048 `this'.
12049
6060a796 12050Thu Mar 24 16:21:52 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12051
12052 * init.c (build_new, build_vec_delete): Use global new and delete
12053 for arrays.
d11ad92e 12054 * decl2.c (delete_sanity): Likewise.
7177d104 12055
d11ad92e 12056Thu Mar 24 02:10:46 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12057
12058 * cvt.c (convert_to_reference): If i is an lvalue,
12059 (int &)i -> *(int*)&i, as per 5.2.8p9 of the latest WP.
12060 (convert_force): Call convert_to_reference with LOOKUP_COMPLAIN.
12061
d11ad92e 12062Wed Mar 23 17:45:37 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12063
12064 * decl.c (duplicate_decls): Also propagate DECL_TEMPLATE_MEMBERS
12065 and DECL_TEMPLATE_INSTANTIATIONS.
12066
12067 * init.c (build_new): Handle array typedefs properly.
12068
6060a796 12069Wed Mar 23 18:23:33 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12070
12071 30th Cygnus<->FSF merge.
12072
6060a796 12073Wed Mar 23 00:46:24 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12074
12075 * class.c (modify_vtable_entries): Avoid running off the end of the
12076 virtuals list when processing a virtual destructor.
d11ad92e 12077 * class.c (get_vtable_entry): Likewise.
7177d104 12078
d11ad92e 12079Wed Mar 23 00:23:59 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12080
12081 * decl.c (duplicate_decls): If two template decls don't match,
12082 just return 0.
12083
d11ad92e 12084Tue Mar 22 23:49:41 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12085
12086 * typeck.c (convert_for_assignment): Don't pedwarn about
12087 converting function pointer to void *.
12088
6060a796 12089Tue Mar 22 22:23:19 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12090
12091 Major revamp of pointer to member functions. Cures major
12092 nonfunctionality when used in casts, and MI situations.
12093
12094 * cvt.c (convert_force): Update call site of build_ptrmemfunc.
d11ad92e
MS
12095 * typeck.c (convert_for_assignment): Likewise.
12096 * typeck2.c (digest_init): Likewise.
7177d104
MS
12097 * typeck2.c (process_init_constructor): Simplify by moving code into
12098 digest_init.
12099 * typeck2.c (digest_init): Do default_conversions on init value, if
12100 we are processing pointer to member functions.
12101 * class.c (get_vfield_offset): Now non-static. Convert bit offset
12102 into byte offset.
d11ad92e 12103 * cp-tree.h (get_vfield_offset): Likewise.
7177d104
MS
12104 * typeck.c (get_member_function_from_ptrfunc): Convert down to right
12105 instance, before fetching vtable pointer.
12106 * typeck.c (get_delta_difference): New routine.
12107 * typeck.c (build_ptrmemfunc): Revamp to handle casting better, also
12108 get vtable pointer out of right subobject.
12109
6060a796 12110Tue Mar 22 17:56:48 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12111
12112 * search.c (get_binfo): Return NULL instead of aborting, when
12113 passed a UNION_TYPE.
12114
d11ad92e 12115Tue Mar 22 12:44:54 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12116
12117 These patches implement handling of redefinition/redeclaration of
12118 templates.
12119
12120 * typeck.c (comptypes): Simplify. All TEMPLATE_TYPE_PARMs are
12121 considered compatible.
12122
12123 * parse.y (template_def): Pass defn argument to end_template_decl.
12124
12125 * pt.c (end_template_decl): Add defn argument. Check for
12126 redefinition. Simplify.
12127
12128 * error.c (OB_UNPUT): New macro, to remove mistakes.
12129 (aggr_variety): Subroutine of dump_aggr_type.
12130
12131 * decl.c (decls_match): Support templates.
12132 (duplicate_decls): No longer static. Don't try to lay out template
12133 decls.
12134 (pushdecl): Simplify.
12135
12136 * cp-tree.h (DECL_TEMPLATE_MEMBERS): Use DECL_SIZE instead of
12137 DECL_INITIAL.
12138
d11ad92e 12139Mon Mar 21 11:46:55 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12140
12141 * error.c (dump_decl): Support class template decls.
12142 (dump_type): Don't adorn template type parms.
12143
12144 * decl.c (duplicate_decls): Save DECL_TEMPLATE_INFO from old decl
12145 if it was a definition.
12146 (redeclaration_error_message): Do the cp_error thang, and reject
12147 redefinition of templates.
12148
d11ad92e 12149Mon Mar 21 19:36:06 1994 Per Bothner <bothner@kalessin.cygnus.com>
7177d104
MS
12150
12151 * decl.c (grokdeclarator): Set TREE_PUBLIC for METHOD_TYPE
12152 in FIELD context, when appropriate. Also,
12153 CLASSTYPE_INTERFACE_ONLY is irrelevant to setting TREE_PUBLIC.
12154 Also, simplify check for bogus return specifiers.
12155
d11ad92e 12156Mon Mar 21 11:46:55 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12157
12158 * parse.y (after_type_declarator1): Expand type_quals.
d11ad92e
MS
12159 (notype_declarator1): Likewise.
12160 (absdcl1): Likewise.
7177d104 12161
d11ad92e 12162Sat Mar 19 01:05:17 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12163
12164 * decl.c (grokdeclarator): Treat class-local typedefs like static
12165 members; i.e. 'typedef int f();' means that f is a function type,
12166 not a method type.
12167
12168 * parse.y (decl): Change direct_* back to *.
12169 (type_id): Change direct_abstract_declarator to absdcl.
12170 (direct_declarator, direct_initdecls, direct_initdcl0): Remove again.
12171
d11ad92e 12172Fri Mar 18 12:47:59 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12173
12174 These two patches fix crashes on instantiating a template inside a
12175 function with C linkage or containing labels.
12176
12177 * class.c (current_lang_stacksize): No longer static.
12178
12179 * decl.c (struct saved_scope): Add lang_base, lang_stack,
12180 lang_name, lang_stacksize, and named_labels.
12181 (push_to_top_level): Save them.
12182 (pop_from_top_level): Restore them.
12183
12184 * gxxint.texi (Parser): Update.
12185
12186 These two patches finish moving the task of expr/declarator
12187 ambiguity resolution from the lexer to the parser, and add one more
12188 r/r conflict. START_DECLARATOR can now be nuked.
12189
12190 * parse.y (decl): Add "direct_" in typespec X rules.
12191 (direct_declarator): New nonterminal for
12192 direct_after_type_declarator and direct_notype_declarator.
12193 (direct_initdecls): Like initdecls, but uses direct_initdcl0.
12194 (direct_initdcl0): Like initdcl0, but uses direct_declarator.
12195 (named_parm): Add typespec direct_declarator rule.
12196
12197 * spew.c (yylex): #if 0 out START_DECLARATOR insertion.
12198
12199 These two patches disable some excessive cleverness on the part of
12200 g++; a non-class declaration always hides a class declaration in the
12201 same scope, and g++ was trying to unhide it depending on the
12202 enclosing expression.
12203
12204 * spew.c (arbitrate_lookup): #if 0 out.
12205
12206 * decl.c (lookup_name): Never call arbitrate_lookup.
12207
12208 * parse.y (complex_notype_declarator1): Add '*'
12209 complex_notype_declarator1 and '&' complex_notype_declarator1 rules.
12210
12211 * parse.y (complex_direct_notype_declarator): Restore id_scope
12212 see_typename TYPENAME rule, remove all other rules beginning with
12213 those tokens.
12214 (notype_unqualified_id): Add '~' see_typename IDENTIFIER rule.
12215
d11ad92e 12216Thu Mar 17 17:30:01 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12217
12218 These changes fix the compiler's handling of the functional cast/
12219 object declaration ambiguities in section 6.8 of the ARM. They also
12220 add 11 reduce/reduce conflicts. Sigh.
12221
12222 * parse.y: Add precedence decls for OPERATOR and '~'.
12223 (notype_unqualified_id): New nonterminal, encompasses all of the
12224 ANSI unqualified-id nonterminal except TYPENAMEs.
12225 (expr_or_declarator): New nonterminal to delay parsing of code like
12226 `int (*a)'.
12227 (primary): Use notype_unqualified_id.
12228 (decl): Add typespec initdecls ';' and typespec declarator ';'
12229 rules.
12230 (initdcl0): Deal with the above.
12231 (complex_notype_declarator1): A notype_declarator that is not also
12232 an expr_or_declarator.
12233 (complex_direct_notype_declarator): A direct_notype_declarator that
12234 doesn't conflict with expr_or_declarator. Use
12235 notype_unqualified_id. Remove id_scope see_typename TYPENAME rule.
12236 (functional_cast): New nonterminal, for the three functional cast
12237 rules. So that they can be moved after
12238 complex_direct_notype_declarator.
12239 (see_typename): Don't accept type_quals any more.
12240
12241 * decl2.c (reparse_decl_as_expr): New function to deal with parse
12242 nodes for code like `int (*a)++;'.
12243 (reparse_decl_as_expr1): Recursive subroutine of the above.
12244 (finish_decl_parsing): New function to deal with parse nodes for
12245 code like `int (*a);'. See the difference?
12246
6060a796 12247Thu Mar 17 12:16:10 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12248
12249 These changes break binary compatibility in code with classes
12250 that use virtual bases.
12251
12252 * search.c (dfs_get_vbase_types): Simplify and correct to make
12253 sure virtual bases are initialized in dfs ordering.
12254 * search.c (get_vbase_types): Simplify and make readable.
12255
d11ad92e 12256Thu Mar 17 12:01:10 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12257
12258 * parse.y: s/ typename / type_id /g
12259
d11ad92e 12260Wed Mar 16 17:42:52 1994 Kung Hsu <kung@mexican.cygnus.com>
7177d104
MS
12261
12262 * parse.y (typespec): add SCOPE TYPENAME for global scoped
12263 type. e.g. ::B x.
12264
12265 * decl.c (complete_array_type): fix a bug that in -pendantic
12266 mode even there's no initializer, it will continue to build
12267 default index.
12268
d11ad92e 12269Wed Mar 16 17:43:07 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12270
12271 * parse.y (direct_notype_declarator): Add PTYPENAME rule, remove
12272 all of the scoped PTYPENAME rules.
12273
6060a796 12274Wed Mar 16 16:39:02 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12275
12276 * init.c (build_offset_ref): The value of A::typedef_name is
12277 always the TYPE_DECL, and never an error.
12278
d11ad92e 12279Tue Mar 15 20:02:35 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12280
12281 * search.c (get_base_distance_recursive): Two binfos can only
12282 represent the same object if they are both via_virtual.
12283
12284 * class.c (finish_base_struct): Check vbases for ambiguity, too.
12285
12286 * search.c (get_vbase_types): Accept binfo argument, too.
12287
d11ad92e 12288Tue Mar 15 19:22:05 1994 Kung Hsu <kung@mexican.cygnus.com>
7177d104
MS
12289
12290 * decl.c (complete_array_type): complete TYPE_DOMAIN of the
12291 initializer also, because back-end requires it.
12292
d11ad92e 12293Tue Mar 15 15:33:31 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12294
12295 * error.c (dump_expr): Support member functions (which show up as
12296 OFFSET_REFs).
12297
6060a796 12298Mon Mar 14 16:24:36 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12299
12300 * init.c (build_new): Set the return type of multidimensional
12301 news correctly.
12302
d11ad92e 12303Fri Mar 11 15:35:39 1994 Kung Hsu <kung@mexican.cygnus.com>
7177d104
MS
12304
12305 * call.c (build_method_call): if basetype not equal to type
12306 of the instance, use the type of the instance in building
12307 destructor.
12308
d11ad92e 12309Thu Mar 10 17:07:10 1994 Kung Hsu <kung@mexican.cygnus.com>
7177d104
MS
12310
12311 * parse.y (direct_notype_declarator): add push_nested_type for
12312 'template_type SCOPED_NAME' rule.
12313
d11ad92e 12314Tue Mar 8 00:19:58 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12315
12316 * parse.y (parm): Add typed_declspec1 {absdcl, epsilon} rules.
12317
d11ad92e 12318Sat Mar 5 04:47:48 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12319
12320 * parse.y (regcast_or_absdcl): New nonterminal to implement late
12321 reduction of constructs like `int ((int)(int)(int))'.
12322 (cast_expr): Use it.
12323 (sub_cast_expr): Everything that can come after a cast.
12324 (typed_declspecs1): typed_declspecs that are not typed_typespecs.
12325 (direct_after_type_declarator): Lose PAREN_STAR_PAREN rule.
12326 (direct_abstract_declarator): Replace '(' parmlist ')' rule with
12327 '(' complex_parmlist ')' and regcast_or_absdcl.
12328 (parmlist): Split
12329 (complex_parmlist): Parmlists that are not also typenames.
12330 (parms_comma): Enabler.
12331 (named_parm): A parm that is not also a typename. Use declarator
12332 rather than dont_see_typename abs_or_notype_decl. Expand
12333 typed_declspecs inline.
12334 (abs_or_notype_decl): Lose.
12335 (dont_see_typename): Comment out.
12336 (bad_parm): Break out abs_or_notype_decl into two rules.
12337
d11ad92e 12338Fri Mar 4 18:22:39 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12339
12340 * decl2.c (reparse_decl_as_casts): New function to change parse
12341 nodes for `(int)(int)(int)' from "function taking int and returning
12342 function taking int and returning function taking int" to "... cast
12343 to int, cast to int, cast to int".
12344
12345 * decl2.c (reparse_decl_as_expr): Recursive function to change
12346 parse nodes for `A()()' from "function returning function returning
12347 A" to "A().operator()".
12348
12349 * parse.y (primary): Replace `typespec LEFT_RIGHT' rule with
12350 `typespec fcast_or_absdcl' rule.
12351 (fcast_or_absdcl): New nonterminal to implement late reduction of
12352 constructs like `A()()()()'.
12353 (typename): Replace `typespec absdcl1' rule with
12354 `typespec direct_abstract_declarator' rule.
12355 (direct_abstract_declarator): Replace `LEFT_RIGHT type_quals' rule
12356 with `fcast_or_absdcl type_quals' rule.
12357
6060a796 12358Fri Mar 4 16:18:03 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12359
12360 * tree.c (lvalue_p): Improve OFFSET_REF handling, so that it
12361 matches Section 5.5.
12362
d11ad92e 12363Fri Mar 4 14:01:59 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12364
12365 * error.c (dump_type_prefix): Don't print basetype twice for
12366 pmfs.
12367
6060a796 12368Fri Mar 4 13:24:33 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12369
12370 * typeck.c (convert_arguments): Handle setHandler(A::handlerFn)
12371 so that it is like setHandler(&A::handlerFn). Cures an `invalid
12372 lvalue in unary `&''.
12373
d11ad92e 12374Fri Mar 4 11:15:59 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12375
12376 * gxxint.texi (Copying Objects): New section discussing default
12377 op= problems with virtual inheritance.
12378
12379 * decl2.c (grokoptypename): Just does grokdeclarator and
12380 build_typename_overload, since the parser can't call grokdeclarator
12381 directly.
12382
12383 * method.c (build_typename_overload): Set IDENTIFIER_GLOBAL_VALUE
12384 and TREE_TYPE on generated identifiers.
12385
12386 * decl.c (grokdeclarator): Don't deal with TYPE_EXPRs anymore.
12387
12388 * parse.y (parm): Convert `const char *' to `__opPCc' here.
12389
12390 * error.c (dump_decl): Say sorry rather than my_friendly_aborting
12391 if we can't figure out what to do.
d11ad92e 12392 (dump_type*): Likewise.
7177d104
MS
12393
12394 * typeck2.c (build_m_component_ref): 'component' is an expr, not
12395 a decl. Also move the IS_AGGR_TYPE check after the stripping of
12396 REFERENCE_TYPE.
12397
6060a796 12398Fri Mar 4 04:46:05 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12399
12400 * call.c (build_method_call): Handle b->setHandler(A::handlerFn)
12401 so that it is like b->setHandler(&A::handlerFn). Cures an `invalid
12402 lvalue in unary `&''.
12403
d11ad92e 12404Thu Mar 3 12:38:15 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12405
12406 * parse.y: Add precedence specification for START_DECLARATOR.
12407 (type_quals): Move before primary.
12408 (typename): Move before typed_declspecs, add 'typespec absdcl1' rule.
12409
12410 * decl2.c (grokoptypename): Lose.
12411
12412 * decl.c (grokdeclarator): Parse TYPE_EXPRs in the initial scan,
12413 rather than waiting until later.
12414
d11ad92e 12415Wed Mar 2 14:12:23 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12416
12417 * parse.y (unary_expr): Use 'typename' in 'new' rules, rather
12418 than expanding it inline.
12419 (typename): Expand empty option of (former) absdcl inline.
d11ad92e 12420 (abs_or_notype_decl): Likewise.
7177d104
MS
12421 (absdcl): Lose empty rule.
12422 (conversion_declarator): New nonterminal for 'typename' of 'operator
12423 typename'.
12424 (operator_name): Use it instead of absdcl.
12425
12426 * parse.y: Add precedence declarations for SCOPED_TYPENAME,
12427 TYPEOF, and SIGOF.
12428 (typed_declspecs): Accept typed_typespecs, rather than typespec
12429 directly. Add rules with reserved_typespecquals.
12430 (reserved_declspecs): Don't accept typespecqual_reserved at the
12431 beginning of the list. The typed_declspecs rule will deal with this
12432 omission.
12433 (declmods): Accept nonempty_type_quals, rather than TYPE_QUAL
12434 directly.
12435
12436 * parse.y (direct_notype_declarator,
12437 direct_after_type_declarator, direct_abstract_declarator): Split up
12438 the declarator1 nonterminals to match the draft standard and avoid
12439 ambiguities.
12440 (new_type_id, new_declarator, direct_new_declarator,
12441 new_member_declarator): New nonterminals to implement the subset of
12442 'typename' allowed in new expressions.
12443 (unary_expr): Use new_type_id instead of typename.
12444 (after_type_declarator1, absdcl1): Fix semantics of member pointers.
12445 (abs_member_declarator, after_type_member_declarator): Lose.
12446
12447 * parse.y (absdcl1): Don't require parens around
12448 abs_member_declarator.
12449 (abs_member_declarator): Lose see_typename from rules.
d11ad92e 12450 (after_type_member_declarator): Likewise.
7177d104
MS
12451
12452 * tree.c (get_identifier_list): New function, containing code
12453 previously duplicated in get_decl_list and list_hash_lookup_or_cons.
12454 (get_decl_list): Use it.
d11ad92e 12455 (list_hash_lookup_or_cons): Likewise.
7177d104
MS
12456
12457 * parse.y (typed_declspecs, declmods): It's not necessary to hash
12458 the declspecs on class_obstack, so don't. This way typed_typespecs
12459 can reduce to typed_declspecs.
12460
d11ad92e 12461Wed Mar 2 14:29:18 1994 Jason Merrill <jason@cygnus.com>
7177d104
MS
12462
12463 * cvt.c (build_up_reference): If we aren't checking visibility,
12464 also allow base->derived conversions.
12465
d11ad92e 12466Mon Feb 28 15:14:29 1994 Per Bothner <bothner@kalessin.cygnus.com>
7177d104
MS
12467
12468 * typeck.c (build_c_cast): Remove bogus hack when converting
12469 to a reference type.
12470
12471 * cp-tree.h (lang_decl::vbase_init_list, DECL_VBASE_INIT_LIST):
12472 Removed, not used.
12473 (lang_stype::methods, lang_decl::next_method): New fields.
12474 (CLASSTYPE_METHODS, DECL_NEXT_METHOD): New macros.
12475 * decl.c (duplicate_decls): Preserve DECL_NEXT_METHOD.
12476
12477 * cp-tree.h, decl2.c (flag_vtable_hack): New flag.
12478 * decl2.c (finish_vtable_vardecl): If flag_vtable_hack,
12479 and !CLASSTYPE_INTERFACE_KNOWN, try to use the presence of
12480 a non-inline virtual function to control emitting of vtables.
12481 * class.c (finish_struct): Build CLASSTYPE_METHODS list.
12482 * search.c (build_vbase_vtables_init): Don't assemble_external
12483 (yet) if flag_vtable_hack.
d11ad92e 12484 * class.c (build_vfn_ref): Likewise.
7177d104 12485
d11ad92e 12486Mon Feb 28 14:54:13 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12487
12488 * parse.y (component_decl): Don't include "typed_declspecs
12489 declarator ';'" speedup, since it breaks enums.
12490
d11ad92e 12491Fri Feb 25 15:43:44 1994 Per Bothner <bothner@kalessin.cygnus.com>
7177d104
MS
12492
12493 * class.c (finish_struct): Minor optimization for building
12494 fn_fields list.
12495
d11ad92e 12496Fri Feb 25 15:23:42 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12497
12498 * decl.c (start_function): Fix detection of function overloading.
12499
6060a796 12500Thu Feb 24 22:26:19 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12501
12502 * lex.c (check_newline): #pragma interface can take a string
12503 argument, just like #pragma implementation. #pragma implementation
12504 checks for garbage on the line, line #pragma interface does. Main
12505 input files do not auto implement like named files, #pragma
12506 implementation must be used explicitly.
12507
d11ad92e 12508Thu Feb 24 17:09:01 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12509
12510 * parse.y (components): Handle list of one again.
d11ad92e 12511 (notype_components): Likewise.
7177d104
MS
12512 (after_type_declarator1): Take maybe_raises out again.
12513
12514 * gxxint.texi (Parser): Document additional r/r conflict.
12515
d11ad92e 12516Wed Feb 23 14:42:55 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12517
12518 * gxxint.texi (Parser): Add node.
12519
12520 * Makefile.in (stamp-parse): Update expected conflict count.
12521
12522 * parse.y (various): Replace "declmods declarator" with "declmods
12523 notype_declarator". The comment saying that "declmods declarator ';'"
12524 corresponds to "int i;" was wrong; it corresponds to "const i;".
12525 (component_decl): Add "typed_declspecs declarator ';'" rule; this
12526 *does* correspond to "int i;". Change "declmods components" to
12527 "declmods notype_components".
12528 (components): Don't deal with a list of one anymore.
12529 (notype_components): New nonterminal, corresponds to notype_declarator.
12530 ({after_,no}type_component_decl{,0}): More new nonterminals.
12531 ({after_,no}type_declarator): Fold in START_DECLARATOR token.
12532 Eliminates four reduce/reduce conflicts.
12533
12534 (expr): Depend on nontrivial_exprlist instead of nonnull_exprlist.
12535 (nontrivial_exprlist): New nonterminal: A list of at least two
12536 expr_no_commas's.
12537 (nonnull_exprlist): Depend on nontrival_exprlist.
12538 Eliminates four reduce/reduce conflicts.
12539
12540 (named_class_head): Move intermediate code block into separate
12541 nonterminal so that we can stick %prec EMPTY on it.
12542
12543 Add more %prec EMPTY's to eliminate remaining shift/reduce
12544 conflicts.
12545
12546 (after_type_declarator): Add maybe_raises to fndecl rules.
12547 (after_type_declarator_no_typename): Remove.
12548 For correctness.
12549
12550 Document remaining reduce/reduce conflicts.
12551
d11ad92e 12552Tue Feb 22 12:10:32 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12553
12554 * search.c (get_base_distance): Only bash BINFO_INHERITANCE_CHAIN
12555 (TYPE_BINFO (type)) if we care about the path.
12556
12557 * tree.c (lvalue_p): A COND_EXPR is an lvalue if both of the
12558 options are.
12559
6060a796 12560Mon Feb 21 19:59:40 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12561
12562 * Makefile.in (mostlyclean): lex.c is a source file, don't
12563 remove.
12564
d11ad92e 12565Sat Feb 19 01:27:14 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12566
12567 * parse.y: Eliminate 20 shift/reduce conflicts.
12568
d11ad92e 12569Fri Feb 18 11:49:42 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12570
12571 * pt.c (type_unification): Add subr argument; if set, it means
12572 that we are calling ourselves recursively, so a partial match is OK.
12573 (unify): Support pointers to methods and functions.
12574 (tsubst): Support method pointers.
12575 * decl.c (build_ptrmemfunc_type): No longer static, so that
12576 tsubst can get at it.
12577
12578 * init.c (is_aggr_typedef): Pretend template type parms are
12579 aggregates.
12580 * decl2.c (build_push_scope): If cname refers to a template type
12581 parm, just grin and nod.
12582
12583 * call.c (build_overload_call_real): Pass subr argument to
12584 type_unification.
d11ad92e
MS
12585 * pt.c (do_function_instantiation): Likewise.
12586 * class.c (instantiate_type): Likewise.
7177d104
MS
12587
12588 * search.c (get_base_distance): If BINFO is a binfo, use it and
12589 don't mess with its BINFO_INHERITANCE_CHAIN.
12590
12591 * cvt.c (convert_to_reference): Fix temporary generation.
12592 If ambiguous, return error_mark_node.
12593
12594 * init.c (build_new): Put back some necessary code.
12595
d11ad92e 12596Thu Feb 17 15:39:47 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12597
12598 * init.c (build_new): Deal with array types properly.
12599
12600 * search.c (get_binfo): Become a shell for get_base_distance.
12601 (get_binfo_recursive): Lose.
12602 (get_base_distance_recursive): Find the path to the via_virtual base
12603 that provides the most access.
d11ad92e 12604 (get_base_distance): Likewise.
7177d104
MS
12605
12606 * parse.y (explicit_instantiation): Syntax is 'template class
12607 A<int>', not 'template A<int>'.
12608
12609 * typeck.c (convert_for_initialization): Remove bogus warning.
12610
12611 * parse.y (datadef): Revert patch of Oct 27.
12612
d11ad92e 12613Thu Feb 17 15:12:29 1994 Per Bothner <bothner@kalessin.cygnus.com>
7177d104
MS
12614
12615 * class.c (build_vfn_ref): Cast delta field to ptrdiff_type_node,
12616 rather than integer_type_node. Does wonders for the Alpha.
12617
d11ad92e 12618Thu Feb 17 13:36:21 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12619
12620 * decl.c (build_ptrmemfunc_type): Make sure that the pmf type
12621 goes onto the same obstack as its target type.
12622
d11ad92e 12623Wed Feb 16 00:34:46 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12624
12625 * cvt.c (convert_to_reference): If converting via constructor
12626 on local level, go back to build_cplus_new approach.
12627
12628 * tree.c (build_cplus_new): If with_cleanup_p, set cleanup slot
12629 to error_mark_node to prevent expand_expr from building a cleanup
12630 for this variable.
12631
12632 * lex.c (default_assign_ref_body): Return *this from the memcpy
12633 version, too.
12634
12635 * decl.c (grok_reference_init): Just return if called with
12636 error_mark_node, don't worry about initializing non-const reference
12637 with temporary.
12638
12639 * cvt.c (convert_to_reference): Do the right thing for
12640 non-aggregate reference conversions, pedwarn when generating a
12641 non-const reference to a temporary.
12642
12643 * class.c (finish_struct): TYPE_HAS_COMPLEX_{INIT,ASSIGN}_REF and
12644 TYPE_NEEDS_CONSTRUCTING all depend on TYPE_USES_VIRTUAL_BASECLASSES
12645 again.
12646
d11ad92e 12647Tue Feb 15 19:47:19 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12648
12649 * decl.c (grok_reference_init): Pawn off a lot of the work on
12650 convert_to_reference. Generally do the right thing.
12651
12652 * cvt.c (convert_to_reference): Conform to the initial comment;
12653 i.e. don't create temps if decl != error_mark_node. Handle
12654 cleanups better for temps that do get created. Don't pretend
12655 that we can use an 'A' to initialize a 'const double &' just by
12656 tacking on a NOP_EXPR. Support LOOKUP_SPECULATIVELY.
12657
12658 * call.c (build_method_call): Set TREE_HAS_CONSTRUCTOR on
12659 constructor calls.
12660
d11ad92e 12661Mon Feb 14 14:50:17 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12662
12663 * decl.c (grok_reference_init): Make a temporary for initializing
12664 const reference from constant expression.
12665
d11ad92e 12666Mon Feb 14 11:31:31 1994 Per Bothner <bothner@kalessin.cygnus.com>
7177d104
MS
12667
12668 * cp-tree.h, decl.c (set_identifier_local_value): Deleted function.
12669 * decl.c (pushdecl): Define decl in correct binding_level
12670 (which isn't always the inner_binding_level).
12671
12672 * cvt.c (build_up_reference): Don't ever call expand_aggr_init.
12673 It's ugly, and I don't think it's the right thing to do.
12674
12675 * cp-tree.h, class.c, decl.c, decl2.c, sp/search.c:
12676 Remove NEW_CLASS_SCOPING, assuming it is always 1.
12677 * decl.c (pop_decl_level): Removed; manually inlined.
12678
d11ad92e 12679Sun Feb 13 19:04:56 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12680
12681 * class.h (candidate): Add basetypes field.
12682
12683 * call.c (build_method_call): Do access checking after choosing a
12684 function, not before.
12685
12686 * Makefile.in (cvt.o, call.o, method.o): Depend on class.h.
12687 (mostlyclean): Remove ../cc1plus.
12688
d11ad92e 12689Fri Feb 11 11:52:26 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12690
12691 * class.c (finish_struct): Don't allow adjusting access to a field
12692 of a base class if a local field has the same name.
12693
12694 * error.c (dump_type_prefix): Output basetype for METHOD_TYPEs.
12695
d11ad92e 12696hu Jan 13 17:55:51 EST 1994 Gnanasekaran Swaminathan <gs4t@virginia.edu>
7177d104 12697
63718c49 12698 * cp-tree.h (DESTRUCTOR_NAME_P): do not confuse AUTO_TEMP names
7177d104
MS
12699 with destructor names when either NO_DOLLAR_IN_LABEL or
12700 NO_DOT_IN_LABEL are not defined.
12701
12702 Now `template <class T, T f(T&), const T*> class A {...}' works.
12703
12704 * pt.c (grok_template_type): substitute template parm types
12705 with actual types in complex type as well.
12706 (coerce_template_parms): update the grok_template_type ()
12707 function call.
12708
12709 * pt.c (tsubst): Traverse method list using DECL_CHAIN.
12710
12711 * decl.c (grok_op_properties): Allow operator++/-- to have
12712 default arguments.
12713
12714 * typeck2.c (store_init_value): Don't abort when called to
12715 initialize a type that needs constructing with a CONSTRUCTOR.
12716
12717 * init.c (expand_aggr_init_1, CONSTRUCTOR case): If
12718 store_init_value fails, build and expand an INIT_EXPR. If
12719 store_init_value succeeds, call expand_decl_init.
12720
6060a796 12721Fri Feb 11 02:49:23 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12722
12723 * class.c (build_vbase_path): Use complete_type_p instead of
12724 resolves_to_fixed_type_p to determine if the virtual bases are in
12725 their right place for the type of expr. Cures problem of thinking a
12726 virtual base class is one place, when it is in fact someplace else.
12727
6060a796 12728Fri Feb 11 00:26:46 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12729
12730 * init.c (resolve_offset_ref): Make sure we first convert to
12731 intermediate type, if given, when dealing with members off `this'.
12732 Solves an incorrrect `type `foo' is not a base type for type
12733 `multiple'' when it is infact, a base type.
12734
6060a796 12735Thu Feb 10 21:49:35 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12736
12737 * class.c (modify_other_vtable_entries): Use get_binfo, instead
12738 of binfo_value. Solves problem with compiler giving a `base class
12739 `B' ambiguous in binfo_value (compiler error)' on complex MI
12740 herarchies, when a virtual function is first defied in a virtual
12741 base class.
12742
6060a796 12743Thu Feb 10 17:19:32 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12744
12745 * class.c (build_vbase_path): Don't complain about ambiguous
12746 intermediate conversion when converting down to a virtual base
12747 class, even if they might seem to be ambiguous.
12748
d11ad92e 12749Thu Feb 10 12:18:26 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12750
12751 * typeck2.c (build_functional_cast): #if 0 out constructor
12752 inheritance code, improve error messages.
12753
12754 * class.c (finish_base_struct): Complain about base with only
12755 non-default constructors in derived class with no constructors.
12756
12757 * decl.c (grokdeclarator): Fix detection of virtual new/delete.
12758
6060a796 12759Wed Feb 9 22:02:32 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12760
12761 * search.c (build_mi_virtuals, add_mi_virtuals,
12762 report_ambiguous_mi_virtuals): Removed unneeded code.
d11ad92e 12763 * class.c (finish_struct_bits): Likewise.
7177d104 12764
d11ad92e 12765Wed Feb 9 11:27:17 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12766
12767 * pt.c (end_template_instantiation): Push decl before
12768 pop_from_top_level.
12769
12770 * typeck2.c (build_m_component_ref): Make sure datum is of
12771 aggregate type.
12772
12773 * init.c (get_type_value): New function, returns
12774 IDENTIFIER_TYPE_VALUE or IDENTIFIER_CLASS_TYPE_VALUE or NULL_TREE.
12775
12776 * call.c (build_method_call): Don't die on call to destructor for
12777 non-type.
12778
12779 * decl.c (grokdeclarator): Complain about virtual op new and op
12780 delete, make static virtuals unvirtual instead of unstatic.
12781
12782 * typeck.c (build_c_cast): Also call default_conversion on
12783 methods.
12784
12785 * decl.c (grokdeclarator): Don't complain about anonymous
12786 bitfields.
12787
12788 * parse.y (simple_stmt, for loops): Move the continue point after
12789 the cleanups.
12790
12791 * class.c (finish_struct): Fix setting of
12792 TYPE_HAS_COMPLEX_INIT_REF.
12793
d11ad92e 12794Tue Feb 8 13:21:40 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12795
12796 * init.c (build_new): Deal with `new double (1)'.
12797
12798 * class.c (finish_struct): TYPE_HAS_COMPLEX_*_REF are supersets of
12799 TYPE_HAS_REAL_*_REF, but TYPE_HAS_COMPLEX_INIT_REF is independent of
12800 TYPE_NEEDS_CONSTRUCTING.
12801
12802 * decl.c (duplicate_decls): Propagate access decls.
12803
12804 * typeck2.c (process_init_constructor): Accept empty_init_node
12805 for initializing unions.
12806
12807 * class.c, lex.c, cp-tree.h: Use
12808 TYPE_HAS_COMPLEX_ASSIGN_REF where TYPE_HAS_REAL_ASSIGN_REF was used
12809 before, use TYPE_HAS_COMPLEX_INIT_REF for TYPE_NEEDS_CONSTRUCTING in
12810 some places.
12811
12812 * decl.c (finish_decl): Don't complain about uninitialized const
12813 if it was initialized before.
12814
d11ad92e 12815Mon Feb 7 18:12:34 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12816
12817 * lex.c (default_assign_ref_body): Don't deal with vbases for
12818 now.
12819
12820 * decl.c (finish_decl): Fix reversed logic for objects and other
12821 things that need to be constructed but have no initializer.
12822
12823 * class.c (finish_struct): Don't set TYPE_HAS_* flags that are
12824 set by grok_op_properties or finish_decl.
12825
12826 * decl.c: Don't warn about extern redeclared inline unless
12827 -Wextern-inline is given.
d11ad92e
MS
12828 * decl2.c (lang_decode_option): Likewise.
12829 * cp-tree.h: Likewise.
7177d104 12830
d11ad92e 12831Mon Feb 7 17:29:24 1994 Per Bothner <bothner@kalessin.cygnus.com>
7177d104
MS
12832
12833 * decl.c (pushdecl_with_scope): Fix thinko. Add forward
12834 declaration.
12835
12836 * decl.c (pushdecl_with_scope): New function.
12837 * decl.c (pushdecl_top_level): Use new function.
12838 * decl.c (pushtag): Initialize newdecl.
12839 * decl.c (pushtag): Push new type decl into correct scope.
12840
d11ad92e 12841Mon Feb 7 14:42:03 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12842
12843 * call.c, cvt.c, init.c, search.c, cp-tree.h:
12844 Eradicate LOOKUP_PROTECTED_OK.
12845
d11ad92e 12846Mon Feb 7 13:57:19 1994 Per Bothner <bothner@kalessin.cygnus.com>
7177d104
MS
12847
12848 * decl.c (pushtag, xref_tag), cp-tree.h: Add extra parameter
12849 'globalize' to signify implicit declarations.
12850 * decl.c (globalize_nested_type, maybe_globalize_type): Removed.
12851 * decl.c (set_identifier_type_value_with_scope): New function.
12852 * decl.c (set_identifier_local_value): Simplify.
12853 * spew.c (yylex, do_addr): Modify to return a _DEFN if a
12854 forward declaration (followed by ';' and not preceded by 'friend').
12855 * class.c, decl.c, except.c, init.c, parse.y,
12856 pt.c, search.c: Add new argument to calls to xref_tag and
12857 pushtag.
12858
d11ad92e 12859Mon Feb 7 00:22:59 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12860
12861 * cp-tree.h (ACCESSIBLY_UNIQUELY_DERIVED_P): New macro, means what
12862 ACCESSIBLY_DERIVED_FROM_P meant before.
12863 (ACCESSIBLY_DERIVED_FROM_P): Now disregards ambiguity.
12864
12865 * cvt.c (build_up_reference): Call get_binfo with PROTECT == 1.
12866
12867 * search.c (get_base_distance_recursive): Members and friends of
12868 a class X can implicitly convert an X* to a pointer to a private or
12869 protected immediate base class of X.
d11ad92e 12870 (get_binfo_recursive): Likewise.
7177d104
MS
12871 (get_base_distance): Ignore ambiguity if PROTECT < 0.
12872 (get_binfo): Lose multiple values of PROTECT.
12873 (compute_access): Protected is OK if the start of the
12874 search is an accessible base class of current_class_type.
12875
12876 * method.c (build_opfncall): Do check access on operator new here.
12877
12878 * decl.c (finish_function): Don't check access on operator new
12879 here.
12880
d11ad92e 12881Sun Feb 6 14:06:58 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12882
12883 * decl.c (xref_tag): The base of a derived struct is NOT always
12884 public. Duh.
12885
12886 * pt.c (do_explicit_instantiation): New function, called from
12887 parser to do explicit function instantiation.
12888 (type_unification): Allow the args list to be terminated with
12889 void_list_node.
12890 (do_pending_expansions): Look at i->interface for non-member
12891 templates.
12892
12893 * parse.y (datadef): Move explicit_instantiation here.
12894 (structsp): From here.
12895 (datadef): Complain about `int;'.
12896
d11ad92e 12897Sun Feb 6 12:33:18 1994 Per Bothner <bothner@kalessin.cygnus.com>
7177d104
MS
12898
12899 * pt.c (end_template_instantiation), cp-tree.h: Remove unused
12900 second parameter, and simplify first from a TREE_LIST where
12901 we only care about its TREE_VALUE to just the value (an IDENTIFIER).
12902 * pt.c (instantiate_member_templates): Simplify argument list
12903 from a TREE_LIST to just an IDENTIFIER.
12904 * lex.c (yyprint): PRE_PARSED_CLASS_DECL is now just an IDENTIFIER.
12905 * parse.y (template_instantiate_once): Simplify accordingly.
12906 * decl.c (inner_binding_level): New. Use various places to
12907 simplify.
12908
d11ad92e 12909Sun Feb 6 02:49:37 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12910
12911 * typeck2.c (build_functional_cast): int() -> int(0).
12912
d11ad92e 12913Sat Feb 5 00:53:21 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12914
12915 * class.c (finish_struct): Don't do a bitwise copy for op= if the
12916 class has a virtual function table.
12917
12918 * typeck.c (convert_for_initialization): Restore warnings about
12919 not using defined op=. Should really be my_friendly_aborts, I
12920 s'pose.
12921
d11ad92e 12922Fri Feb 4 14:21:00 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12923
12924 * class.c (finish_struct): Tidy up conditions for doing bitwise
12925 copies of objects.
12926
12927 * decl.c (build_default_constructor): #if 0 out.
12928
12929 * *: Eradicate TYPE_GETS_{ASSIGNMENT,ASSIGN_REF,CONST_ASSIGN_REF,
12930 CONST_INIT_REF}, TYPE_HAS_REAL_CONSTRUCTOR.
12931
12932 * decl.c (grokdeclarator): Don't return void_type_node for
12933 friends being defined here.
12934
12935 * init.c (perform_member_init): Only do the init if it's useful.
12936
12937 * lex.c (default_copy_constructor_body): If we don't need to do
12938 memberwise init, just call __builtin_memcpy.
d11ad92e 12939 (default_assign_ref_body): Likewise.
7177d104
MS
12940
12941 * decl.c (grokdeclarator): If friendp && virtualp, friendp = 0.
12942
6060a796 12943Fri Feb 4 13:02:56 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
12944
12945 * lex.c (reinit_parse_for_method, cons_up_default_function):
12946 Don't give warn_if_unknown_interface warning when it came from a
12947 system header file.
d11ad92e
MS
12948 * pt.c (end_template_decl, instantiate_template): Likewise.
12949 * decl.c (start_decl): Likewise.
7177d104 12950
d11ad92e 12951Fri Feb 4 00:41:21 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12952
12953 * decl.c (grokdeclarator): Don't try to set TYPE_WAS_ANONYMOUS on
12954 enums.
12955
12956 * decl2.c (constructor_name_full): Use IS_AGGR_TYPE_CODE instead of
12957 IS_AGGR_TYPE, since we don't know it's a type.
12958
d11ad92e 12959Thu Feb 3 11:36:46 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
12960
12961 * decl.c (grokdeclarator): Don't complain about anonymous unions.
12962
12963 * cp-tree.h (TYPE_WAS_ANONYMOUS): This struct was originally
12964 anonymous, but had a name given to it by a typedef.
12965
12966 * decl.c (grokdeclarator): When renaming an anonymous struct, set
12967 TYPE_WAS_ANONYMOUS.
12968
12969 * decl2.c (constructor_name_full): Use TYPE_WAS_ANONYMOUS.
12970
12971 * cp-tree.h (DECL_UNDEFINED_FRIENDS): #if 0 out.
12972
12973 * init.c (xref_friend): Don't set up DECL_UNDEFINED_FRIENDS.
12974 (embrace_waiting_friends): Don't use DECL_UNDEFINED_FRIENDS.
12975
12976 * decl.c (grokdeclarator): Set TYPE_NESTED_NAME properly on nested
12977 anonymous structs that get typedef'd.
12978
12979 * decl.c (grokdeclarator): Always return void_type_node for
12980 friends.
12981
12982 * error.c (dump_function_decl): Don't use DECL_CLASS_CONTEXT for
12983 friends.
12984 (dump_function_decl): Don't print out default args for
12985 a function used in an expression.
12986
12987 * decl.c (grokdeclarator): Give error on abstract declarator used
12988 in an invalid context (i.e. `void (*)();').
12989
12990 * error.c (cp_line_of): Support _TYPE nodes.
d11ad92e 12991 (cp_file_of): Likewise.
7177d104
MS
12992
12993 * cvt.c (build_up_reference): Don't abort if passed a SAVE_EXPR;
12994 it can happen for the RHS of an assignment stmt where the LHS is
12995 a COND_EXPR.
12996
12997 * init.c (expand_aggr_init_1): Deal with bracketed initializer
12998 lists properly.
12999
13000 * class.c (finish_struct): Deal with enumerators and typedefs
13001 again.
13002
d11ad92e 13003Wed Feb 2 11:30:22 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13004
13005 * class.c (finish_struct): Tidy up loop over fields.
13006
13007 * errfn.c (cp_thing): Don't advance twice after a format.
13008
13009 * class.c (finish_struct): Complain about needing a constructor
13010 if a member has only non-default constructors, and don't try to
13011 generate a default constructor.
13012
13013 * decl.c (finish_decl): Also do the constructor thing if
13014 TYPE_NEEDS_CONSTRUCTING is set (for arrays).
13015
13016 * search.c (unuse_fields): New function: mark all fields in this
13017 type unused.
13018 (dfs_unuse_fields): Helper function.
13019
13020 * class.c (pushclass): If the new class is the same as the old
13021 class, still unuse the fields.
13022 (unuse_fields): Move to search.c.
13023
13024 * decl.c (grok_op_properties): Add friendp argument.
13025 (grokfndecl): Pass it.
d11ad92e 13026 (start_method): Likewise.
7177d104
MS
13027
13028 * decl2.c (delete_sanity): Add use_global_delete parameter to catch
13029 ::delete calls.
13030
13031 * parse.y (unary_expr): Pass new parameter to delete_sanity.
13032
13033 * lex.c (default_copy_constructor_body): Don't choke if the union
13034 has no fields.
d11ad92e 13035 (default_assign_ref_body): Likewise.
7177d104
MS
13036
13037 * call.c (compute_conversion_costs_ansi): Do the right thing for
13038 ellipsis matches.
13039
13040 * decl.c (push_to_top_level): Optimize.
13041
13042 * decl.c (start_function): Look for the lexical scope of a friend
13043 in DECL_CLASS_CONTEXT.
13044
13045 * init.c (do_friend): Set DECL_CLASS_CONTEXT on global friends.
13046
d11ad92e 13047Tue Feb 1 15:59:24 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13048
13049 * cp-tree.h (TREE_GETS_PLACED_NEW): New macro.
13050
13051 * init.c (init_init_processing): Don't assign BIN/BID to the
13052 IDENTIFIER_GLOBAL_VALUEs of their respective operators.
13053 (build_new): Check TREE_GETS_PLACED_NEW.
13054
13055 * decl.c (grok_op_properties): Don't set TREE_GETS_NEW for a decl of
13056 op new with placement, set TREE_GETS_PLACED_NEW.
13057
13058 * cp-tree.h (ANON_UNION_P): New macro. Applies to decls.
13059
13060 * class.c (finish_struct): Don't treat anonymous unions like
13061 other aggregate members. Do synthesize methods for unions without
13062 a name, since they may or may not be "anonymous unions".
13063
13064 * decl2.c (grok_x_components): Wipe out memory of synthesized methods
13065 in anonymous unions.
13066
13067 * lex.c (default_copy_constructor_body): Support unions.
d11ad92e 13068 (default_assign_ref_body): Likewise.
7177d104 13069
d11ad92e 13070Mon Jan 31 12:07:30 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13071
13072 * cp-tree.h: Fix documentation of LOOKUP_GLOBAL, add prototypes.
13073
13074 * error.c (args_as_string): New function (%A), like type_as_string
13075 except NULL_TREE -> "..."
13076
13077 * call.c (build_overload_call_real): Fix for new overloading.
13078
13079 * decl.c (grok_op_properties): Set all of the TYPE_OVERLOADS_* flags
13080 here.
13081
13082 * parse.y (operator_name): Instead of here.
13083
13084 * typeck2.c (build_functional_cast): Treat a TREE_LIST as a list
13085 of functions.
13086
13087 * call.c (build_overload_call_real): Support LOOKUP_SPECULATIVELY.
13088
13089 * method.c (build_opfncall): Don't need to massage return value
13090 any more, call build_overload_call with all flags.
13091
13092 * typeck.c (build_x_binary_op): Put back speculative call to
13093 build_opfncall.
d11ad92e
MS
13094 (build_x_unary_op): Likewise.
13095 (build_x_conditional_expr): Likewise.
7177d104 13096
6060a796 13097Mon Jan 31 10:00:30 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
13098
13099 * cvt.c (build_type_conversion_1): Change call to pedwarn into
13100 warning, and conditionalize upon warn_cast_qual.
13101
d11ad92e 13102Fri Jan 28 11:48:15 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13103
13104 * search.c (lookup_field): If xbasetype is a binfo, copy it to
13105 avoid clobbering its inheritance info.
13106
13107 * call.c (build_method_call): Don't overwrite basetype_path with
13108 TYPE_BINFO (inst_ptr_basetype) if they have the same type.
13109
13110 * search.c (compute_access): Fix handling of protected inheritance
13111 and friendship with the enclosing class.
13112
13113 * typeck2.c (store_init_value): Allow passing of TREE_CHAIN for
13114 initialization of arbitrary variable.
13115
13116 * typeck2.c (build_functional_cast): Only try calling a method if
13117 one exists.
13118
13119 * decl.c (grokdeclarator): Move handling of constructor syntax
13120 initialization into first loop for generality.
13121 (parmlist_is_random): Lose.
13122
13123 * lex.c (cons_up_default_function): Set TREE_PARMLIST on arguments
13124 to default function.
13125
d11ad92e 13126Thu Jan 27 19:26:51 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13127
13128 * decl.c (grokparms): Abort if we get called with something we don't
13129 expect.
13130
6060a796 13131Thu Jan 27 17:37:25 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
13132
13133 * call.c (build_overload_call_real): Change argument complain to
13134 flags to match style of rest of code. Pass it down to
13135 build_function_call_real as necessary.
13136 * call.c (build_overload_call, build_overload_call_maybe): Change
13137 argument complain to flags to match style of rest of code.
13138 * cp-tree.h (build_function_call_real): Added fourth flags
13139 argument.
13140 * cvt.c (convert_to_reference): Only give warning messages, if
13141 LOOKUP_COMPLAIN is set.
13142 * typeck.c (build_x_function_call): Change simple complain
13143 argument to build_overload_call_maybe and build_overload_call, to
13144 LOOKUP_COMPLAIN to match style of rest of code.
d11ad92e 13145 * typeck2.c (build_functional_cast): Likewise.
7177d104
MS
13146 * typeck.c (build_function_call_real): Add flags, so that we can
13147 not complain, if we don't want to complain. Complain about
13148 arguments, if we are complaining, otherwise don't.
13149 * typeck.c (build_function_call, build_function_call_maybe):
13150 Stick in flags argument.
13151 * typeck.c (build_x_binary_op, build_x_unary_op,
13152 build_x_conditional_expr, build_x_compound_expr): Follow style of
13153 build_x_indirect_ref, as it is more correct and more common.
13154
d11ad92e 13155Thu Jan 27 14:36:20 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13156
13157 * call.c (build_method_call): Don't check for being called with
13158 a pointer.
13159
13160 * decl2.c (finish_file): Don't play with DECL_CLASS_CONTEXT for the
13161 static initializer function.
13162
13163 * init.c (build_member_call): Use convert_force here, too.
13164
13165 * search.c (compute_access): Only treat static members specially
13166 if they are referenced directly.
13167
d11ad92e 13168Wed Jan 26 18:28:14 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13169
13170 * gxxint.texi (Access Control): New node.
13171
13172 * search.c (current_scope): New function; returns whichever of
13173 current_class_type and current_function_decl is the most nested.
13174 (compute_access): Total overhaul to make it clearer and more
13175 correct. Don't use the cache for now; in the only situation where
13176 it was used before, it gained nothing. This frees up three of the
13177 DECL_LANG_FLAGs for possible other use!
13178
13179 * cp-tree.h: #if 0 out DECL_PUBLIC & friends.
13180
13181 * typeck.c (build_component_ref_1): Don't check DECL_PUBLIC.
13182
13183 * call.c (build_method_call): Use convert_force to cast `this' --
13184 rely on the access checking for the method itself.
13185
13186 * init.c (is_friend): Do the nesting thing, handle types. I am
13187 my own friend.
13188 (is_friend_type): Become a shell for is_friend.
13189 (add_friend): Never stick in ctype.
13190 Why are the friendship functions in init.c, anyway?
13191
6060a796 13192Wed Jan 26 17:50:00 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
13193
13194 * cvt.c (build_type_conversion_1): Don't conditionalize call to
13195 pedwarn upon pedantic.
13196
6060a796 13197Wed Jan 26 17:20:46 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
13198
13199 * cvt.c (convert_to_reference): Add 8.4.3 checking so that one
13200 gets a warning if one tries to initialize a non-const & from a
13201 non-lvalue.
13202 * cvt.c (convert_to_reference): Use %P format for argument
13203 numbers in warnings.
13204
6060a796 13205Wed Jan 26 14:35:06 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
13206
13207 * init.c (build_delete): Follow style in call.c to construct the
13208 virtual call to the desctructor, as that code is right. Fixes a
13209 problem of the compiler saying a pointer conversion is ambiguous.
13210
d11ad92e 13211Wed Jan 26 11:28:14 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13212
13213 * cp-tree.h (VTABLE_NAME_P): Change other occurrence of
13214 VTABLE_NAME_FORMAT to VTABLE_NAME.
13215
13216 * *: s/visibility/access/g
13217
d11ad92e 13218Tue Jan 25 18:39:12 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13219
13220 * typeck.c (build_modify_expr): Don't smash references if INIT_EXPR.
13221
6060a796 13222Tue Jan 25 13:54:29 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
13223
13224 * init.c (build_delete): Back out Jan 17th & 18th pacthes, as
13225 they break libg++.
13226
d11ad92e 13227Tue Jan 25 13:11:45 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13228
13229 * decl.c (duplicate_decls): Fix pointer arithmetic.
13230
d11ad92e 13231Mon Jan 24 15:50:06 1994 Chip Salzenberg <chip@fin.uucp>
7177d104
MS
13232
13233 [ cp-* changes propagated from c-* changes in 940114 snapshot ]
13234 * cp-parse.y (maybe_attribute): Allow multiple __attribute__
13235 clauses on a declaration.
13236
d11ad92e 13237Mon Jan 24 17:06:23 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13238
13239 * class.c (finish_struct): Do synthesize methods for anon
13240 structs, just not unions.
13241
d11ad92e 13242Mon Jan 24 13:50:13 1994 Kung Hsu <kung@mexican.cygnus.com>
7177d104
MS
13243
13244 * decl.c (xref_tag): handle anonymous nested type.
13245 * decl.c (globalize_nested_type): add no globalize bit check.
13246 * spew.c (hack_more_ids) : templated nested decl not push top
13247 level.
13248
13249 * parse.y : get rid of 'goto do_components'. It is much better
13250 for debugging.
13251
13252 * decl.c (is_anon_name): get rid of the function and use the
13253 macro ANON_AGGRNAME_P.
13254 * pt.c : ditto.
13255
d11ad92e 13256Fri Jan 21 14:06:02 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13257
13258 * class.c (finish_struct): Don't synthesize any methods for
13259 anonymous structs/unions.
13260
13261 * typeck.c (build_modify_expr): Don't treat pmf's as class objects.
13262
d11ad92e 13263Thu Jan 20 18:56:46 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13264
13265 * method.c (build_opfncall): Call build_indirect_ref on
13266 synthesized instance for operator delete.
13267
13268 * pt.c (type_unification): Don't abort if called with a list of
13269 types in ARGS.
13270
13271 * class.c (instantiate_type): Deal with function templates.
13272
d11ad92e 13273Thu Jan 20 16:55:35 1994 Jim Wilson <wilson@sphagnum.cygnus.com>
7177d104
MS
13274
13275 * Makefile.in (CC): Default to cc not gcc.
13276
d11ad92e 13277Thu Jan 20 13:47:54 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13278
13279 * typeck.c (build_modify_expr): Call constructor if appropriate.
13280
13281 * decl.c (push_to_top_level): Clear out class-level bindings cache.
13282
d11ad92e 13283Wed Jan 19 13:51:22 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13284
13285 * call.c (resolve_scope_to_name): Work recursively (previously only
13286 looked down one level).
13287
13288 * lex.c (do_pending_inlines): If we're still dealing with the last
13289 batch of inlines, don't start working on a new one.
13290
13291 * Makefile.in (stamp-parse): Update conflict count.
13292 (TAGS): Fix.
13293
13294 * parse.y (explicit_instantiation): New rule; implements
13295 'template A<int>' syntax (though not 'template foo(int)' yet).
13296 (structsp): Add explicit_instantiation.
13297
d11ad92e 13298Tue Jan 18 13:53:05 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13299
13300 * class.c (finish_struct, etc.): Simplify decision to synthesize
13301 a destructor.
13302
13303 * call.c, class.c, cp-tree.h, decl.c, init.c,
13304 ptree.c, search.c, typeck.c, typeck2.c: Nuke
13305 TYPE_NEEDS_CONSTRUCTOR (change all calls to TYPE_NEEDS_CONSTRUCTING).
13306 * init.c (expand_aggr_init_1): Don't try non-constructor methods
13307 of initializing objects.
13308 (build_new): Don't try other methods if the constructor lookup fails.
13309
13310 * class.c (finish_base_struct): Set cant_have_default_ctor and
13311 cant_synth_copy_ctor properly.
d11ad92e 13312 (finish_struct): Likewise.
7177d104 13313
d11ad92e 13314Mon Jan 17 13:58:18 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13315
13316 * typeck.c (build_modify_expr_1): #if 0 out again.
13317 (build_modify_expr): #if 0 out memberwise init code again.
13318
13319 * lex.c (default_copy_constructor_body): Be const-correct.
d11ad92e 13320 (default_assign_ref_body): Likewise.
7177d104
MS
13321
13322 * init.c (perform_member_init): Use TYPE_HAS_CONSTRUCTOR to decide
13323 whether or not to use it, rather than TYPE_NEEDS_CONSTRUCTING.
13324 (expand_aggr_init): Disable silent conversion from initializer list
13325 to list of args for a constructor.
13326
13327 * class.c (base_info): Lose needs_default_ctor.
d11ad92e
MS
13328 (finish_base_struct): Likewise.
13329 (finish_struct): Likewise.
7177d104
MS
13330
13331 * decl.c (init_decl_processing): Don't turn off flag_default_inline
13332 just because flag_no_inline is on.
13333 (finish_decl): Use TYPE_HAS_CONSTRUCTOR to decide to use
13334 constructor.
13335
13336 * class.c (finish_struct): Synthesize default ctor whenever
13337 allowed.
13338
13339 * Makefile.in (TAGS): Don't try to run etags on cp-parse.y.
13340
6060a796 13341Sat Jan 15 18:34:33 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
13342
13343 * Makefile.in, configure: Handle the C++ front-end in a
13344 subdirectory.
13345 * cp-*: Move C++ front-end to cp/*.
13346
d11ad92e 13347Fri Jan 14 14:09:37 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13348
13349 * cp-typeck.c (build_function_call_real): Modify to match other
13350 instances of taking the address of the function.
13351
13352 * cp-class.c (finish_struct): Set TYPE_HAS_REAL_CONSTRUCTOR to 1 if
13353 there are non-synthesized constructors.
13354 Only set TYPE_NEEDS_CONSTRUCTOR if TYPE_HAS_REAL_CONSTRUCTOR.
13355 Always generate copy constructor if possible.
13356
13357 * cp-tree.h (lang_type): Add has_real_constructor bitfield.
13358 (TYPE_HAS_REAL_CONSTRUCTOR): Define.
13359
13360 * cp-lex.c (default_copy_constructor_body): Use init syntax
13361 for all bases.
13362
13363 * cp-type2.c (store_init_value): Only give error for initializer list
13364 if TYPE_HAS_REAL_CONSTRUCTOR.
13365
d11ad92e 13366Thu Jan 13 15:38:29 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13367
13368 * cp-tree.h (DECL_SYNTHESIZED): Add defn.
13369 (lang_decl): Add synthesized bitfield to decl_flags.
13370
13371 * cp-lex.c (cons_up_default_function): Use DECL_SYNTHESIZED to mark
13372 artificial methods, rather than a line # of 0.
13373
d11ad92e 13374Fri Jan 14 18:25:29 1994 Kung Hsu <kung@mexican.cygnus.com>
7177d104
MS
13375
13376 * cp-decl (xref_tag): fix a bug in conflict type.
13377 * cp-parse.y : add SCOPED_NAME for uninstantiated template nested
13378 type reference.
13379 * cp-spew.c (yylex) : generated SCOPED_NAME token.
13380 * cp-lex.c (yyprint): handle SCOPED_NAME.
13381
6060a796 13382Fri Jan 14 17:00:29 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
13383
13384 * cp-decl.c (pushdecl): Revert patch from Jan 11 19:33:03, as it is
13385 not right.
13386
d11ad92e 13387Thu Jan 13 14:00:35 1994 Kung Hsu <kung@mexican.cygnus.com>
7177d104
MS
13388
13389 * cp-decl2.c (grok_x_components): fix a bug that enum type does not
13390 have type_flags.
13391
6060a796 13392Thu Jan 13 11:39:34 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
13393
13394 Ensure that all vtable pointers are initialized with all the right
13395 values.
13396
13397 * cp-class.c (is_normal): Changed to reflect new meaning of
13398 CLASSTYPE_VFIELD_PARENT.
13399 * cp-class.c (maybe_fixup_vptrs): Use of
13400 CLASSTYPE_NEEDS_VIRTUAL_REINIT here is misguided. Use
13401 BINFO_MODIFIED instead.
13402 * cp-class.c (finish_struct): Changed to reflect new meaning of
13403 CLASSTYPE_VFIELD_PARENT.
13404 * cp-decl.c (get_binfo_from_vfield): Removed, unneeded now.
13405 * cp-decl.c (finish_function): Use init_vtbl_ptrs, instead of open
13406 coding it here.
13407 * cp-init.c (init_vfields): Changed name to init_vtbl_ptrs, and
13408 re-implement.
13409 * cp-init.c (emit_base_init): Use new name init_vtbl_ptrs.
13410 * cp-tree.h (vfield_parent): Changed to integer.
13411 * cp-tree.h (CLASSTYPE_VFIELD_PARENT): Changed docs to reflect new
13412 meaning.
13413 * cp-tree.h (init_vtbl_ptrs): Added init_vtbl_ptrs.
13414
d11ad92e 13415Wed Jan 12 18:24:16 1994 Kung Hsu <kung@mexican.cygnus.com>
7177d104
MS
13416
13417 * cp-decl.c (xref_tag): re-implement globalize nested type.
13418 * cp-decl2.c (grok_x_components): ditto.
13419 * cp-parse.y: ditto.
13420 * cp-tree.h (lang_type): add no_globalize bit in type_flags.
13421
d11ad92e 13422Wed Jan 12 14:08:09 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13423
13424 * cp-decl.c (grokdeclarator): Don't set TREE_PUBLIC on friend
13425 decls with a definition attached.
13426
13427 * cp-typeck.c (build_modify_expr): Undo previous change in the case
13428 of INIT_EXPRs.
13429
d11ad92e 13430Tue Jan 11 19:33:03 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13431
13432 * cp-typeck.c (build_modify_expr): Replace code for generating
13433 assignment semantics for classes with an error.
13434 (build_modify_expr_1): #if 0 out.
13435
13436 * cp-decl.c (pushdecl): Patch bogus design of pushdecl
13437 behavior for overloaded functions (it doesn't push anything).
13438
13439 * cp-class.c (finish_struct): When generating default op=,
13440 set TYPE_HAS_ASSIGNMENT.
13441
6060a796 13442Mon Jan 10 18:48:06 1994 Mike Stump <mrs@cygnus.com>
7177d104
MS
13443
13444 * cp-cvt.c (convert): Make {double, clashing enum} -> enum
13445 invalid.
13446 * cp-typeck.c (convert_for_assignment): Simplify.
13447 * cp-decl2.c (warn_enum_clash): Removed.
13448 * invoke.texi (-Wenum-clash): Removed.
13449 * toplev.c (-Wenum-clash): Removed.
13450
d11ad92e 13451Mon Jan 10 17:48:37 1994 Kung Hsu <kung@mexican.cygnus.com>
7177d104
MS
13452
13453 * cp-decl.c (finish_decl): fix incorrect popclass call.
13454
13455 * cp-decl.c (is_anon_name): new function, check whether the name
13456 is anonymous name generated by compiler.
13457 * cp-decl.c (grokdeclarator): allow nested SCOPE_REF
13458 * cp-spew.c (hack_more_ids): handle nested type in template.
13459 * cp-parse.y : handle nested type reference in uninstantiated
13460 template.
13461 * cp-call.c (build_method_call): handle uninstantiated template
13462 case.
13463 * cp-pt.c (search_nested_type_in_tmpl): new function, search nested
13464 type in template.
13465 * cp-pt.c (lookup_nested_type_by_name): new function, lookup nested
13466 type by name.
13467 * cp-pt.c (tsubst): handle nested type search by name.
13468
d11ad92e 13469Mon Jan 10 14:32:18 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13470
13471 * cp-init.c (build_member_call): Propagate qualifiers to new type.
13472
13473 * cp-call.c (build_method_call): Count functions the new way.
13474
d11ad92e 13475Fri Jan 7 19:03:26 1994 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13476
13477 * cp-decl.c (pushtag): Set DECL_ASSEMBLER_NAME for nested classes,
13478 too.
13479
d11ad92e 13480Tue Jan 4 16:45:51 1994 Kung Hsu <kung@cirdan.cygnus.com>
7177d104
MS
13481
13482 * cp-parse.y: change to handle whether to globalize nested class.
d11ad92e 13483 * cp-decl.c(xref_tag, maybe_globalize_type): Likewise.
7177d104 13484
d11ad92e 13485Mon Jan 3 22:22:32 1994 Gerald Baumgartner <gb@cygnus.com>
7177d104
MS
13486
13487 * Makefile.in cp-call.c cp-class.c cp-cvt.c cp-decl.c cp-decl2.c
13488 cp-error.c cp-init.c cp-lex.c cp-lex.h cp-method.c cp-parse.y
13489 cp-spew.c cp-tree.c cp-tree.h cp-type2.c cp-typeck.c cp-xref.c
13490 gplus.gperf toplev.c: Incorporated C++ signature extension.
13491 * cp-sig.c: New file, contains most of signature processing.
13492 * cp-hash.h: Regenerated from gplus.gperf.
13493
13494 * gcc.1 g++.1: Added explanation for the `-fhandle-signatures'
13495 and `-fno-handle-signatures' command line flags.
13496
13497 * gcc.texi: Changed the last-modification date.
13498 * invoke.texi: Added `-fhandle-signatures' in the list of
13499 C++ language options. Added explanation for this option.
13500
6060a796 13501Tue Dec 28 21:10:03 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
13502
13503 * cp-init.c (expand_vec_init): Remove comptypes test, as it is too
13504 harsh here.
13505
6060a796 13506Tue Dec 28 13:42:22 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
13507
13508 * cp-pt.c (do_pending_expansions): Decide to expand a template
13509 member function, based upon it's class type, not the class type of
13510 the first place it was declared.
13511
6060a796 13512Tue Dec 28 05:42:31 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
13513
13514 * cp-class.c (is_normal): New routine, use to determine when the
13515 given binfo is the normal one. (The one that should have the simple
13516 vtable name.)
13517 * cp-class.c (modify_other_vtable_entries): Use DECL_ASSEMBLER_NAME
13518 to check if two fndecls are `the same'. Sometimes this routine can
13519 modify the main vtable, and normal should be 1, in that case, so use
13520 is_normal() to determine if this is the main vtable for the class.
13521 Don't recurse down virtual bases, as they are shared, and we take
13522 care of them elsewhere.
13523 * cp-class.c (modify_vtable_entries): If we have already updated the
13524 vtable with the new virtual, don't do it again.
13525 * cp-class.c (finish_struct): Set CLASSTYPE_VFIELD_PARENT as
13526 appropriate. Do virtual function overriding in virtual bases, after
13527 normal overriding, so that the base function list in DECL_VINDEX is
13528 not overridden, before we have a chance to run through the list.
13529 Use DECL_ASSEMBLER_NAME to check if two fndecls are `the same'.
13530 Make sure we pass the right address into modify_vtable_entries.
13531 * cp-tree.h (CLASSTYPE_VFIELD_PARENT): New field to indicate which
13532 binfo is the one that has the vtable that we based our vtable on.
13533
d11ad92e 13534Fri Dec 24 09:40:52 1993 Michael Tiemann <tiemann@blues.cygnus.com>
7177d104
MS
13535
13536 * cp-typeck.c (c_expand_start_case): Use default_conversion to
13537 convert expression from reference type if necessary.
13538
d11ad92e 13539Wed Dec 22 17:58:43 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13540
13541 * cp-typeck.c (build_unary_op): Make sure that it's a TREE_LIST before
13542 trying to read its TREE_VALUE.
13543
13544 * cp-class.c (finish_struct_methods): Clear DECL_IN_AGGR_P here.
13545 (finish_struct): Instead of here.
13546
d11ad92e 13547Tue Dec 21 14:34:25 1993 Brendan Kehoe <brendan@lisa.cygnus.com>
7177d104
MS
13548
13549 * cp-tree.c (list_hash_lookup_or_cons): Make sure the type doesn't
13550 have TYPE_PTRMEMFUNC_P set before we try to build its
13551 CLASSTYPE_ID_AS_LIST.
13552 (get_decl_list): Likewise, when trying to read it.
13553
13554 * cp-tree.h (VTABLE_NAME): No def with NO_{DOLLAR,DOT} defined.
13555 (VTABLE_NAME_P): Use it instead of VTABLE_NAME_FORMAT.
13556
d11ad92e 13557Mon Dec 20 13:35:03 1993 Brendan Kehoe <brendan@lisa.cygnus.com>
7177d104
MS
13558
13559 * cp-typeck.c (rationalize_conditional_expr): New function.
13560 (unary_complex_lvalue): Use it.
13561 (build_modify_expr): Use it, since trying to do an ADDR_EXPR of it
13562 with build_unary_op won't cut it. Don't wrap the COND_EXPR with a
13563 SAVE_EXPR either.
13564
13565 * cp-decl2.c (explicit_warn_return_type): Deleted variable.
13566 (lang_decode_option): Set warn_return_type, not explicit_*, for
13567 -Wreturn-type and -Wall. This is what rest_of_compilation uses to
13568 decide if it should go into jump_optimize or not.
13569 * cp-tree.h (explicit_warn_return_type): Deleted.
13570 * cp-decl.c (grokdeclarator): Use warn_return_type, not explicit_*.
13571 (finish_function): Also complain about no return in a non-void fn if
13572 we're being pedantic (don't rely on use of -Wreturn-type).
13573
d11ad92e 13574Fri Dec 17 15:45:46 1993 Brendan Kehoe <brendan@lisa.cygnus.com>
7177d104
MS
13575
13576 * cp-decl.c (grokdeclarator): Forbid declaration of a function as
13577 static if it's being done inside another function.
13578
13579 * cp-search.c (compute_visibility): Check for friendship both ways.
13580
d11ad92e 13581Fri Dec 17 14:28:25 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13582
13583 * cp-cvt.c (build_default_binary_type_conversion): Make error
13584 messages more helpful.
13585
13586 * cp-error.c (op_as_string): New function, returns "operator =="
13587 given EQ_EXPR or suchlike.
13588
d11ad92e 13589Fri Dec 17 13:28:11 1993 Brendan Kehoe <brendan@lisa.cygnus.com>
7177d104
MS
13590
13591 * cp-call.c (print_n_candidates): New function.
13592 (build_overload_call_real): Use it when we complain about a call
13593 being ambiguous.
13594
d11ad92e 13595Fri Dec 17 12:41:17 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13596
13597 * cp-call.c (build_method_call): Fix checking for static call
13598 context.
13599
13600 * cp-method.c (build_opfncall): Call build_indirect_ref on argument
13601 to operator new.
13602
13603 * cp-init.c (build_new): Don't mess with rval when building
13604 indirect ref.
13605
d11ad92e 13606Thu Dec 16 16:48:05 1993 Kung Hsu <kung@cirdan.cygnus.com>
7177d104
MS
13607
13608 * cp-lex.c (default_assign_ref_body): add check when TYPE_NESTED_
13609 NAME(type) may not be exist. It's not a problem for old compiler.
13610
d11ad92e 13611Thu Dec 16 14:46:06 1993 Brendan Kehoe <brendan@lisa.cygnus.com>
7177d104
MS
13612
13613 * cp-tree.h (CLASSTYPE_ALTERS_VISIBILITIES_P): Delete macro, it's
13614 never used for anything.
13615 (struct lang_type, member type_flags): Delete field
13616 `alters_visibility', and up `dummy' by 1.
13617 * cp-class.c (finish_base_struct): Delete code that copies the
13618 setting of CLASSTYPE_ALTERS_VISIBILITIES_P.
13619 (finish_struct): Delete code that sets it.
13620
d11ad92e 13621Thu Dec 16 14:44:39 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13622
13623 * cp-decl.c, cp-init.c, cp-typeck.c: Fix arguments to
13624 build_method_call that I messed up before.
13625
13626 * cp-search.c (get_base_distance): If protect > 1, allow immediate
13627 private base.
13628
13629 * cp-class.c (finish_base_struct): Set cant_synth_* correctly.
d11ad92e 13630 (finish_struct): Likewise. Well, nigh-correctly; it won't deal
7177d104
MS
13631 properly with the case where a class contains an object of an
13632 ambiguous base class which has a protected op=. Should be fixed
13633 when the access control code gets overhauled.
13634 (finish_struct_methods): Set TYPE_HAS_NONPUBLIC_* correctly.
13635
d11ad92e 13636Thu Dec 16 12:17:06 1993 Brendan Kehoe <brendan@lisa.cygnus.com>
7177d104
MS
13637
13638 * cp-lex.c (real_yylex): Turn the code back on that deals with
13639 __FUNCTION__ and __PRETTY_FUNCTION__. Don't use lookup_name, to
13640 avoid the ambiguity problems that led to it being turned off in the
13641 first place.
13642
13643 * cp-method.c (hack_identifier): Also check for a TYPE_PTRMEMFUNC_P
13644 to see if something is a method.
13645
6060a796 13646Wed Dec 15 18:35:58 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
13647
13648 * cp-typeck.c (build_modify_expr): Avoid error messages on small
13649 enum bit fields.
13650 * cp-typeck.c (convert_for_assignment): Add missing argument to
13651 cp_warning and cp_pedwarn calls.
13652
d11ad92e 13653Wed Dec 15 18:25:32 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13654
13655 * cp-parse.y (member_init): ANSI C++ doesn't forbid old-style base
13656 initializers; it's just anachronistic.
13657
13658 * cp-decl.c (finish_decl): Don't require external-linkage arrays
13659 to have a complete type at declaration time when pedantic.
13660
d11ad92e 13661Tue Dec 14 11:37:23 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13662
13663 * cp-decl.c (pushdecl): Don't set DECL_CONTEXT if it's already set.
13664
13665 * cp-call.c (build_method_call): Don't dereference pointer given
13666 as instance.
13667
13668 * cp-decl.c (finish_function): Don't pass pointer to
13669 build_method_call.
d11ad92e 13670 (finish_function): Likewise.
7177d104 13671
d11ad92e 13672 * cp-typeck.c (build_x_function_call): Likewise.
7177d104 13673
d11ad92e 13674 * cp-method.c (build_component_type_expr): Likewise.
7177d104 13675
d11ad92e
MS
13676 * cp-init.c (build_member_call): Likewise.
13677 (build_new): Likewise.
7177d104 13678
d11ad92e 13679Mon Dec 13 18:04:33 1993 Kung Hsu <kung@cirdan.cygnus.com>
7177d104
MS
13680
13681 * cp-decl.c (xref_tag): fix regression created by changes made
13682 in Dec. 7 1993.
13683 * cp-decl.c (xref_defn_tag): fix parallel nested class problem.
13684
d11ad92e 13685Fri Dec 10 12:40:25 1993 Brendan Kehoe <brendan@lisa.cygnus.com>
7177d104
MS
13686
13687 * cp-call.c (compute_conversion_costs_ansi) [DEBUG_MATCHING]: Print
13688 out the final evaluation of the function, so we can see if ELLIPSIS,
13689 USER, and EVIL were set at the end.
13690
13691 * cp-call.c (convert_harshness_ansi): When the parm isn't an lvalue,
13692 only go for setting TRIVIAL_CODE if we are dealing with types that
13693 are compatible.
13694
6060a796 13695Thu Dec 9 18:27:22 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
13696
13697 * cp-decl.c (flag_huge_objects): New flag to allow large objects.
d11ad92e
MS
13698 * toplev.c (lang_options): Likewise.
13699 * cp-decl2.c (flag_huge_objects, lang_f_options): Likewise.
7177d104 13700 * cp-decl.c (delta_type_node): New type for delta entries.
d11ad92e 13701 * cp-tree.h (delta_type_node): Likewise.
7177d104
MS
13702 * cp-decl.c (init_decl_processing): Setup delta_type_node.
13703 * cp-decl.c (init_decl_processing, build_ptrmemfunc_type): Use
13704 delta_type_node instead of short_integer_type_node.
d11ad92e 13705 * cp-class.c (build_vtable_entry): Likewise.
7177d104 13706
d11ad92e 13707Thu Dec 9 16:19:05 1993 Brendan Kehoe <brendan@lisa.cygnus.com>
7177d104
MS
13708
13709 * cp-tree.h (OPERATOR_TYPENAME_P): Define outside of
13710 NO_{DOLLAR,DOT} macro checks, so it always gets defined.
13711 (VTABLE_NAME_P): Define for NO_DOT && NO_DOLLAR_IN_LABEL.
13712
6060a796 13713Wed Dec 8 17:38:06 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
13714
13715 * cp-decl.c (finish_decl): Make sure things that can go into
13716 "common", do go into common, if -fcommon is given.
13717
d11ad92e 13718Wed Dec 8 13:01:54 1993 Brendan Kehoe <brendan@lisa.cygnus.com>
7177d104 13719
63718c49
GB
13720 * cp-call.c (print_harshness) [DEBUG_MATCHING]: New function.
13721 (compute_conversion_costs_ansi) [DEBUG_MATCHING]: Print out
13722 argument matching diagnostics to make instantly clear what the
13723 compiler is doing.
7177d104
MS
13724
13725 * cp-call.c (convert_harshness_ansi): If the parm isn't an lvalue,
13726 then check to see if the penalty was increased due to
13727 signed/unsigned mismatch, and use a TRIVIAL_CODE if it wasn't.
13728
d11ad92e 13729Tue Dec 7 18:29:14 1993 Kung Hsu <kung@cirdan.cygnus.com>
7177d104
MS
13730
13731 * cp-decl.c (xref_tag, pushtag): Fix nested class search/resolution
13732 problem.
13733
d11ad92e 13734Tue Dec 7 16:09:34 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13735
13736 * cp-class.c (finish_struct): Before synthesizing methods, if no
13737 methods have yet been declared then set nonprivate_method. Don't
13738 set non_private method after synthesizing a method.
13739
13740 * cp-lex.c (extract_interface_info): If flag_alt_external_templates
13741 is set, tie emitted code to the location of template instantiation,
13742 rather than definition.
13743
13744 * cp-tree.h: Declare flag_alt_external_templates.
13745
13746 * cp-decl2.c (lang_decode_option): Support -falt-external-templates.
13747
d11ad92e 13748 * toplev.c (lang_options): Likewise.
7177d104 13749
d11ad92e 13750Mon Oct 4 12:50:02 1993 Chip Salzenberg <chip@fin.uucp>
7177d104 13751
63718c49
GB
13752 [changes propagated from 930810 snapshot]
13753 * cp-decl.c (init_decl_processing): Make long long available for use
13754 as SIZE_TYPE and PTRDIFF_TYPE.
13755 (finish_decl): Allow file-scope static incomplete array.
13756 (grokdeclarator): Don't pass on const and volatile fron function
13757 value type to function type.
13758 Warn here for volatile fn returning non-void type.
13759 * cp-parse.y (attrib): Accept attributes `volatile' with alias
13760 `noreturn', and `const'.
13761 * cp-typeck.c (default_conversion): Don't lose const and volatile.
13762 (build_binary_op_nodefault): Generate pedantic warning for comparison
13763 of complete pointer type with incomplete pointer type.
13764 (build_c_cast): Be careful that null pointer constant be INTEGER_CST.
7177d104 13765
d11ad92e 13766Tue Dec 7 10:46:48 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13767
13768 * cp-init.c (expand_vec_init): When creating a temporary for copying
13769 arrays, use the type of the source, not the target.
13770
13771 * cp-cvt.c (convert): Pass an argument for errtype to
13772 convert_to_reference.
13773
13774 * cp-error.c (dump_expr, COMPONENT_REF & CALL_EXPR): Deal with
13775 methods, -> and `this'.
13776
d11ad92e 13777Mon Dec 6 17:12:33 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13778
13779 * cp-error.c (parm_as_string): New function; returns `this' or arg
13780 number. Corresponds to %P.
13781 (dump_expr): Deal with method calls.
13782
13783 * cp-cvt.c (convert_to_reference): Stop using warn_for_assignment.
d11ad92e 13784 * cp-typeck.c (convert_for_assignment): Likewise.
7177d104
MS
13785 (warn_for_assignment): Lose.
13786
d11ad92e 13787Mon Dec 6 11:33:35 1993 Brendan Kehoe <brendan@lisa.cygnus.com>
7177d104
MS
13788
13789 * cp-call.c (ideal_candidate_ansi): Delete code that was never
13790 doing anything useful. Instead, sort once, and DO NOT wipe
13791 out any codes with EVIL_CODE, since that's what we use as a
13792 marker for the end of the list of candidates.
13793
13794 * cp-cvt.c (convert_to_aggr): Make sure to always set H_LEN.
13795
d11ad92e 13796Mon Dec 6 12:49:17 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13797
13798 * cp-init.c (get_aggr_from_typedef): New function, like
13799 is_aggr_typedef but returns the _TYPE.
13800
13801 * cp-call.c, cp-init.c, cp-method.c: Eradicate err_name.
13802
d11ad92e 13803Sun Dec 5 18:12:48 1993 Brendan Kehoe <brendan@lisa.cygnus.com>
7177d104
MS
13804
13805 * cp-lex.c (readescape): Pedwarn when a hex escape is out of range.
13806
d11ad92e 13807Thu Nov 25 23:50:19 1993 Chip Salzenberg <chip@fin.uucp>
7177d104
MS
13808
13809 Delay language context change until beginning of next decl.
13810
13811 * cp-lex.h (c_header_level): Removed.
13812 (pending_lang_change): Declared.
13813 * cp-lex.c (c_header_level): Renamed from in_c_header, made static.
13814 (pending_lang_change): Defined.
13815 (check_newline): Rework code that recognizes line number and
13816 filename changes. Instead of pushing and popping lang context,
13817 increment and decrement pending_lang_change.
13818 (do_pending_lang_change): Push and pop lang context according
13819 to value of pending_lang_change.
13820 * cp-parse.y (extdefs): Use lang_extdef instead of extdef.
13821 (extdef): Same as extdef, but call do_pending_lang_change() first.
13822
d11ad92e 13823Mon Nov 15 15:39:15 1993 Chip Salzenberg <chip@fin.uucp>
7177d104
MS
13824
13825 * cp-typeck.c (build_binary_op_nodefault): Warn for ordered
13826 compare of ptr with 0 only if pedantic in both cases.
13827
d11ad92e 13828Thu Nov 25 13:31:37 1993 Chip Salzenberg <chip@fin.uucp>
7177d104
MS
13829
13830 Reinstate the below patch, which got lost in the Cygnus merge:
13831 Tue Nov 23 13:59:24 1993 Hallvard B Furuseth (hbf@durin.uio.no)
13832 * cp-parse.y (maybe_type_qual): Don't fail to set $$.
13833
d11ad92e 13834Wed Nov 17 19:03:30 1993 Chip Salzenberg <chip@fin.uucp>
7177d104
MS
13835
13836 * cp-parse.y (attrib): Allow "ident(ident)" like the C front end.
13837
d11ad92e 13838Fri Oct 22 20:43:37 1993 Paul Eggert <eggert@twinsun.com>
7177d104
MS
13839
13840 * cp-lex.c (real_yylex): Diagnose floating point constants
13841 that are too large.
13842
d11ad92e 13843Wed Nov 17 19:10:37 1993 Chip Salzenberg <chip@fin.uucp>
7177d104
MS
13844
13845 * cp-type2.c (build_functional_cast): ARM page 16: When a class
13846 and an object, function or enumerator are declared in the same
13847 scope with the same name, the class name is hidden.
13848
d11ad92e 13849Wed Nov 17 19:07:18 1993 Chip Salzenberg <chip@fin.uucp>
7177d104
MS
13850
13851 * cp-call.c (convert_harshness_ansi): Distinguish float, double,
13852 and long double from each other when overloading.
13853 (compute_conversion_costs_{ansi,old}, build_method_call,
13854 build_overlay_call_real, convert_to_aggr): Always set and
13855 always use H_LEN member of candidate structure.
13856
d11ad92e 13857Mon Oct 11 23:10:53 1993 Chip Salzenberg <chip@fin.uucp>
7177d104
MS
13858
13859 * cp-decl.c (duplicate_decls): Note redeclarations of library
13860 functions, and generate distinct warnings for them.
13861
d11ad92e 13862Mon Oct 4 12:26:49 1993 Chip Salzenberg <chip@fin.uucp>
7177d104
MS
13863
13864 Support format warnings in G++.
13865
13866 * cp-tree.h: Protect against multiple inclusion.
13867 Declare all public functions in c-common.c (copy from c-tree.h).
13868 (STDIO_PROTO): Define.
13869 (warn_format): Declare.
13870 (record_format_info): Remove declaration.
13871 * cp-decl.c (init_decl_processing): Call init_function_format_info.
13872 * cp-decl2.c (lang_decode_option): Make "-Wall" include warn_format.
13873 * cp-typeck.c (build_function_call_real): Call check_function_format.
13874 (record_format_info): Remove -- obsolete stub.
13875
d11ad92e 13876Sat Jul 24 12:04:29 1993 Chip Salzenberg <chip@fin.uucp>
7177d104
MS
13877
13878 * cp-decl.c (duplicate_decls): Don't warn for non-extern var decl
13879 following an extern one (for -Wredundant-decls).
13880 * cp-parse.y (primary): In statement expression case, if compstmt
13881 returns something other than a BLOCK, return it unchanged.
13882
d11ad92e 13883Thu Dec 2 20:44:58 1993 Chip Salzenberg <chip@fin.uucp>
7177d104
MS
13884
13885 * cp-decl.c (warn_extern_redeclared_static): New function made
13886 from code extracted from pushdecl.
13887 (duplicate_decls, pushdecl): Call new function.
13888 (lookup_name_current_level): Allow for IDENTIFIER_GLOBAL_VALUE
13889 to be a TREE_LIST when function is declared in 'extern "C" {}'.
13890
d11ad92e 13891Fri Dec 3 16:01:10 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13892
13893 * cp-class.c (duplicate_tag_error): Use cp_error.
13894 (finish_base_struct): Check for ambiguity with direct base, and don't
13895 generate op= or copy ctor if it exists.
13896
d11ad92e 13897Fri Dec 3 15:32:34 1993 Kung Hsu <kung@cirdan.cygnus.com>
7177d104
MS
13898
13899 * cp-init.c (expand_member_init): when initializer name is null,
13900 don't try to build it now because emit_base_init will handle it.
13901
d11ad92e 13902Fri Dec 3 12:28:59 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13903
13904 * cp-lex.c (init_lex): Initialize input_filename to "<internal>" for
13905 code such as ExceptionHandler::operator=.
13906
d11ad92e 13907Fri Dec 3 10:32:08 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13908
13909 * cp-decl.c (grokdeclarator): Don't try to print out dname when
13910 complaining about arrays of references if decl_context==TYPENAME,
13911 since it will be null.
13912
13913 * cp-decl2.c: Default to flag_ansi_overloading.
13914
d11ad92e 13915Thu Dec 2 18:05:56 1993 Kung Hsu <kung@cirdan.cygnus.com>
7177d104
MS
13916
13917 * cp-call.c (build_method_call): use binfo from instance if it's
13918 different from binfo (basetype_path) passed from above.
13919
d11ad92e 13920Wed Nov 17 19:14:29 1993 Chip Salzenberg <chip@fin.uucp>
7177d104
MS
13921
13922 cp-error.c (dump_expr): Use unsigned chars to output a
13923 TREE_REAL_CST in hex.
13924
d11ad92e 13925Thu Dec 2 11:05:48 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13926
13927 * cp-class.c (finish_struct): Fix typo in setting
13928 cant_synth_asn_ref.
13929
13930 * cp-tree.h (TYPE_NESTED_NAME): New macro, does
13931 DECL_NESTED_TYPENAME (TYPE_NAME (NODE)).
13932
13933 * cp-lex.c (default_copy_constructor_body): Change
13934 DECL_NAME (TYPE_NAME (btype)) to TYPE_NESTED_NAME (btype).
d11ad92e 13935 (default_assign_ref_body): Likewise.
7177d104
MS
13936 (default_copy_constructor_body): Call operator= explicitly for
13937 base classes that have no constructor.
13938
d11ad92e 13939Thu Dec 2 10:47:15 1993 Michael Tiemann <tiemann@blues.cygnus.com>
7177d104
MS
13940
13941 * cp-call.c (build_method_call): If the instance variable is
13942 converted to error_mark_node when we're trying to convert it to the
13943 base type of a method we're looking up, return error_mark_node.
13944
d11ad92e 13945Thu Dec 2 10:41:16 1993 Torbjorn Granlund <tege@cygnus.com>
7177d104
MS
13946
13947 * cp-typeck.c (build_binary_op_nodefault): In *_DIV_EXPR *_MOD_EXPR
13948 cases, tests for unsigned operands by peeking inside a NOP_EXPR.
13949
d11ad92e 13950Wed Dec 1 13:33:34 1993 Brendan Kehoe <brendan@lisa.cygnus.com>
7177d104
MS
13951
13952 * cp-call.c (compute_conversion_costs_ansi): Use the size of struct
13953 harshness_code, not the size of short, for clearing out the
13954 ansi_harshness.
13955
13956 * cp-call.c (print_candidates): New function.
13957 (build_method_call): When we had some candidates, but didn't get a
13958 usable match, don't report that we got an error with the first
13959 candidate. Instead, say there were no matches, and list the
13960 candidates with print_candidates. In the second pass, make sure we
13961 clear out ever_seen, so we can accurately count the number of
13962 functions that qualified.
13963
d11ad92e 13964Wed Dec 1 09:53:59 1993 Torbjorn Granlund <tege@cygnus.com>
7177d104
MS
13965
13966 * cp-typeck.c (build_binary_op_nodefault): Shorten for *_MOD_EXPR
13967 only if op1 is known to be != -1.
13968 (build_binary_op_nodefault): Handle *_DIV_EXPR likewise.
13969
d11ad92e 13970Tue Nov 30 14:07:26 1993 Brendan Kehoe <brendan@lisa.cygnus.com>
7177d104
MS
13971
13972 * cp-method.c (hack_identifier): If the field itself is private, and
13973 not from a private base class, say so.
13974
d11ad92e 13975Mon Nov 29 03:00:56 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13976
13977 * cp-decl.c (grokdeclarator): Always warn on initialization of
13978 const member.
13979
d11ad92e 13980Wed Nov 24 00:49:35 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
13981
13982 * cp-class.c (finish_struct): Set TYPE_GETS_CONST_* properly.
13983 (finish_base_struct): Set cant_synth_asn_ref properly.
13984
13985 * cp-lex.c (cons_up_default_function): Add section for operator=.
13986 (default_assign_ref_body): New function, mostly cribbed from
13987 default_copy_constructor_body.
13988
13989 * cp-class.c (base_info): Add members cant_synth_copy_ctor,
13990 cant_synth_asn_ref, no_const_asn_ref.
13991 (finish_base_struct): Update no_const_asn_ref, note that you should
13992 update cant_synth_*, propagate TYPE_GETS_ASSIGN_REF.
13993 (finish_struct): Add decls for cant_synth_*, no_const_asn_ref, and
13994 initialize them properly. Set no_const_asn_ref properly. Set
13995 cant_synth_* in some of the situations where they should be set.
13996 Propagate TYPE_GETS_ASSIGN_REF. Use cant_synth_copy_ctor. Add call
13997 to cons_up_default_function for operator=.
13998
6060a796 13999Tue Nov 23 20:24:58 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
14000
14001 * cp-cvt.c (convert_force): Add code to perform casting of pointer
14002 to member function types.
14003 * cp-typeck.c (build_ptrmemfunc): Add FORCE parameter to indicate
14004 when the conversion should be done, regardless.
d11ad92e
MS
14005 * cp-tree.h (build_ptrmemfunc): Likewise.
14006 * cp-type2.c (digest_init): Likewise.
14007 * cp-typeck.c (convert_for_assignment): Likewise.
7177d104 14008
d11ad92e 14009Tue Nov 23 18:06:58 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14010
14011 * cp-error.c (dump_expr): Do the right thing for variables of
14012 reference type.
14013
14014 * cp-decl.c (grok_op_properties): Set TYPE_HAS_ASSIGN_REF
14015 and its kin properly.
14016 (xref_tag): Propagate TYPE_GETS_ASSIGN_REF.
14017
6060a796 14018Tue Nov 23 12:26:13 1993 Mike Stump <mrs@cygnus.com>
7177d104
MS
14019
14020 * cp-method.c (build_opfncall): Don't count pointer to member
14021 functions as aggregates here, as we don't want to look up methods in
14022 them. The compiler would core dump if we did, as they don't have
14023 normal names.
14024 * cp-typeck.c (build_indirect_ref): Improve wording on error
14025 message.
14026
d11ad92e 14027Mon Nov 22 14:22:23 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14028
14029 * cp-decl.c (grok_op_properties): Allow operator?: with pedwarn
14030 (since it's supported in other compiler bits).
14031
14032 * cp-method.c (report_type_mismatch): Use cp_error; ignore err_name
14033 argument.
14034
14035 * cp-error.c (dump_function_decl): Don't print return type for
14036 constructors and destructors.
14037
14038 * cp-cvt.c (cp_convert_to_pointer): Import code from
14039 convert_to_pointer so we can return error_mark_node in the case of an
14040 error, and to allow more meaningful error messages.
14041 (build_type_conversion): Don't go through void* when trying
14042 to convert to a pointer type.
14043
14044 * cp-decl.c (grokfndecl): Move call to grok_op_properties back
14045 after grokclassfn so that it's dealing with the right decl.
63718c49 14046 (grok_op_properties): Don't assert !methodp for op new and op delete.
7177d104
MS
14047
14048 * cp-init.c (build_delete): Don't use TYPE_BUILT_IN (there are now
14049 no uses of it in the compiler).
14050
14051 * cp-call.c (build_scoped_method_call): Fix for destructors of simple
14052 types.
d11ad92e 14053 (build_method_call): Likewise.
7177d104 14054
d11ad92e 14055Fri Nov 19 12:59:38 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14056
14057 * cp-tree.c (count_functions): Abstraction function.
14058
14059 * cp-call.c (build_overload_call_real): Deal with new overloading
14060 properly, remove dead code.
14061
14062 * gcc.c (default_compilers): Generate and use .ii files in the
14063 intermediate stage of compiling C++ source.
14064
d11ad92e 14065Fri Nov 19 11:26:09 1993 Jim Wilson <wilson@sphagnum.cygnus.com>
7177d104
MS
14066
14067 * cp-expr.c (cplus_expand_expr): Make call_target a valid memory
14068 address before using it, so it can be later safely compared.
14069
d11ad92e 14070Fri Nov 12 15:30:27 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14071
14072 * cp-pt.c (tsubst): Deal with new overloading.
14073
14074 * cp-typeck.c (fntype_p): is the arg function type?
14075 (comp_target_parms): pedwarn on conversion from (anything) to (...).
14076 (build_x_function_call): Deal with new overloading.
14077
14078 * cp-tree.c (decl_list_length): Deal with new overloading.
14079 (decl_value_member): Like value_member, but for DECL_CHAINs.
14080
14081 * cp-decl.c (duplicate_decls): Deal with new overloading.
d11ad92e 14082 (start_decl): Likewise.
7177d104
MS
14083
14084 * cp-class.c (instantiate_type): Deal with new overloading.
14085
14086 * cp-call.c (convert_harshness_ansi): Deal with new overloading.
14087 (convert_harshness_old): Deal with new overloading.
d11ad92e 14088 (build_overload_call_real): Likewise.
7177d104 14089
d11ad92e 14090Mon Nov 8 13:50:49 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14091
14092 * cp-tree.c (get_unique_fn): New function; returns FUNCTION_DECL
14093 if unambiguous, NULL_TREE otherwise.
14094 (get_first_fn): Returns the first appropriate FUNCTION_DECL.
14095 (is_overloaded_fn): Returns whether or not the passed tree is
14096 a function or list of functions.
14097
14098 * cp-init.c (init_init_processing): use `get_first_fn' to find
14099 the FUNCTION_DEFN for new and delete.
14100
14101 * cp-decl.c (push_overloaded_decl): Use new overloading strategy, cut
14102 code size in half (I spit on special cases).
14103
d11ad92e 14104Tue Sep 7 20:03:33 1993 Jason Merrill <jason@deneb.cygnus.com>
7177d104
MS
14105
14106 * cp-decl.c: Allow references and template type parameters as well
This page took 1.532275 seconds and 5 git commands to generate.