]> gcc.gnu.org Git - gcc.git/blame - gcc/cp/ChangeLog
decl.c (init_decl_processing): Give null_node unknown* type.
[gcc.git] / gcc / cp / ChangeLog
CommitLineData
a6967cc0
JM
1Mon Oct 20 10:52:22 1997 Jason Merrill <jason@yorick.cygnus.com>
2
3 * decl.c (init_decl_processing): Give null_node unknown* type.
4 * typeck.c (comp_target_types): Handle UNKNOWN_TYPE.
5 (common_type): Likewise.
6 * error.c (args_as_string): Recognize null_node.
7
bdd7e652
JG
8Thu Oct 16 15:31:09 1997 Judy Goldberg <judygold@sanwafp.com>
9
10 * pt.c (determine_explicit_specialization): Initialize "dummy"
11 to keep Purify quiet.
12
2636fde4
JM
13Thu Oct 16 00:14:48 1997 Jason Merrill <jason@yorick.cygnus.com>
14
15 * method.c (build_overload_value): Handle TEMPLATE_CONST_PARMs here.
16 (build_overload_int): Not here.
17
18Wed Oct 15 00:35:28 1997 Mike Stump <mrs@wrs.com>
19
20 * class.c (build_type_pathname): Remove.
21 (prepare_fresh_vtable): Fix problem with complex MI vtable names.
22
32066e1a
BK
231997-10-14 Brendan Kehoe <brendan@lisa.cygnus.com>
24
25 * parse.y (unary_expr): Give a pedwarn if someone tries to use the
26 &&label GNU extension.
27
1f06b267
MM
28Tue Oct 14 12:01:00 1997 Mark Mitchell <mmitchell@usa.net>
29
30 * decl.c (pushtag): Unset DECL_ASSEMBLER_NAME before setting it,
31 so as to avoid incorrect manglings.
32 * method.c (build_decl_overload_real): Don't mangle return types
33 for constructors.
34
e66d884e
JM
35Tue Oct 14 11:46:14 1997 Jason Merrill <jason@yorick.cygnus.com>
36
37 * cp-tree.h (scratchalloc, build_scratch_list, make_scratch_vec,
38 scratch_tree_cons): Define as macros for now.
39 * call.c, class.c, cvt.c, decl.c, decl2.c, except.c, expr.c, init.c,
40 lex.c, method.c, parse.y, pt.c, rtti.c, search.c, tree.c, typeck.c,
41 typeck2.c: Use them and the expression_obstack variants.
dae1d6f6 42
e66d884e 43Mon Oct 13 17:41:26 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
dae1d6f6 44
e66d884e
JM
45 * decl.c (store_return_init): Allow classes with explicit ctors to
46 be used with the named return values extension.
dae1d6f6 47
7ac63bca
JM
48Fri Oct 10 12:21:11 1997 Jason Merrill <jason@yorick.cygnus.com>
49
50 * pt.c (instantiate_decl): Fix previous change.
51
fee23f54
JM
52Thu Oct 9 12:08:21 1997 Jason Merrill <jason@yorick.cygnus.com>
53
54 * pt.c (tsubst): Fix thinko.
55 (instantiate_decl): Really use the original template.
56
57 * call.c (build_new_method_call): Use simple constructor_name for
58 error messages.
59
c8907853
JL
60Wed Oct 8 22:44:42 1997 Jeffrey A Law (law@cygnus.com)
61
62 * method.c (build_underscore_int): Don't use ANSI specific
63 features.
64
3bd1e206
JM
65Wed Oct 8 00:18:22 1997 Jason Merrill <jason@yorick.cygnus.com>
66
67 * decl2.c (finish_prevtable_vardecl): Check DECL_REALLY_EXTERN
68 for our key method; it might have been inlined by -O3.
69
ffb690bd
JM
70Tue Oct 7 23:00:12 1997 Mark Mitchell <mmitchell@usa.net>
71
72 * decl.c (make_typename_type): Do not try to call lookup_field for
73 non-aggregate types.
74
75Tue Oct 7 22:52:10 1997 Jason Merrill <jason@yorick.cygnus.com>
76
77 * typeck.c (build_reinterpret_cast): Tweak.
78
79Tue Oct 7 22:45:31 1997 Alexandre Oliva <oliva@dcc.unicamp.br>
80
81 * typeck.c (build_reinterpret_cast): converting a void pointer
82 to function pointer with a reinterpret_cast produces a warning
83 if -pedantic is issued
84
85Tue Oct 7 22:43:43 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
86
87 * typeck.c (c_expand_return): Don't warn about returning a
88 reference-type variable as a reference.
89
a6f02587
JM
90Tue Oct 7 21:11:22 1997 Jason Merrill <jason@yorick.cygnus.com>
91
92 * method.c (build_static_name): Fix typo.
93
941997-10-07 Brendan Kehoe <brendan@lisa.cygnus.com>
95
96 * decl.c (duplicate_decls): Make sure DECL_LANG_SPECIFIC is set on
97 OLDDECL before we try to do DECL_USE_TEMPLATE.
98
c32381b1
JM
99Tue Oct 7 00:48:36 1997 Jason Merrill <jason@yorick.cygnus.com>
100
101 * decl.c (duplicate_decls): Don't warn about template instances.
102
103 * typeck.c (mark_addressable): Lose ancient code that unsets
104 DECL_EXTERNAL.
105
106 * pt.c (do_decl_instantiation): Lose support for instantiating
107 non-templates.
108
109 * call.c (build_new_function_call): Fix handling of null explicit
110 template args.
111 (build_new_method_call): Likewise.
112
113Mon Oct 6 23:44:34 1997 Mark Mitchell <mmitchell@usa.net>
114
115 * method.c (build_underscore_int): Fix typo.
116
3f2270ec
BK
1171997-10-06 Brendan Kehoe <brendan@lisa.cygnus.com>
118
119 * tree.c (print_lang_statistics): #if 0 call to
120 print_inline_obstack_statistics until its definition is checked in.
121
27bb8339
JM
122Mon Oct 6 09:27:29 1997 Jason Merrill <jason@yorick.cygnus.com>
123
c32381b1
JM
124 * decl2.c (finish_file): Move dump_tree_statistics to end.
125
27bb8339
JM
126 * pt.c (instantiate_decl): Look for the original template.
127 (tsubst): Set DECL_IMPLICIT_INSTANTIATION on partial instantiations
128 of member templates.
129
5408ce78
JM
130Wed Oct 1 08:41:38 1997 Jason Merrill <jason@yorick.cygnus.com>
131
132 * Makefile.in (g++FAQ.*): New rules.
133 (CONFLICTS): Update.
134 * g++FAQ.texi: Moved from libg++.
135
136 * parse.y (PFUNCNAME): Only specify the type once.
137
a3f44a13
BK
1381997-10-01 Brendan Kehoe <brendan@lasher.cygnus.com>
139
140 * lex.c (real_yylex): Clean up the code to fully behave the way
141 the c-lex.c parser does for complex and real numbers.
142
5a45bc3e
JM
143Tue Sep 30 08:51:36 1997 Jason Merrill <jason@yorick.cygnus.com>
144
145 * method.c (build_decl_overload_real): Reformat.
146
b7067a12
JM
147Tue Sep 30 00:18:26 1997 Jason Merrill <jason@yorick.cygnus.com>
148
149 * method.c (synthesize_method): If at_eof, determine our linkage.
150
4f6140be
PE
1511997-09-29 Paul Eggert <eggert@twinsun.com>
152
153 * lex.c (real_yylex): Treat `$' just like `_', except issue a
154 diagnostic if !dollars_in_ident or if pedantic.
155
156 * lang-specs.h (@c++): -ansi no longer implies -$.
157
158 * decl2.c (lang_decode_option):
159 -traditional and -ansi now do not mess with
160 dollars_in_ident.
161
9f617717
L
162Mon Sep 29 19:57:51 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
163
164 * Makefile.in (parse.o, decl.o): Also depend on
165 $(srcdir)/../except.h $(srcdir)/../output.h.
166 (decl2.o): Also depend on $(srcdir)/../expr.h ../insn-codes.h
167 $(srcdir)/../except.h $(srcdir)/../output.h.
168 (typeck.o, init.o): Also depend on $(srcdir)/../expr.h
169 ../insn-codes.h.
170
171 * call.c, cp-tree.h, decl.c, tree.c: Finish prototyping.
172
173 * expr.c (cplus_expand_expr): Make it static.
174
175 * decl2.c, init.c, typeck.c: Include "expr.h".
176 (expand_expr): Use proper values when calling the function.
177
0c4b14c4
JM
178Mon Sep 29 11:05:54 1997 Alexandre Oliva <oliva@dcc.unicamp.br>
179
180 * lang-options.h: new -Wold-style-cast flag.
181 * cp-tree.h (warn_old_style_cast): new variable.
182 * decl2.c (warn_old_style_cast): ditto.
183 (lang_decode_option): support -Wold-style-cast.
184 (reparse_absdcl_as_casts): produce old-style-cast warning.
185
186Mon Sep 29 09:20:53 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
187
188 * decl.c (cp_finish_decl): Allow expand_aggr_init to set
189 TREE_USED, reset value based on already_used.
190
191 * init.c (expand_member_init): Revert change.
192
893de33c
JM
193Mon Sep 29 08:57:53 1997 Jason Merrill <jason@yorick.cygnus.com>
194
195 * cp-tree.h, decl.c, decl2.c, pt.c:
196 Lose DECL_C_STATIC and DECL_PUBLIC. Don't pretend statics are public.
197
198 * decl2.c (lang_decode_option): Add missing ;.
199
386b8a85
JM
200Sat Sep 27 16:22:48 1997 Jason Merrill <jason@yorick.cygnus.com>
201
202 * friend.c (do_friend): Disable injection for all template-derived
203 decls.
204 * decl2.c (lang_decode_option): Handle -fguiding-decls.
205 * parse.y (notype_template_declarator): New nonterminal.
206 (direct_notype_declarator): Use it.
207 (complex_direct_notype_declarator): Likewise.
208 (object_template_id): Accept any kind of identifier after TEMPLATE.
209 (notype_qualified_id): Don't add template declarators here.
210
211Sat Sep 27 16:21:58 1997 Mark Mitchell <mmitchell@usa.net>
212
213 * call.c (add_template_candidate): Add explicit_targs parameter.
214 (build_scoped_method_call): Use it.
215 (build_overload_call_real): Likewise.
216 (build_user_type_conversion_1): Likewise.
217 (build_new_function_call): Likewise.
218 (build_object_call): Likewise.
219 (build_new_op): Likewise.
220 (build_new_method_call): Likewise.
221 (build_new_function_call): Handle TEMPLATE_ID_EXPR.
222 (build_new_method_call): Likewise.
223
224 * class.c (finish_struct_methods): Add specialization pass to
225 determine which methods were specializing which other methods.
226 (instantiate_type): Handle TEMPLATE_ID_EXPR.
227
228 * cp-tree.def (TEMPLATE_ID_EXPR): New tree code.
229
230 * cp-tree.h (name_mangling_version): New variable.
231 (flag_guiding_decls): Likewise.
232 (build_template_decl_overload): New function.
233 (begin_specialization): Likewise.
234 (reset_specialization): Likewise.
235 (end_specialization): Likewise.
236 (determine_explicit_specialization): Likewise.
237 (check_explicit_specialization): Likewise.
238 (lookup_template_function): Likewise.
239 (fn_type_unification): Add explicit_targs parameter.
240 (type_unification): Likewise.
241
242 * decl.c (duplicate_decls): Add smarts for explicit
243 specializations.
244 (grokdeclarator): Handle TEMPLATE_ID_EXPR, and function
245 specializations.
246 (grokfndecl): Call check_explicit_specialization.
247
248 * decl2.c (lang_decode_option): Handle -fname-mangling-version.
249 (build_expr_from_tree): Handle TEMPLATE_ID_EXPR.
250 (check_classfn): Handle specializations.
251
252 * error.c (dump_function_name): Print specialization arguments.
253
254 * friend.c (do_friend): Don't call pushdecl for template
255 instantiations.
256
257 * init.c (build_member_call): Handle TEMPLATE_ID_EXPR.
258
259 * lang-options.h: Add -fname-mangling-version, -fguiding-decls,
260 and -fno-guiding-decls.
261
262 * lex.c (identifier_type): Return PFUNCNAME for template function
263 names.
264
265 * method.c (build_decl_overload_real): New function.
266 (build_template_parm_names): New function.
267 (build_overload_identifier): Use it.
268 (build_underscore_int): New function.
269 (build_overload_int): Use it. Add levels for template
270 parameters.
271 (build_overload_name): Likewise. Also, handle TYPENAME_TYPEs.
272 (build_overload_nested_names): Handle template type parameters.
273 (build_template_decl_overload): New function.
274
275 * parse.y (YYSTYPE): New ntype member.
276 (nested_name_specifier): Use it.
277 (nested_name_specifier_1): Likewise.
278 (PFUNCNAME): New token.
279 (template_id, object_template_id): New non-terminals.
280 (template_parm_list): Note specializations.
281 (template_def): Likewise.
282 (structsp): Likewise.
283 (fn.def2): Handle member template specializations.
284 (component_decl_1): Likewise.
285 (direct_notype_declarator): Handle template-ids.
286 (component_decl_1): Likewise.
287 (direct_notype_declarator): Handle template-ids.
288 (primary): Handle TEMPLATE_ID_EXPR, and template-ids.
289
290 * pt.c (processing_specializations): New variable.
291 (template_header_count): Likewise.
292 (type_unification_real): New function.
293 (processing_explicit_specialization): Likewise.
294 (note_template_header): Likewise.
295 (is_member_template): Handle specializations.
296 (end_template_decl): Call reset_specialization.
297 (push_template_decl): Handle member template specializations.
298 (tsubst): Likewise.
299 (tsubst_copy): Handle TEMPLATE_ID_EXPR.
300 (instantiate_template): Handle specializations.
301 (instantiate_decl): Likewise.
302 (fn_type_unification): Handle explicit_targs.
303 (type_unification): Likewise. Allow incomplete unification
304 without an error message, if allow_incomplete.
305 (get_bindings): Use new calling sequence for fn_type_unification.
306
307 * spew.c (yylex): Handle PFUNCNAME.
308
309 * tree.c (is_overloaded_fn): Handle TEMPLATE_ID_EXPR.
310 (really_overloaded_fn): Likewise.
311 (get_first_fn): Handle function templates.
312
313 * typeck.c (build_x_function_call): Use really_overloaded_fn.
314 Handle TEMPLATE_ID_EXPR.
315 (build_x_unary_op): Likewise.
316 (build_unary_op): Likewise.
317 (mark_addressable): Templates whose address is taken are marked
318 as used.
319
b9620d0e
AS
3201997-09-25 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
321
322 * decl.c (init_decl_processing): Declare __builtin_constant_p as
323 accepting any kind of type, not only int.
324
405a745b
JM
325Fri Sep 26 00:22:56 1997 Jason Merrill <jason@yorick.cygnus.com>
326
1052cd65
JM
327 * search.c (get_matching_virtual): Notice virtual bases when sorrying
328 about covariant returns.
329
405a745b
JM
330 * parse.y (member_init): Also imply typename here. Remove ancient
331 extension for initializing base members.
332
653cc74a
JM
333Thu Sep 25 11:11:13 1997 Jason Merrill <jason@yorick.cygnus.com>
334
335 Handle multi-level typenames and implicit typename in base list.
336 * parse.y (typename_sub{,[0-2]}): New rules.
337 (structsp, rule TYPENAME_KEYWORD): Use typename_sub.
338 (nonnested_type): New rule.
339 (complete_type_name): Use it.
340 (base_class.1): Use typename_sub and nonnested_type.
341 (nested_name_specifier): Don't elide std:: here.
342 * decl.c (make_typename_type): Handle getting a type for NAME.
343 (lookup_name_real): Turn std:: into :: here.
344
345 Rvalue conversions were removed in London.
346 * call.c (is_subseq): Don't consider lvalue transformations.
347 (build_conv): LVALUE_CONV and RVALUE_CONV get IDENTITY_RANK.
348 (joust): Reenable ?: kludge.
349
59f1f2c4
BK
3501997-09-22 Brendan Kehoe <brendan@lisa.cygnus.com>
351
352 * decl.c (start_function): Up warning of no return type to be a
353 pedwarn.
354
b82b76c6
JM
355Sat Sep 20 15:31:00 1997 Jason Merrill <jason@yorick.cygnus.com>
356
357 * call.c (build_over_call): Do require_complete_type before
358 build_cplus_new.
359
238109cd
JM
360Thu Sep 18 16:47:52 1997 Jason Merrill <jason@yorick.cygnus.com>
361
362 * search.c (lookup_field): Call complete_type in all cases.
363
364 * decl.c (finish_function): Just warn about flowing off the end.
365
66f2e88d
JM
366Wed Sep 17 10:31:25 1997 Jason Merrill <jason@yorick.cygnus.com>
367
368 * decl.c (grokparms): Don't bash a permanent list node if we're
369 in a function.
370
8552680f
BK
3711997-09-17 Brendan Kehoe <brendan@lisa.cygnus.com>
372
373 * Makefile.in (CONFLICTS): Fix s/r conflict count to 18.
374
5c825fc2
JM
375Tue Sep 16 14:06:56 1997 Jason Merrill <jason@yorick.cygnus.com>
376
d5467e20
JM
377 * call.c (build_new_op): Give better error for syntactically
378 correct, but semantically invalid, use of undeclared template.
379
549121cd
JM
380 * call.c (compare_qual): Handle pmfs.
381
5c825fc2
JM
382 * decl.c (store_parm_decls): last_parm_cleanup_insn is the insn
383 after the exception spec.
384
18a7cd24
JM
385Mon Sep 15 11:52:13 1997 Jason Merrill <jason@yorick.cygnus.com>
386
5168dcfc
JM
387 * call.c (null_ptr_cst_p): Integer type, not integral type.
388
18a7cd24
JM
389 * call.c (joust): Disable warnings until they can be moved to the
390 right place.
391
0520f6c0
PB
392Fri Sep 12 16:11:13 1997 Per Bothner <bothner@cygnus.com>
393
394 * Makefile.in, config-lang.in: Convert to autoconf.
395
85b71cf2
JM
396Thu Sep 11 17:14:55 1997 Jason Merrill <jason@yorick.cygnus.com>
397
398 * decl.c (lookup_name_real): Add implicit 'typename' to types from
399 base classes.
400
401 * pt.c (most_specialized_class): Fix typo.
402 (tsubst): Move constant folding to TREE_VEC case.
403
404Thu Sep 11 10:08:45 1997 Mark Mitchell <mmitchell@usa.net>
405
406 * pt.c (do_poplevel): Don't warn about unused local variables
407 while processing_template_decl since we don't always know whether
408 or not they will need constructing/destructing.
409
410 * pt.c (uses_template_parms): Check the values of an enumeration
411 type to make sure they don't depend on template parms.
412
413 * decl.c (make_typename_type): Don't lookup the field if the
414 context uses template parms, even if we're not
415 processing_template_decl at the moment.
416
417 * pt.c (coerce_template_parms): Avoid looking at the
418 TYPE_LANG_DECL portion of a typename type, since there won't be
419 one.
420 (tsubst): Do constant folding as necessary to make sure that
421 arguments passed to lookup_template_class really are constants.
422
ca55abae
JM
423Wed Sep 10 11:21:55 1997 Jason Merrill <jason@yorick.cygnus.com>
424
425 * except.c (expand_builtin_throw): #ifndef DWARF2_UNWIND_INFO.
426 * decl2.c (finish_file): Only register exception tables if we
427 need to.
428
429 * decl.c (init_decl_processing): Add __builtin_[fs]p.
430
2ca340ae
JM
431Tue Sep 9 19:49:38 1997 Jason Merrill <jason@yorick.cygnus.com>
432
433 * pt.c (unify): Just return 0 for a TYPENAME_TYPE.
434
03555413
MM
435Tue Sep 9 17:57:25 1997 Mark Mitchell <mmitchell@usa.net>
436
437 * error.c (dump_decl): Avoid crashing when presented with a
81e98a98
JM
438 uninitialized constant, as can occur with a template parameter.
439 (dump_expr): Make sure that there are enough levels of
440 current_template_parms before we start diving through them.
03555413 441
b0d75c1e
BK
4421997-09-09 Brendan Kehoe <brendan@lisa.cygnus.com>
443
444 * typeck.c (build_indirect_ref): Heed FLAG_VOLATILE similar to
445 c-typeck.c.
446
a2676865
JM
447Tue Sep 9 09:36:39 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
448
449 * except.c (expand_throw): Call build_delete for all
450 exception types, not just objects with destructors.
451
b3d5a58b
JG
452Mon Sep 8 02:33:20 1997 Jody Goldberg <jodyg@idt.net>
453
454 * decl.c (current_local_enum): Remove static.
455 * pt.c (tsubst_enum): Save and restore value of current_local_enum
456 in case template is expanded in enum decl.
457 (instantiate_class_template) : Use new tsubst_enum signature.
458 (tsubst_expr): Likewise.
459
786b5245
MM
460Mon Sep 8 01:21:43 1997 Mark Mitchell <mmitchell@usa.net>
461
462 * pt.c (begin_member_template_processing): Take a function as
463 argument, not a set of template arguments. Use the template
464 parameters, rather than the arguments. Handle non-type parameters
465 correctly. Push a binding level for the parameters so that multiple
466 member templates using the same parameter names can be declared.
467 (end_member_template_processing): Pop the binding level.
468 (push_template_decl): Mark member templates as static when
469 appropriate.
470
471 * lex.c (do_pending_inlines): Pass the function, not its template
472 arguments, to begin_member_template_processing.
473 (process_next_inline): Likewise.
474 (do_pending_defargs): Likewise.
475
476 * error.c (dump_expr): Obtain the correct declaration for a
477 TEMPLATE_CONST_PARM.
478
479 * call.c (add_template_conv_candidate): New function.
480 (build_object_call): Handle member templates, as done in the other
481 build_ functions.
482
aa5f3bad
MM
483Sat Sep 6 10:20:27 1997 Mark Mitchell <mmitchell@usa.net>
484
485 * decl.c (replace_defag): Undo previous change.
486 * lex.c (do_pending_defargs): Deal with member templates.
487
488 * pt.c (is_member_template): Avoid crashing when passed a
489 non-function argument.
490
98c1c668
JM
491Fri Sep 5 17:27:38 1997 Jason Merrill <jason@yorick.cygnus.com>
492
493 * class.c (grow_method): Remove check for redeclaration.
494
a2676865
JM
495Fri Sep 5 01:37:17 1997 Mark Mitchell <mmitchell@usa.net>
496
497 * cp-tree.h (INNERMOST_TEMPLATE_PARMS): New macro.
498 (DECL_INNERMOST_TEMPLATE_PARMS): Likewise.
499 (PRIMARY_TEMPLATE_P): Use it.
500 * call.c (build_overload_call_real): Use it.
501 * class.c (instantiate_type): Likewise.
502 * decl.c (decls_match): Likewise.
503 * method.c (build_overload_identifier): Likewise.
504 * pt.c (push_template_decl): Likewise.
505 (classtype_mangled_name): Likewise.
506 (lookup_template_class): Likewise.
507
508 * cp-tree.h (DECL_NTPARMS): Change name from DECL_NT_PARMS to
509 DECL_NTPARMS to conform to usage elsewhere.
510 * call.c (add_template_candidate): Likewise.
511 * class.c (instantiate_type): Likewise.
512 * pt.c (instantiate_template): Likewise.
513 (get_bindings): Likewise.
514
515 * class.c (grow_method): Use DECL_FUNCTION_TEMPLATE_P instead of
516 is_member_template.
517
518 * pt.c (unify): Undo changes to allow multiple levels of template
519 parameters.
520 (type_unification): Likewise.
521 (fn_type_unification): Likewise.
522 (get_class_bindings): Likewise.
523 * cp-tree.h (Likewise).
524
525 * decl.c (replace_defarg): Check that the type of the default
526 parameter does not invlove a template type before complaining
527 about the initialization.
528
529 * error.c (dump_expr): Deal with template constant parameters in
530 member templates correctly.
531
532 * pt.c (is_member_template): Deal with class specializations
533 correctly.
534 (tsubst): Handle "partial instantiation" of member templates
535 correctly.
536
98c1c668
JM
537Wed Sep 3 12:30:24 1997 Mark Mitchell <mmitchell@usa.net>
538
539 * pt.c (type_unification): Change calling squence to allow for
540 multiple levels of template parameters.
541 (tsubst_expr): Likewise.
542 (tsubst): Likewise.
543 (tsubst_copy): Likewise.
544 (instantiate_template): Likewise.
545 (unify): Likewise.
546 * call.c (build_overload_call_real): Use it.
547 (add_builtin_candidate): Use it.
548 (build_new_method_call): Use it.
549 * class.c (instantiate_type): Use it.
550 * decl.c (grokdeclarator): Use it.
551 * decl2.c (finish_file): Use it.
552 * method.c (build_overload_identifier): Use it.
553
554 * call.c (add_template_candidate): Add additional parameter for
555 the function return type. Call fn_type_unification istead of
556 type_unification.
557 (build_user_type_conversion_1): Handle member templates.
558 (build_new_function_call): Likewise.
559 (build_new_op): Likewise.
560 (build_new_method_call): Likewise.
561
562 * class.c (grow_method): Don't give an error message indicating
563 that two member templates with the same name are ambiguous.
564 (finish_struct): Treat member template functions just like member
565 functions.
566
567 * cp-tree.h (check_member_template): Add declaration.
568 (begin_member_template_processing): Likewise.
569 (end_member_template_processing): Likewise.
570 (fn_type_unification): Likewise.
571 (is_member_template): Likewise.
572 (tsubst): Change prototype.
573 (tsubst_expr): Likewise.
574 (tsubst_copy): Likewise.
575 (instantiate_template): Likewise.
576 (get_bindings): Likewise.
577
578 * decl.c (decls_match): Handle multiple levels of template
579 parameters.
580 (pushdecl): Handle template type params just like other type
581 declarations.
582 (push_class_level_binding): Return immediately if the
583 class_binding_level is NULL.
584 (grokfndecl): If check_classfn() returns a member_template, use
585 the result of the template, not the template itself.
586
587 * decl2.c (check_member_template): New function. Check to see
588 that the entity declared to be a member template can be one.
589 (check_classfn): Allow redeclaration of member template functions
590 with different types; the new functions can be specializations or
591 explicit instantiations.
592
593 * error.c (dump_decl): Handle multiple levels of template
594 parameters.
595 (dump_function_decl): Update to handle function templates.
596
597 * lex.c (do_pending_inlines): Set up template parameter context
598 for member templates.
599 (process_next_inline): Likewise.
600
601 * method. (build_overload_identifier): Adjust for multiple levels
602 of template parameters.
603
604 * parse.y (fn.def2): Add member templates.
605 (component_decl_1): Likewise.
606
607 * pt.c (begin_member_template_processing): New function.
608 (end_member_template_processing): Likewise.
609 (is_member_template): Likewise.
610 (fn_type_unification): Likewise.
611 (current_template_parms): Return a vector of all the template
612 parms, not just the innermost level of parms.
613 (push_template_decl): Deal with the possibility of member
614 templates.
615 (lookup_template_class): Likewise.
616 (uses_template_parms): Likewise.
617 (tsubst): Modify processing to TEMPLATE_TYPE_PARM and
618 TEMPLATE_CONST_PARM to deal with multiple levels of template
619 arguments. Add processing of TEMPLATE_DECL to produce new
620 TEMPLATE_DECLs from old ones.
621 (do_decl_instantiation): Handle member templates.
622
623 * search.c (lookup_fnfields_1): Handle member template conversion
624 operators.
625
626 * tree.c (cp_tree_equal): Check the levels, as well as the
627 indices, of TEMPLATE_CONST_PARMs.
628
629 * typeck.c (comptypes): Check the levels, as well as the indices,
630 fo TEMPLATE_TYPE_PARMs.
631 (build_x_function_call): Treat member templates like member
632 functions.
633
03e70705
JM
634Wed Sep 3 11:09:25 1997 Jason Merrill <jason@yorick.cygnus.com>
635
c1bc6829
JM
636 * typeck.c (c_expand_return): Always convert_for_initialization
637 before checking for returning a pointer to local.
638
03e70705
JM
639 * pt.c (type_unification): If strict and the function parm doesn't
640 use template parms, just compare types.
641
642Wed Sep 3 10:35:49 1997 Klaus Espenlaub <kespenla@student.informatik.uni-ulm.de>
3d015f46
KE
643
644 * method.c (build_overloaded_value): Replace direct call
645 to the floating point emulator with REAL_VALUE_TO_DECIMAL macro.
646
056c014d
JM
647Wed Sep 3 00:02:53 1997 Jason Merrill <jason@yorick.cygnus.com>
648
649 * typeck.c (convert_arguments): Don't arbitrarily choose the first
650 of a set of overloaded functions.
651
ca79f85d
JM
652Tue Sep 2 12:09:13 1997 Jason Merrill <jason@yorick.cygnus.com>
653
056c014d
JM
654 * lex.c (real_yylex): Don't elide __FUNCTION__.
655
37dac039
JM
656 * method.c (build_overload_value): Add in_template parm.
657 (build_overload_int): Likewise.
658 (build_overload_identifier): Pass it.
659
660 * decl.c (duplicate_decls): Don't bash a previous template
661 definition with a redeclaration.
662
ca79f85d
JM
663 * pt.c (unify): float doesn't match double.
664
665 * pt.c (do_type_instantiation): Handle getting a _TYPE or a
666 TYPE_DECL. Handle getting non-template types.
667 * parse.y (explicit_instantiation): Use typespec instead of
668 aggr template_type.
669
670Tue Sep 2 10:27:08 1997 Richard Henderson <rth@cygnus.com>
671
672 * typeck.c (build_ptrmemfunc1): Clean up ptr->int cast warnings.
673
238109cd 674Mon Sep 1 13:19:04 1997 Eugene Mamchits <eugin@ips.ras.ru>
7e3af374 675
03e70705
JM
676 * call.c (add_builtin_candidate): Add missing TREE_TYPE.
677 (compare_ics): Likewise.
238109cd
JM
678
679Mon Sep 1 13:19:04 1997 Jason Merrill <jason@yorick.cygnus.com>
03e70705
JM
680
681 * call.c (joust): Warn about choosing one conversion op over
682 another because of 'this' argument when the other return type is
683 better.
684 (source_type): New fn.
685
7e3af374
JM
686 * call.c (build_new_op): Strip leading REF_BIND from first operand
687 to builtin operator.
688
689 * decl2.c (mark_vtable_entries): Mark abort_fndecl as used when we
690 use its RTL.
691
8e69329a
JM
692Thu Aug 28 09:45:23 1997 Jason Merrill <jason@yorick.cygnus.com>
693
694 * call.c (null_ptr_cst_p): Remove support for (void*)0.
695
5ddc28a5
JL
696Wed Aug 27 02:03:34 1997 Jeffrey A Law (law@cygnus.com)
697
bdcaf773
JL
698 * typeck.c (expand_target_expr): Make definition match declaration.
699
5ddc28a5
JL
700 * class.c (get_basefndecls): Make definition match declaration.
701
922ddba4
JM
702Mon Aug 25 14:30:02 1997 Jason Merrill <jason@yorick.cygnus.com>
703
818045b6
JM
704 * input.c (sub_getch): Eventually give up and release the input file.
705
706 * decl.c (cp_finish_decl): If #p i/i, put inline statics in the
707 right place.
708
922ddba4
JM
709 * call.c (joust): Tweak message.
710
711Sat Aug 23 18:02:59 1997 Mark Mitchell <mmitchell@usa.net>
712
713 * error.c (type_as_string): Put const/volatile on template type
714 parameters where appropriate.
715
4c9e597b
JL
716Sat Aug 23 17:47:22 1997 Jeffrey A Law (law@cygnus.com)
717
718 * call.c (strictly_better): Make arguments unsigned ints.
719
8eeda2ec
JM
720Thu Aug 21 18:48:44 1997 Jason Merrill <jason@yorick.cygnus.com>
721
722 * lex.c (real_yylex): Refer to __complex instead of complex.
723
8975416c
R
724Thu Aug 21 22:25:46 1997 J"orn Rennecke <amylaar@cygnus.co.uk>
725
726 * lex.c (real_yylex): Don't use getc directly.
727
49c249e1
JM
728Wed Aug 20 17:25:08 1997 Jason Merrill <jason@yorick.cygnus.com>
729
730 * call.c (is_subseq): Don't try to be clever.
731
732Wed Aug 20 03:13:36 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
733
734 * parse.y, pt.c: Include "except.h".
735 * call.c, class.c, class.h, cp-tree.h, cvt.c, decl.c, decl2.c,
736 error.c, except.c, expr.c, friend.c, g++spec.c, init.c, input.c,
737 lex.c, lex.h, method.c, parse.y, pt.c, repo.c, rtti.c, search.c,
738 sig.c, spew.c, tree.c, typeck.c, typeck2.c, xref.c: Finish
739 prototyping.
740
741Wed Aug 20 01:34:40 1997 Jason Merrill <jason@yorick.cygnus.com>
742
743 * decl2.c (mark_vtable_entries): Instead of replacing pure
744 virtuals with a reference to __pure_virtual, copy the decl and
745 change the RTL.
746
f62dbf03
JM
747Tue Aug 19 02:26:07 1997 Jason Merrill <jason@yorick.cygnus.com>
748
f017f649
JM
749 * pt.c (lookup_nested_type_by_name): Handle typedef wierdness.
750
751 * typeck2.c (my_friendly_abort): Report bugs to egcs-bugs@cygnus.com.
752
fe4e8851
JM
753 * pt.c (instantiate_class_template): Call repo_template_used
754 before finish_prevtable_vardecl.
755
f62dbf03
JM
756 * call.c (is_subseq): New fn.
757 (compare_ics): Use it.
758
759 * repo.c (finish_repo): Don't crash on no args.
760
761 * parse.y (named_complex_class_head_sans_basetype): Handle
762 explicit global scope.
763 * decl2.c (handle_class_head): New fn.
764
765 * pt.c (unify): Add CONST_DECL case.
766
da20811c
JM
767Thu Aug 14 10:05:13 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
768
769 * rtti.c (permanent_obstack): Fix decl to not be a pointer.
770
771 * cp-tree.h (report_type_mismatch): Add prototype.
772 * call.c (build_overload_call_real): Remove erroneous fourth
773 argument to report_type_mismatch.
774 (build_user_type_conversion_1): Remove erroneous second arg to
775 tourney.
776 (build_new_function_call): Likewise.
777 (build_object_call): Likewise.
778 (build_new_op): Likewise.
779 (build_new_method_call): Likewise.
780
781Wed Aug 13 19:19:25 1997 Jason Merrill <jason@yorick.cygnus.com>
782
783 * error.c (dump_decl): Don't bother processing a function with no
784 DECL_LANG_SPECIFIC.
785
786 * method.c (emit_thunk): Call init_function_start in the macro case.
787
788Wed Aug 13 10:46:19 1997 H.J. Lu (hjl@gnu.ai.mit.edu)
789
790 * decl2.c (DEFAULT_VTABLE_THUNKS): Define to be 0 if not
791 defined and used to set flag_vtable_thunks.
792
793Tue Aug 12 20:13:57 1997 Jason Merrill <jason@yorick.cygnus.com>
794
795 * parse.y: Don't clear the inlines from their obstack until they've
796 all been processed.
797
798 * decl.c (duplicate_decls): Don't complain about exception
799 specification mismatch if flag_exceptions is off.
800
801Mon Aug 11 15:01:56 1997 Marc Lehmann <pcg@goof.com>
802
803 * Make-lang.in (c++.distclean): Remove g++.c on make distclean.
804
805Sun Aug 10 12:06:09 1997 Paul Eggert <eggert@twinsun.com>
806
807 * cp-tree.h: Replace STDIO_PROTO with PROTO in include files.
808 * cvt.c, error.c, except.c, expr.c, friend.c, init.c, rtti.c:
809 Include <stdio.h> before include files that formerly used STDIO_PROTO.
810
811 * decl.c, g++spec.c, lex.c, method.c, repo.c:
812 Include "config.h" first, as per autoconf manual.
813
814Fri Aug 8 11:47:48 1997 Jason Merrill <jason@yorick.cygnus.com>
815
816 * decl.c (duplicate_decls): Tweak wording.
817 * lex.c (do_pending_defargs): Don't die if we see a default arg
818 that isn't a DEFAULT_ARG.
819 * error.c (dump_expr): Handle DEFAULT_ARG.
820
821 * decl2.c (lang_decode_option): Handle -fhandle-exceptions.
822 * lang-options.h: Add -fhandle-exceptions.
823
824 * class.c (build_vtable): vtables are artificial.
825 (prepare_fresh_vtable): Likewise.
826
827Wed Aug 6 11:02:36 1997 Jason Merrill <jason@yorick.cygnus.com>
828
829 * cvt.c (ocp_convert): After converting to the target type, set
830 LOOKUP_NO_CONVERSION.
831
832 * call.c (joust): Warn about potentially confusing promotion rules
833 with -Wsign-promo.
834 * cp-tree.h, lang-options.h, decl2.c: Support -Wsign-promo.
835
836Tue Aug 5 15:15:07 1997 Michael Meissner <meissner@cygnus.com>
837
838 * exception.cc: Declare __terminate_func with noreturn attribute.
839
8dff1027
MS
840Fri Aug 1 03:18:15 1997 Jason Merrill <jason@yorick.cygnus.com>
841
842 * parse.y: Break out eat_saved_input, handle errors.
da20811c 843 (function_try_block): Use compstmt instead of compstmt_or_error.
8dff1027
MS
844
845Thu Jul 31 17:14:04 1997 Jason Merrill <jason@yorick.cygnus.com>
846
847 * tree.c (build_cplus_new): Don't set TREE_ADDRESSABLE.
848
849Fri Jul 4 01:45:16 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
850
851 * Make-lang.in (cplib2.txt, cplib2.ready): Instead of checking for
852 existence of cc1plus check whether $(LANGUAGES) contains C++.
853
854Wed Jul 30 13:04:21 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
855
856 * method.c (do_build_copy_constructor): When copying an anonymous
857 union member loop around to handle nested anonymous unions. Use
858 the offset of the member relative to the outer structure, not the
859 union.
860
86e6f22f
JM
861Tue Jul 29 21:17:29 1997 Jason Merrill <jason@yorick.cygnus.com>
862
863 * call.c (resolve_args): New fn.
864 (build_new_function_call): Use it.
865 (build_object_call): Likewise.
866 (build_new_method_call): Likewise.
867
868Mon Jul 28 16:02:36 1997 Jason Merrill <jason@yorick.cygnus.com>
869
870 * call.c (build_over_call): tsubst all default parms from templates.
871
42976354
BK
872Wed Jul 23 13:36:25 1997 Jason Merrill <jason@yorick.cygnus.com>
873
874 * decl.c (struct cp_function): Add static_labelno.
875 (push_cp_function_context): Save it.
876 (pop_cp_function_context): Restore it.
877
878Tue Jul 22 14:43:29 1997 Jason Merrill <jason@yorick.cygnus.com>
879
880 * typeck.c (build_component_ref_1): Convert from reference.
881
882Tue Jul 22 11:06:23 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
883
884 * parse.y (current_declspecs, prefix_attributes): Initialize to
885 NULL_TREE.
886
887 * parse.y (initdcl0): Make sure CURRENT_DECLSPECS is non-nil
888 before we try to force it to be a TREE_LIST.
889 (decl): Make sure $1.t is non-nil.
890
891Sun Jul 20 11:53:07 1997 Jason Merrill <jason@yorick.cygnus.com>
892
893 * pt.c (uses_template_parms): Handle template first-parse codes.
894
895 * decl.c (cp_finish_decl): Only warn about user-defined statics.
896
897Fri Jul 18 17:56:08 1997 Jason Merrill <jason@yorick.cygnus.com>
898
899 * pt.c (unify): Handle BOOLEAN_TYPE.
900
901 * cp-tree.h: Lose PARM_DEFAULT_FROM_TEMPLATE.
902 * pt.c (tsubst): Don't set it.
903 * call.c (build_over_call): Use uses_template_parms.
904
905Thu Jul 17 18:06:30 1997 Jason Merrill <jason@yorick.cygnus.com>
906
907 * method.c (build_overload_nested_name): Use static_labelno
908 instead of var_labelno.
909 (build_qualified_name): New fn.
910 (build_overload_name): Split out from here.
911 (build_static_name): Use build_qualified_name.
912 * decl.c (cp_finish_decl): Statics in extern inline functions
913 have comdat linkage.
914 (start_function): Initialize static_labelno.
915
916Thu Jul 17 11:20:17 1997 Benjamin Kosnik <bkoz@rhino.cygnus.com>
917
918 * class.c (finish_struct_methods): add check of warn_ctor_dtor_privacy
919 before "all member functions in class [] are private"
920
921Wed Jul 16 23:47:08 1997 Jason Merrill <jason@yorick.cygnus.com>
922
923 * lex.c (do_scoped_id): convert_from_reference.
924 * init.c (build_offset_ref): Likewise.
925
42976354
BK
926Wed Jul 16 12:34:29 1997 Benjamin Kosnik <bkoz@lisa.cygnus.com>
927
928 * error.c (dump_expr): Check TREE_OPERAND before dump_expr_list.
929
930Mon Jul 14 03:23:46 1997 Jason Merrill <jason@yorick.cygnus.com>
931
932 * typeck.c (get_member_function_from_ptrfunc): Promote index
933 before saving it.
934
935Sun Jul 13 00:11:52 1997 Jason Merrill <jason@yorick.cygnus.com>
936
937 * tree.c (layout_basetypes): Move non-virtual destructor warning.
938 * decl.c (xref_basetypes): Remove non-virtual destructor warning.
939
940Sat Jul 12 12:47:12 1997 Jason Merrill <jason@yorick.cygnus.com>
941
942 * decl.c (grokdeclarator): Call add_defarg_fn for the function
943 type, too.
944 * lex.c (add_defarg_fn): Adjust.
945 (do_pending_defargs): Adjust. Don't skip the first parm.
946
947Fri Jul 11 01:39:50 1997 Jason Merrill <jason@yorick.cygnus.com>
948
949 * decl.c (build_enumerator): Global enumerators are also readonly.
950
951 * rtti.c (build_dynamic_cast_1): Renamed from build_dynamic_cast.
952 (build_dynamic_cast): Call it and convert_from_reference.
953
954 * lex.c (add_defarg_fn): New fn.
955 (snarf_defarg): Don't add to defarg_types.
956 (do_pending_defargs): Lose defarg_types. All fns we process now
957 have defargs.
958 * decl.c (grokfndecl): Call add_defarg_fn.
959
960 * Makefile.in (CONFLICTS): Expect 18 s/r conflicts.
961 * cp-tree.def: Add DEFAULT_ARG.
962 * spew.c (yylex): Call snarf_defarg as appropriate.
963 * parse.y: New tokens DEFARG and DEFARG_MARKER.
964 (defarg_again, pending_defargs, defarg, defarg1): New rules.
965 (structsp): Use pending_defargs.
966 (parms, full_parm): Use defarg.
967 * lex.c (init_lex): Initialize inline_text_firstobj.
968 (do_pending_inlines): Never pass the obstack to feed_input.
969 (process_next_inline): Call end_input instead of restore_pending_input.
970 (clear_inline_text_obstack, reinit_parse_for_expr, do_pending_defargs,
971 finish_defarg, feed_defarg, snarf_defarg, maybe_snarf_defarg): New fns.
972 * input.c (end_input): New fn.
973 (sub_getch): At the end of some fed input, just keep returning EOF
974 until someone calls end_input.
975 Remove 'obstack' field from struct input_source.
976 * decl.c (grokparms): Handle DEFAULT_ARG.
977 (replace_defarg): New fn.
978 * cp-tree.h (DEFARG_LENGTH, DEFARG_POINTER): New macros.
979
980Wed Jul 9 13:44:12 1997 Jason Merrill <jason@yorick.cygnus.com>
981
982 * call.c (implicit_conversion): If nothing else works, try binding
983 an rvalue to a reference.
984
985Wed Jul 9 13:04:38 1997 Geoffrey Noer <noer@cygnus.com>
986
987 * decl.c (init_decl_processing): fix Jun 30 patch -- move
988 ifndef for Cygwin32 to include SIGSEGV.
989
7834ab39
MS
990Thu Jul 3 01:44:05 1997 Jason Merrill <jason@yorick.cygnus.com>
991
992 * class.c (finish_struct_1): Only complain about pointers without
993 copy stuff if there are any constructors.
994
995 * rtti.c (build_dynamic_cast): Call complete_type on the types.
996
997 * decl.c (grokfndecl): If the function we chose doesn't actually
998 match, die.
999
1000 * decl2.c (grokclassfn): Don't specify 'const int' for the
1001 artificial destructor parm.
1002
1003 * pt.c (type_unification): If we are called recursively, nothing
1004 decays.
1005
1006Mon Jun 30 17:53:21 1997 Geoffrey Noer <noer@cygnus.com>
1007
42976354
BK
1008 * decl.c (init_decl_processing): Stop trying to catch signals
1009 other than SIGABRT since the Cygwin32 library doesn't support
1010 them correctly yet. This fixes a situation in which g++ causes
1011 a hang on SIGSEGVs and other such signals in our Win32-hosted
1012 tools.
7834ab39
MS
1013
1014Mon Jun 30 14:50:01 1997 Jason Merrill <jason@yorick.cygnus.com>
1015
1016 * tree.c (mapcar, case CALL_EXPR): Handle all the parse node data.
1017
1018Fri Jun 27 15:18:49 1997 Jason Merrill <jason@yorick.cygnus.com>
1019
1020 * typeck2.c (store_init_value): Always return the value if our
1021 type needs constructing.
1022
1023 * method.c (hack_identifier): Convert class statics from
1024 reference, too.
1025
1026Thu Jun 26 11:44:46 1997 Jason Merrill <jason@yorick.cygnus.com>
1027
1028 * Make-lang.in (cplib2.ready): Add $(LANGUAGES) dependency.
1029
b88c08b6
MS
1030Thu Jun 19 16:49:28 1997 Mike Stump <mrs@cygnus.com>
1031
1032 * typeck.c (c_expand_return): Make sure we clean up temporaries at
1033 the end of return x;
1034
1035Thu Jun 19 12:28:43 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1036
1037 * lex.c (check_for_missing_semicolon): Also check for CV_QUALIFIER.
1038
6633d636
MS
1039Tue Jun 17 18:35:57 1997 Mike Stump <mrs@cygnus.com>
1040
1041 * except.c (expand_builtin_throw): Add support
1042 -fno-sjlj-exceptions -fPIC exception handling on the SPARC.
1043
1044Mon Jun 16 01:24:37 1997 Jason Merrill <jason@yorick.cygnus.com>
1045
1046 * repo.c (extract_string): Null-terminate.
1047
1048 * cp-tree.h (TI_SPEC_INFO): New macro.
1049 (CLASSTYPE_TI_SPEC_INFO): New macro.
1050 * pt.c (push_template_decl): Correctly determine # of template parms
1051 for partial specs.
1052
1053 * call.c (compare_ics): Really fix 'this' conversions.
1054
1055 * pt.c (do_decl_instantiation): Don't crash on explicit inst of
1056 non-template fn.
1057
1058 * pt.c (push_template_decl): Complain about mismatch in # of
1059 template parms between a class template and a member template.
1060
1061Sun Jun 15 02:38:20 1997 Jason Merrill <jason@yorick.cygnus.com>
1062
1063 * method.c (synthesize_method): You can't call
1064 function_cannot_inline_p after finish_function.
1065 * decl.c (finish_function): Turn on flag_inline_functions and turn
1066 off DECL_INLINE before handing a synthesized method to the
1067 backend.
1068
1069Thu Jun 12 17:35:28 1997 Jason Merrill <jason@yorick.cygnus.com>
1070
1071 * method.c (synthesize_method): Remove July 30 change to never set
1072 DECL_INLINE if at_eof.
1073
1074Thu Jun 12 15:25:08 1997 Mike Stump <mrs@cygnus.com>
1075
1076 * xref.c (GNU_xref_member): Ensure that the node has a
1077 decl_lang_specific part before checking DECL_FRIEND_P.
1078
1079Thu Jun 12 12:36:05 1997 Jason Merrill <jason@yorick.cygnus.com>
1080
1081 * pt.c (instantiate_class_template): Diagnose non-class types used
1082 as bases.
1083
1084Wed Jun 11 17:33:40 1997 Jason Merrill <jason@yorick.cygnus.com>
1085
1086 * typeck.c (build_conditional_expr): Use convert_for_initialization
1087 instead of convert_and_check.
1088
1089Wed Jun 11 12:31:33 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1090
1091 * parse.y (typespec): Don't pedwarn for typeof.
1092
1093Tue Jun 10 00:22:09 1997 Jason Merrill <jason@yorick.cygnus.com>
1094
1095 * repo.c (finish_repo): Only check changes if we would write a
1096 repo file.
1097
1098 * call.c (compare_ics): Fix handling of 'this' conversions.
1099
1100 * pt.c (do_decl_instantiation): Support static data too. Rename
1101 from do_function_instantiation.
1102 * cp-tree.h: Adjust.
1103 * parse.y: Adjust.
1104
1105 * repo.c (extract_string): New fn.
1106 (get_base_filename): Use it.
1107 (init_repo): Compare old args with current args.
1108
1109Mon Jun 9 14:25:30 1997 Mike Stump <mrs@cygnus.com>
1110
1111 * Makefile.in, Make-lang.in: Protect C-ls with a comment
1112 character, idea from Paul Eggert <eggert@twinsun.com>.
1113
1114Mon Jun 9 01:52:03 1997 Jason Merrill <jason@yorick.cygnus.com>
1115
1116 * typeck.c (c_expand_return): Be more persistent in looking for
1117 returned temps.
1118
1119 * cvt.c (build_up_reference): Use NOP_EXPR for switching from
1120 pointer to reference.
1121
1122 * class.c (build_vbase_path): Don't do anything if PATH has no steps.
1123
1124Sun Jun 8 03:07:05 1997 Jason Merrill <jason@yorick.cygnus.com>
1125
1126 * init.c (build_member_call, build_offset_ref):
1127 Use do_scoped_id instead of do_identifier.
1128
1129 * cvt.c (convert): Remove bogosity.
1130
1131Sat Jun 7 20:50:17 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1132
1133 * cvt.c (build_up_reference): Do checks of ARGTYPE and
1134 TARGET_TYPE before trying to use get_binfo.
1135
1136Fri Jun 6 17:36:39 1997 Jason Merrill <jason@yorick.cygnus.com>
1137
1138 * cvt.c (build_up_reference): Call get_binfo to get access control.
1139
1140 * decl2.c (import_export_decl): If we don't support weaks, leave
1141 statics undefined.
1142
1143Fri Jun 6 15:55:49 1997 Mike Stump <mrs@cygnus.com>
1144
1145 * except.c (expand_builtin_throw): Add support for machines that
1146 cannot access globals after throw's epilogue when
1147 -fno-sjlj-exceptions is used.
1148
1149Thu Jun 5 16:28:43 1997 Jason Merrill <jason@yorick.cygnus.com>
1150
1151 * parse.y: 'std::' becomes '::'.
1152 * lex.c (real_yylex): Remove 'namespace' warning.
1153 * init.c (build_member_call): Ignore 'std::'.
1154 (build_offset_ref): Likewise.
1155 * decl2.c (do_using_directive): Ignore 'using namespace std;'.
1156 (do_toplevel_using_decl): Ignore 'using std::whatever'.
1157 * decl.c (push_namespace): Just sorry.
1158 (pop_namespace): Nop.
1159 (init_decl_processing): Declare std namespace.
1160
013bc8af
MS
1161Tue Jun 3 18:08:23 1997 Jason Merrill <jason@yorick.cygnus.com>
1162
1163 * search.c (push_class_decls): A name which ambiguously refers to
1164 several instantiations of the same template just refers to the
1165 template.
1166
1167Tue Jun 3 12:30:40 1997 Benjamin Kosnik <bkoz@cirdan.cygnus.com>
1168
1169 * decl.c (build_enumerator): fix problem with unsigned long
1170 enumerated values being smashed to ints, causing overflow
1171 when computing next enumerated value. (for enum values around
1172 MAX_VAL).
1173
1174Mon Jun 2 17:40:56 1997 Jason Merrill <jason@yorick.cygnus.com>
1175
1176 * typeck.c (build_component_ref): Only call mark_used on a decl.
1177
1178Thu May 29 15:54:17 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1179
1180 * typeck.c (build_c_cast): Make the check for a ptr to function
1181 more specific before possible default_conversion call.
1182
e00737d2
MS
1183Thu May 29 13:02:06 1997 Mike Stump <mrs@cygnus.com>
1184
1185 * except.c (expand_exception_blocks): Simplify and fix and make
1186 sure we don't end a region in a sequence, as expand_end_bindings
1187 doesn't like it.
1188
1189Wed May 28 17:08:03 1997 Mike Stump <mrs@cygnus.com>
1190
1191 * except.c (init_exception_processing): Mark terminate as not
1192 returning so that the optimizer can optimize better.
1193
37c46b43
MS
1194Tue May 27 19:49:19 1997 Mike Stump <mrs@cygnus.com>
1195
1196 * cvt.c (convert): Don't do any extra work, if we can avoid it
1197 easily.
1198
1199Tue May 27 18:21:47 1997 Mike Stump <mrs@cygnus.com>
1200
1201 * *.[chy]: Change cp_convert to ocp_convert, change convert to
1202 cp_convert. convert is now reserved for the backend, and doesn't
1203 have the semantics a frontend person should ever want.
1204
1205Fri May 23 10:58:31 1997 Jason Merrill <jason@yorick.cygnus.com>
1206
1207 * lang-specs.h: Define __EXCEPTIONS if exceptions are enabled.
1208 Lose -traditional support.
1209
1210Thu May 22 15:41:28 1997 Jason Merrill <jason@yorick.cygnus.com>
1211
1212 * rtti.c (get_tinfo_var): Use TYPE_PRECISION (sizetype).
1213
1214 * parse.y (self_reference): Do it for templates, too.
1215 * class.c (pushclass): Don't overload_template_name; the alias
1216 generated by build_self_reference serves the same purpose.
1217
1218 * tree.c (list_hash): Make static, take more args.
1219 (list_hash_lookup): Likewise.
1220 (list_hash_add): Make static.
1221 (list_hash_canon): Lose.
1222 (hash_tree_cons): Only build a new node if one isn't already in the
1223 hashtable.
1224 (hash_tree_chain): Use hash_tree_cons.
1225 * cp-tree.h: Adjust.
1226 * decl.c (grokfndecl): Just check IDENTIFIER_GLOBAL_VALUE instead
1227 of calling lookup_name.
1228
1229Wed May 21 18:24:19 1997 Jason Merrill <jason@yorick.cygnus.com>
1230
1231 * pt.c (instantiate_class_template): TYPE_VALUES for an enum
1232 doesn't refer to the CONST_DECLs.
1233
1234Tue May 20 21:09:32 1997 Bob Manson <manson@charmed.cygnus.com>
1235
1236 * rtti.c (get_tinfo_var): Either INT_TYPE_SIZE or 32, whichever
1237 is bigger.
1238 (expand_class_desc): Convert the last argument to a sizetype.
1239
1240Tue May 20 13:55:57 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1241
1242 * gxx.gperf (__complex, __complex__, __imag, __imag__, __real,
1243 __real__): Add reswords.
1244 * hash.h: Regenerate.
1245 * lex.h (rid): Add RID_COMPLEX.
1246 (RID_LAST_MODIFIER): Set to RID_COMPLEX.
8eeda2ec 1247 * lex.c (init_lex): Add building of RID_COMPLEX.
37c46b43
MS
1248 (real_yylex): General cleanup in line with what c-lex.c also has,
1249 sans the cruft for traditional; add handling of SPEC_IMAG, complex
1250 types, and imaginary numeric constants.
1251 * parse.y (REALPART, IMAGPART): Add tokens.
1252 (unary_expr): Add REALPART and IMAGPART rules.
1253 * cp-tree.h (complex_{integer,float,double,long}_type_node): Declare.
1254 * decl.c (complex_{integer,float,double,long}_type_node): Define
1255 types.
1256 (init_decl_processing): Set up the types.
1257 (grokdeclarator): Add handling of RID_COMPLEX. Set and use
1258 DEFAULTED_INT instead of EXPLICIT_INT when we default to int type.
1259 * call.c (build_new_op): Add REALPART_EXPR and IMAGPART_EXPR cases.
1260 * cvt.c (cp_convert): Handle COMPLEX_TYPE.
1261 * error.c (dump_type_prefix, dump_type, dump_type_suffix): Add
1262 COMPLEX_TYPE case.
1263 * method.c (build_overload_name): Add handling of the different
1264 COMPLEX_TYPEs, prefixing them with `J'.
1265 * pt.c (process_template_parm): Don't let them use a COMPLEX_TYPE
1266 as a template parm.
1267 (uses_template_parms, tsubst, unify): Add COMPLEX_TYPE case.
1268 * tree.c (lvalue_p): Add REALPART_EXPR and IMAGPART_EXPR cases.
1269 (mapcar): Handle COMPLEX_CST.
1270 * typeck.c (build_binary_op_nodefault): Handle COMPLEX_TYPE.
1271 (common_type): Add code for complex types.
1272 (build_unary_op): Add REALPART_EXPR and IMAGPART_EXPR cases.
1273 (convert_for_assignment): Likewise.
1274 (mark_addressable): Add REALPART_EXPR and IMAGPART_EXPR cases.
1275
1276Mon May 19 12:26:27 1997 Jason Merrill <jason@yorick.cygnus.com>
1277
1278 * pt.c (tsubst): Don't pass the MINUS_EXPR for an array domain to
1279 tsubst_expr, as it might try to do overload resolution.
1280
b87692e5
MS
1281Sat May 17 10:48:31 1997 Jason Merrill <jason@yorick.cygnus.com>
1282
1283 * pt.c (instantiate_class_template): Oops.
1284
1285Fri May 16 14:23:57 1997 Jason Merrill <jason@yorick.cygnus.com>
1286
1287 * cp-tree.def: Add TAG_DEFN.
1288 * pt.c (tsubst_enum): New fn.
1289 (instantiate_class_template): Use it.
1290 (tsubst_expr): Support TAG_DEFN.
1291 (tsubst): Support local enums.
1292 (tsubst_copy): Likewise.
1293 * decl.c (finish_enum): Likewise.
1294 (start_enum): If this is a local enum, switch to permanent_obstack.
1295
1296Wed May 14 19:08:28 1997 Mike Stump <mrs@cygnus.com>
1297
1298 * decl.c (store_parm_decls): Set last_parm_cleanup_insn here.
1299 (finish_function): Put the base init code for constructors just
1300 after the parm cleanup insns.
1301 (struct cp_function): Add last_parm_cleanup_insn.
1302 (push_cp_function_context): Likewise.
1303 (pop_cp_function_context): Likewise.
1304
1305Tue May 13 15:51:20 1997 Jason Merrill <jason@yorick.cygnus.com>
1306
1307 * pt.c (tsubst_copy): Handle BIT_NOT_EXPR.
1308
1309Wed May 7 11:17:59 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1310
1311 * method.c (emit_thunk) [ASM_OUTPUT_MI_THUNK]: Build up the RTL
1312 for THUNK_FNDECL before we switch to temporary allocation.
1313
beb53fb8
JM
1314Mon May 5 14:46:53 1997 Jason Merrill <jason@yorick.cygnus.com>
1315
1316 * call.c (build_new_op): Handle null arg2 for ?:.
1317
eb448459
MS
1318Thu May 1 18:26:37 1997 Mike Stump <mrs@cygnus.com>
1319
1320 * except.c (expand_exception_blocks): Ensure that we flow through
37c46b43
MS
1321 the end of the exception region for the exception specification.
1322 Move exception region for the exception specification in, so that
1323 it doesn't protect the parm cleanup. Remove some obsolete code.
1324 * decl.c (store_parm_decls): Likewise.
eb448459
MS
1325 (finish_function): Likewise.
1326
1327Tue Apr 29 15:38:54 1997 Jason Merrill <jason@yorick.cygnus.com>
1328
1329 * init.c (build_new): Fix nothrow handling.
1330
1331Tue Apr 29 14:29:50 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1332
1333 * init.c (emit_base_init): Don't warn about the initialization
1334 list for an artificial member.
1335
1336Fri Apr 25 17:47:59 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1337
1338 * expr.c (do_case): Handle !START case for the error msg.
1339
1340Fri Apr 25 11:55:23 1997 Jason Merrill <jason@yorick.cygnus.com>
1341
1342 * decl2.c, lang-options.h: New option -Weffc++.
1343 * class.c, decl.c, init.c, typeck.c: Move Effective C++ warnings
1344 to -Weffc++.
1345
1346 * decl2.c (finish_prevtable_vardecl): Change NO_LINKAGE_HEURISTICS
37c46b43 1347 to MULTIPLE_SYMBOL_SPACES.
eb448459
MS
1348
1349Wed Apr 23 18:06:50 1997 Jason Merrill <jason@yorick.cygnus.com>
1350
1351 * method.c (emit_thunk, generic case): Set current_function_is_thunk.
1352
1353 * method.c (emit_thunk, macro case): Set up DECL_RESULT.
1354
1355 * typeck.c (c_expand_return): Don't complain about returning void
1356 to void in an artificial function.
1357 * method.c (make_thunk): Change settings of READONLY/VOLATILE,
1358 don't set DECL_RESULT, set DECL_ARTIFICIAL.
1359 (emit_thunk, generic code): Also set up DECL_LANG_SPECIFIC.
1360
eb66be0e
MS
1361Wed Apr 23 14:43:06 1997 Mike Stump <mrs@cygnus.com>
1362
1363 * init.c (init_decl_processing): Add supoprt for setjmp/longjmp based
1364 exception handling.
1365 * except.c (init_exception_processing): Likewise.
1366 (expand_end_catch_block): Likewise.
1367 (expand_exception_blocks): Likewise.
1368 (expand_throw): Likewise.
1369 * exception.cc (__default_terminate): Likewise.
1370
1371 * init.c (perform_member_init): Use new method of expr level
37c46b43 1372 cleanups, instead of cleanups_this_call and friends.
eb66be0e
MS
1373 (emit_base_init): Likewise.
1374 (expand_aggr_vbase_init_1): Likewise.
1375 (expand_vec_init): Likewise.
1376 * decl.c (cp_finish_decl): Likewise.
1377 (expand_static_init): Likewise.
1378 (store_parm_decls): Likewise.
1379 (cplus_expand_expr_stmt): Likewise.
1380 * decl2.c (finish_file): Likewise.
1381
1382 * Make-lang.in (exception.o): Ok to compile with -O now.
1383
1384 * decl.c (maybe_build_cleanup_1): We no longer have to unsave, as
1385 we know it will be done later by the backend.
1386
1387 * decl2.c (lang_f_options): Remove support for short temps.
1388 * lang-options.h: Likewise.
1389
1390Wed Apr 23 04:12:06 1997 Jason Merrill <jason@yorick.cygnus.com>
1391
1392 * tree.c (varargs_function_p): New fn.
1393 * method.c (emit_thunk): Replace broken generic code with code to
37c46b43 1394 generate a heavyweight thunk function.
eb66be0e
MS
1395
1396Tue Apr 22 02:45:18 1997 Jason Merrill <jason@yorick.cygnus.com>
1397
1398 * pt.c (process_template_parm): pedwarn about floating-point parms.
1399
1400 * decl.c (grokdeclarator): inline no longer implies static.
1401
1402 * spew.c (yylex): Always return the TYPE_DECL if we got a scope.
1403
1404Mon Apr 21 15:42:27 1997 Jason Merrill <jason@yorick.cygnus.com>
1405
1406 * class.c (check_for_override): The signature of an overriding
37c46b43 1407 function is not changed.
eb66be0e
MS
1408
1409 * call.c (build_over_call): Move setting of conv into the loop.
da20811c
JM
1410 Note: this change, along with the related changes of the 18th thru
1411 the 20th of April, fix an infinite loop problem in conversions.
eb66be0e
MS
1412
1413Sun Apr 20 16:24:29 1997 Jason Merrill <jason@yorick.cygnus.com>
1414
1415 * call.c (build_user_type_conversion_1): Really ignore rvalue
37c46b43 1416 conversions when looking for a REFERENCE_TYPE.
eb66be0e
MS
1417
1418 * cvt.c (build_up_reference): Eviscerate, use build_unary_op.
1419 * cp-tree.h (TREE_REFERENCE_EXPR): #if 0.
1420 * typeck.c (decay_conversion): Don't set TREE_REFERENCE_EXPR.
1421 (build_unary_op): Likewise.
1422 * call.c (build_over_call): See through a CONVERT_EXPR around the
37c46b43 1423 ADDR_EXPR for on a temporary.
eb66be0e 1424 * typeck.c (c_expand_return): See through a CONVERT_EXPR around
37c46b43 1425 the ADDR_EXPR for a local variable.
eb66be0e
MS
1426
1427Fri Apr 18 12:11:33 1997 Jason Merrill <jason@yorick.cygnus.com>
1428
1429 * call.c (build_user_type_conversion_1): If we're trying to
37c46b43 1430 convert to a REFERENCE_TYPE, only consider lvalue conversions.
eb66be0e
MS
1431 (build_new_function_call): Print candidates.
1432 (implicit_conversion): Try a temp binding if the lvalue conv is BAD.
1433 (reference_binding): Binding a temporary of a reference-related type
1434 is BAD.
1435
1436Thu Apr 17 14:37:22 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1437
1438 * inc/typeinfo (type_info::before): Add cv-qualifier-seq.
1439 * tinfo2.cc (type_info::before): Likewise.
1440
1441Mon Apr 14 12:38:17 1997 Jason Merrill <jason@yorick.cygnus.com>
1442
1443 * call.c (implicit_conversion): Oops.
1444
1445Fri Apr 11 02:18:30 1997 Jason Merrill <jason@yorick.cygnus.com>
1446
1447 * call.c (implicit_conversion): Try to find a reference conversion
37c46b43 1448 before binding a const reference to a temporary.
eb66be0e
MS
1449
1450Wed Apr 2 12:51:36 1997 Mike Stump <mrs@cygnus.com>
1451
1452 * exception.cc (__default_unexpected): Call terminate by default,
1453 so that if the user overrides terminate, the correct function will
1454 be called.
1455
bd6dd845
MS
1456Wed Mar 19 14:14:45 1997 Mike Stump <mrs@cygnus.com>
1457
1458 * parse.y (left_curly): Avoid trying to use any fields of
eb66be0e 1459 error_mark_node, as there aren't any.
bd6dd845
MS
1460
1461Thu Mar 13 16:33:22 1997 Jason Merrill <jason@yorick.cygnus.com>
1462
1463 * lex.c (do_identifier): Avoid breaking on overloaded methods
1464 as default arguments.
1465
1466Wed Mar 12 13:55:10 1997 Hans-Peter Nilsson <Hans-Peter.Nilsson@axis.se>
1467
eb66be0e 1468 * call.c (add_template_candidate): Initialize the variable "dummy".
bd6dd845
MS
1469
1470Mon Mar 10 15:13:14 1997 Brendan Kehoe <brendan@canuck.cygnus.com>
1471
1472 * decl.c (start_decl): Make sure TYPE isn't an error_mark_node
1473 before we try to use TYPE_SIZE and TREE_CONSTANT on it.
1474
1475Fri Mar 7 13:19:36 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1476
1477 * cp-tree.h (comp_ptr_ttypes, more_specialized): Add decl.
1478 (debug_binfo): Delete decl, not needed.
1479
1480 * tree.c (fnaddr_from_vtable_entry, function_arg_chain,
1481 promotes_to_aggr_type): Delete fns.
1482 * cp-tree.h (FNADDR_FROM_VTABLE_ENTRY,
1483 SET_FNADDR_FROM_VTABLE_ENTRY, FUNCTION_ARG_CHAIN,
1484 PROMOTES_TO_AGGR_TYPE): Delete alternates to #if 1.
1485
1486 * decl.c (pending_invalid_xref{,_file,_line}): Delete unused vars.
1487
1488 * friend.c (is_friend_type): Delete fn.
1489 * cp-tree.h (is_friend_type): Delete decl.
1490
1491 * decl.c (original_result_rtx, double_ftype_double,
1492 double_ftype_double_double, int_ftype_int, long_ftype_long,
1493 float_ftype_float, ldouble_ftype_ldouble, last_dtor_insn): Make static.
1494 * typeck.c (original_result_rtx, warn_synth): Delete extern decls.
1495
1496 * decl.c (push_overloaded_decl{,_top_level}): Make static, adding
1497 fwd decls.
1498 * cp-tree.h (push_overloaded_decl{,_top_level}): Delete decls.
1499
1500 * decl.c (pushdecl_nonclass_level): #if 0, unused.
1501 * cp-tree.h (pushdecl_nonclass_level): #if 0 decl.
1502
1503 * lex.c (reinit_lang_specific): #if 0, unused.
1504 * cp-tree.h (reinit_lang_specific): #if 0 decl.
1505
1506 * decl.c (revert_static_member_fn): Make static, adding fwd decl.
1507 * cp-tree.h (revert_static_member_fn): Delete decl.
1508
1509 * class.c (root_lang_context_p): Delete fn.
1510 * cp-tree.h (root_lang_context_p): Delete decl.
1511
1512 * decl.c (set_current_level_tags_transparency): #if 0, unused.
1513 * cp-tree.h (set_current_level_tags_transparency): #if 0 decl.
1514
1515 * lex.c (set_vardecl_interface_info): Make static.
1516 * cp-tree.h (set_vardecl_interface_info): Delete decl.
1517
1518 * call.c (find_scoped_type): Make static.
1519 * cp-tree.h (find_scoped_type): Delete decl.
1520
1521 * search.c (convert_pointer_to_vbase): Make static.
1522 * cp-tree.h (convert_pointer_to_vbase): Delete decl.
1523
1524 * decl.c (const_ptr_type_node): Likewise.
1525 * cp-tree.h (const_ptr_type_node): Delete decl.
1526
1527 * typeck.c (common_base_type): Make static.
1528 * cp-tree.h (common_base_types): Delete erroneous decl.
1529
1530 * pt.c (classtype_mangled_name): Make static.
1531 * cp-tree.h (classtype_mangled_name): Delete decl.
1532
1533 * lex.c (check_newline): Make static.
1534 * cp-tree.h (check_newline): Delete decl.
1535
1536 * typeck.c (build_x_array_ref): Delete fn, same idea as
1537 grok_array_decl.
1538 * cp-tree.h (build_x_array_ref): Delete decl.
1539
1540 * lex.c (copy_decl_lang_specific): Delete fn, same idea as
1541 copy_lang_decl.
1542 * cp-tree.h (copy_decl_lang_specific): #if 0 decl.
1543
1544 * class.c (build_vtable_entry): Make static.
1545 * cp-tree.h (build_vtable_entry): Delete decl.
1546
1547 * class.c (build_vbase_pointer): Make static.
1548 * cp-tree.h (build_vbase_pointer): Delete decl.
1549
1550 * sig.c (build_sptr_ref): Add forward decl and make static.
1551 * cp-tree.h (build_sptr_ref): Delete decl.
1552
1553 * call.c (build_new_method_call): Add forward decl and make static.
1554 * cp-tree.h (build_new_method_call): Delete decl.
1555
1556 * call.c (build_object_call): Make static.
1557 * class.c (check_for_override, complete_type_p, mark_overriders):
1558 Likewise.
1559 * decl.c (cp_function_chain): Likewise.
1560 * lex.c (set_typedecl_interface_info, reinit_parse_for_block):
1561 Likewise.
1562 * pt.c (comp_template_args, get_class_bindings, push_tinst_level):
1563 Likewise.
1564 * tree.c (build_cplus_array_type_1): Likewise.
1565 * typeck.c (comp_ptr_ttypes_{const,real,reinterpret}): Likewise.
1566 (comp_target_parms): Likewise.
1567
1568 * init.c (build_builtin_call): Make static.
1569 * cp-tree.h (build_builtin_call): Delete decl.
1570
1571 * typeck.c (binary_op_error): Delete decl.
1572 * cp-tree.h (binary_op_error): Likewise.
1573
1574Thu Mar 6 16:13:52 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1575
1576 * call.c (build_method_call): Compare against error_mark_node
1577 directly, rather than the ERROR_MARK tree code.
1578 * cvt.c (cp_convert): Likewise.
1579 * decl.c (print_binding_level): Likewise.
1580 (duplicate_decls): Likewise.
1581 (grokdeclarator): Likewise.
1582 (grokdeclarator): Likewise.
1583 * init.c (expand_aggr_init_1): Likewise.
1584 (decl_constant_value): Likewise.
1585 * method.c (build_opfncall): Likewise.
1586 (hack_identifier): Likewise.
1587 * typeck.c (build_modify_expr): Likewise.
1588
1589 * typeck.c (build_c_cast): Don't decl TYPE as register tree.
1590
1591Sun Mar 2 02:54:36 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
1592
1593 * pt.c (unify): Strip NOP_EXPR wrappers before unifying integer values.
1594
1595 * pt.c (coerce_template_parms): Add new error message.
1596
1597 * method.c (build_overload_value): Implement name mangling for
1598 floating-point template arguments.
1599
1600 * method.c (build_overload_int, icat, dicat): Fix mangling of template
1601 arguments whose absolute value doesn't fit in a signed word.
1602
1603Mon Mar 3 12:14:54 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1604
1605 * friend.c: New file; put all of the friend stuff in here.
1606 * init.c: Instead of here.
1607 * Makefile.in (CXX_OBJS): Add friend.o.
1608 (friend.o): Add dependencies.
1609 * Make-lang.in (CXX_SRCS): Add $(srcdir)/cp/friend.c.
1610
1611Sun Mar 2 11:04:43 1997 Jason Merrill <jason@yorick.cygnus.com>
1612
1613 * call.c (build_scoped_method_call): Complain if the scope isn't a
eb66be0e 1614 base.
bd6dd845
MS
1615
1616Wed Feb 26 11:31:06 1997 Jason Merrill <jason@yorick.cygnus.com>
1617
1618 * parse.y (left_curly): Don't crash on erroneous type.
1619
1620 * init.c (build_delete): Fix type of ref.
1621
1622Tue Feb 25 12:41:48 1997 Jason Merrill <jason@yorick.cygnus.com>
1623
1624 * search.c (get_vbase_1): Renamed from get_vbase.
1625 (get_vbase): Wrapper, now non-static.
1626 (convert_pointer_to_vbase): Now static.
1627
1628 * call.c (build_scoped_method_call): Accept a binfo for BASETYPE.
1629 * init.c (build_delete): Pass one.
1630 (build_partial_cleanup_for): Use build_scoped_method_call.
1631 * decl.c (finish_function): Pass a binfo.
1632
1633Mon Feb 24 15:00:12 1997 Jason Merrill <jason@yorick.cygnus.com>
1634
1635 * call.c (build_over_call): Only synthesize non-trivial copy ctors.
1636
1637 * typeck.c (build_c_cast): Lose other reference to flag.
1638
1639 * call.c (build_field_call): Don't look for [cd]tor_identifier.
1640 * decl2.c (delete_sanity): Remove meaningless use of
eb66be0e 1641 LOOKUP_HAS_IN_CHARGE.
bd6dd845 1642 * decl.c (finish_function): Use build_scoped_method_call instead
eb66be0e 1643 of build_delete for running vbase dtors.
bd6dd845 1644 * init.c (build_delete): Call overload resolution code instead of
eb66be0e 1645 duplicating it badly.
bd6dd845 1646
2ba25f50
MS
1647Thu Feb 20 15:12:15 1997 Jason Merrill <jason@yorick.cygnus.com>
1648
1649 * call.c (build_over_call): Call mark_used before trying to elide
1650 the call.
1651
1652 * decl.c (implicitly_declare): Don't set DECL_ARTIFICIAL.
1653
1654Wed Feb 19 11:18:53 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1655
1656 * typeck.c (build_modify_expr): Always pedwarn for a cast to
1657 non-reference used as an lvalue.
1658
1659Wed Feb 19 10:35:37 1997 Jason Merrill <jason@yorick.cygnus.com>
1660
1661 * cvt.c (cp_convert_to_pointer): Convert from 0 to a pmf properly.
1662
1663Tue Feb 18 15:40:57 1997 Jason Merrill <jason@yorick.cygnus.com>
1664
1665 * parse.y (handler): Fix template typo.
1666
1667Sun Feb 16 02:12:28 1997 Jason Merrill <jason@yorick.cygnus.com>
1668
1669 * error.c (lang_decl_name): New fn.
1670 * tree.c (lang_printable_name): Use it.
1671
1672Fri Feb 14 16:57:05 1997 Mike Stump <mrs@cygnus.com>
1673
1674 * g++spec.c: Include config.h so that we can catch bzero #defines
1675 from the config file.
1676
e9f32eb5
MS
1677Tue Feb 11 13:50:48 1997 Mike Stump <mrs@cygnus.com>
1678
1679 * new1.cc: Include a declaration for malloc, to avoid warning, and
eb66be0e
MS
1680 avoid lossing on systems that require one (ones that define malloc
1681 in xm.h).
e9f32eb5
MS
1682
1683Mon Feb 10 22:51:13 1997 Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de>
1684
1685 * decl2.c (max_tinst_depth): New variable.
1686 (lang_decode_option): Parse "-ftemplate-depth-NN" command line
1687 option.
1688 * pt.c (max_tinst_depth): Variable moved.
1689 * lang-options.h: Declare "-ftemplate-depth-NN" command line option
1690 as legal.
1691
1692Fri Feb 7 15:43:34 1997 Jason Merrill <jason@yorick.cygnus.com>
1693
1694 * decl.c (xref_basetypes): Allow a base class that depends on
eb66be0e 1695 template parms to be incomplete.
e9f32eb5
MS
1696
1697 * decl2.c (build_expr_from_tree): Support typeid(type).
1698 * rtti.c (get_typeid): Support templates.
1699 (expand_si_desc, expand_class_desc): Fix string length.
1700 (expand_ptr_desc, expand_attr_desc, expand_generic_desc): Likewise.
1701
312e7d50
JM
1702Tue Feb 4 11:28:24 1997 Jason Merrill <jason@yorick.cygnus.com>
1703
1704 * pt.c (unify, case TEMPLATE_CONST_PARM): Use cp_tree_equal.
1705
1706 * pt.c (tsubst): Put it back for -fno-ansi-overloading.
1707
1708Mon Feb 3 18:41:12 1997 Jason Merrill <jason@yorick.cygnus.com>
1709
1710 * pt.c (tsubst, case FUNCTION_DECL): Lose obsolete code that
eb66be0e
MS
1711 smashes together template and non-template decls of the same
1712 signature.
312e7d50 1713
824b9a4c
MS
1714Thu Jan 30 19:18:00 1997 Jason Merrill <jason@yorick.cygnus.com>
1715
824b9a4c
MS
1716 * pt.c (tsubst): Don't recurse for the type of a TYPENAME_TYPE.
1717
1718Wed Jan 29 11:40:35 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1719
1720 * decl.c (duplicate_decls): Next route, pedwarn about different
1721 exceptions if -pedantic *or* olddecl !DECL_IN_SYSTEM_HEADER.
1722
1723Tue Jan 28 20:43:29 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1724
1725 * cp-tree.h (HAS_DEFAULT_IMPLEMENTATION): Delete macro.
1726 (struct lang_type): Delete has_default_implementation member.
1727 Increase dummy to 21.
1728 * decl.c (start_method): Delete usage.
1729
1730 * cp-tree.h (build_call, null_ptr_cst_p, in_function_p,
1731 store_after_parms, start_decl_1, auto_function): Add decls.
1732 (get_arglist_len_in_bytes, declare_implicit_exception,
1733 have_exceptions_p, make_type_decl, typedecl_for_tag,
1734 store_in_parms, pop_implicit_try_blocks, push_exception_cleanup,
1735 build_component_type_expr, cplus_exception_name,
1736 {make,clear}_anon_parm_name, dont_see_typename): Removed decls.
1737 * call.c (build_this): Make static.
1738 (is_complete): Likewise.
1739 (implicit_conversion): Likewise.
1740 (reference_binding): Likewise.
1741 (standard_conversion): Likewise.
1742 (strip_top_quals): Likewise.
1743 (non_reference): Likewise.
1744 (build_conv): Likewise.
1745 (user_harshness): Likewise.
1746 (rank_for_ideal): Likewise.
1747 * decl.c (start_decl_1): Delete forward decl.
1748 (push_decl_level): Make static.
1749 (resume_binding_level): Make static.
1750 (namespace_bindings_p): Make static.
1751 (declare_namespace_level): Make static.
1752 (lookup_name_real): Make static.
1753 (duplicate_decls): Make static. Take register off NEWDECL and
1754 OLDDECL parm decls.
1755 * decl2.c (get_sentry): Make static.
1756 (temp_name_p): Delete fn.
1757 * except.c (auto_function): Delete decl.
1758 * lex.c (handle_{cp,sysv}_pragma): Make static.
1759 (handle_sysv_pragma) [HANDLE_SYSV_PRAGMA]: Add forward decl.
1760 * method.c (do_build_{copy_constructor,assign_ref}): Make static.
1761 * pt.c (tsubst_expr_values): Make static.
1762 * rtti.c (combine_strings): Delete decl.
1763
1764Tue Jan 28 16:40:40 1997 Jason Merrill <jason@yorick.cygnus.com>
1765
1766 * pt.c (push_template_decl): Handle getting a typedef.
1767
1768 * call.c (build_new_function_call): Complain about void arg.
1769
1770Tue Jan 28 15:25:09 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1771
1772 * decl.c (duplicate_decls): Give pedwarn of different exceptions
1773 if -pedantic, instead of olddecl !DECL_IN_SYSTEM_HEADER.
1774
1775Mon Jan 27 19:21:29 1997 Mike Stump <mrs@cygnus.com>
1776
1777 * except.c (expand_throw): Don't expand the cleanup tree here,
eb66be0e
MS
1778 since we are not going to write the rtl out. Fixes problem with
1779 -g -O on SPARC.
824b9a4c
MS
1780
1781Mon Jan 27 16:24:35 1997 Sean McNeil <sean@mcneil.com>
1782
1783 * Make-lang.in: Add $(exeext) as necessary.
1784
1785Mon Jan 27 13:20:39 1997 Mike Stump <mrs@cygnus.com>
1786
1787 * parse.y (handler_seq): Must have at least one catch clause.
1788
1789Sat Jan 25 12:00:05 1997 Jason Merrill <jason@yorick.cygnus.com>
1790
1791 * call.c (add_builtin_candidate): Restore ?: hack.
1792
1793 * decl.c (grok_op_properties): More warnings.
1794
1795Sat Jan 25 08:50:03 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1796
1797 * decl.c (duplicate_decls): On second thought, do it as a pedwarn
1798 still but only if !DECL_IN_SYSTEM_HEADER (olddecl).
1799
1800 * decl.c (duplicate_decls): Scale back to a warning, and only do
1801 'em if -pedantic.
1802
1803Fri Jan 24 17:52:54 1997 Mike Stump <mrs@cygnus.com>
1804
1805 * decl.c (duplicate_decls): pedwarn mismatched exception
eb66be0e 1806 specifications.
824b9a4c
MS
1807
1808Thu Jan 23 18:18:54 1997 Mike Stump <mrs@cygnus.com>
1809
1810 * call.c (build_new_method_call): Don't display the invisible
eb66be0e 1811 argument for controlling virtual bases.
824b9a4c
MS
1812
1813Thu Jan 23 16:48:10 1997 Mike Stump <mrs@cygnus.com>
1814
1815 * new: Add nothrow new and delete, bad_alloc and throw specifications
1816 for delete.
1817 * decl.c (init_decl_processing): Add throw specification for delete.
1818 * new.cc (nothrow): Define.
1819 * lex.c (real_yylex): Removing warning that throw and friends are
1820 keywords.
1821 * new1.cc (operator new (size_t sz, const nothrow_t&)): Define.
1822 * new2.cc (operator new[] (size_t sz, const nothrow_t&): Define.
1823 * Make-lang.in: Add new{1,2}.{cc,o}.
1824
1825Thu Jan 23 16:39:06 1997 Jason Merrill <jason@yorick.cygnus.com>
1826
1827 * lex.c (cons_up_default_function): Fix return type of synth op=.
1828
1829 * init.c (emit_base_init): Add warnings for uninitialized members
eb66be0e 1830 and bases.
824b9a4c
MS
1831
1832 * decl.c (xref_basetypes): Add warning for non-polymorphic type
eb66be0e 1833 with destructor used as base type.
824b9a4c
MS
1834
1835 * decl.c (grok_op_properties): Add warning for op= returning void.
1836 * typeck.c (c_expand_return): Add warning for op= returning anything
1837 other than *this.
1838
1839 * class.c (finish_struct_1): Add warning for class with pointers
eb66be0e 1840 but not copy ctor or copy op=.
824b9a4c
MS
1841
1842 * cp-tree.h (TI_PENDING_TEMPLATE_FLAG): New macro.
1843 * pt.c (add_pending_template): Use it instead of LANG_FLAG_0.
1844 (instantiate_template): If -fexternal-templates, add this
eb66be0e 1845 instantiation to pending_templates.
824b9a4c
MS
1846
1847 * decl2.c (copy_assignment_arg_p): Disable old hack to support
eb66be0e 1848 Booch components.
824b9a4c
MS
1849
1850Tue Jan 21 18:32:04 1997 Mike Stump <mrs@cygnus.com>
1851
1852 * cvt.c (cp_convert): Pedwarn enum to pointer conversions.
1853
de22184b
MS
1854Mon Jan 20 17:59:51 1997 Jason Merrill <jason@yorick.cygnus.com>
1855
1856 * call.c (standard_conversion): Handle getting references. Tack
eb66be0e 1857 on RVALUE_CONV here. Do it for non-class types, too.
de22184b
MS
1858 (reference_binding): Pass references to standard_conversion.
1859 (implicit_conversion): Likewise.
1860 (add_builtin_candidate): Disable one ?: kludge.
1861 (convert_like): Handle RVALUE_CONVs for non-class types.
1862 (joust): Disable the other ?: kludge.
1863
1864Mon Jan 20 14:53:13 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1865
1866 * decl.c (init_decl_processing): Add code to build up common
1867 function types beforehand, to avoid creation then removal of
1868 things already in the hash table.
1869
1870Mon Jan 20 14:43:49 1997 Jason Merrill <jason@yorick.cygnus.com>
1871
1872 * decl.c (finish_function): Also zero out DECL_INCOMING_RTL for
eb66be0e 1873 the arguments.
de22184b
MS
1874
1875 * error.c (dump_expr, TEMPLATE_CONST_PARM): Don't require
eb66be0e 1876 current_template_parms.
de22184b
MS
1877
1878Fri Jan 17 10:25:42 1997 Jason Merrill <jason@yorick.cygnus.com>
1879
1880 * search.c (lookup_field): Don't return a function, check want_type.
1881
1882Thu Jan 16 18:14:35 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1883
1884 * init.c (build_new): Make sure PLACEMENT has a type.
1885
1886Thu Jan 16 17:40:28 1997 Jason Merrill <jason@yorick.cygnus.com>
1887
1888 * init.c (build_new): Support new (nothrow).
1889
1890Wed Jan 15 12:38:14 1997 Jason Merrill <jason@yorick.cygnus.com>
1891
1892 * pt.c (instantiate_decl): Also do push_to_top_level before setting
1893 up DECL_INITIAL.
1894
1895 * cp-tree.h (PARM_DEFAULT_FROM_TEMPLATE): New macro.
1896 * pt.c (tsubst): Defer instantiation of default args.
1897 * call.c (build_over_call): Until here.
1898
1899Wed Jan 15 10:08:10 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1900
1901 * search.c (lookup_field): Make sure we have an
1902 IDENTIFIER_CLASS_VALUE before we try to return it.
1903
1904Thu Jan 9 07:19:01 1997 Brendan Kehoe <brendan@lisa.cygnus.com>
1905
1906 * call.c (build_method_call): Delete unused var PARM.
1907 (build_overload_call_real): Likewise.
1908 (build_object_call): Delete unused var P.
1909 (build_new_op): Likewise.
1910 * decl.c (builtin_type_tdescs_{arr, len, max}): #if 0 out static
1911 var definitions, which are never used.
1912 (shadow_tag): Delete unused var FN.
1913 * expr.c (cplus_expand_expr): Delete unused var ORIGINAL_TARGET.
1914 * init.c (build_new): Delete unused var ALLOC_TEMP.
1915 * method.c (hack_identifier): Delete unused var CONTEXT.
1916 (do_build_copy_constructor): Delete unused var NAME.
1917 (synthesize_method): Delete unused var BASE.
1918 * pt.c (lookup_template_class): Delete unused var CODE_TYPE_NODE.
1919 * rtti.c (build_headof): Delete unused var VPTR.
1920 (get_typeid): Delete unused var T.
1921 * typeck.c (build_conditional_expr): Delete unused vars ORIG_OP1
1922 and ORIG_OP2.
1923 (build_ptrmemfunc): Delete unused vars U and NINDEX.
1924 * typeck2.c (build_functional_cast): Delete unused var BINFO.
1925
1926Wed Jan 8 13:09:54 1997 Jason Merrill <jason@yorick.cygnus.com>
1927
1928 * search.c (lookup_field): Use IDENTIFIER_CLASS_VALUE to look up
1929 things in a type being defined.
1930 * decl.c (finish_enum): Reverse the values so that they are in
1931 the correct order.
1932
1933 * pt.c (instantiate_class_template): Don't initialize
eb66be0e 1934 BINFO_BASETYPES until the vector is filled out.
de22184b
MS
1935 (unify): Don't abort on conflicting bindings, just fail.
1936 (instantiate_decl): Do push_tinst_level before any tsubsting.
1937
1938 * method.c (build_overload_value): Handle getting a
eb66be0e 1939 TEMPLATE_CONST_PARM for a pointer.
de22184b
MS
1940
1941Tue Jan 7 14:00:58 1997 Jason Merrill <jason@yorick.cygnus.com>
1942
1943 * init.c (expand_member_init): Don't give 'not a base' error for
eb66be0e 1944 templates.
de22184b
MS
1945
1946 * pt.c (instantiate_decl): Call import_export_decl later.
1947
1948 * pt.c (instantiate_class_template): Return a value.
1949
1950 * parse.y (extension): New rule for __extension__.
1951 (extdef, unary_expr, decl, component_decl): Use it.
1952
1953Tue Jan 7 09:20:28 1997 Mike Stump <mrs@cygnus.com>
1954
1955 * class.c (base_binfo): Remove unused base_has_virtual member.
1956 (finish_base_struct): Likewise.
1957 (finish_struct_1): Likewise.
1958
1959Tue Dec 31 20:25:50 1996 Mike Stump <mrs@cygnus.com>
1960
1961 * search.c (expand_upcast_fixups): Fix bogus code generation
1962 problem where the generated code uses the wrong index into the
1963 runtime built vtable on the stack. Old code could clobber random
1964 stack values.
1965
1966Tue Dec 31 15:16:56 1996 Mike Stump <mrs@cygnus.com>
1967
1968 * init.c (perform_member_init): Make sure the partial EH cleanups
eb66be0e 1969 live on the function_obstack.
de22184b 1970
f7da6097
MS
1971Fri Dec 27 10:31:40 1996 Paul Eggert <eggert@twinsun.com>
1972
1973 * Make-lang.in (g++spec.o): Don't use $< with an explicit target;
1974 this isn't portable to some versions of `make' (e.g. Solaris 2.5.1).
1975
1976Tue Dec 24 10:24:03 1996 Jeffrey A Law (law@cygnus.com)
1977
1978 * decl.c (grokvardecl): Avoid ANSI style initialization.
1979
1980Sun Dec 22 04:22:06 1996 Jason Merrill <jason@yorick.cygnus.com>
1981
1982 * pt.c (tsubst): Tweak arg types for a FUNCTION_TYPE.
1983
1984Fri Dec 20 17:09:25 1996 Jason Merrill <jason@yorick.cygnus.com>
1985
1986 * pt.c (instantiate_class_template): Call grok_{ctor,op}_properties.
1987
1bf2b2d2
BK
1988Fri Dec 20 12:17:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1989
1990 * g++spec.c (lang_specific_driver): Put missing hyphen in front of
1991 arguments we compare against. Start the count of I at 1, not 0,
1992 since argv[0] is still the command.
1993
f7da6097
MS
1994Thu Dec 19 11:53:57 1996 Stan Shebs <shebs@andros.cygnus.com>
1995
1996 * lang-specs.h: Accept .cp as an C++ extension.
1997
d2e5ee5c
MS
1998Mon Dec 16 22:43:31 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
1999
2000 * cp-tree.h (ptr_reasonably_similar): Add decl.
2001
2002Thu Dec 12 15:00:35 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2003
2004 * decl.c (grokvardecl): Change SPECBITS parm to be the SPECBITS_IN
2005 pointer. New local SPECBITS with the parm's value.
2006 (grokdeclarator): Pass &specbits down.
2007
2008 * parse.y (expr_no_commas): Make sure $$ is not an error_mark_node
2009 before we try to do C_SET_EXP_ORIGINAL_CODE on it.
2010
2011 * search.c (envelope_add_decl): Check that the CLASSTYPE_CID of
2012 CONTEXT is not 0 before we try to use TYPE_DERIVES_FROM.
2013
2014 * decl.c (cplus_expand_expr_stmt): Only expand the expr if EXP is
2015 not an error_mark_node.
2016
2017Sat Dec 7 17:20:22 1996 Jason Merrill <jason@yorick.cygnus.com>
2018
2019 * cp-tree.h (TYPE_MAIN_DECL): Use TYPE_STUB_DECL.
2020 * *.c: Use TYPE_MAIN_DECL instead of TYPE_NAME where appropriate.
2021
2022Fri Dec 6 14:40:09 1996 Jason Merrill <jason@yorick.cygnus.com>
2023
2024 * decl.c (grokdeclarator): When giving an anonymous struct a name,
2025 replace TYPE_NAME instead of TYPE_IDENTIFIER (so TYPE_STUB_DECL is
2026 not affected).
2027
2028 * typeck2.c (build_m_component_ref): If component is a pointer
2029 to data member, resolve the OFFSET_REF now.
2030
2031 * call.c (convert_like): Don't go into infinite recursion.
2032
2033 * pt.c (coerce_template_parms): Use tsubst_expr for non-type args.
2034
2035 * class.c (finish_struct_1): Set DECL_ARTIFICIAL on the vptr.
2036 * tree.c (layout_basetypes): And on the vbase ptr.
2037
2038Thu Dec 5 02:11:28 1996 Jason Merrill <jason@yorick.cygnus.com>
2039
2040 * decl.c (BOOL_TYPE_SIZE): Define in terms of POINTER_SIZE or
2041 CHAR_TYPE_SIZE so bool is always the same size as another type.
2042
2043 * decl.c (pushtag): Set DECL_IGNORED_P for DWARF, too.
2044
2045Tue Dec 3 23:18:37 1996 Jason Merrill <jason@yorick.cygnus.com>
2046
2047 * decl2.c (grok_x_components): Remove synthesized methods from
eb66be0e
MS
2048 TYPE_METHODS of an anonymous union, complain about member
2049 functions.
d2e5ee5c
MS
2050 * decl.c (shadow_tag): Wipe out memory of synthesized methods in
2051 anonymous unions.
2052 (finish_function): Just clear the DECL_RTL of our arguments.
2053
2054Fri Nov 29 21:54:17 1996 Jason Merrill <jason@yorick.cygnus.com>
2055
2056 * decl2.c (finish_file): Emit DWARF debugging info for static data
2057 members.
2058
2059 * pt.c (tsubst): If t is a stub decl, return the stub decl for type.
2060
2061Wed Nov 27 14:47:15 1996 Bob Manson <manson@charmed.cygnus.com>
2062
2063 * typeck.c (build_component_ref): Don't die if COMPONENT isn't a
eb66be0e 2064 IDENTIFIER_NODE.
d2e5ee5c
MS
2065
2066Wed Nov 27 16:05:19 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2067
2068 * Make-lang.in (g++-cross$(exeext)): Fix typo.
2069
2070Wed Nov 27 08:14:00 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2071
2072 Make the g++ driver now be a standalone program, rather than one
2073 that tries to run the gcc driver after munging up the options.
2074 * Make-lang.in (g++.c, g++spec.o): New rules.
2075 (g++.o): New rule, based on gcc.o with -DLANG_SPECIFIC_DRIVER
2076 added.
2077 (g++$(exeext)): New rule, based on xgcc rule.
2078 (g++-cross$(exeext)): Now just copies g++$(exeext) over.
2079 * g++spec.c: New file.
2080 * g++.c: Removed file.
2081
2082Tue Nov 26 19:01:09 1996 Mike Stump <mrs@cygnus.com>
2083
2084 * cvt.c (build_up_reference): Arrange for any temporary values
2085 that have been keep in registers until now to be put into memory.
2086
faf5394a 2087Mon Nov 25 15:16:41 1996 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
9a3b49ac 2088
faf5394a
MS
2089 * Make-lang.in (c++.stage[1234]): Depend upon stage[1-4]-start, so
2090 that make -j3 bootstrap works better.
9a3b49ac 2091
faf5394a
MS
2092Sun Nov 24 02:09:39 1996 Jason Merrill <jason@yorick.cygnus.com>
2093
2094 * decl.c (pushtag): Do pushdecl for anon tags.
2095
2096Thu Nov 21 16:30:24 1996 Jason Merrill <jason@yorick.cygnus.com>
2097
2098 * typeck.c (c_expand_return): Fix logic.
2099 (unary_complex_lvalue): Avoid unused warning on address of INIT_EXPR.
2100
faf5394a
MS
2101Wed Nov 20 18:47:31 1996 Bob Manson <manson@charmed.cygnus.com>
2102
2103 * g++.c (main): Make sure arglist has a final NULL entry. Add
eb66be0e
MS
2104 PEXECUTE_LAST to the flags passed to pexecute, as otherwise
2105 stdin/stdout of the invoked program are redirected to
2106 nowheresville.
faf5394a
MS
2107
2108Tue Nov 19 16:12:44 1996 Jason Merrill <jason@yorick.cygnus.com>
2109
2110 * decl.c (implicitly_declare): Set DECL_ARTIFICIAL.
2111
2112Tue Nov 19 15:48:19 1996 Mike Stump <mrs@cygnus.com>
2113
2114 * init.c (resolve_offset_ref): Handle obj.vfn better.
2115 * typeck.c (build_component_ref): Set TREE_TYPE on result from
2116 build_vfn_ref.
2117
2118Tue Nov 19 13:14:33 1996 Mike Stump <mrs@cygnus.com>
2119
2120 * typeck.c (convert_for_assignment): Also handle anachronistic
2121 implicit conversions from (::*)() to cv void*.
2122 * cvt.c (cp_convert_to_pointer): Likewise.
2123
2124Mon Nov 18 17:05:26 1996 Jason Merrill <jason@yorick.cygnus.com>
2125
2126 * lex.c (handle_cp_pragma): Fix bogus warning.
2127
2128Mon Nov 18 16:10:43 1996 Mike Stump <mrs@cygnus.com>
2129
2130 * cvt.c (cp_convert_to_pointer): Avoid thinking a POINTER_TYPE
eb66be0e 2131 (METHOD_TYPE) is a TYPE_PTRMEMFUNC_P.
faf5394a
MS
2132
2133Thu Nov 14 23:18:17 1996 Jason Merrill <jason@yorick.cygnus.com>
2134
2135 * class.c (finish_struct_1): Support DWARF2_DEBUG.
2136 * search.c (dfs_debug_mark): Likewise.
2137 * decl2.c (finish_vtable_vardecl): Likewise.
2138 * decl.c (pushtag, finish_enum): Likewise.
2139 * lex.c (check_newline): Use debug_* instead of calling *out
eb66be0e 2140 functions directly.
faf5394a
MS
2141
2142Thu Nov 14 15:21:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2143
2144 * Make-lang.in (cplib2.ready): Add else clause to avoid problems
2145 on some picky hosts.
2146
2147Wed Nov 13 12:32:07 1996 Jason Merrill <jason@yorick.cygnus.com>
2148
2149 * class.c (finish_struct_1): A class has a non-trivial copy
eb66be0e 2150 constructor if it has virtual functions.
faf5394a
MS
2151
2152 * cvt.c (cp_convert): Always call a constructor.
2153
2154 * call.c (reference_binding): Still tack on a REF_BIND
eb66be0e 2155 for bad conversions.
faf5394a
MS
2156 (build_user_type_conversion_1): Propagate ICS_BAD_FLAG.
2157
2158 * typeck.c (convert_arguments): Pass LOOKUP_ONLYCONVERTING.
2159 (c_expand_return): Likewise.
2160 * typeck2.c (digest_init): Likewise for { }.
2161 * init.c (expand_aggr_init_1): Keep the CONSTRUCTOR handling.
2162 * cvt.c (cp_convert): Handle failure better.
2163
2164Wed Nov 13 11:51:20 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2165
2166 * g++.c (main): Also set PEXECUTE_SEARCH, to make the invocation
2167 of GCC be path-relative.
2168
2169Wed Nov 13 11:27:16 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2170
2171 * Make-lang.in (g++-cross): G++-cross doesn't need version.o, but
2172 it does need choose-temp.o and pexecute.o.
2173
2174Wed Nov 13 07:53:38 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2175
2176 * g++.c (error) [!HAVE_VPRINTF]: Put error back for the only time
2177 that we still use it.
2178 (P_tmpdir, R_OK, W_OK, X_OK) [__MSDOS__]: Delete unnecessary macros.
2179
2180Wed Nov 13 02:00:26 1996 Jason Merrill <jason@yorick.cygnus.com>
2181
2182 * init.c (expand_default_init): Avoid calling constructors to
2183 initialize reference temps.
2184
2185 * cvt.c (convert_to_reference): Fix.
2186
2187Tue Nov 12 19:10:07 1996 Jason Merrill <jason@yorick.cygnus.com>
2188
2189 * cvt.c (cp_convert): Simplify for flag_ansi_overloading.
2190 (convert_to_reference): Likewise.
2191 * typeck.c (convert_for_initialization): Likewise.
2192 * init.c (expand_default_init): Likewise.
2193 (expand_aggr_init_1): Likewise.
2194 * cp-tree.h (CONV_NONCONVERTING): Lose.
2195 * typeck.c (build_c_cast): Lose allow_nonconverting parm.
2196 * *.c: Adjust.
2197 * call.c (build_user_type_conversion_1): Assume LOOKUP_ONLYCONVERTING.
2198
2199Tue Nov 12 16:29:04 1996 Brendan Kehoe <brendan@canuck.cygnus.com>
2200
2201 * pt.c (tsubst_expr): Reverse args to expand_start_catch_block.
2202
2203Tue Nov 12 15:26:17 1996 Jason Merrill <jason@yorick.cygnus.com>
2204
2205 * init.c (expand_aggr_init_1): Don't crash on non-constructor
2206 TARGET_EXPR.
2207
2208Tue Nov 12 14:00:50 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2209
2210 * g++.c: Include gansidecl.h.
2211 (VPROTO, PVPROTO, VA_START): Delete.
2212 (choose_temp_base_try, choose_temp_base, perror_exec,
2213 run_dos) [__MSDOS__]: Delete fns.
2214 (pfatal_with_name): Delete fn.
2215 (temp_filename): Declare like in gcc.c.
2216 (pexecute, pwait, choose_temp_base): Declare from gcc.c.
2217 (error_count, signal_count): Define.
2218 (error): Delete both definitions.
2219 (PEXECUTE_{FIRST,LAST,SEARCH,VERBOSE}): Define from gcc.c.
2220 (pfatal_pexecute): Add fn from gcc.c.
2221 (main): Rename local VERBOSE var to VERBOSE_FLAG. Rewrite the
2222 code to use the pexecute stuff also used by gcc.c.
2223 (MIN_FATAL_STATUS): Define.
2224 * Make-lang.in (g++): Add dependency on and linking with
2225 choose-temp.o and pexecute.o.
2226
2227 * cp-tree.h: Include gansidecl.h.
2228 (STDIO_PROTO): Delete #undef/#define.
2229 * cvt.c (NULL): Delete #undef/#define.
2230 * expr.c (NULL): Likewise.
2231 * init.c (NULL): Likewise.
2232 * rtti.c (NULL): Likewise.
2233 * xref.c (NULL): Likewise.
2234
2235 * cp-tree.h (build_user_type_conversion): Add prototype.
2236 * call.c (build_user_type_conversion): Delete prototype. Correct
2237 decl of FLAGS arg to be an int.
2238 * cvt.c (build_user_type_conversion): Likewise.
2239
2240Tue Nov 12 12:16:20 1996 Jason Merrill <jason@yorick.cygnus.com>
2241
2242 * cp-tree.def: Add TRY_BLOCK and HANDLER.
2243 * except.c (expand_start_catch_block): Support templates.
2244 * parse.y (try_block, handler_seq): Likewise.
2245 * pt.c (tsubst_expr): Support TRY_BLOCK and HANDLER.
9a3b49ac
MS
2246
2247Mon Nov 11 13:57:31 1996 Jason Merrill <jason@yorick.cygnus.com>
2248
2249 * pt.c (current_template_args): New fn.
2250 (push_template_decl): Use it.
2251 * decl.c (grokdeclarator): Use it.
2252
2253 * decl2.c (build_expr_from_tree): Dereference ref vars.
2254
2255 * decl.c (grokdeclarator): Generalize handling of TYPENAME_TYPEs in
2256 the decl-specifier-seq.
2257
2258 * decl.c (grok_op_properties): Don't force the type of a conversion
2259 op to be complete. Don't warn about converting to the same type
2260 for template instantiations.
2261
2262 * decl2.c (finish_file): Don't call instantiate_decl on synthesized
2263 methods.
2264
2265Mon Nov 11 13:20:34 1996 Bob Manson <manson@charmed.cygnus.com>
2266
2267 * typeck.c (get_delta_difference): Remove previous bogusness.
2268 Don't give errors if force is set.
2269
2270Fri Nov 8 17:38:44 1996 Jason Merrill <jason@yorick.cygnus.com>
2271
2272 * decl2.c (finish_file): Don't emit debug info.
d2e5ee5c 2273 * decl.c (pushdecl): Lose obsolete code.
9a3b49ac 2274 (grokdeclarator): Still do the long long thing after complaining.
d2e5ee5c
MS
2275 * search.c (note_debug_info_needed): Don't do anything if we're in a
2276 template.
9a3b49ac 2277 * method.c (synthesize_method): For non-local classes,
eb66be0e 2278 push_to_top_level first.
9a3b49ac
MS
2279
2280Fri Nov 8 11:52:28 1996 Bob Manson <manson@charmed.cygnus.com>
2281
2282 * typeck.c (get_delta_difference): Add no_error parameter.
2283 (build_ptrmemfunc): Call get_delta_difference with no_error set;
eb66be0e
MS
2284 we don't want error messages when converting unrelated
2285 pointer-to-member functions.
9a3b49ac
MS
2286
2287Thu Nov 7 11:16:24 1996 Mike Stump <mrs@cygnus.com>
2288
2289 * error.c (dump_expr): Improve the wording on error messages that
2290 involve pointer to member functions.
2291
2292Tue Nov 5 17:12:05 1996 Mike Stump <mrs@cygnus.com>
2293
2294 * cvt.c (cp_convert_to_pointer): Move code for conversions from
eb66be0e 2295 (::*)() to void* or (*)() up a bit, so that we can convert from
9a3b49ac
MS
2296 METHOD_TYPEs as well.
2297
2298Tue Nov 5 14:54:17 1996 Jason Merrill <jason@yorick.cygnus.com>
2299
2300 * rtti.c (get_tinfo_fn): Make sure 'type' is permanent.
2301 There are no 'member' types.
2302 (get_tinfo_fn_dynamic): Diagnose typeid of overloaded fn.
2303 (build_x_typeid): Handle errors.
2304
2305Mon Nov 4 17:43:12 1996 Mike Stump <mrs@cygnus.com>
2306
2307 * typeck.c (convert_for_assignment): Handle anachronistic implicit
2308 conversions from (::*)() to void* or (*)().
2309 * cvt.c (cp_convert_to_pointer): Likewise.
2310 (cp_convert_to_pointer_force): Remove cp_convert_to_pointer
2311 conversions from here.
2312 * decl2.c (lang_decode_option): Add -W{no-,}pmf-conversions.
2313 * lang-options.h: Likewise.
2314 * decl2.c (warn_pmf2ptr): Define.
2315 * cp-tree.h: Declare it.
2316 * typeck2.c (digest_init): Allow pmfs down into
2317 convert_for_initialization.
2318
2319Sun Nov 3 09:43:00 1996 Jason Merrill <jason@yorick.cygnus.com>
2320
2321 * typeck.c (c_expand_return): Fix for returning overloaded fn.
2322
2323Fri Nov 1 08:53:17 1996 Jason Merrill <jason@yorick.cygnus.com>
2324
2325 * cp-tree.h (DIRECT_BIND): Change from INDIRECT_BIND.
2326 * decl.c (grok_reference_init): Pass DIRECT_BIND.
2327 * cvt.c (build_up_reference): Don't mark 'this' addressable. Use
eb66be0e 2328 DIRECT_BIND.
9a3b49ac
MS
2329 * call.c (convert_like): Don't pass INDIRECT_BIND.
2330 * typeck.c (convert_arguments): Likewise.
2331 * typeck.c (mark_addressable): Allow &this if flag_this_is_variable.
2332
2333Thu Oct 31 17:08:49 1996 Jason Merrill <jason@yorick.cygnus.com>
2334
2335 * typeck.c (mark_addressable): Support TARGET_EXPR, unify with
eb66be0e 2336 similar code in build_up_ref.
9a3b49ac
MS
2337 * cvt.c (build_up_reference): Drastically simplify.
2338
691c003d
MS
2339Mon Oct 28 12:45:05 1996 Jeffrey A Law (law@cygnus.com)
2340
2341 * typeck.c (signed_or_unsigned_type): If the given type already
2342 as the correct signedness, then just return it.
2343
eb66be0e
MS
2344 * typeck.c ({un,}signed_type): If can't do anything, call
2345 signed_or_unsigned_type.
691c003d
MS
2346
2347Thu Oct 24 14:21:59 1996 Bob Manson <manson@charmed.cygnus.com>
2348
2349 * decl2.c (copy_assignment_arg_p): Don't buy the farm if
2350 current_class_type is NULL.
2351
2352Wed Oct 23 00:43:10 1996 Jason Merrill <jason@gerbil.cygnus.com>
2353
2354 * class.c (finish_struct_1): Avoid empty structs by adding a field
eb66be0e 2355 so layout_type gets the mode right.
691c003d
MS
2356
2357 * typeck.c (c_expand_return): Drastically simplify.
2358
2359Mon Oct 21 22:34:02 1996 Jason Merrill <jason@yorick.cygnus.com>
2360
2361 * typeck.c (decay_conversion): Handle overloaded methods.
2362
2363Fri Oct 18 16:03:48 1996 Jason Merrill <jason@yorick.cygnus.com>
2364
2365 * call.c (build_over_call): A TARGET_EXPR has side-effects.
2366
f49422da
MS
2367Thu Oct 17 11:31:59 1996 Mike Stump <mrs@cygnus.com>
2368
2369 * cvt.c (convert_to_pointer_force): Add code to support pointer to
eb66be0e 2370 member function to pointer to function conversions.
f49422da 2371 * init.c (resolve_offset_ref): Add code to allow faked up objects,
eb66be0e
MS
2372 ignoring them if they are not used, and giving an error, if they
2373 are needed.
f49422da 2374 * typeck.c (get_member_function_from_ptrfunc): Fold e1 to improve
eb66be0e
MS
2375 code, and so that we can give an error, if we needed an object,
2376 and one was not provided.
f49422da 2377 (build_c_cast): Don't call default_conversion when we want to
eb66be0e 2378 convert to pointer to function from a METHOD_TYPE.
f49422da
MS
2379
2380Mon Oct 14 00:28:51 1996 Jason Merrill <jason@yorick.cygnus.com>
2381
2382 * Make-lang.in (cplib2.ready): Fix logic.
2383
2384 * decl.c (shadow_tag): Only complain about non-artificial function
eb66be0e 2385 members.
f49422da
MS
2386
2387 * class.c (finish_struct_1): Add synthesized methods to TYPE_METHODS.
2388
2389Fri Oct 11 16:12:40 1996 Jason Merrill <jason@yorick.cygnus.com>
2390
2391 * expr.c (cplus_expand_expr): Pre-tweak call_target like
eb66be0e 2392 expand_inline_function would.
f49422da
MS
2393
2394 * pt.c (mark_decl_instantiated): If extern_p, call
eb66be0e 2395 mark_inline_for_output.
f49422da 2396
3d4683cb
MS
2397Thu Oct 10 15:58:08 1996 Mike Stump <mrs@cygnus.com>
2398
2399 * typeck.c (unary_complex_lvalue): Add code to handle intermediate
2400 pmd conversions.
2401
2402 * typeck.c (get_delta_difference): Fix wording, as we can be used
2403 for pointer to data members.
2404
2405Tue Oct 8 12:43:51 1996 Bob Manson <manson@charmed.cygnus.com>
2406
2407 * pt.c (tsubst): If the function decl isn't a member of this
eb66be0e
MS
2408 template, return a copy of the decl (including copying the
2409 lang-specific part) so we don't hose ourselves later.
3d4683cb
MS
2410
2411Thu Oct 3 16:24:28 1996 Jason Merrill <jason@yorick.cygnus.com>
2412
2413 * class.c (finish_struct): Remove DWARF-specific tag handling.
2414 * decl.c (pushtag): Likewise.
2415 (finish_function): Always clear DECL_ARGUMENTS on function decls with
2416 no saved RTX.
2417 * decl2.c (finish_file): Emit DWARF debugging info for static data
2418 members.
2419
2420Wed Oct 2 21:58:01 1996 Bob Manson <manson@charmed.cygnus.com>
2421
2422 * decl.c (duplicate_decls): Make sure the old DECL_LANG_SPECIFIC
2423 isn't the same as the new one before we whack it.
2424
2425Mon Sep 30 13:38:24 1996 Jason Merrill <jason@yorick.cygnus.com>
2426
2427 * class.c, cp-tree.h, cvt.c, decl.c, decl2.c, gxx.gperf, hash.h,
eb66be0e
MS
2428 lex.c, method.c, parse.y, typeck.c, typeck2.c: Remove
2429 warn_traditional and warn_strict_prototypes; remove ancient
2430 'overload' code; remove references to flag_traditional.
3d4683cb 2431
5156628f
MS
2432Mon Sep 30 12:58:40 1996 Mike Stump <mrs@cygnus.com>
2433
2434 * input.c (sub_getch): Handle 8-bit characters in string literals.
2435
2436Sun Sep 29 03:12:01 1996 Jason Merrill <jason@yorick.cygnus.com>
2437
2438 * tree.c (mapcar): Handle CONSTRUCTORs.
2439 (copy_to_permanent): Handle expression_obstack properly.
2440
2441 * Make-lang.in (cplib2.txt): Also depend on the headers.
2442
2443 * rtti.c (get_tinfo_var): Don't assume that POINTER_SIZE ==
eb66be0e 2444 INT_TYPE_SIZE.
5156628f
MS
2445 (expand_class_desc): Use USItype for offset field.
2446 * tinfo.h (struct __class_type_info): Likewise.
2447
2448 * method.c (build_overload_int): TYPE_PRECISION should be applied
eb66be0e 2449 to types.
5156628f
MS
2450
2451Sat Sep 28 14:44:50 1996 Jason Merrill <jason@yorick.cygnus.com>
2452
2453 * call.c (build_new_op): A COND_EXPR involving void must be a
2454 builtin.
2455
2456Fri Sep 27 16:40:30 1996 Jason Merrill <jason@yorick.cygnus.com>
2457
2458 * typeck.c (build_x_component_ref): New fn.
2459 (build_object_ref): Use it.
2460 * parse.y (primary): Use it.
2461 * decl2.c (build_expr_from_tree): Use it.
2462 * cp-tree.h: Declare it.
2463
2464 * decl.c (start_decl): variable-sized arrays cannot be initialized.
2465 * error.c (dump_type_suffix): Handle variable arrays.
2466
2467Fri Sep 27 13:14:05 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2468
2469 * Make-lang.in (exception.o): Put back compiling it with -fPIC.
2470
2471Fri Sep 27 03:00:09 1996 Jason Merrill <jason@yorick.cygnus.com>
2472
2473 * decl.c (lookup_name_real): Don't try to look up anything in a
eb66be0e 2474 TYPENAME_TYPE.
5156628f
MS
2475
2476 * tinfo2.cc (__throw_type_match_rtti): Oops.
2477
2478Thu Sep 26 22:11:05 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2479
2480 * Make-lang.in (exception.o): Use -fno-PIC for now.
2481
2482Thu Sep 26 10:59:00 1996 Jason Merrill <jason@yorick.cygnus.com>
2483
2484 * rtti.c (build_dynamic_cast): Pass tinfo fns rather than
eb66be0e 2485 calling them.
5156628f
MS
2486 (get_tinfo_fn_dynamic): Extracted from build_typeid.
2487 * tinfo2.cc (__dynamic_cast): Adjust.
2488
2489 * rtti.c (build_typeid): Use resolves_to_fixed_type_p.
2490 (build_x_typeid): Likewise.
2491
2492 * parse.y: Call build_x_typeid instead of build_typeid.
2493 * cp-tree.def: Add TYPEID_EXPR.
2494 * pt.c (tsubst_copy): Handle typeid.
2495 * decl2.c (build_expr_from_tree): Likewise.
2496 * rtti.c (build_x_typeid): Throw bad_typeid from here.
2497 (build_typeid): Not here.
2498 * cp-tree.h: Declare build_x_typeid.
2499
2500Wed Sep 25 17:26:16 1996 Jason Merrill <jason@yorick.cygnus.com>
2501
2502 * call.c (convert_like): Pull out constant values.
2503
2504 * tree.c (mapcar): Use build_cplus_array_type, not build_array_type.
2505
2506Wed Sep 25 17:28:53 1996 Michael Meissner <meissner@tiktok.cygnus.com>
2507
2508 * decl.c (init_decl_processing): Create short int types before
2509 creating size_t in case a machine description needs to use
2510 unsigned short for size_t.
2511
2512Tue Sep 24 18:18:44 1996 Jason Merrill <jason@yorick.cygnus.com>
2513
2514 * Make-lang.in (exception.o): Turn off pic.
2515
2516 * tinfo2.cc (__throw_type_match_rtti): Fix cv-variants of the same
2517 type, multi-level ptr conversions.
2518
2519 * rtti.c (call_void_fn): Renamed and genericized from throw_bad_cast.
2520 (throw_bad_cast): Use it.
2521 (throw_bad_typeid): New fn.
2522 (build_typeid): Throw bad_typeid as needed.
2523 Use build_call.
2524 (synthesize_tinfo_fn): Handle functions and arrays before checking
2525 for cv-quals.
2526
2527 * Remove .h from standard C++ headers, add new.h, move into inc
eb66be0e 2528 subdirectory.
5156628f
MS
2529
2530 * exception*: Remove pointer from object, constructors. Add
eb66be0e
MS
2531 default exception::what that uses type_info::name. Add
2532 __throw_bad_typeid.
5156628f
MS
2533
2534 * init.c (build_new): Don't add a cookie to new (void *) T[2].
2535
2536Mon Sep 23 15:21:53 1996 Jason Merrill <jason@yorick.cygnus.com>
2537
2538 * Make-lang.in: Building C++ code depends on cc1plus.
2539
2540Mon Sep 23 12:38:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2541
2542 * decl.c (struct saved_scope): Declare PROCESSING_TEMPLATE_DECL as
2543 a HOST_WIDE_INT, not a tree.
2544
2545Mon Sep 23 12:36:02 1996 Jason Merrill <jason@yorick.cygnus.com>
2546
2547 * exception.cc: Don't include <stdlib.h>.
2548
2549 * Make-lang.in (c++.clean): Remove cplib2.*.
2550
2551Mon Sep 23 09:42:19 1996 Doug Evans <dje@canuck.cygnus.com>
2552
2553 * parse.y (component_decl_1, component_costructor_declarator case):
2554 Pass attributes/prefix_attributes in tree list.
2555
2556Mon Sep 23 01:18:50 1996 Jason Merrill <jason@yorick.cygnus.com>
2557
2558 * tinfo{,2}.cc: #include <stddef.h> instead of <stdlib.h>.
2559
2560Sun Sep 22 05:31:22 1996 Jason Merrill <jason@yorick.cygnus.com>
2561
2562 * lex.c (do_identifier): Don't do deferred lookup in a template
eb66be0e 2563 header.
5156628f
MS
2564
2565 * typeck2.c (store_init_value): Oops.
2566
2567 * new.{h,cc}, exception.{h,cc}, typeinfo.h, tinfo{2.cc,.cc,.h}:
2568 New files for C++ lang-support library.
2569 * Make-lang.in (CXX_EXTRA_HEADERS): Define.
2570 (CXX_LIB2FUNCS): Define.
2571 And rules for building the C++ lang-support code.
2572 * config-lang.in (headers): Define.
2573 (lib2funcs): Define.
2574
2575Sat Sep 21 19:17:28 1996 Jason Merrill <jason@yorick.cygnus.com>
2576
2577 * decl2.c (build_expr_from_tree): If CONSTRUCTOR has a type, call
2578 digest_init.
2579 * pt.c (tsubst_copy): Compute type for CONSTRUCTOR.
2580 * typeck2.c (store_init_value): Check for initializing pmf with { }
2581 here.
2582 (process_init_constructor): Not here.
2583
2584Thu Sep 19 16:41:07 1996 Jason Merrill <jason@yorick.cygnus.com>
2585
2586 * pt.c (begin_template_parm_list): Increment
eb66be0e 2587 processing_template_decl here.
5156628f
MS
2588 (end_template_parm_list): Not here.
2589 (process_template_parm): No need to add 1 to it now.
2590 * *.c: Use processing_template_decl instead of current_template_parms
2591 to check for being in a template.
2592
2593 * pt.c (uses_template_parms): Handle SCOPE_REF. Fix CONSTRUCTOR.
2594 (tsubst_copy): Handle CONSTRUCTOR.
2595 (instantiate_decl): Set up context properly for variables.
2596 * decl2.c (build_expr_from_tree): Handle CONSTRUCTOR.
2597 * class.c (finish_struct): Reverse CLASSTYPE_TAGS.
2598
2599Wed Sep 18 13:30:20 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2600
2601 * lex.c (enum tree_node_kind) [GATHER_STATISTICS]: Put the enum back.
2602
7fcdf4c2
MS
2603Wed Sep 18 04:24:07 1996 Jason Merrill <jason@yorick.cygnus.com>
2604
2605 * method.c (make_thunk): Call comdat_linkage before setting the
eb66be0e 2606 TREE_CODE.
7fcdf4c2
MS
2607
2608 * decl2.c (comdat_linkage): Use make_decl_one_only.
2609 (import_export_decl): Likewise.
2610 * decl.c (init_decl_processing): Check supports_one_only instead of
2611 SUPPORTS_WEAK.
2612
2613Sat Sep 14 08:34:41 1996 Jason Merrill <jason@yorick.cygnus.com>
2614
2615 * decl2.c (grokfield): Tighten checking for access decls.
2616
2617 * decl.c (make_typename_type): Resolve references to
eb66be0e 2618 current_class_type. Set CLASSTYPE_GOT_SEMICOLON.
7fcdf4c2 2619 (lookup_name_real): Types that depend on a template parameter get
eb66be0e 2620 an implicit 'typename' unless they're in the current scope.
7fcdf4c2 2621 (start_decl_1): We don't care about incomplete types that depend
eb66be0e 2622 on a template parm.
7fcdf4c2 2623 (grokdeclarator): Resolve 'typename's in the type specifier that
eb66be0e 2624 refer to members of the current scope.
7fcdf4c2
MS
2625
2626 * call.c (build_over_call): Remove 'inline called before
eb66be0e 2627 definition' diagnostic.
7fcdf4c2
MS
2628 (build_method_call): Likewise.
2629 * decl.c (duplicate_decls): Downgrade 'used before declared
eb66be0e 2630 inline' to a warning, only with -Winline.
7fcdf4c2
MS
2631
2632Fri Sep 13 17:31:40 1996 Stan Shebs <shebs@andros.cygnus.com>
2633
2634 * mpw-make.sed: Fix include paths, add @DASH_C_FLAG@ to compile.
2635
c11b6f21
MS
2636Wed Sep 11 22:38:13 1996 Gerald Baumgartner <gb@cs.purdue.edu>
2637
2638 * call.c (build_method_call): When calling a signature
2639 default implementation, as in other cases, let instance_ptr simply
2640 be instance.
2641
2642Wed Sep 11 22:14:44 1996 Mike Stump <mrs@cygnus.com>
2643
2644 * parse.y (simple_stmt): Cleanup and use do_poplevel ().
2645
2646Wed Sep 11 22:10:48 1996 Mike Stump <mrs@cygnus.com>
2647
2648 * except.c (expand_start_catch_block): Add a pushlevel so that -g
eb66be0e 2649 works on hppa and SPARC.
c11b6f21
MS
2650
2651Wed Sep 11 10:18:06 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2652
2653 * typeck.c (build_indirect_ref): Catch PTR being an error_mark_node.
2654
2655Mon Sep 9 19:51:14 1996 Gerald Baumgartner <gb@cs.purdue.edu>
2656
2657 * call.c (build_over_call): Check first whether DECL_CONTEXT exists
2658 before testing whether it's a signature.
2659
2660Sun Sep 8 16:06:57 1996 Gerald Baumgartner <gb@cs.purdue.edu>
2661
2662 * call.c (build_new_method_call): Don't complain about signature
2663 pointers and references not being an aggr type.
2664 (build_this): If a signature pointer or reference was passed in,
2665 just return it.
2666 (build_new_method_call): If instance is a signature pointer, set
2667 basetype to the signature type of instance.
2668 * sig.c (build_signature_method_call): Deleted basetype and
2669 instance parameters, they can be found as the DECL_CONTEXT of
2670 function and as the first argument passed in.
2671 * cp-tree.h: Changed declaration of build_signature_method_call.
2672 * call.c (build_method_call): Deleted first two arguments in call
2673 of build_signature_method_call.
2674 (build_over_call): Added call to build_signature_method_call.
2675
2676Thu Sep 5 16:51:28 1996 Jason Merrill <jason@yorick.cygnus.com>
2677
2678 * typeck.c (build_c_cast): Don't tack a non_lvalue_expr onto a
eb66be0e 2679 target_expr.
c11b6f21
MS
2680
2681Thu Sep 5 10:05:38 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
2682
2683 * cvt.c (convert_to_reference): Use %#T, not %#D, for error.
2684
9ffa2541
BM
2685Wed Sep 4 17:16:09 1996 Bob Manson <manson@charmed.cygnus.com>
2686
2687 * except.c (expand_start_try_stmts): Move to except.c in the backend.
2688 (expand_end_try_stmts): Remove.
2689
2690 * init.c (perform_member_init): Use add_partial_entry () instead
2691 of directly manipulating lists.
2692 (emit_base_init): Ditto.
2693
c11b6f21
MS
2694Wed Sep 4 12:14:36 1996 Mike Stump <mrs@cygnus.com>
2695
2696 * except.c (expand_exception_blocks): Always make sure USE and
eb66be0e
MS
2697 CLOBBER insns that came at the end still do, the backend relies
2698 upon this.
c11b6f21
MS
2699
2700Wed Sep 4 07:44:48 1996 Jason Merrill <jason@yorick.cygnus.com>
2701
2702 * call.c (build_over_call): We can only use a TARGET_EXPR of the
eb66be0e 2703 right type.
c11b6f21
MS
2704
2705Tue Sep 3 19:26:05 1996 Jason Merrill <jason@yorick.cygnus.com>
2706
2707 * cvt.c (convert_to_reference): Revert last change, don't complain
eb66be0e 2708 about temp without target decl.
c11b6f21
MS
2709
2710Tue Sep 3 10:22:56 1996 Mike Stump <mrs@cygnus.com>
2711
2712 * decl.c (grokdeclarator): Don't core dump when void() is given.
2713
2714Tue Sep 3 02:38:56 1996 Jason Merrill <jason@yorick.cygnus.com>
2715
2716 * decl.c (copy_args_p): Don't crash.
2717
2718Fri Aug 30 14:26:57 1996 Mike Stump <mrs@cygnus.com>
2719
2720 * pt.c (tsubst): And support template args inside the exception
eb66be0e 2721 specification.
c11b6f21
MS
2722
2723 * pt.c (tsubst): Add support for exception specifications in
eb66be0e 2724 template functions.
c11b6f21
MS
2725
2726Fri Aug 30 10:01:55 1996 Mike Stump <mrs@cygnus.com>
2727
2728 * cp-tree.def (DECL_STMT): Eliminate the throw spec field, only 3
eb66be0e 2729 fields now.
c11b6f21
MS
2730 * cp-tree.h (start_decl): Eliminate the throw spec parameter.
2731 (start_function): Likewise.
2732 (start_method): Likewise.
2733 (grokfield): Likewise.
2734 (make_call_declarator): Add throw spec parameter.
2735 (set_quals_and_spec): Add routine.
2736 * lex.c (set_quals_and_spec): Likewise.
2737 * decl.h (grokdeclarator): Eliminate the throw spec parameter.
2738 * decl.c (shadow_tag): Eliminate the throw spec parameter to
eb66be0e 2739 grokdeclarator.
c11b6f21
MS
2740 (groktypename): Likewise.
2741 (start_decl): Eliminate the throw spec parameter. Eliminate the
eb66be0e
MS
2742 throw spec parameter to grokdeclarator. Eliminate the throw spec
2743 field in DECL_STMT.
c11b6f21
MS
2744 (cp_finish_decl): Eliminate the throw spec field in DECL_STMT.
2745 (grokfndecl): Remove useless set of raises.
2746 (grokdeclarator): Eliminate the throw spec parameter. Eliminate
eb66be0e
MS
2747 the throw spec parameter to start_decl. Pull the throw spec out
2748 of the call declarator.
c11b6f21
MS
2749 (grokparms): Eliminate the throw spec parameter to grokdeclarator.
2750 (start_function): Eliminate the throw spec parameter. Eliminate
eb66be0e 2751 the throw spec parameter to grokdeclarator.
c11b6f21
MS
2752 (start_method): Likewise.
2753 * decl2.c (grokfield): Likewise.
2754 (grokbitfield): Eliminate the throw spec parameter to grokdeclarator.
2755 (grokoptypename): Likewise.
2756 (finish_file): Eliminate the throw spec parameter to
eb66be0e 2757 start_function. Add throw spec to make_call_declarator.
c11b6f21 2758 * except.c (init_exception_processing): Add throw spec to
eb66be0e
MS
2759 make_call_declarator. Eliminate the throw spec parameter to
2760 start_decl.
c11b6f21 2761 (expand_start_catch_block): Eliminate the throw spec parameter to
eb66be0e 2762 grokdeclarator.
c11b6f21
MS
2763 (expand_builtin_throw): Add throw spec to make_call_declarator.
2764 Eliminate the throw spec parameter to start_function.
2765 (start_anon_func): Likewise.
2766 * lex.c (make_call_declarator): Add throw spec parameter.
2767 (set_quals_and_spec): New routine.
2768 (cons_up_default_function): Add throw spec to make_call_declarator.
2769 Eliminate the throw spec parameter to grokfield.
2770 * method.c (synthesize_method): Eliminate the throw spec parameter
eb66be0e 2771 to start_function.
c11b6f21 2772 * pt.c (process_template_parm): Eliminate the throw spec parameter
eb66be0e 2773 to grokdeclarator.
c11b6f21
MS
2774 (tsubst): Add throw spec to make_call_declarator.
2775 (tsubst_expr): Eliminate the throw spec parameter to start_decl.
2776 (do_function_instantiation): Eliminate the throw spec parameter to
eb66be0e
MS
2777 grokdeclarator. Eliminate the throw spec parameter to
2778 start_function.
c11b6f21 2779 * rtti.c (synthesize_tinfo_fn): Eliminate the throw spec parameter
eb66be0e 2780 to start_function.
c11b6f21
MS
2781 * parse.y (datadef): Remove non-winning optimization.
2782 (decl): Likewise.
2783 (fndef): Remove ambiguous error productions uncovered by grammer
eb66be0e 2784 fixing.
c11b6f21
MS
2785 (constructor_declarator): Add exception_specification_opt here.
2786 (component_constructor_declarator): Likewise.
2787 (direct_after_type_declarator): Likewise.
2788 (complex_direct_notype_declarator): Likewise.
2789 (direct_abstract_declarator): Likewise.
2790 (fn.def1): Remove exception_specification_opt.
2791 (fn.def2): Likewise.
2792 (condition): Likewise.
2793 (initdcl0): Likewise.
2794 (initdcl): Likewise.
2795 (notype_initdcl0): Likewise.
2796 (nomods_initdcl0): Likewise.
2797 (component_decl_1): Likewise.
2798 (component_declarator): Likewise.
2799 (after_type_component_declarator0): Likewise.
2800 (after_type_component_declarator): Likewise.
2801 (notype_component_declarator): Likewise.
2802
2803Wed Aug 28 01:40:30 1996 Jason Merrill <jason@yorick.cygnus.com>
2804
2805 * call.c (build_over_call): Also use an INIT_EXPR when
eb66be0e 2806 initializing anything from an rvalue.
c11b6f21
MS
2807
2808 * call.c (build_over_call): Call stabilize_reference when building
eb66be0e 2809 an INIT_EXPR instead of calling the copy ctor.
c11b6f21
MS
2810
2811 * call.c (joust): Extend the previous change to all comparisons.
2812
2813 * decl2.c, method.c, lex.c: Use MAKE_DECL_ONE_ONLY and
2814 NO_LINKAGE_HEURISTICS.
2815
2816 * decl2.c (finish_file): Emit any statics that weren't already.
2817
2818 * typeck.c (build_static_cast): Implement.
2819 * tree.c (build_cplus_new): Handle getting a TARGET_EXPR.
2820 * decl.c (grokparms): Use can_convert_arg instead of
eb66be0e 2821 implicit_conversion directly.
c11b6f21
MS
2822 (copy_args_p): New fn.
2823 * cvt.c (convert_to_reference): Don't complain about temp with
eb66be0e 2824 static_cast.
c11b6f21
MS
2825 (build_up_reference): Handle TARGET_EXPRs.
2826 * call.c (build_over_call): Elide unnecessary temps.
2827 (can_convert*): Use new overloading code.
2828
2829Tue Aug 27 13:12:21 1996 Jason Merrill <jason@yorick.cygnus.com>
2830
2831 * call.c: Move TYPE_PTR*_MACROS ...
2832 * cp-tree.h: To here.
2833 * typeck.c (build_reinterpret_cast): Implement.
2834
2835 * call.c (add_builtin_candidate): Use TYPE_PTROB_P instead of
eb66be0e 2836 ptr_complete_ob.
c11b6f21
MS
2837 (joust): If we're comparing a function to a builtin and the worst
2838 conversion for the builtin is worse than the worst conversion for the
2839 function, take the function.
2840
2841 * typeck.c (build_const_cast): Implement.
2842 (comp_ptr_ttypes_const): Like comp_ptr_ttypes, for const_cast.
2843 (comp_ptr_ttypes_reinterpret): Like cpt, for reinterpret_cast.
2844
2845Tue Aug 27 13:14:58 1996 Bob Manson <manson@charmed.cygnus.com>
2846
2847 * rtti.c (build_dynamic_cast): Don't try to dereference exprtype
eb66be0e
MS
2848 too early. Make sure we explode if exprtype turns out to be a
2849 NULL_TREE when it shouldn't be.
c11b6f21
MS
2850
2851Tue Aug 27 10:56:21 1996 Mike Stump <mrs@cygnus.com>
2852
2853 * cp-tree.h: New routine make_call_declarator.
2854 * lex.c (make_call_declarator): Define it.
2855 * except.c (init_exception_processing): Use it.
2856 (expand_builtin_throw): Likewise.
2857 (start_anon_func): Likewise.
2858 * decl2.c (finish_file): Likewise.
2859 * lex.c (cons_up_default_function): Likewise.
2860 * parse.y: Likewise.
2861 * pt.c (tsubst): Likewise.
2862
2863Mon Aug 26 17:40:03 1996 Mike Stump <mrs@cygnus.com>
2864
2865 * decl2.c (groktypefield): Remove unused code.
2866
2867Mon Aug 26 17:00:33 1996 Mike Stump <mrs@cygnus.com>
2868
2869 * gxx.gperf: Change TYPE_QUAL into CV_QUALIFIER.
2870 * parse.y: Likewise. Change maybe_type_qual into maybe_cv_qualifier.
2871 Change type_quals into cv_qualifiers. Change nonempty_type_quals into
2872 nonempty_cv_qualifiers.
2873 * hash.h: Rebuild.
2874
2875 * lex.c (make_pointer_declarator): Change type_quals into
eb66be0e 2876 cv_qualifiers.
c11b6f21
MS
2877 (make_reference_declarator): Likewise.
2878
d11ad92e
MS
2879Thu Aug 22 01:09:22 1996 Jason Merrill <jason@yorick.cygnus.com>
2880
2881 * decl.c (start_function): Only check interface_* for templates
eb66be0e 2882 with flag_alt_external_templates.
d11ad92e
MS
2883
2884 * call.c (build_new_op): Check for comparison of different enum types.
2885 (build_over_call): Fix arg # output.
2886
2887 * typeck.c (build_component_ref): Handle pre-found TYPE_DECL.
2888
2889Wed Aug 21 00:13:15 1996 Jason Merrill <jason@yorick.cygnus.com>
2890
2891 * call.c (build_new_op): Check for erroneous args.
2892
2893 * call.c (build_new_method_call): Add missing args to cp_error.
2894
2895 * tree.c (error_type): Dont print reference-to-array.
2896
2897 * typeck.c (convert_for_assignment): Don't say contravariance for
eb66be0e 2898 removing const.
d11ad92e
MS
2899
2900Tue Aug 20 13:23:00 1996 Jason Merrill <jason@yorick.cygnus.com>
2901
2902 * call.c (build_over_call): Diagnose bad convs for `this'.
2903
2904 * lex.c (cons_up_default_function): Set DECL_ARTIFICIAL
2905 on _ctor_arg.
2906
2907 * call.c (convert_like): Handle bad convs.
2908 (build_over_call): Handle bad convs better.
2909
2910 * decl2.c: -fansi-overloading is now the default.
2911
2912 * call.c (build_new_method_call): Check for erroneous args.
2913
2914 * pt.c (instantiate_class_template): Propagate
eb66be0e 2915 TYPE_USES_MULTIPLE_INHERITANCE.
d11ad92e
MS
2916
2917Tue Aug 20 13:09:57 1996 Mike Stump <mrs@cygnus.com>
2918
2919 * call.c (enforce_access): Add static to routine.
2920
2921Sun Aug 18 14:35:54 1996 Jason Merrill <jason@yorick.cygnus.com>
2922
2923 * call.c (build_user_type_conversion_1): Fix bad handling.
2924 (compare_ics): Likewise.
2925
2926Sat Aug 17 21:54:11 1996 Jason Merrill <jason@yorick.cygnus.com>
2927
2928 * call.c (standard_conversion): Oops.
2929
2930Sat Aug 17 16:28:11 1996 Geoffrey Noer <noer@cygnus.com>
2931
2932 * g++.c: Update test for win32 (&& ! cygwin32).
2933
2934Sat Aug 17 03:45:31 1996 Jason Merrill <jason@yorick.cygnus.com>
2935
2936 * typeck.c (comp_ptr_ttypes_real): Handle OFFSET_TYPEs properly.
2937 (ptr_reasonably_similar): New fn.
2938 * call.c (BAD_RANK): New rank.
2939 (ICS_BAD_FLAG): New macro.
2940 (standard_conversion): Handle almost-right pointer conversions.
2941 (reference_binding): Handle bad rvalue bindings.
2942 (add_*_candidate): Stuff.
2943 (build_over_call): Pass bad conversions to convert_for_initialization.
2944 (compare_ics): Handle bad convs.
2945 (joust): Likewise.
2946
2947Fri Aug 16 15:02:19 1996 Bob Manson <manson@charmed.cygnus.com>
2948
2949 * init.c (expand_vec_init): Use ptrdiff_type_node instead of
2950 integer_type_node when computing pointer offsets.
2951
2952Fri Aug 16 01:28:32 1996 Jason Merrill <jason@yorick.cygnus.com>
2953
2954 * tree.c (lvalue_type): New fn.
2955 (error_type): New fn.
2956 * call.c (op_error): Use error_type.
2957 (add_conv_candidate): Use lvalue_type.
2958 (add_builtin_candidates): Likewise.
2959 * error.c (args_as_string): Use error_type.
2960
2961Thu Aug 15 17:27:13 1996 Jason Merrill <jason@yorick.cygnus.com>
2962
2963 * pt.c (instantiate_decl): Evaluate DECL_INITIAL of a VAR_DECL here.
2964 (tsubst): Not here.
2965
2966 * decl.c (init_decl_processing): With -ansi, __null's type is the
2967 signed integral type with the same number of bits as a pointer.
2968 Introduce a new variable null_node for it.
2969 * cp-tree.h: Adjust.
2970 * call.c (null_ptr_cst_p): Adjust.
2971
2972Thu Aug 15 17:09:54 1996 Mike Stump <mrs@cygnus.com>
2973
2974 * except.c (do_unwind): Mark %i7 as used on the SPARC so we can
eb66be0e 2975 optimize.
d11ad92e
MS
2976
2977Thu Aug 15 01:36:49 1996 Jason Merrill <jason@yorick.cygnus.com>
2978
2979 * decl2.c (import_export_decl): Ignore #pragma interface for tinfo
eb66be0e 2980 fns of classes without virtual functions.
d11ad92e
MS
2981
2982 * call.c (add_function_candidate): Handle `this' specially.
2983 (compare_ics): Likewise.
2984
2985Tue Aug 13 12:16:10 1996 Jason Merrill <jason@yorick.cygnus.com>
2986
2987 * typeck.c (build_conditional_expr): Fix handling of __null.
2988
2989 * decl2.c (comdat_linkage): New fn.
2990 (import_export_vtable): Use it.
2991 (import_export_decl): Use it.
2992 * method.c (make_thunk): Use it.
2993
73aad9b9
JM
2994Mon Aug 12 00:09:18 1996 Jason Merrill <jason@yorick.cygnus.com>
2995
2996 * pt.c (end_template_decl): If we don't actually have parms, return.
2997 * parse.y (template_header): Accept 'template <>'.
2998
2999 * errfn.c: Allow 5 args.
3000
3001Sun Aug 11 15:20:58 1996 Jason Merrill <jason@yorick.cygnus.com>
3002
3003 * tree.c (make_temp_vec): New fn.
3004 * pt.c (push_template_decl): Handle partial specs.
d11ad92e 3005 (instantiate_class_template): Likewise.
73aad9b9
JM
3006 (more_specialized): Use get_bindings.
3007 (more_specialized_class): New fn.
3008 (get_class_bindings): New fn.
3009 (most_specialized_class): New fn.
3010 (do_function_instantiation): List candidates for ambiguous case.
3011 * decl.c (duplicate_decls): Lose reference to DECL_TEMPLATE_MEMBERS.
3012 (shadow_tag): Call push_template_decl for partial specializations.
d11ad92e 3013 * parse.y: Likewise.
73aad9b9 3014 * cp-tree.h (DECL_TEMPLATE_SPECIALIZATIONS): Replaces
eb66be0e 3015 DECL_TEMPLATE_MEMBERS.
73aad9b9
JM
3016 * call.c (print_z_candidates): Reduce duplication.
3017
3018Fri Aug 9 14:36:08 1996 Jason Merrill <jason@yorick.cygnus.com>
3019
3020 * decl2.c (lang_decode_option): Allow -fansi-overloading.
3021
3022Thu Aug 8 17:04:18 1996 Jason Merrill <jason@yorick.cygnus.com>
3023
3024 * pt.c (get_bindings): New fn.
d11ad92e 3025 (most_specialized): Likewise.
73aad9b9
JM
3026 (do_function_instantiation): Use them.
3027 (add_maybe_template): New fn.
3028 * cp-tree.h (DECL_MAYBE_TEMPLATE): New macro.
3029 * call.c (build_new_op): Handle guiding decls.
d11ad92e
MS
3030 (build_new_function_call): Likewise.
3031 * decl2.c (finish_file): Likewise.
73aad9b9
JM
3032
3033 * decl2.c (mark_used): Do synthesis here.
3034 * call.c (build_method_call): Not here.
3035 (build_over_call): Or here.
3036 * typeck.c (build_function_call_real): Or here.
3037 * tree.c (bot_manip): Call mark_used on functions used in default
eb66be0e 3038 args.
73aad9b9 3039
2eee5e3a
MM
3040Thu Aug 8 17:48:16 1996 Michael Meissner <meissner@tiktok.cygnus.com>
3041
3042 * decl2.c (import_export_vtable): Delete code that disabled vtable
eb66be0e 3043 heuristic on systems with ASM_OUTPUT_EXTERNAL.
2eee5e3a 3044
c73964b2
MS
3045Wed Aug 7 12:44:11 1996 Jason Merrill <jason@yorick.cygnus.com>
3046
3047 * typeck.c (build_x_function_call): Handle static call context
3048 better.
3049
3050 * decl.c (finish_function): Set the DECL_CONTEXT of the result to
eb66be0e 3051 the function, not its outer block.
c73964b2
MS
3052
3053 * call.c (build_field_call): Pass fields on to build_opfncall
eb66be0e 3054 regardless of TYPE_OVERLOADS_CALL_EXPR.
c73964b2
MS
3055 (build_method_call): Pass on to build_new_method_call sooner.
3056
3057 * typeck.c (build_ptrmemfunc): Just return what instantiate_type
3058 gives us.
3059 * class.c (instantiate_type): Don't put a POINTER_TYPE to
eb66be0e 3060 METHOD_TYPE on an expression. Also make a copy of rhs instead of
c73964b2
MS
3061 modifying it.
3062
3063Tue Aug 6 12:58:46 1996 Jason Merrill <jason@yorick.cygnus.com>
3064
3065 * call.c (compare_ics): Handle qual_conv after lvalue_conv.
3066 (add_builtin_candidate): Don't take enums for ++.
3067 (build_new_method_call): Handle non-aggregates and field calls.
3068 Move new overloading code from...
3069 * cvt.c: Here.
3070
3071 * decl.c (grokparms): Don't check default args in templates.
3072
3073Mon Aug 5 17:17:06 1996 Jason Merrill <jason@yorick.cygnus.com>
3074
3075 * cvt.c (build_new_op): Fix args to build_unary_op.
3076 (add_builtin_candidates): Don't call type_promotes_to on float.
3077
3078 * decl.c (grokparms): Check the type of the default arg.
3079
3080 * cvt.c (build_new_op): Pass non-overloaded cases on rather than
3081 returning NULL_TREE.
3082
3083 * typeck.c (build_x_binary_op): Avoid doing extra work.
d11ad92e
MS
3084 (build_x_unary_op): Likewise.
3085 (build_x_conditional_expr): Likewise.
c73964b2
MS
3086 * cvt.c (build_over_call): Return.
3087 (add_builtin_candidate): Fix MEMBER_REF.
d11ad92e 3088 (build_new_op): Likewise.
c73964b2
MS
3089
3090Mon Aug 5 17:07:47 1996 Mike Stump <mrs@cygnus.com>
3091
3092 * method.c (build_overload_name): Put bug fix into code but leave
eb66be0e
MS
3093 disabled for now so we can be bug compatible with older releases
3094 that do repeats incorrectly. In the future, we can enable it.
c73964b2
MS
3095
3096Mon Aug 5 13:46:28 1996 Jason Merrill <jason@yorick.cygnus.com>
3097
3098 * cvt.c (convert_like): Don't call build_cplus_new twice.
3099
3100 * call.c, cp-tree.h, cvt.c, decl2.c, init.c, method.c, pt.c, typeck.c:
3101 Control new overloading code with -fansi-overloading.
3102
3103Sun Aug 4 15:29:11 1996 Jason Merrill <jason@yorick.cygnus.com>
3104
3105 * cvt.c (build_over_call): Call build_cplus_new.
d11ad92e
MS
3106 * call.c (build_method_call): Likewise.
3107 * typeck.c (build_function_call_real): Likewise.
c73964b2
MS
3108 (build_conditional_expr): If both operands are TARGET_EXPRs, wrap
3109 the COND_EXPR in a TARGET_EXPR so they use the same slot.
3110
3111 * cvt.c (build_up_reference): Propagate INDIRECT_BIND to
3112 recursive calls.
3113 * typeck.c (complete_type): Propagate
eb66be0e 3114 TYPE_NEEDS_{CONSTRUCTING,DESTRUCTOR}.
c73964b2
MS
3115
3116Sat Aug 3 14:05:07 1996 Jason Merrill <jason@yorick.cygnus.com>
3117
3118 * cvt.c (joust): More ?: kludging. Sigh.
3119 (build_over_call): Don't try to synthesize global fns.
3120
3121 * search.c (lookup_conversions): Use binfo marking.
3122
3123Sat Aug 3 12:33:42 1996 Bob Manson <manson@charmed.cygnus.com>
3124
3125 * search.c (build_mi_matrix): Use the correct value of cid
3126 when determining the new mi_size.
3127
3128Sat Aug 3 01:27:41 1996 Jason Merrill <jason@yorick.cygnus.com>
3129
3130 * cvt.c (add_builtin_candidates): Do consider type conversion ops
3131 for the first parms of += et al.
3132 (strip_top_quals): New fn.
3133 (reference_binding): Use it instead of TYPE_MAIN_VARIANT.
d11ad92e 3134 (implicit_conversion): Likewise.
c73964b2
MS
3135 (add_builtin_candidates): Be careful about arrays.
3136 (build_new_method_call): Handle vtable optimization.
3137
3138Fri Aug 2 01:26:59 1996 Jason Merrill <jason@yorick.cygnus.com>
3139
3140 * cp-tree.h (LOOKUP_NO_TEMP_BIND): New flag.
3141 * cvt.c (reference_binding): Use it.
3142 (implicit_conversion): Use it.
3143 (add_builtin_candidate, COND_EXPR): Use it.
3144
3145 * cvt.c (build_new_function_call): Check for error args.
3146
3147 * typeck.c (comptypes): Just check DERIVED_FROM_P, not UNIQUELY.
3148
3149 * gxx.gperf: Add __null.
3150 * hash.h: Regenerate.
3151 * lex.h: Add RID_NULL.
3152 * lex.c (init_lex): Create null_pointer_node here, stick it in
eb66be0e 3153 RID_NULL.
c73964b2
MS
3154 * decl.c (init_decl_processing): Still set its type here.
3155 * cvt.c (cp_convert_to_pointer): Don't produce null_pointer_node.
d11ad92e 3156 (convert_to_pointer_force): Likewise.
c73964b2
MS
3157 (null_ptr_cst_p): Check for null_pointer_node; only accept (void*)0
3158 if (! pedantic).
3159 * call.c (convert_harshness): Use null_ptr_cst_p.
d11ad92e 3160 * typeck.c (convert_for_assignment): Likewise. Don't produce
c73964b2
MS
3161 null_pointer_node.
3162
3163 * error.c (args_as_string): Handle lists of actual args, too.
3164 * cvt.c (null_ptr_cst): Support (void*)0 for now.
3165 (build_user_type_conversion_1): Improve diagnostics.
3166 (build_new_function_call): Likewise.
3167 (build_object_call): Likewise.
3168 (build_new_method_call): Likewise. Move call before def diagnostic...
3169 (build_over_call): Here.
3170
3171 * cvt.c (build_new_method_call): Don't complain about no match if
eb66be0e 3172 LOOKUP_SPECULATIVELY.
c73964b2
MS
3173 (build_over_call): Fix 'this' for virtual fn.
3174 (build_new_method_call): Add diagnostic.
3175
3176Thu Aug 1 16:45:09 1996 Jason Merrill <jason@yorick.cygnus.com>
3177
3178 * cvt.c (add_function_candidate): Expect 'this' and 'in_chrg' for
eb66be0e 3179 constructors to be passed in.
c73964b2
MS
3180 (build_over_call): Likewise.
3181 (build_user_type_conversion_1): Pass them in.
3182 (convert_like): Likewise.
3183 (build_object_call): Handle overloaded conversions.
3184 (build_over_call): Pass the right args to build_vfn_ref.
3185 (standard_conversion): Fix pmf convs.
3186 (joust): Handle comparing statics and non-statics.
3187 (build_new_method_call): New fn.
3188 * call.c (build_method_call): Call it if NEW_OVER.
3189
3190Thu Aug 1 16:06:14 1996 Mike Stump <mrs@cygnus.com>
3191
3192 * lex.c (do_identifier): Don't use %O on IDENTIFIER_OPNAME_Ps, use
eb66be0e 3193 %D instead.
c73964b2
MS
3194
3195Thu Aug 1 15:24:02 1996 Mike Stump <mrs@cygnus.com>
3196
3197 * except.c (expand_throw): Use maybe_build_cleanup_and_delete
eb66be0e
MS
3198 instead of just maybe_build_cleanup so that we deallocate the
3199 thrown object.
c73964b2
MS
3200
3201Thu Aug 1 15:18:00 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3202
3203 * decl2.c (finish_prevtable_vardecl): Make non-static for pt.c's use.
3204 * cp-tree.h (finish_prevtable_vardecl): Add decl.
3205
14548a19
MS
3206Thu Aug 1 11:53:51 1996 Bob Manson <manson@charmed.cygnus.com>
3207
c73964b2 3208 * pt.c (instantiate_class_template): Call complete_type. Also, if
eb66be0e
MS
3209 we're at the end of the file and we just instantiated a template
3210 class with a vtable, call finish_prevtable_vardecl.
c73964b2 3211
14548a19 3212 * error.c (dump_decl): Don't explode (or explode more gracefully
eb66be0e 3213 as appropriate) if the object being dumped has a null type.
d11ad92e 3214 (dump_expr): Likewise.
14548a19
MS
3215
3216 * search.c (build_mi_matrix): Ensure that mi_size is large enough,
eb66be0e
MS
3217 by counting the number of nodes that we'll need before allocating
3218 the array.
14548a19
MS
3219 (lookup_fnfields): Fix comment.
3220 (breadth_first_search): Fix comment.
3221
3222Wed Jul 31 09:57:05 1996 Jason Merrill <jason@yorick.cygnus.com>
3223
3224 * pt.c (instantiate_class_template): Propagate TYPE_PACKED and
eb66be0e 3225 TYPE_ALIGN.
14548a19
MS
3226 * class.c (finish_struct): Call cplus_decl_attributes here.
3227 (finish_struct_1): Not here.
3228 * cp-tree.h: Adjust.
3229
3230 * pt.c (type_unification): New parameter STRICT.
3231 (unify): If STRICT, don't allow cv addition or base deduction.
3232 * call.c, class.c, cvt.c, cp-tree.h: Adjust.
3233
3234Tue Jul 30 13:06:13 1996 Jason Merrill <jason@yorick.cygnus.com>
3235
3236 * search.c (get_template_base{_recursive}): New fns.
3237 * pt.c (more_specialized): New fn.
3238 (do_function_instantiation): Use it.
3239 (unify): Handle base deduction.
3240 * cvt.c (joust): Use more_specialized.
3241 Don't arbitrarily choose between non-builtin candidates.
3242 (build_over_call): Call require_complete_type.
3243
3244 * decl.c (start_function): Statics are static even in a #pragma
eb66be0e 3245 interface file.
14548a19
MS
3246
3247 * decl2.c (import_export_vtable): Disable vtable heuristic on
eb66be0e 3248 systems with ASM_OUTPUT_EXTERNAL.
14548a19
MS
3249
3250 * cvt.c (compare_ics): Fix comparison of PMEM_CONV and BASE_CONV.
3251 (standard_conversion): No std conv to enum type.
3252
3253 * cvt.c (standard_conversion): Fix order of args to DERIVED_FROM_P
3254 for ptm's.
3255
3256 * cvt.c (reference_binding): Bind directly to a base subobject of
eb66be0e 3257 a class rvalue.
14548a19
MS
3258
3259 * cvt.c (build_new_op): Enforce access control.
3260
3261Tue Jul 30 09:22:53 1996 Bob Manson <manson@charmed.cygnus.com>
3262
3263 * typeck2.c (process_init_constructor): When scanning the
3264 union for a named field, skip things that aren't FIELD_DECLs.
3265
3266 * method.c (synthesize_method): Don't scan fndecl's rtl if
3267 we're at the end of the file; just assume the function can't
3268 be inlined.
3269
3270Mon Jul 29 15:48:30 1996 Jason Merrill <jason@yorick.cygnus.com>
3271
3272 * cvt.c (build_builtin_candidate): Stick a dummy conversion in if
eb66be0e 3273 it failed.
14548a19
MS
3274
3275 * cvt.c (build_user_type_conversion_1): Handle overloaded
eb66be0e 3276 conversion ops.
14548a19
MS
3277
3278 * cvt.c (add_builtin_candidates): Don't consider type conversion
eb66be0e 3279 operators for the first parameter of operator=.
14548a19
MS
3280
3281Mon Jul 29 15:33:55 1996 Bob Manson <manson@charmed.cygnus.com>
3282
3283 * typeck.c (complete_type): Only call layout_type if we're not
eb66be0e 3284 expanding a template.
14548a19
MS
3285
3286Mon Jul 29 14:40:38 1996 Jason Merrill <jason@yorick.cygnus.com>
3287
3288 * cvt.c (compare_ics): Oops.
3289
3290 * cvt.c (op_error): Oops.
3291
3292 * cp-tree.def: Add RVALUE_CONV, rename EXACT_CONV to IDENTITY_CONV.
3293 * cvt.c: Add IDENTITY_RANK before others. Use real_lvalue_p.
3294 (build_conv): Use them.
3295 (implicit_conversion): Use them.
3296 (convert_like): Handle them.
3297 (build_new_op): Handle builtin COND_EXPR again.
3298 (add_builtin_candidates): Strip cv-quals. Fix oops. Include enums
3299 in lists of types for COND_EXPR.
3300 (add_builtin_candidate): Add enum candidates for COND_EXPR.
3301
3302Mon Jul 29 12:05:40 1996 Bob Manson <manson@charmed.cygnus.com>
3303
3304 * typeck.c (build_modify_expr): Always attempt to build a call to
eb66be0e 3305 the assignment operator, even if we're using a default one.
14548a19
MS
3306 (convert_for_initialization): Call complete_type.
3307
3308Mon Jul 29 11:25:08 1996 Jason Merrill <jason@yorick.cygnus.com>
3309
3310 * cvt.c (reference_binding): A REF_BIND gets the reference type.
3311 (implicit_conversion): Likewise.
3312 (convert_like): Likewise.
3313 (compare_ics): Likewise.
3314 (compare_qual): Likewise.
3315 (print_z_candidates): Handle no candidates.
3316 (build_new_op): Don't handle builtin COND_EXPR for now.
3317
3318Sat Jul 27 11:27:47 1996 Stan Shebs <shebs@andros.cygnus.com>
3319
3320 * cvt.c (build_builtin_candidate): Init local var in an ANSI way.
3321
3322Fri Jul 26 01:07:22 1996 Jason Merrill <jason@yorick.cygnus.com>
3323
3324 * cvt.c (joust): If the candidates are the same, arbitrarily pick one.
3325
3326 * cvt.c (build_builtin_candidate): Oops.
3327 (build_new_op): Oops.
3328
3329 * method.c (build_opfncall): Pass COND_EXPR on.
3330 * cvt.c (build_builtin_candidate): Reorganize, support COND_EXPR.
3331 (add_builtin_candidate{,s}): Likewise.
3332 (add_builtin_candidates): Likewise.
3333 (print_z_candidates, op_error, build_new_op): Likewise.
3334 (type_decays_to): New fn.
3335 * lex.c (init_lex): Just say ?: for COND_EXPR.
3336
3337Thu Jul 25 09:33:33 1996 Jason Merrill <jason@yorick.cygnus.com>
3338
3339 * typeck.c (complete_type): Call layout_type rather than building
eb66be0e 3340 a new array type.
14548a19
MS
3341
3342 * cvt.c (add_builtin_candidate): Pointer arithmetic candidates
eb66be0e 3343 only use ptrdiff_t.
14548a19
MS
3344
3345Wed Jul 24 12:45:08 1996 Jason Merrill <jason@yorick.cygnus.com>
3346
3347 * cvt.c: Always compile the new overloading code (but don't use it).
3348 (implicit_conversion): Add a BASE_CONV when converting to
eb66be0e 3349 the same class type.
14548a19
MS
3350 (convert_like): Handle BASE_CONV.
3351
3352Tue Jul 23 12:46:30 1996 Jason Merrill <jason@yorick.cygnus.com>
3353
3354 * cvt.c (build_new_op): Support {MAX,MIN}_EXPR.
3355 (add_builtin_candidate): Likewise.
3356
3357 NEW_OVER changes:
3358 * typeck.c (build_x_function_call): Try an operator function
eb66be0e 3359 whenever we call an object of class type.
14548a19
MS
3360 * method.c (build_opfncall): Pass CALL_EXPRs through.
3361 * cvt.c (implicit_conversion): Do const-ref case first.
3362 (add_conv_candidate, build_object_call, op_error): New fns.
3363 (ptr_complete_ob, TYPE_PTROB_P): void is not an object type.
3364 ({add,build}_builtin_candidate{,s}, print_z_candidates): Display
3365 builtin candidates.
3366 (build_new_op): Handle CALL_EXPR. Don't try to decay void.
3367 Fall back on preincrement handling. Use op_error.
3368 Handle warn_synth.
3369 (convert_like): Pass INDIRECT_BIND. Don't try to do anything with
3370 an error_mark_node.
3371 (build_over_call): Handle PROMOTE_PROTOTYPES and ellipsis promotions
3372 properly.
3373
3374Mon Jul 22 16:21:55 1996 Bob Manson <manson@charmed.cygnus.com>
3375
3376 * pt.c (tsubst_expr): Handle CONTINUE_STMT.
3377
3378Mon Jul 22 15:38:58 1996 Mike Stump <mrs@cygnus.com>
3379
3380 * typeck.c (build_component_ref_1): Use build_component_ref
3381 instead of open coding it here.
3382
3383Mon Jul 22 12:18:54 1996 Jason Merrill <jason@yorick.cygnus.com>
3384
3385 * g++.c (main): Don't link with -lg++.
3386
3387 NEW_OVER changes:
3388 * cvt.c (convert_to_reference): Don't use convert_from_refeence on
eb66be0e 3389 result of build_type_conversion.
14548a19
MS
3390 (cp_convert): Only call build_method_call for ctors if
3391 build_type_conversion failed.
3392 (ptr_complete_ob): New function.
3393 (TYPE_PTR{,OB,MEM}_P): New macros.
3394 ({add,build}_builtin_candidate{,s}): New functions.
3395 (print_z_candidates): Handle builtins.
3396 (build_user_type_conversion_1): Don't use conversion fns for
3397 converting to a base type.
3398 (build_user_type_conversion_1): Set ICS_USER_FLAG on AMBIG_CONVs.
3399 (build_user_type_conversion): Use convert_from_reference.
3400 (build_new_op): New function.
3401 (build_over_call): Fix handling of methods.
3402 (compare_ics): Handle AMBIG_CONV properly.
3403 * typeck2.c: Increment abort count.
3404 * method.c (build_opfncall): Forward most requests to build_new_op.
3405 * cp-tree.h (IS_OVERLOAD_TYPE): Tweak.
3406
3407Fri Jul 19 17:59:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3408
3409 * error.c (dump_expr, case CONSTRUCTOR, case CAST_EXPR): Take out
3410 invalid second argument to dump_expr_list.
3411
594740f3
MS
3412Fri Jul 19 14:04:05 1996 Mike Stump <mrs@cygnus.com>
3413
3414 * decl.c (lookup_name_real): Make sure we do obj->X::i correctly.
3415
3416Thu Jul 18 14:48:23 1996 Bob Manson <manson@charmed.cygnus.com>
3417
3418 * decl2.c (import_export_vtable): ASM_OUTPUT_EXTERNAL, not
3419 ASSEMBLE_EXTERNAL.
3420
3421Mon Jul 15 17:48:43 1996 Mike Stump <mrs@cygnus.com>
3422
3423 * typeck2.c (process_init_constructor): New pedwarn for using { }
3424 to initialize a pointer to member function.
3425 * typeck.c (build_ptrmemfunc1): Avoid use of digest_init so that
3426 we can avoid the new error.
3427
3428Mon Jul 15 15:42:03 1996 Mike Stump <mrs@cygnus.com>
3429
3430 * typeck.c (build_ptrmemfunc1): New function to hide details of
3431 pointer to member functions better.
3432
3433Mon Jul 15 14:23:02 1996 Mike Stump <mrs@cygnus.com>
3434
3435 * init.c (resolve_offset_ref): Resolve OFFSET_REFs that are
3436 methods into the actual method, as we know the implied object is
3437 not used.
3438
3439Mon Jul 15 13:08:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3440
3441 * parse.y (maybecomma_warn): Only emit the pedwarn if we're not
3442 inside a system header.
3443
3444Fri Jul 12 16:30:05 1996 Bob Manson <manson@charmed.cygnus.com>
3445
3446 * call.c (build_method_call): Call complete_type on the
3447 instance type.
3448
3449Thu Jul 11 17:16:40 1996 Mike Stump <mrs@cygnus.com>
3450
3451 * typeck.c (build_component_ref): Always build up an OFFSET_REF
3452 for obj_ptr->func so that we can know which object to use in a
3453 method call.
3454
3455Wed Jul 10 19:36:37 1996 Mike Stump <mrs@cygnus.com>
3456
3457 * typeck.c (build_ptrmemfunc): Remove sorry, now we can cast
3458 around things. Also improve maintainability.
3459
3460Wed Jul 10 18:20:11 1996 Bob Manson <manson@charmed.cygnus.com>
3461
3462 * decl.c (grokdeclarator): Check for overflow when evaluating an
eb66be0e 3463 array dimension.
594740f3
MS
3464
3465Wed Jul 10 17:26:19 1996 Jason Merrill <jason@yorick.cygnus.com>
3466
3467 * cvt.c (cp_convert): Don't check for ambiguity with constructor
eb66be0e 3468 if NEW_OVER.
594740f3
MS
3469
3470 * typeck.c (build_x_function_call): Pass function overload
eb66be0e 3471 questions to new overloading code if NEW_OVER.
594740f3 3472 * init.c (expand_aggr_init_1): Only check for type conversion ops
eb66be0e
MS
3473 if we're doing copy-initialization (i.e. LOOKUP_ONLYCONVERTING).
3474 Don't check for ambiguity with constructor if NEW_OVER.
594740f3 3475 * cvt.c (convert_to_reference): Dereference the result of a type
eb66be0e 3476 conversion operator.
594740f3
MS
3477 (build_conv): Propagate ICS_USER_FLAG.
3478 (implicit_conversion): Call instantiate_type.
3479 Pass LOOKUP_ONLYCONVERTING instead of LOOKUP_NORMAL.
3480 (add_function_candidate): Fix cv-quals on argtype.
3481 (print_z_candidates): New function.
3482 (build_new_function_call): Call it.
3483 (build_user_type_conversion_1): If LOOKUP_ONLYCONVERTING, don't
3484 consider non-converting constructors.
3485 Call print_z_candidates.
3486 Return an AMBIG_CONV for an ambiguous conversion.
3487 (build_user_type_conversion): Handle AMBIG_CONV.
3488 (convert_like): Fix test for building TARGET_EXPR.
3489 Call instantiate_type.
3490 Handle AMBIG_CONV and LVALUE_CONV.
3491 (build_over_call): Handle 0 args and ellipsis.
3492 * cp-tree.def: Add AMBIG_CONV.
3493
e92cc029
MS
3494Tue Jul 9 17:48:48 1996 Mike Stump <mrs@cygnus.com>
3495
3496 * decl.c (lookup_name_real): If we find mem in obj when parsing
eb66be0e 3497 `obj->mem', make sure we return the right value.
e92cc029
MS
3498
3499Tue Jul 9 16:11:28 1996 Bob Manson <manson@charmed.cygnus.com>
3500
3501 * search.c (get_base_distance): Call complete_type.
3502
3503Tue Jul 9 12:46:34 1996 Mike Stump <mrs@cygnus.com>
3504
3505 * decl.c (store_bindings): Make static.
3506
3507Mon Jul 8 16:42:31 1996 Jason Merrill <jason@yorick.cygnus.com>
3508
3509 * init.c (expand_aggr_init_1): Don't check type conversions if
eb66be0e 3510 NEW_OVER.
e92cc029
MS
3511
3512 * cvt.c (z_candidate): Put back template field.
3513 (add_function_candidate): Set it.
3514 (add_template_candidate): Likewise.
3515 (joust): Use it.
3516 (compare_qual): Handle references and pointers to members.
3517 (compare_ics): Handle reference bindings.
3518
3519 * decl.c (duplicate_decls): Propagate DECL_ONE_ONLY.
3520
3521Mon Jul 8 16:18:56 1996 Bob Manson <manson@charmed.cygnus.com>
3522
3523 * call.c (compute_conversion_costs): Call complete_type.
3524
3525 * tree.c (vec_binfo_member): Use comptypes instead of comparing
eb66be0e 3526 pointers, so we can handle template parameters.
e92cc029
MS
3527
3528Fri Jul 5 16:51:53 1996 Bob Manson <manson@charmed.cygnus.com>
3529
3530 * cvt.c (cp_convert_to_pointer): We have to call complete_type
3531 here; let's make it explicit instead of a side effect of an
3532 error check.
3533
3534Wed Jul 3 16:29:51 1996 Jason Merrill <jason@yorick.cygnus.com>
3535
3536 * cvt.c (z_candidate): Remove template field.
3537 (reference_binding): Handle binding to temporary.
3538 (implicit_conversion): Likewise.
3539 (add_function_candidate): Handle artificial constructor parms.
3540 Handle functions with too few parms.
3541 (add_template_candidate): New function.
3542 (build_user_type_conversion_1): Handle constructors.
3543 (convert_like): Likewise.
3544 (build_over_call): Likewise.
3545 (build_new_function_call): Support templates.
3546 (compare_ics): Fix reference, inheritance handling.
3547
3548Mon Jul 1 22:58:18 1996 Bob Manson <manson@charmed.cygnus.com>
3549
3550 * decl.c: Add signed_size_zero_node.
3551 (init_decl_processing): Build it.
3552 * class.c (prepare_fresh_vtable): Use it instead of size_zero_node
eb66be0e 3553 when we're trying to make a negative delta.
e92cc029
MS
3554
3555Mon Jul 1 17:56:19 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3556
3557 Stop doing this damn index==strchr variable name confusion.
3558 * class.c (add_virtual_function): Change local var INDEX to be
3559 named IDX.
3560 (add_method): Likewise.
3561 * lex.c (print_parse_statistics): Likewise.
3562 * search.c (make_memoized_table_entry): Likewise.
3563 (lookup_fnfields_here): Likewise.
3564 (lookup_field): Likewise.
3565 (lookup_fnfields): Likewise.
3566 (get_baselinks): Likewise.
3567 * sig.c (build_signature_table_constructor): Likewise.
3568 (build_signature_method_call): Likewise.
3569 * typeck.c (build_x_array_ref): Change INDEX parm to be named IDX.
3570 (get_member_function_from_ptrfunc): Likewise.
3571 (build_ptrmemfunc): Change local var INDEX to be IDX.
3572 (c_expand_start_case): Likewise.
3573
3574Sat Jun 29 14:05:46 1996 Jason Merrill <jason@yorick.cygnus.com>
3575
3576 * cvt.c (cp_convert_to_pointer): Move user-defined type conversion
eb66be0e 3577 handling to before extraction of TYPE_PTRMEMFUNC_FN_TYPE.
e92cc029 3578 (convert_to_reference): Use build_type_conversion to convert to
eb66be0e 3579 the reference type directly.
e92cc029
MS
3580 (standard_conversion): Fix void* case, non-conversions.
3581 (reference_binding): Fix expr == 0 case, non-conversions.
3582 (convert_like): Support REF_BIND.
3583 (compare_qual): Split out from compare_ics.
3584 (compare_ics): Use it, handle icses with only a qual_conv.
3585
3586 * init.c (expand_vec_init): Don't crash if decl is NULL.
3587
3588Fri Jun 28 11:52:51 1996 Stan Shebs <shebs@andros.cygnus.com>
3589
3590 * mpw-config.in: New file, configury for Mac MPW.
3591 * mpw-make.sed: New file, makefile editing for MPW.
3592
3593Thu Jun 27 15:18:30 1996 Jason Merrill <jason@yorick.cygnus.com>
3594
3595 * pt.c (instantiate_class_template): Call repo_template_used.
3596
3597 * search.c (lookup_conversions): Only lookup conversions in
eb66be0e 3598 complete types.
e92cc029
MS
3599
3600Thu Jun 27 12:59:53 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3601
3602 * cp-tree.def: Renamed from tree.def, to avoid confusion with
3603 gcc's tree.def.
3604 * cp-tree.h, lex.c: Include cp-tree.def.
3605 * Makefile.in (CXX_TREE_H): Reference cp-tree.def.
3606
3607Wed Jun 26 18:29:47 1996 Bob Manson <manson@charmed.cygnus.com>
3608
3609 * init.c (build_vec_delete_1): Call complete_type.
3610
3611Mon Jun 24 17:17:32 1996 Mike Stump <mrs@cygnus.com>
3612
3613 * except.c (start_anon_func): Make sure anonymous functions are
eb66be0e 3614 never external.
e92cc029
MS
3615
3616Fri Jun 21 15:10:58 1996 Jason Merrill <jason@yorick.cygnus.com>
3617
3618 * decl.c (finish_function): If function_depth > 1, set nested.
3619
3620 * decl2.c (grokbitfield): Revert Bob's change.
3621 * class.c (finish_struct_1): Fix handling of named bitfield widths.
3622
3623Thu Jun 20 23:35:38 1996 Jason Merrill <jason@yorick.cygnus.com>
3624
3625 * pt.c (add_pending_template): Handle types.
3626 (lookup_template_class): With -fexternal-templates, just add the class
3627 to pending_templates instead of instantiating it now.
3628 * decl2.c (finish_file): Handle types in pending_templates.
3629
3630Thu Jun 20 14:08:40 1996 Bob Manson <manson@charmed.cygnus.com>
3631
3632 * decl2.c (grokbitfield): Handle constant decls appropriately.
eb66be0e
MS
3633 Give an appropriate error message now instead of spewing core
3634 later.
e92cc029
MS
3635
3636Thu Jun 20 13:01:51 1996 Jason Merrill <jason@yorick.cygnus.com>
3637
3638 * decl2.c: Don't turn on thunks by default for now.
3639
3640Wed Jun 19 11:37:04 1996 Jason Merrill <jason@yorick.cygnus.com>
3641
3642 * typeck.c (complete_type): Handle error_mark_node.
3643 (common_type, OFFSET_TYPE): Handle template_type_parms.
3644
3645Tue Jun 18 10:02:15 1996 Jason Merrill <jason@yorick.cygnus.com>
3646
3647 * pt.c (instantiate_decl): If at_eof, call import_export_decl
eb66be0e 3648 regardless of DECL_INLINE.
e92cc029
MS
3649
3650 * typeck.c (mark_addressable): Set TREE_ADDRESSABLE on CONSTRUCTORs.
3651
3652 * class.c (finish_struct_bits): Copy TYPE_SIZE.
3653
3654 * rtti.c (build_dynamic_cast): Support templates.
3655 * tree.def: Support DYNAMIC_CAST_EXPR.
3656 * pt.c (tsubst_copy): Likewise.
3657 * decl2.c (build_expr_from_tree): Likewise.
3658
3659Mon Jun 17 15:23:36 1996 Jason Merrill <jason@yorick.cygnus.com>
3660
3661 * typeck.c (build_static_cast): Support templates.
3662 (build_const_cast): Likewise.
3663 * tree.def: Support CONST/STATIC_CAST_EXPR.
3664 * pt.c (tsubst_copy): Likewise.
3665 * decl2.c (build_expr_from_tree): Likewise.
3666
3667Sun Jun 16 12:33:57 1996 Jason Merrill <jason@yorick.cygnus.com>
3668
3669 * decl2.c (finish_vtable_vardecl): Don't trust
eb66be0e 3670 TREE_SYMBOL_REFERENCED for vtables of local classes.
e92cc029
MS
3671
3672Fri Jun 14 18:13:36 1996 Jason Merrill <jason@yorick.cygnus.com>
3673
3674 * pt.c (tsubst_copy): Handle operator T.
3675
3676Wed Jun 12 17:52:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
3677
3678 * init.c (build_delete): Move creation of PARMS inside test of
3679 TYPE_HAS_DESTRUCTOR, since it's never used outside of that block.
3680
3681Tue Jun 11 15:09:18 1996 Bob Manson <manson@charmed.cygnus.com>
3682
3683 * typeck.c (build_conditional_expr): Don't assume that
3684 the arguments to ?: are always pointers or records.
3685
3686Tue Jun 11 13:56:23 1996 Jason Merrill <jason@yorick.cygnus.com>
3687
3688 * decl2.c (import_export_decl): Still emit static/weak/comdat
eb66be0e 3689 copies of inline template functions with -fno-implicit-templates.
e92cc029
MS
3690
3691Tue Jun 11 11:42:13 1996 Bob Manson <manson@charmed.cygnus.com>
3692
3693 * init.c (build_delete): Determine the complete basetype
3694 path to the destructor we're calling.
3695
3696Fri Jun 7 15:30:10 1996 Bob Manson <manson@charmed.cygnus.com>
3697
3698 * decl.c (build_enumerator): Always copy the INTEGER_CST used to
eb66be0e
MS
3699 initialize the enum, because we really and truly don't know where
3700 it came from.
e92cc029 3701 (start_enum): Don't copy integer_zero_node because
eb66be0e 3702 build_enumerator will do it.
e92cc029
MS
3703
3704Fri Jun 7 11:11:09 1996 Jason Merrill <jason@yorick.cygnus.com>
3705
3706 * decl.c (finish_function): Do access control on base destructors.
3707
3708 * pt.c (tsubst, case FUNCTION_DECL): Set up
eb66be0e
MS
3709 IDENTIFIER_GLOBAL_VALUE for member functions so pushdecl doesn't
3710 hose us.
e92cc029
MS
3711
3712Fri Jun 7 10:37:33 1996 Mike Stump <mrs@cygnus.com>
3713
3714 * cvt.c (build_up_reference): If we have already extended the
eb66be0e 3715 lifetime of the temporary, don't try it again.
e92cc029
MS
3716 * typeck.c (c_expand_return): Don't try and convert the return
3717 value twice when we want a reference, once is enough.
3718
a0128b67
MS
3719Tue Jun 4 15:41:45 1996 Jason Merrill <jason@yorick.cygnus.com>
3720
3721 * pt.c (tsubst_expr, case DECL_STMT): Don't pass
eb66be0e 3722 LOOKUP_ONLYCONVERTING at all for now.
a0128b67
MS
3723
3724 * search.c (add_conversions): Put the conversion function in
eb66be0e 3725 TREE_VALUE, the basetype in TREE_PURPOSE.
a0128b67
MS
3726 * cvt.c (build_type_conversion): Adjust.
3727 * cvt.c (build_expr_type_conversion): Adjust.
3728 * call.c (user_harshness): Adjust.
3729
3730Mon Jun 3 15:30:52 1996 Jason Merrill <jason@yorick.cygnus.com>
3731
3732 * method.c (emit_thunk): Pretend this is a FUNCTION_DECL for the
eb66be0e 3733 backend's benefit.
a0128b67 3734
14548a19
MS
3735Mon Jun 10 18:58:19 1996 Mike Stump <mrs@cygnus.com>
3736
3737 * except.c (expand_start_catch_block): Add a dummy region, if we
3738 get an error, so that we can avoid core dumping later.
3739
a0128b67
MS
3740Fri May 31 14:56:13 1996 Mike Stump <mrs@cygnus.com>
3741
3742 * cp-tree.h (OFFSET_REF): Remove.
3743 * tree.def (CP_OFFSET_REF): Rename to OFFSET_REF.
3744 * expr.c (cplus_expand_expr): Cleanup callers of expand_expr.
d11ad92e
MS
3745 * init.c (expand_aggr_init_1): Likewise.
3746 (build_new): Likewise.
3747 * typeck.c (expand_target_expr): Likewise.
a0128b67
MS
3748
3749Fri May 31 14:22:08 1996 Jason Merrill <jason@yorick.cygnus.com>
3750
3751 * typeck.c (build_modify_expr): Don't use TREE_VALUE on a
eb66be0e 3752 TARGET_EXPR.
a0128b67 3753
e349ee73
MS
3754Wed May 29 17:04:33 1996 Mike Stump <mrs@cygnus.com>
3755
3756 * cvt.c (build_up_reference): Redo how and when temporaries are
3757 created.
3758 * decl.c (grok_reference_init): Don't try and be smart about
3759 running cleanups.
3760
3761Wed May 29 16:02:08 1996 Mike Stump <mrs@cygnus.com>
3762
3763 * cvt.c (build_up_reference): Add NULL_TREE to all calls to build
3764 (TARGET_EXPR...), now that it has 4 arguments.
d11ad92e 3765 * tree.c (build_cplus_new): Likewise.
e349ee73
MS
3766
3767Thu May 23 16:40:30 1996 Jason Merrill <jason@yorick.cygnus.com>
3768
3769 * error.c (dump_expr, case CAST_EXPR): Handle T() properly.
3770
3771 * pt.c (instantiate_decl): Don't call push/pop_cp_function_context.
3772 * decl.c (struct saved_scope): Remove named_labels,
3773 {base,member}_init_list.
3774 (maybe_push_to_top_level): Don't set them. Call
3775 push_cp_function_context if appropriate.
3776 (pop_from_top_level): Likewise.
3777
3778 * method.c (do_build_assign_ref): Remove obsolete check of
3779 TYPE_HAS_ASSIGN_REF (basetype).
3780
3781 * decl.c (grokfndecl): Diagnose user definition of
eb66be0e 3782 implicitly-declared methods.
e349ee73
MS
3783
3784Thu May 23 12:13:08 1996 Bob Manson <manson@charmed.cygnus.com>
3785
3786 * method.c (do_build_copy_constructor): Add code to give
eb66be0e
MS
3787 meaningful error messages instead of crashing.
3788 (do_build_assign_ref): Don't synthesize assignment operators for
3789 classes containing reference or const members.
e349ee73
MS
3790
3791 * class.c (struct base_info): Remove cant_synth_copy_ctor
3792 and cant_synth_asn_ref.
3793 (finish_base_struct): Remove the code that tries to conditionalize
eb66be0e
MS
3794 synthesis of copy constructors & assignment operators based on
3795 access permissions. Instead, let it fail when it tries to
3796 synthesize the copy constructor. This will give meaningful error
3797 messages instead of silently generating code to perform a bitcopy.
e349ee73
MS
3798
3799Wed May 22 11:45:19 1996 Bob Manson <manson@charmed.cygnus.com>
3800
3801 * lex.c (real_yylex): Remove old-n-crufty #if 0 code for
eb66be0e 3802 determining types for constant values.
e349ee73
MS
3803
3804 * decl.c (struct named_label_list): Use instead of stuffing
3805 random items into a TREE_LIST node.
3806 (named_label_uses): Use the new struct.
d11ad92e
MS
3807 (poplevel): Likewise.
3808 (lookup_label): Likewise.
e349ee73 3809 (define_label): Add an error message to tell the user the line
eb66be0e
MS
3810 where the goto is located in addition to the destination of the
3811 goto.
e349ee73
MS
3812 (init_decl_processing): Use NULL instead of NULL_TREE to initialize
3813 named_label_uses.
d11ad92e 3814 (finish_function): Likewise.
e349ee73
MS
3815
3816 (start_decl): Complain about defining a static data member
3817 in a different type from which it was declared.
3818
3819Wed May 22 09:33:23 1996 Jason Merrill <jason@yorick.cygnus.com>
3820
3821 * cvt.c (build_expr_type_conversion): Adjust.
3822
3823Tue May 21 11:21:56 1996 Jason Merrill <jason@yorick.cygnus.com>
3824
3825 * call.c (build_method_call): Always convert 'this' to the
eb66be0e 3826 appropriate type.
e349ee73
MS
3827
3828 * search.c (add_conversions): Put the conversion function in
eb66be0e 3829 TREE_VALUE, the type in TREE_PURPOSE.
e349ee73
MS
3830 * cvt.c (build_type_conversion): Adjust.
3831 * call.c (user_harshness): Adjust.
3832
3833 * method.c (emit_thunk): Call temporary_allocation and
eb66be0e 3834 permanent_allocation around the ASM_OUTPUT_MI_THUNK case, too.
e349ee73
MS
3835
3836 * tree.c (build_cplus_array_type): Handle tweaking of
eb66be0e 3837 TYPE_MAIN_VARIANT here.
e349ee73
MS
3838 * typeck.c (common_type): Not here.
3839
3840 * typeck.c (complete_type): Only try to complete an array type if
eb66be0e 3841 it has a domain.
e349ee73
MS
3842
3843Mon May 20 14:55:59 1996 Jason Merrill <jason@yorick.cygnus.com>
3844
3845 * decl.c (grokvardecl): Call complete_type.
3846 (grokdeclarator): Call complete_type for PARM_DECLs.
3847
3848Fri May 17 16:41:17 1996 Jason Merrill <jason@yorick.cygnus.com>
3849
3850 * pt.c (instantiate_class_template): Re-set
eb66be0e 3851 CLASSTYPE_GOT_SEMICOLON after calling finish_struct_1.
e349ee73
MS
3852
3853Fri May 17 14:56:55 1996 Mike Stump <mrs@cygnus.com>
3854
3855 * cp-tree.h (cp_expand_decl_cleanup): Remove, the backend is now
3856 smart enough to do it right.
d11ad92e 3857 * tree.c (cp_expand_decl_cleanup): Likewise.
e349ee73
MS
3858 * decl.c (cp_finish_decl): Use expand_decl_cleanup instead of
3859 cp_expand_decl_cleanup.
d11ad92e
MS
3860 (store_parm_decls): Likewise.
3861 (hack_incomplete_structures): Likewise.
3862 * except.c (push_eh_cleanup): Likewise.
e349ee73
MS
3863
3864Fri May 17 13:13:51 1996 Mike Stump <mrs@cygnus.com>
3865
3866 * expr.c (expand_expr, cond UNSAVE_EXPR): Move from the C++
3867 frontend to the backend where it belongs.
d11ad92e
MS
3868 * tree.c (unsave_expr): Likewise.
3869 (unsave_expr_now): Likewise.
3870 * tree.def (UNSAVE_EXPR): Likewise.
3871 * cp-tree.h (unsave_expr): Likewise.
3872 (unsave_expr_now): Likewise.
e349ee73
MS
3873
3874Fri May 17 11:02:41 1996 Mike Stump <mrs@cygnus.com>
3875
3876 * init.c (emit_base_init): Make sure the partial EH cleanups live
3877 on the function_obstack.
3878
ce122a86
MS
3879Thu May 16 15:29:33 1996 Bob Manson <manson@charmed.cygnus.com>
3880
3881 * expr.c (do_case): Don't try to dereference null TREE_TYPEs
3882 when checking for pointer types.
3883
3884Thu May 16 13:38:58 1996 Jason Merrill <jason@yorick.cygnus.com>
3885
3886 * pt.c (instantiate_class_template): Remove obsolete check for
eb66be0e 3887 access declarations.
ce122a86
MS
3888
3889Thu May 16 13:34:15 1996 Mike Stump <mrs@cygnus.com>
3890
3891 * call.c (build_overload_call): Simplify calls to
3892 build_overload_call by removing last parameter.
d11ad92e
MS
3893 (build_method_call): Likewise.
3894 * cp-tree.h: Likewise.
3895 * method.c (build_opfncall): Likewise.
3896 * typeck.c (build_x_function_call): Likewise.
ce122a86
MS
3897
3898Thu May 16 13:15:43 1996 Mike Stump <mrs@cygnus.com>
3899
3900 * call.c (default_parm_conversions): Factor out common code.
3901 (build_method_call): Use it.
3902 (build_overload_call_real): Use it.
3903
4ac14744
MS
3904Wed May 15 14:46:14 1996 Mike Stump <mrs@cygnus.com>
3905
3906 * call.c (build_method_call): Allow implicit & on METHOD_TYPEs,
3907 but pedwarn as the code is bogus.
d11ad92e 3908 * typeck.c (decay_conversion): Likewise.
4ac14744
MS
3909 (build_function_call_real): Use build_addr_func instead of
3910 default_conversion. Don't allow pointer-to-method functions down
3911 here.
3912 (build_unary_op): Use real pointer-to-member functions instead of
3913 fake ones.
3914 (build_ptrmemfunc): Use build_addr_func instead of build_unary_op.
3915 (convert_for_assignment): Removed some obsolete code.
3916 * decl2.c (reparse_absdcl_as_expr): Pass current_class_ref to
3917 build_x_function_call instead of current_class_ptr. Only call
3918 digest_init once on an initializer, we do this just checking
3919 TREE_TYPE.
3920 (build_expr_from_tree): Pass current_class_ref to
3921 build_x_function_call instead of current_class_ptr.
d11ad92e
MS
3922 * init.c (build_member_call): Likewise.
3923 * pase.y: Likewise.
4ac14744
MS
3924 * error.c (dump_expr): Handle OFFSET_REFs better.
3925 * pt.c (unify): Handle pointer-to-member functions better.
3926 * decl.c (finish_function): Clear out current_class_ref just like
3927 we do for current_class_ptr.
3928
3929 * typeck.c (get_delta_difference): Handle virtual bases better.
3930
3931Tue May 14 16:37:37 1996 Jason Merrill <jason@yorick.cygnus.com>
3932
3933 * sig.c (build_signature_table_constructor): Use the delta for
3934 the original basetype for this virtual function with thunks.
3935 (build_signature_method_call): We still need to adjust 'this'
3936 with thunks.
3937
3938Tue May 14 16:27:25 1996 Mike Stump <mrs@cygnus.com>
3939
3940 * call.c (build_addr_func): New routine. Used to get the `real'
3941 address of a function or a method. Needed to avoid getting a
3942 pointer-to-member function.
3943 (build_call): New routine to build CALL_EXPRs.
3944 (build_method_call): Use it.
d11ad92e
MS
3945 * cvt.c (convert_to_aggr): Likewise.
3946 * typeck.c (build_function_call_real): Likewise.
4ac14744
MS
3947 * sig.c (build_signature_table_constructor): Use build_addr_func.
3948 * cp-tree.h (build_call, build_addr_func): Declare them.
3949
3950Tue May 14 12:47:47 1996 Mike Stump <mrs@cygnus.com>
3951
3952 * cp-tree.h (LOOKUP_AGGR): Remove, unused.
3953 * parse.y: Remove uses of LOOKUP_AGGR.
3954
3955Tue May 14 12:07:51 1996 Mike Stump <mrs@cygnus.com>
3956
3957 * *.[chy]: Rename current_class_decl to current_class_ptr, and
3958 C_C_D to current_class_ref.
3959
3960Mon May 13 16:55:23 1996 Jason Merrill <jason@yorick.cygnus.com>
3961
3962 * call.c (convert_harshness): Tighten up pointer conversions.
3963
3964Sat May 11 04:33:50 1996 Doug Evans <dje@canuck.cygnus.com>
3965
3966 * decl2.c (finish_vtable_vardecl): Surround DECL_ONE_ONLY with ifdef.
3967 (finish_file): Likewise.
3968
3969Fri May 10 11:09:57 1996 Jason Merrill <jason@yorick.cygnus.com>
3970
3971 * cvt.c (convert_fn_ptr): We don't use thunks for pmfs.
3972
3973 * method.c (emit_thunk): Set flag_omit_frame_pointer in default
eb66be0e 3974 code.
4ac14744
MS
3975
3976Thu May 9 18:18:30 1996 Jason Merrill <jason@yorick.cygnus.com>
3977
3978 * decl2.c: Turn on thunks by default where supported.
3979
4dabb379
MS
3980Tue May 7 20:39:57 1996 Mike Stump <mrs@cygnus.com>
3981
3982 * cp-tree.h (build_overload_call_maybe): Removed.
3983 * call.c (build_overload_call_real): Invert meaning of last arg to
3984 be require_complete.
d11ad92e 3985 (build_overload_call): Likewise.
4dabb379
MS
3986 * typeck.c (build_x_function_call): Use build_overload_call_real
3987 instead of build_overload_call_maybe.
3988
a50f0918
MS
3989Mon May 6 01:23:32 1996 Jason Merrill <jason@yorick.cygnus.com>
3990
3991 * decl2.c (finish_file): Don't try to emit functions that haven't
eb66be0e 3992 been compiled.
a50f0918
MS
3993
3994Fri May 3 09:30:13 1996 Jason Merrill <jason@yorick.cygnus.com>
3995
3996 * decl2.c (finish_vtable_vardecl): Oops.
3997
3998 * decl.c (maybe_push_to_top_level): Do save previous_class_*.
eb66be0e 3999 Also store the bindings from previous_class_values.
a50f0918
MS
4000 (pop_from_top_level): Restore them.
4001
4002Thu May 2 21:56:49 1996 Jason Merrill <jason@yorick.cygnus.com>
4003
4004 * decl2.c (finish_vtable_vardecl): Only write out vtable if its
eb66be0e 4005 symbol has been referenced.
a50f0918
MS
4006 (finish_file): Re-join synthesis/vtable loop with inline emission
4007 loop, disable inlining when an inline is output.
4008
4009Thu May 2 17:20:02 1996 Mike Stump <mrs@cygnus.com>
4010
4011 * except.c (init_exception_processing): Setup saved_in_catch.
4012 (push_eh_cleanup): Reset __eh_in_catch.
4013 (expand_start_catch_block): Set __eh_in_catch.
4014
4015Thu May 2 16:21:17 1996 Mike Stump <mrs@cygnus.com>
4016
4017 * except.c (push_eh_cleanup): Add tracking for whether or not we
4018 have an active exception object.
4019 (expand_builtin_throw): Use it to make sure a rethrow without an
4020 exception object is caught.
4021
4022Thu May 2 11:26:41 1996 Jason Merrill <jason@yorick.cygnus.com>
4023
4024 * decl.c (maybe_push_to_top_level): Clear out class-level bindings
eb66be0e 4025 cache.
a50f0918 4026
809c8c30
JM
4027Wed May 1 11:26:52 1996 Jason Merrill <jason@yorick.cygnus.com>
4028
4029 * decl2.c (finish_file): Also use sentries for vars with
eb66be0e
MS
4030 DECL_ONE_ONLY or DECL_WEAK set (should any such happen to be
4031 created).
809c8c30
JM
4032
4033 * lex.c (handle_cp_pragma): Disable #pragma
eb66be0e 4034 interface/implementation if SUPPORTS_ONE_ONLY > 1.
809c8c30
JM
4035
4036Tue Apr 30 11:25:46 1996 Jason Merrill <jason@yorick.cygnus.com>
4037
4038 * method.c (emit_thunk): Wrap default case in
eb66be0e 4039 temporary/permanent_allocation.
809c8c30
JM
4040
4041 * method.c (make_thunk): Use DECL_ONE_ONLY.
4042 (emit_thunk): Call assemble_end_function.
4043
46b02c6d
MS
4044Mon Apr 29 15:38:29 1996 Jason Merrill <jason@yorick.cygnus.com>
4045
4046 * decl2.c (import_export_vtable): Use DECL_ONE_ONLY.
d11ad92e 4047 (import_export_decl): Likewise.
46b02c6d
MS
4048 (finish_prevtable_vardecl): Disable vtable hack if
4049 SUPPORTS_ONE_ONLY > 1.
4050
4051Mon Apr 29 14:32:47 1996 Mike Stump <mrs@cygnus.com>
4052
4053 * typeck.c (build_modify_expr): PREINCREMENT_EXPR and
4054 PREDECREMENT_EXPRs take two arguments, not one.
4055
4056Mon Apr 29 00:27:53 1996 Jason Merrill <jason@yorick.cygnus.com>
4057
4058 * class.c (build_vtable_entry): Don't build thunks for abstract
eb66be0e 4059 virtuals.
46b02c6d
MS
4060
4061 * lex.c (real_yylex): Fix handling of __PRETTY_FUNCTION__ like C
eb66be0e 4062 frontend.
46b02c6d
MS
4063
4064Sat Apr 27 16:45:35 1996 Jason Merrill <jason@yorick.cygnus.com>
4065
4066 * class.c (set_rtti_entry): Use size_zero_node.
d11ad92e 4067 (build_vtable): Likewise.
46b02c6d
MS
4068
4069Sat Apr 27 14:48:57 1996 Jason Merrill <jason@phydeaux.cygnus.com>
4070
4071 * class.c (finish_struct_1): Pass size_zero_node to set_rtti_entry.
d11ad92e 4072 (prepare_fresh_vtable): Likewise.
46b02c6d
MS
4073
4074Fri Apr 26 13:14:14 1996 Jason Merrill <jason@yorick.cygnus.com>
4075
4076 * method.c (emit_thunk): Call mark_used on the target function.
4077
4078 * call.c (build_method_call): Don't warn about pending templates.
4079
c7690c68
JM
4080Thu Apr 25 14:55:44 1996 Jason Merrill <jason@yorick.cygnus.com>
4081
4082 * decl2.c (finish_file): Fix list walking logic.
4083
46b02c6d
MS
4084 * typeck2.c (check_for_new_type): Only warn if -pedantic.
4085
4086Wed Apr 24 15:41:15 1996 Bob Manson <manson@charmed.cygnus.com>
4087
4088 * class.c (finish_struct_1): Remove old code for
4089 dont_allow_type_definitions.
d11ad92e 4090 * cp-tree.h: Likewise.
46b02c6d
MS
4091 * spew.c: Make sure cp-tree.h is included before parse.h, so the
4092 definition of flagged_type_tree is found before it is used.
d11ad92e 4093 * lex.c: Likewise.
46b02c6d 4094 * parse.y: Added the ftype member to the type union, and changed a
eb66be0e 4095 number of rules to use it instead of ttype. Added calls to
46b02c6d
MS
4096 check_for_new_type() as appropriate.
4097 * typeck2.c (check_for_new_type): New function for checking
4098 if a newly defined type appears in the specified tree.
4099 * cp-tree.h: Add new type flagged_type_tree. Add a prototype
4100 for check_for_new_type().
4101
67d743fe
MS
4102Wed Apr 24 00:36:21 1996 Jason Merrill <jason@yorick.cygnus.com>
4103
c7690c68
JM
4104 * decl2.c (finish_file): Only use a sentry if the decl is public.
4105
67d743fe
MS
4106 * pt.c (tsubst_expr, DECL_STMT): If we don't have an initializer,
4107 don't pass LOOKUP_ONLYCONVERTING.
4108
4109Tue Apr 23 17:18:47 1996 Bob Manson <manson@charmed.cygnus.com>
4110
4111 * typeck.c (common_type): Fix the ARRAY_TYPE case so it
4112 properly keeps track of const and volatile type modifiers.
4113
4114Tue Apr 23 10:52:56 1996 Jason Merrill <jason@yorick.cygnus.com>
4115
4116 * tree.c (cp_tree_equal): C++ version of simple_cst_equal.
4117 * pt.c (comp_template_args): Use it.
4118
4119 * rtti.c (get_tinfo_fn, build_dynamic_cast, expand_*_desc): Call
4120 assemble_external for artificial function decls.
4121
4122 * decl.c (cp_finish_decl): Oops.
4123
4124Mon Apr 22 17:28:27 1996 Jason Merrill <jason@yorick.cygnus.com>
4125
4126 * decl2.c (import_export_decl): Put static data member templates
eb66be0e
MS
4127 into common storage, or make them weak, depending on whether they
4128 are dynamically or statically initialized.
67d743fe
MS
4129 (get_sentry): New function.
4130 (finish_file): Do import_export_decl for static data members before
4131 building the init/fini functions. Don't init/fini a variable that's
4132 EXTERNAL. Use a sentry for variables in common. Fix mismatching
4133 push/pop_temp_slots.
4134 * decl.c (cp_finish_decl): If DECL_NOT_REALLY_EXTERN, do the
eb66be0e 4135 expand_static_init thang.
67d743fe
MS
4136 * method.c (get_id_2): New function.
4137
4138Mon Apr 22 15:32:45 1996 Bob Manson <manson@charmed.cygnus.com>
4139
4140 * parse.y (empty_parms): Make sure we use C++-style prototypes
eb66be0e 4141 when we're declaring member functions.
67d743fe
MS
4142
4143Sun Apr 21 10:08:22 1996 Jason Merrill <jason@yorick.cygnus.com>
4144
4145 * Makefile.in (CONFLICTS): 16 s/r conflicts.
4146 * parse.y (self_template_type): New nonterminal.
4147
a80e4195
MS
4148Thu Apr 18 08:56:54 1996 Jason Merrill <jason@yorick.cygnus.com>
4149
4150 * decl.c (make_typename_type): Handle getting a TYPE_DECL for a
eb66be0e 4151 name.
a80e4195
MS
4152 * parse.y (base_class.1): Allow 'typename foo::bar'.
4153
4154 * lex.c (check_newline): Remove #pragma code that plays with the
eb66be0e
MS
4155 input stream, since we now deal with tokens. Clear nextchar when
4156 we're done.
a80e4195
MS
4157 (handle_cp_pragma): Use real_yylex.
4158 (handle_sysv_pragma): Don't do skipline here. Only call real_yylex
4159 in one place.
4160
4161 * lex.c (check_for_missing_semicolon): Handle SELFNAME.
4162
4163 * lex.c (handle_cp_pragma): Fix "#pragma implementation".
4164
4165Wed Apr 17 16:51:33 1996 Jason Merrill <jason@yorick.cygnus.com>
4166
4167 * parse.y: New token SELFNAME for potential constructor.
4168 * spew.c (yylex): Handle it.
4169 * lex.c (identifier_type): Produce it.
4170
4171 * parse.y (complete_type_name): In :: case, don't push class binding.
d11ad92e 4172 (complex_type_name): Likewise.
a80e4195
MS
4173
4174Wed Apr 17 15:02:40 1996 Mike Stump <mrs@cygnus.com>
4175
4176 * typeck.c (build_reinterpret_cast): Handle pointer to member
eb66be0e 4177 functions.
a80e4195
MS
4178
4179Wed Apr 17 12:28:26 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
f72bbc37
BK
4180
4181 * lex.c (handle_cp_pragma): New function, with decl, doing the cc1plus
eb66be0e 4182 pragmas.
f72bbc37 4183 (check_newline): Put the vtable/unit/implementation/interface pragma
eb66be0e 4184 code into handle_cp_pragma, replacing it with a call.
f72bbc37 4185 (handle_sysv_pragma): Give int return type, and take FINPUT and TOKEN
eb66be0e 4186 args. Get the next token after handling the pragma token.
a80e4195
MS
4187
4188Wed Apr 17 10:28:34 1996 Jason Merrill <jason@yorick.cygnus.com>
4189
4190 * cvt.c (cp_convert_to_pointer): Avoid doing base analysis on pmfs.
d11ad92e 4191 (convert_to_pointer_force): Likewise.
a80e4195
MS
4192
4193 * init.c (build_new): Fix array new without -fcheck-new.
4194
4195Tue Apr 16 13:44:58 1996 Jason Merrill <jason@yorick.cygnus.com>
4196
4197 * cp-tree.h, call.c, class.c, decl.c, parse.y, pt.c, rtti.c,
4198 tree.c: Lose TYPE_NESTED_NAME.
4199
4200 * parse.y (nested_name_specifier_1): Don't treat non-identifiers
4201 as identifiers.
4202
4203 * tree.def: Add VEC_INIT_EXPR.
4204 * expr.c (cplus_expand_expr): Handle it.
4205 * init.c (build_new): Use it instead of the RTL_EXPR nastiness and
eb66be0e 4206 the extra file-scope symbol nastiness.
a80e4195
MS
4207
4208Mon Apr 15 16:21:29 1996 Jason Merrill <jason@yorick.cygnus.com>
4209
4210 * method.c (make_thunk): Thunks are static.
4211 (emit_thunk): Use ASM_OUTPUT_MI_THUNK if it's defined.
4212
4213 * decl2.c (mark_vtable_entries): Emit thunks as needed.
4214 (finish_file): Don't emit them here.
4215
4216Sun Apr 14 11:34:39 1996 Jason Merrill <jason@yorick.cygnus.com>
4217
4218 * rtti.c (build_dynamic_cast): Handle null pointers.
4219 (ifnonnull): New function.
f72bbc37 4220
6b5fbb55
MS
4221Fri Apr 12 09:08:27 1996 Bob Manson <manson@charmed.cygnus.com>
4222
a80e4195 4223 * call.c (build_method_call): Remember the original basetype we
eb66be0e
MS
4224 were called with. Give an error message instead of trying
4225 (incorrectly) to call a non-static member function through a
4226 non-inherited class.
a80e4195 4227
6b5fbb55
MS
4228 * search.c (expand_upcast_fixups): Mark the new fixup as
4229 DECL_ARTIFICIAL.
4230
4231Thu Apr 11 03:57:09 1996 Jason Merrill <jason@yorick.cygnus.com>
4232
4233 * init.c (build_new): Use a TARGET_EXPR for alloc_expr.
4234
4235 * class.c (set_rtti_entry): Fix for thunks.
4236
4237 * decl2.c (import_export_decl): Still emit typeinfo fns for
4238 cv-variants of builtin types.
4239
4240 * rtti.c (expand_class_desc): Set up base_info_type_node here.
4241 (init_rtti_processing): Instead of here.
4242
4243Wed Apr 10 14:17:13 1996 Jason Merrill <jason@yorick.cygnus.com>
4244
4245 * rtti.c (init_rtti_processing): Do init regardless of -frtti.
4246 (build_typeid): Only complain about taking dynamic typeid without
4247 -frtti.
4248
4249 * decl2.c: flag_rtti defaults to 1.
4250
4251 * rtti.c (get_tinfo_var): The general class case is now smaller.
4252 (init_rtti_processing): Pack the latter three fields of base_info
4253 into 32 bits.
4254
4255Wed Apr 10 13:50:14 1996 Mike Stump <mrs@cygnus.com>
4256
4257 * init.c (expand_member_init): Don't dump if name is NULL_TREE.
4258
4259Wed Apr 10 12:56:02 1996 Mike Stump <mrs@cygnus.com>
4260
4261 * search.c (make_memoized_table_entry): Undefer the pop, if necessary.
4262 (push_memoized_context): Split out code to undefer pop_type_level to
4263 (clear_memoized_cache): here.
4264 (pop_memoized_context): We can only handle one layer of deferral of
4265 pop_type_level so clear the cache, if there was a previous level.
4266
4267Tue Apr 9 23:06:09 1996 Jason Merrill <jason@yorick.cygnus.com>
4268
4269 * rtti.c (init_rtti_processing): Build up base_info_type_node.
4270 (expand_class_desc): Use one pointer to an array of base_info
4271 structs, passed using a CONSTRUCTOR.
4272
4273Tue Apr 9 14:20:57 1996 Mike Stump <mrs@cygnus.com>
4274
4275 * class.c (build_vbase_path): Remove block extern for
4276 flag_assume_nonnull_objects here.
4277 (build_vfn_ref): Split out functionality into build_vtbl_ref.
4278 (build_vtbl_ref): New routine.
4279 (build_vtable): Set up rtti info here.
4280 (add_virtual_function): Note in CLASSTYPE_RTTI the best
4281 place where we can get the rtti pointers from to avoid having to
4282 search around for a place.
d11ad92e
MS
4283 (finish_base_struct): Likewise.
4284 (finish_struct_1): Likewise. Never create totally new vtables
4285 with totally new vtable pointers for rtti. Disable code to layout
4286 vtable pointers better until we want to break binary
4287 compatibility.
6b5fbb55
MS
4288 * rtti.c (build_headof_sub): New routine to convert down to a
4289 sub-object that has an rtti pointer in the vtable.
4290 (build_headof): Use it. Also, use build_vtbl_ref now to be more
4291 maintainable.
4292 (build_dynamic_cast): Make sure we have saved it, if we need to.
4293 * search.c (dfs_init_vbase_pointers): Disable code that deals with
4294 a more efficient vtable layout, enable later.
4295 * call.c (flag_assume_nonnull_objects): Moved declaration to
4296 * cp-tree.h: here. Declare build_vtbl_ref.
4297 * pt.c (instantiate_class_template): Use NULL_TREE instead of 0 in
4298 function calls that want a tree.
4299
4300Tue Apr 9 12:10:26 1996 Jason Merrill <jason@yorick.cygnus.com>
4301
4302 * rtti.c (build_dynamic_cast): Handle downcasting to X* given
eb66be0e 4303 other X subobjects in the most derived type. Ack.
6b5fbb55
MS
4304
4305 * rtti.c (build_dynamic_cast): No need to strip cv-quals here,
eb66be0e 4306 get_typeid will do it for us.
6b5fbb55
MS
4307 (get_typeid_1): Break out call-building for expand_*_desc to use.
4308 (get_typeid): Call it.
d11ad92e 4309 (expand_*_desc): Likewise.
6b5fbb55 4310 * decl.c (init_decl_processing): Don't set TYPE_BUILT_IN on char *
eb66be0e 4311 and void *.
6b5fbb55
MS
4312 (init_decl_processing): Lose builtin_type_tdescs lossage.
4313 * decl2.c (finish_vtable_vardecl): Remove obsolete code.
4314
4315Mon Apr 8 17:23:23 1996 Bob Manson <manson@charmed.cygnus.com>
4316
4317 * pt.c (tsubst): When calling set_nested_typename, use
eb66be0e
MS
4318 TYPE_NESTED_NAME (current_class_type) instead of
4319 current_class_name.
6b5fbb55 4320
d11ad92e
MS
4321 * decl.c (pushdecl): Likewise.
4322 (pushdecl_class_level): Likewise.
6b5fbb55
MS
4323 (grokdeclarator): Use NULL_TREE instead of 0 in the call to
4324 set_nested_typename.
4325
4326Sun Apr 7 10:44:31 1996 Jason Merrill <jason@yorick.cygnus.com>
4327
4328 * rtti.c (synthesize_tinfo_fn): Handle arrays.
4329
4330 * cp-tree.h (DECL_REALLY_EXTERN): New macro.
4331
4332Sat Apr 6 13:56:27 1996 Jason Merrill <jason@yorick.cygnus.com>
4333
4334 * rtti.c (throw_bad_cast): Use entry point __throw_bad_cast.
4335 (init_rtti_processing): Lose bad_cast_type.
4336 (build_dynamic_cast): Use throw_bad_cast.
4337
4338 * rtti.c (synthesize_tinfo_fn): Handle enums and pmfs.
4339
4340 * decl2.c (finish_file): Don't synthesize artificial functions
eb66be0e 4341 that are external and not inline.
6b5fbb55
MS
4342
4343 * rtti.c (get_tinfo_fn): If at_eof, call import_export_decl.
4344
4345 * decl2.c (finish_file): Handle having new inlines added to
eb66be0e 4346 saved_inlines by synthesis.
6b5fbb55
MS
4347
4348 * rtti.c (get_bad_cast_node): Don't require <typeinfo>.
4349
4350Fri Apr 5 17:02:09 1996 Jason Merrill <jason@yorick.cygnus.com>
4351
4352 RTTI rewrite to initialize nodes as needed, not require that
4353 users #include <typeinfo>, complete functionality and reduce wasted
4354 space.
4355 * rtti.c (init_rtti_processing): New fn.
4356 (build_typeid): The vtable entry is now a function.
4357 (get_tinfo_var): New fn.
d11ad92e 4358 (get_tinfo_fn): Likewise.
6b5fbb55
MS
4359 (get_typeid): Use it.
4360 (build_dynamic_cast): Declare and use entry point __dynamic_cast.
4361 (build_*_desc): Rename to expand_*_desc and rewrite to use entry
4362 points __rtti_*.
4363 (add_uninstantiated_desc, get_def_to_follow, build_t_desc): Lose.
4364 (synthesize_tinfo_fn): New fn.
4365 * method.c (build_t_desc_overload): Lose.
4366 (build_overload_with_type): More generic.
4367 * decl.c (init_decl_processing): Call init_rtti_processing.
4368 * class.c (set_rtti_entry): Use get_tinfo_fn.
4369 * decl2.c (mark_vtable_entries): Mark the rtti function.
4370 (finish_prevtable_vardecl): Don't build_t_desc.
4371 (import_export_decl): Handle tinfo functions.
d11ad92e 4372 (finish_file): Likewise.
6b5fbb55
MS
4373 * typeck.c (inline_conversion): New fn.
4374 (build_function_call_real): Use it.
4375 * cp-tree.h: Add decls.
4376
4377 * method.c (hack_identifier): Also convert component_refs from
eb66be0e 4378 references.
6b5fbb55
MS
4379
4380 * lex.c (cons_up_default_function): Use the type, not the name, in
eb66be0e 4381 declspecs.
6b5fbb55
MS
4382
4383 * decl2.c (import_export_vtable): Fix weak vtables.
4384
4385Fri Apr 5 13:30:17 1996 Bob Manson <manson@charmed.cygnus.com>
4386
4387 * search.c (get_base_distance_recursive): Fix access checks for
eb66be0e 4388 protected bases.
6b5fbb55
MS
4389
4390Fri Apr 5 11:02:06 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4391
4392 * call.c (unary_complex_lvalue): Delete unneeded decl, it's in
4393 cp-tree.h.
4394 (convert_harshness): Add prototypes wrapped by PROTO.
4395 * decl2.c (grok_function_init): Likewise.
4396 (do_toplevel_using_decl): Change to void return type.
4397 * class.c (build_vtable_entry): Remove decl of make_thunk.
4398 (merge_overrides): Fix order of arg definitions.
4399 (finish_vtbls): Likewise.
4400 (fixup_vtable_deltas): Likewise.
4401 (modify_all_direct_vtables): Likewise.
4402 (modify_all_indirect_vtables): Likewise.
4403 * search.c (get_base_distance_recursive): Likewise.
4404 (get_abstract_virtuals_1): Likewise.
4405 (fixup_virtual_upcast_offsets): Likewise.
4406 (lookup_fnfields_1): Add prototypes wrapped by PROTO.
4407 * init.c (perform_member_init): Fix order of arg definitions.
4408 (expand_aggr_init_1): Add prototypes wrapped by PROTO.
4409 * cp-tree.h (make_thunk): Add decl.
4410 (overload_template_name, push_template_decl): Add decls.
4411 (do_toplevel_using_decl): Change to void return type.
4412 (vec_binfo_member): Add decl.
4413
cdf5b885
MS
4414Thu Apr 4 13:33:10 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4415
4416 * typeck.c (mark_addressable, convert_for_assignment,
4417 convert_for_initialization, pointer_int_sum, pointer_diff,
4418 unary_complex_lvalue): Add prototypes wrapped by PROTO.
4419 (convert_sequence): #if 0 fn decl, since definition also is.
4420
4421Thu Apr 4 11:00:53 1996 Mike Stump <mrs@cygnus.com>
4422
4423 * rtti.c (build_dynamic_cast): Make sure we strip qualifiers on
4424 cast to pointer types for type searching.
4425
4426Wed Apr 3 17:10:57 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4427
4428 * typeck.c (get_delta_difference): Use cp_error, not error, in the
4429 case where BINFO == 0.
4430
4431Wed Apr 3 12:01:02 1996 Mike Stump <mrs@cygnus.com>
4432
4433 * call.c (build_method_call): Fix wording of error messages so
4434 constructors come out right.
4435
4436Tue Apr 2 16:06:59 1996 Bob Manson <manson@charmed.cygnus.com>
4437
4438 * decl.c (push_overloaded_decl): Don't warn about hidden
4439 constructors when both the type and the function are declared
4440 in a system header file.
4441
c91a56d2
MS
4442Mon Apr 1 09:03:13 1996 Bob Manson <manson@charmed.cygnus.com>
4443
4444 * class.c (finish_struct_1): Propagate the TYPE_PACKED
4445 flag for the type to the type's fields.
4446
4447Sat Mar 30 12:14:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4448
4449 * parse.y (complex_parmlist, ELLIPSES): Take out ARM-based warning.
4450
4451Fri Mar 29 15:51:36 1996 Bob Manson <manson@charmed.cygnus.com>
4452
4453 * class.c (base_info, finish_base_struct): Replace
4454 needs_virtual_dtor with base_has_virtual.
4455
4456 (finish_struct_1): Remove the old code that tried to make default
eb66be0e
MS
4457 destructors virtual. Use base_has_virtual when checking if we need
4458 to add a vtable entry for the rtti code.
c91a56d2
MS
4459
4460Fri Mar 29 14:02:36 1996 Jason Merrill <jason@yorick.cygnus.com>
4461
4462 * pt.c (push_template_decl): Complain about template decl with
eb66be0e 4463 inappropriate declaration.
c91a56d2
MS
4464
4465Fri Mar 29 12:15:35 1996 Bob Manson <manson@charmed.cygnus.com>
4466
4467 * typeck.c (build_x_unary_op): Remove bogus check for taking
4468 the address of a member function.
4469
4470Fri Mar 29 11:56:02 1996 Jason Merrill <jason@yorick.cygnus.com>
4471
4472 * parse.y (constructor_declarator): Only push the class if
4473 we are not already in the class.
4474
4475Fri Mar 29 09:41:02 1996 Jeffrey A. Law <law@cygnus.com>
6752b7d4
JL
4476
4477 * method.c (emit_thunk): Remove current_call_is_indirect nonsense.
4478 Add additional argument to INIT_CUMULATIVE_ARGS.
4479
c91a56d2
MS
4480Thu Mar 28 16:41:39 1996 Jason Merrill <jason@yorick.cygnus.com>
4481
4482 * decl.c (shadow_tag): Fix error about anon union with methods.
4483
4484 * parse.y (self_reference): Only generate a self-reference if this
eb66be0e 4485 is a non-template class.
c91a56d2
MS
4486 (opt.component_decl_list): Only use it if it was generated.
4487
4488 * parse.y (component_decl_1): Use constructor_declarator.
d11ad92e
MS
4489 (fn.def2): Likewise.
4490 (notype_component_declarator0): Likewise.
c91a56d2
MS
4491
4492Thu Mar 28 15:11:35 1996 Bob Manson <manson@charmed.cygnus.com>
4493
4494 * typeck.c (build_x_unary_op): Add checks for taking the address
4495 of a TARGET_EXPR or of a member function, and give appropriate
4496 warnings.
4497
4498Thu Mar 28 14:49:26 1996 Jason Merrill <jason@yorick.cygnus.com>
4499
4500 * pt.c (process_template_parm): Allow template type parms to be
eb66be0e 4501 used as types for template const parms.
c91a56d2
MS
4502
4503Wed Mar 27 15:51:19 1996 Mike Stump <mrs@cygnus.com>
4504
4505 * init.c (expand_vec_init): Ensure the eh cleanups are on the
4506 function_obstack.
4507
4508Wed Mar 27 10:14:30 1996 Jason Merrill <jason@yorick.cygnus.com>
4509
4510 * decl.c (lookup_name_real): Be even more picky about the
eb66be0e 4511 ambiguous lookup warning.
c91a56d2
MS
4512 (grokdeclarator): Tweak SCOPE_REF constructor declarators here.
4513 * parse.y (constructor_declarator): Rather than here.
4514
4515 * parse.y (constructor_declarator): New nonterminal.
4516 (fn.def1): Use it.
d11ad92e 4517 (explicit_instantiation): Likewise.
c91a56d2
MS
4518
4519Tue Mar 26 13:41:33 1996 Jason Merrill <jason@yorick.cygnus.com>
4520
4521 Add implicit declaration of class name at class scope.
4522 * decl.c (lookup_name_real): Restrict pedwarn about ambiguous lookup.
4523 * parse.y (self_reference): New nonterminal.
4524 (opt.component_decl_list): Use it.
4525 (fn.def1): Add nested_name_specifier type_name cases.
4526 * class.c (build_self_reference): New function.
4527 (finish_struct): Handle access_default later, move self-reference
4528 decl to the end.
4529 * pt.c (lookup_template_class): Handle getting a TYPE_DECL.
4530 * cp-tree.h: Adjust.
4531
4532 * pt.c (do_function_instantiation): Separate handling of member
eb66be0e 4533 functions and non-member functions properly.
c91a56d2
MS
4534
4535Mon Mar 25 14:23:22 1996 Jason Merrill <jason@yorick.cygnus.com>
4536
4537 * pt.c (process_template_parm): Improve error for 'volatile class K'.
4538
4539 * class.c (finish_struct_1): Check the right slot for destructors.
4540
4541 * decl.c (start_enum): Complain about enum templates.
4542
4543Mon Mar 25 13:25:31 1996 Mike Stump <mrs@cygnus.com>
4544
4545 * init.c (resolve_offset_ref): Offset pointers to member data by one.
d11ad92e 4546 * typeck.c (unary_complex_lvalue): Likewise.
c91a56d2
MS
4547
4548Mon Mar 25 13:30:42 1996 Bob Manson <manson@charmed.cygnus.com>
4549
4550 * typeck.c (c_expand_return): Check for a returned local
4551 array name, similar to the check for an ADDR_EXPR.
4552
4553Mon Mar 25 13:07:19 1996 Jason Merrill <jason@yorick.cygnus.com>
4554
4555 * decl.c (cp_finish_decl): Don't build cleanups for static
eb66be0e 4556 variables here.
c91a56d2
MS
4557
4558Fri Mar 22 17:57:55 1996 Mike Stump <mrs@cygnus.com>
4559
4560 * typeck.c (build_modify_expr): Fix error messages to be more
4561 accurate.
4562 * cp-tree.h (assop_as_string): Parallel to op_as_string, but for
4563 assignment operators.
d11ad92e 4564 * error.c (assop_as_string): Likewise. Add support for `%Q' for
c91a56d2
MS
4565 assignment operators.
4566
909e536a
MS
4567Fri Mar 22 13:48:29 1996 Jason Merrill <jason@yorick.cygnus.com>
4568
c91a56d2 4569 * decl.c (grokdeclarator): Call bad_specifiers for typedefs. Also
eb66be0e
MS
4570 give an error if initialized. Pedwarn about nested type with the
4571 same name as its enclosing class.
c91a56d2 4572
909e536a
MS
4573 * pt.c (tsubst, case TYPE_DECL): Set DECL_CONTEXT.
4574
4575 * typeck.c (require_complete_type): Be sure to instantiate the
eb66be0e 4576 MAIN_VARIANT of the type.
909e536a
MS
4577
4578 * decl2.c (finish_file): Instantiate pending templates before
eb66be0e 4579 processing static constructors and destructors.
909e536a
MS
4580
4581 * pt.c (instantiate_decl): Don't instantiate functions at toplevel
eb66be0e 4582 unless at_eof.
909e536a
MS
4583
4584Fri Mar 22 09:30:17 1996 Bob Manson <manson@beauty.cygnus.com>
4585
4586 * decl2.c (delete_sanity): If error_mark_node is passed
4587 in as an expression, quit while we're ahead.
4588
4589 * decl.c (grokdeclarator): Give an error message if `friend'
4590 is combined with any storage class specifiers.
4591
fc378698
MS
4592Wed Mar 20 14:51:55 1996 Jason Merrill <jason@yorick.cygnus.com>
4593
4594 * parse.y (named_complex_class_head_sans_basetype): Don't crash on
eb66be0e 4595 definition of nonexistent nested type.
fc378698
MS
4596
4597 * error.c (dump_decl, case TYPE_DECL): Fix decision for whether or
eb66be0e 4598 not to say 'typedef'.
fc378698
MS
4599
4600Wed Mar 20 00:11:47 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4601
4602 * cp-tree.h (struct lang_type): Make search_slot a tree, not a char*.
4603 * search.c (dfs_walk, dfs_init_vbase_pointers,
4604 expand_upcast_fixups): Remove cast of CLASSTYPE_SEARCH_SLOT.
4605 (dfs_find_vbases): Remove cast for CLASSTYPE_SEARCH_SLOT init.
4606
4607Tue Mar 19 17:56:03 1996 Jason Merrill <jason@yorick.cygnus.com>
4608
4609 * except.c (build_throw): Support minimal parse.
4610 * pt.c (tsubst_copy): Support THROW_EXPR.
d11ad92e 4611 * decl2.c (build_expr_from_tree): Likewise.
fc378698
MS
4612
4613 * pt.c (mangle_class_name_for_template): Always allocate
eb66be0e 4614 scratch_firstobj.
fc378698
MS
4615
4616Tue Mar 19 16:34:31 1996 Bob Manson <manson@beauty.cygnus.com>
4617
4618 * cvt.c (cp_convert_to_pointer): Give an appropriate error
4619 when trying to cast from an incomplete type.
4620
4621Tue Mar 19 16:00:33 1996 Jason Merrill <jason@yorick.cygnus.com>
4622
4623 * pt.c (instantiate_class_template): Don't bother setting up
eb66be0e
MS
4624 CLASSTYPE_TAGS explicitly, as the nested types will add
4625 themselves.
fc378698
MS
4626
4627Tue Mar 19 15:48:43 1996 Bob Manson <manson@beauty.cygnus.com>
4628
4629 * decl.c (shadow_tag): Remove old error check for usage of
4630 an enum without a previous declaration.
4631 (xref_tag): Add error message about usage of enums without a
4632 previous declaration.
4633
4634Tue Mar 19 09:21:35 1996 Jason Merrill <jason@yorick.cygnus.com>
4635
4636 * lex.c (do_identifier): Only do name consistency check if we're
eb66be0e 4637 parsing.
fc378698
MS
4638
4639 * pt.c (push_template_decl): Don't crash if we get a member defn
4640 that doesn't match.
4641
4642 * decl.c (xref_tag_from_type): New function to do an xref without
eb66be0e 4643 always having to figure out code_type_node.
fc378698
MS
4644 * cp-tree.h: Declare it.
4645 * pt.c (instantiate_class_template): Use it for friend classes.
eb66be0e 4646 (lookup_template_class): Use it.
fc378698
MS
4647
4648 * typeck2.c (build_functional_cast): Pull out a single parm before
eb66be0e 4649 passing it to build_c_cast.
fc378698
MS
4650
4651Tue Mar 19 09:07:15 1996 Bob Manson <manson@beauty.cygnus.com>
4652
4653 * expr.c (do_case): Give an error message if a pointer is
4654 given as a case value.
4655
4656Mon Mar 18 21:57:54 1996 Jason Merrill <jason@yorick.cygnus.com>
4657
4658 * typeck.c (build_c_cast): Don't pull single TEMPLATE_DECL out of
eb66be0e 4659 an overload list.
fc378698
MS
4660
4661 * lex.c (cons_up_default_function): Really, now, interface hackery
eb66be0e 4662 does not apply to synthesized methods.
fc378698
MS
4663
4664Mon Mar 18 18:20:57 1996 Mike Stump <mrs@cygnus.com>
4665
4666 * call.c (build_method_call): Ctors and dtors now have special names
4667 with respect to lookups.
d11ad92e
MS
4668 * class.c (add_method): Likewise.
4669 (grow_method): Likewise.
4670 (finish_struct_methods): Likewise.
4671 (warn_hidden): Likewise.
4672 (finish_struct_1): Likewise.
4673 * cvt.c (convert_to_reference): Likewise.
4674 (convert_to_aggr): Likewise.
4675 (cp_convert): Likewise.
4676 * decl2.c (check_classfn): Likewise.
4677 * init.c (expand_member_init): Likewise.
4678 (expand_default_init): Likewise.
4679 (expand_aggr_init_1): Likewise.
4680 (build_offset_ref): Likewise.
4681 (build_new): Likewise.
4682 (build_delete): Likewise.
4683 * lex.c (do_inline_function_hair): Likewise.
4684 * search.c (lookup_field_1): Likewise.
4685 (lookup_fnfields_here): Likewise.
4686 (lookup_field): Likewise.
4687 (lookup_fnfields): Likewise.
4688 (get_virtual_destructor): Likewise.
4689 (dfs_debug_mark): Likewise.
4690 (dfs_pushdecls): Likewise.
4691 (dfs_compress_decls): Likewise.
4692 * tree.c (layout_basetypes): Likewise.
4693 * typeck.c (build_component_ref): Likewise.
4694 (build_x_function_call): Likewise.
4695 (build_modify_expr): Likewise.
4696 (convert_for_initialization): Likewise.
4697 (build_functional_cast): Likewise.
4698 * cp-tree.h (CLASSTYPE_FIRST_CONVERSION): Likewise.
fc378698
MS
4699 (CTOR_NAME): New.
4700 (DTOR_NAME): New.
4701 * decl.c (ctor_identifier): New.
4702 (dtor_identifier): New.
4703 (init_decl_processing): Set them.
4704
4705Mon Mar 18 18:00:51 1996 Mike Stump <mrs@cygnus.com>
4706
4707 * typeck.c (build_component_ref): Don't get confused by fields whose
4708 context has no type name, like pointer to member functions.
4709
4710Mon Mar 18 13:19:03 1996 Jason Merrill <jason@yorick.cygnus.com>
4711
4712 * decl.c (grokdeclarator): Handle typedef without declarator.
4713
4714 * pt.c (tsubst): Handle SCOPE_REF in declarator.
4715
4716 * parse.y (bad_parm): Catch another case of missing `typename'.
4717
4718 * lex.c (yyprint): Handle TYPE_DECLs.
4719
4720 * decl.c (start_function): Don't try to be clever.
4721
4722 * lex.c: Lose compiler_error_with_decl.
4723 * typeck2.c: Lose error_with_aggr_type.
4724 (incomplete_type_error): Use cp_* instead of old functions.
d11ad92e
MS
4725 (readonly_error): Likewise.
4726 * typeck.c (convert_arguments): Likewise.
4727 * search.c (lookup_nested_field): Likewise.
4728 * method.c (make_thunk): Likewise.
4729 * decl.c (grokparms): Likewise.
fc378698
MS
4730 * cp-tree.h: Update.
4731
4732 * tree.c (min_tree_cons): Call copy_to_permanent for the purpose
eb66be0e 4733 and value.
fc378698
MS
4734
4735Mon Mar 18 11:25:52 1996 Bob Manson <manson@beauty.cygnus.com>
4736
4737 * method.c (build_opfncall): When deleting a pointer to an
4738 array, build a new pointer to the tree past any ARRAY_TYPE
4739 nodes.
4740
4741Mon Mar 18 10:11:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
4742
4743 * decl.c (lookup_name_real): Initialize local var TYPE to NULL_TREE.
4744
4745Fri Mar 15 11:03:57 1996 Jason Merrill <jason@yorick.cygnus.com>
4746
4747 * pt.c (instantiate_decl): Only call import_export_decl if at_eof
eb66be0e 4748 and ! DECL_INLINE.
fc378698
MS
4749
4750 * decl.c (finish_function): Don't set nested based on
eb66be0e 4751 hack_decl_function_context.
fc378698 4752 * parse.y (function_try_block): Check for nested function.
d11ad92e 4753 (pending_inlines): Likewise.
fc378698
MS
4754
4755 * decl2.c (build_expr_from_tree): If a unary op already has a
eb66be0e 4756 type, just return it.
fc378698
MS
4757
4758 * decl2.c (finish_prevtable_vardecl): Use ADJUST_VTABLE_LINKAGE.
4759
4760 * decl2.c (walk_vtables): vardecl_fn returns int; return 1 if it does.
4761 (finish_file): Check the return value of walk_vtables.
4762 (finish_prevtable_vardecl): Return int.
d11ad92e
MS
4763 (finish_vtable_vardecl): Likewise.
4764 (prune_vtable_vardecl): Likewise.
4765 * lex.c (set_vardecl_interface_info): Likewise.
fc378698
MS
4766 * cp-tree.h: Adjust return types.
4767
4768 * class.c (delete_duplicate_fields_1): Don't complain about
eb66be0e 4769 duplicate nested types if they're the same type.
fc378698
MS
4770 (finish_struct): Remove check for duplicate.
4771 * decl2.c (grokfield): Don't check for typedef of anonymous type.
4772
4773Thu Mar 14 10:00:19 1996 Jason Merrill <jason@yorick.cygnus.com>
4774
4775 * cp-tree.h: Lose SIGNATURE_GROKKING_TYPEDEF.
4776
4777 * decl.c (grokdeclarator): Lose special handling of class-level
eb66be0e
MS
4778 typedef. Lose SIGNATURE_GROKKING_TYPEDEF. Set
4779 SIGNATURE_HAS_OPAQUE_TYPEDECLS later.
fc378698
MS
4780
4781 * cvt.c (convert_pointer_to_real): Retain cv-quals in conversion.
4782
4783 * pt.c (tsubst_copy): Strip cv-quals from destructor name types.
4784
4785 * search.c (compute_access): Fix handling of anonymous union
eb66be0e 4786 members.
fc378698 4787 * class.c (finish_struct_anon): Propagate TREE_{PRIVATE,PROTECTED}
eb66be0e 4788 from anonymous unions to their members.
fc378698
MS
4789
4790 * typeck.c (build_x_function_call): For static member functions,
eb66be0e 4791 hand off to build_member_call.
fc378698
MS
4792
4793Wed Mar 13 14:03:34 1996 Jason Merrill <jason@yorick.cygnus.com>
4794
4795 * typeck.c (build_component_ref): Handle OFFSET_REFs.
4796
4797 * init.c (expand_vec_init): Fix init == 0 case.
4798
4799Tue Mar 12 14:36:02 1996 Jason Merrill <jason@yorick.cygnus.com>
4800
4801 * init.c (build_new): Pedwarn about init and array new.
4802 (expand_vec_init): Handle lists, use convert_for_initialization
4803
4804 * typeck.c (convert_for_initialization): Pass LOOKUP_NO_CONVERSION
eb66be0e 4805 when converting to an aggregate type.
fc378698
MS
4806 * cvt.c (cp_convert): Pass it through.
4807
4808 * typeck.c (build_conditional_expr): Handle user-defined
eb66be0e 4809 conversions to slightly different types.
fc378698
MS
4810
4811 * decl.c (grokdeclarator): Force an array type in a parm to be
eb66be0e 4812 permanent.
fc378698
MS
4813
4814 * decl2.c (do_using_directive): Sorry.
d11ad92e 4815 (do_namespace_alias): Likewise.
fc378698
MS
4816 * lex.c (real_yylex): Warn about using the `namespace' keyword.
4817
4818Sun Mar 10 22:26:09 1996 Jason Merrill <jason@yorick.cygnus.com>
4819
4820 * parse.y (datadef): Move call to note_list_got_semicolon up.
4821
934c6b13
MS
4822Fri Mar 8 11:47:26 1996 Mike Stump <mrs@cygnus.com>
4823
4824 * tree.c (unsave_expr): Don't unsave, UNSAVE_EXPRs.
4825
4826Fri Mar 8 11:29:06 1996 Mike Stump <mrs@cygnus.com>
4827
4828 * decl.c (cp_finish_decl): The exception regions have to be
4829 nested, not overlapping. We start the exception region for a
4830 decl, after it has been fully built, and all temporaries for it
4831 have been cleaned up.
4832
4833Thu Mar 7 17:46:06 1996 Mike Stump <mrs@cygnus.com>
4834
4835 * tree.c (vec_binfo_member): Don't core dump if we have no bases.
4836
e76a2646
MS
4837Thu Mar 7 14:11:49 1996 Jason Merrill <jason@yorick.cygnus.com>
4838
4839 * tree.def: Add RETURN_INIT.
4840 * pt.c (instantiate_decl): Handle RETURN_INIT.
4841 * decl.c (store_return_init): Handle minimal_parse_mode.
4842
4843 * tree.c (cp_build_type_variant): Just return an error_mark_node.
4844 * decl.c (make_typename_type): Don't try to get the file and line
eb66be0e 4845 of an identifier.
e76a2646
MS
4846 * typeck.c (comptypes): Handle TYPENAME_TYPE.
4847
4848Wed Mar 6 18:47:50 1996 Per Bothner <bothner@kalessin.cygnus.com>
4849
4850 * decl.c (poplevel): Make sure we clear out and restore old local
4851 non-VAR_DECL values by default when they go out of scope.
4852
4853Wed Mar 6 09:57:36 1996 Jason Merrill <jason@yorick.cygnus.com>
4854
4855 * method.c (build_overload_value): Use DECL_ASSEMBLER_NAME in
eb66be0e 4856 referring to addresses of variables and functions.
e76a2646
MS
4857
4858 * error.c (dump_expr): Support SIZEOF_EXPR.
4859
4860 * init.c (do_friend): Use the return value of check_classfn.
4861
4862 * typeck.c (convert_arguments): Call complete_type.
4863
4864 * method.c (hack_identifier): After giving an error, set value to
eb66be0e 4865 error_mark_node.
e76a2646
MS
4866
4867Tue Mar 5 16:00:15 1996 Jason Merrill <jason@yorick.cygnus.com>
4868
4869 * tree.c (hack_decl_function_context): Kludge around DECL_CONTEXT
eb66be0e 4870 lossage for local classes.
e76a2646
MS
4871 * cp-tree.h: Declare it.
4872 * decl.c (lookup_name_real): Evil, painful hack for local classes.
4873 (grokfndecl): Set DECL_CLASS_CONTEXT and DECL_NO_STATIC_CHAIN here.
4874 Use hack_decl_function_context.
4875 (grokdeclarator): Don't set DECL_NO_STATIC_CHAIN here.
4876 (start_function): Use hack_decl_function_context.
d11ad92e
MS
4877 (finish_function): Likewise.
4878 * method.c (synthesize_method): Likewise.
4879 * lex.c (process_next_inline): Likewise.
4880 (do_pending_inlines): Likewise.
e76a2646 4881 * decl2.c (finish_file): Unset DECL_STATIC_FUNCTION_P when we're
eb66be0e 4882 done with it.
e76a2646
MS
4883
4884Mon Mar 4 22:38:39 1996 Gerald Baumgartner <gb@alexander.cs.purdue.edu>
4885
4886 * sig.c (build_signature_pointer_or_reference_type): Align
4887 signature pointers/references on 8-byte boundaries so they can be
4888 grabbed 2 words at a time on a Sparc.
4889
4890Tue Mar 5 10:21:01 1996 Jason Merrill <jason@yorick.cygnus.com>
4891
4892 * method.c (hack_identifier): Requiring a static chain is now a
eb66be0e 4893 hard error.
e76a2646 4894 * decl.c (grokdeclarator): Set DECL_NO_STATIC_CHAIN on nested
eb66be0e 4895 functions.
e76a2646
MS
4896
4897Mon Mar 4 20:03:33 1996 Jason Merrill <jason@yorick.cygnus.com>
4898
4899 * init.c (build_offset_ref): Call complete_type.
4900
4901 * decl.c (pop_from_top_level): Always pop previous_class_type.
4902
4903 * parse.y: Handle multiple decls in a for-init-statement.
d11ad92e 4904 * pt.c (tsubst_expr): Likewise.
e76a2646
MS
4905
4906 * pt.c (tsubst): Use tsubst_expr for the second operand of an
eb66be0e 4907 ARRAY_REF.
e76a2646
MS
4908
4909 * decl.c (maybe_push_to_top_level): Don't save previous_class_type.
4910 (poplevel_class): Set it here.
4911 (pop_from_top_level): Pop it here if we're returning to class scope.
4912 * class.c (pushclass): Don't set it here.
4913
4914 * decl.c (maybe_push_to_top_level): Save current_template_parms,
eb66be0e 4915 and clear it if !pseudo.
e76a2646
MS
4916 (pop_from_top_level): Restore it.
4917
4918 * decl2.c (finish_file): Push the dummy each time we walk the list
eb66be0e 4919 of vtables.
e76a2646
MS
4920
4921 * error.c (dump_expr): Support LOOKUP_EXPR and actually do
eb66be0e 4922 something for CAST_EXPR.
e76a2646
MS
4923
4924Mon Feb 19 14:49:18 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
4925
4926 * cvt.c (cp_convert): Warn about implicit conversion of the
4927 address of a function to bool, as it is always true.
4928
4929Fri Feb 23 23:06:01 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
4930
4931 * typeck.c (c_expand_return): Fix warning for local externs returned.
4932
4933Mon Mar 4 15:03:11 1996 Jason Merrill <jason@yorick.cygnus.com>
4934
4935 * tree.c (mapcar): Propagate const and volatile properly.
4936
4937 * typeck.c (complete_type): Be sure to instantiate the
eb66be0e 4938 MAIN_VARIANT of the type.
e76a2646
MS
4939
4940 * method.c (synthesize_method): Class interface hackery does not
4941 apply to synthesized methods.
4942
4943Mon Mar 4 14:05:23 1996 Jason Merrill <jason@yorick.cygnus.com>
4944
4945 * pt.c (comp_template_args): Use comptypes rather than just
eb66be0e 4946 checking for TEMPLATE_TYPE_PARM equivalence.
e76a2646
MS
4947
4948 * typeck.c (build_x_function_call): Call complete_type before
eb66be0e 4949 checking TYPE_OVERLOADS_CALL_EXPR.
e76a2646 4950
7ea63af7
MH
4951Mon Mar 4 18:48:30 1996 Manfred Hollstein <manfred@lts.sel.alcatel.de>
4952
4953 * g++.c (main): Check also for new define ALT_LIBM.
4954
ec255269
MS
4955Fri Mar 1 13:09:33 1996 Jason Merrill <jason@yorick.cygnus.com>
4956
4957 * pt.c (instantiate_class_template): If we don't have a pattern
eb66be0e 4958 yet, that's OK.
ec255269
MS
4959 (coerce_template_parms): If we see a local class, bail.
4960
4961 * decl.c (grok_reference_init): Make sure there's a type before
eb66be0e 4962 checking its code.
ec255269
MS
4963
4964 * pt.c (do_function_instantiation): Avoid crashing on invalid decls.
d11ad92e 4965 (push_template_decl): Likewise.
ec255269
MS
4966
4967 * parse.y (named_class_head): Set
eb66be0e 4968 CLASSTYPE_TEMPLATE_SPECIALIZATION here if we have basetypes.
ec255269
MS
4969
4970 * decl.c (xref_tag): Diagnose redeclaration of template
eb66be0e 4971 type-parameter name.
ec255269
MS
4972
4973 * error.c (dump_type): Handle anonymous template type parms.
4974
4975 * pt.c (instantiate_template): Use TYPE_MAIN_DECL instead of
eb66be0e 4976 TYPE_STUB_DECL.
d11ad92e 4977 (coerce_template_parms): Likewise.
ec255269
MS
4978
4979Thu Feb 29 16:26:01 1996 Mike Stump <mrs@cygnus.com>
4980
4981 * class.c (instantiate_type, case {ARRAY,INDIRECT}_REF,
4982 case ADDR_EXPR): Don't modify rhs if a subinstantiation fails.
4983
4984Thu Feb 29 08:20:25 1996 Jason Merrill <jason@yorick.cygnus.com>
4985
4986 * pt.c (instantiate_template): Take the MAIN_VARIANT of the type
eb66be0e 4987 before trying to get its STUB_DECL.
d11ad92e 4988 (coerce_template_parms): Likewise.
ec255269
MS
4989
4990 * parse.y (template_type_parm): If they didn't use 'class',
eb66be0e 4991 pretend they did after giving an error.
ec255269
MS
4992
4993 * pt.c (coerce_template_parms): Diagnose use of local class.
4994
4995 * decl.c (grok_reference_init): Use instantiate_type.
4996
4997 * error.c (dump_expr): Handle TEMPLATE_DECLs.
4998
4999 * parse.y (named_class_head): Diagnose mismatching types and tags.
5000
5001 * decl.c (pushdecl): Type decls and class templates clash with
eb66be0e 5002 artificial type decls, not hide them.
ec255269
MS
5003
5004 * decl.c (redeclaration_error_message): Diagnose redefinition of
eb66be0e 5005 templates properly.
ec255269
MS
5006 (duplicate_decls): Diagnose disallowed overloads for template
5007 functions, too.
5008
5009 * decl.c (start_decl): Call complete_type before checking for a
eb66be0e 5010 destructor.
ec255269
MS
5011
5012 * pt.c (tsubst): Use tsubst_expr on the elts of a VEC.
5013
5014 * decl.c (xref_tag): A TEMPLATE_TYPE_PARM is a match.
5015
5566b478
MS
5016Wed Feb 28 09:28:44 1996 Jason Merrill <jason@yorick.cygnus.com>
5017
ec255269 5018 * decl.c (grok_op_properties): Don't check for operator++(int) in
eb66be0e 5019 a template.
ec255269
MS
5020
5021 * tree.c (perm_manip): Return a copy of variable and function
eb66be0e 5022 decls with external linkage.
ec255269
MS
5023
5024 * tree.def: Change some of the min tree codes to type "1".
5025 * pt.c (uses_template_parms): Handle 'e's, return 1 for LOOKUP_EXPRs.
5026 * method.c (build_overload_int): Emit something arbitrary for
eb66be0e 5027 anything but an INTEGER_CST if we're in a template.
ec255269
MS
5028
5029 * decl.c (cp_finish_decl): Call complete_type before deciding
eb66be0e 5030 whether or not to lay out the decl.
ec255269 5031
5566b478
MS
5032 * lex.c (do_identifier): Check for DECL_INITIAL before using it.
5033
5034Tue Feb 27 16:35:32 1996 Jason Merrill <jason@yorick.cygnus.com>
5035
5036 * typeck2.c (build_x_arrow): Call complete_type.
5037
5038 * pt.c (add_pending_template): Broken out.
eb66be0e
MS
5039 (lookup_template_class): If -fexternal-templates, call it for all
5040 the methods of implemented types.
5566b478
MS
5041 (instantiate_class_template): Instead of instantiating them here.
5042 (instantiate_decl): Handle -fexternal-templates earlier.
5043
5044Tue Feb 27 15:51:32 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5045
5046 * search.c, lex.c, decl.c, class.c, cp-tree.h: Don't wrap the
5047 memoized lookup stuff inside GATHER_STATISTICS.
5048
5049Tue Feb 27 10:38:08 1996 Jason Merrill <jason@yorick.cygnus.com>
5050
5051 * decl.c (start_decl): Complain about array of incomplete type
5052 here.
5053 (grokdeclarator): Not here.
5054
5055 * parse.y (template_parm): Expand full_parm inline so we can set
eb66be0e 5056 the rule's precedence.
5566b478
MS
5057
5058 * pt.c (tsubst_expr): If we're in a template, just do tsubst_copy.
5059 (tsubst): tsubst_expr the DECL_INITIAL of FIELD_DECLs.
5060 * decl2.c (grokbitfield): Don't check for integer constant here.
5061 * class.c (finish_struct_1): Check here.
5062
5063 * decl.c (define_label): Make the min decl go on permanent_obstack.
5064
5065 * pt.c (unify): Don't handle CONST_DECLs.
5066 (uses_template_parms): Don't check DECL_INITIAL on a CONST_DECL.
d11ad92e 5067 (tsubst_copy): Likewise.
5566b478
MS
5068
5069 * lex.c (do_identifier): Do pull the DECL_INITIAL out of a
eb66be0e 5070 CONST_DECL for a template parm.
5566b478
MS
5071
5072Mon Feb 26 12:48:18 1996 Jason Merrill <jason@yorick.cygnus.com>
5073
5074 * decl.c (grokdeclarator): Complain about array of incomplete type
5075 here.
5076 (start_decl_1): Not here.
5077
5078 * pt.c (tsubst): Handle pointer-to-function declarators.
5079
5080 * method.c (hack_identifier): If pedantic, diagnose local class
eb66be0e 5081 methods that require a static chain.
5566b478
MS
5082
5083 * decl.c (grok_op_properties): No longer static.
5084 * cp-tree.h: Declare it.
5085 * pt.c (tsubst): Call it for operators.
5086 Use tsubst_copy for TREE_VECs.
5087
5088 * parse.y (template_arg): The expr has precedence like '>'.
5089
5090Fri Feb 23 14:51:52 1996 Jason Merrill <jason@yorick.cygnus.com>
5091
5092 * pt.c (coerce_template_parms): Don't coerce an expression using
eb66be0e 5093 template parms.
5566b478
MS
5094 (uses_template_parms): Also check DECL_INITIAL in CONST_DECLs.
5095 (tsubst): Don't use build_index_2_type if the max_value uses template
5096 parms.
5097 * method.c (build_overload_int): Emit something arbitrary for an
eb66be0e 5098 expression using template parms.
5566b478
MS
5099
5100 * parse.y (template_close_bracket): New non-terminal to catch use
eb66be0e 5101 of '>>' instead of '> >' in template class names.
5566b478
MS
5102 (template_type): Use it.
5103 * Makefile.in (CONFLICTS): Causes one more r/r conflict.
5104
5105 * tree.def: Add CAST_EXPR.
5106 * typeck2.c (build_functional_cast): Use CAST_EXPR instead of
eb66be0e 5107 CONVERT_EXPR for minimal_parse_mode.
d11ad92e
MS
5108 * typeck.c (build_c_cast): Likewise.
5109 * pt.c (tsubst_copy): Likewise.
5110 * decl2.c (build_expr_from_tree): Likewise.
5111 * error.c (dump_expr): Likewise.
5566b478
MS
5112
5113Fri Feb 23 10:36:46 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5114
5115 * except.c (SetTerminate, SetUnexpected): Put back global vars.
5116 (init_exception_processing): Put back decl/init of
5117 set_unexpected_fndecl and set_terminate_fndecl, needed to get the
5118 fns from libstdc++.
5119
5120 * decl.c (struct binding_level): Delete ACCEPT_ANY bitfield.
5121 (declare_uninstantiated_type_level, uninstantiated_type_level_p):
5122 Delete unused fns.
5123 * cp-tree.h (declare_uninstantiated_type_level,
5124 uninstantiated_type_level_p): Delete prototypes.
5125
5126Thu Feb 22 19:36:15 1996 Jason Merrill <jason@yorick.cygnus.com>
5127
5128 * pt.c (tsubst_expr): Add default return.
5129
5130Thu Feb 22 16:47:24 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5131
5132 * error.c (fndecl_as_string): Delete unused arg CNAME.
5133 * sig.c (build_signature_table_constructor,
5134 build_signature_method_call): Fix calls.
5135
5136 * class.c (the_null_vtable_entry): Delete var definition.
5137 (init_class_processing): Delete tree the_null_vtable_entry init.
5138 * decl.c (no_print_{functions, builtins}): Declare as static.
5139 (__tp_desc_type_node): #if 0 var definition.
5140 (init_type_desc): #if 0 init of __tp_desc_type_node.
5141 (vb_off_identifier): Move var decl into init_decl_processing.
5142 (current_function_assigns_this): Declare as static.
5143 (int_ftype_ptr_ptr_int, void_ftype_ptr_int_int): Delete var decls.
5144 (init_decl_processing): Delete init of void_ftype_ptr_ptr_int.
5145 Move decls of string_ftype_ptr_ptr and int_ftype_string_string here.
5146 * decl2.c (delete_sanity): Delete definition/mod of local var ELT_SIZE.
5147 * init.c (BI_header_type, BI_header_size): Declare as static.
5148 * pt.c (template_classes): Delete unused var.
5149 (add_pending_template): Delete decl for non-existent fn.
5150 (lookup_template_class): Delete vars CODE and TAG_CODE.
5151 (instantiate_template): Delete unused var TARGS.
5152 * cp-tree.h (vb_off_identifier, current_function_assigns_this):
5153 Delete decls.
5154 (__tp_desc_type_node): #if 0 var decl.
5155 (fndecl_as_string): Fix prototype.
5156
5157Thu Feb 22 15:56:19 1996 Jason Merrill <jason@yorick.cygnus.com>
5158
5159 * tree.def: Add GOTO_STMT.
5160 * pt.c (tsubst_expr): Support goto and labels.
5161 * decl.c (define_label): Support minimal parsing.
d11ad92e 5162 * parse.y (simple_stmt): Likewise.
5566b478
MS
5163
5164Thu Feb 22 15:30:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5165
5166 * xref.c (GNU_xref_member): Only define/set var I if
5167 XREF_SHORT_MEMBER_NAMES is defined, to match when it's actually
5168 used.
5169 (GNU_xref_end_scope): Delete unused fifth arg TRNS.
5170 (GNU_xref_end): Fix call.
5171 * decl.c (poplevel, poplevel_class, finish_method): Fix calls.
5172 * cp-tree.h (GNU_xref_end_scope): Fix prototype.
5173
5174 * tree.c (build_exception_variant): Delete unused vars I, A, T,
5175 T2, and CNAME.
5176 (layout_vbasetypes): Delete unused var NONVIRTUAL_VAR_SIZE.
5177 (mapcar): Delete unused var CODE.
5178 (build_cplus_new): Delete unused arg WITH_CLEANUP_P.
5179 (break_out_cleanups): Fix call.
5180 (bot_manip): Likewise.
5181 * call.c (build_method_call): Likewise.
5182 * cvt.c (build_up_reference, convert_to_reference, cp_convert):
5183 Likewise.
5184 * typeck.c (unary_complex_lvalue, build_modify_expr,
5185 convert_for_initialization): Likewise.
5186 * typeck2.c (build_functional_cast): Likewise.
5187 * cp-tree.h (build_cplus_new): Fix prototype.
5188
5189 * repo.c (open_repo_file): Delete unused var Q.
5190 (repo_compile_flags, repo_template_declared,
5191 repo_template_defined, repo_class_defined, repo_inline_used,
5192 repo_vtable_used, repo_tinfo_used): #if 0 unused fns.
5193 (repo_get_id, repo_vtable_used): Declare as static.
5194 * cp-tree.h (mark_{decl,class}_instantiated, finish_repo): Add
5195 prototypes.
5196
5197Thu Feb 22 14:53:35 1996 Jason Merrill <jason@yorick.cygnus.com>
5198
5199 * parse.y (pending_inlines): Add function_try_block case.
5200
5201 * pt.c (unify): Fix for template const parms.
5202
5203Thu Feb 22 13:24:15 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5204
5205 * lex.c (extract_interface_info): Delete forward decl.
5206 (default_copy_constructor_body, default_assign_ref_body): Delete
5207 decls for non-existent functions.
5208 (synth_firstobj, inline_text_firstobjs): Delete unused vars.
5209 (init_lex): Delete setting them.
5210 (cons_up_default_function): Delete unused vars FUNC_BUF,
5211 FUNC_LEN, and COMPLEX. Delete code setting COMPLEX. Delete old
5212 #if 0'd synth code.
5213 (toplevel, expression_obstack): Delete unused extern decls.
5214 (tree_node_kind): Delete unused enum.
5215 (tree_node_counts, tree_node_sizes): Wrap with #ifdef
5216 GATHER_STATISTICS.
5217 (tree_node_kind_names): Delete unused extern decl.
5218 (synth_obstack): Delete unused var.
5219 (init_lex): Don't set it.
5220 (init_parse): Add decl before use.
5221 (reduce_count): Only define #ifdef GATHER_STATISTICS && REDUCE_LENGTH.
5222 (current_unit_{name, language}): Delete unused vars.
5223 (check_newline): Don't bother setting them, just accept the #pragma.
5224 * cp-tree.h (init_repo, peek_yylex): Add prototypes.
5225 (current_unit_{name, language}): Delete decls.
5226
5227 * search.c: Wrap all of the memoized functions, macros, and
5228 variables inside #ifdef GATHER_STATISTICS.
5229 (lookup_field, lookup_fnfields): Likewise.
5230 (init_search_processing): Likewise.
5231 (reinit_search_statistics): Wrap whole function.
5232 * lex.c (reinit_lang_specific): Wrap call to reinit_search_statistics.
5233
5234 * decl.c (finish_function): Only call pop_memoized_context if
5235 GATHER_STATISTICS is defined.
5236 (start_function): Likewise for push_memoized_context.
5237 * class.c (pushclass, popclass): Likewise.
5238
5239 * cp-tree.h (CLASSTYPE_MTABLE_ENTRY): Move definition from here...
5240 * search.c (CLASSTYPE_MTABLE_ENTRY): ... to here.
5241
5242 * cvt.c (cp_convert): Delete unused local var FORM.
5243 * cp-tree.h (can_convert, can_convert_arg, real_lvalue_p): Add
5244 prototypes.
5245
5246Thu Feb 22 13:19:44 1996 Jason Merrill <jason@yorick.cygnus.com>
5247
5248 * pt.c (do_poplevel): Oops; really return what we get from
eb66be0e 5249 poplevel this time.
5566b478
MS
5250
5251Thu Feb 22 11:41:44 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5252
5253 * cp-tree.h (is_aggr_type): Add prototype.
5254
5255 * cp-tree.h ({push,pop}_cp_function_context): Add decls.
5256 * method.c ({push,pop}_cp_function_context): Delete decls.
5257 * except.c (start_eh_unwinder, end_eh_unwinder): Declare as void.
5258 (SetUnexpected, SetTerminate): Delete unused vars.
5259 (init_exception_processing): Don't set SetUnexpected or
5260 SetTerminate. Don't set SET_UNEXPECTED_FNDECL or SET_TERMINATE_FNDECL.
5261 (output_exception_table_entry): Delete unused array LABEL.
5262 (expand_internal_throw): Delete unused var PARAMS.
5263 (expand_start_catch_block): Delete unused var CLEANUP.
5264 (emit_exception_table): Delete unused var EH_NODE_DECL.
5265 (expand_builtin_throw): Delete unused vars UNWIND_AND_THROW and
5266 GOTO_UNWIND_AND_THROW. Don't set them.
5267 (end_eh_unwinder): Add top decl.
5268 (pop_rtl_from_perm): Delete unused decl of PERMANENT_OBSTACK.
5269 (exception_section, push_rtl_perm, do_function_call,
5270 lang_interim_eh, push_eh_cleanup, eh_outer_context,
5271 expand_end_eh_spec, end_eh_unwinder): Declare as static.
5272 (saved_pc, saved_throw_type, saved_throw_value, saved_cleanup,
5273 throw_used): Likewise.
5274 * cp-tree.h (expand_end_eh_spec): Delete prototype.
5275
5276 * search.c (dfs_mark, dfs_mark_vtable_path,
5277 dfs_unmark_vtable_path, dfs_mark_new_vtable,
5278 dfs_unmark_new_vtable, dfs_clear_search_slot,
5279 dfs_search_slot_nonempty_p, bfs_markedp, bfs_unmarkedp,
5280 bfs_marked_vtable_pathp, bfs_unmarked_vtable_pathp,
5281 bfs_marked_new_vtablep, bfs_unmarked_new_vtablep): #if 0 unused
5282 functions.
5283 (n_fields_searched, n_calls_lookup_field, n_calls_lookup_field_1,
5284 n_calls_lookup_fnfields, n_calls_lookup_fnfields_1,
5285 n_calls_get_base_type, n_outer_fields_searched, n_contexts_saved):
5286 Only define #ifdef GATHER_STATISTICS.
5287 (reinit_search_statistics): Only init some vars if GATHER_STATISTICS
5288 is defined.
5289 (vbase_decl): Delete var definition.
5290 (init_search): Delete old decl.
5291 (init_vbase_pointers): Delete building of VBASE_DECL, since it's
5292 never actually used.
5293 (expand_indirect_vtbls_init): Delete init of VBASE_DECL.
5294 (get_base_distance_recursive): Delete unused fourth arg
5295 BASETYPE_PATH. Fix call .
5296 (get_base_distance): Fix call.
5297 (push_class_decls): Delete unused var ID.
5298 (make_memoized_table_entry): Declare as static.
5299 (breadth_first_search): Declare as static.
5300 (tree_has_any_destructor_p): Declare as static.
5301 (pop_class_decls): Delete unused arg pop_class_decls.
5302 * class.c (popclass): Fix call to pop_class_decls.
5303 * cp-tree.h (make_memoized_table_entry, breadth_first_search,
5304 tree_has_any_destructor_p): Delete prototypes.
5305
5306 * rtti.c (build_ptmf_desc): Delete unused arg TYPE.
5307 (build_t_desc): Fix call. Delete unused vars ELEMS and TT.
5308 (build_dynamic_cast): Delete unused local vars TMP1 and RETVAL.
5309 (build_user_desc): Delete unused var T.
5310 (build_class_desc): Delete unused vars T and OFF.
5311 (build_t_desc): Delete unused var NAME_STRING.
5312 (build_headof): Make static.
5313 (get_bad_cast_node): Likewise.
5314 (get_def_to_follow): Likewise.
5315 * cp-tree.h (init_type_desc): Add prototype.
5316 (build_headof): Remove prototype.
5317
5318Thu Feb 22 00:54:22 1996 Jason Merrill <jason@yorick.cygnus.com>
5319
5320 * pt.c (tsubst): Only look for matching decls at file scope for
eb66be0e 5321 non-member functions.
5566b478
MS
5322
5323 * call.c (build_scoped_method_call): Handle scoped destructor
eb66be0e 5324 calls in templates.
5566b478
MS
5325
5326 * decl.c (*_top_level): Also save previous_class_values.
5327
5328 * pt.c (tsubst_expr): Support do {} while loops.
d11ad92e
MS
5329 * parse.y (simple_stmt): Likewise.
5330 * tree.def: Likewise.
5566b478
MS
5331
5332 * method.c (build_overload_identifier): For a class nested in a
eb66be0e
MS
5333 template class, don't mangle in the template parms from our
5334 context.
5566b478
MS
5335
5336 * lex.c, cp-tree.h: Remove support for template instantiations in
eb66be0e 5337 the pending_inlines code.
5566b478
MS
5338 * pt.c: Remove dead functions and unused arguments.
5339 (uses_template_parms): TYPENAME_TYPEs always use template parms.
5340 * parse.y: Stop passing anything to end_template_decl.
5341 * tree.c (print_lang_statistics): Only print tinst info #ifdef
eb66be0e 5342 GATHER_STATISTICS.
5566b478
MS
5343
5344Wed Feb 21 16:57:33 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5345
5346 * init.c (expand_recursive_init{,_1}): Delete decls.
5347 (sort_member_init): Delete unused var INIT.
5348 (emit_base_init): Delete unused var X.
5349 (build_offset_ref): Delete unused var CNAME.
5350 (sort_member_init): Delete unused var FIELDS_TO_UNMARK.
5351 (emit_base_init): Delete unused local var BASE. Delete extern
5352 decl of IN_CHARGE_IDENTIFIER.
5353 (build_delete): Delete unused local var VIRTUAL_SIZE.
5354
5355 * init.c (build_vec_delete): Delete unused third arg ELT_SIZE.
5356 (build_delete): Fix call.
5357 * decl2.c (delete_sanity): Likewise.
5358 * cp-tree.h (build_vec_delete): Update prototype.
5359
5360 * typeck.c (common_base_type): Delete unused var TMP.
5361 (build_binary_op): Delete local var ARGS_SAVE.
5362 (build_array_ref): Delete unused var ITYPE.
5363 (c_expand_return): Delete unused var USE_TEMP.
5364
5365 * typeck.c (compexcepttypes): Delete unused arg STRICT.
5366 (comptypes): Fix calls.
5367 * decl.c (duplicate_decls): Likewise.
5368 * cp-tree.h (compexcepttypes): Delete extra arg.
5369
5370 * decl2.c (check_classfn): Delete unused second arg CNAME.
5371 * decl.c (start_decl, grokfndecl): Fix calls.
5372 * init.c (do_friend): Likewise.
5373 * cp-tree.h (check_classfn): Update prototype.
5374
5375 * cp-tree.h (signature_error, import_export_vtable,
5376 append_signature_fields, id_in_current_class, mark_used,
5377 copy_assignment_arg_p): Add decls.
5378 * decl2.c (mark_used): Delete decl.
5379
5380 * class.c (n_*): Wrap with #ifdef GATHER_STATISTICS.
5381
5382 * class.c (get_vtable_entry): Diable unused function.
5383 (doing_hard_virtuals): Delete unused static global var.
5384 (finish_struct_1): Don't init DOING_HARD_VIRTUALS.
5385 (prepare_fresh_vtable): Delete unused vars PATH and RESULT.
5386 (overrides): Delete unused vars RETTYPE and BASE_RETTYPE.
5387 (modify_one_vtable): Delete unused var OLD_RTTI.
5388 (finish_struct_anon): Delete unused vars OFFSET and X.
5389 (finish_struct_bits): Delete unused var METHOD_VEC.
5390 (get_basefndecls): Delete unused var PURPOSE. Delete unused
5391 for-scope local variable METHODS.
5392
5393 * call.c (user_harshness): Delete unused/unneeded arg PARM.
5394 (ideal_candidate): Delete unused args BASETYPE and PARMS.
5395 (build_method_call): Delete unused args passed into ideal_candidate.
5396 (build_overload_call_real): Likewise. Delete unused var OVERLOAD_NAME.
5397 * cp-tree.h (synthesize_method): Add decl.
5398
5399 * decl.c (note_level_for_for): Give void return type.
5400 (pushdecl_nonclass_level): Likewise.
5401 (finish_function): Delete unused vars VFIELDS and ALLOCATED_THIS.
5402 (poplevel): Delete unused var IMPLICIT_TRY_BLOCK.
5403 (suspend_binding_level): Delete unused var LEVEL.
5404 (duplicate_decls): Delete unused var CTYPE.
5405 (duplicate_decls): Delete unused var PREVIOUS_C_DECL.
5406 (init_decl_processing): Delete unused vars FLOAT_ENDLINK and
5407 PTR_ENDLINK.
5408 (grokdeclarator): Delete unused var C.
5409 (grokdeclarator): Delete unused var SIZE_VARIES.
5410 (grokparms): Delete unused var SAW_VOID.
5411 (start_function): Delete unused var OLDDECL.
5412 (cplus_expand_expr_stmt): Delete unused var
5413 REMOVE_IMPLICIT_IMMEDIATELY.
5414
5415 * cp-tree.h (pushdecl_nonclass_level): Fix prototype.
5416
5417 * Makefile.in (CONFLICTS): Update to 12 shift/reduce.
5418
5419Wed Feb 21 00:06:17 1996 Jason Merrill <jason@yorick.cygnus.com>
5420
5421 * tree.c (build_min): Set TREE_COMPLEXITY to lineno.
d11ad92e 5422 (build_min_nt): Likewise.
5566b478
MS
5423 * pt.c (do_pushlevel): Emit line note.
5424 (do_poplevel): Return what we get from poplevel.
5425 (tsubst_expr): Set lineno from TREE_COMPLEXITY in stmt nodes.
5426 * parse.y: Use do_pushlevel and do_poplevel.
5427 * cp-tree.h: Declare do_poplevel.
5428
5429 * cp-tree.h: Declare at_eof.
5430 * decl.c (cp_finish_decl): Pass it to rest_of_decl_compilation.
5431 * decl2.c (import_export_decl): Renamed from import_export_inline.
5432 (finish_file): Call it to do interface handling for statics.
5433 * pt.c (tsubst_copy): Call mark_used on variables and functions
eb66be0e 5434 used here.
5566b478
MS
5435
5436 * decl2.c (finish_file): Don't emit statics we can't generate.
5437 * pt.c (instantiate_decl): Don't set interface on instantiations
eb66be0e 5438 we can't generate.
5566b478
MS
5439
5440 * cp-tree.h (struct tinst_level): Change 'classname' to 'decl'.
5441 * tree.c (print_lang_statistics): Print max template depth.
5442 * pt.c (push_tinst_level): Dump entire instantiation context.
5443 (instantiate_class_template): Use it and pop_tinst_level.
d11ad92e 5444 (instantiate_decl): Likewise.
5566b478
MS
5445
5446 * call.c class.c cp-tree.h decl.c decl2.c error.c lex.c method.c
eb66be0e 5447 pt.c ptree.c tree.def: Remove all traces of UNINSTANTIATED_P_TYPE.
5566b478
MS
5448
5449Tue Feb 20 18:21:51 1996 Jason Merrill <jason@yorick.cygnus.com>
5450
5451 * call.c class.c cp-tree.h cvt.c decl.c decl2.c error.c expr.c
eb66be0e
MS
5452 init.c lex.c method.c parse.y pt.c repo.c search.c spew.c tree.c
5453 tree.def typeck.c typeck2.c xref.c: Massive, systemic changes for
5454 the new template implementation.
5566b478
MS
5455
5456Tue Feb 20 17:14:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5457
5458 * decl2.c (check_cp_case_value): Use STRIP_TYPE_NOPS.
5459
cffa8729
MS
5460Thu Feb 15 18:44:42 1996 Mike Stump <mrs@cygnus.com>
5461
5462 * decl.c (cp_finish_decl): Delay emitting the debug information for
5463 a typedef that has been installed as the canonical typedef, if the
5464 type has not yet been defined.
5465
5466Thu Feb 15 09:39:08 1996 Jason Merrill <jason@yorick.cygnus.com>
5467
5468 * decl2.c (grokfield): Still call pop_nested_class for access decls.
5469
5470Wed Feb 14 17:30:04 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5471
5472 * decl.c (lookup_label): Call label_rtx.
5473
5474 * decl.c (make_binding_level): New function.
5475 (pushlevel, pushlevel_class): Call it instead of explicit
5476 duplicate calls to xmalloc.
5477
5478 * decl.c (init_decl_processing): Delete useless build_pointer_type
5479 call.
5480
5481 * decl.c (float_ftype_float, ldouble_ftype_ldouble): Add definitions.
5482 (sizet_ftype_string): Delete variable.
5483 (init_decl_processing): Add built-in functions fabsf, fabsl,
5484 sqrtf, sqrtl, sinf, sin, sinl, cosf, cos, cosl. New local
5485 variable strlen_ftype, used for strlen.
5486
5487Wed Feb 14 16:21:25 1996 Jason Merrill <jason@yorick.cygnus.com>
5488
5489 * decl.c (push_to_top_level): Start from current_binding_level
eb66be0e
MS
5490 again for now; the stl hacks depend on g++ being broken in this
5491 way, and it'll be fixed in the template rewrite.
cffa8729
MS
5492
5493 * tree.def: Add USING_DECL.
5494 * decl2.c (do_class_using_decl): Implement.
5495 (grokfield): Pass access decls off to do_class_using_decl instead of
5496 grokdeclarator.
5497 * error.c (dump_decl): Handle USING_DECLs.
5498 * decl.c (grokdeclarator): Remove code for handling access decls.
5499 * class.c (finish_struct_1): Adjust accordingly, treat using-decls
eb66be0e 5500 as access decls for now.
cffa8729
MS
5501 (finish_struct): Don't check USING_DECLs for other uses of the name.
5502
5503 * search.c (get_matching_virtual): Use cp_error_at.
5504
5505Wed Feb 14 10:36:58 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5506
5507 * typeck.c (comptypes): Default COMP_TYPE_ATTRIBUTES to 1, to
5508 match c-typeck.c.
5509 (self_promoting_args_p): Move the check that TYPE is non-nil
5510 before trying to look at its main variant.
5511 (unsigned_type, signed_type): Add checking of DI/SI/HI/QI nodes.
5512
5513 * cp-tree.h (DECL_WAITING_FRIENDS, SET_DECL_WAITING_FRIENDS):
5514 Delete macros.
5515 * init.c (xref_friend, embrace_waiting_friends): Delete functions.
5516 (do_friend): Delete call to xref_friend.
5517 * class.c (finish_struct_1): Delete call to embrace_waiting_friends.
5518
5519 * typeck.c (convert_sequence): #if 0 unused function.
5520
5521 * cp-tree.h (DECL_IN_MEMORY_P): New macro w/ the check that used to
5522 be in decl_in_memory_p.
5523 (decl_in_memory_p): Delete decl.
5524 * expr.c (decl_in_memory_p): Delete fn.
5525 * typeck.c (mark_addressable): Use DECL_IN_MEMORY_P.
5526
5527 * decl.c (cp_finish_decl): Use DECL_IN_MEMORY_P.
5528
5529Tue Feb 13 12:51:21 1996 Jason Merrill <jason@yorick.cygnus.com>
5530
5531 * class.c (finish_struct_1): Check for a pure-specifier on a
eb66be0e 5532 non-virtual function here.
cffa8729
MS
5533
5534 * decl2.c (grok_function_init): Don't check whether the function
eb66be0e 5535 is virtual here.
cffa8729
MS
5536 (grokfield): Don't call check_for_override here.
5537
5538 * decl.c (push_to_top_level): Start from inner_binding_level,
eb66be0e 5539 check class_shadowed in class levels.
cffa8729
MS
5540
5541Mon Feb 12 17:46:59 1996 Mike Stump <mrs@cygnus.com>
5542
5543 * decl.c (resume_level): Ignore things that don't have names, instead
5544 of core dumping.
5545
5546Mon Feb 12 15:47:44 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5547
5548 * decl2.c (grokfield): Set DECL_VINDEX properly for FUNCTION_DECLs.
5549
5550Sat Feb 10 17:59:45 1996 Jason Merrill <jason@yorick.cygnus.com>
5551
5552 * class.c (finish_struct_1): Set DECL_VINDEX properly on a
eb66be0e 5553 synthesized dtor.
cffa8729
MS
5554
5555 * parse.y (complete_type_name): Bind global_scope earlier.
d11ad92e 5556 (complex_type_name): Likewise.
cffa8729
MS
5557 (qualified_type_name): Remove.
5558
2ee887f2
MS
5559Thu Feb 8 15:15:14 1996 Jason Merrill <jason@yorick.cygnus.com>
5560
5561 * decl.c (grokfndecl): Move code that looks for virtuals in base
eb66be0e 5562 classes...
cffa8729 5563 * class.c (check_for_override): ... to a new function.
2ee887f2
MS
5564 (finish_struct_1): Call it.
5565
5566 * cp-tree.h: Declare warn_sign_compare.
5567
5568 * typeck.c (build_binary_op_nodefault): Check warn_sign_compare
eb66be0e
MS
5569 rather than extra_warnings to decide whether to warn about
5570 comparison of signed and unsigned.
2ee887f2
MS
5571
5572 * decl2.c (lang_decode_option): Handle warn_sign_compare. -Wall
eb66be0e 5573 implies -Wsign-compare. -Wall doesn't imply -W.
2ee887f2
MS
5574
5575Wed Feb 7 15:27:57 1996 Mike Stump <mrs@cygnus.com>
5576
5577 * typeck.c (build_component_ref): Fix to handle anon unions in base
5578 classes as well.
5579
5580Wed Feb 7 14:29:12 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5581
5582 * class.c (resolves_to_fixed_type_p): Delete code dealing with
5583 a WITH_CLEANUP_EXPR, since we don't generate them any more.
5584 * cvt.c (build_up_reference): Likewise.
5585 * decl.c (grok_reference_init): Likewise.
5586 (cp_finish_decl): Likewise.
5587 * error.c (dump_expr): Likewise.
5588 * tree.c (real_lvalue_p): Likewise.
5589 (lvalue_p): Likewise.
5590 (build_cplus_new): Likewise.
5591 (unsave_expr_now): Likewise.
5592 * typeck.c (unary_complex_lvalue, build_modify_expr,
5593 c_expand_return): Likewise.
5594
5595Tue Feb 6 13:39:22 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5596
5597 Make the C++ front-end pay attention to attributes for structures.
5598 * class.c (finish_struct): New argument ATTRIBUTES, passed down into
5599 finish_struct_1.
eb66be0e 5600 (finish_struct_1): New argument ATTRIBUTES; call cplus_decl_attributes.
2ee887f2
MS
5601 Take out old round_up_size use and setting the DECL_ALIGN possibly
5602 using it. Take out setting of TYPE_ALIGN to round_up_size, which
5603 can override what the attribute set.
5604 * cp-tree.h (finish_struct): Update prototype.
5605 * parse.y (template_instantiate_once): Pass a NULL_TREE for the
5606 attributes to finish_struct.
5607 (structsp): For a CLASS decl, add maybe_attribute to rule and pass that
5608 value down into finish_struct.
5609 * Makefile.in (CONFLICTS): Switch to 7 shift/reduce conflicts.
5610
5611Tue Feb 6 13:12:15 1996 Per Bothner <bothner@kalessin.cygnus.com>
5612
5613 * decl.c (poplevel): Re-word dead for local handling.
5614 (pushdecl): Remove useless DECL_DEAD_FOR_LOCAL test.
5615 (cp_finish_decl): If is_for_scope, check for duplicates so
5616 we can disable is_for_scope. Otherwise, preserve_temp_slots.
5617
5618 * lex.c (do_identifier): Use global binding in preference of
5619 dead for local variable.
5620
5621Mon Feb 5 17:46:46 1996 Mike Stump <mrs@cygnus.com>
5622
5623 * init.c (initializing_context): Handle anon union changes, the
5624 context where fields of anon unions can be initialized now has to be
5625 found by walking up the TYPE_CONTEXT chain.
5626
5627Fri Feb 2 14:54:04 1996 Doug Evans <dje@charmed.cygnus.com>
5628
5629 * decl.c (start_decl): #ifdef out code to set DECL_COMMON
5630 if ASM_OUTPUT{,_ALIGNED}_BSS is defined.
5631 (obscure_complex_init): If bss is supported, always set
5632 DECL_INITIAL to error_mark_node.
5633
5634Thu Feb 1 16:19:56 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5635
5636 * init.c (is_friend): Make sure there's a context before we see if
5637 it's an aggr type.
5638
5639Thu Feb 1 15:44:53 1996 Mike Stump <mrs@cygnus.com>
5640
5641 * init.c (is_friend): Classes are not friendly with nested classes.
5642
5643Thu Feb 1 15:27:37 1996 Doug Evans <dje@charmed.cygnus.com>
5644
5645 * lex.c (check_newline): Pass last character read to HANDLE_PRAGMA,
5646 and record its result.
5647
9e9ff709
MS
5648Thu Feb 1 09:27:01 1996 Mike Stump <mrs@cygnus.com>
5649
5650 * class.c (finish_struct_anon): Switch around code to not move anon
5651 union elements around, nor mess up their contexts, nor offsets,
5652 instead we now build up the right number of COMPONENT_REFs for all
5653 the anon unions that may be present at build_component_ref time.
5654 * typeck.c (lookup_anon_field): New routine to handle field lookup
5655 on fields without names. We find them, based upon their unique type
5656 instead.
5657 * typeck.c (build_component_ref): Allow FIELD_DECL components.
5658 Handle finding components in anonymous unions, and ensure that a
5659 COMPONENT_REF is built for each level as necessary.
5660
5661Tue Jan 30 18:18:23 1996 Mike Stump <mrs@cygnus.com>
5662
5663 * cvt.c (build_up_reference): Make the INDIRECT_BIND case come after
5664 code that ensures that copy ctors are used if appropriate.
5665
5666Tue Jan 30 17:35:14 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5667
5668 * init.c (build_vec_delete): Only give an error if base isn't an
5669 error_mark_node.
5670
5671Mon Jan 29 17:09:06 1996 Mike Stump <mrs@cygnus.com>
5672
5673 * spew.c (do_aggr): `new struct S;' isn't a forward declaration.
5674 (yylex): If we see `new', keep slurping.
5675
5676Thu Jan 25 18:31:36 1996 Mike Stump <mrs@cygnus.com>
5677
5678 * class.c (finish_struct_1): Move code for handling anon unions...
5679 (finish_struct_anon): to here. Fixup so that we do the offset
5680 calculations right, and so that the fields are physically moved to
5681 the containers's chain.
5682
5683Thu Jan 25 18:27:37 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5684
5685 * decl.c (grokdeclarator): Avoid trying to get an operand off an
5686 identifier node.
5687
5688Wed Jan 24 11:25:30 1996 Jim Wilson <wilson@chestnut.cygnus.com>
5689
5690 * typeck.c (pointer_int_sum): Use TYPE_PRECISION (sizetype) not
5691 POINTER_SIZE to agree with expr.c.
5692
5693Thu Jan 25 13:01:23 1996 Mike Stump <mrs@cygnus.com>
5694
5695 * search.c (lookup_field): Don't report ambiguities if protect is 0,
5696 instead return NULL_TREE.
5697
5698Wed Jan 24 13:01:26 1996 Mike Stump <mrs@cygnus.com>
5699
5700 * class.c (finish_struct_1): Call warn_hidden if we want warnings
5701 about overloaded virtual functions.
5702 (warn_hidden): New routine to warn of virtual functions that are
5703 hidden by other virtual functions, that are not overridden.
5704 (get_basefndecls): New routine, used by warn_hidden.
5705 (mark_overriders): New routine, used by warn_hidden.
5706 * search.c (get_matching_virtual): Remove old warning that just
5707 isn't very useful.
5708
5709Tue Jan 23 12:26:10 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5710
5711 * decl.c (output_builtin_tdesc_entries): #if 0 the function definition.
5712
5713 * typeck.c (null_ptr_cst_p): Delete unused fn.
5714 (build_function_call_maybe): Delete unused fn.
5715
5716 * expr.c (extract_init): #if 0 the code after unconditional return 0
5717 for now.
5718
5719 Delete old cadillac code.
5720 * edsel.c: Remove file.
5721 * Make-lang.in (CXX_SRCS): Take edsel.c off the list.
5722 * Makefile.in (CXX_OBJS): Delete edsel.o.
5723 (edsel.o): Delete rule.
5724 * cp-tree.h (flag_cadillac): Delete var decl.
5725 * lang-options.h: Delete "-fcadillac" and "-fno-cadillac".
5726 * decl2.c (flag_cadillac): Delete var definition.
5727 (lang_decode_option): Delete handling of -fcadillac and -fno-cadillac.
5728 (grokfield): Delete code depending on flag_cadillac.
5729 (finish_anon_union): Likewise.
5730 * class.c (finish_struct_1): Likewise.
5731 (pushclass): Likewise.
5732 (popclass): Likewise.
5733 (push_lang_context): Likewise.
5734 (pop_lang_context): Likewise.
5735 * decl.c (init_decl_processing): Likewise.
5736 (start_decl): Likewise.
5737 (cp_finish_decl): Likewise.
5738 (xref_tag): Likewise.
5739 (finish_enum): Likewise.
5740 (start_function): Likewise.
5741 (finish_function): Likewise.
5742 (finish_stmt): Likewise.
5743 * lex.c (lang_init): Likewise.
5744 (check_newline): Likewise.
5745
5746 * lex.c (do_pending_inlines): Delete synthesized method kludge.
5747
5748 Delete defunct, ancient garbage collection implementation.
5749 * rtti.c: New file with the RTTI stuff from gc.c.
5750 * gc.c: Removed file (moved the remaining stuff into rtti.c).
5751 * Makefile.in (CXX_OBJS): Replace gc.o with rtti.o.
5752 (rtti.o): New rule, replacing gc.o.
5753 * Make-lang.in (CXX_SRCS): Replace gc.c with rtti.c.
5754 * cp-tree.h: Delete gc-related fn decls.
5755 (DECL_GC_OFFSET): Delete macro.
5756 (flag_gc): Delete extern decl.
5757 * decl.c (current_function_obstack_index): Delete var decl.
5758 (current_function_obstack_usage): Delete var decl.
5759 (start_function): Delete clearing of current_function_obstack_index
5760 and current_function_obstack_usage.
5761 (init_decl_processing): Delete code relying on -fgc.
5762 Delete call to init_gc_processing.
5763 (cp_finish_decl): Delete calls to build_static_gc_entry and
5764 type_needs_gc_entry. Delete gc code setting DECL_GC_OFFSET.
5765 (store_parm_decls): Delete -fgc calls to cp_expand_decl_cleanup
5766 and to expand_expr of a __gc_main call.
5767 (maybe_gc_cleanup): Delete var decl.
5768 (finish_function): Delete call to expand_gc_prologue_and_epilogue.
5769 * decl2.c (flag_gc): Delete var decl.
5770 (lang_f_options): Delete offering of -fgc.
5771 (lang_decode_option): Delete -fgc and -fno-gc handling.
5772 (get_temp_regvar): Delete gc code.
5773 * init.c (build_new): Delete gc code.
5774 * lex.c (init_lex): Delete checking of flag_gc.
5775
5776 * typeck.c (convert_arguments): Delete gc code.
5777 (build_component_addr): Delete -fgc warning.
5778 (build_modify_expr): Delete gc code.
5779
5780 * decl2.c (build_push_scope): Delete fn.
5781 * cp-tree.h (build_push_scope): Delete decl.
5782
5783 * search.c (clear_search_slots): Delete fn.
5784 * cp-tree.h (clear_search_slots): Delete decl.
5785
5786 * search.c (tree_needs_constructor_p): Delete fn.
5787 * cp-tree.h (tree_needs_constructor_p): Delete decl.
5788
5789 * tree.c (id_cmp): Delete fn.
5790
5791 * tree.c (set_fnaddr_from_vtable_entry): Delete fn.
5792 * cp-tree.h (set_fnaddr_from_vtable_entry): Delete decl.
5793
5794 * tree.c (decl_value_member): Delete fn.
5795 * cp-tree.h (decl_value_member): Delete decl.
5796
5797 * tree.c (list_hash_lookup_or_cons): Delete fn.
5798 * cp-tree.h (list_hash_lookup_or_cons): Delete decl.
5799
5800 * method.c (cplus_exception_name): Delete fn.
5801 (EXCEPTION_NAME_{PREFIX, LENGTH}): Delete macros.
5802
5803 * spew.c (shift_tokens): Delete fn.
5804
5805Mon Jan 22 17:49:33 1996 Jason Merrill <jason@yorick.cygnus.com>
5806
5807 * except.c (init_exception_processing): Pass 1 to needs_pop in calls
5808 to cp_finish_decl.
d11ad92e 5809 * parse.y: Likewise.
9e9ff709
MS
5810
5811Mon Jan 22 17:34:29 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5812
5813 * tree.c (build_cplus_staticfn_type): Delete function definition;
5814 never used.
5815 * cp-tree.h (build_cplus_staticfn_type): Delete decl.
5816
5817 * tree.c (virtual_member): Delete function definition; never used.
5818 * cp-tree.h (virtual_member): Delete decl.
5819
45537677
MS
5820Fri Jan 19 18:03:14 1996 Mike Stump <mrs@cygnus.com>
5821
5822 * typeck.c (build_component_ref): Handle getting vbase pointers
5823 out of complex multiple inheritance better.
5824
5825Fri Jan 19 16:27:40 1996 Mike Stump <mrs@cygnus.com>
5826
5827 * typeck.c (build_object_ref): Make sure we use the real type, not
5828 any reference type.
5829
5830Fri Jan 19 16:01:47 1996 Mike Stump <mrs@cygnus.com>
5831
5832 * tree.c (build_exception_variant): Don't create new types if we
5833 don't have to, also build new types on the right obstack.
5834
5835Fri Jan 19 14:09:44 1996 Jason Merrill <jason@yorick.cygnus.com>
5836
5837 * decl.c (store_bindings): Split out from push_to_top_level.
9e9ff709
MS
5838 (push_to_top_level): Call it for b->type_shadowed on class binding
5839 levels.
45537677
MS
5840
5841Fri Jan 19 13:53:14 1996 Mike Stump <mrs@cygnus.com>
5842
5843 * search.c (expand_upcast_fixups): Fix so that offsets stored in
5844 vbase_offsets are always right. Fixes a problem where virtual base
5845 upcasting and downcasting could be wrong during conversions on this
5846 during virtual function dispatch at ctor/dtor time when dynamic
5847 vtable fixups for deltas are needed. This only sounds easier than
5848 it is. :-)
5849 (fixup_virtual_upcast_offsets): Change to reflect new calling
5850 convention for expand_upcast_fixups.
5851
5852Fri Jan 19 12:23:08 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5853
5854 * decl2.c (grokbitfield): Strip the NOPs from WIDTH before we
5855 check that it's usable as the bitfield width.
5856
5857Wed Jan 17 21:22:40 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5858
5859 * decl2.c (grokfield): Call cplus_decl_attributes with the attrlist.
5860 Pass a null tree to grokdeclarator for its ATTRLIST arg, since it's
5861 only ever used for functions in it.
5862
5863Wed Jan 17 12:10:38 1996 Jason Merrill <jason@yorick.cygnus.com>
5864
5865 * parse.y (qualified_type_name): Use the TYPE_DECL, not the type.
d11ad92e 5866 (nested_type): Likewise.
45537677
MS
5867 (nested_name_specifier): Use lastiddecl.
5868
5869 * decl.c (grokdeclarator): Adjust accordingly.
d11ad92e
MS
5870 * init.c (expand_member_init): Likewise.
5871 * parse.y (base_class): Likewise.
5872 * typeck2.c (build_functional_cast): Likewise.
45537677
MS
5873
5874 * typeck2.c (build_functional_cast): Fill in name after we've
5875 checked for non-aggr type.
5876
be99da77
MS
5877Wed Jan 17 10:18:01 1996 Mike Stump <mrs@cygnus.com>
5878
5879 * decl2.c (warn_pointer_arith): Default to on.
5880
5881Tue Jan 16 12:45:38 1996 Jason Merrill <jason@yorick.cygnus.com>
5882
5883 * lex.c (is_rid): New function.
5884 * decl.c (grokdeclarator): Diagnose reserved words used as
5885 declarator-ids.
5886
5887Tue Jan 16 11:39:40 1996 Jason Merrill <jason@yorick.cygnus.com>
5888
5889 * tree.c (get_decl_list): Don't lose cv-quals.
5890
5891 * decl.c (grokdeclarator): Fix SCOPE_REF handling and diagnose
5892 typespecs used as declarator-ids.
5893
5894Tue Jan 16 11:09:42 1996 Mike Stump <mrs@cygnus.com>
5895
5896 * decl.c (poplevel): When poping a level, don't give a warning for
5897 any subblocks that already exist.
5898
5899Tue Jan 16 00:25:33 1996 Jason Merrill <jason@yorick.cygnus.com>
5900
5901 * typeck.c (build_object_ref): Finish what I started.
5902
5903 * parse.y (qualified_type_name): Don't check TYPE_BUILT_IN.
5904
5905 * decl2.c (constructor_name_full): Handle TEMPLATE_TYPE_PARMs.
5906
5907 * decl.c (grokdeclarator): Also accept TEMPLATE_TYPE_PARM as a
9e9ff709 5908 scope.
be99da77
MS
5909
5910Mon Jan 15 16:19:32 1996 Jason Merrill <jason@yorick.cygnus.com>
5911
5912 * decl.c (xref_tag): Handle passing a type in directly.
5913
5914 * parse.y (qualified_type_name): Pull out the type.
d11ad92e 5915 (nested_type): Likewise.
be99da77
MS
5916 Take types directly instead of as identifiers.
5917 * call.c (build_scoped_method_call): Take types directly instead of
9e9ff709 5918 as identifiers.
d11ad92e
MS
5919 * decl.c (xref_basetypes): Likewise.
5920 * init.c (expand_member_init): Likewise.
5921 (build_member_call): Likewise.
5922 (build_offset_ref): Likewise.
5923 * typeck2.c (build_scoped_ref): Likewise, remove bogus code.
5924 * method.c (do_build_assign_ref): Likewise.
be99da77
MS
5925 * decl.c (grokdeclarator): Handle a type appearing as the
5926 declarator-id for constructors.
5927 * method.c (do_build_copy_constructor): current_base_init_list now
5928 uses the types directly, not their names.
d11ad92e
MS
5929 * init.c (sort_base_init): Likewise.
5930 (expand_member_init): Likewise.
be99da77 5931 * init.c (is_aggr_type): New function, like is_aggr_typedef.
be99da77 5932
d11ad92e 5933Mon Jan 15 08:45:01 1996 Jeffrey A Law <law@cygnus.com>
be99da77
MS
5934
5935 * tree.c (layout_basetypes): Call build_lang_field_decl instead
5936 of build_lang_decl if first arg is a FIELD_DECL.
be99da77
MS
5937
5938Thu Jan 11 14:55:07 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5939
5940 * decl.c (cp_finish_decl): Only clear TREE_USED if DECL_NAME is
5941 non-empty.
5942 * except.c (expand_start_catch_block): Set TREE_USED to avoid
5943 warnings about the catch handler.
5944
5945Mon Jan 8 17:35:12 1996 Jason Merrill <jason@yorick.cygnus.com>
5946
5947 * typeck.c (build_modify_expr): Use a COMPOUND_EXPR instead of
9e9ff709 5948 expand_target_expr.
be99da77
MS
5949
5950Thu Jan 4 12:30:32 1996 Brendan Kehoe <brendan@lisa.cygnus.com>
5951
5952 Fix access control to use trees rather than integers.
5953 * class.c (access_{default, public, protected, private,
5954 default_virtual, public_virtual, private_virtual}_node): Add
5955 definitions.
5956 (init_class_processing): Do creation of those nodes.
5957 * cp-tree.h (access_type): Delete enum decl.
5958 (access_{default, public, protected, private, default_virtual,
5959 public_virtual, private_virtual}_node): Add decls.
5960 (compute_access): Change return type.
5961 * search.c (compute_access): Have tree return type, instead of enum.
5962 (lookup_field): Declare THIS_V and NEW_V to be tree nodes.
5963 * lex.c (real_yylex): Use yylval.ttype for giving the value of the
5964 access_* node for each of RID_{PUBLIC, PRIVATE, PROTECTED}.
5965 * parse.y (VISSPEC): Make ttype rather than itype.
5966 (base_class_access_list): Likewise.
5967 * *.[cy]: Change all refs of `access_public' to `access_public_node',
5968 etc.
5969 * call.c (build_method_call): Make ACCESS be a tree.
5970 * class.c (alter_access, finish_struct_1, filter_struct): Likewise.
5971 * cvt.c (convert_to_aggr): Likewise.
5972 * init.c (build_offset_ref, resolve_offset_ref, build_delete):
5973 Likewise.
5974 * method.c (hack_identifier): Likewise.
5975 * typeck.c (build_component_ref_1, build_component_ref): ): Likewise.
5976
5977Thu Jan 4 11:02:20 1996 Mike Stump <mrs@cygnus.com>
5978
5979 * typeck.c (pointer_int_sum, pointer_diff): Make code agree with C
5980 frontend, and make it more consistent with respect to
5981 warn_pointer_arith.
5982
5983Tue Jan 2 00:13:38 1996 Rusty Russell <rusty@adelaide.maptek.com.au>
5984
5985 * decl.c (pushdecl): Check for duplicate parameter names.
5986
5987Wed Jan 3 09:25:48 1996 Mike Stump <mrs@cygnus.com>
5988
5989 * decl.c (expand_static_init): Call assemble_external for atexit.
5990
5991Wed Jan 3 07:55:19 1996 Mike Stump <mrs@cygnus.com>
5992
5993 * except.c (do_unwind): Remove some generated dead code.
5994 (eh_outer_context): New routine, factor out some common code from
5995 expand_builtin_throw and end_eh_unwinder. Add code to do return
5996 address masking for the PA.
5997 (expand_builtin_throw): Use eh_outer_context instead of open coding
5998 it here.
d11ad92e 5999 (end_eh_unwinder): Likewise.
be99da77
MS
6000
6001Tue Jan 2 17:00:56 1996 Mike Stump <mrs@cygnus.com>
6002
6003 * except.c (expand_throw): Call assemble_external for __empty, if we
6004 use it.
6005
21451173
MS
6006Thu Dec 28 11:13:15 1995 Mike Stump <mrs@cygnus.com>
6007
6008 * except.c (expand_builtin_throw): Use RETURN_ADDR_OFFSET instead of
6009 NORMAL_RETURN_ADDR_OFFSET.
d11ad92e 6010 (end_eh_unwinder): Likewise.
21451173
MS
6011
6012Wed Dec 27 22:18:16 1995 Mike Stump <mrs@cygnus.com>
6013
6014 * gc.c (build_dynamic_cast): Make sure we don't cast away const
6015 when dealing with references, and make sure we handle dynamic
6016 casting to a cv qualified reference.
6017
6018Thu Dec 21 23:50:35 1995 Mike Stump <mrs@cygnus.com>
6019
6020 * except.c (struct eh_context): New structure top hold eh context
6021 information.
6022 (push_eh_context): New routine.
d11ad92e 6023 (pop_eh_context): Likewise.
21451173 6024 * decl.c (push_cp_function_context): Use them.
d11ad92e 6025 (pop_cp_function_context): Likewise.
21451173
MS
6026
6027Wed Dec 20 12:42:51 1995 Jason Merrill <jason@yorick.cygnus.com>
6028
6029 * decl2.c (finish_file): Also prune uninteresting functions in the
6030 inline emission loop.
6031
d11ad92e 6032Wed Dec 20 02:32:07 1995 Jeffrey A Law <law@cygnus.com>
21451173
MS
6033
6034 * sig.c (build_signature_table_constructor): Mark functions
6035 in the signature as referenced.
6036
6037Tue Dec 19 22:36:56 1995 Jason Merrill <jason@yorick.cygnus.com>
6038
6039 * decl2.c (finish_file): Do all the vtable/synthesis stuff before
6040 the inline emission stuff.
6041
72b7eeff
MS
6042Mon Dec 18 15:51:33 1995 Jason Merrill <jason@yorick.cygnus.com>
6043
6044 * cp-tree.h, decl2.c (flag_weak): New flag to control the use of
9e9ff709 6045 weak symbols.
72b7eeff
MS
6046 * lang-options.h: Add -f{no-,}weak.
6047 * decl.c (init_decl_processing): If the target does not support weak
6048 symbols, don't use them.
6049 * decl2.c, pt.c: s/SUPPORTS_WEAK/flag_weak/.
6050
6051Sun Dec 17 21:13:23 1995 Rusty Russell <rusty@adelaide.maptek.com.au>
6052
6053 * init.c (expand_member_init): warning for base init after members.
6054
72b7eeff
MS
6055Fri Dec 15 15:32:18 1995 Jason Merrill <jason@yorick.cygnus.com>
6056
6057 * cvt.c (build_expr_type_conversion): Don't convert to a reference
6058 type.
6059
6060Thu Dec 14 16:05:58 1995 Mike Stump <mrs@cygnus.com>
6061
6062 * method.c (report_type_mismatch): Improve wording for volatile
6063 mismatches.
6064
6065Thu Dec 14 14:16:26 1995 Mike Stump <mrs@cygnus.com>
6066
6067 * init.c (expand_aggr_init_1): Use expand_aggr_init_1 instead of
9e9ff709 6068 expand_assignment, as the later doesn't handle things that have
72b7eeff
MS
6069 copy constructors well. The compiler would do bitwise copying,
6070 instead of ctor calling in some cases.
6071
6072Wed Dec 13 17:05:54 PST 1995 Paul Eggert <eggert@twinsun.com>
6073
6074 * g++.c (my_strerror): Return "cannot access" if errno is 0.
6075 (pfatal_with_name, perror_exec): Don't assume that
6076 the returned value from my_strerror contains no '%'s.
6077 (concat): Remove.
6078 (sys_nerror): Declare only if HAVE_STRERROR is not defined.
6079
6080Wed Dec 13 16:22:38 1995 Jason Merrill <jason@yorick.cygnus.com>
6081
6082 Lose CLASSTYPE_METHODS/DECL_NEXT_METHOD chain; make
6083 TYPE_METHODS/TREE_CHAIN mean what they used to.
6084 * decl2.c (constructor_name_full): Refer to CLASSTYPE_METHOD_VEC
6085 instead of TYPE_METHODS.
6086 * decl.c (duplicate_decls): Lose references to DECL_NEXT_METHOD.
d11ad92e 6087 * tree.c (tree_copy_lang_decl_for_deferred_output): Likewise.
72b7eeff
MS
6088 * cp-tree.h (CLASSTYPE_METHODS): Lose.
6089 (CLASSTYPE_METHOD_VEC): Point to lang_spec->methods instead of
6090 TYPE_METHODS.
6091 (struct lang_decl): Lose next_method field.
6092 (DECL_NEXT_METHOD): Lose.
6093 * class.c (finish_struct_methods): Don't mess with TYPE_METHODS.
6094 (finish_struct): Just use TYPE_METHODS; we don't need fn_fields
6095 anymore.
6096 (finish_struct_methods): Don't mess with the TREE_CHAINs in
6097 fn_fields.
6098
6099 * search.c (add_conversions): Don't use TREE_CHAIN to traverse method
6100 vector.
6101
6102 * call.c (build_method_call): Synthesize here even when not inlining.
d11ad92e 6103 * typeck.c (build_function_call_real): Likewise.
72b7eeff
MS
6104
6105Wed Dec 13 15:02:39 1995 Ian Lance Taylor <ian@cygnus.com>
6106
6107 * cp/lex.c (check_newline): If DBX_DEBUGGING_INFO and write_symbols
6108 == DBX_DEBUG, call dbxout_start_new_source_file and
6109 dbxout_resume_previous_source_file when appropriate.
6110
6111Tue Dec 12 20:38:55 1995 Mike Stump <mrs@cygnus.com>
6112
6113 * except.c (start_anon_func): Push to the top level.
6114 (end_anon_func): Pop from the top level.
6115
6116Mon Dec 11 18:56:14 1995 Mike Stump <mrs@cygnus.com>
6117
6118 * cp-tree.h (build_cleanup): New routine to build cleanups.
6119 * decl.c (expand_static_init): Use build_cleanup to build a cleanup
6120 call at ctor time and use atexit to run it later.
6121 * decl2.c (build_cleanup): New routine, taken from finish_file.
6122 (finish_file): Use build_cleanup instead, and don't put function
6123 local statics in global dtor list.
6124
6125Wed Dec 6 14:34:29 1995 Mike Stump <mrs@cygnus.com>
6126
6127 * except.c (expand_throw): Ensure that we have cleanups, if we try
6128 and expand cleanups.
6129
6130Wed Dec 6 11:48:21 1995 Mike Stump <mrs@cygnus.com>
6131
6132 * except.c (expand_throw): Add logic to manage dynamic cleanups for
6133 the EH object.
6134 (expand_end_catch_block): Use the magic of expand_goto, instead of
6135 emit_jump so that we get the cleanup for any catch clause parameter
6136 and the cleanup for the exception object. Update to reflect label
6137 changes.
6138 (push_eh_cleanup): New routine to register a cleanup for an
6139 exception object.
9e9ff709 6140 (empty_fndecl): Used to default cleanup actions to
72b7eeff
MS
6141 nothing.
6142 (init_exception_processing): Setup empty_fndecl. Setup
6143 saved_cleanup.
6144 (expand_start_catch_block): Update to reflect label changes. Call
6145 push_eh_object to register the cleanup for the EH object.
6146 (start_anon_func): New routine to start building lambda expressions
6147 from trees.
6148 (end_anon_func): New routine to end them.
6149 (struct labelNode): Change so that we can use tree labels, or rtx
6150 labels.
6151 (saved_cleanup): Object to check for dynamic cleanups for the
6152 exception handling object.
6153 (push_label_entry): Change so that we can use tree labels, or rtx
6154 labels.
d11ad92e
MS
6155 (pop_label_entry): Likewise.
6156 (top_label_entry): Likewise.
72b7eeff
MS
6157 (expand_start_all_catch): Use tree label instead of rtx label, so
6158 that we can get the magic of expand_goto.
6159 (expand_end_all_catch): Update to reflect label changes.
6160
6161 * class.c (build_vfn_ref): Remove building_cleanup logic, as we now
6162 use UNSAVE_EXPRs.
6163 typeck.c (get_member_function_from_ptrfunc): Remove remnants of
6164 building_cleanup logic, as we now use UNSAVE_EXPRs.
6165 * cp-tree.h (unsave_expr): Declare it.
6166 * decl.c (building_cleanup): Remove.
6167 (maybe_build_cleanup): Remove building_cleanup logic, and use
6168 UNSAVE_EXPR instead.
6169
6170Sun Dec 3 01:34:58 1995 Mike Stump <mrs@cygnus.com>
6171
6172 * gc.c (build_t_desc): Update error message to say <typeinfo>.
6173
6174Thu Nov 30 12:30:05 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
6175
6176 * decl.c (pushdecl): Only warn about shadowing a local variable if
6177 warn_shadow is true.
6178
6179Sun Nov 26 16:06:55 1995 Rusty Russell <rusty@adelaide.maptek.com.au>
6180
6181 * typeck.c (build_binary_op_nodefault): Added warning about
6182 comparisons between different enum types with -Wall, unless
6183 -fenum-int-equiv set.
6184
6185Wed Nov 22 15:44:02 1995 Mike Stump <mrs@cygnus.com>
6186
6187 * class.c (finish_struct_1): Skip down to the inner type in
6188 multidimensional arrays. Ensures ctors will be made for types that
6189 need constructing.
6190
6191Wed Nov 22 14:19:22 1995 Mike Stump <mrs@cygnus.com>
6192
6193 * decl.c (last_dtor_insn): New to track the last compiler generated
6194 insn in a dtor.
6195 (store_parm_decls): Set it.
6196 (finish_function): Use it to see if the dtor is empty. Avoid doing
6197 vtable setup all the time, if we can.
6198 (struct cp_function): Add last_dtor_insn.
6199 (push_cp_function_context): Save it.
6200 (pop_cp_function_context): Restore it.
6201
6202Wed Nov 22 11:52:19 1995 Paul Russell <Rusty.Russell@adelaide.maptek.com.au>
6203
6204 * typeck.c (build_unary_op): Set TREE_NO_UNUSED_WARNING to avoid
9e9ff709 6205 warnings.
72b7eeff
MS
6206
6207Tue Nov 21 17:15:23 1995 Mike Stump <mrs@cygnus.com>
6208
6209 * typeck.c (expand_target_expr): Make sure targets get put into the
6210 current temp_slot_level, so that the free_temp_slots call will reuse
6211 them.
6212
6213Tue Nov 21 13:32:03 1995 Mike Stump <mrs@cygnus.com>
6214
6215 * class.c (finish_struct_1): Delay delta fixups for virtual bases
6216 until after we have done the hard virtuals, to avoid a bogus `every
6217 virtual function must have a unique final overrider' for virtual
6218 functions that are only overridden by hard virtuals.
6219
6220Thu Nov 9 13:35:30 1995 Jason Merrill <jason@yorick.cygnus.com>
6221
6222 * pt.c (do_function_instantiation): Don't try to find a file-scope
9e9ff709 6223 template for a member function.
72b7eeff
MS
6224
6225Tue Nov 14 06:20:35 1995 Mike Stump <mrs@cygnus.com>
6226
6227 * g++.c (main): Add handling of -nodefaultlibs.
6228
6229Mon Nov 13 15:45:34 1995 Mike Stump <mrs@cygnus.com>
6230
6231 * cp-tree.h (INDIRECT_BIND): Add a way for the frontend to
6232 distinguish between direct bindings of reference variables, and
6233 indirect bindings of reference variables.
6234 * cvt.c (build_up_reference): Use it.
6235 * typeck.c (convert_arguments): Use it to indicate this is an
6236 indirect binding.
6237 * decl.c (cp_finish_decl): Ensure that we reuse stack slots as fast
6238 as they are unused.
d11ad92e
MS
6239 (expand_static_init): Likewise.
6240 (cplus_expand_expr_stmt): Likewise.
6241 * decl2.c (finish_file): Likewise.
6242 * init.c (perform_member_init): Likewise.
6243 (emit_base_init): Likewise.
6244 (expand_aggr_vbase_init_1): Likewise.
72b7eeff 6245
72b7eeff
MS
6246Fri Nov 10 09:18:09 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
6247
6248 * decl.c (push_namespace): Rewrite to use build_lang_decl, so we
6249 get a DECL_LANG_SPECIFIC node.
6250 * cp-tree.h (lang_decl_flags): Add new member `level'.
6251 (NAMESPACE_LEVEL): Don't use decl.arguments, instead use the
6252 decl_flags level member.
6253
6254Mon Nov 6 18:36:13 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
6255
6256 * call.c (build_method_call): Make sure instance has a
6257 TYPE_LANG_SPECIFIC node before we dive into it.
6258
d11ad92e 6259Sat Nov 4 20:01:52 1995 Jason Molenda <crash@phydeaux.cygnus.com>
72b7eeff
MS
6260
6261 * method.c (make_thunk): use TREE_SET_CODE to set thunk's tree code.
6262
6263Thu Nov 2 17:56:57 1995 Mike Stump <mrs@cygnus.com>
6264
6265 * decl.c (duplicate_decls): When smashing decls, smash staticness in
6266 the usual way.
6267
6268Thu Nov 2 16:44:02 1995 Mike Stump <mrs@cygnus.com>
6269
6270 * decl.c (poplevel): Handle the merging of subblocks of cleanups
6271 when finishing blocks that have already been created (usually due to
6272 the fixup goto code). Fixes bad debugging information.
6273
6274Wed Nov 1 12:33:53 1995 Jason Merrill <jason@yorick.cygnus.com>
6275
6276 * method.c (hack_identifier): Don't abort when we get a TREE_LIST
6277 that's not a list of overloaded functions.
6278
6279Wed Nov 1 11:38:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
6280
6281 * decl2.c (mark_vtable_entries): Check DECL_LANG_SPECIFIC on fn
6282 before trying to use DECL_ABSTRACT_VIRTUAL_P.
6283
6284Tue Oct 31 11:56:55 1995 Jason Merrill <jason@yorick.cygnus.com>
6285
6286 * decl2.c (mark_used): New function for hooking into setting of
6287 TREE_USED on decls.
6288 * call.c (build_method_call): Use it.
d11ad92e
MS
6289 * class.c (instantiate_type): Likewise.
6290 * init.c (build_offset_ref): Likewise. Don't call assemble_external
72b7eeff 6291 for all like-named functions.
d11ad92e 6292 * method.c (hack_identifier): Likewise.
72b7eeff
MS
6293 (emit_thunk): Don't call assemble_external.
6294 (make_thunk): Create thunk as a FUNCTION_DECL so that it
6295 gets the right mode and ENCODE_SECTION_INFO works.
6296
6297 * parse.y: Use mark_used. Pass operator names to do_identifier.
6298 * lex.c (do_identifier): Handle operator names.
6299
6300 * decl2.c (grokclassfn): Tweak __in_chrg attributes.
6301
72b7eeff
MS
6302Thu Oct 26 16:45:58 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
6303
6304 * errfn.c: Include stdio.h.
6305 (cp_sprintf): Take out decl of sprintf, and cast sprintf to errorfn*.
6306
6307Wed Oct 25 18:58:41 1995 Mike Stump <mrs@cygnus.com>
6308
6309 * typeck2.c (digest_init): Always convert initializers to the
6310 right type.
6311
6312Wed Oct 25 13:25:24 1995 Mike Stump <mrs@cygnus.com>
6313
6314 * init.c (member_init_ok_or_else): Don't allow member initializers
6315 for indirect members, as it is invalid.
6316
6317Wed Oct 25 11:35:28 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
6318
6319 * decl.c (grokdeclarator): Don't allow `friend signed ()'.
6320
6321Fri Oct 20 10:30:59 1995 Mike Stump <mrs@cygnus.com>
6322
6323 * parse.y (for.init.statement): Catch compound statements inside for
6324 initializations, if we're being pedantic.
6325
6326Fri Oct 20 10:03:42 1995 Mike Stump <mrs@cygnus.com>
6327
6328 * decl.c (lookup_tag): Return NULL_TREE if we don't find what we are
6329 looking for.
6330
6331Thu Oct 19 14:26:10 1995 Mike Stump <mrs@cygnus.com>
6332
6333 * error.c (dump_expr): Don't core dump when a boolean expression is
6334 used as a default argument.
6335
6336Thu Oct 19 10:36:30 1995 Jason Merrill <jason@yorick.cygnus.com>
6337
6338 * class.c (finish_struct_bits): Check aggregate_value_p instead of
9e9ff709 6339 RETURN_IN_MEMORY.
72b7eeff
MS
6340
6341Wed Oct 18 18:12:32 1995 Jason Merrill <jason@yorick.cygnus.com>
6342
6343 * class.c (finish_struct_bits): Also set TREE_ADDRESSABLE on a
6344 BLKmode type that would otherwise be returned in registers.
6345
6346Mon Oct 16 12:32:19 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
6347
6348 * g++.c (WITHLIBC): New macro.
6349 (main): Declare saw_libc. Use WITHLIBC if `-lc' was used; set
6350 saw_libc and pass it at the end if it was set.
6351
6352Wed Oct 11 16:30:34 1995 Brendan Kehoe <brendan@lisa.cygnus.com>
6353
6354 * parse.y (fn.def1): Call split_specs_attrs in
6355 declmods notype_declarator case.
This page took 0.760352 seconds and 5 git commands to generate.